bazel syntax: rename ASTNode to Node and SyntaxTreeVisitor to NodeVisitor

PiperOrigin-RevId: 269332155
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
index 9162028..726c512 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
@@ -42,7 +42,6 @@
 import com.google.devtools.build.lib.skylarkinterface.Param;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkSignature;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
-import com.google.devtools.build.lib.syntax.ASTNode;
 import com.google.devtools.build.lib.syntax.Argument;
 import com.google.devtools.build.lib.syntax.BaseFunction;
 import com.google.devtools.build.lib.syntax.BuildFileAST;
@@ -62,6 +61,8 @@
 import com.google.devtools.build.lib.syntax.IntegerLiteral;
 import com.google.devtools.build.lib.syntax.ListLiteral;
 import com.google.devtools.build.lib.syntax.Mutability;
+import com.google.devtools.build.lib.syntax.Node;
+import com.google.devtools.build.lib.syntax.NodeVisitor;
 import com.google.devtools.build.lib.syntax.ParserInputSource;
 import com.google.devtools.build.lib.syntax.Runtime;
 import com.google.devtools.build.lib.syntax.SkylarkDict;
@@ -73,7 +74,6 @@
 import com.google.devtools.build.lib.syntax.StarlarkSemantics;
 import com.google.devtools.build.lib.syntax.Statement;
 import com.google.devtools.build.lib.syntax.StringLiteral;
-import com.google.devtools.build.lib.syntax.SyntaxTreeVisitor;
 import com.google.devtools.build.lib.syntax.ValidationEnvironment;
 import com.google.devtools.build.lib.vfs.FileSystem;
 import com.google.devtools.build.lib.vfs.FileSystemUtils;
@@ -1824,7 +1824,7 @@
    * networked file systems, executed sequentially in them can be very time consuming.
    */
   @VisibleForTesting
