Move post-EOF code detection to lexer (fixes bug)
Change CST to use Nodes instead of just a string
Further refinements to CST building
Scope checking
Add full tokens to environment
Symbol table generation
Type checking, unused var checking, cleanup
AST
Test cases