Pytocs.DirectoryWalker.Enumerate C# (CSharp) Method

Enumerate() public method

public Enumerate ( ) : void
return void
        public void Enumerate()
        {
            var stack = new Stack<IEnumerator<EnumerationState>>();
            stack.Push(new List<EnumerationState>{new EnumerationState
            {
                DirectoryName = rootDirectory,
                Namespace = ""
            }}.GetEnumerator());
            while (stack.Count > 0)
            {
                var e = stack.Pop();
                if (!e.MoveNext())
                    continue;
                stack.Push(e);
                var state = e.Current;
                ProcessDirectoryFiles(state);
                e = (Directory.GetDirectories(state.DirectoryName, "*", SearchOption.TopDirectoryOnly)
                     .Select(d => new EnumerationState
                     {
                         DirectoryName = d,
                         Namespace = GenerateNamespace(state, d),
                     })).GetEnumerator();
                stack.Push(e);
            }
        }

Usage Example

Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var fs     = new FileSystem();
            var logger = new ConsoleLogger();

            if (args.Length == 0)
            {
                var xlator = new Translator("", "module_name", fs, logger);
                xlator.Translate("-", Console.In, Console.Out);
                Console.Out.Flush();
                return;
            }

            if (args[0].ToLower() == "-d")
            {
                //             org.yinwang.pysonar.demos.Demo.DemoMain(args);
                return;
            }

            if (args[0].ToLower() == "-r")
            {
#if !NOT_READY_FOR_TYPES
                var options      = new Dictionary <string, object>();
                var typeAnalysis = new AnalyzerImpl(fs, logger, options, DateTime.Now);
                typeAnalysis.Analyze(".");
                typeAnalysis.Finish();
                TranslateModules(typeAnalysis);
#else
                var startDir = args.Length == 2
                    ? args[1]
                    : Directory.GetCurrentDirectory();
                var walker = new DirectoryWalker(fs, startDir, "*.py");
                walker.Enumerate();
#endif
            }
            else
            {
                foreach (var fileName in args)
                {
                    var xlator = new Translator(
                        "",
                        fs.GetFileNameWithoutExtension(fileName),
                        fs,
                        new ConsoleLogger());
                    xlator.TranslateFile(fileName, fileName + ".cs");
                }
            }
        }
All Usage Examples Of Pytocs.DirectoryWalker::Enumerate