@@ -10,16 +10,16 @@ Nonterminals
10
10
open_bracket close_bracket
11
11
open_curly close_curly
12
12
open_bit close_bit
13
- container_comma_expr_base container_comma_expr container_arg container_args
14
- call_args_parens_comma_expr call_args_parens parens_call
13
+ container_args_base container_args
14
+ call_args_parens_base call_args_parens parens_call
15
15
call_args_no_parens_one call_args_no_parens_expr call_args_no_parens_comma_expr
16
16
call_args_no_parens_all call_args_no_parens_many call_args_no_parens_many_strict
17
17
stab stab_eol stab_expr stab_maybe_expr stab_parens_many
18
18
kw_eol kw_expr kw_comma kw
19
19
call_args_no_parens_kw_expr call_args_no_parens_kw_comma call_args_no_parens_kw
20
20
dot_op dot_alias dot_identifier dot_op_identifier dot_do_identifier
21
21
dot_paren_identifier dot_bracket_identifier
22
- var list bit_string tuple
22
+ var list list_args bit_string tuple
23
23
do_block fn_eol do_eol end_eol block_eol block_item block_list
24
24
.
25
25
@@ -396,27 +396,22 @@ container_expr -> matched_expr : '$1'.
396
396
container_expr -> unmatched_expr : '$1' .
397
397
container_expr -> no_parens_expr : throw_no_parens_many_strict ('$1' ).
398
398
399
- container_comma_expr_base -> container_expr ',' : ['$1' ].
400
- container_comma_expr_base -> container_comma_expr_base container_expr ',' : ['$2 ' |'$1' ].
399
+ container_args_base -> container_expr : ['$1' ].
400
+ container_args_base -> container_args_base ',' container_expr : ['$3 ' |'$1' ].
401
401
402
- container_comma_expr -> container_expr : ['$1' ].
403
- container_comma_expr -> kw : ['$1' ].
404
- container_comma_expr -> container_comma_expr_base : '$1' .
405
- container_comma_expr -> container_comma_expr_base container_expr : ['$2' |'$1' ].
406
- container_comma_expr -> container_comma_expr_base kw : ['$2' |'$1' ].
402
+ container_args -> kw : ['$1' ].
403
+ container_args -> container_args_base : lists :reverse ('$1' ).
404
+ container_args -> container_args_base ',' : lists :reverse ('$1' ).
405
+ container_args -> container_args_base ',' kw : lists :reverse (['$3' |'$1' ]).
407
406
408
- container_arg -> container_expr : '$1' .
409
- container_arg -> container_expr ',' : '$1' .
410
- container_args -> container_comma_expr : lists :reverse ('$1' ).
411
-
412
- call_args_parens_comma_expr -> container_expr : ['$1' ].
413
- call_args_parens_comma_expr -> call_args_parens_comma_expr ',' container_expr : ['$3' |'$1' ].
407
+ call_args_parens_base -> container_expr : ['$1' ].
408
+ call_args_parens_base -> call_args_parens_base ',' container_expr : ['$3' |'$1' ].
414
409
415
410
call_args_parens -> empty_paren : [].
416
411
call_args_parens -> open_paren no_parens_expr close_paren : ['$2' ].
417
412
call_args_parens -> open_paren kw close_paren : ['$2' ].
418
- call_args_parens -> open_paren call_args_parens_comma_expr close_paren : lists :reverse ('$2' ).
419
- call_args_parens -> open_paren call_args_parens_comma_expr ',' kw close_paren : lists :reverse (['$4' |'$2' ]).
413
+ call_args_parens -> open_paren call_args_parens_base close_paren : lists :reverse ('$2' ).
414
+ call_args_parens -> open_paren call_args_parens_base ',' kw close_paren : lists :reverse (['$4' |'$2' ]).
420
415
421
416
% KV
422
417
@@ -426,6 +421,7 @@ kw_eol -> kw_identifier eol : '$1'.
426
421
kw_expr -> kw_eol container_expr : { ? exprs ('$1' ),'$2' }.
427
422
kw_comma -> kw_expr ',' : ['$1' ].
428
423
kw_comma -> kw_comma kw_expr ',' : ['$2' |'$1' ].
424
+
429
425
kw -> kw_expr : ['$1' ].
430
426
kw -> kw_comma : lists :reverse ('$1' ).
431
427
kw -> kw_comma kw_expr : lists :reverse (['$2' |'$1' ]).
@@ -437,16 +433,18 @@ call_args_no_parens_kw -> call_args_no_parens_kw_comma : '$1'.
437
433
438
434
% Lists
439
435
436
+ list_args -> kw : '$1' .
437
+ list_args -> container_args_base : lists :reverse ('$1' ).
438
+ list_args -> container_args_base ',' : lists :reverse ('$1' ).
439
+ list_args -> container_args_base ',' kw : lists :reverse ('$1' ) ++ '$3' .
440
+
440
441
list -> open_bracket ']' : { [], ? line ('$1' ) }.
441
- list -> open_bracket kw close_bracket : { '$2' , ? line ('$1' ) }.
442
- list -> open_bracket container_arg close_bracket : { ['$2' ], ? line ('$1' ) }.
443
- list -> open_bracket container_expr ',' container_args close_bracket : { ['$2' |'$4' ], ? line ('$1' ) }.
442
+ list -> open_bracket list_args close_bracket : { '$2' , ? line ('$1' ) }.
444
443
445
444
% Tuple
446
445
447
446
tuple -> open_curly '}' : build_tuple ('$1' , []).
448
- tuple -> open_curly container_arg close_curly : build_tuple ('$1' , ['$2' ]).
449
- tuple -> open_curly container_expr ',' container_args close_curly : build_tuple ('$1' , ['$2' |'$4' ]).
447
+ tuple -> open_curly container_args close_curly : build_tuple ('$1' , '$2' ).
450
448
451
449
% Bitstrings
452
450
0 commit comments