tree-sitter-bynk 0.216.1 → 0.220.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 +34 -2
- package/package.json +1 -1
- package/src/grammar.json +82 -2
- package/src/node-types.json +140 -0
- package/src/parser.c +37640 -36575
package/grammar.js
CHANGED
|
@@ -1186,7 +1186,17 @@ module.exports = grammar({
|
|
|
1186
1186
|
match_arm: ($) =>
|
|
1187
1187
|
prec.right(
|
|
1188
1188
|
seq(
|
|
1189
|
-
|
|
1189
|
+
// #472: `refined_pattern` is admitted only here — the top-level
|
|
1190
|
+
// pattern of a match arm — not through `_pattern` generally, so it
|
|
1191
|
+
// stays unreachable from `is_expr` and from nested payload
|
|
1192
|
+
// positions (`_pattern_binding`). Both of those sit in
|
|
1193
|
+
// expression-continuable contexts (`&&`, `(`, …) where
|
|
1194
|
+
// `refinement`'s own `&&`-joined predicate list becomes ambiguous
|
|
1195
|
+
// with the surrounding expression grammar; a match arm's pattern is
|
|
1196
|
+
// always followed by a fixed terminator (`if`/`=>`), so no such
|
|
1197
|
+
// ambiguity exists here. This also matches the semantic scope
|
|
1198
|
+
// (v1: no nested/`is`-position refined patterns).
|
|
1199
|
+
field("pattern", choice($._pattern, $.refined_pattern)),
|
|
1190
1200
|
// v0.145 (ADR 0169): an optional trailing `if <Bool-expr>` guard,
|
|
1191
1201
|
// between the pattern and `=>`, gating the arm over its bindings. The
|
|
1192
1202
|
// `if` reuses the existing keyword token (already highlighted).
|
|
@@ -1198,9 +1208,31 @@ module.exports = grammar({
|
|
|
1198
1208
|
optional(","),
|
|
1199
1209
|
),
|
|
1200
1210
|
),
|
|
1211
|
+
refined_pattern: ($) =>
|
|
1212
|
+
seq(field("inner", $._pattern), "where", field("predicate", $.refinement)),
|
|
1201
1213
|
|
|
1202
1214
|
_pattern: ($) =>
|
|
1203
|
-
choice(
|
|
1215
|
+
choice(
|
|
1216
|
+
$.wildcard_pattern,
|
|
1217
|
+
$.literal_pattern,
|
|
1218
|
+
$.variant_pattern,
|
|
1219
|
+
$.or_pattern,
|
|
1220
|
+
$.paren_pattern,
|
|
1221
|
+
),
|
|
1222
|
+
// #474 §2.3.4: `p₁ | p₂ | … | pₙ` — an or-pattern, left-associative;
|
|
1223
|
+
// matches if any alternative matches. `|` is a pattern-position operator
|
|
1224
|
+
// only — not a valid expression operator, and lexically distinct from
|
|
1225
|
+
// boolean `||` — so there is no ambiguity with the surrounding
|
|
1226
|
+
// `is`/match-arm productions.
|
|
1227
|
+
or_pattern: ($) => prec.left(1, seq($._pattern, "|", $._pattern)),
|
|
1228
|
+
// #474 §2.3.6: parentheses around a pattern are transparent grouping —
|
|
1229
|
+
// `is (Held(...) | Confirmed(...))` — recommended for readability around
|
|
1230
|
+
// an or-pattern but not otherwise meaningful; `is` already greedily
|
|
1231
|
+
// parses one whole pattern, `|`-chain included, with or without them.
|
|
1232
|
+
// #472: also never admits `refined_pattern` inside (mirrors `is_expr` —
|
|
1233
|
+
// a refined pattern can only ever be a match arm's outermost pattern,
|
|
1234
|
+
// never nested, parenthesized, or one alternative of an outer `|`-chain).
|
|
1235
|
+
paren_pattern: ($) => seq("(", $._pattern, ")"),
|
|
1204
1236
|
wildcard_pattern: () => "_",
|
|
1205
1237
|
// v0.130 §2.3.4: a literal pattern — an integer (optionally negated), a
|
|
1206
1238
|
// string, or a boolean. A closed set (ADR 0001); no `Float`, no `()`.
|
package/package.json
CHANGED
package/src/grammar.json
CHANGED
|
@@ -5696,8 +5696,17 @@
|
|
|
5696
5696
|
"type": "FIELD",
|
|
5697
5697
|
"name": "pattern",
|
|
5698
5698
|
"content": {
|
|
5699
|
-
"type": "
|
|
5700
|
-
"
|
|
5699
|
+
"type": "CHOICE",
|
|
5700
|
+
"members": [
|
|
5701
|
+
{
|
|
5702
|
+
"type": "SYMBOL",
|
|
5703
|
+
"name": "_pattern"
|
|
5704
|
+
},
|
|
5705
|
+
{
|
|
5706
|
+
"type": "SYMBOL",
|
|
5707
|
+
"name": "refined_pattern"
|
|
5708
|
+
}
|
|
5709
|
+
]
|
|
5701
5710
|
}
|
|
5702
5711
|
},
|
|
5703
5712
|
{
|
|
@@ -5752,6 +5761,31 @@
|
|
|
5752
5761
|
]
|
|
5753
5762
|
}
|
|
5754
5763
|
},
|
|
5764
|
+
"refined_pattern": {
|
|
5765
|
+
"type": "SEQ",
|
|
5766
|
+
"members": [
|
|
5767
|
+
{
|
|
5768
|
+
"type": "FIELD",
|
|
5769
|
+
"name": "inner",
|
|
5770
|
+
"content": {
|
|
5771
|
+
"type": "SYMBOL",
|
|
5772
|
+
"name": "_pattern"
|
|
5773
|
+
}
|
|
5774
|
+
},
|
|
5775
|
+
{
|
|
5776
|
+
"type": "STRING",
|
|
5777
|
+
"value": "where"
|
|
5778
|
+
},
|
|
5779
|
+
{
|
|
5780
|
+
"type": "FIELD",
|
|
5781
|
+
"name": "predicate",
|
|
5782
|
+
"content": {
|
|
5783
|
+
"type": "SYMBOL",
|
|
5784
|
+
"name": "refinement"
|
|
5785
|
+
}
|
|
5786
|
+
}
|
|
5787
|
+
]
|
|
5788
|
+
},
|
|
5755
5789
|
"_pattern": {
|
|
5756
5790
|
"type": "CHOICE",
|
|
5757
5791
|
"members": [
|
|
@@ -5766,6 +5800,52 @@
|
|
|
5766
5800
|
{
|
|
5767
5801
|
"type": "SYMBOL",
|
|
5768
5802
|
"name": "variant_pattern"
|
|
5803
|
+
},
|
|
5804
|
+
{
|
|
5805
|
+
"type": "SYMBOL",
|
|
5806
|
+
"name": "or_pattern"
|
|
5807
|
+
},
|
|
5808
|
+
{
|
|
5809
|
+
"type": "SYMBOL",
|
|
5810
|
+
"name": "paren_pattern"
|
|
5811
|
+
}
|
|
5812
|
+
]
|
|
5813
|
+
},
|
|
5814
|
+
"or_pattern": {
|
|
5815
|
+
"type": "PREC_LEFT",
|
|
5816
|
+
"value": 1,
|
|
5817
|
+
"content": {
|
|
5818
|
+
"type": "SEQ",
|
|
5819
|
+
"members": [
|
|
5820
|
+
{
|
|
5821
|
+
"type": "SYMBOL",
|
|
5822
|
+
"name": "_pattern"
|
|
5823
|
+
},
|
|
5824
|
+
{
|
|
5825
|
+
"type": "STRING",
|
|
5826
|
+
"value": "|"
|
|
5827
|
+
},
|
|
5828
|
+
{
|
|
5829
|
+
"type": "SYMBOL",
|
|
5830
|
+
"name": "_pattern"
|
|
5831
|
+
}
|
|
5832
|
+
]
|
|
5833
|
+
}
|
|
5834
|
+
},
|
|
5835
|
+
"paren_pattern": {
|
|
5836
|
+
"type": "SEQ",
|
|
5837
|
+
"members": [
|
|
5838
|
+
{
|
|
5839
|
+
"type": "STRING",
|
|
5840
|
+
"value": "("
|
|
5841
|
+
},
|
|
5842
|
+
{
|
|
5843
|
+
"type": "SYMBOL",
|
|
5844
|
+
"name": "_pattern"
|
|
5845
|
+
},
|
|
5846
|
+
{
|
|
5847
|
+
"type": "STRING",
|
|
5848
|
+
"value": ")"
|
|
5769
5849
|
}
|
|
5770
5850
|
]
|
|
5771
5851
|
},
|
package/src/node-types.json
CHANGED
|
@@ -4419,6 +4419,14 @@
|
|
|
4419
4419
|
"type": "literal_pattern",
|
|
4420
4420
|
"named": true
|
|
4421
4421
|
},
|
|
4422
|
+
{
|
|
4423
|
+
"type": "or_pattern",
|
|
4424
|
+
"named": true
|
|
4425
|
+
},
|
|
4426
|
+
{
|
|
4427
|
+
"type": "paren_pattern",
|
|
4428
|
+
"named": true
|
|
4429
|
+
},
|
|
4422
4430
|
{
|
|
4423
4431
|
"type": "variant_pattern",
|
|
4424
4432
|
"named": true
|
|
@@ -5583,6 +5591,18 @@
|
|
|
5583
5591
|
"type": "literal_pattern",
|
|
5584
5592
|
"named": true
|
|
5585
5593
|
},
|
|
5594
|
+
{
|
|
5595
|
+
"type": "or_pattern",
|
|
5596
|
+
"named": true
|
|
5597
|
+
},
|
|
5598
|
+
{
|
|
5599
|
+
"type": "paren_pattern",
|
|
5600
|
+
"named": true
|
|
5601
|
+
},
|
|
5602
|
+
{
|
|
5603
|
+
"type": "refined_pattern",
|
|
5604
|
+
"named": true
|
|
5605
|
+
},
|
|
5586
5606
|
{
|
|
5587
5607
|
"type": "variant_pattern",
|
|
5588
5608
|
"named": true
|
|
@@ -6075,6 +6095,14 @@
|
|
|
6075
6095
|
"type": "literal_pattern",
|
|
6076
6096
|
"named": true
|
|
6077
6097
|
},
|
|
6098
|
+
{
|
|
6099
|
+
"type": "or_pattern",
|
|
6100
|
+
"named": true
|
|
6101
|
+
},
|
|
6102
|
+
{
|
|
6103
|
+
"type": "paren_pattern",
|
|
6104
|
+
"named": true
|
|
6105
|
+
},
|
|
6078
6106
|
{
|
|
6079
6107
|
"type": "variant_pattern",
|
|
6080
6108
|
"named": true
|
|
@@ -6439,6 +6467,37 @@
|
|
|
6439
6467
|
}
|
|
6440
6468
|
}
|
|
6441
6469
|
},
|
|
6470
|
+
{
|
|
6471
|
+
"type": "or_pattern",
|
|
6472
|
+
"named": true,
|
|
6473
|
+
"fields": {},
|
|
6474
|
+
"children": {
|
|
6475
|
+
"multiple": true,
|
|
6476
|
+
"required": true,
|
|
6477
|
+
"types": [
|
|
6478
|
+
{
|
|
6479
|
+
"type": "literal_pattern",
|
|
6480
|
+
"named": true
|
|
6481
|
+
},
|
|
6482
|
+
{
|
|
6483
|
+
"type": "or_pattern",
|
|
6484
|
+
"named": true
|
|
6485
|
+
},
|
|
6486
|
+
{
|
|
6487
|
+
"type": "paren_pattern",
|
|
6488
|
+
"named": true
|
|
6489
|
+
},
|
|
6490
|
+
{
|
|
6491
|
+
"type": "variant_pattern",
|
|
6492
|
+
"named": true
|
|
6493
|
+
},
|
|
6494
|
+
{
|
|
6495
|
+
"type": "wildcard_pattern",
|
|
6496
|
+
"named": true
|
|
6497
|
+
}
|
|
6498
|
+
]
|
|
6499
|
+
}
|
|
6500
|
+
},
|
|
6442
6501
|
{
|
|
6443
6502
|
"type": "param",
|
|
6444
6503
|
"named": true,
|
|
@@ -6624,6 +6683,37 @@
|
|
|
6624
6683
|
]
|
|
6625
6684
|
}
|
|
6626
6685
|
},
|
|
6686
|
+
{
|
|
6687
|
+
"type": "paren_pattern",
|
|
6688
|
+
"named": true,
|
|
6689
|
+
"fields": {},
|
|
6690
|
+
"children": {
|
|
6691
|
+
"multiple": false,
|
|
6692
|
+
"required": true,
|
|
6693
|
+
"types": [
|
|
6694
|
+
{
|
|
6695
|
+
"type": "literal_pattern",
|
|
6696
|
+
"named": true
|
|
6697
|
+
},
|
|
6698
|
+
{
|
|
6699
|
+
"type": "or_pattern",
|
|
6700
|
+
"named": true
|
|
6701
|
+
},
|
|
6702
|
+
{
|
|
6703
|
+
"type": "paren_pattern",
|
|
6704
|
+
"named": true
|
|
6705
|
+
},
|
|
6706
|
+
{
|
|
6707
|
+
"type": "variant_pattern",
|
|
6708
|
+
"named": true
|
|
6709
|
+
},
|
|
6710
|
+
{
|
|
6711
|
+
"type": "wildcard_pattern",
|
|
6712
|
+
"named": true
|
|
6713
|
+
}
|
|
6714
|
+
]
|
|
6715
|
+
}
|
|
6716
|
+
},
|
|
6627
6717
|
{
|
|
6628
6718
|
"type": "pred_atom",
|
|
6629
6719
|
"named": true,
|
|
@@ -7437,6 +7527,48 @@
|
|
|
7437
7527
|
]
|
|
7438
7528
|
}
|
|
7439
7529
|
},
|
|
7530
|
+
{
|
|
7531
|
+
"type": "refined_pattern",
|
|
7532
|
+
"named": true,
|
|
7533
|
+
"fields": {
|
|
7534
|
+
"inner": {
|
|
7535
|
+
"multiple": false,
|
|
7536
|
+
"required": true,
|
|
7537
|
+
"types": [
|
|
7538
|
+
{
|
|
7539
|
+
"type": "literal_pattern",
|
|
7540
|
+
"named": true
|
|
7541
|
+
},
|
|
7542
|
+
{
|
|
7543
|
+
"type": "or_pattern",
|
|
7544
|
+
"named": true
|
|
7545
|
+
},
|
|
7546
|
+
{
|
|
7547
|
+
"type": "paren_pattern",
|
|
7548
|
+
"named": true
|
|
7549
|
+
},
|
|
7550
|
+
{
|
|
7551
|
+
"type": "variant_pattern",
|
|
7552
|
+
"named": true
|
|
7553
|
+
},
|
|
7554
|
+
{
|
|
7555
|
+
"type": "wildcard_pattern",
|
|
7556
|
+
"named": true
|
|
7557
|
+
}
|
|
7558
|
+
]
|
|
7559
|
+
},
|
|
7560
|
+
"predicate": {
|
|
7561
|
+
"multiple": false,
|
|
7562
|
+
"required": true,
|
|
7563
|
+
"types": [
|
|
7564
|
+
{
|
|
7565
|
+
"type": "refinement",
|
|
7566
|
+
"named": true
|
|
7567
|
+
}
|
|
7568
|
+
]
|
|
7569
|
+
}
|
|
7570
|
+
}
|
|
7571
|
+
},
|
|
7440
7572
|
{
|
|
7441
7573
|
"type": "refined_type",
|
|
7442
7574
|
"named": true,
|
|
@@ -9969,6 +10101,14 @@
|
|
|
9969
10101
|
"type": "named_binding",
|
|
9970
10102
|
"named": true
|
|
9971
10103
|
},
|
|
10104
|
+
{
|
|
10105
|
+
"type": "or_pattern",
|
|
10106
|
+
"named": true
|
|
10107
|
+
},
|
|
10108
|
+
{
|
|
10109
|
+
"type": "paren_pattern",
|
|
10110
|
+
"named": true
|
|
10111
|
+
},
|
|
9972
10112
|
{
|
|
9973
10113
|
"type": "variant_pattern",
|
|
9974
10114
|
"named": true
|