@willbooster/tree-sitter-python 2.1.2 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/grammar.js +106 -2
- package/package.json +1 -1
- package/queries/highlights.scm +5 -0
- package/src/node-types.json +111 -4
- package/tree-sitter-python.wasm +0 -0
- package/tree-sitter.json +1 -1
package/grammar.js
CHANGED
|
@@ -43,6 +43,12 @@ module.exports = grammar({
|
|
|
43
43
|
extras: ($) => [$.comment, /[\s\f\uFEFF\u2060\u200B]|\r?\n/, $.line_continuation],
|
|
44
44
|
|
|
45
45
|
conflicts: ($) => [
|
|
46
|
+
[$.default_type_parameter, $.primary_expression],
|
|
47
|
+
[$.primary_expression, $._default_type_primary],
|
|
48
|
+
[$.primary_expression, $._default_generic_type],
|
|
49
|
+
[$.primary_expression, $._default_member_type],
|
|
50
|
+
[$.list, $._default_type_list],
|
|
51
|
+
[$._type_parameter_expression, $.expression],
|
|
46
52
|
[$.primary_expression, $.pattern],
|
|
47
53
|
[$.primary_expression, $.list_splat_pattern],
|
|
48
54
|
[$.tuple, $.tuple_pattern],
|
|
@@ -94,6 +100,8 @@ module.exports = grammar({
|
|
|
94
100
|
$._expressions,
|
|
95
101
|
$._left_hand_side,
|
|
96
102
|
$.keyword_identifier,
|
|
103
|
+
$._type_parameter_name,
|
|
104
|
+
$._default_member_base,
|
|
97
105
|
],
|
|
98
106
|
|
|
99
107
|
reserved: {
|
|
@@ -152,6 +160,7 @@ module.exports = grammar({
|
|
|
152
160
|
choice(
|
|
153
161
|
$.future_import_statement,
|
|
154
162
|
$.import_statement,
|
|
163
|
+
$.lazy_import_statement,
|
|
155
164
|
$.import_from_statement,
|
|
156
165
|
$.print_statement,
|
|
157
166
|
$.assert_statement,
|
|
@@ -170,6 +179,8 @@ module.exports = grammar({
|
|
|
170
179
|
|
|
171
180
|
import_statement: ($) => seq('import', $._import_list),
|
|
172
181
|
|
|
182
|
+
lazy_import_statement: ($) => seq('lazy', choice($.import_statement, $.import_from_statement)),
|
|
183
|
+
|
|
173
184
|
import_prefix: () => repeat1('.'),
|
|
174
185
|
|
|
175
186
|
relative_import: ($) => seq($.import_prefix, optional($.dotted_name)),
|
|
@@ -390,7 +401,100 @@ module.exports = grammar({
|
|
|
390
401
|
':',
|
|
391
402
|
field('body', $._suite)
|
|
392
403
|
),
|
|
393
|
-
type_parameter: ($) =>
|
|
404
|
+
type_parameter: ($) =>
|
|
405
|
+
seq('[', commaSep1(choice($.type, $.splat_type, $.default_type_parameter)), optional(','), ']'),
|
|
406
|
+
|
|
407
|
+
default_type_parameter: ($) =>
|
|
408
|
+
choice(
|
|
409
|
+
seq(
|
|
410
|
+
choice(
|
|
411
|
+
seq(
|
|
412
|
+
field('name', $._type_parameter_name),
|
|
413
|
+
optional(seq(':', field('bound', alias($._type_parameter_expression, $.type))))
|
|
414
|
+
),
|
|
415
|
+
seq('**', field('name', $._type_parameter_name))
|
|
416
|
+
),
|
|
417
|
+
'=',
|
|
418
|
+
field('value', alias($._type_parameter_expression, $.type))
|
|
419
|
+
),
|
|
420
|
+
seq(
|
|
421
|
+
'*',
|
|
422
|
+
field('name', $._type_parameter_name),
|
|
423
|
+
'=',
|
|
424
|
+
field(
|
|
425
|
+
'value',
|
|
426
|
+
choice(alias($._type_parameter_expression, $.type), alias($._default_splat_type, $.list_splat))
|
|
427
|
+
)
|
|
428
|
+
)
|
|
429
|
+
),
|
|
430
|
+
|
|
431
|
+
_type_parameter_name: ($) =>
|
|
432
|
+
choice($.identifier, alias(choice('type', 'match', 'print', 'exec', 'lazy'), $.identifier)),
|
|
433
|
+
|
|
434
|
+
_default_member_base: ($) => choice($._type_parameter_name, alias($._default_member_type, $.member_type)),
|
|
435
|
+
|
|
436
|
+
_type_parameter_expression: ($) => choice($._expression_without_named_expression, prec.dynamic(1, $._default_type)),
|
|
437
|
+
|
|
438
|
+
_default_type: ($) => choice($._default_type_primary, alias($._default_union_type, $.union_type)),
|
|
439
|
+
|
|
440
|
+
_default_type_primary: ($) =>
|
|
441
|
+
choice(
|
|
442
|
+
$.identifier,
|
|
443
|
+
$.keyword_identifier,
|
|
444
|
+
$.none,
|
|
445
|
+
$.string,
|
|
446
|
+
alias($._default_member_type, $.member_type),
|
|
447
|
+
alias($._default_generic_type, $.generic_type),
|
|
448
|
+
alias($._default_type_list, $.list),
|
|
449
|
+
alias($._default_type_tuple, $.tuple),
|
|
450
|
+
alias($._default_parenthesized_type, $.parenthesized_expression)
|
|
451
|
+
),
|
|
452
|
+
|
|
453
|
+
_default_member_type: ($) => seq($._default_member_base, '.', $.identifier),
|
|
454
|
+
|
|
455
|
+
_default_generic_type: ($) => seq($._default_member_base, alias($._default_type_arguments, $.type_parameter)),
|
|
456
|
+
|
|
457
|
+
_default_union_type: ($) =>
|
|
458
|
+
prec.left(PREC.bitwise_or, seq(alias($._default_type, $.type), '|', alias($._default_type_primary, $.type))),
|
|
459
|
+
|
|
460
|
+
_default_parenthesized_type: ($) => seq('(', alias($._default_type, $.type), ')'),
|
|
461
|
+
|
|
462
|
+
_default_type_arguments: ($) =>
|
|
463
|
+
seq(
|
|
464
|
+
'[',
|
|
465
|
+
commaSep1(
|
|
466
|
+
choice(
|
|
467
|
+
alias($._type_parameter_expression, $.type),
|
|
468
|
+
$.named_expression,
|
|
469
|
+
alias($._default_splat_argument, $.splat_type),
|
|
470
|
+
$.slice
|
|
471
|
+
)
|
|
472
|
+
),
|
|
473
|
+
optional(','),
|
|
474
|
+
']'
|
|
475
|
+
),
|
|
476
|
+
|
|
477
|
+
_default_splat_argument: ($) => seq('*', alias($._type_parameter_expression, $.type)),
|
|
478
|
+
|
|
479
|
+
_default_type_list: ($) =>
|
|
480
|
+
prec.dynamic(
|
|
481
|
+
1,
|
|
482
|
+
seq('[', optional(seq(commaSep1(alias($._type_parameter_expression, $.type)), optional(','))), ']')
|
|
483
|
+
),
|
|
484
|
+
|
|
485
|
+
_default_type_tuple: ($) =>
|
|
486
|
+
prec.dynamic(
|
|
487
|
+
1,
|
|
488
|
+
seq(
|
|
489
|
+
'(',
|
|
490
|
+
alias($._type_parameter_expression, $.type),
|
|
491
|
+
',',
|
|
492
|
+
optional(seq(commaSep1(alias($._type_parameter_expression, $.type)), optional(','))),
|
|
493
|
+
')'
|
|
494
|
+
)
|
|
495
|
+
),
|
|
496
|
+
|
|
497
|
+
_default_splat_type: ($) => seq('*', choice($.primary_expression, prec.dynamic(1, alias($._default_type, $.type)))),
|
|
394
498
|
|
|
395
499
|
_generic_type_arguments: ($) =>
|
|
396
500
|
seq('[', commaSep1(choice($.type, alias($._list_splat_argument, $.splat_type))), optional(','), ']'),
|
|
@@ -913,7 +1017,7 @@ module.exports = grammar({
|
|
|
913
1017
|
keyword_identifier: ($) =>
|
|
914
1018
|
choice(
|
|
915
1019
|
prec(-3, alias(choice('print', 'exec', 'async', 'await'), $.identifier)),
|
|
916
|
-
alias(choice('type', 'match'), $.identifier)
|
|
1020
|
+
alias(choice('type', 'match', 'lazy'), $.identifier)
|
|
917
1021
|
),
|
|
918
1022
|
|
|
919
1023
|
true: () => 'True',
|
package/package.json
CHANGED
package/queries/highlights.scm
CHANGED
|
@@ -63,6 +63,9 @@
|
|
|
63
63
|
|
|
64
64
|
(attribute attribute: (identifier) @property)
|
|
65
65
|
(type (identifier) @type)
|
|
66
|
+
(member_type (identifier) @type)
|
|
67
|
+
(generic_type (identifier) @type)
|
|
68
|
+
(default_type_parameter name: (identifier) @type)
|
|
66
69
|
|
|
67
70
|
; Literals
|
|
68
71
|
|
|
@@ -164,3 +167,5 @@
|
|
|
164
167
|
"match"
|
|
165
168
|
"case"
|
|
166
169
|
] @keyword
|
|
170
|
+
|
|
171
|
+
(lazy_import_statement "lazy" @keyword)
|
package/src/node-types.json
CHANGED
|
@@ -720,6 +720,10 @@
|
|
|
720
720
|
"type": "import_statement",
|
|
721
721
|
"named": true
|
|
722
722
|
},
|
|
723
|
+
{
|
|
724
|
+
"type": "lazy_import_statement",
|
|
725
|
+
"named": true
|
|
726
|
+
},
|
|
723
727
|
{
|
|
724
728
|
"type": "match_statement",
|
|
725
729
|
"named": true
|
|
@@ -1303,6 +1307,46 @@
|
|
|
1303
1307
|
}
|
|
1304
1308
|
}
|
|
1305
1309
|
},
|
|
1310
|
+
{
|
|
1311
|
+
"type": "default_type_parameter",
|
|
1312
|
+
"named": true,
|
|
1313
|
+
"fields": {
|
|
1314
|
+
"bound": {
|
|
1315
|
+
"multiple": false,
|
|
1316
|
+
"required": false,
|
|
1317
|
+
"types": [
|
|
1318
|
+
{
|
|
1319
|
+
"type": "type",
|
|
1320
|
+
"named": true
|
|
1321
|
+
}
|
|
1322
|
+
]
|
|
1323
|
+
},
|
|
1324
|
+
"name": {
|
|
1325
|
+
"multiple": false,
|
|
1326
|
+
"required": true,
|
|
1327
|
+
"types": [
|
|
1328
|
+
{
|
|
1329
|
+
"type": "identifier",
|
|
1330
|
+
"named": true
|
|
1331
|
+
}
|
|
1332
|
+
]
|
|
1333
|
+
},
|
|
1334
|
+
"value": {
|
|
1335
|
+
"multiple": false,
|
|
1336
|
+
"required": true,
|
|
1337
|
+
"types": [
|
|
1338
|
+
{
|
|
1339
|
+
"type": "list_splat",
|
|
1340
|
+
"named": true
|
|
1341
|
+
},
|
|
1342
|
+
{
|
|
1343
|
+
"type": "type",
|
|
1344
|
+
"named": true
|
|
1345
|
+
}
|
|
1346
|
+
]
|
|
1347
|
+
}
|
|
1348
|
+
}
|
|
1349
|
+
},
|
|
1306
1350
|
{
|
|
1307
1351
|
"type": "delete_statement",
|
|
1308
1352
|
"named": true,
|
|
@@ -1990,6 +2034,10 @@
|
|
|
1990
2034
|
"type": "identifier",
|
|
1991
2035
|
"named": true
|
|
1992
2036
|
},
|
|
2037
|
+
{
|
|
2038
|
+
"type": "member_type",
|
|
2039
|
+
"named": true
|
|
2040
|
+
},
|
|
1993
2041
|
{
|
|
1994
2042
|
"type": "type_parameter",
|
|
1995
2043
|
"named": true
|
|
@@ -2332,6 +2380,25 @@
|
|
|
2332
2380
|
]
|
|
2333
2381
|
}
|
|
2334
2382
|
},
|
|
2383
|
+
{
|
|
2384
|
+
"type": "lazy_import_statement",
|
|
2385
|
+
"named": true,
|
|
2386
|
+
"fields": {},
|
|
2387
|
+
"children": {
|
|
2388
|
+
"multiple": false,
|
|
2389
|
+
"required": true,
|
|
2390
|
+
"types": [
|
|
2391
|
+
{
|
|
2392
|
+
"type": "import_from_statement",
|
|
2393
|
+
"named": true
|
|
2394
|
+
},
|
|
2395
|
+
{
|
|
2396
|
+
"type": "import_statement",
|
|
2397
|
+
"named": true
|
|
2398
|
+
}
|
|
2399
|
+
]
|
|
2400
|
+
}
|
|
2401
|
+
},
|
|
2335
2402
|
{
|
|
2336
2403
|
"type": "list",
|
|
2337
2404
|
"named": true,
|
|
@@ -2347,6 +2414,10 @@
|
|
|
2347
2414
|
{
|
|
2348
2415
|
"type": "list_splat",
|
|
2349
2416
|
"named": true
|
|
2417
|
+
},
|
|
2418
|
+
{
|
|
2419
|
+
"type": "type",
|
|
2420
|
+
"named": true
|
|
2350
2421
|
}
|
|
2351
2422
|
]
|
|
2352
2423
|
}
|
|
@@ -2435,6 +2506,10 @@
|
|
|
2435
2506
|
{
|
|
2436
2507
|
"type": "primary_expression",
|
|
2437
2508
|
"named": true
|
|
2509
|
+
},
|
|
2510
|
+
{
|
|
2511
|
+
"type": "type",
|
|
2512
|
+
"named": true
|
|
2438
2513
|
}
|
|
2439
2514
|
]
|
|
2440
2515
|
}
|
|
@@ -2504,6 +2579,10 @@
|
|
|
2504
2579
|
"type": "identifier",
|
|
2505
2580
|
"named": true
|
|
2506
2581
|
},
|
|
2582
|
+
{
|
|
2583
|
+
"type": "member_type",
|
|
2584
|
+
"named": true
|
|
2585
|
+
},
|
|
2507
2586
|
{
|
|
2508
2587
|
"type": "type",
|
|
2509
2588
|
"named": true
|
|
@@ -2580,6 +2659,10 @@
|
|
|
2580
2659
|
"type": "import_statement",
|
|
2581
2660
|
"named": true
|
|
2582
2661
|
},
|
|
2662
|
+
{
|
|
2663
|
+
"type": "lazy_import_statement",
|
|
2664
|
+
"named": true
|
|
2665
|
+
},
|
|
2583
2666
|
{
|
|
2584
2667
|
"type": "match_statement",
|
|
2585
2668
|
"named": true
|
|
@@ -2758,6 +2841,10 @@
|
|
|
2758
2841
|
"type": "expression",
|
|
2759
2842
|
"named": true
|
|
2760
2843
|
},
|
|
2844
|
+
{
|
|
2845
|
+
"type": "type",
|
|
2846
|
+
"named": true
|
|
2847
|
+
},
|
|
2761
2848
|
{
|
|
2762
2849
|
"type": "yield",
|
|
2763
2850
|
"named": true
|
|
@@ -3002,6 +3089,10 @@
|
|
|
3002
3089
|
{
|
|
3003
3090
|
"type": "primary_expression",
|
|
3004
3091
|
"named": true
|
|
3092
|
+
},
|
|
3093
|
+
{
|
|
3094
|
+
"type": "type",
|
|
3095
|
+
"named": true
|
|
3005
3096
|
}
|
|
3006
3097
|
]
|
|
3007
3098
|
}
|
|
@@ -3135,6 +3226,10 @@
|
|
|
3135
3226
|
{
|
|
3136
3227
|
"type": "list_splat",
|
|
3137
3228
|
"named": true
|
|
3229
|
+
},
|
|
3230
|
+
{
|
|
3231
|
+
"type": "type",
|
|
3232
|
+
"named": true
|
|
3138
3233
|
}
|
|
3139
3234
|
]
|
|
3140
3235
|
}
|
|
@@ -3178,10 +3273,6 @@
|
|
|
3178
3273
|
"type": "generic_type",
|
|
3179
3274
|
"named": true
|
|
3180
3275
|
},
|
|
3181
|
-
{
|
|
3182
|
-
"type": "identifier",
|
|
3183
|
-
"named": true
|
|
3184
|
-
},
|
|
3185
3276
|
{
|
|
3186
3277
|
"type": "member_type",
|
|
3187
3278
|
"named": true
|
|
@@ -3227,6 +3318,18 @@
|
|
|
3227
3318
|
"multiple": true,
|
|
3228
3319
|
"required": true,
|
|
3229
3320
|
"types": [
|
|
3321
|
+
{
|
|
3322
|
+
"type": "default_type_parameter",
|
|
3323
|
+
"named": true
|
|
3324
|
+
},
|
|
3325
|
+
{
|
|
3326
|
+
"type": "named_expression",
|
|
3327
|
+
"named": true
|
|
3328
|
+
},
|
|
3329
|
+
{
|
|
3330
|
+
"type": "slice",
|
|
3331
|
+
"named": true
|
|
3332
|
+
},
|
|
3230
3333
|
{
|
|
3231
3334
|
"type": "splat_type",
|
|
3232
3335
|
"named": true
|
|
@@ -3858,6 +3961,10 @@
|
|
|
3858
3961
|
"type": "lambda",
|
|
3859
3962
|
"named": false
|
|
3860
3963
|
},
|
|
3964
|
+
{
|
|
3965
|
+
"type": "lazy",
|
|
3966
|
+
"named": false
|
|
3967
|
+
},
|
|
3861
3968
|
{
|
|
3862
3969
|
"type": "line_continuation",
|
|
3863
3970
|
"named": true,
|
package/tree-sitter-python.wasm
CHANGED
|
Binary file
|