@@ -12192,11 +12192,90 @@ describe("Grammar Tests", function() {
12192
12192
12193
12193
it("test/statements/for2.py",
12194
12194
function() {
12195
- tokens = grammar.tokenizeLines("for a, b, c in [2 in q, 2 in w]:\n pass")
12196
- expect(tokens[0][0].value).toBe("for ");
12197
- expect(tokens[0][0].scopes).toEqual(["source.python","keyword.control.flow.python" ]);
12195
+ tokens = grammar.tokenizeLines("forvariable = None\nfor a, b, c, invariable in [2 in q, 2 in w]:\n pass")
12196
+ expect(tokens[0][0].value).toBe("forvariable ");
12197
+ expect(tokens[0][0].scopes).toEqual(["source.python"]);
12198
12198
expect(tokens[0][1].value).toBe(" ");
12199
12199
expect(tokens[0][1].scopes).toEqual(["source.python"]);
12200
+ expect(tokens[0][2].value).toBe("=");
12201
+ expect(tokens[0][2].scopes).toEqual(["source.python","keyword.operator.assignment.python"]);
12202
+ expect(tokens[0][3].value).toBe(" ");
12203
+ expect(tokens[0][3].scopes).toEqual(["source.python"]);
12204
+ expect(tokens[0][4].value).toBe("None");
12205
+ expect(tokens[0][4].scopes).toEqual(["source.python","constant.language.python"]);
12206
+ expect(tokens[1][0].value).toBe("for");
12207
+ expect(tokens[1][0].scopes).toEqual(["source.python","keyword.control.flow.python"]);
12208
+ expect(tokens[1][1].value).toBe(" ");
12209
+ expect(tokens[1][1].scopes).toEqual(["source.python"]);
12210
+ expect(tokens[1][2].value).toBe("a");
12211
+ expect(tokens[1][2].scopes).toEqual(["source.python"]);
12212
+ expect(tokens[1][3].value).toBe(",");
12213
+ expect(tokens[1][3].scopes).toEqual(["source.python","punctuation.separator.element.python"]);
12214
+ expect(tokens[1][4].value).toBe(" ");
12215
+ expect(tokens[1][4].scopes).toEqual(["source.python"]);
12216
+ expect(tokens[1][5].value).toBe("b");
12217
+ expect(tokens[1][5].scopes).toEqual(["source.python"]);
12218
+ expect(tokens[1][6].value).toBe(",");
12219
+ expect(tokens[1][6].scopes).toEqual(["source.python","punctuation.separator.element.python"]);
12220
+ expect(tokens[1][7].value).toBe(" ");
12221
+ expect(tokens[1][7].scopes).toEqual(["source.python"]);
12222
+ expect(tokens[1][8].value).toBe("c");
12223
+ expect(tokens[1][8].scopes).toEqual(["source.python"]);
12224
+ expect(tokens[1][9].value).toBe(",");
12225
+ expect(tokens[1][9].scopes).toEqual(["source.python","punctuation.separator.element.python"]);
12226
+ expect(tokens[1][10].value).toBe(" ");
12227
+ expect(tokens[1][10].scopes).toEqual(["source.python"]);
12228
+ expect(tokens[1][11].value).toBe("invariable");
12229
+ expect(tokens[1][11].scopes).toEqual(["source.python"]);
12230
+ expect(tokens[1][12].value).toBe(" ");
12231
+ expect(tokens[1][12].scopes).toEqual(["source.python"]);
12232
+ expect(tokens[1][13].value).toBe("in");
12233
+ expect(tokens[1][13].scopes).toEqual(["source.python","keyword.control.flow.python"]);
12234
+ expect(tokens[1][14].value).toBe(" ");
12235
+ expect(tokens[1][14].scopes).toEqual(["source.python"]);
12236
+ expect(tokens[1][15].value).toBe("[");
12237
+ expect(tokens[1][15].scopes).toEqual(["source.python","punctuation.definition.list.begin.python"]);
12238
+ expect(tokens[1][16].value).toBe("2");
12239
+ expect(tokens[1][16].scopes).toEqual(["source.python","constant.numeric.dec.python"]);
12240
+ expect(tokens[1][17].value).toBe(" ");
12241
+ expect(tokens[1][17].scopes).toEqual(["source.python"]);
12242
+ expect(tokens[1][18].value).toBe("in");
12243
+ expect(tokens[1][18].scopes).toEqual(["source.python","keyword.operator.logical.python"]);
12244
+ expect(tokens[1][19].value).toBe(" ");
12245
+ expect(tokens[1][19].scopes).toEqual(["source.python"]);
12246
+ expect(tokens[1][20].value).toBe("q");
12247
+ expect(tokens[1][20].scopes).toEqual(["source.python"]);
12248
+ expect(tokens[1][21].value).toBe(",");
12249
+ expect(tokens[1][21].scopes).toEqual(["source.python","punctuation.separator.element.python"]);
12250
+ expect(tokens[1][22].value).toBe(" ");
12251
+ expect(tokens[1][22].scopes).toEqual(["source.python"]);
12252
+ expect(tokens[1][23].value).toBe("2");
12253
+ expect(tokens[1][23].scopes).toEqual(["source.python","constant.numeric.dec.python"]);
12254
+ expect(tokens[1][24].value).toBe(" ");
12255
+ expect(tokens[1][24].scopes).toEqual(["source.python"]);
12256
+ expect(tokens[1][25].value).toBe("in");
12257
+ expect(tokens[1][25].scopes).toEqual(["source.python","keyword.operator.logical.python"]);
12258
+ expect(tokens[1][26].value).toBe(" ");
12259
+ expect(tokens[1][26].scopes).toEqual(["source.python"]);
12260
+ expect(tokens[1][27].value).toBe("w");
12261
+ expect(tokens[1][27].scopes).toEqual(["source.python"]);
12262
+ expect(tokens[1][28].value).toBe("]");
12263
+ expect(tokens[1][28].scopes).toEqual(["source.python","punctuation.definition.list.end.python"]);
12264
+ expect(tokens[1][29].value).toBe(":");
12265
+ expect(tokens[1][29].scopes).toEqual(["source.python","punctuation.separator.colon.python"]);
12266
+ expect(tokens[2][0].value).toBe(" ");
12267
+ expect(tokens[2][0].scopes).toEqual(["source.python"]);
12268
+ expect(tokens[2][1].value).toBe("pass");
12269
+ expect(tokens[2][1].scopes).toEqual(["source.python","keyword.control.flow.python"]);
12270
+ });
12271
+
12272
+ it("test/statements/for3.py",
12273
+ function() {
12274
+ tokens = grammar.tokenizeLines("for(a, b), c, invariable in[2 in q, 2 in w]:\n pass")
12275
+ expect(tokens[0][0].value).toBe("for");
12276
+ expect(tokens[0][0].scopes).toEqual(["source.python","keyword.control.flow.python"]);
12277
+ expect(tokens[0][1].value).toBe("(");
12278
+ expect(tokens[0][1].scopes).toEqual(["source.python","punctuation.parenthesis.begin.python"]);
12200
12279
expect(tokens[0][2].value).toBe("a");
12201
12280
expect(tokens[0][2].scopes).toEqual(["source.python"]);
12202
12281
expect(tokens[0][3].value).toBe(",");
@@ -12205,48 +12284,54 @@ describe("Grammar Tests", function() {
12205
12284
expect(tokens[0][4].scopes).toEqual(["source.python"]);
12206
12285
expect(tokens[0][5].value).toBe("b");
12207
12286
expect(tokens[0][5].scopes).toEqual(["source.python"]);
12208
- expect(tokens[0][6].value).toBe(", ");
12209
- expect(tokens[0][6].scopes).toEqual(["source.python","punctuation.separator.element .python"]);
12210
- expect(tokens[0][7].value).toBe(" ");
12211
- expect(tokens[0][7].scopes).toEqual(["source.python"]);
12212
- expect(tokens[0][8].value).toBe("c ");
12287
+ expect(tokens[0][6].value).toBe(") ");
12288
+ expect(tokens[0][6].scopes).toEqual(["source.python","punctuation.parenthesis.end .python"]);
12289
+ expect(tokens[0][7].value).toBe(", ");
12290
+ expect(tokens[0][7].scopes).toEqual(["source.python","punctuation.separator.element.python" ]);
12291
+ expect(tokens[0][8].value).toBe(" ");
12213
12292
expect(tokens[0][8].scopes).toEqual(["source.python"]);
12214
- expect(tokens[0][9].value).toBe(" ");
12293
+ expect(tokens[0][9].value).toBe("c ");
12215
12294
expect(tokens[0][9].scopes).toEqual(["source.python"]);
12216
- expect(tokens[0][10].value).toBe("in ");
12217
- expect(tokens[0][10].scopes).toEqual(["source.python","keyword.control.flow .python"]);
12295
+ expect(tokens[0][10].value).toBe(", ");
12296
+ expect(tokens[0][10].scopes).toEqual(["source.python","punctuation.separator.element .python"]);
12218
12297
expect(tokens[0][11].value).toBe(" ");
12219
12298
expect(tokens[0][11].scopes).toEqual(["source.python"]);
12220
- expect(tokens[0][12].value).toBe("[ ");
12221
- expect(tokens[0][12].scopes).toEqual(["source.python","punctuation.definition.list.begin.python" ]);
12222
- expect(tokens[0][13].value).toBe("2 ");
12223
- expect(tokens[0][13].scopes).toEqual(["source.python","constant.numeric.dec.python" ]);
12224
- expect(tokens[0][14].value).toBe(" ");
12225
- expect(tokens[0][14].scopes).toEqual(["source.python"]);
12226
- expect(tokens[0][15].value).toBe("in ");
12227
- expect(tokens[0][15].scopes).toEqual(["source.python","keyword.operator.logical .python"]);
12228
- expect(tokens[0][16].value).toBe(" ");
12229
- expect(tokens[0][16].scopes).toEqual(["source.python"]);
12230
- expect(tokens[0][17].value).toBe("q ");
12299
+ expect(tokens[0][12].value).toBe("invariable ");
12300
+ expect(tokens[0][12].scopes).toEqual(["source.python"]);
12301
+ expect(tokens[0][13].value).toBe(" ");
12302
+ expect(tokens[0][13].scopes).toEqual(["source.python"]);
12303
+ expect(tokens[0][14].value).toBe("in ");
12304
+ expect(tokens[0][14].scopes).toEqual(["source.python","keyword.control.flow.python" ]);
12305
+ expect(tokens[0][15].value).toBe("[ ");
12306
+ expect(tokens[0][15].scopes).toEqual(["source.python","punctuation.definition.list.begin .python"]);
12307
+ expect(tokens[0][16].value).toBe("2 ");
12308
+ expect(tokens[0][16].scopes).toEqual(["source.python","constant.numeric.dec.python" ]);
12309
+ expect(tokens[0][17].value).toBe(" ");
12231
12310
expect(tokens[0][17].scopes).toEqual(["source.python"]);
12232
- expect(tokens[0][18].value).toBe(", ");
12233
- expect(tokens[0][18].scopes).toEqual(["source.python","punctuation.separator.element .python"]);
12311
+ expect(tokens[0][18].value).toBe("in ");
12312
+ expect(tokens[0][18].scopes).toEqual(["source.python","keyword.operator.logical .python"]);
12234
12313
expect(tokens[0][19].value).toBe(" ");
12235
12314
expect(tokens[0][19].scopes).toEqual(["source.python"]);
12236
- expect(tokens[0][20].value).toBe("2 ");
12237
- expect(tokens[0][20].scopes).toEqual(["source.python","constant.numeric.dec.python" ]);
12238
- expect(tokens[0][21].value).toBe(" ");
12239
- expect(tokens[0][21].scopes).toEqual(["source.python"]);
12240
- expect(tokens[0][22].value).toBe("in ");
12241
- expect(tokens[0][22].scopes).toEqual(["source.python","keyword.operator.logical.python" ]);
12242
- expect(tokens[0][23].value).toBe(" ");
12243
- expect(tokens[0][23].scopes).toEqual(["source.python"]);
12244
- expect(tokens[0][24].value).toBe("w ");
12315
+ expect(tokens[0][20].value).toBe("q ");
12316
+ expect(tokens[0][20].scopes).toEqual(["source.python"]);
12317
+ expect(tokens[0][21].value).toBe(", ");
12318
+ expect(tokens[0][21].scopes).toEqual(["source.python","punctuation.separator.element.python" ]);
12319
+ expect(tokens[0][22].value).toBe(" ");
12320
+ expect(tokens[0][22].scopes).toEqual(["source.python"]);
12321
+ expect(tokens[0][23].value).toBe("2 ");
12322
+ expect(tokens[0][23].scopes).toEqual(["source.python","constant.numeric.dec.python" ]);
12323
+ expect(tokens[0][24].value).toBe(" ");
12245
12324
expect(tokens[0][24].scopes).toEqual(["source.python"]);
12246
- expect(tokens[0][25].value).toBe("]");
12247
- expect(tokens[0][25].scopes).toEqual(["source.python","punctuation.definition.list.end.python"]);
12248
- expect(tokens[0][26].value).toBe(":");
12249
- expect(tokens[0][26].scopes).toEqual(["source.python","punctuation.separator.colon.python"]);
12325
+ expect(tokens[0][25].value).toBe("in");
12326
+ expect(tokens[0][25].scopes).toEqual(["source.python","keyword.operator.logical.python"]);
12327
+ expect(tokens[0][26].value).toBe(" ");
12328
+ expect(tokens[0][26].scopes).toEqual(["source.python"]);
12329
+ expect(tokens[0][27].value).toBe("w");
12330
+ expect(tokens[0][27].scopes).toEqual(["source.python"]);
12331
+ expect(tokens[0][28].value).toBe("]");
12332
+ expect(tokens[0][28].scopes).toEqual(["source.python","punctuation.definition.list.end.python"]);
12333
+ expect(tokens[0][29].value).toBe(":");
12334
+ expect(tokens[0][29].scopes).toEqual(["source.python","punctuation.separator.colon.python"]);
12250
12335
expect(tokens[1][0].value).toBe(" ");
12251
12336
expect(tokens[1][0].scopes).toEqual(["source.python"]);
12252
12337
expect(tokens[1][1].value).toBe("pass");
0 commit comments