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