X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fparser_proc.y;h=00e4c68d3c5ec211b086782b68900a08e862e03f;hp=15407e0df03bbc1bc5281a1b9978eaf48e493c41;hb=650d82f29a2489fc88ee6bc30a557c8013e176bd;hpb=ff0048963fcbcddc9de14a3e1c370fcc81d12af7 diff --git a/src/parser_proc.y b/src/parser_proc.y index 15407e0..00e4c68 100644 --- a/src/parser_proc.y +++ b/src/parser_proc.y @@ -38,15 +38,15 @@ void psi_parser_proc_free(void **parser_proc) %default_destructor {(void)P;} %extra_argument {struct psi_parser *P} %syntax_error { ++P->errors; if (TOKEN && TOKEN->type != PSI_T_EOF) { psi_error(PSI_WARNING, TOKEN->file, TOKEN->line, "PSI syntax error: Unexpected token '%s' at pos %u", TOKEN->text, TOKEN->col); } else { psi_error(PSI_WARNING, P->file.fn, P->line, "PSI syntax error: Unexpected end of input"); } } -%token_class const_type_token BOOL INT FLOAT STRING. -%token_class decl_type_token FLOAT DOUBLE INT8 UINT8 INT16 UINT16 INT32 UINT32 INT64 UINT64 NAME. -%token_class impl_def_val_token NULL NUMBER TRUE FALSE QUOTED_STRING. -%token_class number_token NUMBER NSNAME. -%token_class num_exp_binary_op_token PIPE CARET AMPERSAND LSHIFT RSHIFT PLUS MINUS ASTERISK SLASH MODULO. -%token_class num_exp_unary_op_token TILDE NOT PLUS MINUS. -%token_class let_func_token ZVAL OBJVAL ARRVAL PATHVAL STRLEN STRVAL FLOATVAL INTVAL BOOLVAL COUNT. -%token_class set_func_token TO_OBJECT TO_ARRAY TO_STRING TO_INT TO_FLOAT TO_BOOL ZVAL VOID. -%token_class impl_type_token VOID MIXED BOOL INT FLOAT STRING ARRAY OBJECT CALLABLE. +%token_class const_type_token BOOL INT FLOAT STRING . +%token_class decl_type_token FLOAT DOUBLE INT8 UINT8 INT16 UINT16 INT32 UINT32 INT64 UINT64 NAME . +%token_class impl_def_val_token NULL NUMBER TRUE FALSE QUOTED_STRING . +%token_class number_token NUMBER NSNAME . +%token_class num_exp_binary_op_token PIPE CARET AMPERSAND LSHIFT RSHIFT PLUS MINUS ASTERISK SLASH MODULO . +%token_class num_exp_unary_op_token TILDE NOT PLUS MINUS . +%token_class let_func_token ZVAL OBJVAL ARRVAL PATHVAL STRLEN STRVAL FLOATVAL INTVAL BOOLVAL COUNT . +%token_class set_func_token TO_OBJECT TO_ARRAY TO_STRING TO_INT TO_FLOAT TO_BOOL ZVAL VOID . +%token_class impl_type_token VOID MIXED BOOL INT FLOAT STRING ARRAY OBJECT CALLABLE . %nonassoc NAME. %right NOT TILDE. %left PIPE. @@ -500,8 +500,12 @@ decl_arg(arg_) ::= CONST VOID(T) pointers(p) NAME(N). { arg_->var->token = N; arg_->token = N; } -decl_args ::= . -decl_args ::= VOID. +decl_args(args) ::= . { + args = NULL; +} +decl_args(args) ::= VOID. { + args = NULL; +} decl_args(args) ::= decl_arg(arg). { args = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg); @@ -820,7 +824,9 @@ let_exps(exps) ::= let_exp(exp). { let_exps(exps) ::= let_exps(exps_) COMMA let_exp(exp). { exps = psi_plist_add(exps_, &exp); } -callback_arg_list ::= . +callback_arg_list(args) ::= . { + args = NULL; +} callback_arg_list(args) ::= callback_args(args_). { args = args_; }