Move post-EOF code detection to lexer (fixes bug)
Change CST to use Nodes instead of just a string