static void Main(string[] args) { ParseOptions(args); if (showHelp) { return; } var generators = new List <Tuple <ILanguageGenerator, IFunctionsGenerator> >(); if (language == "csharp") { generators.Add(new Tuple <ILanguageGenerator, IFunctionsGenerator>( new CsharpLanguageGenerator(), new CsharpFunctionsGenerator())); } else if (language == "proto") { generators.Add(new Tuple <ILanguageGenerator, IFunctionsGenerator>(new ProtobufGenerator(), null)); } else if (language == "ts") { generators.Add(new Tuple <ILanguageGenerator, IFunctionsGenerator>(new TypescriptGenerator(), new TypescriptFunctionsGenerator())); } using (FileStream fs = new FileStream(expressPath, FileMode.Open)) { var input = new AntlrInputStream(fs); var lexer = new Express.ExpressLexer(input); var tokens = new CommonTokenStream(lexer); var parser = new Express.ExpressParser(tokens); parser.BuildParseTree = true; var tree = parser.schemaDecl(); var walker = new ParseTreeWalker(); var testSb = new StringBuilder(); foreach (var generator in generators) { var listener = new Express.ExpressListener(generator.Item1); walker.Walk(listener, tree); Generate(listener, outDir, generator.Item1, generator.Item2); } if (!outputTokens) { return; } var tokenStr = new StringBuilder(); foreach (var t in tokens.GetTokens()) { tokenStr.AppendLine(t.ToString()); } Console.WriteLine(tokenStr); } }
/// <summary> /// Initializes a new instance of the parser /// </summary> /// <param name="lexer">The input lexer</param> public ExpressParser(ExpressLexer lexer) : base(commonAutomaton, variables, virtuals, null, lexer) { }