protected static IParseTree AntlrParse(string expression) { var inputStream = new AntlrInputStream(expression); var lexer = new ExpressionLexer(inputStream); var tokenStream = new CommonTokenStream(lexer); var parser = new ExpressionParser(tokenStream); parser.RemoveErrorListeners(); parser.AddErrorListener(ParserErrorListener.Instance); parser.BuildParseTree = true; return(parser.file()?.expression()); }
internal Result Execute(string formula, out IParseTree tree) { ErrorListener listener = new ErrorListener(); listener.Owner = Owner; listener.ErrorOutput += ErrorOutput; var stream = new AntlrInputStream(formula); var lexer = new ExpressionLexer(stream); var tokens = new CommonTokenStream(lexer); var parser = new ExpressionParser(tokens); parser.AddErrorListener(listener); tree = parser.program(); return(Visit(tree)); }