Skip to content

Commit 3f8b62f

Browse files
authored
Reuse LHS classes for "augmented_assignment_expression" (#146)
* designate special group for LHS of augmented assignment expression needed for tree-sitter/tree-sitter-typescript#119 * regenerate parser for '_augmented_assignment_lhs' Co-authored-by: resolritter <[email protected]>
1 parent 6c40521 commit 3f8b62f

File tree

3 files changed

+21754
-21806
lines changed

3 files changed

+21754
-21806
lines changed

grammar.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -698,14 +698,16 @@ module.exports = grammar({
698698
field('right', $._expression)
699699
)),
700700

701+
_augmented_assignment_lhs: $ => choice(
702+
$.member_expression,
703+
$.subscript_expression,
704+
alias($._reserved_identifier, $.identifier),
705+
$.identifier,
706+
$.parenthesized_expression,
707+
),
708+
701709
augmented_assignment_expression: $ => prec.right(PREC.ASSIGN, seq(
702-
field('left', choice(
703-
$.member_expression,
704-
$.subscript_expression,
705-
alias($._reserved_identifier, $.identifier),
706-
$.identifier,
707-
$.parenthesized_expression,
708-
)),
710+
field('left', $._augmented_assignment_lhs),
709711
choice('+=', '-=', '*=', '/=', '%=', '^=', '&=', '|=', '>>=', '>>>=',
710712
'<<=', '**=', '&&=', '||=', '??='),
711713
field('right', $._expression)

src/grammar.json

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3088,6 +3088,36 @@
30883088
]
30893089
}
30903090
},
3091+
"_augmented_assignment_lhs": {
3092+
"type": "CHOICE",
3093+
"members": [
3094+
{
3095+
"type": "SYMBOL",
3096+
"name": "member_expression"
3097+
},
3098+
{
3099+
"type": "SYMBOL",
3100+
"name": "subscript_expression"
3101+
},
3102+
{
3103+
"type": "ALIAS",
3104+
"content": {
3105+
"type": "SYMBOL",
3106+
"name": "_reserved_identifier"
3107+
},
3108+
"named": true,
3109+
"value": "identifier"
3110+
},
3111+
{
3112+
"type": "SYMBOL",
3113+
"name": "identifier"
3114+
},
3115+
{
3116+
"type": "SYMBOL",
3117+
"name": "parenthesized_expression"
3118+
}
3119+
]
3120+
},
30913121
"augmented_assignment_expression": {
30923122
"type": "PREC_RIGHT",
30933123
"value": 0,
@@ -3098,34 +3128,8 @@
30983128
"type": "FIELD",
30993129
"name": "left",
31003130
"content": {
3101-
"type": "CHOICE",
3102-
"members": [
3103-
{
3104-
"type": "SYMBOL",
3105-
"name": "member_expression"
3106-
},
3107-
{
3108-
"type": "SYMBOL",
3109-
"name": "subscript_expression"
3110-
},
3111-
{
3112-
"type": "ALIAS",
3113-
"content": {
3114-
"type": "SYMBOL",
3115-
"name": "_reserved_identifier"
3116-
},
3117-
"named": true,
3118-
"value": "identifier"
3119-
},
3120-
{
3121-
"type": "SYMBOL",
3122-
"name": "identifier"
3123-
},
3124-
{
3125-
"type": "SYMBOL",
3126-
"name": "parenthesized_expression"
3127-
}
3128-
]
3131+
"type": "SYMBOL",
3132+
"name": "_augmented_assignment_lhs"
31293133
}
31303134
},
31313135
{

0 commit comments

Comments
 (0)