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(); } }
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(); }