- [ ] Parentheses for expressions - [ ] Logical operators (and, or, not) - [ ] ELSE IF and ELSE - [ ] FOR loop - [ ] Number literals written in binary, hex, and octal - [ ] Better compiler errors (e.g., what line the error occurred) - [ ] Allow multiple code files - [ ] Functions with parameters and return values - [ ] Lexical scope (see [scope](https://en.wikipedia.org/wiki/Scope_(computer_science))) - [ ] Standard library (e.g., file operations) - [ ] [Abstract syntax tree](https://en.wikipedia.org/wiki/Abstract_syntax_tree) representation - [ ] More primitive types (e.g., integer, strings, boolean) - [ ] Arrays - [ ] Record types (i.e., structs or tuples) - [ ] Type checking (see [type systems](https://en.wikipedia.org/wiki/Type_system)) - [ ] Compiler optimizations (e.g., [constant folding](https://en.wikipedia.org/wiki/Constant_folding)) - [ ] Test cases for the compiler (see [unit testing](https://en.wikipedia.org/wiki/Unit_testing) and [test-driven development](https://en.wikipedia.org/wiki/Test-driven_development))