Commit graph

305 commits

Author SHA1 Message Date
8b44af08ba Interpreter - Initial environment implementation 2022-12-31 15:57:54 +01:00
7f94906412 Interpreter - Created environment module 2022-12-31 15:50:23 +01:00
bf6e150085 Interpreter - Split into multiple modules 2022-12-31 15:49:31 +01:00
81b5f27f0a Interpreter - Moved module to subdirectory 2022-12-31 15:45:28 +01:00
d821331fa2 Parser - Variable references in expressions 2022-12-31 15:44:26 +01:00
a90b1529ad AST - Added variable reference nodes 2022-12-31 15:42:10 +01:00
447e0fe623 Parser - Handle variable declarations 2022-12-31 15:39:52 +01:00
8e5a26bcc3 AST - Added variable declarations 2022-12-31 15:30:53 +01:00
c31a97eb76 Cargo features to control debugging output 2022-12-31 15:26:34 +01:00
14aef73d93 Interpreter - Run programs. 2022-12-31 15:19:41 +01:00
bf11a2b63a Parser - Parse program as a list of statements 2022-12-31 14:45:55 +01:00
402e0a10d9 AST - Made statement nodes visible inside a program node 2022-12-31 14:45:35 +01:00
f17cafd910 AST - Program and basic statements 2022-12-31 14:36:01 +01:00
407fbe26b0 AST - Moved dumper trait out of the way 2022-12-31 14:27:20 +01:00
a69fea5538 Errors - ErrorHandler now includes info about the stage that failed 2022-12-31 14:00:23 +01:00
da50da4e08 CLIPPY IS THE MASTER OF ALL! (especially anal retentiveness) 2022-12-31 13:50:08 +01:00
b89e330423 Hooked up the interpreter 2022-12-31 13:49:01 +01:00
2aa9fb278a Errors - Missing space in message 2022-12-31 13:48:00 +01:00
bc4541a50e Interpreter - Initial implementation of the expression evaluator 2022-12-31 13:41:44 +01:00
25ae8b0c16 Errors - Interpreter error 2022-12-31 12:58:25 +01:00
58a986d280 Interpreter - Values 2022-12-31 12:50:44 +01:00
b5e9a1825a Interpreter - Module created 2022-12-31 12:30:02 +01:00
7b66c35e16 Parser - Synchronize method 2022-12-31 12:27:51 +01:00
32dab4ad27 main - Fixed formatting 2022-12-31 10:22:22 +01:00
ffb1994a59 Main - expect(&format!()) is bad, according to clippy 2022-12-31 10:21:38 +01:00
0872f58baf Tokens - Use the matches! macro for is_litteral() 2022-12-31 10:19:36 +01:00
980729ceb3 Tokens - Renamed EOF to Eof 2022-12-31 10:17:25 +01:00
e918d90e39 Scanner - Use is_ascii_digit() instead of is_digit(10) 2022-12-31 10:15:55 +01:00
45ed237818 Parser - Removed useless clone 2022-12-31 10:14:58 +01:00
c0bf521b61 AST - Removed unused import, reformatted. 2022-12-31 10:13:51 +01:00
1e122c77a5 Parser - Comments 2022-12-31 10:12:11 +01:00
fc345f2ffb Parser - Parse expressions 2022-12-31 00:50:31 +01:00
faf50ea53e AST - Use Token.is_litteral() when dumping 2022-12-31 00:50:04 +01:00
ccc6fe0320 Token - is_litteral() method 2022-12-31 00:49:54 +01:00
984ba5f600 Scanner - Reformatted 2022-12-31 00:29:38 +01:00
1fe96bdbf7 Errors - Parser error structure 2022-12-31 00:28:49 +01:00
aab0e0a591 Scanner - Add the EOF token 2022-12-31 00:02:41 +01:00
ed03d565ea Parser - Created structure 2022-12-30 23:50:33 +01:00
8856d733ad AST - Expression node + dumper trait 2022-12-30 23:50:02 +01:00
912c7a265e Tokens - Stop complaining about EOF 2022-12-30 23:20:57 +01:00
c1025153d1 Scanner - Block comments w/ nesting 2022-12-30 20:19:00 +01:00
21778a745e Scanner - Support for identifiers and keywords 2022-12-30 20:11:08 +01:00
3ccbcbc1c2 Scanner - Numbers 2022-12-30 19:10:14 +01:00
75dd3a2db2 Scanner - String litterals 2022-12-30 18:40:56 +01:00
4e9e566a4f Main program - Reset REPL buffer before reading 2022-12-30 18:38:40 +01:00
6fad0fdfc4 Scanner - Slashes and whitespace 2022-12-30 18:28:36 +01:00
5af93af827 Scanner - Moved is_at_end() 2022-12-30 18:21:17 +01:00
8bdfbe59de Scanner - 2-character operators 2022-12-30 18:20:45 +01:00
5747e02107 Scanner - Single-character lexemes 2022-12-30 18:13:52 +01:00
124ffd883f Error handler in separate module + basic scanner module 2022-12-30 16:56:21 +01:00