1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverimport antlr3 2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverimport testbase 3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverimport unittest 4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass t026actions(testbase.ANTLRTest): 7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def parserClass(self, base): 8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver class TParser(base): 9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def __init__(self, *args, **kwargs): 10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver base.__init__(self, *args, **kwargs) 11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver self._errors = [] 13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver self._output = "" 14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def capture(self, t): 17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver self._output += t 18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def emitErrorMessage(self, msg): 21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver self._errors.append(msg) 22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver return TParser 25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def lexerClass(self, base): 28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver class TLexer(base): 29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def __init__(self, *args, **kwargs): 30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver base.__init__(self, *args, **kwargs) 31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver self._errors = [] 33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver self._output = "" 34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def capture(self, t): 37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver self._output += t 38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def emitErrorMessage(self, msg): 41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver self._errors.append(msg) 42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver return TLexer 45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def setUp(self): 48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver self.compileGrammar() 49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def testValid1(self): 52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver cStream = antlr3.StringStream('foobar _Ab98 \n A12sdf') 53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver lexer = self.getLexer(cStream) 54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver tStream = antlr3.CommonTokenStream(lexer) 55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver parser = self.getParser(tStream) 56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver parser.prog() 57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver self.assertEqual( 59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver parser._output, 60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 'init;after;finally;') 61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver self.assertEqual( 62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver lexer._output, 63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 'action;u\'foobar\' 4 1 0 -1 0 0 5;attribute;action;u\'_Ab98\' 4 1 7 -1 0 7 11;attribute;action;u\'A12sdf\' 4 2 1 -1 0 15 20;attribute;') 64324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 65324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverif __name__ == '__main__': 66324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver unittest.main() 67