ast 331 Zend/zend.h zend_ast *ast; ast 28 Zend/zend_ast.c zend_ast *ast = emalloc(sizeof(zend_ast) + sizeof(zval)); ast 29 Zend/zend_ast.c ast->kind = ZEND_CONST; ast 30 Zend/zend_ast.c ast->children = 0; ast 31 Zend/zend_ast.c ast->u.val = (zval*)(ast + 1); ast 32 Zend/zend_ast.c INIT_PZVAL_COPY(ast->u.val, zv); ast 33 Zend/zend_ast.c return ast; ast 38 Zend/zend_ast.c zend_ast *ast = emalloc(sizeof(zend_ast)); ast 39 Zend/zend_ast.c ast->kind = kind; ast 40 Zend/zend_ast.c ast->children = 1; ast 41 Zend/zend_ast.c (&ast->u.child)[0] = op0; ast 42 Zend/zend_ast.c return ast; ast 47 Zend/zend_ast.c zend_ast *ast = emalloc(sizeof(zend_ast) + sizeof(zend_ast*)); ast 48 Zend/zend_ast.c ast->kind = kind; ast 49 Zend/zend_ast.c ast->children = 2; ast 50 Zend/zend_ast.c (&ast->u.child)[0] = op0; ast 51 Zend/zend_ast.c (&ast->u.child)[1] = op1; ast 52 Zend/zend_ast.c return ast; ast 57 Zend/zend_ast.c zend_ast *ast = emalloc(sizeof(zend_ast) + sizeof(zend_ast*) * 2); ast 58 Zend/zend_ast.c ast->kind = kind; ast 59 Zend/zend_ast.c ast->children = 3; ast 60 Zend/zend_ast.c (&ast->u.child)[0] = op0; ast 61 Zend/zend_ast.c (&ast->u.child)[1] = op1; ast 62 Zend/zend_ast.c (&ast->u.child)[2] = op2; ast 63 Zend/zend_ast.c return ast; ast 68 Zend/zend_ast.c zend_ast *ast = emalloc(sizeof(zend_ast) + sizeof(zend_ast*) * 3); /* use 4 children as deafult */ ast 69 Zend/zend_ast.c ast->kind = kind; ast 70 Zend/zend_ast.c ast->children = 0; ast 71 Zend/zend_ast.c return ast; ast 74 Zend/zend_ast.c ZEND_API void zend_ast_dynamic_add(zend_ast **ast, zend_ast *op) ast 76 Zend/zend_ast.c if ((*ast)->children >= 4 && (*ast)->children == ((*ast)->children & -(*ast)->children)) { ast 77 Zend/zend_ast.c *ast = erealloc(*ast, sizeof(zend_ast) + sizeof(zend_ast*) * ((*ast)->children * 2 + 1)); ast 79 Zend/zend_ast.c (&(*ast)->u.child)[(*ast)->children++] = op; ast 82 Zend/zend_ast.c ZEND_API void zend_ast_dynamic_shrink(zend_ast **ast) ast 84 Zend/zend_ast.c *ast = erealloc(*ast, sizeof(zend_ast) + sizeof(zend_ast*) * ((*ast)->children - 1)); ast 87 Zend/zend_ast.c ZEND_API int zend_ast_is_ct_constant(zend_ast *ast) ast 91 Zend/zend_ast.c if (ast->kind == ZEND_CONST) { ast 92 Zend/zend_ast.c return !IS_CONSTANT_TYPE(Z_TYPE_P(ast->u.val)); ast 94 Zend/zend_ast.c for (i = 0; i < ast->children; i++) { ast 95 Zend/zend_ast.c if ((&ast->u.child)[i]) { ast 96 Zend/zend_ast.c if (!zend_ast_is_ct_constant((&ast->u.child)[i])) { ast 105 Zend/zend_ast.c ZEND_API void zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *scope TSRMLS_DC) ast 109 Zend/zend_ast.c switch (ast->kind) { ast 111 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 112 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 118 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 119 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 125 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 126 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 132 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 133 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 139 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 140 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 146 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 147 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 153 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 154 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 160 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 161 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 167 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 168 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 174 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 175 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 181 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 182 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 188 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 189 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 195 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 200 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 205 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 206 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 212 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 213 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 219 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 220 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 226 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 227 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 233 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 234 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 240 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 241 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 247 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 248 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 256 Zend/zend_ast.c if (IS_CONSTANT_TYPE(Z_TYPE_P(ast->u.val))) { ast 257 Zend/zend_ast.c zval_update_constant_ex(&ast->u.val, 1, scope TSRMLS_CC); ast 259 Zend/zend_ast.c *result = *ast->u.val; ast 262 Zend/zend_ast.c *result = *ast->u.val; ast 270 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 272 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 281 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 285 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 292 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 294 Zend/zend_ast.c if (!(&ast->u.child)[1]) { ast 297 Zend/zend_ast.c zend_ast_evaluate(result, (&ast->u.child)[1], scope TSRMLS_CC); ast 301 Zend/zend_ast.c zend_ast_evaluate(result, (&ast->u.child)[2], scope TSRMLS_CC); ast 307 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[0], scope TSRMLS_CC); ast 313 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[0], scope TSRMLS_CC); ast 323 Zend/zend_ast.c for (i = 0; i < ast->children; i+=2) { ast 326 Zend/zend_ast.c if ((has_key = !!(&ast->u.child)[i])) { ast 327 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[i], scope TSRMLS_CC); ast 329 Zend/zend_ast.c zend_ast_evaluate(expr, (&ast->u.child)[i+1], scope TSRMLS_CC); ast 335 Zend/zend_ast.c zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC); ast 336 Zend/zend_ast.c zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC); ast 350 Zend/zend_ast.c ZEND_API zend_ast *zend_ast_copy(zend_ast *ast) ast 352 Zend/zend_ast.c if (ast == NULL) { ast 354 Zend/zend_ast.c } else if (ast->kind == ZEND_CONST) { ast 355 Zend/zend_ast.c zend_ast *copy = zend_ast_create_constant(ast->u.val); ast 358 Zend/zend_ast.c } else if (ast->children) { ast 359 Zend/zend_ast.c zend_ast *new = emalloc(sizeof(zend_ast) + sizeof(zend_ast*) * (ast->children - 1)); ast 361 Zend/zend_ast.c new->kind = ast->kind; ast 362 Zend/zend_ast.c new->children = ast->children; ast 363 Zend/zend_ast.c for (i = 0; i < ast->children; i++) { ast 364 Zend/zend_ast.c (&new->u.child)[i] = zend_ast_copy((&ast->u.child)[i]); ast 368 Zend/zend_ast.c return zend_ast_create_dynamic(ast->kind); ast 371 Zend/zend_ast.c ZEND_API void zend_ast_destroy(zend_ast *ast) ast 375 Zend/zend_ast.c if (ast->kind == ZEND_CONST) { ast 376 Zend/zend_ast.c zval_dtor(ast->u.val); ast 378 Zend/zend_ast.c for (i = 0; i < ast->children; i++) { ast 379 Zend/zend_ast.c if ((&ast->u.child)[i]) { ast 380 Zend/zend_ast.c zend_ast_destroy((&ast->u.child)[i]); ast 384 Zend/zend_ast.c efree(ast); ast 54 Zend/zend_ast.h ZEND_API void zend_ast_dynamic_add(zend_ast **ast, zend_ast *op); ast 55 Zend/zend_ast.h ZEND_API void zend_ast_dynamic_shrink(zend_ast **ast); ast 57 Zend/zend_ast.h ZEND_API int zend_ast_is_ct_constant(zend_ast *ast); ast 59 Zend/zend_ast.h ZEND_API void zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *scope TSRMLS_DC); ast 61 Zend/zend_ast.h ZEND_API zend_ast *zend_ast_copy(zend_ast *ast); ast 62 Zend/zend_ast.h ZEND_API void zend_ast_destroy(zend_ast *ast); ast 7429 Zend/zend_compile.c void zend_do_constant_expression(znode *result, zend_ast *ast TSRMLS_DC) /* {{{ */ ast 7431 Zend/zend_compile.c if (ast->kind == ZEND_CONST) { ast 7432 Zend/zend_compile.c result->u.constant = *ast->u.val; ast 7433 Zend/zend_compile.c efree(ast); ast 7434 Zend/zend_compile.c } else if (zend_ast_is_ct_constant(ast)) { ast 7435 Zend/zend_compile.c zend_ast_evaluate(&result->u.constant, ast, NULL TSRMLS_CC); ast 7436 Zend/zend_compile.c zend_ast_destroy(ast); ast 7439 Zend/zend_compile.c Z_AST(result->u.constant) = ast; ast 96 Zend/zend_compile.h zend_ast *ast; ast 659 Zend/zend_compile.h void zend_do_constant_expression(znode *result, zend_ast *ast TSRMLS_DC); ast 996 Zend/zend_language_parser.y common_scalar { $$.u.ast = zend_ast_create_constant(&$1.u.constant); } ast 997 Zend/zend_language_parser.y | static_class_name_scalar { $$.u.ast = zend_ast_create_constant(&$1.u.constant); } ast 998 Zend/zend_language_parser.y | namespace_name { zend_do_fetch_constant(&$$, NULL, &$1, ZEND_CT, 1 TSRMLS_CC); $$.u.ast = zend_ast_create_constant(&$$.u.constant); } ast 999 Zend/zend_language_parser.y | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); $3 = $$; zend_do_fetch_constant(&$$, NULL, &$3, ZEND_CT, 0 TSRMLS_CC); $$.u.ast = zend_ast_create_constant(&$$.u.constant); } ast 1000 Zend/zend_language_parser.y | T_NS_SEPARATOR namespace_name { char *tmp = estrndup(Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL($2.u.constant)); Z_STRVAL($2.u.constant) = tmp; ++Z_STRLEN($2.u.constant); zend_do_fetch_constant(&$$, NULL, &$2, ZEND_CT, 0 TSRMLS_CC); $$.u.ast = zend_ast_create_constant(&$$.u.constant); } ast 1003 Zend/zend_language_parser.y | static_class_constant { $$.u.ast = zend_ast_create_constant(&$1.u.constant); } ast 1004 Zend/zend_language_parser.y | T_CLASS_C { $$.u.ast = zend_ast_create_constant(&$1.u.constant); } ast 1009 Zend/zend_language_parser.y static_scalar_value '[' static_scalar_value ']' { $$.u.ast = zend_ast_create_binary(ZEND_FETCH_DIM_R, $1.u.ast, $3.u.ast); } ast 1010 Zend/zend_language_parser.y | static_scalar_value '+' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_ADD, $1.u.ast, $3.u.ast); } ast 1011 Zend/zend_language_parser.y | static_scalar_value '-' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_SUB, $1.u.ast, $3.u.ast); } ast 1012 Zend/zend_language_parser.y | static_scalar_value '*' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_MUL, $1.u.ast, $3.u.ast); } ast 1013 Zend/zend_language_parser.y | static_scalar_value T_POW static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_POW, $1.u.ast, $3.u.ast); } ast 1014 Zend/zend_language_parser.y | static_scalar_value '/' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_DIV, $1.u.ast, $3.u.ast); } ast 1015 Zend/zend_language_parser.y | static_scalar_value '%' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_MOD, $1.u.ast, $3.u.ast); } ast 1016 Zend/zend_language_parser.y | '!' static_scalar_value { $$.u.ast = zend_ast_create_unary(ZEND_BOOL_NOT, $2.u.ast); } ast 1017 Zend/zend_language_parser.y | '~' static_scalar_value { $$.u.ast = zend_ast_create_unary(ZEND_BW_NOT, $2.u.ast); } ast 1018 Zend/zend_language_parser.y | static_scalar_value '|' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BW_OR, $1.u.ast, $3.u.ast); } ast 1019 Zend/zend_language_parser.y | static_scalar_value '&' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BW_AND, $1.u.ast, $3.u.ast); } ast 1020 Zend/zend_language_parser.y | static_scalar_value '^' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BW_XOR, $1.u.ast, $3.u.ast); } ast 1021 Zend/zend_language_parser.y | static_scalar_value T_SL static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_SL, $1.u.ast, $3.u.ast); } ast 1022 Zend/zend_language_parser.y | static_scalar_value T_SR static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_SR, $1.u.ast, $3.u.ast); } ast 1023 Zend/zend_language_parser.y | static_scalar_value '.' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_CONCAT, $1.u.ast, $3.u.ast); } ast 1024 Zend/zend_language_parser.y | static_scalar_value T_LOGICAL_XOR static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BOOL_XOR, $1.u.ast, $3.u.ast); } ast 1025 Zend/zend_language_parser.y | static_scalar_value T_LOGICAL_AND static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BOOL_AND, $1.u.ast, $3.u.ast); } ast 1026 Zend/zend_language_parser.y | static_scalar_value T_LOGICAL_OR static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BOOL_OR, $1.u.ast, $3.u.ast); } ast 1027 Zend/zend_language_parser.y | static_scalar_value T_BOOLEAN_AND static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BOOL_AND, $1.u.ast, $3.u.ast); } ast 1028 Zend/zend_language_parser.y | static_scalar_value T_BOOLEAN_OR static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BOOL_OR, $1.u.ast, $3.u.ast); } ast 1029 Zend/zend_language_parser.y | static_scalar_value T_IS_IDENTICAL static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_IDENTICAL, $1.u.ast, $3.u.ast); } ast 1030 Zend/zend_language_parser.y | static_scalar_value T_IS_NOT_IDENTICAL static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_NOT_IDENTICAL, $1.u.ast, $3.u.ast); } ast 1031 Zend/zend_language_parser.y | static_scalar_value T_IS_EQUAL static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_EQUAL, $1.u.ast, $3.u.ast); } ast 1032 Zend/zend_language_parser.y | static_scalar_value T_IS_NOT_EQUAL static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_NOT_EQUAL, $1.u.ast, $3.u.ast); } ast 1033 Zend/zend_language_parser.y | static_scalar_value '<' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_SMALLER, $1.u.ast, $3.u.ast); } ast 1034 Zend/zend_language_parser.y | static_scalar_value '>' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_SMALLER, $3.u.ast, $1.u.ast); } ast 1035 Zend/zend_language_parser.y | static_scalar_value T_IS_SMALLER_OR_EQUAL static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_SMALLER_OR_EQUAL, $1.u.ast, $3.u.ast); } ast 1036 Zend/zend_language_parser.y | static_scalar_value T_IS_GREATER_OR_EQUAL static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_SMALLER_OR_EQUAL, $3.u.ast, $1.u.ast); } ast 1037 Zend/zend_language_parser.y | static_scalar_value '?' ':' static_scalar_value { $$.u.ast = zend_ast_create_ternary(ZEND_SELECT, $1.u.ast, NULL, $4.u.ast); } ast 1038 Zend/zend_language_parser.y | static_scalar_value '?' static_scalar_value ':' static_scalar_value { $$.u.ast = zend_ast_create_ternary(ZEND_SELECT, $1.u.ast, $3.u.ast, $5.u.ast); } ast 1039 Zend/zend_language_parser.y | '+' static_scalar_value { $$.u.ast = zend_ast_create_unary(ZEND_UNARY_PLUS, $2.u.ast); } ast 1040 Zend/zend_language_parser.y | '-' static_scalar_value { $$.u.ast = zend_ast_create_unary(ZEND_UNARY_MINUS, $2.u.ast); } ast 1062 Zend/zend_language_parser.y /* empty */ { $$.op_type = IS_CONST; INIT_PZVAL(&$$.u.constant); array_init(&$$.u.constant); $$.u.ast = zend_ast_create_constant(&$$.u.constant); } ast 1072 Zend/zend_language_parser.y non_empty_static_array_pair_list ',' static_scalar_value T_DOUBLE_ARROW static_scalar_value { zend_ast_dynamic_add(&$$.u.ast, $3.u.ast); zend_ast_dynamic_add(&$$.u.ast, $5.u.ast); } ast 1073 Zend/zend_language_parser.y | non_empty_static_array_pair_list ',' static_scalar_value { zend_ast_dynamic_add(&$$.u.ast, NULL); zend_ast_dynamic_add(&$$.u.ast, $3.u.ast); } ast 1074 Zend/zend_language_parser.y | static_scalar_value T_DOUBLE_ARROW static_scalar_value { $$.u.ast = zend_ast_create_dynamic(ZEND_INIT_ARRAY); zend_ast_dynamic_add(&$$.u.ast, $1.u.ast); zend_ast_dynamic_add(&$$.u.ast, $3.u.ast); } ast 1075 Zend/zend_language_parser.y | static_scalar_value { $$.u.ast = zend_ast_create_dynamic(ZEND_INIT_ARRAY); zend_ast_dynamic_add(&$$.u.ast, NULL); zend_ast_dynamic_add(&$$.u.ast, $1.u.ast); } ast 447 Zend/zend_operators.h #define Z_AST(zval) (zval).value.ast ast 226 ext/opcache/zend_accelerator_util_funcs.c static zend_ast *zend_ast_clone(zend_ast *ast TSRMLS_DC) ast 231 ext/opcache/zend_accelerator_util_funcs.c if (ast->kind == ZEND_CONST) { ast 236 ext/opcache/zend_accelerator_util_funcs.c *node->u.val = *ast->u.val; ast 237 ext/opcache/zend_accelerator_util_funcs.c if ((Z_TYPE_P(ast->u.val) & IS_CONSTANT_TYPE_MASK) >= IS_ARRAY) { ast 238 ext/opcache/zend_accelerator_util_funcs.c switch ((Z_TYPE_P(ast->u.val) & IS_CONSTANT_TYPE_MASK)) { ast 241 ext/opcache/zend_accelerator_util_funcs.c Z_STRVAL_P(node->u.val) = (char *) interned_estrndup(Z_STRVAL_P(ast->u.val), Z_STRLEN_P(ast->u.val)); ast 247 ext/opcache/zend_accelerator_util_funcs.c if (ast->u.val->value.ht && ast->u.val->value.ht != &EG(symbol_table)) { ast 249 ext/opcache/zend_accelerator_util_funcs.c zend_hash_clone_zval(node->u.val->value.ht, ast->u.val->value.ht, 0); ast 253 ext/opcache/zend_accelerator_util_funcs.c Z_AST_P(node->u.val) = zend_ast_clone(Z_AST_P(ast->u.val) TSRMLS_CC); ast 258 ext/opcache/zend_accelerator_util_funcs.c node = emalloc(sizeof(zend_ast) + sizeof(zend_ast*) * (ast->children - 1)); ast 259 ext/opcache/zend_accelerator_util_funcs.c node->kind = ast->kind; ast 260 ext/opcache/zend_accelerator_util_funcs.c node->children = ast->children; ast 261 ext/opcache/zend_accelerator_util_funcs.c for (i = 0; i < ast->children; i++) { ast 262 ext/opcache/zend_accelerator_util_funcs.c if ((&ast->u.child)[i]) { ast 263 ext/opcache/zend_accelerator_util_funcs.c (&node->u.child)[i] = zend_ast_clone((&ast->u.child)[i] TSRMLS_CC); ast 143 ext/opcache/zend_persist.c static zend_ast *zend_persist_ast(zend_ast *ast TSRMLS_DC) ast 148 ext/opcache/zend_persist.c if (ast->kind == ZEND_CONST) { ast 149 ext/opcache/zend_persist.c node = zend_accel_memdup(ast, sizeof(zend_ast) + sizeof(zval)); ast 153 ext/opcache/zend_persist.c node = zend_accel_memdup(ast, sizeof(zend_ast) + sizeof(zend_ast*) * (ast->children - 1)); ast 154 ext/opcache/zend_persist.c for (i = 0; i < ast->children; i++) { ast 160 ext/opcache/zend_persist.c efree(ast); ast 98 ext/opcache/zend_persist_calc.c static uint zend_persist_ast_calc(zend_ast *ast TSRMLS_DC) ast 103 ext/opcache/zend_persist_calc.c if (ast->kind == ZEND_CONST) { ast 105 ext/opcache/zend_persist_calc.c ADD_SIZE(zend_persist_zval_calc(ast->u.val TSRMLS_CC)); ast 107 ext/opcache/zend_persist_calc.c ADD_SIZE(sizeof(zend_ast) + sizeof(zend_ast*) * (ast->children - 1)); ast 108 ext/opcache/zend_persist_calc.c for (i = 0; i < ast->children; i++) { ast 109 ext/opcache/zend_persist_calc.c if ((&ast->u.child)[i]) { ast 110 ext/opcache/zend_persist_calc.c ADD_SIZE(zend_persist_ast_calc((&ast->u.child)[i] TSRMLS_CC));