Skip to content

Commit ce68e3f

Browse files
committed
Implement delete
1 parent cac13c4 commit ce68e3f

File tree

6 files changed

+22622
-22117
lines changed

6 files changed

+22622
-22117
lines changed

grammar.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ module.exports = grammar({
249249
seq(
250250
optional($.typeAnnotation),
251251
"=",
252-
$._expr
252+
choice($._expr, $.delete),
253253
),
254254
repeat1($.objectBody)
255255
)
@@ -262,7 +262,7 @@ module.exports = grammar({
262262
field("key", $._expr),
263263
"]",
264264
choice(
265-
seq("=", field("valueExpr", $._expr)),
265+
seq("=", choice(field("valueExpr", $._expr), $.delete)),
266266
repeat1($.objectBody)
267267
)
268268
),
@@ -274,7 +274,7 @@ module.exports = grammar({
274274
field("conditionExpr", $._expr),
275275
"]]",
276276
choice(
277-
seq("=", field("valueExpr", $._expr)),
277+
seq("=", choice(field("valueExpr", $._expr), $.delete)),
278278
repeat1($.objectBody)
279279
)
280280
),
@@ -397,6 +397,8 @@ module.exports = grammar({
397397
$._expr2
398398
),
399399

400+
delete: $ => "delete",
401+
400402
variableObjectLiteral: $ => prec(PREC.VAR_OBJ_LITERAL, seq(
401403
$.identifier,
402404
$.objectBody

src/grammar.json

Lines changed: 45 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -758,8 +758,17 @@
758758
"value": "="
759759
},
760760
{
761-
"type": "SYMBOL",
762-
"name": "_expr"
761+
"type": "CHOICE",
762+
"members": [
763+
{
764+
"type": "SYMBOL",
765+
"name": "_expr"
766+
},
767+
{
768+
"type": "SYMBOL",
769+
"name": "delete"
770+
}
771+
]
763772
}
764773
]
765774
},
@@ -821,12 +830,21 @@
821830
"value": "="
822831
},
823832
{
824-
"type": "FIELD",
825-
"name": "valueExpr",
826-
"content": {
827-
"type": "SYMBOL",
828-
"name": "_expr"
829-
}
833+
"type": "CHOICE",
834+
"members": [
835+
{
836+
"type": "FIELD",
837+
"name": "valueExpr",
838+
"content": {
839+
"type": "SYMBOL",
840+
"name": "_expr"
841+
}
842+
},
843+
{
844+
"type": "SYMBOL",
845+
"name": "delete"
846+
}
847+
]
830848
}
831849
]
832850
},
@@ -884,12 +902,21 @@
884902
"value": "="
885903
},
886904
{
887-
"type": "FIELD",
888-
"name": "valueExpr",
889-
"content": {
890-
"type": "SYMBOL",
891-
"name": "_expr"
892-
}
905+
"type": "CHOICE",
906+
"members": [
907+
{
908+
"type": "FIELD",
909+
"name": "valueExpr",
910+
"content": {
911+
"type": "SYMBOL",
912+
"name": "_expr"
913+
}
914+
},
915+
{
916+
"type": "SYMBOL",
917+
"name": "delete"
918+
}
919+
]
893920
}
894921
]
895922
},
@@ -1599,6 +1626,10 @@
15991626
}
16001627
]
16011628
},
1629+
"delete": {
1630+
"type": "STRING",
1631+
"value": "delete"
1632+
},
16021633
"variableObjectLiteral": {
16031634
"type": "PREC",
16041635
"value": 2,

src/node-types.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2985,6 +2985,10 @@
29852985
"multiple": true,
29862986
"required": false,
29872987
"types": [
2988+
{
2989+
"type": "delete",
2990+
"named": true
2991+
},
29882992
{
29892993
"type": "objectBody",
29902994
"named": true
@@ -3563,6 +3567,10 @@
35633567
"multiple": true,
35643568
"required": false,
35653569
"types": [
3570+
{
3571+
"type": "delete",
3572+
"named": true
3573+
},
35663574
{
35673575
"type": "objectBody",
35683576
"named": true
@@ -3590,6 +3598,10 @@
35903598
"type": "binaryExprRightAssoc",
35913599
"named": true
35923600
},
3601+
{
3602+
"type": "delete",
3603+
"named": true
3604+
},
35933605
{
35943606
"type": "falseLiteral",
35953607
"named": true
@@ -6132,6 +6144,10 @@
61326144
"type": "const",
61336145
"named": false
61346146
},
6147+
{
6148+
"type": "delete",
6149+
"named": true
6150+
},
61356151
{
61366152
"type": "else",
61376153
"named": false

0 commit comments

Comments
 (0)