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;