grammar t030specialStates; options { language =Cpp; } @lexer::includes { #include "UserTestTraits.hpp" } @lexer::namespace { Antlr3Test } @parser::includes { #include "UserTestTraits.hpp" } @parser::namespace { Antlr3Test } @init { self.cond = True } @members { def recover(self, input, re): # no error recovery yet, just crash! raise re } r : ( {self.cond}? NAME | {not self.cond}? NAME WS+ NAME ) ( WS+ NAME )? EOF ; NAME: ('a'..'z') ('a'..'z' | '0'..'9')+; NUMBER: ('0'..'9')+; WS: ' '+;