Callee is responsible for calling this
 function recursively on children, incrementing indent as appropriate.<p>

 Note: if the parser was in error-recovery mode, some AST nodes may have
 <code>null</code> children that are expected to be non-<code>null</code>
 when no errors are present.  In this situation, the behavior of the
 <code>toSource</code> method is undefined: <code>toSource</code>
 implementations may assume that the AST node is error-free, since it is
 intended to be invoked only at runtime aft