Commit graph

116 commits

Author SHA1 Message Date
Alex Bethel eee173060c Implement read semantics in interpreter
Also added a test file `iotest.able` to just read data and print
it (the `cat` of AbleScript I guess).
2021-06-18 16:05:50 -05:00
Erin 3edbca51d5 Implemented read in Parser 2021-06-18 20:28:53 +02:00
Alex Bethel 430f0c2b90 Forbid use of unwrap w/ clippy 2021-06-16 10:36:52 -05:00
Alex Bethel 4011997e60 Clippy conformance 2021-06-16 10:35:06 -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 2e5799d9e6 Remove quotes around rickroll string
They're not necessary, because the `rickroll` file is already included
as a string.
2021-06-15 11:47:39 -05:00
Alex Bethel 9965d97713 Fix ignored unit tests in interpret.rs 2021-06-15 11:46:01 -05:00
Alex Bethel 8aa6fc502a rustfmt: whoops, let's put a semicolon there
maybe I should have actually looked at what rustfmt produced before I
just blindly accepted it and pushed it onto master.
2021-06-15 10:26:44 -05:00
Alex Bethel 7bf3cc6f5d rustfmt: break long line 2021-06-15 10:24:50 -05:00
Alex Bethel ae0955209c Use pass-by-reference for variables, pass-by-value for expressions 2021-06-15 09:51:00 -05:00
Alex Bethel 66d4f4f82d Implement most of pass-by-reference
We need some parser changes to make it work fully: function arguments
are now identifiers rather than expressions.
2021-06-15 09:51:00 -05:00
Alex Bethel 75938f27c0 Implement functio declaration & calling 2021-06-15 09:51:00 -05:00
HTG-YT aa72945010 comply with the move of rickroll 2021-06-14 20:53:27 +08:00
HTG-YT 26df745dee move rickroll to src/ folder 2021-06-14 20:52:38 +08:00
HTG-YT b526d5c575 move rickroll content into a file 2021-06-14 09:42:23 +08:00
HTG-YT 72e48d1b86 rustfmt: add trailing comma 2021-06-14 09:40:42 +08:00
HTG-YT 227fa8e35b handle Token::Rickroll in parser 2021-06-13 13:24:09 +08:00
HTG-YT fa0d3968f5 Update interpret.rs 2021-06-13 13:22:30 +08:00
HTG-YT 3646c5e32e handle StmtKind::Rickroll 2021-06-13 13:22:01 +08:00
HTG-YT 286a12b28e add StmtKind::Rickroll 2021-06-13 13:11:51 +08:00
HTG-YT 855383faac add rickroll lexeme in lexer 2021-06-13 13:11:02 +08:00
Alex Bethel 976518a251 Reimplement BF function declaration semantics 2021-06-12 09:26:21 -05:00
Erin ff04c34cf6 Better comment 2021-06-11 19:44:53 +02:00
Erin 183c584e96 Removed todo when unknown token 2021-06-11 18:34:34 +02:00
Erin 3d7c89634e Fixed invalid spanning of UnexpectedToken in parse_expr 2021-06-11 18:31:25 +02:00
Erin 3bcef28843 BF code is now Vec<u8> 2021-06-11 18:10:11 +02:00
Erin 711ad27e00 Basic BfFunctio support 2021-06-11 17:52:47 +02:00
Alex Bethel 41316f5696 Re-enable assignment semantics 2021-06-11 10:05:48 -05:00
Erin 6f16d2594b Added variable assignment to parser
- Fixed parse error, that `rlyeh` returned HopBack
2021-06-11 16:59:40 +02:00
HTG-YT dd28ff985f add nevergonnagiveyouup constant 2021-06-11 15:26:30 +08:00
HTG-YT 77749bc32b add interessant and funny constants 2021-06-11 15:19:27 +08:00
Alex Bethel 7d7c1e4a1b Fix interpreter variable persistence bug 2021-06-08 19:21:33 -05:00
Alex Bethel dc5ef63fef Better error handling in REPL
We have much better spanned expression support, so now we get to show
it off!
2021-06-07 20:08:38 -05:00
Alex Bethel a0c1f93392 Remove 0..0 placeholder from unexpected_eof() 2021-06-07 20:03:26 -05:00
Alex Bethel ce20611c07 Fix all 0..0 span placeholders in interpret.rs 2021-06-07 19:57:44 -05:00
Alex Bethel d8f462e0b5 Fix unit tests 2021-06-07 17:35:49 -05:00
Alex Bethel addda8fc87 Remove giant comment block left in by mistake 2021-06-07 16:28:27 -05:00
Alex Bethel 426aee6a2b Repair interpreter after parser changes 2021-06-07 16:20:20 -05:00
Erin 903b1a3809 Added T-Dark test 2021-06-07 23:06:13 +02:00
Erin 8bd61a4a65 Added tests, Bugfix
- Originally, it spanned from operator (bug)
2021-06-07 22:58:28 +02:00
Erin 1f78cb0ee1 Added missing mut 2021-06-07 22:24:43 +02:00
Erin 902d8b914c Unified span terminology
- Add more derivations, because it's required by another parts of project
2021-06-07 22:21:21 +02:00
Erin f893e24aed Changed position terminology 2021-06-07 21:28:24 +02:00
Erin 2084ebeed1 Removed unwraps, added Rlyeh 2021-06-07 11:07:50 +02:00
Erin b7464f6ad3 Implement function calls
- And printing
- Revised terminology in Lexer
- Control flow
2021-06-07 11:00:06 +02:00
Erin b6bce72b94 Added logical operators 2021-06-07 09:17:30 +02:00
Erin 97f0271534 Binary operator boilerplate reduction 2021-06-07 09:17:18 +02:00
Erin a5a048728c Added basic parsing
- Expressions
- If, Functio
2021-06-07 00:09:45 +02:00
Erin b04bd77672 Initial chthulic error impl in Lexer
- See discussions #17
2021-06-06 23:15:11 +02:00