public virtual void GetNodesWithTypePreorderDFS_(IList<GrammarAST> nodes, IntervalSet types)
{
if (types.Contains(this.Type))
nodes.Add(this);
// walk all children of root.
for (int i = 0; i < ChildCount; i++)
{
GrammarAST child = (GrammarAST)GetChild(i);
child.GetNodesWithTypePreorderDFS_(nodes, types);
}
}