Try to implement a tiny language but full dev stack.
- JS is our C++
- no dependencies
- pico JS implementation
- it's fun and easy to follow
- simple lexer (tokenazier)
- context aware errors for lexer
- simple parser (produces AST)
- context aware errors for parser
- just test things as they are
- add operator precedence
- add suport for both division and regexps
- add suport for comments
- remove logging 🤦♂️
- do some refactoring
- implement AST evaluator
- context aware errors for evaluator
- implement some simple exception logic
- primitive type checking
- finish the refactoring
- add some syntax highlighting
- extend lexer and parser with conditionals etc
- implement functions and then closures
- macroses
- maybe switch lexing mode from "expression" to "operator"
- syntax highlight the error messages
- bytecode emission and execution
- implement some more complex exception propagation
- babel-like transformations and code emition
- VSCode language server
- try bison in JS
- emit WASM friendly output
- try true exceptions
- maybe something like source code rewrite as in prettier