public static void Main(string[] args) { if (args.Length != 0) { string inputFileName = args[0]; if (!Path.IsPathRooted(inputFileName)) { inputFileName = Path.Combine(Environment.CurrentDirectory, inputFileName); } ICharStream input = new ANTLRFileStream(inputFileName); // BUILD AST ANTLRv3Lexer lex = new ANTLRv3Lexer(input); CommonTokenStream tokens = new CommonTokenStream(lex); ANTLRv3Parser g = new ANTLRv3Parser(tokens); ANTLRv3Parser.grammarDef_return r = g.grammarDef(); CommonTree t = (CommonTree)r.Tree; System.Console.Out.WriteLine(t.ToStringTree()); /* * // BUILD AST + PARSE TREES (needs ANTLR -debug option) * ANTLRv3Lexer lex = new ANTLRv3Lexer(input); * CommonTokenStream tokens = new CommonTokenStream(lex); * ParseTreeBuilder builder = new ParseTreeBuilder(inputName); * ANTLRv3Parser g = new ANTLRv3Parser(tokens, builder); * ANTLRv3Parser.grammarDef_return r = g.grammarDef(); * CommonTree t = (CommonTree)r.Tree; // not used here * System.Console.Out.WriteLine("parse tree: "+builder.Tree.ToStringTree()); * System.Console.Out.Write("input:\n"+builder.Tree.ToInputString()); */ // WALK AST CommonTreeNodeStream nodes = new CommonTreeNodeStream(t); ANTLRv3Tree walker = new ANTLRv3Tree(nodes); walker.grammarDef(); } else { Console.Error.WriteLine("Usage: ANTLRv3 <input-file>"); } }
public static void Main(string[] args) { if (args.Length > 1) { string inputFileName = args[0]; if (!Path.IsPathRooted(inputFileName)) { inputFileName = Path.Combine(Environment.CurrentDirectory, inputFileName); } ICharStream input = new ANTLRFileStream(inputFileName); // BUILD AST ANTLRv3Lexer lex = new ANTLRv3Lexer(input); CommonTokenStream tokens = new CommonTokenStream(lex); ANTLRv3Parser g = new ANTLRv3Parser(tokens); ANTLRv3Parser.grammarDef_return r = g.grammarDef(); CommonTree t = (CommonTree)r.Tree; System.Console.Out.WriteLine(t.ToStringTree()); /* // BUILD AST + PARSE TREES (needs ANTLR -debug option) ANTLRv3Lexer lex = new ANTLRv3Lexer(input); CommonTokenStream tokens = new CommonTokenStream(lex); ParseTreeBuilder builder = new ParseTreeBuilder(inputName); ANTLRv3Parser g = new ANTLRv3Parser(tokens, builder); ANTLRv3Parser.grammarDef_return r = g.grammarDef(); CommonTree t = (CommonTree)r.Tree; // not used here System.Console.Out.WriteLine("parse tree: "+builder.Tree.ToStringTree()); System.Console.Out.Write("input:\n"+builder.Tree.ToInputString()); */ // WALK AST CommonTreeNodeStream nodes = new CommonTreeNodeStream(t); ANTLRv3Tree walker = new ANTLRv3Tree(nodes); walker.grammarDef(); } else Console.Error.WriteLine("Usage: ANTLRv3 <input-file>"); }