File tree Expand file tree Collapse file tree 4 files changed +67282
-67156
lines changed Expand file tree Collapse file tree 4 files changed +67282
-67156
lines changed Original file line number Diff line number Diff line change @@ -478,7 +478,9 @@ Functions
478478 function(arg1, ...arg2) {
479479 arg2;
480480 },
481- function stuff() {}
481+ function stuff() {},
482+ function trailing(a,) {},
483+ function trailing(a,b,) {}
482484]
483485
484486---
@@ -495,6 +497,14 @@ Functions
495497 (function
496498 (identifier)
497499 (formal_parameters)
500+ (statement_block))
501+ (function
502+ (identifier)
503+ (formal_parameters (identifier))
504+ (statement_block))
505+ (function
506+ (identifier)
507+ (formal_parameters (identifier) (identifier))
498508 (statement_block)))))
499509
500510===================================================
@@ -507,6 +517,8 @@ a => 1;
507517(f, g) => {
508518 return h;
509519};
520+ (trailing,) => 4;
521+ (h, trailing,) => 5;
510522(set, kv) => 2;
511523
512524---
@@ -525,6 +537,12 @@ a => 1;
525537 (formal_parameters (identifier) (identifier))
526538 (statement_block
527539 (return_statement (identifier)))))
540+ (expression_statement (arrow_function
541+ (formal_parameters (identifier))
542+ (number)))
543+ (expression_statement (arrow_function
544+ (formal_parameters (identifier) (identifier))
545+ (number)))
528546 (expression_statement (arrow_function
529547 (formal_parameters (identifier) (identifier)) (number))))
530548
Original file line number Diff line number Diff line change @@ -41,6 +41,7 @@ module.exports = grammar({
4141 $ . _statement ,
4242 $ . _expressions ,
4343 $ . _semicolon ,
44+ $ . _formal_parameter ,
4445 $ . _destructuring_pattern ,
4546 $ . _reserved_identifier ,
4647 $ . _jsx_attribute ,
@@ -909,16 +910,21 @@ module.exports = grammar({
909910
910911 formal_parameters : $ => seq (
911912 '(' ,
912- commaSep ( choice (
913- $ . identifier ,
914- alias ( $ . _reserved_identifier , $ . identifier ) ,
915- $ . _destructuring_pattern ,
916- $ . assignment_pattern ,
917- $ . rest_parameter
913+ optional ( seq (
914+ commaSep1 ( $ . _formal_parameter ) ,
915+ optional ( ',' )
918916 ) ) ,
919917 ')'
920918 ) ,
921919
920+ _formal_parameter : $ => choice (
921+ $ . identifier ,
922+ alias ( $ . _reserved_identifier , $ . identifier ) ,
923+ $ . _destructuring_pattern ,
924+ $ . assignment_pattern ,
925+ $ . rest_parameter
926+ ) ,
927+
922928 rest_parameter : $ => seq (
923929 '...' ,
924930 $ . identifier
Original file line number Diff line number Diff line change 45984598 "type" : " SEQ" ,
45994599 "members" : [
46004600 {
4601- "type" : " CHOICE " ,
4601+ "type" : " SEQ " ,
46024602 "members" : [
46034603 {
46044604 "type" : " SYMBOL" ,
4605- "name" : " identifier "
4605+ "name" : " _formal_parameter "
46064606 },
46074607 {
4608- "type" : " ALIAS " ,
4608+ "type" : " REPEAT " ,
46094609 "content" : {
4610- "type" : " SYMBOL" ,
4611- "name" : " _reserved_identifier"
4612- },
4613- "named" : true ,
4614- "value" : " identifier"
4615- },
4616- {
4617- "type" : " SYMBOL" ,
4618- "name" : " _destructuring_pattern"
4619- },
4620- {
4621- "type" : " SYMBOL" ,
4622- "name" : " assignment_pattern"
4623- },
4624- {
4625- "type" : " SYMBOL" ,
4626- "name" : " rest_parameter"
4627- }
4628- ]
4629- },
4630- {
4631- "type" : " REPEAT" ,
4632- "content" : {
4633- "type" : " SEQ" ,
4634- "members" : [
4635- {
4636- "type" : " STRING" ,
4637- "value" : " ,"
4638- },
4639- {
4640- "type" : " CHOICE" ,
4610+ "type" : " SEQ" ,
46414611 "members" : [
46424612 {
4643- "type" : " SYMBOL" ,
4644- "name" : " identifier"
4645- },
4646- {
4647- "type" : " ALIAS" ,
4648- "content" : {
4649- "type" : " SYMBOL" ,
4650- "name" : " _reserved_identifier"
4651- },
4652- "named" : true ,
4653- "value" : " identifier"
4654- },
4655- {
4656- "type" : " SYMBOL" ,
4657- "name" : " _destructuring_pattern"
4658- },
4659- {
4660- "type" : " SYMBOL" ,
4661- "name" : " assignment_pattern"
4613+ "type" : " STRING" ,
4614+ "value" : " ,"
46624615 },
46634616 {
46644617 "type" : " SYMBOL" ,
4665- "name" : " rest_parameter "
4618+ "name" : " _formal_parameter "
46664619 }
46674620 ]
46684621 }
4669- ]
4670- }
4622+ }
4623+ ]
4624+ },
4625+ {
4626+ "type" : " CHOICE" ,
4627+ "members" : [
4628+ {
4629+ "type" : " STRING" ,
4630+ "value" : " ,"
4631+ },
4632+ {
4633+ "type" : " BLANK"
4634+ }
4635+ ]
46714636 }
46724637 ]
46734638 },
46824647 }
46834648 ]
46844649 },
4650+ "_formal_parameter" : {
4651+ "type" : " CHOICE" ,
4652+ "members" : [
4653+ {
4654+ "type" : " SYMBOL" ,
4655+ "name" : " identifier"
4656+ },
4657+ {
4658+ "type" : " ALIAS" ,
4659+ "content" : {
4660+ "type" : " SYMBOL" ,
4661+ "name" : " _reserved_identifier"
4662+ },
4663+ "named" : true ,
4664+ "value" : " identifier"
4665+ },
4666+ {
4667+ "type" : " SYMBOL" ,
4668+ "name" : " _destructuring_pattern"
4669+ },
4670+ {
4671+ "type" : " SYMBOL" ,
4672+ "name" : " assignment_pattern"
4673+ },
4674+ {
4675+ "type" : " SYMBOL" ,
4676+ "name" : " rest_parameter"
4677+ }
4678+ ]
4679+ },
46854680 "rest_parameter" : {
46864681 "type" : " SEQ" ,
46874682 "members" : [
49134908 " _statement" ,
49144909 " _expressions" ,
49154910 " _semicolon" ,
4911+ " _formal_parameter" ,
49164912 " _destructuring_pattern" ,
49174913 " _reserved_identifier" ,
49184914 " _jsx_attribute" ,
You can’t perform that action at this time.
0 commit comments