Ejemplo n.º 1
0
        public virtual void TrimLexerImportsIntoCombined()
        {
            CompositeGrammarTree p = this;

            if (p.grammar.type == GrammarType.Lexer && p.parent != null &&
                p.parent.grammar.type == GrammarType.Combined)
            {
                //System.Console.Out.WriteLine( "wacking " + p.grammar.name + " from " + p.parent.grammar.name );
                p.parent.children.Remove(this);
            }
            for (int i = 0; children != null && i < children.Count; i++)
            {
                CompositeGrammarTree child = children[i];
                child.TrimLexerImportsIntoCombined();
            }
        }
Ejemplo n.º 2
0
        public virtual void DefineGrammarSymbols()
        {
            delegateGrammarTreeRoot.TrimLexerImportsIntoCombined();
            IList <Grammar> grammars = delegateGrammarTreeRoot.GetPostOrderedGrammarList();

            for (int i = 0; grammars != null && i < grammars.Count; i++)
            {
                Grammar g = (Grammar)grammars[i];
                g.DefineGrammarSymbols();
            }
            for (int i = 0; grammars != null && i < grammars.Count; i++)
            {
                Grammar g = (Grammar)grammars[i];
                g.CheckNameSpaceAndActions();
            }
            MinimizeRuleSet();
        }