4e4cec0732
completed index op on hashtable, added puts builtin
2024-06-01 16:35:30 +05:30
f51ead1641
WIP: Hash evaluator
2024-05-27 16:26:52 +05:30
37306989fe
added more builtins
2024-05-26 20:12:42 +05:30
cef5e1676e
added arrays, index operations
2024-05-26 20:03:26 +05:30
3eeec60d3b
added array literals, refactored CallExpression::parse
2024-05-26 17:41:59 +05:30
ad2d88e511
added builtins
2024-05-26 16:01:31 +05:30
6607d1db02
added strings! applied clippy recs
2024-05-26 12:09:49 +05:30
ffe56c86ae
renamed files
2024-05-26 11:15:39 +05:30
144401269d
improved repl with a quit instruction
2024-05-26 11:13:01 +05:30
90fa04b29f
bugfix: in function environments which was causing incorrect environment state in some situations
2024-05-19 14:12:50 +05:30
c92f4e9e82
Added closure test, accept ints in variable names
2024-05-18 08:46:42 +05:30
4ca2e61654
implemented function evaluator
2024-05-17 20:05:27 +05:30
697ca392b3
Added eval support for let statements
2024-05-17 16:50:02 +05:30
73f84cc379
updated deps, added CI config
2020-06-01 17:22:34 +05:30
aa4e158aab
Removed duplicate code, Fixed Clippy warnings
...
1. Removed usage of Token::new, Token::with_value with token! macro
2. Fixed issues reported by clippy
3. Reorganized imports a little bit
2020-01-29 18:37:40 +05:30
9e04c61310
Added Return statement evaluator and basic error system
...
1. Added Return statement parser with tests
2. Added a very basic error reporting system in the evaluator
3. Removed duplicate code
2020-01-23 20:53:06 +05:30
62fd586acb
Added If/Else Evaluator
...
1. Added If Else evaluator
2. Added tests to support expression evaluator
3. Fixed issues reported by clippy
2020-01-21 23:51:09 +05:30
00288b7b4d
Merge branch 'master' of gitlab.com:ishanjain/monkey-interpreter
2020-01-21 23:22:48 +05:30
22479487ca
Added Tree walker evaluator
...
1. Added a tree walker interpreter
2. Added tests to support evaluator
2020-01-21 23:21:51 +05:30
ae69fa9bb7
Add LICENSE
2020-01-21 15:33:22 +00:00
b0cbe5d4f7
Fixed all warnings reported by clippy
2020-01-20 19:46:51 +05:30
f3f50eed47
Updated REPL loop to print back string-ified AST. Parser Complete!
2020-01-20 18:12:08 +05:30
0833ba3448
Completed Let/Return Statement parser
...
1. Completed Expression parsing in Let/Return Statement Parsers
2. Removed most of the TODOs
3. Added more tests
2020-01-20 17:38:58 +05:30
a1c316a43e
Added more tests for call expression parser
2020-01-20 16:57:19 +05:30
8ec7ec1ba1
Added Call Expressions
...
1. Added Call Expressions
2. Refactored Boolean/Prefix/Infix parse functions
3. Added tests to support Call Expressions parser
2020-01-20 16:14:26 +05:30
8536d0defa
Added Function Literal parser
...
1. Added function literal parser.
2. Replaced all ToString impls with fmt::Display Impls.
3. Fixed few issues in existing fmt::Display impls.
4. Refactored Expression parsers
5. Added more tests to support new changes
2020-01-20 14:45:21 +05:30
44506cf591
Added If and IfElse parser
...
1. Added If and IfElse expression parsers.
2. Also, Added asserts to ensure there are 0 errors in parser object
2020-01-19 23:20:17 +05:30
9763c5ca2e
Added Boolean Expression parser along with tests
2020-01-19 21:45:11 +05:30
2293c442eb
Bug fixes and completed prefix and infix expression parser
...
1. Changed names of some variants of TokenType.
2. Implemented std::fmt::Display and std::string::ToString for some
types
3. Added Infix and Prefix expressions parser
4. Added tests to ensure correctness of added parsers
2020-01-19 19:57:53 +05:30
203ebb169b
Working on parser
...
1. Added Identifier Expression parser
2. Added Prefix IntegerLiteral Parser
2020-01-12 00:03:18 +05:30
2fd6c9ca6d
Working on parser
...
1. Implemented ToString on AST nodes that'll allow convert
AST back to source code in tests and help with ensuring correctness
2. Locked Rust toolchain to a specific version
2020-01-11 23:26:52 +05:30
e6e1be2e00
Working on parser. It can parse return statements and log errors now
2019-12-25 23:07:39 +05:30
5ac3b5e29a
Fixed Parser, Can parse Let statements now
2019-12-25 17:55:15 +05:30
631c2d8b1a
Added Integer Literal Parser
...
1. Added Integer Literal Parser
2. Removed Unused imports.
3. Fixed issues reported by Clippy
2019-09-13 01:08:09 +05:30
2863ad8aa4
Refactor and added identifier expression parser
...
1. Refactor Lexer::Token to Lexer::Token + Lexer::TokenType.
2. Added From/TryFrom on Lexer::Literal.
3. Added ExpressionStatement Parser
4. Added From<String> for ParseError.
5. Added prefix_parse_fn and infix_parse_fn table.
6. Added parse_expression
7. Added tests
8. Fixed lint issues reported by Clippy
2019-09-12 22:49:57 +05:30
77ecd6e3dd
Back to using enum in AST
2019-09-09 15:04:59 +05:30
68330a8156
Refactored parser back to using traits rather than enum, Added gitignore, Added return statement
2019-09-09 00:44:27 +05:30
98023fe219
Refactored again, Fixed most warnings, Removed unused code
2019-09-08 00:17:08 +05:30
5bd49acb67
Refactored again, let statement parser, Except for the expression parser is complete
2019-09-07 20:30:31 +05:30
20a4907153
Added let statement parser
2019-09-07 19:32:44 +05:30
142b34edc4
Refactored again, Compiles now.
2019-09-07 01:16:52 +05:30
f202d0dacd
Resuming project. Refactored project
2019-08-31 01:28:20 +05:30
7409606f3d
Committing and saving work done on the parser
2019-04-14 16:45:40 +05:30
9c018d2fe2
Added REPL
2019-02-05 14:27:20 +05:30
420db45c76
Added == and != along with tests
2019-02-04 23:38:22 +05:30
c0efc2c316
Refactored lexer
...
1. Changed input from Vec<u8> to Peekable<Chars>
2. Refactored methods implemented on lexer
2019-02-04 19:57:41 +05:30
f31e4bfee1
Added true,false,return,if,else keywords, Single character tokens, tests
...
and change Vec<char> to Vec<u8>
2019-02-04 17:16:17 +05:30
561c4c6089
Added NULL, RBrace, LBrace tokens
2019-02-04 11:10:36 +05:30
c84e73756f
Initial commit. Working on lexer
2019-01-14 00:39:27 +05:30