code: @Override
      public R scan(Tree tree, P p) {
          if (tree == null)
              return null;
  
          TreePath prev = path;
          path = new TreePath(path, tree);
          try {
              return tree.accept(this, p);
          } finally {
              path = prev;
          }
      }
docs: Scan a single node.
  The current path is updated for the duration of the scan.