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 7531b84..fd68bde 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
@@ -443,22 +443,34 @@
   static {
     keywordMap.put("and", TokenKind.AND);
     keywordMap.put("as", TokenKind.AS);
-    keywordMap.put("class", TokenKind.CLASS); // reserved for future expansion
+    keywordMap.put("assert", TokenKind.ASSERT);
+    keywordMap.put("break", TokenKind.BREAK);
+    keywordMap.put("class", TokenKind.CLASS);
+    keywordMap.put("continue", TokenKind.CONTINUE);
     keywordMap.put("def", TokenKind.DEF);
+    keywordMap.put("del", TokenKind.DEL);
     keywordMap.put("elif", TokenKind.ELIF);
     keywordMap.put("else", TokenKind.ELSE);
     keywordMap.put("except", TokenKind.EXCEPT);
     keywordMap.put("finally", TokenKind.FINALLY);
     keywordMap.put("for", TokenKind.FOR);
     keywordMap.put("from", TokenKind.FROM);
+    keywordMap.put("global", TokenKind.GLOBAL);
     keywordMap.put("if", TokenKind.IF);
     keywordMap.put("import", TokenKind.IMPORT);
     keywordMap.put("in", TokenKind.IN);
+    keywordMap.put("is", TokenKind.IS);
+    keywordMap.put("lambda", TokenKind.LAMBDA);
+    keywordMap.put("nonlocal", TokenKind.NONLOCAL);
     keywordMap.put("not", TokenKind.NOT);
     keywordMap.put("or", TokenKind.OR);
     keywordMap.put("pass", TokenKind.PASS);
+    keywordMap.put("raise", TokenKind.RAISE);
     keywordMap.put("return", TokenKind.RETURN);
     keywordMap.put("try", TokenKind.TRY);
+    keywordMap.put("while", TokenKind.WHILE);
+    keywordMap.put("with", TokenKind.WITH);
+    keywordMap.put("yield", TokenKind.YIELD);
   }
 
   private TokenKind getTokenKindForIdentfier(String id) {
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 e7e92b4..866b9b9 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
@@ -19,13 +19,17 @@
  */
 public enum TokenKind {
 
+  ASSERT("assert"),
   AND("and"),
   AS("as"),
+  BREAK("break"),
   CLASS("class"),
   COLON(":"),
   COMMA(","),
   COMMENT("comment"),
+  CONTINUE("continue"),
   DEF("def"),
+  DEL("del"),
   DOT("."),
   ELIF("elif"),
   ELSE("else"),
@@ -36,6 +40,7 @@
   FINALLY("finally"),
   FOR("for"),
   FROM("from"),
+  GLOBAL("global"),
   GREATER(">"),
   GREATER_EQUALS(">="),
   IDENTIFIER("identifier"),
@@ -45,6 +50,8 @@
   IN("in"),
   INDENT("indent"),
   INT("integer"),
+  IS("is"),
+  LAMBDA("lambda"),
   LBRACE("{"),
   LBRACKET("["),
   LESS("<"),
@@ -52,6 +59,7 @@
   LPAREN("("),
   MINUS("-"),
   NEWLINE("newline"),
+  NONLOCAL("nonlocal"),
   NOT("not"),
   NOT_EQUALS("!="),
   OR("or"),
@@ -60,6 +68,7 @@
   PERCENT("%"),
   PLUS("+"),
   PLUS_EQUALS("+="),
+  RAISE("raise"),
   RBRACE("}"),
   RBRACKET("]"),
   RETURN("return"),
@@ -68,7 +77,10 @@
   STAR("*"),
   STAR_STAR("**"),
   STRING("string"),
-  TRY("try");
+  TRY("try"),
+  WHILE("while"),
+  WITH("with"),
+  YIELD("yield");
 
   private final String prettyName;
 
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
index 07501da..afca4b3 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
@@ -313,6 +313,14 @@
   }
 
   @Test
+  public void testAssignKeyword() {
+    syntaxEvents.setFailFast(false);
+    parseExpr("with = 4");
+    syntaxEvents.assertContainsEvent("syntax error at 'with': expected expression");
+    syntaxEvents.collector().clear();
+  }
+
+  @Test
   public void testTupleAssign() {
     String expr = "list[0] = 5; dict['key'] = value\n";
     List<Statement> statements = parseFile(expr);
