示例#1
0
        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);
            }
        }
示例#2
0
        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);
        }