aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar juliexxia <juliexxia@google.com>2018-01-05 08:24:25 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-05 08:25:59 -0800
commit91695a31a8414f87a21ad2f32c4a122f5823bdfa (patch)
tree331ceb2ef069e5e7e652ad6a6d83fe02bb31fd03
parent18fa042d9584f2f4bdde1233169ebe45789b988a (diff)
Automated rollback of commit 9e63684a58025d98bfe2f180d56ba7ece69545ae.
*** Reason for rollback *** Roll forward of commit 86b4532769c22cca2ed7068a60f3326beaad34af after fixing bad import. +small misc fixes suggested by critique *** Original change description *** Automated rollback of commit 86b4532769c22cca2ed7068a60f3326beaad34af. *** Reason for rollback *** Probably breaking //javatests/com/google/devtools/build/lib:Query2Tests *** Original change description *** Restructure how universeScope is used when testing configured query to mimick impending changes to the configured query interface (CL/179872445) which will pull build targets out of the query expression. Fill in testTopLevelTransitions on the way! PiperOrigin-RevId: 180930388
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/engine/QueryParser.java25
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java2
-rw-r--r--third_party/ijar/BUILD7
3 files changed, 22 insertions, 12 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/QueryParser.java b/src/main/java/com/google/devtools/build/lib/query2/engine/QueryParser.java
index b202bc326e..9ba285ee29 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/engine/QueryParser.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/engine/QueryParser.java
@@ -45,7 +45,7 @@ import java.util.Map;
* | SET '(' WORD * ')'
* </pre>
*/
-final class QueryParser {
+public final class QueryParser {
private Lexer.Token token; // current lookahead token
private final List<Lexer.Token> tokens;
@@ -56,23 +56,26 @@ final class QueryParser {
* Scan and parse the specified query expression.
*/
static QueryExpression parse(String query, QueryEnvironment<?> env) throws QueryException {
- QueryParser parser = new QueryParser(Lexer.scan(query), env);
+ HashMap<String, QueryFunction> functions = new HashMap<>();
+ for (QueryFunction queryFunction : env.getFunctions()) {
+ functions.put(queryFunction.getName(), queryFunction);
+ }
+ return parse(query, functions);
+ }
+
+ public static QueryExpression parse(String query, HashMap<String, QueryFunction> functions)
+ throws QueryException {
+ QueryParser parser = new QueryParser(Lexer.scan(query), functions);
QueryExpression expr = parser.parseExpression();
if (parser.token.kind != TokenKind.EOF) {
throw new QueryException("unexpected token '" + parser.token
- + "' after query expression '" + expr + "'");
+ + "' after query expression '" + expr + "'");
}
return expr;
}
- private QueryParser(List<Lexer.Token> tokens, QueryEnvironment<?> env) {
- // TODO(bazel-team): We only need QueryEnvironment#getFunctions, consider refactoring users of
- // QueryParser#parse to instead just pass in the set of functions to make testing, among other
- // things, simpler.
- this.functions = new HashMap<>();
- for (QueryFunction queryFunction : env.getFunctions()) {
- this.functions.put(queryFunction.getName(), queryFunction);
- }
+ public QueryParser(List<Lexer.Token> tokens, HashMap<String, QueryFunction> functions) {
+ this.functions = functions;
this.tokens = tokens;
this.tokenIterator = tokens.iterator();
nextToken();
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
index 93e88ea1df..60fc89ab46 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
@@ -478,7 +478,7 @@ public abstract class AnalysisTestCase extends FoundationTestCase {
*
* Also see {@link AnalysisTestCase#setRulesAndAspectsAvailableInTests(Iterable, Iterable)}.
*/
- protected final void setRulesAvailableInTests(RuleDefinition... rules) throws Exception {
+ protected void setRulesAvailableInTests(RuleDefinition... rules) throws Exception {
setRulesAndAspectsAvailableInTests(
ImmutableList.<NativeAspectClass>of(),
ImmutableList.copyOf(rules));
diff --git a/third_party/ijar/BUILD b/third_party/ijar/BUILD
index 90f74c5407..45fca3a6df 100644
--- a/third_party/ijar/BUILD
+++ b/third_party/ijar/BUILD
@@ -15,6 +15,9 @@ cc_library(
"//src:windows": [
"mapped_file_windows.cc",
],
+ "//src:windows_msvc": [
+ "mapped_file_windows.cc",
+ ],
"//conditions:default": [
"mapped_file_unix.cc",
],
@@ -32,6 +35,10 @@ cc_library(
"//src/main/cpp/util:errors",
"//src/main/cpp/util:file",
],
+ "//src:windows_msvc": [
+ "//src/main/cpp/util:errors",
+ "//src/main/cpp/util:file",
+ ],
"//conditions:default": [
],
}),