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);
        }
Exemple #3
0
        /** 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);
        }