grammar t014parser; options { language =Cpp; } @lexer::includes { #include "UserTestTraits.hpp" } @lexer::namespace { Antlr3Test } @parser::includes { #include "UserTestTraits.hpp" } @parser::namespace { Antlr3Test } @parser::init { self.events = [] self.reportedErrors = [] } @parser::members { def emitErrorMessage(self, msg): self.reportedErrors.append(msg) } document: ( declaration | call )* EOF ; declaration: 'var' t=IDENTIFIER ';' {self.events.append(('decl', $t.text))} ; call: t=IDENTIFIER '(' ')' ';' {self.events.append(('call', $t.text))} ; IDENTIFIER: ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*; WS: (' '|'\r'|'\t'|'\n') {$channel=HIDDEN;};