@@ -46,7 +46,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
4646%define api.pure full
4747%define api.value.type {zend_parser_stack_elem}
4848%define parse.error verbose
49- %expect 0
49+ %expect 1
5050
5151%destructor { zend_ast_destroy ($$); } <ast>
5252%destructor { if ($$) zend_string_release_ex ($$, 0 ); } <str>
@@ -1214,8 +1214,16 @@ expr:
12141214 { $$ = zend_ast_create(ZEND_AST_ASSIGN, $1 , $3 ); }
12151215 | variable ' =' ampersand variable
12161216 { $$ = zend_ast_create(ZEND_AST_ASSIGN_REF, $1 , $4 ); }
1217- | T_CLONE ' (' expr ' ,' non_empty_argument_list ' )' { $$ = zend_ast_create(ZEND_AST_CLONE, $3 , $5 ); }
1218- | T_CLONE expr { $$ = zend_ast_create(ZEND_AST_CLONE, $2 , NULL ); }
1217+ | T_CLONE argument_list {
1218+ zend_ast *name = zend_ast_create_zval_from_str(ZSTR_KNOWN(ZEND_STR_CLONE));
1219+ name->attr = ZEND_NAME_FQ;
1220+ $$ = zend_ast_create(ZEND_AST_CALL, name, $2 );
1221+ }
1222+ | T_CLONE expr {
1223+ zend_ast *name = zend_ast_create_zval_from_str(ZSTR_KNOWN(ZEND_STR_CLONE));
1224+ name->attr = ZEND_NAME_FQ;
1225+ $$ = zend_ast_create(ZEND_AST_CALL, name, zend_ast_create_list(1 , ZEND_AST_ARG_LIST, $2 ));
1226+ }
12191227 | variable T_PLUS_EQUAL expr
12201228 { $$ = zend_ast_create_assign_op(ZEND_ADD, $1 , $3 ); }
12211229 | variable T_MINUS_EQUAL expr
0 commit comments