Antlr3.AntlrTool.SortGrammarFiles C# (CSharp) Method

SortGrammarFiles() public method

public SortGrammarFiles ( ) : void
return void
        public virtual void SortGrammarFiles()
        {
            //Console.Out.WriteLine( "Grammar names " + GrammarFileNames );
            Graph<string> g = new Graph<string>();
            foreach ( string gfile in GrammarFileNames )
            {
                GrammarSpelunker grammar = new GrammarSpelunker( inputDirectory, gfile );
                grammar.Parse();
                string vocabName = grammar.TokenVocab;
                string grammarName = grammar.GrammarName;
                // Make all grammars depend on any tokenVocab options
                if ( vocabName != null )
                    g.AddEdge( gfile, vocabName + CodeGenerator.VocabFileExtension );
                // Make all generated tokens files depend on their grammars
                g.AddEdge( grammarName + CodeGenerator.VocabFileExtension, gfile );
            }
            List<string> sorted = g.Sort();
            //Console.Out.WriteLine( "sorted=" + sorted );
            GrammarFileNames.Clear(); // wipe so we can give new ordered list
            for ( int i = 0; i < sorted.Count; i++ )
            {
                string f = (string)sorted[i];
                if ( GrammarExtensions.Any( ext => f.EndsWith( ext, StringComparison.OrdinalIgnoreCase ) ) )
                    AddGrammarFile( f );
            }
            //Console.Out.WriteLine( "new grammars=" + grammarFileNames );
        }