Skip to content

Commit feca6ec

Browse files
authored
Add support for logical assignment operators '&&=', '||=', and '??='. (#136)
Co-authored-by: Martin Jambon <Martin Jambon>
1 parent a2e3d72 commit feca6ec

File tree

5 files changed

+8570
-8401
lines changed

5 files changed

+8570
-8401
lines changed

grammar.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -705,7 +705,8 @@ module.exports = grammar({
705705
$.identifier,
706706
$.parenthesized_expression,
707707
)),
708-
choice('+=', '-=', '*=', '/=', '%=', '^=', '&=', '|=', '>>=', '>>>=', '<<=', '**='),
708+
choice('+=', '-=', '*=', '/=', '%=', '^=', '&=', '|=', '>>=', '>>>=',
709+
'<<=', '**=', '&&=', '||=', '??='),
709710
field('right', $._expression)
710711
)),
711712

src/grammar.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3133,6 +3133,18 @@
31333133
{
31343134
"type": "STRING",
31353135
"value": "**="
3136+
},
3137+
{
3138+
"type": "STRING",
3139+
"value": "&&="
3140+
},
3141+
{
3142+
"type": "STRING",
3143+
"value": "||="
3144+
},
3145+
{
3146+
"type": "STRING",
3147+
"value": "??="
31363148
}
31373149
]
31383150
},

src/node-types.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2800,6 +2800,10 @@
28002800
"type": "&&",
28012801
"named": false
28022802
},
2803+
{
2804+
"type": "&&=",
2805+
"named": false
2806+
},
28032807
{
28042808
"type": "&=",
28052809
"named": false
@@ -2948,6 +2952,10 @@
29482952
"type": "??",
29492953
"named": false
29502954
},
2955+
{
2956+
"type": "??=",
2957+
"named": false
2958+
},
29512959
{
29522960
"type": "@",
29532961
"named": false
@@ -3216,6 +3224,10 @@
32163224
"type": "||",
32173225
"named": false
32183226
},
3227+
{
3228+
"type": "||=",
3229+
"named": false
3230+
},
32193231
{
32203232
"type": "}",
32213233
"named": false

0 commit comments

Comments
 (0)