tried to specify types for ast nodes (failed, but nothing broke); updated the grammar to current one used in lexer