X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fparser_proc.y;h=50d54dab01a79b42e962ab5b9b1308578a816834;hp=57fc968bab2b8226a8e7323cc0864ef3c83a0e26;hb=b9193a8d80bf7ea8d768b9521bcd298a03974c9d;hpb=8b652242a4ef920f2ab82bfb822596de25bc5a63 diff --git a/src/parser_proc.y b/src/parser_proc.y index 57fc968..50d54da 100644 --- a/src/parser_proc.y +++ b/src/parser_proc.y @@ -29,7 +29,7 @@ void psi_error(int, const char *, int, const char *, ...); %nonassoc NAME. %left PLUS MINUS. %left SLASH ASTERISK. -%fallback NAME TEMP FREE SET LET RETURN CALLOC LIB STRING. +%fallback NAME TEMP FREE SET LET RETURN CALLOC CALLBACK LIB STRING. file ::= blocks. @@ -716,7 +716,7 @@ let_func(func) ::= let_func_token(T) LPAREN impl_var(var) RPAREN. { %type callback_arg_list {set_values *} %destructor callback_arg_list {free_set_values($$);} callback_arg_list ::= . -callback_arg_list(args) ::= COMMA callback_args(args_). { +callback_arg_list(args) ::= callback_args(args_). { args = args_; } @@ -743,7 +743,7 @@ let_val(val) ::= CALLOC LPAREN let_calloc(alloc) RPAREN. { let_val(val) ::= let_func(func). { val = init_let_val(PSI_LET_FUNC, func); } -let_val(val) ::= CALLBACK let_func_token(F) LPAREN impl_var(var) callback_arg_list(args_) RPAREN. { +let_val(val) ::= CALLBACK let_func_token(F) LPAREN impl_var(var) LPAREN callback_arg_list(args_) RPAREN RPAREN. { val = init_let_val(PSI_LET_CALLBACK, init_let_callback( init_let_func(F->type, F->text, var), args_)); free(F);