public virtual CompositeGrammarTree FindNode(string grammarName) { if (grammarName == null) { return(null); } if (grammarName.Equals(this.grammar.name)) { return(this); } CompositeGrammarTree n = null; for (int i = 0; n == null && children != null && i < children.Count; i++) { CompositeGrammarTree child = children[i]; n = child.FindNode(grammarName); } return(n); }
public virtual CompositeGrammarTree FindNode(Grammar g) { if (g == null) { return(null); } if (this.grammar == g) { return(this); } CompositeGrammarTree n = null; for (int i = 0; n == null && children != null && i < children.Count; i++) { CompositeGrammarTree child = children[i]; n = child.FindNode(g); } return(n); }
/** Get parent of this grammar */ public virtual Grammar GetDelegator(Grammar g) { CompositeGrammarTree me = delegateGrammarTreeRoot.FindNode(g); if (me == null) { return(null); // not found } if (me.parent != null) { return(me.parent.grammar); } return(null); }