Commit graph

33 commits

Author SHA1 Message Date
Erin aa854a067b Restructured project (#37)
* Separation to two crates
- `ablescript`: library, language
- `ablescript_cli` - cli: repl and executor for files

* Added lints (back) to library
- unsafe_code and unwrap_used are forbidden
2021-08-10 21:32:12 +02:00
Alex Bethel c1cc54be75 Merge 'feature/forty-two' into master 2021-06-19 17:32:12 -05:00
Alex Bethel 430f0c2b90 Forbid use of unwrap w/ clippy 2021-06-16 10:36:52 -05:00
Alex Bethel cdb4a22443 Add --debug option for printing AST 2021-06-16 10:29:27 -05:00
Alex Bethel 098137082e Better error messages, remove debug AST printing 2021-06-16 10:25:55 -05:00
Alex Bethel 92e0a22e24 Integrate const.rs as consts 2021-06-12 10:45:25 -05:00
Alex Bethel 426aee6a2b Repair interpreter after parser changes 2021-06-07 16:20:20 -05:00
Erin f893e24aed Changed position terminology 2021-06-07 21:28:24 +02:00
Alex Bethel 4bda25c9f3 Correct spelling of "occurred" 2021-06-05 08:50:20 -05:00
Alexander Bethel 669f379700 Better abstractions, implement scoping rules 2021-05-25 13:26:01 -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
tdark 7b5ae34bfd Implemented brainfuck interpreter 2021-05-15 18:10:50 +02: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 bdf27c83da Minor Changes 2021-05-03 19:33:21 -05: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 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
Erin cc4ec803c4 Starting work on parser improvements
- Parser should parse single expressions
2021-04-26 10:44:42 +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
Erin 1db4bd74cf clippy + fmt 2021-04-13 17:43:54 +02:00
Erin 81ff84ad73 Improved Scanner 2021-04-13 17:40:20 +02: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 2c4154025f Tokens added or something 2021-04-11 17:22:06 -05:00
able 6719d955e8 Worst best parser 2021-04-11 15:11:23 -05:00
able b96bba96de damn ablelang 2021-04-11 14:11:39 -05:00
able c81fa06641 License and constants added 2021-04-11 13:22:59 -05:00
able 1e701f73ab added base 55 2021-04-11 11:47:35 -05:00
able cc66d0b63a AbleLang is coming together boys :) and girls and enby pals 2021-04-08 16:11:20 -05:00