Lines Matching refs:var_ast

2297 static inline void zend_emit_assign_znode(zend_ast *var_ast, znode *value_node) /* {{{ */  in zend_emit_assign_znode()  argument
2300 if (var_ast->kind == ZEND_AST_LIST) { in zend_emit_assign_znode()
2301 zend_compile_list_assign(&dummy_node, var_ast, value_node); in zend_emit_assign_znode()
2303 zend_ast *assign_ast = zend_ast_create(ZEND_AST_ASSIGN, var_ast, in zend_emit_assign_znode()
2313 zend_ast *var_ast = ast->child[0]; in zend_delayed_compile_dim() local
2318 zend_delayed_compile_var(&var_node, var_ast, type); in zend_delayed_compile_dim()
2319 zend_separate_if_call_and_write(&var_node, var_ast, type); in zend_delayed_compile_dim()
2458 zend_ast *var_ast = list->child[i]; in zend_compile_list_assign() local
2461 if (var_ast == NULL) { in zend_compile_list_assign()
2474 zend_emit_assign_znode(var_ast, &fetch_result); in zend_compile_list_assign()
2497 zend_bool zend_is_assign_to_self(zend_ast *var_ast, zend_ast *expr_ast) /* {{{ */ in zend_is_assign_to_self() argument
2503 while (zend_is_variable(var_ast) && var_ast->kind != ZEND_AST_VAR) { in zend_is_assign_to_self()
2504 var_ast = var_ast->child[0]; in zend_is_assign_to_self()
2507 if (var_ast->kind != ZEND_AST_VAR || var_ast->child[0]->kind != ZEND_AST_ZVAL) { in zend_is_assign_to_self()
2512 zend_string *name1 = zval_get_string(zend_ast_get_zval(var_ast->child[0])); in zend_is_assign_to_self()
2528 zend_ast *var_ast = list->child[i]; in zend_list_has_assign_to() local
2529 if (!var_ast) { in zend_list_has_assign_to()
2534 if (var_ast->kind == ZEND_AST_LIST && zend_list_has_assign_to(var_ast, name)) { in zend_list_has_assign_to()
2538 if (var_ast->kind == ZEND_AST_VAR && var_ast->child[0]->kind == ZEND_AST_ZVAL) { in zend_list_has_assign_to()
2539 zend_string *var_name = zval_get_string(zend_ast_get_zval(var_ast->child[0])); in zend_list_has_assign_to()
2568 zend_ast *var_ast = ast->child[0]; in zend_compile_assign() local
2575 if (is_this_fetch(var_ast)) { in zend_compile_assign()
2579 zend_ensure_writable_variable(var_ast); in zend_compile_assign()
2581 switch (var_ast->kind) { in zend_compile_assign()
2585 zend_delayed_compile_var(&var_node, var_ast, BP_VAR_W); in zend_compile_assign()
2592 zend_delayed_compile_dim(result, var_ast, BP_VAR_W); in zend_compile_assign()
2594 if (zend_is_assign_to_self(var_ast, expr_ast)) { in zend_compile_assign()
2608 zend_delayed_compile_prop(result, var_ast, BP_VAR_W); in zend_compile_assign()
2617 if (zend_list_has_assign_to_self(var_ast, expr_ast)) { in zend_compile_assign()
2624 zend_compile_list_assign(result, var_ast, &expr_node); in zend_compile_assign()
2665 static inline void zend_emit_assign_ref_znode(zend_ast *var_ast, znode *value_node) /* {{{ */ in zend_emit_assign_ref_znode() argument
2667 zend_ast *assign_ast = zend_ast_create(ZEND_AST_ASSIGN_REF, var_ast, in zend_emit_assign_ref_znode()
2675 zend_ast *var_ast = ast->child[0]; in zend_compile_compound_assign() local
2683 zend_ensure_writable_variable(var_ast); in zend_compile_compound_assign()
2685 switch (var_ast->kind) { in zend_compile_compound_assign()
2689 zend_delayed_compile_var(&var_node, var_ast, BP_VAR_RW); in zend_compile_compound_assign()
2696 zend_delayed_compile_dim(result, var_ast, BP_VAR_RW); in zend_compile_compound_assign()
2707 zend_delayed_compile_prop(result, var_ast, BP_VAR_RW); in zend_compile_compound_assign()
3465 zend_ast *var_ast = ast->child[0]; in zend_compile_global_var() local
3466 zend_ast *name_ast = var_ast->child[0]; in zend_compile_global_var()
3475 if (zend_try_compile_cv(&result, var_ast) == SUCCESS) { in zend_compile_global_var()
3484 zend_emit_assign_ref_znode(var_ast, &result); in zend_compile_global_var()
3489 static void zend_compile_static_var_common(zend_ast *var_ast, zval *value, zend_bool by_ref) /* {{{… in zend_compile_static_var_common() argument
3494 zend_compile_expr(&var_node, var_ast); in zend_compile_static_var_common()
3516 zend_ast *fetch_ast = zend_ast_create(ZEND_AST_VAR, var_ast); in zend_compile_static_var_common()
3519 zend_ast *fetch_ast = zend_ast_create(ZEND_AST_VAR, var_ast); in zend_compile_static_var_common()
3527 zend_ast *var_ast = ast->child[0]; in zend_compile_static_var() local
3537 zend_compile_static_var_common(var_ast, &value_zv, 1); in zend_compile_static_var()
3543 zend_ast *var_ast = ast->child[0]; in zend_compile_unset() local
3547 zend_ensure_writable_variable(var_ast); in zend_compile_unset()
3549 switch (var_ast->kind) { in zend_compile_unset()
3551 if (zend_try_compile_cv(&var_node, var_ast) == SUCCESS) { in zend_compile_unset()
3555 opline = zend_compile_simple_var_no_cv(NULL, var_ast, BP_VAR_UNSET, 0); in zend_compile_unset()
3560 opline = zend_compile_dim_common(NULL, var_ast, BP_VAR_UNSET); in zend_compile_unset()
3564 opline = zend_compile_prop_common(NULL, var_ast, BP_VAR_UNSET); in zend_compile_unset()
3568 opline = zend_compile_static_prop_common(NULL, var_ast, BP_VAR_UNSET, 0); in zend_compile_unset()
4213 zend_ast *var_ast = catch_ast->child[1]; in zend_compile_try() local
4215 zval *var_name = zend_ast_get_zval(var_ast); in zend_compile_try()
4522 zend_ast *var_ast = param_ast->child[1]; in zend_compile_params() local
4524 zend_string *name = zend_ast_get_str(var_ast); in zend_compile_params()
4683 zend_ast *var_ast = list->child[i]; in zend_compile_closure_uses() local
4684 zend_string *name = zend_ast_get_str(var_ast); in zend_compile_closure_uses()
4685 zend_bool by_ref = var_ast->attr; in zend_compile_closure_uses()
4695 zend_compile_static_var_common(var_ast, &zv, by_ref); in zend_compile_closure_uses()
6169 zend_ast *var_ast = ast->child[0]; in zend_compile_post_incdec() local
6172 zend_ensure_writable_variable(var_ast); in zend_compile_post_incdec()
6174 if (var_ast->kind == ZEND_AST_PROP) { in zend_compile_post_incdec()
6175 zend_op *opline = zend_compile_prop_common(NULL, var_ast, BP_VAR_RW); in zend_compile_post_incdec()
6180 zend_compile_var(&var_node, var_ast, BP_VAR_RW); in zend_compile_post_incdec()
6189 zend_ast *var_ast = ast->child[0]; in zend_compile_pre_incdec() local
6192 zend_ensure_writable_variable(var_ast); in zend_compile_pre_incdec()
6194 if (var_ast->kind == ZEND_AST_PROP) { in zend_compile_pre_incdec()
6195 zend_op *opline = zend_compile_prop_common(result, var_ast, BP_VAR_RW); in zend_compile_pre_incdec()
6199 zend_compile_var(&var_node, var_ast, BP_VAR_RW); in zend_compile_pre_incdec()
6440 zend_ast *var_ast = ast->child[0]; in zend_compile_isset_or_empty() local
6447 if (!zend_is_variable(var_ast) || zend_is_call(var_ast)) { in zend_compile_isset_or_empty()
6450 zend_ast *not_ast = zend_ast_create_ex(ZEND_AST_UNARY_OP, ZEND_BOOL_NOT, var_ast); in zend_compile_isset_or_empty()
6460 switch (var_ast->kind) { in zend_compile_isset_or_empty()
6462 if (zend_try_compile_cv(&var_node, var_ast) == SUCCESS) { in zend_compile_isset_or_empty()
6466 opline = zend_compile_simple_var_no_cv(result, var_ast, BP_VAR_IS, 0); in zend_compile_isset_or_empty()
6471 opline = zend_compile_dim_common(result, var_ast, BP_VAR_IS); in zend_compile_isset_or_empty()
6475 opline = zend_compile_prop_common(result, var_ast, BP_VAR_IS); in zend_compile_isset_or_empty()
6479 opline = zend_compile_static_prop_common(result, var_ast, BP_VAR_IS, 0); in zend_compile_isset_or_empty()