aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax
diff options
context:
space:
mode:
authorGravatar Laurent Le Brun <laurentlb@google.com>2015-03-18 19:03:57 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-03-20 14:31:01 +0000
commit5c8ea36152216fb2b7cd1fd80ec568dfcb8bf428 (patch)
tree5ec43b645139c28a774260c8694f926bdf65bfa3 /src/main/java/com/google/devtools/build/lib/syntax
parent9bf65cb79ff6e2e9b76b37d1bc567bd362946165 (diff)
Automated [] rollback of [].
*** Reason for rollback *** This CL broke [] *** Original change description *** Skylark: New error message in the lexer when an unsupported Python keyword is used. -- MOS_MIGRATED_REVID=88954426
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/Lexer.java28
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/TokenKind.java4
2 files changed, 9 insertions, 23 deletions
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 0b96c00060..7531b84ae3 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
@@ -441,46 +441,28 @@ public final class Lexer {
private static final Map<String, TokenKind> keywordMap = new HashMap<>();
static {
- // We insert TokenKind.ILLEGAL for every unsupported Python keyword.
- // List of keywords come from "keyword.kwlist" in Python 3.4.0.
keywordMap.put("and", TokenKind.AND);
keywordMap.put("as", TokenKind.AS);
- keywordMap.put("assert", TokenKind.ILLEGAL);
- keywordMap.put("break", TokenKind.ILLEGAL);
- keywordMap.put("class", TokenKind.CLASS);
- keywordMap.put("continue", TokenKind.ILLEGAL);
+ keywordMap.put("class", TokenKind.CLASS); // reserved for future expansion
keywordMap.put("def", TokenKind.DEF);
- keywordMap.put("del", TokenKind.ILLEGAL);
keywordMap.put("elif", TokenKind.ELIF);
keywordMap.put("else", TokenKind.ELSE);
- keywordMap.put("except", TokenKind.ILLEGAL);
- keywordMap.put("finally", TokenKind.ILLEGAL);
+ keywordMap.put("except", TokenKind.EXCEPT);
+ keywordMap.put("finally", TokenKind.FINALLY);
keywordMap.put("for", TokenKind.FOR);
- keywordMap.put("from", TokenKind.ILLEGAL);
- keywordMap.put("global", TokenKind.ILLEGAL);
+ keywordMap.put("from", TokenKind.FROM);
keywordMap.put("if", TokenKind.IF);
- keywordMap.put("import", TokenKind.ILLEGAL);
+ keywordMap.put("import", TokenKind.IMPORT);
keywordMap.put("in", TokenKind.IN);
- keywordMap.put("is", TokenKind.ILLEGAL);
- keywordMap.put("lambda", TokenKind.ILLEGAL);
- keywordMap.put("nonlocal", TokenKind.ILLEGAL);
keywordMap.put("not", TokenKind.NOT);
keywordMap.put("or", TokenKind.OR);
keywordMap.put("pass", TokenKind.PASS);
- keywordMap.put("raise", TokenKind.ILLEGAL);
keywordMap.put("return", TokenKind.RETURN);
keywordMap.put("try", TokenKind.TRY);
- keywordMap.put("while", TokenKind.ILLEGAL);
- keywordMap.put("with", TokenKind.ILLEGAL);
- keywordMap.put("yield", TokenKind.ILLEGAL);
}
private TokenKind getTokenKindForIdentfier(String id) {
TokenKind kind = keywordMap.get(id);
- if (kind == TokenKind.ILLEGAL) {
- error("The Python keyword '" + id + "' is not supported");
- return TokenKind.IDENTIFIER;
- }
return kind == null ? TokenKind.IDENTIFIER : kind;
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/TokenKind.java b/src/main/java/com/google/devtools/build/lib/syntax/TokenKind.java
index fa73a09852..e7e92b4260 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/TokenKind.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/TokenKind.java
@@ -32,12 +32,16 @@ public enum TokenKind {
EOF("EOF"),
EQUALS("="),
EQUALS_EQUALS("=="),
+ EXCEPT("except"),
+ FINALLY("finally"),
FOR("for"),
+ FROM("from"),
GREATER(">"),
GREATER_EQUALS(">="),
IDENTIFIER("identifier"),
IF("if"),
ILLEGAL("illegal character"),
+ IMPORT("import"),
IN("in"),
INDENT("indent"),
INT("integer"),