aboutsummaryrefslogtreecommitdiff
path: root/src/parser.y
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-08-09 18:10:06 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2024-08-09 18:10:06 +0300
commitaa7ea13840e68abff8e9cf74376a6276f6a99033 (patch)
tree035965adefa1ddf83ffa8b5dc938ec34a7011cc0 /src/parser.y
parent3af8485a1c638ce38c0e21d00791c423c5c9b8c2 (diff)
downloadek-aa7ea13840e68abff8e9cf74376a6276f6a99033.tar.gz
ek-aa7ea13840e68abff8e9cf74376a6276f6a99033.zip
allow trailing delimiter
+ Makes scripts generating code easier to work with
Diffstat (limited to 'src/parser.y')
-rw-r--r--src/parser.y9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/parser.y b/src/parser.y
index ca7226d..6c567a9 100644
--- a/src/parser.y
+++ b/src/parser.y
@@ -329,6 +329,7 @@ rev_decls
decls
: rev_decls { $$ = reverse_ast_list($1); }
+ | rev_decls "," { $$ = reverse_ast_list($1); }
rev_sign_decls
: rev_sign_decls "," sign_decl { $$ = $3; $1->n = $1; }
@@ -336,6 +337,7 @@ rev_sign_decls
sign_decls
: rev_sign_decls { $$ = reverse_type_list($1); }
+ | rev_sign_decls "," { $$ = reverse_type_list($1); }
opt_decls
: decls
@@ -489,6 +491,7 @@ rev_statements
statements
: rev_statements { $$ = reverse_ast_list($1); }
+ | rev_statements ";" { $$ = reverse_ast_list($1); }
body
: "{" statements "}" { $$ = gen_block($2, NULL, src_loc(@$)); }
@@ -500,6 +503,7 @@ rev_references
references
: rev_references { $$ = reverse_ast_list($1); }
+ | rev_references "," { $$ = reverse_ast_list($1); }
macro
: "define" ID "(" references ")" body {
@@ -518,11 +522,12 @@ macro
}
rev_exprs
- : exprs "," expr { $$ = $3; $3->n = $1; }
+ : rev_exprs "," expr { $$ = $3; $$->n = $1; }
| expr
exprs
: rev_exprs { $$ = reverse_ast_list($1); }
+ | rev_exprs "," { $$ = reverse_ast_list($1); }
construct_arg
: "." ID "=" expr {
@@ -536,6 +541,7 @@ rev_construct_args
construct_args
: rev_construct_args { $$ = reverse_ast_list($1); }
+ | rev_construct_args "," { $$ = reverse_ast_list($1); }
construct
: APPLY "{" construct_args "}" {
@@ -569,6 +575,7 @@ rev_for_inits
for_inits
: rev_for_inits { $$ = reverse_ast_list($1); }
+ | rev_for_inits "," { $$ = reverse_ast_list($1); }
opt_for_inits
: for_inits