X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fparser_proc.y;h=c90062a365e1b1cd2b18a105337b87d797668dc2;hp=0a7259ed8f3b082332bfc78328820bc5095fb92a;hb=514614a6765283ca9c74a48b0f6c6fd24d6fd8e2;hpb=2421d323be79e4a811a4197914330a8c0124b130 diff --git a/src/parser_proc.y b/src/parser_proc.y index 0a7259e..c90062a 100644 --- a/src/parser_proc.y +++ b/src/parser_proc.y @@ -23,7 +23,8 @@ } %nonassoc NAME. -%left PLUS MINUS SLASH ASTERISK. +%left PLUS MINUS. +%left SLASH ASTERISK. %fallback NAME FREE SET LET RETURN LIB INT UNSIGNED. file ::= blocks. @@ -411,13 +412,23 @@ set_stmt(set) ::= SET impl_var(var) EQUALS set_value(val) EOS. { %type set_value {set_value*} %destructor set_value {free_set_value($$);} -set_value(val) ::= set_func(func) LPAREN decl_vars(vars) RPAREN. { - val = init_set_value(func, vars); +set_value(val) ::= set_func(func) LPAREN decl_var(var) RPAREN. { + val = init_set_value(func, init_decl_vars(var)); } -set_value(val) ::= set_func(func_) LPAREN decl_vars(vars_) COMMA set_vals(vals) RPAREN. { +set_value(val) ::= set_func(func) LPAREN decl_var(var) COMMA num_exp(num_) RPAREN. { + val = init_set_value(func, init_decl_vars(var)); + val->num = num_; +} +set_value(val) ::= set_func(func_) LPAREN decl_var(var) COMMA set_vals(vals) RPAREN. { + val = vals; + val->func = func_; + val->vars = init_decl_vars(var); +} +set_value(val) ::= set_func(func_) LPAREN decl_var(var) COMMA num_exp(num_) COMMA set_vals(vals) RPAREN. { val = vals; val->func = func_; - val->vars = vars_; + val->num = num_; + val->vars = init_decl_vars(var); } %type set_vals {set_value*} %destructor set_vals {free_set_value($$);}