static void Main(string[] args) { List <string> parsedEnums = new List <string>(); try { var path = Path.Combine(Environment.CurrentDirectory, args[0]); var fileNames = GetFileNames(path, "*.cs"); foreach (var fileName in fileNames) { var filePath = Path.Combine(path, fileName); string fileContent = File.ReadAllText(filePath); Console.WriteLine($"-------- Parsing {fileName} start --------"); EnumListener extractor = ExtractEnums(fileContent); parsedEnums.AddRange(ExportAllEnumsToFiles(extractor.ParsedEnums, fileName, args[1])); Console.WriteLine($"-------- Parsing {fileName} end ----------\n"); } Console.WriteLine($"\nParsing enums done. Following enums has been parsed:\n\t- {string.Join("\n\t- ", parsedEnums)}"); } catch (Exception ex) { Console.WriteLine("Error: " + ex); } }
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); }