grammar t013parser; options { language =Cpp; } @lexer::includes { #include "UserTestTraits.hpp" } @lexer::namespace { Antlr3Test } @parser::includes { #include "UserTestTraits.hpp" } @parser::namespace { Antlr3Test } @parser::init { self.identifiers = [] self.reportedErrors = [] } @parser::members { def foundIdentifier(self, name): self.identifiers.append(name) def emitErrorMessage(self, msg): self.reportedErrors.append(msg) } document: t=IDENTIFIER {self.foundIdentifier($t.text)} ; IDENTIFIER: ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*;