aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java b/src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java
index 843fd9efd1..57a2d848df 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java
@@ -14,8 +14,11 @@
package com.google.devtools.build.lib.packages;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.events.Event;
+import com.google.devtools.build.lib.events.StoredEventHandler;
import com.google.devtools.build.lib.packages.PackageFactory.Globber;
+import com.google.devtools.build.lib.syntax.BuildFileAST;
import com.google.devtools.build.lib.syntax.Environment;
import com.google.devtools.build.lib.syntax.ParserInputSource;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -160,4 +163,23 @@ public interface Preprocessor {
Environment.Frame globals,
Set<String> ruleNames)
throws IOException, InterruptedException;
+
+ /** The result of parsing a preprocessed BUILD file. */
+ static class AstAfterPreprocessing {
+ public final boolean preprocessed;
+ public final boolean containsPreprocessingErrors;
+ public final BuildFileAST ast;
+ public final boolean containsAstParsingErrors;
+ public final Iterable<Event> allEvents;
+
+ public AstAfterPreprocessing(Result preprocessingResult, BuildFileAST ast,
+ StoredEventHandler astParsingEventHandler) {
+ this.ast = ast;
+ this.preprocessed = preprocessingResult.preprocessed;
+ this.containsPreprocessingErrors = preprocessingResult.containsErrors;
+ this.containsAstParsingErrors = astParsingEventHandler.hasErrors();
+ this.allEvents = Iterables.concat(
+ preprocessingResult.events, astParsingEventHandler.getEvents());
+ }
+ }
}