public virtual PositionType GetPositionNode(int position, out IAstNode node) {
node = null;
if (!this.Contains(position)) {
return PositionType.Undefined;
}
for (int i = 0; i < this.Children.Count; i++) {
var child = Children[i];
if (position < child.Start)
break;
if (child.Contains(position)) {
return child.GetPositionNode(position, out node);
}
}
node = this;
return node is TokenNode ? PositionType.Token : PositionType.Node;
}