Lines Matching refs:var_ast

2733 static inline void zend_emit_assign_znode(zend_ast *var_ast, znode *value_node) /* {{{ */  in zend_emit_assign_znode()  argument
2736 zend_ast *assign_ast = zend_ast_create(ZEND_AST_ASSIGN, var_ast, in zend_emit_assign_znode()
2748 zend_ast *var_ast = ast->child[0]; in zend_delayed_compile_dim() local
2754 zend_short_circuiting_mark_inner(var_ast); in zend_delayed_compile_dim()
2755 opline = zend_delayed_compile_var(&var_node, var_ast, type, 0); in zend_delayed_compile_dim()
2760 zend_separate_if_call_and_write(&var_node, var_ast, type); in zend_delayed_compile_dim()
2891 static void zend_verify_list_assign_target(zend_ast *var_ast, zend_ast_attr array_style) /* {{{ */ { in zend_verify_list_assign_target() argument
2892 if (var_ast->kind == ZEND_AST_ARRAY) { in zend_verify_list_assign_target()
2893 if (var_ast->attr == ZEND_ARRAY_SYNTAX_LONG) { in zend_verify_list_assign_target()
2896 if (array_style != var_ast->attr) { in zend_verify_list_assign_target()
2899 } else if (!zend_can_write_to_variable(var_ast)) { in zend_verify_list_assign_target()
2905 static inline void zend_emit_assign_ref_znode(zend_ast *var_ast, znode *value_node);
2917 zend_ast *var_ast = elem_ast->child[0]; in zend_propagate_list_refs() local
2918 if (var_ast->kind == ZEND_AST_ARRAY) { in zend_propagate_list_refs()
2919 elem_ast->attr = zend_propagate_list_refs(var_ast); in zend_propagate_list_refs()
2944 zend_ast *var_ast, *key_ast; in zend_compile_list_assign() local
2962 var_ast = elem_ast->child[0]; in zend_compile_list_assign()
2987 zend_verify_list_assign_target(var_ast, array_style); in zend_compile_list_assign()
2999 if (var_ast->kind == ZEND_AST_ARRAY) { in zend_compile_list_assign()
3000 zend_compile_list_assign(NULL, var_ast, &fetch_result, var_ast->attr); in zend_compile_list_assign()
3002 zend_emit_assign_ref_znode(var_ast, &fetch_result); in zend_compile_list_assign()
3004 zend_emit_assign_znode(var_ast, &fetch_result); in zend_compile_list_assign()
3039 zend_bool zend_is_assign_to_self(zend_ast *var_ast, zend_ast *expr_ast) /* {{{ */ in zend_is_assign_to_self() argument
3045 while (zend_is_variable(var_ast) && var_ast->kind != ZEND_AST_VAR) { in zend_is_assign_to_self()
3046 var_ast = var_ast->child[0]; in zend_is_assign_to_self()
3049 if (var_ast->kind != ZEND_AST_VAR || var_ast->child[0]->kind != ZEND_AST_ZVAL) { in zend_is_assign_to_self()
3054 zend_string *name1 = zval_get_string(zend_ast_get_zval(var_ast->child[0])); in zend_is_assign_to_self()
3066 zend_ast *var_ast = ast->child[0]; in zend_compile_assign() local
3072 if (is_this_fetch(var_ast)) { in zend_compile_assign()
3076 zend_ensure_writable_variable(var_ast); in zend_compile_assign()
3078 switch (var_ast->kind) { in zend_compile_assign()
3081 zend_delayed_compile_var(&var_node, var_ast, BP_VAR_W, 0); in zend_compile_assign()
3084 CG(zend_lineno) = zend_ast_get_lineno(var_ast); in zend_compile_assign()
3089 zend_delayed_compile_var(result, var_ast, BP_VAR_W, 0); in zend_compile_assign()
3101 zend_delayed_compile_dim(result, var_ast, BP_VAR_W); in zend_compile_assign()
3103 if (zend_is_assign_to_self(var_ast, expr_ast) in zend_compile_assign()
3127 zend_delayed_compile_prop(result, var_ast, BP_VAR_W); in zend_compile_assign()
3138 if (zend_propagate_list_refs(var_ast)) { in zend_compile_assign()
3163 zend_compile_list_assign(result, var_ast, &expr_node, var_ast->attr); in zend_compile_assign()
3231 static inline void zend_emit_assign_ref_znode(zend_ast *var_ast, znode *value_node) /* {{{ */ in zend_emit_assign_ref_znode() argument
3234 zend_ast *assign_ast = zend_ast_create(ZEND_AST_ASSIGN_REF, var_ast, in zend_emit_assign_ref_znode()
3243 zend_ast *var_ast = ast->child[0]; in zend_compile_compound_assign() local
3251 zend_ensure_writable_variable(var_ast); in zend_compile_compound_assign()
3253 switch (var_ast->kind) { in zend_compile_compound_assign()
3256 zend_delayed_compile_var(&var_node, var_ast, BP_VAR_RW, 0); in zend_compile_compound_assign()
3264 zend_delayed_compile_var(result, var_ast, BP_VAR_RW, 0); in zend_compile_compound_assign()
3279 zend_delayed_compile_dim(result, var_ast, BP_VAR_RW); in zend_compile_compound_assign()
3293 zend_delayed_compile_prop(result, var_ast, BP_VAR_RW); in zend_compile_compound_assign()
4563 zend_ast *var_ast = ast->child[0]; in zend_compile_global_var() local
4564 zend_ast *name_ast = var_ast->child[0]; in zend_compile_global_var()
4573 if (is_this_fetch(var_ast)) { in zend_compile_global_var()
4575 } else if (zend_try_compile_cv(&result, var_ast) == SUCCESS) { in zend_compile_global_var()
4622 zend_ast *var_ast = ast->child[0]; in zend_compile_static_var() local
4632 zend_compile_static_var_common(zend_ast_get_str(var_ast), &value_zv, ZEND_BIND_REF); in zend_compile_static_var()
4638 zend_ast *var_ast = ast->child[0]; in zend_compile_unset() local
4642 zend_ensure_writable_variable(var_ast); in zend_compile_unset()
4644 switch (var_ast->kind) { in zend_compile_unset()
4646 if (is_this_fetch(var_ast)) { in zend_compile_unset()
4648 } else if (zend_try_compile_cv(&var_node, var_ast) == SUCCESS) { in zend_compile_unset()
4651 opline = zend_compile_simple_var_no_cv(NULL, var_ast, BP_VAR_UNSET, 0); in zend_compile_unset()
4656 opline = zend_compile_dim(NULL, var_ast, BP_VAR_UNSET); in zend_compile_unset()
4661 opline = zend_compile_prop(NULL, var_ast, BP_VAR_UNSET, 0); in zend_compile_unset()
4665 opline = zend_compile_static_prop(NULL, var_ast, BP_VAR_UNSET, 0, 0); in zend_compile_unset()
5738 zend_ast *var_ast = catch_ast->child[1]; in zend_compile_try() local
5740 zend_string *var_name = var_ast ? zval_make_interned_string(zend_ast_get_zval(var_ast)) : NULL; in zend_compile_try()
6369 zend_ast *var_ast = param_ast->child[1]; in zend_compile_params() local
6373 zend_string *name = zval_make_interned_string(zend_ast_get_zval(var_ast)); in zend_compile_params()
6730 zend_ast *var_ast = list->child[i]; in zend_compile_closure_uses() local
6731 zend_string *var_name = zend_ast_get_str(var_ast); in zend_compile_closure_uses()
6745 CG(zend_lineno) = zend_ast_get_lineno(var_ast); in zend_compile_closure_uses()
6747 zend_compile_static_var_common(var_name, &zv, var_ast->attr ? ZEND_BIND_REF : 0); in zend_compile_closure_uses()
8309 zend_ast *var_ast = ast->child[0]; in zend_compile_post_incdec() local
8312 zend_ensure_writable_variable(var_ast); in zend_compile_post_incdec()
8314 if (var_ast->kind == ZEND_AST_PROP || var_ast->kind == ZEND_AST_NULLSAFE_PROP) { in zend_compile_post_incdec()
8315 zend_op *opline = zend_compile_prop(NULL, var_ast, BP_VAR_RW, 0); in zend_compile_post_incdec()
8318 } else if (var_ast->kind == ZEND_AST_STATIC_PROP) { in zend_compile_post_incdec()
8319 zend_op *opline = zend_compile_static_prop(NULL, var_ast, BP_VAR_RW, 0, 0); in zend_compile_post_incdec()
8324 zend_compile_var(&var_node, var_ast, BP_VAR_RW, 0); in zend_compile_post_incdec()
8333 zend_ast *var_ast = ast->child[0]; in zend_compile_pre_incdec() local
8336 zend_ensure_writable_variable(var_ast); in zend_compile_pre_incdec()
8338 if (var_ast->kind == ZEND_AST_PROP || var_ast->kind == ZEND_AST_NULLSAFE_PROP) { in zend_compile_pre_incdec()
8339 zend_op *opline = zend_compile_prop(result, var_ast, BP_VAR_RW, 0); in zend_compile_pre_incdec()
8343 } else if (var_ast->kind == ZEND_AST_STATIC_PROP) { in zend_compile_pre_incdec()
8344 zend_op *opline = zend_compile_static_prop(result, var_ast, BP_VAR_RW, 0, 0); in zend_compile_pre_incdec()
8350 zend_compile_var(&var_node, var_ast, BP_VAR_RW, 0); in zend_compile_pre_incdec()
8495 zend_ast *var_ast = ast->child[0]; in zend_compile_assign_coalesce() local
8508 zend_ensure_writable_variable(var_ast); in zend_compile_assign_coalesce()
8509 if (is_this_fetch(var_ast)) { in zend_compile_assign_coalesce()
8517 zend_compile_var(&var_node_is, var_ast, BP_VAR_IS, 0); in zend_compile_assign_coalesce()
8523 if (var_ast->kind == ZEND_AST_DIM in zend_compile_assign_coalesce()
8524 && zend_is_assign_to_self(var_ast, default_ast) in zend_compile_assign_coalesce()
8539 zend_compile_var(&var_node_w, var_ast, BP_VAR_W, 0); in zend_compile_assign_coalesce()
8543 switch (var_ast->kind) { in zend_compile_assign_coalesce()
8737 zend_ast *var_ast = ast->child[0]; in zend_compile_isset_or_empty() local
8744 if (!zend_is_variable(var_ast)) { in zend_compile_isset_or_empty()
8747 zend_ast *not_ast = zend_ast_create_ex(ZEND_AST_UNARY_OP, ZEND_BOOL_NOT, var_ast); in zend_compile_isset_or_empty()
8757 zend_short_circuiting_mark_inner(var_ast); in zend_compile_isset_or_empty()
8758 switch (var_ast->kind) { in zend_compile_isset_or_empty()
8760 if (is_this_fetch(var_ast)) { in zend_compile_isset_or_empty()
8763 } else if (zend_try_compile_cv(&var_node, var_ast) == SUCCESS) { in zend_compile_isset_or_empty()
8766 opline = zend_compile_simple_var_no_cv(result, var_ast, BP_VAR_IS, 0); in zend_compile_isset_or_empty()
8771 opline = zend_compile_dim(result, var_ast, BP_VAR_IS); in zend_compile_isset_or_empty()
8776 opline = zend_compile_prop(result, var_ast, BP_VAR_IS, 0); in zend_compile_isset_or_empty()
8780 opline = zend_compile_static_prop(result, var_ast, BP_VAR_IS, 0, 0); in zend_compile_isset_or_empty()