public virtual GrammarAST GetNodeWithTokenIndex(int index)
{
if (this.Token != null && this.Token.TokenIndex == index)
{
return this;
}
// walk all children of root.
for (int i = 0; i < ChildCount; i++)
{
GrammarAST child = (GrammarAST)GetChild(i);
GrammarAST result = child.GetNodeWithTokenIndex(index);
if (result != null)
{
return result;
}
}
return null;
}