docs: private void traverse(GroovySourceAST t) {
          if (t == null) { return; }
          if (unvisitedNodes != null) {
             unvisitedNodes.add(t);
          }
          GroovySourceAST child = (GroovySourceAST)t.getFirstChild();
          if (child != null) {
              traverse(child);
          }
          GroovySourceAST sibling = (GroovySourceAST)t.getNextSibling();
          if (sibling != null) {
              traverse(sibling);
          }
      }