Commit graph

114 commits

Author SHA1 Message Date
Alexander Bethel e79fc9a005 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 464337bd53 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 e31b8fb00d 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 2febc944e4 Merge pull request #18 from T-Dark0/tdark-brainfuck 2021-05-15 20:34:29 -05:00
tdark 1306c797c8 Added support for specifying a tape size limit 2021-05-15 18:39:49 +02:00
tdark 99758a177b Implemented brainfuck interpreter 2021-05-15 18:10:50 +02:00
Able 7f5576c119 Update README.md 2021-05-14 10:52:16 -05:00
Able 598917bf58 Update README.md 2021-05-11 13:39:41 -05:00
able fafe6cf672 consider using able brand products 2021-05-05 07:33:40 -05:00
able ac88a2e3c6 Brain fuck work 2021-05-04 22:23:17 -05:00
able e2b7239992 README changes 2021-05-04 21:29:51 -05:00
able f98c4d83d9 Minor Changes 2021-05-03 19:33:21 -05:00
Able 785ddda4cf Merge pull request #15 from erindesu/master
Fixed some incompatible old code
2021-05-03 18:41:23 -05:00
Erin 1618262948 Tidy up 2021-05-03 23:02:19 +02:00
Erin 5bdbc2bbb0 Obeyed our paperclip overlord + fmt 2021-05-03 21:36:32 +02:00
Erin 7057c3cfef Fixed some incompatible old code
- Added assignment support
- Reduced boilerplate
- Removed `else`
2021-05-03 21:35:43 +02:00
Erin c0ecf5f2a3 Variable assignment implemented 2021-05-03 09:54:27 +02:00
Able 045ca17b52 Merge pull request #14 from erindesu/master 2021-05-03 02:17:38 -05:00
Erin 4b2d306ccb Fixed #13 2021-05-03 08:47:52 +02:00
Able a0b3f7c34a Merge pull request #12 from erindesu/master 2021-05-02 12:49:30 -05:00
Erin d80b5514ce Added tests and loop flow 2021-05-02 18:12:51 +02:00
Erin f8db60bc7c Added T-Dark block
- obeyed clippy
2021-05-02 17:38:12 +02:00
Erin ecd972e55d Parser production ready
- TODO: T-Dark block
- cargo fmt
- Obeyed our clippy overlord
2021-05-02 16:48:33 +02:00
Erin 4a9b656093 Parser implements examples
- Function call is now stmt (muhehe)
2021-05-02 15:43:25 +02:00
Erin 91bd015e9b Added basic math operations
- cargo fmt
2021-05-02 00:39:08 +02:00
Erin d7cf1b013d 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 c26c4a14bb Tidy up 2021-04-29 19:19:35 +02:00
Erin 5c00446c59 Implemented function calls 2021-04-29 18:50:51 +02:00
Erin 27a8de70fa 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 3e019621b2 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 345bed5f66 Merge pull request #10 from erindesu/master
Reimplemented parser
2021-04-27 09:26:29 -05:00
Erin 00a464321a Added parsing of conditionals 2021-04-27 13:48:56 +02:00
Erin fc8c3a3499 Made parser to throw error when unexpected EOF 2021-04-27 11:57:11 +02:00
Erin 2a0b2952d4 Redone original parser
= implemented original features
2021-04-27 11:49:07 +02:00
Erin 138b9efadc Added testing for base55, new identifier lexing 2021-04-27 11:09:19 +02:00
Erin 83c549607c Continue work on parser, improved lexer
- Added literal parsing (improved lexing)
- Revised error handling
2021-04-27 10:51:39 +02:00
Erin 47400ee2ce Starting work on parser improvements
- Parser should parse single expressions
2021-04-26 10:44:42 +02:00
Able 31c9fb3203 Merge pull request #9 from erindesu/master 2021-04-20 10:28:52 -05:00
Erin f7d1287fd5 Implemented abool
- Tidied up code
2021-04-18 23:40:41 +02:00
Erin 3e2dc5fba9 Added function/variable parsing
- Added block support
- TODO: Tidy it up
2021-04-18 22:33:55 +02:00
Erin 7026711b64 Initial parser work 2021-04-18 16:39:43 +02:00
able 08af75fbda variable things added 2021-04-13 18:01:19 -05:00
Able 35586aa700 Merge pull request #8 from erindesu/master 2021-04-13 11:04:17 -05:00
Erin 4ca017671c clippy + fmt 2021-04-13 17:43:54 +02:00
Erin 406c6b1297 Improved Scanner 2021-04-13 17:40:20 +02:00
able ceaed053b4 Adding a melo example 2021-04-12 22:19:44 -05:00
Able e9aea03b29 Merge pull request #6 from erindesu/master
Added tokenization
2021-04-12 20:11:41 -05:00
Erin 2194e2726f 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 00cca9fc74 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