def test_antlr_expr(self): from tests.grammar.ExprTestLexer import ExprTestLexer from tests.grammar.ExprTestParser import ExprTestParser from tests.grammar.ExprTestVisitor import ExprTestVisitor as _ExprTestVisitor class ExprTestVisitor(_ExprTestVisitor): def visitNumber(self, ctx: ExprTestParser.NumberContext): return int(super(ExprTestVisitor, self).visitNumber(ctx)) antlr = Antlr(ExprTestLexer, ExprTestParser) p = antlr.parser(antlr.input_stream("1 + 2 * 3 + (4 + 5)")) expr = antlr.parse_safe(p.expr) model = expr.accept(ExprTestVisitor()) self.assertEqual(model, [[1], '+', [2, '*', 3], '+', [[[4], '+', [5]]]])
def test_antlr_set(self): from tests.grammar.SetTestLexer import SetTestLexer from tests.grammar.SetTestParser import SetTestParser from tests.grammar.SetTestVisitor import SetTestVisitor as _SetTestVisitor class SetTestVisitor(_SetTestVisitor): def visitIntElement(self, ctx: SetTestParser.IntElementContext): return int(super(SetTestVisitor, self).visitIntElement(ctx)) antlr = Antlr(SetTestLexer, SetTestParser) p = antlr.parser(antlr.input_stream("{1, 2, {}, {3}}")) expr = antlr.parse_safe(p.expr) model = expr.accept(SetTestVisitor()) self.assertEqual(model, [1, 2, [], [3]])