diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax/BuildFileAST.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/BuildFileAST.java | 24 |
1 files changed, 24 insertions, 0 deletions
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 1ff08835a2..3d324b21bf 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 @@ -59,6 +59,30 @@ public class BuildFileAST extends ASTNode { setLocation(result.location); } + private BuildFileAST( + ImmutableList<Statement> stmts, + boolean containsErrors, + String contentHashCode, + Location location) { + this.stmts = stmts; + this.containsErrors = containsErrors; + this.contentHashCode = contentHashCode; + this.comments = ImmutableList.of(); + this.setLocation(location); + } + + /** + * Extract a subtree containing only statements from {@code firstStatement} (included) up to + * {@code lastStatement} excluded. + */ + public BuildFileAST subTree(int firstStatement, int lastStatement) { + return new BuildFileAST( + stmts.subList(firstStatement, lastStatement), + containsErrors, + null, + stmts.get(firstStatement).getLocation()); + } + /** Collects all load statements */ private ImmutableList<SkylarkImport> fetchLoads(List<Statement> stmts) { ImmutableList.Builder<SkylarkImport> imports = new ImmutableList.Builder<>(); |