Lines Matching refs:ast

49 	zend_ast_znode *ast;  in zend_ast_create_znode()  local
51 ast = zend_ast_alloc(sizeof(zend_ast_znode)); in zend_ast_create_znode()
52 ast->kind = ZEND_AST_ZNODE; in zend_ast_create_znode()
53 ast->attr = 0; in zend_ast_create_znode()
54 ast->lineno = CG(zend_lineno); in zend_ast_create_znode()
55 ast->node = *node; in zend_ast_create_znode()
56 return (zend_ast *) ast; in zend_ast_create_znode()
60 zend_ast_zval *ast; in zend_ast_create_zval_int() local
62 ast = zend_ast_alloc(sizeof(zend_ast_zval)); in zend_ast_create_zval_int()
63 ast->kind = ZEND_AST_ZVAL; in zend_ast_create_zval_int()
64 ast->attr = attr; in zend_ast_create_zval_int()
65 ZVAL_COPY_VALUE(&ast->val, zv); in zend_ast_create_zval_int()
66 Z_LINENO(ast->val) = lineno; in zend_ast_create_zval_int()
67 return (zend_ast *) ast; in zend_ast_create_zval_int()
95 zend_ast_zval *ast; in zend_ast_create_constant() local
97 ast = zend_ast_alloc(sizeof(zend_ast_zval)); in zend_ast_create_constant()
98 ast->kind = ZEND_AST_CONSTANT; in zend_ast_create_constant()
99 ast->attr = attr; in zend_ast_create_constant()
100 ZVAL_STR(&ast->val, name); in zend_ast_create_constant()
101 Z_LINENO(ast->val) = CG(zend_lineno); in zend_ast_create_constant()
102 return (zend_ast *) ast; in zend_ast_create_constant()
109 zend_ast_decl *ast; in zend_ast_create_decl() local
111 ast = zend_ast_alloc(sizeof(zend_ast_decl)); in zend_ast_create_decl()
112 ast->kind = kind; in zend_ast_create_decl()
113 ast->attr = 0; in zend_ast_create_decl()
114 ast->start_lineno = start_lineno; in zend_ast_create_decl()
115 ast->end_lineno = CG(zend_lineno); in zend_ast_create_decl()
116 ast->flags = flags; in zend_ast_create_decl()
117 ast->lex_pos = LANG_SCNG(yy_text); in zend_ast_create_decl()
118 ast->doc_comment = doc_comment; in zend_ast_create_decl()
119 ast->name = name; in zend_ast_create_decl()
120 ast->child[0] = child0; in zend_ast_create_decl()
121 ast->child[1] = child1; in zend_ast_create_decl()
122 ast->child[2] = child2; in zend_ast_create_decl()
123 ast->child[3] = child3; in zend_ast_create_decl()
125 return (zend_ast *) ast; in zend_ast_create_decl()
130 zend_ast *ast; in zend_ast_create_0() local
133 ast = zend_ast_alloc(zend_ast_size(0)); in zend_ast_create_0()
134 ast->kind = kind; in zend_ast_create_0()
135 ast->attr = 0; in zend_ast_create_0()
136 ast->lineno = CG(zend_lineno); in zend_ast_create_0()
138 return ast; in zend_ast_create_0()
142 zend_ast *ast; in zend_ast_create_1() local
146 ast = zend_ast_alloc(zend_ast_size(1)); in zend_ast_create_1()
147 ast->kind = kind; in zend_ast_create_1()
148 ast->attr = 0; in zend_ast_create_1()
149 ast->child[0] = child; in zend_ast_create_1()
155 ast->lineno = lineno; in zend_ast_create_1()
156 ast->lineno = lineno; in zend_ast_create_1()
158 return ast; in zend_ast_create_1()
162 zend_ast *ast; in zend_ast_create_2() local
166 ast = zend_ast_alloc(zend_ast_size(2)); in zend_ast_create_2()
167 ast->kind = kind; in zend_ast_create_2()
168 ast->attr = 0; in zend_ast_create_2()
169 ast->child[0] = child1; in zend_ast_create_2()
170 ast->child[1] = child2; in zend_ast_create_2()
178 ast->lineno = lineno; in zend_ast_create_2()
180 return ast; in zend_ast_create_2()
184 zend_ast *ast; in zend_ast_create_3() local
188 ast = zend_ast_alloc(zend_ast_size(3)); in zend_ast_create_3()
189 ast->kind = kind; in zend_ast_create_3()
190 ast->attr = 0; in zend_ast_create_3()
191 ast->child[0] = child1; in zend_ast_create_3()
192 ast->child[1] = child2; in zend_ast_create_3()
193 ast->child[2] = child3; in zend_ast_create_3()
203 ast->lineno = lineno; in zend_ast_create_3()
205 return ast; in zend_ast_create_3()
209 zend_ast *ast; in zend_ast_create_4() local
213 ast = zend_ast_alloc(zend_ast_size(4)); in zend_ast_create_4()
214 ast->kind = kind; in zend_ast_create_4()
215 ast->attr = 0; in zend_ast_create_4()
216 ast->child[0] = child1; in zend_ast_create_4()
217 ast->child[1] = child2; in zend_ast_create_4()
218 ast->child[2] = child3; in zend_ast_create_4()
219 ast->child[3] = child4; in zend_ast_create_4()
231 ast->lineno = lineno; in zend_ast_create_4()
233 return ast; in zend_ast_create_4()
237 zend_ast *ast; in zend_ast_create_list_0() local
240 ast = zend_ast_alloc(zend_ast_list_size(4)); in zend_ast_create_list_0()
241 list = (zend_ast_list *) ast; in zend_ast_create_list_0()
247 return ast; in zend_ast_create_list_0()
251 zend_ast *ast; in zend_ast_create_list_1() local
255 ast = zend_ast_alloc(zend_ast_list_size(4)); in zend_ast_create_list_1()
256 list = (zend_ast_list *) ast; in zend_ast_create_list_1()
271 return ast; in zend_ast_create_list_1()
275 zend_ast *ast; in zend_ast_create_list_2() local
279 ast = zend_ast_alloc(zend_ast_list_size(4)); in zend_ast_create_list_2()
280 list = (zend_ast_list *) ast; in zend_ast_create_list_2()
302 return ast; in zend_ast_create_list_2()
307 zend_ast *ast; in zend_ast_create_from_va_list() local
309 ast = zend_ast_alloc(zend_ast_size(children)); in zend_ast_create_from_va_list()
310 ast->kind = kind; in zend_ast_create_from_va_list()
311 ast->attr = attr; in zend_ast_create_from_va_list()
312 ast->lineno = (uint32_t) -1; in zend_ast_create_from_va_list()
315 ast->child[i] = va_arg(va, zend_ast *); in zend_ast_create_from_va_list()
316 if (ast->child[i] != NULL) { in zend_ast_create_from_va_list()
317 uint32_t lineno = zend_ast_get_lineno(ast->child[i]); in zend_ast_create_from_va_list()
318 if (lineno < ast->lineno) { in zend_ast_create_from_va_list()
319 ast->lineno = lineno; in zend_ast_create_from_va_list()
324 if (ast->lineno == UINT_MAX) { in zend_ast_create_from_va_list()
325 ast->lineno = CG(zend_lineno); in zend_ast_create_from_va_list()
328 return ast; in zend_ast_create_from_va_list()
333 zend_ast *ast; in zend_ast_create_ex() local
336 ast = zend_ast_create_from_va_list(kind, attr, va); in zend_ast_create_ex()
339 return ast; in zend_ast_create_ex()
344 zend_ast *ast; in zend_ast_create() local
347 ast = zend_ast_create_from_va_list(kind, 0, va); in zend_ast_create()
350 return ast; in zend_ast_create()
354 zend_ast *ast; in zend_ast_create_list() local
357 ast = zend_ast_alloc(zend_ast_list_size(4)); in zend_ast_create_list()
358 list = (zend_ast_list *) ast; in zend_ast_create_list()
370 ast = zend_ast_list_add(ast, child); in zend_ast_create_list()
373 if (lineno < ast->lineno) { in zend_ast_create_list()
374 ast->lineno = lineno; in zend_ast_create_list()
381 return ast; in zend_ast_create_list()
389 ZEND_API zend_ast * ZEND_FASTCALL zend_ast_list_add(zend_ast *ast, zend_ast *op) { in zend_ast_list_add() argument
390 zend_ast_list *list = zend_ast_get_list(ast); in zend_ast_list_add()
439 ZEND_API int ZEND_FASTCALL zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *scope) in zend_ast_evaluate() argument
444 switch (ast->kind) { in zend_ast_evaluate()
446 if (UNEXPECTED(zend_ast_evaluate(&op1, ast->child[0], scope) != SUCCESS)) { in zend_ast_evaluate()
448 } else if (UNEXPECTED(zend_ast_evaluate(&op2, ast->child[1], scope) != SUCCESS)) { in zend_ast_evaluate()
452 binary_op_type op = get_binary_op(ast->attr); in zend_ast_evaluate()
460 if (UNEXPECTED(zend_ast_evaluate(&op1, ast->child[0], scope) != SUCCESS)) { in zend_ast_evaluate()
462 } else if (UNEXPECTED(zend_ast_evaluate(&op2, ast->child[1], scope) != SUCCESS)) { in zend_ast_evaluate()
467 binary_op_type op = ast->kind == ZEND_AST_GREATER in zend_ast_evaluate()
475 if (UNEXPECTED(zend_ast_evaluate(&op1, ast->child[0], scope) != SUCCESS)) { in zend_ast_evaluate()
478 unary_op_type op = get_unary_op(ast->attr); in zend_ast_evaluate()
485 zval *zv = zend_ast_get_zval(ast); in zend_ast_evaluate()
492 zend_string *name = zend_ast_get_constant_name(ast); in zend_ast_evaluate()
493 zval *zv = zend_get_constant_ex(name, scope, ast->attr); in zend_ast_evaluate()
497 ret = zend_use_undefined_constant(name, ast->attr, result); in zend_ast_evaluate()
512 if (UNEXPECTED(zend_ast_evaluate(&op1, ast->child[0], scope) != SUCCESS)) { in zend_ast_evaluate()
517 if (UNEXPECTED(zend_ast_evaluate(&op2, ast->child[1], scope) != SUCCESS)) { in zend_ast_evaluate()
530 if (UNEXPECTED(zend_ast_evaluate(&op1, ast->child[0], scope) != SUCCESS)) { in zend_ast_evaluate()
537 if (UNEXPECTED(zend_ast_evaluate(&op2, ast->child[1], scope) != SUCCESS)) { in zend_ast_evaluate()
548 if (UNEXPECTED(zend_ast_evaluate(&op1, ast->child[0], scope) != SUCCESS)) { in zend_ast_evaluate()
553 if (!ast->child[1]) { in zend_ast_evaluate()
556 if (UNEXPECTED(zend_ast_evaluate(result, ast->child[1], scope) != SUCCESS)) { in zend_ast_evaluate()
564 if (UNEXPECTED(zend_ast_evaluate(result, ast->child[2], scope) != SUCCESS)) { in zend_ast_evaluate()
573 if (UNEXPECTED(zend_ast_evaluate(&op1, ast->child[0], scope) != SUCCESS)) { in zend_ast_evaluate()
580 if (UNEXPECTED(zend_ast_evaluate(result, ast->child[1], scope) != SUCCESS)) { in zend_ast_evaluate()
589 if (UNEXPECTED(zend_ast_evaluate(&op2, ast->child[0], scope) != SUCCESS)) { in zend_ast_evaluate()
598 if (UNEXPECTED(zend_ast_evaluate(&op2, ast->child[0], scope) != SUCCESS)) { in zend_ast_evaluate()
609 zend_ast_list *list = zend_ast_get_list(ast); in zend_ast_evaluate()
641 if (ast->child[1] == NULL) { in zend_ast_evaluate()
645 if (UNEXPECTED(zend_ast_evaluate(&op1, ast->child[0], scope) != SUCCESS)) { in zend_ast_evaluate()
647 } else if (UNEXPECTED(zend_ast_evaluate(&op2, ast->child[1], scope) != SUCCESS)) { in zend_ast_evaluate()
651 … zend_fetch_dimension_const(result, &op1, &op2, (ast->attr == ZEND_DIM_IS) ? BP_VAR_IS : BP_VAR_R); in zend_ast_evaluate()
664 static size_t ZEND_FASTCALL zend_ast_tree_size(zend_ast *ast) in zend_ast_tree_size() argument
668 if (ast->kind == ZEND_AST_ZVAL || ast->kind == ZEND_AST_CONSTANT) { in zend_ast_tree_size()
670 } else if (zend_ast_is_list(ast)) { in zend_ast_tree_size()
672 zend_ast_list *list = zend_ast_get_list(ast); in zend_ast_tree_size()
681 uint32_t i, children = zend_ast_get_num_children(ast); in zend_ast_tree_size()
685 if (ast->child[i]) { in zend_ast_tree_size()
686 size += zend_ast_tree_size(ast->child[i]); in zend_ast_tree_size()
693 static void* ZEND_FASTCALL zend_ast_tree_copy(zend_ast *ast, void *buf) in zend_ast_tree_copy() argument
695 if (ast->kind == ZEND_AST_ZVAL) { in zend_ast_tree_copy()
698 new->attr = ast->attr; in zend_ast_tree_copy()
699 ZVAL_COPY(&new->val, zend_ast_get_zval(ast)); in zend_ast_tree_copy()
701 } else if (ast->kind == ZEND_AST_CONSTANT) { in zend_ast_tree_copy()
704 new->attr = ast->attr; in zend_ast_tree_copy()
705 ZVAL_STR_COPY(&new->val, zend_ast_get_constant_name(ast)); in zend_ast_tree_copy()
707 } else if (zend_ast_is_list(ast)) { in zend_ast_tree_copy()
708 zend_ast_list *list = zend_ast_get_list(ast); in zend_ast_tree_copy()
724 uint32_t i, children = zend_ast_get_num_children(ast); in zend_ast_tree_copy()
726 new->kind = ast->kind; in zend_ast_tree_copy()
727 new->attr = ast->attr; in zend_ast_tree_copy()
730 if (ast->child[i]) { in zend_ast_tree_copy()
732 buf = zend_ast_tree_copy(ast->child[i], buf); in zend_ast_tree_copy()
741 ZEND_API zend_ast_ref * ZEND_FASTCALL zend_ast_copy(zend_ast *ast) in zend_ast_copy() argument
746 ZEND_ASSERT(ast != NULL); in zend_ast_copy()
747 tree_size = zend_ast_tree_size(ast) + sizeof(zend_ast_ref); in zend_ast_copy()
749 zend_ast_tree_copy(ast, GC_AST(ref)); in zend_ast_copy()
755 ZEND_API void ZEND_FASTCALL zend_ast_destroy(zend_ast *ast) in zend_ast_destroy() argument
758 if (!ast) { in zend_ast_destroy()
762 if (EXPECTED(ast->kind >= ZEND_AST_VAR)) { in zend_ast_destroy()
763 uint32_t i, children = zend_ast_get_num_children(ast); in zend_ast_destroy()
766 zend_ast_destroy(ast->child[i]); in zend_ast_destroy()
768 ast = ast->child[0]; in zend_ast_destroy()
770 } else if (EXPECTED(ast->kind == ZEND_AST_ZVAL)) { in zend_ast_destroy()
771 zval_ptr_dtor_nogc(zend_ast_get_zval(ast)); in zend_ast_destroy()
772 } else if (EXPECTED(zend_ast_is_list(ast))) { in zend_ast_destroy()
773 zend_ast_list *list = zend_ast_get_list(ast); in zend_ast_destroy()
780 ast = list->child[0]; in zend_ast_destroy()
783 } else if (EXPECTED(ast->kind == ZEND_AST_CONSTANT)) { in zend_ast_destroy()
784 zend_string_release_ex(zend_ast_get_constant_name(ast), 0); in zend_ast_destroy()
785 } else if (EXPECTED(ast->kind >= ZEND_AST_FUNC_DECL)) { in zend_ast_destroy()
786 zend_ast_decl *decl = (zend_ast_decl *) ast; in zend_ast_destroy()
797 ast = decl->child[3]; in zend_ast_destroy()
802 ZEND_API void ZEND_FASTCALL zend_ast_ref_destroy(zend_ast_ref *ast) in zend_ast_ref_destroy() argument
804 zend_ast_destroy(GC_AST(ast)); in zend_ast_ref_destroy()
805 efree(ast); in zend_ast_ref_destroy()
808 ZEND_API void zend_ast_apply(zend_ast *ast, zend_ast_apply_func fn) { in zend_ast_apply() argument
809 if (zend_ast_is_list(ast)) { in zend_ast_apply()
810 zend_ast_list *list = zend_ast_get_list(ast); in zend_ast_apply()
816 uint32_t i, children = zend_ast_get_num_children(ast); in zend_ast_apply()
818 fn(&ast->child[i]); in zend_ast_apply()
858 static ZEND_COLD void zend_ast_export_ex(smart_str *str, zend_ast *ast, int priority, int indent);
928 static ZEND_COLD void zend_ast_export_name(smart_str *str, zend_ast *ast, int priority, int indent) in zend_ast_export_name() argument
930 if (ast->kind == ZEND_AST_ZVAL) { in zend_ast_export_name()
931 zval *zv = zend_ast_get_zval(ast); in zend_ast_export_name()
938 zend_ast_export_ex(str, ast, priority, indent); in zend_ast_export_name()
941 static ZEND_COLD void zend_ast_export_ns_name(smart_str *str, zend_ast *ast, int priority, int inde… in zend_ast_export_ns_name() argument
943 if (ast->kind == ZEND_AST_ZVAL) { in zend_ast_export_ns_name()
944 zval *zv = zend_ast_get_zval(ast); in zend_ast_export_ns_name()
947 if (ast->attr == ZEND_NAME_FQ) { in zend_ast_export_ns_name()
949 } else if (ast->attr == ZEND_NAME_RELATIVE) { in zend_ast_export_ns_name()
956 zend_ast_export_ex(str, ast, priority, indent); in zend_ast_export_ns_name()
1003 static ZEND_COLD void zend_ast_export_var(smart_str *str, zend_ast *ast, int priority, int indent) in zend_ast_export_var() argument
1005 if (ast->kind == ZEND_AST_ZVAL) { in zend_ast_export_var()
1006 zval *zv = zend_ast_get_zval(ast); in zend_ast_export_var()
1012 } else if (ast->kind == ZEND_AST_VAR) { in zend_ast_export_var()
1013 zend_ast_export_ex(str, ast, 0, indent); in zend_ast_export_var()
1017 zend_ast_export_name(str, ast, 0, indent); in zend_ast_export_var()
1037 zend_ast *ast; in zend_ast_export_encaps_list() local
1040 ast = list->child[i]; in zend_ast_export_encaps_list()
1041 if (ast->kind == ZEND_AST_ZVAL) { in zend_ast_export_encaps_list()
1042 zval *zv = zend_ast_get_zval(ast); in zend_ast_export_encaps_list()
1046 } else if (ast->kind == ZEND_AST_VAR && in zend_ast_export_encaps_list()
1047 ast->child[0]->kind == ZEND_AST_ZVAL && in zend_ast_export_encaps_list()
1053 zend_ast_export_ex(str, ast, 0, indent); in zend_ast_export_encaps_list()
1056 zend_ast_export_ex(str, ast, 0, indent); in zend_ast_export_encaps_list()
1096 static ZEND_COLD void zend_ast_export_stmt(smart_str *str, zend_ast *ast, int indent) in zend_ast_export_stmt() argument
1098 if (!ast) { in zend_ast_export_stmt()
1102 if (ast->kind == ZEND_AST_STMT_LIST || in zend_ast_export_stmt()
1103 ast->kind == ZEND_AST_TRAIT_ADAPTATIONS) { in zend_ast_export_stmt()
1104 zend_ast_list *list = (zend_ast_list*)ast; in zend_ast_export_stmt()
1108 ast = list->child[i]; in zend_ast_export_stmt()
1109 zend_ast_export_stmt(str, ast, indent); in zend_ast_export_stmt()
1114 zend_ast_export_ex(str, ast, 0, indent); in zend_ast_export_stmt()
1115 switch (ast->kind) { in zend_ast_export_stmt()
1141 zend_ast *ast; in zend_ast_export_if_stmt() local
1146 ast = list->child[i]; in zend_ast_export_if_stmt()
1147 ZEND_ASSERT(ast->kind == ZEND_AST_IF_ELEM); in zend_ast_export_if_stmt()
1148 if (ast->child[0]) { in zend_ast_export_if_stmt()
1155 zend_ast_export_ex(str, ast->child[0], 0, indent); in zend_ast_export_if_stmt()
1157 zend_ast_export_stmt(str, ast->child[1], indent + 1); in zend_ast_export_if_stmt()
1161 if (ast->child[1] && ast->child[1]->kind == ZEND_AST_IF) { in zend_ast_export_if_stmt()
1162 list = (zend_ast_list*)ast->child[1]; in zend_ast_export_if_stmt()
1166 zend_ast_export_stmt(str, ast->child[1], indent + 1); in zend_ast_export_if_stmt()
1291 static ZEND_COLD void zend_ast_export_ex(smart_str *str, zend_ast *ast, int priority, int indent) in zend_ast_export_ex() argument
1298 if (!ast) { in zend_ast_export_ex()
1301 switch (ast->kind) { in zend_ast_export_ex()
1304 zend_ast_export_zval(str, zend_ast_get_zval(ast), priority, indent); in zend_ast_export_ex()
1307 zend_string *name = zend_ast_get_constant_name(ast); in zend_ast_export_ex()
1323 decl = (zend_ast_decl *) ast; in zend_ast_export_ex()
1344 if (ast->kind != ZEND_AST_CLOSURE) { in zend_ast_export_ex()
1363 if (ast->kind != ZEND_AST_CLOSURE) { in zend_ast_export_ex()
1371 decl = (zend_ast_decl *) ast; in zend_ast_export_ex()
1395 zend_ast_export_list(str, (zend_ast_list*)ast, 1, 20, indent); in zend_ast_export_ex()
1399 zend_ast_export_list(str, (zend_ast_list*)ast, 1, 20, indent); in zend_ast_export_ex()
1404 zend_ast_export_encaps_list(str, '"', (zend_ast_list*)ast, indent); in zend_ast_export_ex()
1409 zend_ast_export_stmt(str, ast, indent); in zend_ast_export_ex()
1412 zend_ast_export_if_stmt(str, (zend_ast_list*)ast, indent); in zend_ast_export_ex()
1416 zend_ast_export_list(str, (zend_ast_list*)ast, 0, 0, indent); in zend_ast_export_ex()
1420 zend_ast_export_var_list(str, (zend_ast_list*)ast, indent); in zend_ast_export_ex()
1424 if (ast->attr & ZEND_ACC_PUBLIC) { in zend_ast_export_ex()
1426 } else if (ast->attr & ZEND_ACC_PROTECTED) { in zend_ast_export_ex()
1428 } else if (ast->attr & ZEND_ACC_PRIVATE) { in zend_ast_export_ex()
1431 if (ast->attr & ZEND_ACC_STATIC) { in zend_ast_export_ex()
1440 zend_ast_export_name_list(str, (zend_ast_list*)ast, indent); in zend_ast_export_ex()
1444 if (ast->attr == T_FUNCTION) { in zend_ast_export_ex()
1446 } else if (ast->attr == T_CONST) { in zend_ast_export_ex()
1453 switch (ast->attr) { in zend_ast_export_ex()
1466 switch (ast->attr & ~ZEND_TYPE_NULLABLE) { in zend_ast_export_ex()
1476 zend_ast_export_var(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1479 zend_ast_export_ns_name(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1483 ast = ast->child[0]; in zend_ast_export_ex()
1488 switch (ast->attr) { in zend_ast_export_ex()
1507 if (ast->child[0]->kind == ZEND_AST_ENCAPS_LIST) { in zend_ast_export_ex()
1508 zend_ast_export_encaps_list(str, '`', (zend_ast_list*)ast->child[0], indent); in zend_ast_export_ex()
1511 ZEND_ASSERT(ast->child[0]->kind == ZEND_AST_ZVAL); in zend_ast_export_ex()
1512 zv = zend_ast_get_zval(ast->child[0]); in zend_ast_export_ex()
1521 if (ast->child[0]) { in zend_ast_export_ex()
1530 switch (ast->attr) { in zend_ast_export_ex()
1540 switch (ast->attr) { in zend_ast_export_ex()
1562 zend_ast_export_name(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1567 ast = ast->child[0]; in zend_ast_export_ex()
1577 zend_ast_export_name(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1586 zend_ast_export_ex(str, ast->child[0], 260, indent); in zend_ast_export_ex()
1588 if (ast->child[1]) { in zend_ast_export_ex()
1589 zend_ast_export_ex(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1594 zend_ast_export_ex(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1596 zend_ast_export_var(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1599 zend_ast_export_ns_name(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1601 zend_ast_export_var(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1604 zend_ast_export_ns_name(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1606 zend_ast_export_ex(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1610 zend_ast_export_ns_name(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1612 zend_ast_export_name(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1617 switch (ast->attr) { in zend_ast_export_ex()
1634 switch (ast->attr) { in zend_ast_export_ex()
1663 if (ast->child[1]) { in zend_ast_export_ex()
1664 zend_ast_export_ex(str, ast->child[1], 80, indent); in zend_ast_export_ex()
1667 if (ast->attr) in zend_ast_export_ex()
1669 zend_ast_export_ex(str, ast->child[0], 80, indent); in zend_ast_export_ex()
1673 if (ast->child[0]->kind == ZEND_AST_CLASS) { in zend_ast_export_ex()
1675 if (zend_ast_get_list(ast->child[1])->children) { in zend_ast_export_ex()
1677 zend_ast_export_ex(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1680 zend_ast_export_class_no_header(str, (zend_ast_decl *) ast->child[0], indent); in zend_ast_export_ex()
1682 zend_ast_export_ns_name(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1684 zend_ast_export_ex(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1689 zend_ast_export_ex(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1691 zend_ast_export_ns_name(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1696 if (ast->child[0]) { in zend_ast_export_ex()
1697 if (ast->child[1]) { in zend_ast_export_ex()
1698 zend_ast_export_ex(str, ast->child[1], 70, indent); in zend_ast_export_ex()
1701 zend_ast_export_ex(str, ast->child[0], 70, indent); in zend_ast_export_ex()
1710 zend_ast_export_name(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1714 zend_ast_export_ex(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1716 zend_ast_export_stmt(str, ast->child[1], indent + 1); in zend_ast_export_ex()
1722 zend_ast_export_stmt(str, ast->child[0], indent + 1); in zend_ast_export_ex()
1725 zend_ast_export_ex(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1730 if (ast->child[0]) { in zend_ast_export_ex()
1732 zend_ast_export_ex(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1734 zend_ast_export_stmt(str, ast->child[1], indent + 1); in zend_ast_export_ex()
1737 zend_ast_export_stmt(str, ast->child[1], indent + 1); in zend_ast_export_ex()
1744 zend_ast_export_ex(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1746 zend_ast_export_ex(str, ast->child[1], 0, indent + 1); in zend_ast_export_ex()
1752 if (ast->child[0]) { in zend_ast_export_ex()
1754 zend_ast_export_ex(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1759 zend_ast_export_stmt(str, ast->child[1], indent + 1); in zend_ast_export_ex()
1763 ZEND_ASSERT(ast->child[0]->kind == ZEND_AST_CONST_DECL); in zend_ast_export_ex()
1764 zend_ast_export_list(str, (zend_ast_list*)ast->child[0], 1, 0, indent); in zend_ast_export_ex()
1766 if (ast->child[1]) { in zend_ast_export_ex()
1768 zend_ast_export_stmt(str, ast->child[1], indent + 1); in zend_ast_export_ex()
1779 zend_ast_export_name(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1783 zend_ast_export_ex(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1784 if (ast->child[1]) { in zend_ast_export_ex()
1786 zend_ast_export_ex(str, ast->child[1], 0, indent + 1); in zend_ast_export_ex()
1794 zend_ast_export_ex(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1796 zend_ast_export_ex(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1799 if (ast->child[0]) { in zend_ast_export_ex()
1800 zend_ast_export_name(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1803 zend_ast_export_name(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1807 if (ast->child[0]) { in zend_ast_export_ex()
1809 zend_ast_export_name(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1811 if (ast->child[1]) { in zend_ast_export_ex()
1813 zend_ast_export_stmt(str, ast->child[1], indent + 1); in zend_ast_export_ex()
1822 zend_ast_export_name(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1823 if (ast->attr & ZEND_ACC_PUBLIC) { in zend_ast_export_ex()
1825 } else if (ast->attr & ZEND_ACC_PROTECTED) { in zend_ast_export_ex()
1827 } else if (ast->attr & ZEND_ACC_PRIVATE) { in zend_ast_export_ex()
1829 } else if (ast->child[1]) { in zend_ast_export_ex()
1832 if (ast->child[1]) { in zend_ast_export_ex()
1834 zend_ast_export_name(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1840 zend_ast_export_ex(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1842 zend_ast_export_var(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1844 zend_ast_export_ex(str, ast->child[2], 0, indent); in zend_ast_export_ex()
1848 zend_ast_export_ns_name(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1850 zend_ast_export_var(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1852 zend_ast_export_ex(str, ast->child[2], 0, indent); in zend_ast_export_ex()
1857 zend_ast_export_ex(str, ast->child[0], 100, indent); in zend_ast_export_ex()
1858 if (ast->child[1]) { in zend_ast_export_ex()
1860 zend_ast_export_ex(str, ast->child[1], 101, indent); in zend_ast_export_ex()
1865 zend_ast_export_ex(str, ast->child[2], 101, indent); in zend_ast_export_ex()
1871 zend_ast_export_stmt(str, ast->child[0], indent + 1); in zend_ast_export_ex()
1873 zend_ast_export_ex(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1874 if (ast->child[2]) { in zend_ast_export_ex()
1876 zend_ast_export_stmt(str, ast->child[2], indent + 1); in zend_ast_export_ex()
1883 zend_ast_export_catch_name_list(str, zend_ast_get_list(ast->child[0]), indent); in zend_ast_export_ex()
1885 zend_ast_export_var(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1887 zend_ast_export_stmt(str, ast->child[2], indent + 1); in zend_ast_export_ex()
1891 if (ast->child[0]) { in zend_ast_export_ex()
1892 if (ast->child[0]->attr & ZEND_TYPE_NULLABLE) { in zend_ast_export_ex()
1895 zend_ast_export_ns_name(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1898 if (ast->attr & ZEND_PARAM_REF) { in zend_ast_export_ex()
1901 if (ast->attr & ZEND_PARAM_VARIADIC) { in zend_ast_export_ex()
1905 zend_ast_export_name(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1911 zend_ast_export_ex(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1913 if (ast->child[1]) { in zend_ast_export_ex()
1915 zend_ast_export_ex(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1918 if (ast->child[2]) { in zend_ast_export_ex()
1920 zend_ast_export_ex(str, ast->child[2], 0, indent); in zend_ast_export_ex()
1923 zend_ast_export_stmt(str, ast->child[3], indent + 1); in zend_ast_export_ex()
1929 zend_ast_export_ex(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1931 if (ast->child[2]) { in zend_ast_export_ex()
1932 zend_ast_export_ex(str, ast->child[2], 0, indent); in zend_ast_export_ex()
1935 zend_ast_export_ex(str, ast->child[1], 0, indent); in zend_ast_export_ex()
1937 zend_ast_export_stmt(str, ast->child[3], indent + 1); in zend_ast_export_ex()
1947 zend_ast_export_ex(str, ast->child[0], pl, indent); in zend_ast_export_ex()
1949 zend_ast_export_ex(str, ast->child[1], pr, indent); in zend_ast_export_ex()
1956 zend_ast_export_ex(str, ast->child[0], pl, indent); in zend_ast_export_ex()
1962 zend_ast_export_ex(str, ast->child[0], pl, indent); in zend_ast_export_ex()
1970 zend_ast_export_ex(str, ast->child[0], 0, indent); in zend_ast_export_ex()
1976 if (ast->child[0]) { in zend_ast_export_ex()
1978 ast = ast->child[0]; in zend_ast_export_ex()
1988 if (ast->child[p]) { in zend_ast_export_ex()
1990 ast = ast->child[p]; in zend_ast_export_ex()
1996 ZEND_API ZEND_COLD zend_string *zend_ast_export(const char *prefix, zend_ast *ast, const char *suff… in zend_ast_export() argument
2001 zend_ast_export_ex(&str, ast, 0, 0); in zend_ast_export()