bazel syntax: rename BuildFileAST -> StarlarkFile

This change was 100% mechanical, thanks to the distinctive name.
We do not attempt to rename local variables.

Another breaking API change for copybara.

PiperOrigin-RevId: 271351606
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AstParseResult.java b/src/main/java/com/google/devtools/build/lib/packages/AstParseResult.java
index 08d6bb2..fc0cd9b 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/AstParseResult.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/AstParseResult.java
@@ -16,15 +16,15 @@
 import com.google.devtools.build.lib.events.Event;
 import com.google.devtools.build.lib.events.ExtendedEventHandler.Postable;
 import com.google.devtools.build.lib.events.StoredEventHandler;
-import com.google.devtools.build.lib.syntax.BuildFileAST;
+import com.google.devtools.build.lib.syntax.StarlarkFile;
 
 /** The result of parsing a BUILD file. */
 public class AstParseResult {
-  public final BuildFileAST ast;
+  public final StarlarkFile ast;
   public final Iterable<Event> allEvents;
   public final Iterable<Postable> allPosts;
 
-  public AstParseResult(BuildFileAST ast, StoredEventHandler astParsingEventHandler) {
+  public AstParseResult(StarlarkFile ast, StoredEventHandler astParsingEventHandler) {
     this.ast = ast;
     this.allPosts = astParsingEventHandler.getPosts();
     this.allEvents = astParsingEventHandler.getEvents();
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 56124b8..3ea6144 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
@@ -43,7 +43,6 @@
 import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
 import com.google.devtools.build.lib.syntax.Argument;
 import com.google.devtools.build.lib.syntax.BaseFunction;
-import com.google.devtools.build.lib.syntax.BuildFileAST;
 import com.google.devtools.build.lib.syntax.BuiltinFunction;
 import com.google.devtools.build.lib.syntax.CallUtils;
 import com.google.devtools.build.lib.syntax.ClassObject;
@@ -69,6 +68,7 @@
 import com.google.devtools.build.lib.syntax.SkylarkSignatureProcessor;
 import com.google.devtools.build.lib.syntax.SkylarkUtils;
 import com.google.devtools.build.lib.syntax.SkylarkUtils.Phase;
+import com.google.devtools.build.lib.syntax.StarlarkFile;
 import com.google.devtools.build.lib.syntax.StarlarkSemantics;
 import com.google.devtools.build.lib.syntax.StarlarkThread;
 import com.google.devtools.build.lib.syntax.StarlarkThread.Extension;
@@ -1373,12 +1373,8 @@
     StoredEventHandler localReporterForParsing = new StoredEventHandler();
     // Run the lexer and parser with a local reporter, so that errors from other threads do not
     // show up below.
-    BuildFileAST buildFileAST =
-        parseBuildFile(
-            packageId,
-            input,
-            preludeStatements,
-            localReporterForParsing);
+    StarlarkFile buildFileAST =
+        parseBuildFile(packageId, input, preludeStatements, localReporterForParsing);
     AstParseResult astParseResult =
         new AstParseResult(buildFileAST, localReporterForParsing);
     return createPackageFromAst(
@@ -1394,15 +1390,15 @@
         globber);
   }
 
-  public static BuildFileAST parseBuildFile(
+  public static StarlarkFile parseBuildFile(
       PackageIdentifier packageId,
       ParserInput input,
       List<Statement> preludeStatements,
       ExtendedEventHandler eventHandler) {
     // Logged messages are used as a testability hook tracing the parsing progress
     logger.fine("Starting to parse " + packageId);
-    BuildFileAST buildFileAST =
-        BuildFileAST.parseWithPrelude(input, preludeStatements, eventHandler);
+    StarlarkFile buildFileAST =
+        StarlarkFile.parseWithPrelude(input, preludeStatements, eventHandler);
     logger.fine("Finished parsing of " + packageId);
     return buildFileAST;
   }
@@ -1722,7 +1718,7 @@
   public Package.Builder evaluateBuildFile(
       String workspaceName,
       PackageIdentifier packageId,
-      BuildFileAST file,
+      StarlarkFile file,
       RootedPath buildFilePath,
       Globber globber,
       Iterable<Event> pastEvents,
@@ -1925,7 +1921,7 @@
   // files.
   // TODO(adonovan): this is the ideal place to extract string literals from glob calls for
   // prefetching. Combine.
-  public static boolean checkBuildSyntax(BuildFileAST file, final EventHandler eventHandler) {
+  public static boolean checkBuildSyntax(StarlarkFile file, final EventHandler eventHandler) {
     final boolean[] success = {true};
     NodeVisitor checker =
         new NodeVisitor() {
diff --git a/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java b/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
index 230abe9..dc59b49 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
@@ -29,7 +29,6 @@
 import com.google.devtools.build.lib.packages.Package.NameConflictException;
 import com.google.devtools.build.lib.packages.PackageFactory.EnvironmentExtension;
 import com.google.devtools.build.lib.syntax.BaseFunction;
-import com.google.devtools.build.lib.syntax.BuildFileAST;
 import com.google.devtools.build.lib.syntax.BuiltinFunction;
 import com.google.devtools.build.lib.syntax.CallUtils;
 import com.google.devtools.build.lib.syntax.ClassObject;
@@ -41,6 +40,7 @@
 import com.google.devtools.build.lib.syntax.Runtime;
 import com.google.devtools.build.lib.syntax.SkylarkUtils;
 import com.google.devtools.build.lib.syntax.SkylarkUtils.Phase;
+import com.google.devtools.build.lib.syntax.StarlarkFile;
 import com.google.devtools.build.lib.syntax.StarlarkSemantics;
 import com.google.devtools.build.lib.syntax.StarlarkThread;
 import com.google.devtools.build.lib.syntax.StarlarkThread.Extension;
@@ -134,7 +134,7 @@
     if (localReporter == null) {
       localReporter = new StoredEventHandler();
     }
-    BuildFileAST buildFileAST = BuildFileAST.parse(source, localReporter);
+    StarlarkFile buildFileAST = StarlarkFile.parse(source, localReporter);
     if (buildFileAST.containsErrors()) {
       throw new BuildFileContainsErrorsException(
           LabelConstants.EXTERNAL_PACKAGE_IDENTIFIER, "Failed to parse " + source.getPath());
@@ -153,7 +153,7 @@
    * the //external package.
    */
   public void execute(
-      BuildFileAST file,
+      StarlarkFile file,
       Map<String, Extension> importedExtensions,
       StarlarkSemantics starlarkSemantics,
       WorkspaceFileValue.WorkspaceFileKey workspaceFileKey)
@@ -165,7 +165,7 @@
   }
 
   private void execute(
-      BuildFileAST file,
+      StarlarkFile file,
       @Nullable Map<String, Extension> importedExtensions,
       StarlarkSemantics starlarkSemantics,
       StoredEventHandler localReporter,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedFileFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedFileFunction.java
index f2e2f8f..ec711e8 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedFileFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedFileFunction.java
@@ -23,9 +23,9 @@
 import com.google.devtools.build.lib.packages.NoSuchThingException;
 import com.google.devtools.build.lib.rules.repository.ResolvedFileValue.ResolvedFileKey;
 import com.google.devtools.build.lib.skyframe.PrecomputedValue;
-import com.google.devtools.build.lib.syntax.BuildFileAST;
 import com.google.devtools.build.lib.syntax.Mutability;
 import com.google.devtools.build.lib.syntax.ParserInput;
+import com.google.devtools.build.lib.syntax.StarlarkFile;
 import com.google.devtools.build.lib.syntax.StarlarkSemantics;
 import com.google.devtools.build.lib.syntax.StarlarkThread;
 import com.google.devtools.build.lib.vfs.FileSystemUtils;
@@ -63,8 +63,8 @@
         byte[] bytes =
             FileSystemUtils.readWithKnownFileSize(
                 key.getPath().asPath(), key.getPath().asPath().getFileSize());
-        BuildFileAST ast =
-            BuildFileAST.parse(
+        StarlarkFile ast =
+            StarlarkFile.parse(
                 ParserInput.create(bytes, key.getPath().asPath().asFragment()), env.getListener());
         if (ast.containsErrors()) {
           throw new ResolvedFileFunctionException(
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ASTFileLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ASTFileLookupFunction.java
index d065bfd..5cb106c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ASTFileLookupFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ASTFileLookupFunction.java
@@ -20,9 +20,9 @@
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.packages.BuildFileNotFoundException;
 import com.google.devtools.build.lib.packages.RuleClassProvider;
-import com.google.devtools.build.lib.syntax.BuildFileAST;
 import com.google.devtools.build.lib.syntax.Mutability;
 import com.google.devtools.build.lib.syntax.ParserInput;
+import com.google.devtools.build.lib.syntax.StarlarkFile;
 import com.google.devtools.build.lib.syntax.StarlarkSemantics;
 import com.google.devtools.build.lib.syntax.StarlarkThread;
 import com.google.devtools.build.lib.vfs.FileSystemUtils;
@@ -41,10 +41,10 @@
 /**
  * A SkyFunction for {@link ASTFileLookupValue}s.
  *
- * <p> Given a {@link Label} referencing a Skylark file, loads it as a syntax tree
- * ({@link BuildFileAST}). The Label must be absolute, and must not reference the special
- * {@code external} package. If the file (or the package containing it) doesn't exist, the
- * function doesn't fail, but instead returns a specific {@code NO_FILE} {@link ASTFileLookupValue}.
+ * <p>Given a {@link Label} referencing a Skylark file, loads it as a syntax tree ({@link
+ * StarlarkFile}). The Label must be absolute, and must not reference the special {@code external}
+ * package. If the file (or the package containing it) doesn't exist, the function doesn't fail, but
+ * instead returns a specific {@code NO_FILE} {@link ASTFileLookupValue}.
  */
 public class ASTFileLookupFunction implements SkyFunction {
 
@@ -110,7 +110,7 @@
     }
 
     // Both the package and the file exist; load the file and parse it as an AST.
-    BuildFileAST file = null;
+    StarlarkFile file = null;
     Path path = rootedPath.asPath();
     try {
       long astFileSize = fileValue.getSize();
@@ -127,7 +127,7 @@
                 /*repoMapping=*/ ImmutableMap.of());
         byte[] bytes = FileSystemUtils.readWithKnownFileSize(path, astFileSize);
         ParserInput input = ParserInput.create(bytes, path.asFragment());
-        file = BuildFileAST.parseWithDigest(input, path.getDigest(), env.getListener());
+        file = StarlarkFile.parseWithDigest(input, path.getDigest(), env.getListener());
         file = file.validate(thread, /*isBuildFile=*/ false, env.getListener());
       }
     } catch (IOException e) {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ASTFileLookupValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/ASTFileLookupValue.java
index 7f38607..7104882 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ASTFileLookupValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ASTFileLookupValue.java
@@ -19,7 +19,7 @@
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.concurrent.BlazeInterners;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
-import com.google.devtools.build.lib.syntax.BuildFileAST;
+import com.google.devtools.build.lib.syntax.StarlarkFile;
 import com.google.devtools.build.skyframe.AbstractSkyKey;
 import com.google.devtools.build.skyframe.NotComparableSkyValue;
 import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -33,23 +33,25 @@
 // almost certainly be unequal to the previous value. This is because of (i) the change-pruning
 // semantics of the PackageLookupValue dep and the FileValue dep; consider the latter: if the
 // FileValue for the bzl file has changed, then the contents of the bzl file probably changed and
-// (ii) we don't currently have skylark-semantic-equality in BuildFileAST, so two BuildFileAST
+// (ii) we don't currently have skylark-semantic-equality in StarlarkFile, so two StarlarkFile
 // instances representing two different contents of a bzl file will be different.
 // TODO(bazel-team): Consider doing better here. As a pre-req, we would need
-// skylark-semantic-equality in BuildFileAST, rather than equality naively based on the contents of
+// skylark-semantic-equality in StarlarkFile, rather than equality naively based on the contents of
 // the bzl file. For a concrete example, the contents of comment lines do not currently impact
 // skylark semantics.
 public abstract class ASTFileLookupValue implements NotComparableSkyValue {
   public abstract boolean lookupSuccessful();
-  public abstract BuildFileAST getAST();
+
+  public abstract StarlarkFile getAST();
+
   public abstract String getErrorMsg();
 
   /** If the file is found, this class encapsulates the parsed AST. */
   @AutoCodec.VisibleForSerialization
   public static class ASTLookupWithFile extends ASTFileLookupValue {
-    private final BuildFileAST ast;
+    private final StarlarkFile ast;
 
-    private ASTLookupWithFile(BuildFileAST ast) {
+    private ASTLookupWithFile(StarlarkFile ast) {
       Preconditions.checkNotNull(ast);
       this.ast = ast;
     }
@@ -60,7 +62,7 @@
     }
 
     @Override
-    public BuildFileAST getAST() {
+    public StarlarkFile getAST() {
       return this.ast;
     }
 
@@ -86,7 +88,7 @@
     }
 
     @Override
-    public BuildFileAST getAST() {
+    public StarlarkFile getAST() {
       throw new IllegalStateException("attempted to retrieve AST from an unsuccessful lookup");
     }
 
@@ -111,7 +113,7 @@
         String.format("Unable to load file '%s': it isn't a regular file", fileLabel));
   }
 
-  public static ASTFileLookupValue withFile(BuildFileAST ast) {
+  public static ASTFileLookupValue withFile(StarlarkFile ast) {
     return new ASTLookupWithFile(ast);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
index dbbbf39..6b8ede8 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
@@ -56,9 +56,9 @@
 import com.google.devtools.build.lib.skyframe.GlobValue.InvalidGlobPatternException;
 import com.google.devtools.build.lib.skyframe.SkylarkImportLookupFunction.SkylarkImportFailedException;
 import com.google.devtools.build.lib.skyframe.SkylarkImportLookupValue.SkylarkImportLookupKey;
-import com.google.devtools.build.lib.syntax.BuildFileAST;
 import com.google.devtools.build.lib.syntax.EvalException;
 import com.google.devtools.build.lib.syntax.ParserInput;
+import com.google.devtools.build.lib.syntax.StarlarkFile;
 import com.google.devtools.build.lib.syntax.StarlarkSemantics;
 import com.google.devtools.build.lib.syntax.StarlarkThread.Extension;
 import com.google.devtools.build.lib.syntax.Statement;
@@ -548,7 +548,7 @@
       RootedPath buildFilePath,
       PackageIdentifier packageId,
       ImmutableMap<RepositoryName, RepositoryName> repoMapping,
-      BuildFileAST file,
+      StarlarkFile file,
       int workspaceChunk,
       Environment env,
       SkylarkImportLookupFunction skylarkImportLookupFunctionForInlining)
@@ -1167,7 +1167,7 @@
         }
         input = ParserInput.create(buildFileBytes, inputFile.asFragment());
         StoredEventHandler astParsingEventHandler = new StoredEventHandler();
-        BuildFileAST ast =
+        StarlarkFile ast =
             PackageFactory.parseBuildFile(
                 packageId, input, preludeStatements, astParsingEventHandler);
         astParseResult = new AstParseResult(ast, astParsingEventHandler);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java
index db9176f..b4d8881 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java
@@ -44,11 +44,11 @@
 import com.google.devtools.build.lib.packages.WorkspaceFileValue;
 import com.google.devtools.build.lib.skyframe.SkylarkImportLookupValue.SkylarkImportLookupKey;
 import com.google.devtools.build.lib.syntax.AssignmentStatement;
-import com.google.devtools.build.lib.syntax.BuildFileAST;
 import com.google.devtools.build.lib.syntax.EvalException;
 import com.google.devtools.build.lib.syntax.Identifier;
 import com.google.devtools.build.lib.syntax.LoadStatement;
 import com.google.devtools.build.lib.syntax.Mutability;
+import com.google.devtools.build.lib.syntax.StarlarkFile;
 import com.google.devtools.build.lib.syntax.StarlarkSemantics;
 import com.google.devtools.build.lib.syntax.StarlarkThread;
 import com.google.devtools.build.lib.syntax.StarlarkThread.Extension;
@@ -319,7 +319,7 @@
       // Skylark import files have to exist.
       throw new SkylarkImportFailedException(astLookupValue.getErrorMsg());
     }
-    BuildFileAST file = astLookupValue.getAST();
+    StarlarkFile file = astLookupValue.getAST();
     if (file.containsErrors()) {
       throw SkylarkImportFailedException.skylarkErrors(filePath);
     }
@@ -443,7 +443,7 @@
   @Nullable
   static Map<String, Label> getLoadMap(
       EventHandler handler,
-      BuildFileAST file,
+      StarlarkFile file,
       PackageIdentifier base,
       ImmutableMap<RepositoryName, RepositoryName> repoMapping) {
     Preconditions.checkArgument(!base.getRepository().isDefault());
@@ -577,7 +577,7 @@
 
   /** Creates the Extension to be imported. */
   private Extension createExtension(
-      BuildFileAST ast,
+      StarlarkFile ast,
       Label extensionLabel,
       Map<String, Extension> importMap,
       StarlarkSemantics starlarkSemantics,
@@ -616,7 +616,7 @@
   }
 
   public static void execAndExport(
-      BuildFileAST ast,
+      StarlarkFile ast,
       Label extensionLabel,
       EventHandler eventHandler,
       StarlarkThread extensionThread)
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTFunction.java
index 55b14b4..e33ade1 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTFunction.java
@@ -27,10 +27,10 @@
 import com.google.devtools.build.lib.packages.RuleClassProvider;
 import com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction;
 import com.google.devtools.build.lib.rules.repository.ResolvedFileValue;
-import com.google.devtools.build.lib.syntax.BuildFileAST;
 import com.google.devtools.build.lib.syntax.LoadStatement;
 import com.google.devtools.build.lib.syntax.ParserInput;
 import com.google.devtools.build.lib.syntax.Printer;
+import com.google.devtools.build.lib.syntax.StarlarkFile;
 import com.google.devtools.build.lib.syntax.Statement;
 import com.google.devtools.build.lib.vfs.FileSystemUtils;
 import com.google.devtools.build.lib.vfs.Path;
@@ -45,9 +45,7 @@
 import java.util.List;
 import java.util.Map;
 
-/**
- * A SkyFunction to parse WORKSPACE files into a BuildFileAST.
- */
+/** A SkyFunction to parse WORKSPACE files into a StarlarkFile. */
 public class WorkspaceASTFunction implements SkyFunction {
   private final RuleClassProvider ruleClassProvider;
 
@@ -81,8 +79,8 @@
 
     Path repoWorkspace = workspaceRoot.getRoot().getRelative(workspaceRoot.getRootRelativePath());
     try {
-      BuildFileAST file =
-          BuildFileAST.parse(
+      StarlarkFile file =
+          StarlarkFile.parse(
               ParserInput.create(
                   ruleClassProvider.getDefaultWorkspacePrefix(),
                   PathFragment.create("/DEFAULT.WORKSPACE")),
@@ -96,7 +94,7 @@
       }
       if (newWorkspaceFileContents != null) {
         file =
-            BuildFileAST.parseVirtualBuildFile(
+            StarlarkFile.parseVirtualBuildFile(
                 ParserInput.create(
                     newWorkspaceFileContents, resolvedFile.get().asPath().asFragment()),
                 file.getStatements(),
@@ -105,7 +103,7 @@
         byte[] bytes =
             FileSystemUtils.readWithKnownFileSize(repoWorkspace, repoWorkspace.getFileSize());
         file =
-            BuildFileAST.parseWithPrelude(
+            StarlarkFile.parseWithPrelude(
                 ParserInput.create(bytes, repoWorkspace.asFragment()),
                 file.getStatements(),
                 env.getListener());
@@ -117,7 +115,7 @@
         }
       }
       file =
-          BuildFileAST.parseWithPrelude(
+          StarlarkFile.parseWithPrelude(
               ParserInput.create(
                   resolvedFile.isPresent() ? "" : ruleClassProvider.getDefaultWorkspaceSuffix(),
                   PathFragment.create("/DEFAULT.WORKSPACE.SUFFIX")),
@@ -222,8 +220,8 @@
    * Cut {@code ast} into a list of AST separated by load statements. We cut right before each load
    * statement series.
    */
-  private static ImmutableList<BuildFileAST> splitAST(BuildFileAST ast) {
-    ImmutableList.Builder<BuildFileAST> asts = ImmutableList.builder();
+  private static ImmutableList<StarlarkFile> splitAST(StarlarkFile ast) {
+    ImmutableList.Builder<StarlarkFile> asts = ImmutableList.builder();
     int prevIdx = 0;
     boolean lastIsLoad = true; // don't cut if the first statement is a load.
     List<Statement> statements = ast.getStatements();
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTValue.java
index 7011784..6397c79 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTValue.java
@@ -18,7 +18,7 @@
 import com.google.common.collect.Interner;
 import com.google.devtools.build.lib.concurrent.BlazeInterners;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
-import com.google.devtools.build.lib.syntax.BuildFileAST;
+import com.google.devtools.build.lib.syntax.StarlarkFile;
 import com.google.devtools.build.lib.vfs.RootedPath;
 import com.google.devtools.build.skyframe.AbstractSkyKey;
 import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -48,14 +48,14 @@
  */
 public class WorkspaceASTValue implements SkyValue {
 
-  private final ImmutableList<BuildFileAST> asts;
+  private final ImmutableList<StarlarkFile> asts;
 
-  public WorkspaceASTValue(List<BuildFileAST> asts) {
+  public WorkspaceASTValue(List<StarlarkFile> asts) {
     Preconditions.checkNotNull(asts);
     this.asts = ImmutableList.copyOf(asts);
   }
 
-  public ImmutableList<BuildFileAST> getASTs() {
+  public ImmutableList<StarlarkFile> getASTs() {
     return asts;
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java
index 74716bd..22aadd5 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java
@@ -25,8 +25,8 @@
 import com.google.devtools.build.lib.packages.WorkspaceFactory;
 import com.google.devtools.build.lib.packages.WorkspaceFileValue;
 import com.google.devtools.build.lib.packages.WorkspaceFileValue.WorkspaceFileKey;
-import com.google.devtools.build.lib.syntax.BuildFileAST;
 import com.google.devtools.build.lib.syntax.Mutability;
+import com.google.devtools.build.lib.syntax.StarlarkFile;
 import com.google.devtools.build.lib.syntax.StarlarkSemantics;
 import com.google.devtools.build.lib.syntax.StarlarkThread.Extension;
 import com.google.devtools.build.lib.vfs.RootedPath;
@@ -123,7 +123,7 @@
         }
         parser.setParent(prevValue.getPackage(), prevValue.getImportMap(), prevValue.getBindings());
       }
-      BuildFileAST ast = workspaceASTValue.getASTs().get(key.getIndex());
+      StarlarkFile ast = workspaceASTValue.getASTs().get(key.getIndex());
       PackageFunction.SkylarkImportResult importResult =
           PackageFunction.fetchImportsFromBuildFile(
               repoWorkspace,
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 a5924f9..9ca6728 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
@@ -36,7 +36,7 @@
   @Override
   public void prettyPrint(Appendable buffer, int indentLevel) throws IOException {
     // We can't really print comments in the right place anyway, due to how their relative order
-    // is lost in the representation of BuildFileAST. So don't bother word-wrapping and just print
+    // is lost in the representation of StarlarkFile. So don't bother word-wrapping and just print
     // it on a single line.
     printIndent(buffer, indentLevel);
     buffer.append("# ");
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 5368e2e..06bc54c 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
@@ -69,7 +69,7 @@
   // TODO(adonovan): remove dependency from syntax -> EventHandler.
   // A call to Expression.parse either succeeds or fails; there is no useful middle ground, so an
   // exception is appropriate. The exception would contain the list of errors.
-  // By contrast, a call to BuildFileAST.parse should return both a partial AST and a list of
+  // By contrast, a call to StarlarkFile.parse should return both a partial AST and a list of
   // errors,
   // and generally it is useful to keep both around, so if we put the errors in the root of the AST,
   // then client can deal with them however they like, e.g. by sending them to the event handler.
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Node.java b/src/main/java/com/google/devtools/build/lib/syntax/Node.java
index 1150116..d19b669 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Node.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Node.java
@@ -92,7 +92,7 @@
    *
    * <p>Pretty printing can also be used as a proxy for comparing for equality between two ASTs.
    * This can be very useful in tests. However, it is still possible for two different trees to have
-   * the same pretty printing. In particular, {@link BuildFileAST} includes import metadata and
+   * the same pretty printing. In particular, {@link StarlarkFile} includes import metadata and
    * comment information that is not reflected in the string.
    */
   public abstract void prettyPrint(Appendable buffer, int indentLevel) throws IOException;
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/NodeVisitor.java b/src/main/java/com/google/devtools/build/lib/syntax/NodeVisitor.java
index eaaa97d..a98a016 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/NodeVisitor.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/NodeVisitor.java
@@ -53,7 +53,7 @@
     }
   }
 
-  public void visit(BuildFileAST node) {
+  public void visit(StarlarkFile node) {
     visitBlock(node.getStatements());
     visitAll(node.getComments());
   }
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 6834531..ff4e4d8 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
@@ -41,7 +41,7 @@
  */
 // TODO(adonovan): break syntax->events dependency and simplify error handling in the API. The
 // result of parsing is a complete, partial, or even empty, file plus a list of errors. For
-// BuildFileAST.parse, we should materialize the error list within the BuildFileAST and remove all
+// StarlarkFile.parse, we should materialize the error list within the StarlarkFile and remove all
 // mention of event handlers; let the client decide whether to throw or report errors. For
 // Expression.parse, throwing an exception is appropriate: expressions are typically so short that
 // only one error is wanted, so the result can be all-or-nothing.
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSignatureProcessor.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSignatureProcessor.java
index 83723fa..5cd12f4 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSignatureProcessor.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSignatureProcessor.java
@@ -251,7 +251,7 @@
                   .setEventHandler(StarlarkThread.FAIL_FAST_HANDLER)
                   .build()
                   .update("unbound", Runtime.UNBOUND);
-          defaultValue = BuildFileAST.eval(ParserInput.fromLines(paramDefaultValue), thread);
+          defaultValue = StarlarkFile.eval(ParserInput.fromLines(paramDefaultValue), thread);
           defaultValueCache.put(paramDefaultValue, defaultValue);
           return defaultValue;
         }
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/BuildFileAST.java b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkFile.java
similarity index 91%
rename from src/main/java/com/google/devtools/build/lib/syntax/BuildFileAST.java
rename to src/main/java/com/google/devtools/build/lib/syntax/StarlarkFile.java
index 7f7e7b5..9a9f458 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/BuildFileAST.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkFile.java
@@ -24,8 +24,7 @@
 import javax.annotation.Nullable;
 
 /** Syntax tree for a Starlark file, such as a Bazel BUILD or .bzl file. */
-// TODO(adonovan): rename to StarlarkFile.
-public class BuildFileAST extends Node {
+public class StarlarkFile extends Node {
 
   private final ImmutableList<Statement> statements;
 
@@ -40,7 +39,7 @@
 
   @Nullable private final String contentHashCode;
 
-  private BuildFileAST(
+  private StarlarkFile(
       ImmutableList<Statement> statements,
       boolean containsErrors,
       String contentHashCode,
@@ -55,7 +54,7 @@
     this.stringEscapeEvents = stringEscapeEvents;
   }
 
-  private static BuildFileAST create(
+  private static StarlarkFile create(
       List<Statement> preludeStatements,
       ParseResult result,
       String contentHashCode,
@@ -75,7 +74,7 @@
       statementsbuilder.addAll(result.statements);
     }
     ImmutableList<Statement> statements = statementsbuilder.build();
-    return new BuildFileAST(
+    return new StarlarkFile(
         statements,
         result.containsErrors,
         contentHashCode,
@@ -88,9 +87,9 @@
    * Extract a subtree containing only statements from {@code firstStatement} (included) up to
    * {@code lastStatement} excluded.
    */
-  public BuildFileAST subTree(int firstStatement, int lastStatement) {
+  public StarlarkFile subTree(int firstStatement, int lastStatement) {
     ImmutableList<Statement> statements = this.statements.subList(firstStatement, lastStatement);
-    return new BuildFileAST(
+    return new StarlarkFile(
         statements,
         containsErrors,
         null,
@@ -207,7 +206,7 @@
 
   @Override
   public String toString() {
-    return "<BuildFileAST with " + statements.size() + " statements>";
+    return "<StarlarkFile with " + statements.size() + " statements>";
   }
 
   @Override
@@ -220,10 +219,8 @@
    * front of its statement list. All errors during scanning or parsing will be reported to the
    * event handler.
    */
-  public static BuildFileAST parseWithPrelude(
-      ParserInput input,
-      List<Statement> preludeStatements,
-      EventHandler eventHandler) {
+  public static StarlarkFile parseWithPrelude(
+      ParserInput input, List<Statement> preludeStatements, EventHandler eventHandler) {
     Parser.ParseResult result = Parser.parseFile(input, eventHandler);
     return create(
         preludeStatements, result, /* contentHashCode= */ null, /*allowImportInternal=*/ false);
@@ -234,16 +231,14 @@
    * exempt from visibility restrictions. All errors during scanning or parsing will be reported to
    * the event handler.
    */
-  public static BuildFileAST parseVirtualBuildFile(
-      ParserInput input,
-      List<Statement> preludeStatements,
-      EventHandler eventHandler) {
+  public static StarlarkFile parseVirtualBuildFile(
+      ParserInput input, List<Statement> preludeStatements, EventHandler eventHandler) {
     Parser.ParseResult result = Parser.parseFile(input, eventHandler);
     return create(
         preludeStatements, result, /* contentHashCode= */ null, /*allowImportInternal=*/ true);
   }
 
-  public static BuildFileAST parseWithDigest(
+  public static StarlarkFile parseWithDigest(
       ParserInput input, byte[] digest, EventHandler eventHandler) throws IOException {
     Parser.ParseResult result = Parser.parseFile(input, eventHandler);
     return create(
@@ -253,7 +248,7 @@
         /* allowImportInternal= */ false);
   }
 
-  public static BuildFileAST parse(ParserInput input, EventHandler eventHandler) {
+  public static StarlarkFile parse(ParserInput input, EventHandler eventHandler) {
     Parser.ParseResult result = Parser.parseFile(input, eventHandler);
     return create(
         /* preludeStatements= */ ImmutableList.<Statement>of(),
@@ -267,9 +262,9 @@
    * during scanning or parsing will be reported to the event handler.
    */
   // TODO(adonovan): redundant; delete.
-  public static BuildFileAST parseWithoutImports(ParserInput input, EventHandler eventHandler) {
+  public static StarlarkFile parseWithoutImports(ParserInput input, EventHandler eventHandler) {
     ParseResult result = Parser.parseFile(input, eventHandler);
-    return new BuildFileAST(
+    return new StarlarkFile(
         ImmutableList.copyOf(result.statements),
         result.containsErrors,
         /* contentHashCode= */ null,
@@ -286,7 +281,7 @@
   // TODO(adonovan): eliminate. Most callers need validation because they intend to execute the
   // file, and should be made to use higher-level operations in EvalUtils.
   // rest should skip this step. Called from EvaluationTestCase, ParserTest, ASTFileLookupFunction.
-  public BuildFileAST validate(
+  public StarlarkFile validate(
       StarlarkThread thread, boolean isBuildFile, EventHandler eventHandler) {
     try {
       ValidationEnvironment.validateFile(this, thread, isBuildFile);
@@ -299,7 +294,7 @@
     if (containsErrors) {
       return this; // already marked as errant
     }
-    return new BuildFileAST(
+    return new StarlarkFile(
         statements,
         /*containsErrors=*/ true,
         contentHashCode,
@@ -338,7 +333,7 @@
   @Nullable
   public static Object eval(ParserInput input, StarlarkThread thread)
       throws EvalException, InterruptedException {
-    BuildFileAST ast = parseAndValidateSkylark(input, thread);
+    StarlarkFile ast = parseAndValidateSkylark(input, thread);
     return ast.eval(thread);
   }
 
@@ -347,9 +342,9 @@
    * it throws an EvalException. Uses Starlark (not BUILD) validation semantics.
    */
   // TODO(adonovan): move to EvalUtils; see above.
-  public static BuildFileAST parseAndValidateSkylark(ParserInput input, StarlarkThread thread)
+  public static StarlarkFile parseAndValidateSkylark(ParserInput input, StarlarkThread thread)
       throws EvalException {
-    BuildFileAST file = parse(input, thread.getEventHandler());
+    StarlarkFile file = parse(input, thread.getEventHandler());
     file.replayLexerEvents(thread, thread.getEventHandler());
     ValidationEnvironment.validateFile(file, thread, /*isBuildFile=*/ false);
     return file;
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkThread.java b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkThread.java
index a7732e2..a03b7de 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkThread.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkThread.java
@@ -1206,7 +1206,7 @@
   // TODO(adonovan): push this up into the debugger once the exec API is finalized.
   public void debugExec(ParserInput input) throws EvalException, InterruptedException {
     EvalEventHandler handler = new EvalEventHandler();
-    BuildFileAST file = BuildFileAST.parse(input, handler);
+    StarlarkFile file = StarlarkFile.parse(input, handler);
     if (!handler.messages.isEmpty()) {
       Event ev = handler.messages.get(0);
       throw new EvalException(ev.getLocation(), ev.getMessage());
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 d3d90b5..bb61d57 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
@@ -396,7 +396,7 @@
 
   // Public entry point, throwing variant.
   // TODO(adonovan): combine with variant below.
-  public static void validateFile(BuildFileAST file, StarlarkThread thread, boolean isBuildFile)
+  public static void validateFile(StarlarkFile file, StarlarkThread thread, boolean isBuildFile)
       throws EvalException {
     try {
       ValidationEnvironment venv = new ValidationEnvironment(thread, isBuildFile);
@@ -410,7 +410,7 @@
 
   // Public entry point, error handling variant.
   public static boolean validateFile(
-      BuildFileAST file, StarlarkThread thread, boolean isBuildFile, EventHandler eventHandler) {
+      StarlarkFile file, StarlarkThread thread, boolean isBuildFile, EventHandler eventHandler) {
     try {
       validateFile(file, thread, isBuildFile);
       return true;
diff --git a/src/main/java/com/google/devtools/build/skydoc/SkydocMain.java b/src/main/java/com/google/devtools/build/skydoc/SkydocMain.java
index f1368e8..a960812 100644
--- a/src/main/java/com/google/devtools/build/skydoc/SkydocMain.java
+++ b/src/main/java/com/google/devtools/build/skydoc/SkydocMain.java
@@ -55,13 +55,13 @@
 import com.google.devtools.build.lib.skylarkbuildapi.stubs.SkylarkAspectStub;
 import com.google.devtools.build.lib.skylarkbuildapi.test.TestingBootstrap;
 import com.google.devtools.build.lib.syntax.BaseFunction;
-import com.google.devtools.build.lib.syntax.BuildFileAST;
 import com.google.devtools.build.lib.syntax.EvalException;
 import com.google.devtools.build.lib.syntax.LoadStatement;
 import com.google.devtools.build.lib.syntax.MethodLibrary;
 import com.google.devtools.build.lib.syntax.Mutability;
 import com.google.devtools.build.lib.syntax.ParserInput;
 import com.google.devtools.build.lib.syntax.Runtime;
+import com.google.devtools.build.lib.syntax.StarlarkFile;
 import com.google.devtools.build.lib.syntax.StarlarkFunction;
 import com.google.devtools.build.lib.syntax.StarlarkSemantics;
 import com.google.devtools.build.lib.syntax.StarlarkThread;
@@ -389,7 +389,7 @@
     }
   }
 
-  private static String getModuleDoc(BuildFileAST buildFileAST) {
+  private static String getModuleDoc(StarlarkFile buildFileAST) {
     ImmutableList<Statement> fileStatements = buildFileAST.getStatements();
     if (!fileStatements.isEmpty()) {
       Statement moduleComment = fileStatements.get(0);
@@ -429,7 +429,7 @@
     pending.add(path);
 
     ParserInput parserInputSource = getInputSource(path.toString());
-    BuildFileAST file = BuildFileAST.parse(parserInputSource, eventHandler);
+    StarlarkFile file = StarlarkFile.parse(parserInputSource, eventHandler);
 
     moduleDocMap.put(label, getModuleDoc(file));
 
@@ -490,7 +490,7 @@
   /** Evaluates the AST from a single skylark file, given the already-resolved imports. */
   private StarlarkThread evalSkylarkBody(
       StarlarkSemantics semantics,
-      BuildFileAST buildFileAST,
+      StarlarkFile buildFileAST,
       Map<String, Extension> imports,
       List<RuleInfoWrapper> ruleInfoList,
       List<ProviderInfoWrapper> providerInfoList,
diff --git a/src/main/java/com/google/devtools/starlark/Starlark.java b/src/main/java/com/google/devtools/starlark/Starlark.java
index 0da0ace..bcfc5e1 100644
--- a/src/main/java/com/google/devtools/starlark/Starlark.java
+++ b/src/main/java/com/google/devtools/starlark/Starlark.java
@@ -16,11 +16,11 @@
 import com.google.devtools.build.lib.events.Event;
 import com.google.devtools.build.lib.events.EventHandler;
 import com.google.devtools.build.lib.events.EventKind;
-import com.google.devtools.build.lib.syntax.BuildFileAST;
 import com.google.devtools.build.lib.syntax.EvalException;
 import com.google.devtools.build.lib.syntax.Mutability;
 import com.google.devtools.build.lib.syntax.ParserInput;
 import com.google.devtools.build.lib.syntax.Printer;
+import com.google.devtools.build.lib.syntax.StarlarkFile;
 import com.google.devtools.build.lib.syntax.StarlarkThread;
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -91,7 +91,7 @@
     String line;
     while ((line = prompt()) != null) {
       try {
-        Object result = BuildFileAST.eval(ParserInput.fromLines(line), thread);
+        Object result = StarlarkFile.eval(ParserInput.fromLines(line), thread);
         if (result != null) {
           System.out.println(Printer.repr(result));
         }
@@ -117,7 +117,7 @@
   public int execute(String content) {
     try {
       ParserInput input = ParserInput.create(content, null);
-      BuildFileAST.eval(input, thread);
+      StarlarkFile.eval(input, thread);
       return 0;
     } catch (EvalException e) {
       System.err.println(e.print());