import sys import unittest import antlr3 class TestBaseRecognizer(unittest.TestCase): """Tests for BaseRecognizer class""" def testGetRuleInvocationStack(self): """BaseRecognizer._getRuleInvocationStack()""" rules = antlr3.BaseRecognizer._getRuleInvocationStack(__name__) self.assertEqual( rules, ['testGetRuleInvocationStack'] ) class TestTokenSource(unittest.TestCase): """Testcase to the antlr3.TokenSource class""" def testIteratorInterface(self): """TokenSource.next()""" class TrivialToken(object): def __init__(self, type): self.type = type class TestSource(antlr3.TokenSource): def __init__(self): self.tokens = [ TrivialToken(1), TrivialToken(2), TrivialToken(3), TrivialToken(4), TrivialToken(antlr3.EOF), ] def nextToken(self): return self.tokens.pop(0) src = TestSource() tokens = [] for token in src: tokens.append(token.type) self.assertEqual(tokens, [1, 2, 3, 4]) class TestLexer(unittest.TestCase): def testInit(self): """Lexer.__init__()""" class TLexer(antlr3.Lexer): api_version = 'HEAD' stream = antlr3.StringStream('foo') TLexer(stream) if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2))