Exemplo n.º 1
0
        /** Tester; Give grammar filename as arg */
        public static void Main(string[] args)
        {
            GrammarSpelunker g = new GrammarSpelunker(".", args[0]);

            g.parse();
            Console.Out.WriteLine(g.grammarModifier + " grammar " + g.grammarName);
            Console.Out.WriteLine("language=" + g.language);
            Console.Out.WriteLine("tokenVocab=" + g.tokenVocab);
            Console.Out.WriteLine("imports=" + g.importedGrammars);
        }
Exemplo n.º 2
0
 /** Tester; Give grammar filename as arg */
 public static void Main( string[] args )
 {
     GrammarSpelunker g = new GrammarSpelunker( ".", args[0] );
     g.parse();
     Console.Out.WriteLine( g.grammarModifier + " grammar " + g.grammarName );
     Console.Out.WriteLine( "language=" + g.language );
     Console.Out.WriteLine( "tokenVocab=" + g.tokenVocab );
     Console.Out.WriteLine( "imports=" + g.importedGrammars );
 }
Exemplo n.º 3
0
 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 );
 }