Remove support for "Python" parsing mode.
It was unused in Bazel.
--
MOS_MIGRATED_REVID=135483937
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 98ab055..497715a 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
@@ -253,12 +253,12 @@
public static BuildFileAST parseBuildFile(ParserInputSource input,
List<Statement> preludeStatements,
EventHandler eventHandler) {
- Parser.ParseResult result = Parser.parseFile(input, eventHandler, false);
+ Parser.ParseResult result = Parser.parseFile(input, eventHandler);
return create(preludeStatements, result, /*contentHashCode=*/ null, eventHandler);
}
public static BuildFileAST parseBuildFile(ParserInputSource input, EventHandler eventHandler) {
- Parser.ParseResult result = Parser.parseFile(input, eventHandler, false);
+ Parser.ParseResult result = Parser.parseFile(input, eventHandler);
return create(ImmutableList.<Statement>of(), result, /*contentHashCode=*/ null, eventHandler);
}
@@ -322,7 +322,7 @@
public static BuildFileAST parseBuildString(EventHandler eventHandler, String... content) {
String str = Joiner.on("\n").join(content);
ParserInputSource input = ParserInputSource.create(str, null);
- Parser.ParseResult result = Parser.parseFile(input, eventHandler, false);
+ Parser.ParseResult result = Parser.parseFile(input, eventHandler);
return create(ImmutableList.<Statement>of(), result, null, eventHandler);
}
@@ -339,9 +339,8 @@
*
* @return true if the input file is syntactically valid
*/
- public static boolean checkSyntax(
- ParserInputSource input, EventHandler eventHandler, boolean parsePython) {
- Parser.ParseResult result = Parser.parseFile(input, eventHandler, parsePython);
+ public static boolean checkSyntax(ParserInputSource input, EventHandler eventHandler) {
+ Parser.ParseResult result = Parser.parseFile(input, eventHandler);
return !result.containsErrors;
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Environment.java b/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
index 177c052..a1dd6ea 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
@@ -934,7 +934,7 @@
valid.validateAst(result.statements, eventHandler);
statements = result.statements;
} else {
- statements = Parser.parseFile(input, eventHandler, /*parsePython=*/false).statements;
+ statements = Parser.parseFile(input, eventHandler).statements;
}
// Force the validation of imports
BuildFileAST.fetchLoads(statements, eventHandler);
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java b/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
index 4c923d0..d8b34be 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
@@ -91,19 +91,16 @@
private boolean containsErrors;
- private boolean parsePython;
-
/**
- * Constructs a lexer which tokenizes the contents of the specified
- * InputBuffer. Any errors during lexing are reported on "handler".
+ * Constructs a lexer which tokenizes the contents of the specified InputBuffer. Any errors during
+ * lexing are reported on "handler".
*/
- public Lexer(ParserInputSource input, EventHandler eventHandler, boolean parsePython,
- LineNumberTable lineNumberTable) {
+ public Lexer(
+ ParserInputSource input, EventHandler eventHandler, LineNumberTable lineNumberTable) {
this.buffer = input.getContent();
// Empirical measurements show roughly 1 token per 8 characters in buffer.
this.tokens = Lists.newArrayListWithExpectedSize(buffer.length / 8);
this.pos = 0;
- this.parsePython = parsePython;
this.eventHandler = eventHandler;
this.locationInfo = new LocationInfo(input.getPath(), lineNumberTable);
@@ -114,13 +111,7 @@
}
public Lexer(ParserInputSource input, EventHandler eventHandler) {
- this(input, eventHandler, /*parsePython=*/false,
- LineNumberTable.create(input.getContent(), input.getPath()));
- }
-
- public Lexer(ParserInputSource input, EventHandler eventHandler, boolean parsePython) {
- this(input, eventHandler, parsePython,
- LineNumberTable.create(input.getContent(), input.getPath()));
+ this(input, eventHandler, LineNumberTable.create(input.getContent(), input.getPath()));
}
/**
@@ -822,12 +813,7 @@
} else if (Character.isJavaIdentifierStart(c) && c != '$') {
addToken(identifierOrKeyword());
} else {
- // Some characters in Python are not recognized in Blaze syntax (e.g. '!')
- if (parsePython) {
- addToken(new Token(TokenKind.ILLEGAL, pos - 1, pos, Character.toString(c)));
- } else {
- error("invalid character: '" + c + "'");
- }
+ error("invalid character: '" + c + "'");
}
break;
} // default
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 ffe9f02..73da09b 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
@@ -15,7 +15,6 @@
package com.google.devtools.build.lib.syntax;
import static com.google.devtools.build.lib.syntax.Parser.ParsingMode.BUILD;
-import static com.google.devtools.build.lib.syntax.Parser.ParsingMode.PYTHON;
import static com.google.devtools.build.lib.syntax.Parser.ParsingMode.SKYLARK;
import com.google.common.annotations.VisibleForTesting;
@@ -82,8 +81,6 @@
BUILD,
/** Used for parsing .bzl files */
SKYLARK,
- /** Used for syntax checking, ignoring all Python blocks (e.g. def, class, try) */
- PYTHON,
}
private static final EnumSet<TokenKind> STATEMENT_TERMINATOR_SET =
@@ -212,14 +209,12 @@
}
/**
- * Entry-point to parser that parses a build file with comments. All errors
- * encountered during parsing are reported via "reporter".
+ * Entry-point to parser that parses a build file with comments. All errors encountered during
+ * parsing are reported via "reporter".
*/
- public static ParseResult parseFile(
- ParserInputSource input, EventHandler eventHandler, boolean parsePython) {
- Lexer lexer = new Lexer(input, eventHandler, parsePython);
- ParsingMode parsingMode = parsePython ? PYTHON : BUILD;
- Parser parser = new Parser(lexer, eventHandler, parsingMode);
+ public static ParseResult parseFile(ParserInputSource input, EventHandler eventHandler) {
+ Lexer lexer = new Lexer(input, eventHandler);
+ Parser parser = new Parser(lexer, eventHandler, BUILD);
List<Statement> statements = parser.parseFileInput();
return new ParseResult(statements, parser.comments, locationFromStatements(lexer, statements),
parser.errorsCount > 0 || lexer.containsErrors());
@@ -232,7 +227,7 @@
*/
public static ParseResult parseFileForSkylark(
ParserInputSource input, EventHandler eventHandler) {
- Lexer lexer = new Lexer(input, eventHandler, false);
+ Lexer lexer = new Lexer(input, eventHandler);
Parser parser = new Parser(lexer, eventHandler, SKYLARK);
List<Statement> statements = parser.parseFileInput();
return new ParseResult(
@@ -249,7 +244,7 @@
*/
@VisibleForTesting
public static Expression parseExpression(ParserInputSource input, EventHandler eventHandler) {
- Lexer lexer = new Lexer(input, eventHandler, false);
+ Lexer lexer = new Lexer(input, eventHandler);
Parser parser = new Parser(lexer, eventHandler, null);
Expression result = parser.parseExpression();
while (parser.token.kind == TokenKind.NEWLINE) {
@@ -345,7 +340,7 @@
TokenKind.TRY, TokenKind.WITH, TokenKind.WHILE, TokenKind.YIELD);
private void checkForbiddenKeywords(Token token) {
- if (parsingMode == PYTHON || !FORBIDDEN_KEYWORDS.contains(token.kind)) {
+ if (!FORBIDDEN_KEYWORDS.contains(token.kind)) {
return;
}
String error;
@@ -1435,7 +1430,7 @@
reportError(
lexer.createLocation(blockToken.left, blockToken.right),
"syntax error at 'else': not allowed here.");
- } else if (parsingMode != PYTHON) {
+ } else {
String msg =
ILLEGAL_BLOCK_KEYWORDS.containsKey(blockToken.kind)
? String.format("%ss are not supported.", ILLEGAL_BLOCK_KEYWORDS.get(blockToken.kind))