Commit graph

164 commits

Author SHA1 Message Date
Alexander Bethel b625a71711 Allow abool -> bool coercion
The expression `sometimes & true` now evaluates to `true` 50% of the
time and false 50% of the time, rather than throwing a type error
because `sometimes` is not a bool.
2021-05-21 12:25:37 -05:00
Alexander Bethel ea211fc3b0 Make ablescript -f run interpreter
`ablescript -f foo.able` will now both parse and interpret `foo.able`,
rather than just parsing it.
2021-05-20 18:24:18 -05:00
Alexander Bethel eccc00ff81 Implement basic interpreter
Added code for interpreting parsed AbleScript expressions and
statements, and hooked it up to the REPL.
2021-05-20 18:18:01 -05:00
Able 0ad680cadd Merge pull request #18 from T-Dark0/tdark-brainfuck 2021-05-15 20:34:29 -05:00
tdark 1b195dc955 Added support for specifying a tape size limit 2021-05-15 18:39:49 +02:00
tdark 7b5ae34bfd Implemented brainfuck interpreter 2021-05-15 18:10:50 +02:00
Able c0b7bd2f34 Update README.md 2021-05-14 10:52:16 -05:00
Able 396650ae95 Update README.md 2021-05-11 13:39:41 -05:00
able 87139c4448 consider using able brand products 2021-05-05 07:33:40 -05:00
able 9b7367353d Brain fuck work 2021-05-04 22:23:17 -05:00
able 57d86b9f92 README changes 2021-05-04 21:29:51 -05:00
able bdf27c83da Minor Changes 2021-05-03 19:33:21 -05:00
Able 143ae613d8 Merge pull request #15 from erindesu/master
Fixed some incompatible old code
2021-05-03 18:41:23 -05:00
Erin 72cd540728 Tidy up 2021-05-03 23:02:19 +02:00
Erin 798c1807db Obeyed our paperclip overlord + fmt 2021-05-03 21:36:32 +02:00
Erin 30eedbc854 Fixed some incompatible old code
- Added assignment support
- Reduced boilerplate
- Removed `else`
2021-05-03 21:35:43 +02:00
Erin 29bf01935c Variable assignment implemented 2021-05-03 09:54:27 +02:00
Able e8a2b87c6e Merge pull request #14 from erindesu/master 2021-05-03 02:17:38 -05:00
Erin 8c6f415ac9 Fixed #13 2021-05-03 08:47:52 +02:00
Able e080fc65e3 Merge pull request #12 from erindesu/master 2021-05-02 12:49:30 -05:00
Erin 051f6e781f Added tests and loop flow 2021-05-02 18:12:51 +02:00
Erin ecce080378 Added T-Dark block
- obeyed clippy
2021-05-02 17:38:12 +02:00
Erin 5a8dd5051f Parser production ready
- TODO: T-Dark block
- cargo fmt
- Obeyed our clippy overlord
2021-05-02 16:48:33 +02:00
Erin c90d242b0f Parser implements examples
- Function call is now stmt (muhehe)
2021-05-02 15:43:25 +02:00
Erin 18a1343e11 Added basic math operations
- cargo fmt
2021-05-02 00:39:08 +02:00
Erin 3794fd3c8f Divided token types
- Item = Expr | Stmt
- Added REPL (AST dump)
- Removed operator parsing because it was horrible and I need to redo it
2021-05-01 13:44:58 +02:00
Erin eef7ec16fa Tidy up 2021-04-29 19:19:35 +02:00
Erin ca60f818eb Implemented function calls 2021-04-29 18:50:51 +02:00
Erin 17a32a8df7 Bugfix: Peeking
- Fixed `PeekableLexer` next to not-be passtrough to iterator
- Made error handling depend on state of Option
2021-04-29 09:47:29 +02:00
Erin e45afeac5e Added Peekable Lexer
- Added wrapper for Lexer with `peek()` method
- Renamed `token` module to `lexer` as it more describe it's function
- Started work on operator flow
2021-04-28 22:52:19 +02:00
Able b4d3f0c9b6 Merge pull request #10 from erindesu/master
Reimplemented parser
2021-04-27 09:26:29 -05:00
Erin f3779deeb5 Added parsing of conditionals 2021-04-27 13:48:56 +02:00
Erin 3f9e6b72cc Made parser to throw error when unexpected EOF 2021-04-27 11:57:11 +02:00
Erin 39a8bf6a54 Redone original parser
= implemented original features
2021-04-27 11:49:07 +02:00
Erin d2160a3a4a Added testing for base55, new identifier lexing 2021-04-27 11:09:19 +02:00
Erin 3b8ce34c2b Continue work on parser, improved lexer
- Added literal parsing (improved lexing)
- Revised error handling
2021-04-27 10:51:39 +02:00
Erin cc4ec803c4 Starting work on parser improvements
- Parser should parse single expressions
2021-04-26 10:44:42 +02:00
Able 19762e940a Merge pull request #9 from erindesu/master 2021-04-20 10:28:52 -05:00
Erin e020fc4267 Implemented abool
- Tidied up code
2021-04-18 23:40:41 +02:00
Erin 7e0c881130 Added function/variable parsing
- Added block support
- TODO: Tidy it up
2021-04-18 22:33:55 +02:00
Erin 48dd930872 Initial parser work 2021-04-18 16:39:43 +02:00
able bc1eb42af4 variable things added 2021-04-13 18:01:19 -05:00
Able 83c8595a8f Merge pull request #8 from erindesu/master 2021-04-13 11:04:17 -05:00
Erin 1db4bd74cf clippy + fmt 2021-04-13 17:43:54 +02:00
Erin 81ff84ad73 Improved Scanner 2021-04-13 17:40:20 +02:00
able d13d72ad89 Adding a melo example 2021-04-12 22:19:44 -05:00
Able a26058587a Merge pull request #6 from erindesu/master
Added tokenization
2021-04-12 20:11:41 -05:00
Erin 968a65b1fb Added tokenization
- Added tokenization
- Modified `Token` definition for make it compatible with Logos
- And also obeyed our paperclip overlord and changed all names to be complaint with Rust conventions
2021-04-12 20:20:45 +02:00
able 1abd802b58 Merge branch 'master' of https://github.com/AbleTheAbove/able-lang
merge
2021-04-11 22:40:32 -05:00
able aeaf6b3948 Added CLOC to the readme 2021-04-11 22:39:22 -05:00