@@ -253,10 +253,10 @@ parameter_list:
253
253
254
254
255
255
non_empty_parameter_list :
256
- VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$1 , 0 CLS_CC); $$ .op_type = IS_CONST; $$ .u.constant.value.lval=0 ; $$ .u.constant.type=IS_LONG; $$ .u.constant.refcount=1 ; $$ .u.constant.is_ref=0 ; do_receive_arg(ZEND_RECV, &tmp, &$$ , NULL , BYREF_NONE CLS_CC); }
257
- | ' &' VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$2 , 0 CLS_CC); $$ .op_type = IS_CONST; $$ .u.constant.value.lval=0 ; $$ .u.constant.type=IS_LONG; $$ .u.constant.refcount=1 ; $$ .u.constant.is_ref=0 ; do_receive_arg(ZEND_RECV, &tmp, &$$ , NULL , BYREF_FORCE CLS_CC); }
258
- | ZEND_CONST VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$2 , 0 CLS_CC); $$ .op_type = IS_CONST; $$ .u.constant.value.lval=0 ; $$ .u.constant.type=IS_LONG; $$ .u.constant.refcount=1 ; $$ .u.constant.is_ref=0 ; do_receive_arg(ZEND_RECV, &tmp, &$$ , NULL , BYREF_NONE CLS_CC); }
259
- | VARIABLE ' =' static_scalar { znode tmp; fetch_simple_variable(&tmp, &$1 , 0 CLS_CC); $$ .op_type = IS_CONST; $$ .u.constant.value.lval=0 ; $$ .u.constant.type=IS_LONG; $$ .u.constant.refcount=1 ; $$ .u.constant.is_ref=0 ; do_receive_arg(ZEND_RECV_INIT, &tmp, &$$ , &$3 , BYREF_NONE CLS_CC); }
256
+ VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$1 , 0 CLS_CC); $$ .op_type = IS_CONST; $$ .u.constant.value.lval=1 ; $$ .u.constant.type=IS_LONG; $$ .u.constant.refcount=1 ; $$ .u.constant.is_ref=0 ; do_receive_arg(ZEND_RECV, &tmp, &$$ , NULL , BYREF_NONE CLS_CC); }
257
+ | ' &' VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$2 , 0 CLS_CC); $$ .op_type = IS_CONST; $$ .u.constant.value.lval=1 ; $$ .u.constant.type=IS_LONG; $$ .u.constant.refcount=1 ; $$ .u.constant.is_ref=0 ; do_receive_arg(ZEND_RECV, &tmp, &$$ , NULL , BYREF_FORCE CLS_CC); }
258
+ | ZEND_CONST VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$2 , 0 CLS_CC); $$ .op_type = IS_CONST; $$ .u.constant.value.lval=1 ; $$ .u.constant.type=IS_LONG; $$ .u.constant.refcount=1 ; $$ .u.constant.is_ref=0 ; do_receive_arg(ZEND_RECV, &tmp, &$$ , NULL , BYREF_NONE CLS_CC); }
259
+ | VARIABLE ' =' static_scalar { znode tmp; fetch_simple_variable(&tmp, &$1 , 0 CLS_CC); $$ .op_type = IS_CONST; $$ .u.constant.value.lval=1 ; $$ .u.constant.type=IS_LONG; $$ .u.constant.refcount=1 ; $$ .u.constant.is_ref=0 ; do_receive_arg(ZEND_RECV_INIT, &tmp, &$$ , &$3 , BYREF_NONE CLS_CC); }
260
260
| non_empty_parameter_list ' ,' VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$3 , 0 CLS_CC); $$ =$1 ; $$ .u.constant.value.lval++; do_receive_arg(ZEND_RECV, &tmp, &$$ , NULL , BYREF_NONE CLS_CC); }
261
261
| non_empty_parameter_list ' ,' ' &' VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$4 , 0 CLS_CC); $$ =$1 ; $$ .u.constant.value.lval++; do_receive_arg(ZEND_RECV, &tmp, &$$ , NULL , BYREF_FORCE CLS_CC); }
262
262
| non_empty_parameter_list ' ,' ZEND_CONST VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$4 , 0 CLS_CC); $$ =$1 ; $$ .u.constant.value.lval++; do_receive_arg(ZEND_RECV, &tmp, &$$ , NULL , BYREF_NONE CLS_CC); }
@@ -265,15 +265,15 @@ non_empty_parameter_list:
265
265
266
266
267
267
function_call_parameter_list :
268
- non_empty_function_call_parameter_list
269
- | /* empty */
268
+ non_empty_function_call_parameter_list { $$ = $1 ; }
269
+ | /* empty */ { $$ .u.constant.value.lval = 0 ; }
270
270
;
271
271
272
272
273
273
non_empty_function_call_parameter_list :
274
- expr_without_variable { $$ .u.constant.value.lval = 0 ; do_pass_param(&$1 , ZEND_SEND_VAL, $$ .u.constant.value.lval CLS_CC); }
275
- | cvar { $$ .u.constant.value.lval = 0 ; do_pass_param(&$1 , ZEND_SEND_VAR, $$ .u.constant.value.lval CLS_CC); }
276
- | ' &' w_cvar { $$ .u.constant.value.lval = 0 ; do_pass_param(&$2 , ZEND_SEND_REF, $$ .u.constant.value.lval CLS_CC); }
274
+ expr_without_variable { $$ .u.constant.value.lval = 1 ; do_pass_param(&$1 , ZEND_SEND_VAL, $$ .u.constant.value.lval CLS_CC); }
275
+ | cvar { $$ .u.constant.value.lval = 1 ; do_pass_param(&$1 , ZEND_SEND_VAR, $$ .u.constant.value.lval CLS_CC); }
276
+ | ' &' w_cvar { $$ .u.constant.value.lval = 1 ; do_pass_param(&$2 , ZEND_SEND_REF, $$ .u.constant.value.lval CLS_CC); }
277
277
| non_empty_function_call_parameter_list ' ,' expr_without_variable { $$ .u.constant.value.lval=$1 .u.constant.value.lval+1 ; do_pass_param(&$3 , ZEND_SEND_VAL, $$ .u.constant.value.lval CLS_CC); }
278
278
| non_empty_function_call_parameter_list ' ,' cvar { $$ .u.constant.value.lval=$1 .u.constant.value.lval+1 ; do_pass_param(&$3 , ZEND_SEND_VAR, $$ .u.constant.value.lval CLS_CC); }
279
279
| non_empty_function_call_parameter_list ' ,' ' &' w_cvar { $$ .u.constant.value.lval=$1 .u.constant.value.lval+1 ; do_pass_param(&$4 , ZEND_SEND_REF, $$ .u.constant.value.lval CLS_CC); }
@@ -343,7 +343,7 @@ expr_without_variable:
343
343
ZEND_LIST ' (' { do_list_init(); } assignment_list ' )' ' =' expr { do_list_end(&$$ , &$7 CLS_CC); }
344
344
| w_cvar ' =' expr { do_assign(&$$ , &$1 , &$3 CLS_CC); }
345
345
| w_cvar ' =' ' &' w_cvar { do_assign_ref(&$$ , &$1 , &$4 CLS_CC); }
346
- | w_cvar ' =' NEW class_name { do_extended_fcall_begin(CLS_C); do_begin_new_object(&$2 , &$1 , &$3 , &$4 CLS_CC); } ctor_arguments { do_end_new_object(&$4 , &$3 CLS_CC); do_extended_fcall_end(CLS_C); $$ = $2 ;}
346
+ | w_cvar ' =' NEW class_name { do_extended_fcall_begin(CLS_C); do_begin_new_object(&$2 , &$1 , &$3 , &$4 CLS_CC); } ctor_arguments { do_end_new_object(&$4 , &$3 , & $6 CLS_CC); do_extended_fcall_end(CLS_C); $$ = $2 ;}
347
347
| rw_cvar PLUS_EQUAL expr { do_binary_assign_op(ZEND_ASSIGN_ADD, &$$ , &$1 , &$3 CLS_CC); }
348
348
| rw_cvar MINUS_EQUAL expr { do_binary_assign_op(ZEND_ASSIGN_SUB, &$$ , &$1 , &$3 CLS_CC); }
349
349
| rw_cvar MUL_EQUAL expr { do_binary_assign_op(ZEND_ASSIGN_MUL, &$$ , &$1 , &$3 CLS_CC); }
@@ -391,13 +391,13 @@ expr_without_variable:
391
391
expr { do_qm_false(&$$ , &$7 , &$2 , &$5 CLS_CC); }
392
392
| STRING ' (' { do_extended_fcall_begin(CLS_C); do_begin_function_call(&$1 CLS_CC); }
393
393
function_call_parameter_list
394
- ' )' { do_end_function_call(&$1 , &$$ , 0 CLS_CC); do_extended_fcall_end(CLS_C); }
394
+ ' )' { do_end_function_call(&$1 , &$$ , & $4 , 0 CLS_CC); do_extended_fcall_end(CLS_C); }
395
395
| r_cvar ' (' { do_extended_fcall_begin(CLS_C); do_begin_dynamic_function_call(&$1 CLS_CC); }
396
396
function_call_parameter_list
397
- ' )' { do_end_function_call(&$1 , &$$ , 0 CLS_CC); do_extended_fcall_end(CLS_C);}
397
+ ' )' { do_end_function_call(&$1 , &$$ , & $4 , 0 CLS_CC); do_extended_fcall_end(CLS_C);}
398
398
| STRING T_PAAMAYIM_NEKUDOTAYIM STRING ' (' { do_extended_fcall_begin(CLS_C); do_begin_class_member_function_call(&$1 , &$3 CLS_CC); }
399
399
function_call_parameter_list
400
- ' )' { do_end_function_call(&$3 , &$$ , 1 CLS_CC); do_extended_fcall_end(CLS_C);}
400
+ ' )' { do_end_function_call(&$3 , &$$ , & $6 , 1 CLS_CC); do_extended_fcall_end(CLS_C);}
401
401
| internal_functions_in_yacc { $$ = $1 ; }
402
402
| INT_CAST expr { do_cast(&$$ , &$2 , IS_LONG CLS_CC); }
403
403
| DOUBLE_CAST expr { do_cast(&$$ , &$2 , IS_DOUBLE CLS_CC); }
@@ -421,8 +421,8 @@ exit_expr:
421
421
422
422
423
423
ctor_arguments :
424
- /* empty */
425
- | ' (' function_call_parameter_list ' )'
424
+ /* empty */ { $$ .u.constant.value.lval= 0 ; }
425
+ | ' (' function_call_parameter_list ' )' { $$ = $2 ; }
426
426
;
427
427
428
428
0 commit comments