small subset of the grammar now builds an AST