diff options
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.java | 22 |
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()); + } + } } |