AST generation

Grammar now outputs a valid parse tree + AST (useful for post-parse treewalking).
One grammar rule simplified and merged into calling parse rule to simplify AST.

Passes all grammar checks.