-  static class GlobPatternExtractor extends SyntaxTreeVisitor {
+  static class GlobPatternExtractor extends NodeVisitor {
     private final Set<String> includeDirectoriesPatterns = new HashSet<>();
     private final Set<String> excludeDirectoriesPatterns = new HashSet<>();
 
@@ -1921,9 +1921,9 @@
   // prefetching. Combine.
   public static boolean checkBuildSyntax(BuildFileAST file, final EventHandler eventHandler) {
     final boolean[] success = {true};
-    SyntaxTreeVisitor checker =
-        new SyntaxTreeVisitor() {
-          private void error(ASTNode node, String message) {
+    NodeVisitor checker =
+        new NodeVisitor() {
+          private void error(Node node, String message) {
             eventHandler.handle(Event.error(node.getLocation(), message));
             success[0] = false;
           }
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/memory/AllocationTracker.java b/src/main/java/com/google/devtools/build/lib/profiler/memory/AllocationTracker.java
index 970cac4..af51d73 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/memory/AllocationTracker.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/memory/AllocationTracker.java
@@ -25,9 +25,9 @@
 import com.google.devtools.build.lib.packages.AspectClass;
 import com.google.devtools.build.lib.packages.RuleClass;
 import com.google.devtools.build.lib.packages.RuleFunction;
-import com.google.devtools.build.lib.syntax.ASTNode;
 import com.google.devtools.build.lib.syntax.BaseFunction;
 import com.google.devtools.build.lib.syntax.Callstack;
+import com.google.devtools.build.lib.syntax.Node;
 import com.google.monitoring.runtime.instrumentation.Sampler;
 import com.google.perftools.profiles.ProfileProto.Function;
 import com.google.perftools.profiles.ProfileProto.Line;
@@ -254,8 +254,8 @@
         Object object = allocationSample.callstack.get(i);
         if (line == -1) {
           final Location location;
-          if (object instanceof ASTNode) {
-            location = ((ASTNode) object).getLocation();
+          if (object instanceof Node) {
+            location = ((Node) object).getLocation();
           } else if (object instanceof BaseFunction) {
             location = ((BaseFunction) object).getLocation();
           } else {
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkinterface/SkylarkSignature.java b/src/main/java/com/google/devtools/build/lib/skylarkinterface/SkylarkSignature.java
index d69aebc..02ed5fe5 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkinterface/SkylarkSignature.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkinterface/SkylarkSignature.java
@@ -21,21 +21,16 @@
 /**
  * An annotation to mark built-in keyword argument methods accessible from Skylark.
  *
- * <p>Use this annotation around a {@link com.google.devtools.build.lib.syntax.BuiltinFunction} or
- * a {@link com.google.devtools.build.lib.syntax.BuiltinFunction.Factory}. The annotated function
- * should expect the arguments described by {@link #parameters()}, {@link #extraPositionals()},
- * and {@link #extraKeywords()}. It should also expect the following extraneous arguments:
+ * <p>Use this annotation around a {@link com.google.devtools.build.lib.syntax.BuiltinFunction} or a
+ * {@link com.google.devtools.build.lib.syntax.BuiltinFunction.Factory}. The annotated function
+ * should expect the arguments described by {@link #parameters()}, {@link #extraPositionals()}, and
+ * {@link #extraKeywords()}. It should also expect the following extraneous arguments:
  *
  * <ul>
- *   <li>
- *     {@link com.google.devtools.build.lib.events.Location} if {@link #useLocation()} is
- *     true.
- *   </li>
- *   <li>{@link com.google.devtools.build.lib.syntax.ASTNode} if {@link #useAst()} is true.</li>
- *   <li>
- *     {@link com.google.devtools.build.lib.syntax.Environment} if {@link #useEnvironment()} )}
- *     is true.
- *   </li>
+ *   <li>{@link com.google.devtools.build.lib.events.Location} if {@link #useLocation()} is true.
+ *   <li>{@link com.google.devtools.build.lib.syntax.Node} if {@link #useAst()} is true.
+ *   <li>{@link com.google.devtools.build.lib.syntax.Environment} if {@link #useEnvironment()} )} is
+ *       true.
  * </ul>
  */
 @Target({ElementType.FIELD})
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Argument.java b/src/main/java/com/google/devtools/build/lib/syntax/Argument.java
index 97764f8c8e..fa7358c 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Argument.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Argument.java
@@ -22,11 +22,11 @@
 /**
  * Syntax node for a function argument.
  *
- * <p>Argument is a base class for arguments passed in a call (@see Argument.Passed)
- * or defined as part of a function definition (@see Parameter).
- * It is notably used by some {@link Parser} and printer functions.
+ * <p>Argument is a base class for arguments passed in a call (@see Argument.Passed) or defined as
+ * part of a function definition (@see Parameter). It is notably used by some {@link Parser} and
+ * printer functions.
  */
-public abstract class Argument extends ASTNode {
+public abstract class Argument extends Node {
 
   public boolean isStar() {
     return false;
@@ -76,7 +76,7 @@
     }
 
     @Override
-    public void accept(SyntaxTreeVisitor visitor) {
+    public void accept(NodeVisitor visitor) {
       visitor.visit(this);
     }
   }
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/AssignmentStatement.java b/src/main/java/com/google/devtools/build/lib/syntax/AssignmentStatement.java
index d744756..cd518e9 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/AssignmentStatement.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/AssignmentStatement.java
@@ -51,7 +51,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/AugmentedAssignmentStatement.java b/src/main/java/com/google/devtools/build/lib/syntax/AugmentedAssignmentStatement.java
index de0c9a7..69046db 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/AugmentedAssignmentStatement.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/AugmentedAssignmentStatement.java
@@ -58,7 +58,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/BUILD b/src/main/java/com/google/devtools/build/lib/syntax/BUILD
index 68c242e..d306931 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/syntax/BUILD
@@ -58,7 +58,7 @@
 # The Starlark evaluator
 #
 # TODO(adonovan): migrate frontend classes to :syntax as we break dependencies.
-# ASTNode is the main blocker.
+# Node is the main blocker.
 java_library(
     name = "evaluator",
     srcs = glob(
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java
index dc0f468..21f5327 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java
@@ -273,7 +273,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/BuildFileAST.java b/src/main/java/com/google/devtools/build/lib/syntax/BuildFileAST.java
index b570835..9455cd9 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/BuildFileAST.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/BuildFileAST.java
@@ -28,13 +28,11 @@
 import java.util.List;
 import javax.annotation.Nullable;
 
-/**
- * Abstract syntax node for an entire BUILD file.
- */
-// TODO(bazel-team): Consider breaking this up into two classes: One that extends ASTNode and does
+/** Abstract syntax node for an entire BUILD file. */
+// TODO(bazel-team): Consider breaking this up into two classes: One that extends Node and does
 // not include import info; and one that wraps that object with additional import info but that
-// does not itself extend ASTNode. This would help keep the AST minimalistic.
-public class BuildFileAST extends ASTNode {
+// does not itself extend Node. This would help keep the AST minimalistic.
+public class BuildFileAST extends Node {
 
   private final ImmutableList<Statement> statements;
 
@@ -292,7 +290,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Callstack.java b/src/main/java/com/google/devtools/build/lib/syntax/Callstack.java
index 352acef..a314ab7 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Callstack.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Callstack.java
@@ -37,7 +37,7 @@
     Callstack.enabled = enabled;
   }
 
-  public static void push(ASTNode node) {
+  public static void push(Node node) {
     callstack.get().add(node);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Comment.java b/src/main/java/com/google/devtools/build/lib/syntax/Comment.java
index b0b69c2..a5924f9 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Comment.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Comment.java
@@ -15,10 +15,8 @@
 
 import java.io.IOException;
 
-/**
- * Syntax node for comments.
- */
-public final class Comment extends ASTNode {
+/** Syntax node for comments. */
+public final class Comment extends Node {
 
   protected final String value;
 
@@ -31,7 +29,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Comprehension.java b/src/main/java/com/google/devtools/build/lib/syntax/Comprehension.java
index 83c41bb..522621a 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Comprehension.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Comprehension.java
@@ -75,10 +75,10 @@
   }
 
   private final boolean isDict; // {k: v for vars in iterable}
-  private final ASTNode body; // Expression or DictExpression.Entry
+  private final Node body; // Expression or DictExpression.Entry
   private final ImmutableList<Clause> clauses;
 
-  Comprehension(boolean isDict, ASTNode body, ImmutableList<Clause> clauses) {
+  Comprehension(boolean isDict, Node body, ImmutableList<Clause> clauses) {
     this.isDict = isDict;
     this.body = body;
     this.clauses = clauses;
@@ -92,7 +92,7 @@
    * Returns the loop body: an expression for a list comprehension, or a DictExpression.Entry for a
    * dict comprehension.
    */
-  public ASTNode getBody() {
+  public Node getBody() {
     return body;
   }
 
@@ -122,7 +122,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/ConditionalExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/ConditionalExpression.java
index 570616f..79ff20f 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/ConditionalExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/ConditionalExpression.java
@@ -57,7 +57,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/DefStatement.java b/src/main/java/com/google/devtools/build/lib/syntax/DefStatement.java
index e916344..fb29714 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/DefStatement.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/DefStatement.java
@@ -73,7 +73,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/DictExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/DictExpression.java
index 1d9ae98..f8b48af 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/DictExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/DictExpression.java
@@ -22,7 +22,7 @@
 public final class DictExpression extends Expression {
 
   /** A key/value pair in a dict expression or comprehension. */
-  public static final class Entry extends ASTNode {
+  public static final class Entry extends Node {
 
     private final Expression key;
     private final Expression value;
@@ -48,7 +48,7 @@
     }
 
     @Override
-    public void accept(SyntaxTreeVisitor visitor) {
+    public void accept(NodeVisitor visitor) {
       visitor.visit(this);
     }
   }
@@ -88,7 +88,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java
index 7c65eca..33c6eb6 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java
@@ -161,7 +161,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/EvalExceptionWithStackTrace.java b/src/main/java/com/google/devtools/build/lib/syntax/EvalExceptionWithStackTrace.java
index c36a649..22c96cd 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/EvalExceptionWithStackTrace.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/EvalExceptionWithStackTrace.java
@@ -27,7 +27,7 @@
 
   private StackFrame mostRecentElement;
 
-  public EvalExceptionWithStackTrace(Exception original, ASTNode culprit) {
+  public EvalExceptionWithStackTrace(Exception original, Node culprit) {
     super(extractLocation(original, culprit), getNonEmptyMessage(original), getCause(original));
     registerNode(culprit);
   }
@@ -42,10 +42,10 @@
   /**
    * Returns the appropriate location for this exception.
    *
-   * <p>If the {@code ASTNode} has a valid location, this one is used. Otherwise, we try to get the
+   * <p>If the {@code Node} has a valid location, this one is used. Otherwise, we try to get the
    * location of the exception.
    */
-  private static Location extractLocation(Exception original, ASTNode culprit) {
+  private static Location extractLocation(Exception original, Node culprit) {
     if (culprit != null && culprit.getLocation() != null) {
       return culprit.getLocation();
     }
@@ -62,10 +62,8 @@
     return (ex instanceof EvalException) ? ex.getCause() : ex;
   }
 
-  /**
-   * Adds an entry for the given {@code ASTNode} to the stack trace.
-   */
-  public void registerNode(ASTNode node) {
+  /** Adds an entry for the given {@code Node} to the stack trace. */
+  public void registerNode(Node node) {
     addStackFrame(node.toString().trim(), node.getLocation());
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Expression.java b/src/main/java/com/google/devtools/build/lib/syntax/Expression.java
index bcbfbd6..ef7f3de 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Expression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Expression.java
@@ -25,7 +25,7 @@
  * slice expressions and starred expressions cannot appear on the LHS. TODO(bazel-team): Add support
  * for assigning to slices (e.g. a[2:6] = [3]).
  */
-public abstract class Expression extends ASTNode {
+public abstract class Expression extends Node {
 
   /**
    * Kind of the expression. This is similar to using instanceof, except that it's more efficient
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/ExpressionStatement.java b/src/main/java/com/google/devtools/build/lib/syntax/ExpressionStatement.java
index 32cbd7f..3569b22 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/ExpressionStatement.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/ExpressionStatement.java
@@ -37,7 +37,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/FlowStatement.java b/src/main/java/com/google/devtools/build/lib/syntax/FlowStatement.java
index 69cad39..16a755e 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/FlowStatement.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/FlowStatement.java
@@ -41,7 +41,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/ForStatement.java b/src/main/java/com/google/devtools/build/lib/syntax/ForStatement.java
index e332d44..b228aca 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/ForStatement.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/ForStatement.java
@@ -64,7 +64,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
index c7db097..3b45142 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
@@ -1016,7 +1016,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Identifier.java b/src/main/java/com/google/devtools/build/lib/syntax/Identifier.java
index 81c0483..325fbf4 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Identifier.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Identifier.java
@@ -101,7 +101,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/IfStatement.java b/src/main/java/com/google/devtools/build/lib/syntax/IfStatement.java
index 1a9eaf6..3332f9a 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/IfStatement.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/IfStatement.java
@@ -49,7 +49,7 @@
     }
 
     @Override
-    public void accept(SyntaxTreeVisitor visitor) {
+    public void accept(NodeVisitor visitor) {
       visitor.visit(this);
     }
 
@@ -113,7 +113,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/IndexExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/IndexExpression.java
index 822fb568f..8044770 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/IndexExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/IndexExpression.java
@@ -80,7 +80,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java b/src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java
index 223135c..2cb85c1 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java
@@ -38,7 +38,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java b/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
index da1329f..ab0a5de 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
@@ -976,6 +976,6 @@
   }
 
   private void makeComment(int start, int end, String content) {
-    comments.add(ASTNode.setLocation(createLocation(start, end), new Comment(content)));
+    comments.add(Node.setLocation(createLocation(start, end), new Comment(content)));
   }
 }
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/ListLiteral.java b/src/main/java/com/google/devtools/build/lib/syntax/ListLiteral.java
index d00c8a9..b99e11f 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/ListLiteral.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/ListLiteral.java
@@ -99,7 +99,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/LoadStatement.java b/src/main/java/com/google/devtools/build/lib/syntax/LoadStatement.java
index 302523d..dac1f2c 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/LoadStatement.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/LoadStatement.java
@@ -119,7 +119,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/ASTNode.java b/src/main/java/com/google/devtools/build/lib/syntax/Node.java
similarity index 92%
rename from src/main/java/com/google/devtools/build/lib/syntax/ASTNode.java
rename to src/main/java/com/google/devtools/build/lib/syntax/Node.java
index e2dc90d..f14adfe 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/ASTNode.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Node.java
@@ -19,12 +19,12 @@
 import java.io.IOException;
 import java.util.List;
 
-/** An ASTNode is a node in a Starlark syntax tree. */
-public abstract class ASTNode {
+/** An Node is a node in a Starlark syntax tree. */
+public abstract class Node {
 
   private Location location;
 
-  protected ASTNode() {}
+  protected Node() {}
 
   /**
    * Returns whether this node represents a new scope, e.g. a function call.
@@ -58,7 +58,7 @@
   }
 
   /** @return the same node with its location set, in a slightly more fluent style */
-  public static <NodeT extends ASTNode> NodeT setLocation(Location location, NodeT node) {
+  public static <NodeT extends Node> NodeT setLocation(Location location, NodeT node) {
     node.setLocation(location);
     return node;
   }
@@ -146,11 +146,10 @@
   }
 
   /**
-   * Implements the double dispatch by calling into the node specific
-   * <code>visit</code> method of the {@link SyntaxTreeVisitor}
+   * Implements the double dispatch by calling into the node specific <code>visit</code> method of
+   * the {@link NodeVisitor}
    *
-   * @param visitor the {@link SyntaxTreeVisitor} instance to dispatch to.
+   * @param visitor the {@link NodeVisitor} instance to dispatch to.
    */
-  public abstract void accept(SyntaxTreeVisitor visitor);
-
+  public abstract void accept(NodeVisitor visitor);
 }
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SyntaxTreeVisitor.java b/src/main/java/com/google/devtools/build/lib/syntax/NodeVisitor.java
similarity index 94%
rename from src/main/java/com/google/devtools/build/lib/syntax/SyntaxTreeVisitor.java
rename to src/main/java/com/google/devtools/build/lib/syntax/NodeVisitor.java
index f2d8304..2af1ea8 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SyntaxTreeVisitor.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/NodeVisitor.java
@@ -16,18 +16,17 @@
 import com.google.devtools.build.lib.syntax.IfStatement.ConditionalStatements;
 import java.util.List;
 
-/** A visitor for visiting the nodes in the syntax tree left to right, top to bottom. */
-// TODO(adonovan): rename NodeVisitor (and ASTNode to Node).
-public class SyntaxTreeVisitor {
+/** A visitor for visiting the nodes of a syntax tree in lexical order. */
+public class NodeVisitor {
 
-  public void visit(ASTNode node) {
+  public void visit(Node node) {
     // dispatch to the node specific method
     node.accept(this);
   }
 
   // methods dealing with sequences of nodes
-  public void visitAll(List<? extends ASTNode> nodes) {
-    for (ASTNode node : nodes) {
+  public void visitAll(List<? extends Node> nodes) {
+    for (Node node : nodes) {
       visit(node);
     }
   }
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Parameter.java b/src/main/java/com/google/devtools/build/lib/syntax/Parameter.java
index 0b0f37b..3361add 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Parameter.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Parameter.java
@@ -199,7 +199,7 @@
 
   @Override
   @SuppressWarnings("unchecked")
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit((Parameter<Expression, Expression>) this);
   }
 }
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Parser.java b/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
index 79bbf69..a58b5c7 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
@@ -428,13 +428,13 @@
     return setLocation(Identifier.of("$error$"), start, end);
   }
 
-  // Convenience wrapper method around ASTNode.setLocation
-  private <NodeT extends ASTNode> NodeT setLocation(NodeT node, int startOffset, int endOffset) {
-    return ASTNode.setLocation(lexer.createLocation(startOffset, endOffset), node);
+  // Convenience wrapper method around Node.setLocation
+  private <NodeT extends Node> NodeT setLocation(NodeT node, int startOffset, int endOffset) {
+    return Node.setLocation(lexer.createLocation(startOffset, endOffset), node);
   }
 
   // Convenience method that uses end offset from the last node.
-  private <NodeT extends ASTNode> NodeT setLocation(NodeT node, int startOffset, ASTNode lastNode) {
+  private <NodeT extends Node> NodeT setLocation(NodeT node, int startOffset, Node lastNode) {
     Preconditions.checkNotNull(lastNode, "can't extract end offset from a null node");
     Preconditions.checkNotNull(lastNode.getLocation(), "lastNode doesn't have a location");
     return setLocation(node, startOffset, lastNode.getLocation().getEndOffset());
@@ -774,7 +774,7 @@
   // comprehension_suffix ::= 'FOR' loop_variables 'IN' expr comprehension_suffix
   //                        | 'IF' expr comprehension_suffix
   //                        | ']' | '}'
-  private Expression parseComprehensionSuffix(ASTNode body, TokenKind closingBracket, int offset) {
+  private Expression parseComprehensionSuffix(Node body, TokenKind closingBracket, int offset) {
     ImmutableList.Builder<Comprehension.Clause> clauses = ImmutableList.builder();
     while (true) {
       if (token.kind == TokenKind.FOR) {
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Printer.java b/src/main/java/com/google/devtools/build/lib/syntax/Printer.java
index bcd144e..749b210 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Printer.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Printer.java
@@ -416,7 +416,7 @@
       } else if (o instanceof Class<?>) {
         this.append(EvalUtils.getDataTypeNameFromClass((Class<?>) o));
 
-      } else if (o instanceof ASTNode || o instanceof Location) {
+      } else if (o instanceof Node || o instanceof Location) {
         // AST node objects and locations are printed in tracebacks and error messages,
         // it's safe to print their toString representations
         this.append(o.toString());
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/ReturnStatement.java b/src/main/java/com/google/devtools/build/lib/syntax/ReturnStatement.java
index 86dbd72..3d20477 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/ReturnStatement.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/ReturnStatement.java
@@ -42,7 +42,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java
index 4fbd4b9..f2f3da7 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java
@@ -105,7 +105,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Statement.java b/src/main/java/com/google/devtools/build/lib/syntax/Statement.java
index 1f08bbb..fac0fda 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Statement.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Statement.java
@@ -13,11 +13,8 @@
 // limitations under the License.
 package com.google.devtools.build.lib.syntax;
 
-
-/**
- * Base class for all statements nodes in the AST.
- */
-public abstract class Statement extends ASTNode {
+/** Base class for all statements nodes in the AST. */
+public abstract class Statement extends Node {
 
   /**
    * Kind of the statement. This is similar to using instanceof, except that it's more efficient and
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java b/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java
index 636510d..e156d4f 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java
@@ -46,7 +46,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/UnaryOperatorExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/UnaryOperatorExpression.java
index b0a6ee5..78389ed 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/UnaryOperatorExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/UnaryOperatorExpression.java
@@ -99,7 +99,7 @@
   }
 
   @Override
-  public void accept(SyntaxTreeVisitor visitor) {
+  public void accept(NodeVisitor visitor) {
     visitor.visit(this);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java b/src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java
index 6cc475d..2e25d08 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java
@@ -34,7 +34,7 @@
  * (even on the lines before its first assignment).
  */
 // TODO(adonovan): make this class private. Call it through the EvalUtils facade.
-public final class ValidationEnvironment extends SyntaxTreeVisitor {
+public final class ValidationEnvironment extends NodeVisitor {
 
   enum Scope {
     /** Symbols defined inside a function or a comprehension. */
@@ -67,8 +67,8 @@
   }
 
   /**
-   * We use an unchecked exception around EvalException because the SyntaxTreeVisitor doesn't let
-   * visit methods throw checked exceptions. We might change that later.
+   * We use an unchecked exception around EvalException because the NodeVisitor doesn't let visit
+   * methods throw checked exceptions. We might change that later.
    */
   private static class ValidationException extends RuntimeException {
     EvalException exception;