static void Try(string input) { var str = new AntlrInputStream(input); System.Console.WriteLine(input); var lexer = new arithmeticLexer(str); var tokens = new CommonTokenStream(lexer); var parser = new arithmeticParser(tokens); var listener_lexer = new ErrorListener <int>(); var listener_parser = new ErrorListener <IToken>(); lexer.AddErrorListener(listener_lexer); parser.AddErrorListener(listener_parser); var tree = parser.file(); if (listener_lexer.had_error || listener_parser.had_error) { System.Console.WriteLine("error in parse."); } else { System.Console.WriteLine("parse completed."); } System.Console.WriteLine(tree.ToStringTree()); Decorate(tree, parser); System.Console.WriteLine(tree.ToStringTree()); }
static void Try(string input) { var str = new AntlrInputStream(input); var lexer = new arithmeticLexer(str); var tokens = new CommonTokenStream(lexer); var parser = new arithmeticParser(tokens); var listener = new ErrorListener <IToken>(parser, lexer, tokens); parser.AddErrorListener(listener); var tree = parser.file(); if (listener.had_error) { System.Console.WriteLine("error in parse."); System.Console.WriteLine(tokens.OutputTokens()); System.Console.WriteLine(tree.OutputTree(tokens)); } else { System.Console.WriteLine("parse completed."); System.Console.WriteLine(tokens.OutputTokens()); System.Console.WriteLine(tree.OutputTree(tokens)); var visitor = new CalculatorVisitor(); visitor.Visit(tree); } }
static void Main(string[] args) { var input = "1 + 2 * 3"; var str = new AntlrInputStream(input); var lexer = new arithmeticLexer(str); var tokens = new CommonTokenStream(lexer); var parser = new arithmeticParser(tokens); var listener = new ErrorListener <IToken>(); parser.AddErrorListener(listener); var tree = parser.file(); if (listener.had_error) { System.Console.WriteLine("error in parse."); } else { System.Console.WriteLine("parse completed."); System.Console.WriteLine(tokens.OutputTokens()); System.Console.WriteLine(tree.OutputTree(tokens)); } }