public virtual Object Visit(SimpleNode node, Object data) { data = node.ChildrenAccept(this, data); return(data); }