static EnumListener ExtractEnums(string fileContent) { AntlrInputStream inputStream = new AntlrInputStream(fileContent); EnumLexer lexer = new EnumLexer(inputStream); CommonTokenStream tokens = new CommonTokenStream(lexer); EnumParser parser = new EnumParser(tokens); IParseTree tree = parser.prog(); ParseTreeWalker walker = new ParseTreeWalker(); EnumListener extractor = new EnumListener(parser); walker.Walk(extractor, tree); return(extractor); }
static void Main(string[] args) { try { var path = Path.Combine(Environment.CurrentDirectory, @"..\..\..\Common\Consts"); var fileNames = GetFileNames(path, "*.cs"); foreach (var fileName in fileNames) { var filePath = Path.Combine(Environment.CurrentDirectory, @"..\..\..\Common\Consts\" + fileName); string content = File.ReadAllText(filePath); AntlrInputStream inputStream = new AntlrInputStream(content); EnumLexer lexer = new EnumLexer(inputStream); CommonTokenStream tokens = new CommonTokenStream(lexer); EnumParser parser = new EnumParser(tokens); IParseTree tree = parser.prog(); // parse ParseTreeWalker walker = new ParseTreeWalker(); // create standard walker EnumListener extractor = new EnumListener(parser); walker.Walk(extractor, tree); // initiate walk of tree with listener string pathToFile = Environment.CurrentDirectory + "\\" + extractor.name + ".js"; using (FileStream fs = new FileStream(pathToFile, FileMode.OpenOrCreate)) using (StreamWriter file = new StreamWriter(fs)) { file.Write(extractor.builder.ToString()); file.Close(); fs.Close(); } } Console.ReadKey(); } catch (Exception ex) { Console.WriteLine("Error: " + ex); Console.ReadKey(); } }