Antlr3.Tool.Grammar.FindFirstTypeOutsideRewrite C# (CSharp) Method

FindFirstTypeOutsideRewrite() protected method

protected FindFirstTypeOutsideRewrite ( Antlr3.Tool.GrammarAST block, BitSet types ) : Antlr3.Tool.GrammarAST
block Antlr3.Tool.GrammarAST
types BitSet
return Antlr3.Tool.GrammarAST
        protected virtual GrammarAST FindFirstTypeOutsideRewrite(GrammarAST block, BitSet types)
        {
            List<GrammarAST> worklist = new List<GrammarAST>();
            worklist.Add(block);
            while (worklist.Count > 0)
            {
                GrammarAST current = worklist[worklist.Count - 1];
                worklist.RemoveAt(worklist.Count - 1);
                if (current.Type == ANTLRParser.REWRITE)
                    continue;

                if (current.Type >= 0 && types.Contains(current.Type))
                    return current;

                worklist.AddRange(current.GetChildrenAsArray());
            }

            return null;
        }
Grammar