public virtual void Visit(AstTreeNode node){}
public sealed override void Visit(AstTreeNode node) { VisitAndXform(node, Xform(node)); }
public override void Visit(AstTreeNode node) { if (!(node is LiteralNode) && !(node is TermNode && node.Parent is NegationNode)) writer.Write(new String(' ', 2 * node.Depth())); }
protected virtual IAstTreeNode Xform(AstTreeNode node) { return null; }