- Redoing the entire lexer, now following the book "Writing an interpreter in GO" by Thorsten Ball
- Start working on the parser and ASTLetStatement
- Continue working on the parser.
- Preparing the AST
- Parser.
- Boolean
- InfixExpressions
- PrefixExpressions
- Integer
- Identifier
- IfExpression
- LetStatement
- ReturnStatement
- ExpressionStatement
- BlockStatement
- Continue working on the parser.
- Parser
- FunctionLiteral
- CallExpression
- Clean up the parser
- Finished the parser
- Start working on the evaluator
- Eval: Integer
- Eval: Boolean
- Eval: PrefixExpression
- Eval: PrefixExpression
- Eval: InfixExpression
- Eval: IfExpression
- Eval: IfExpression
- Eval: ReturnStatement
- Eval: Error handling
- Eval: LetStatement
- Eval: Environment
- Eval: FunctionLiteral
- Eval: CallExpression
- Token + Parse + Eval: Strings
- Big refactor, removed traits and replaced them with enums
- Built-in: 'len'
- Token + Parse + Eval: Arrays
- Token + Parse + Eval: Indexes
- Built-in: 'first' + 'last'
- HashMaps
- Interpreter is now fully functional :D 🎉🎉🎉🎉🎉
- Implemented basic error handling, no more panics
- Implemented LTE and GTE
- Implemented And and Or
- Arrow functions.
- Reassignment statements.
- Fix: Closures
- Fix: Return statmets, function body (block) must explicitly return a expression, if/else block implicitly return something (may change in the future)
- Implemented While loops
- Implemented (.) operation