Add AST and fill out grammar