Skip to content
This repository was archived by the owner on Oct 20, 2022. It is now read-only.

Commit 9b3149b

Browse files
committed
grammar: support record updates
1 parent 50a73f9 commit 9b3149b

File tree

5 files changed

+12648
-14003
lines changed

5 files changed

+12648
-14003
lines changed

grammar.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ module.exports = grammar({
178178
_expression: ($) =>
179179
choice(
180180
$.expr_map_update,
181+
$.expr_record_update,
181182
$.expr_try,
182183
$.expr_catch,
183184
$.expr_throw,
@@ -201,6 +202,9 @@ module.exports = grammar({
201202
expr_map_update: ($) =>
202203
prec.left(PREC.EXPR_MAP_UPDATE, seq($.expression, $.map)),
203204

205+
expr_record_update: ($) =>
206+
prec.left(PREC.EXPR_MAP_UPDATE, seq($.expression, $.record)),
207+
204208
expr_try: ($) =>
205209
seq(
206210
"try",

src/grammar.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,10 @@
509509
"type": "SYMBOL",
510510
"name": "expr_map_update"
511511
},
512+
{
513+
"type": "SYMBOL",
514+
"name": "expr_record_update"
515+
},
512516
{
513517
"type": "SYMBOL",
514518
"name": "expr_try"
@@ -600,6 +604,23 @@
600604
]
601605
}
602606
},
607+
"expr_record_update": {
608+
"type": "PREC_LEFT",
609+
"value": 9,
610+
"content": {
611+
"type": "SEQ",
612+
"members": [
613+
{
614+
"type": "SYMBOL",
615+
"name": "expression"
616+
},
617+
{
618+
"type": "SYMBOL",
619+
"name": "record"
620+
}
621+
]
622+
}
623+
},
603624
"expr_try": {
604625
"type": "SEQ",
605626
"members": [

src/node-types.json

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -736,6 +736,25 @@
736736
]
737737
}
738738
},
739+
{
740+
"type": "expr_record_update",
741+
"named": true,
742+
"fields": {},
743+
"children": {
744+
"multiple": true,
745+
"required": true,
746+
"types": [
747+
{
748+
"type": "expression",
749+
"named": true
750+
},
751+
{
752+
"type": "record",
753+
"named": true
754+
}
755+
]
756+
}
757+
},
739758
{
740759
"type": "expr_send",
741760
"named": true,
@@ -871,6 +890,10 @@
871890
"type": "expr_receive",
872891
"named": true
873892
},
893+
{
894+
"type": "expr_record_update",
895+
"named": true
896+
},
874897
{
875898
"type": "expr_send",
876899
"named": true
@@ -1806,11 +1829,11 @@
18061829
},
18071830
{
18081831
"type": "float",
1809-
"named": true
1832+
"named": false
18101833
},
18111834
{
18121835
"type": "float",
1813-
"named": false
1836+
"named": true
18141837
},
18151838
{
18161839
"type": "fun",

0 commit comments

Comments
 (0)