Fix nested new expressions (#198)

* Fix nested new expressions

* Regenerate files
pull/70/head
fn ⌃ ⌥ 2021-08-29 11:32:53 +07:00 committed by GitHub
parent 1ddbf1588c
commit 2cc5803225
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 25818 additions and 25780 deletions

@ -714,7 +714,7 @@ module.exports = grammar({
new_expression: $ => prec.right('new', seq(
'new',
field('constructor', $.primary_expression),
field('constructor', choice($.primary_expression, $.new_expression)),
field('arguments', optional(prec.dynamic(1, $.arguments)))
)),

13
src/grammar.json vendored

@ -3189,8 +3189,17 @@
"type": "FIELD",
"name": "constructor",
"content": {
"type": "SYMBOL",
"name": "primary_expression"
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "primary_expression"
},
{
"type": "SYMBOL",
"name": "new_expression"
}
]
}
},
{

@ -2134,6 +2134,10 @@
"multiple": false,
"required": true,
"types": [
{
"type": "new_expression",
"named": true
},
{
"type": "primary_expression",
"named": true

51568
src/parser.c vendored

File diff suppressed because it is too large Load Diff

@ -812,6 +812,8 @@ Constructor calls
new module.Klass(1, "two");
new Thing;
new new module.Klass(1)("two");
new new Thing;
---
@ -820,7 +822,14 @@ new Thing;
(member_expression (identifier) (property_identifier))
(arguments (number) (string (string_fragment)))))
(expression_statement (new_expression
(identifier))))
(identifier)))
(expression_statement (new_expression
(new_expression
(member_expression (identifier) (property_identifier))
(arguments (number)))
(arguments (string (string_fragment)))))
(expression_statement (new_expression
(new_expression (identifier)))))
============================================
Await Expressions