public void TestCalculator() { var testString = @"a=1+2*3; print a;"; CalculatorLexer lexer = new CalculatorLexer(new AntlrInputStream(testString)); CommonTokenStream tokens = new CommonTokenStream(lexer); CalculatorParser p = new CalculatorParser(tokens); p.BuildParseTree = true; p.AddParseListener(new CalculatorListener()); ParserRuleContext t = p.program(); }
static int Evaluate(string input) { var stream = new AntlrInputStream(input); var lexer = new CalculatorLexer(stream); var tokens = new CommonTokenStream(lexer); var parser = new CalculatorParser(tokens); var program = parser.program(); var visitor = new CalcGrammarVisitor(); var result = visitor.Visit(program); return(result); }
public object Execute(string script) { AntlrInputStream stream = new AntlrInputStream(script); CalculatorLexer lexer = new CalculatorLexer(stream); CommonTokenStream tokenStream = new CommonTokenStream(lexer); CalculatorParser parser = new CalculatorParser(tokenStream); var root = parser.program(); if (root.IsEmpty && root.exception != null) { if (root.exception is RecognitionException) { throw new Exception("null"); } else { throw new InvalidOperationException(); } } object result = root.Accept(m_processor); return(result); }