Lines Matching refs:ast

216 typedef void (*zend_ast_process_t)(zend_ast *ast);
246 zend_ast *ast = zend_ast_create_0(kind); in zend_ast_create_ex_0() local
247 ast->attr = attr; in zend_ast_create_ex_0()
248 return ast; in zend_ast_create_ex_0()
251 zend_ast *ast = zend_ast_create_1(kind, child); in zend_ast_create_ex_1() local
252 ast->attr = attr; in zend_ast_create_ex_1()
253 return ast; in zend_ast_create_ex_1()
256 zend_ast *ast = zend_ast_create_2(kind, child1, child2); in zend_ast_create_ex_2() local
257 ast->attr = attr; in zend_ast_create_ex_2()
258 return ast; in zend_ast_create_ex_2()
261 zend_ast *ast = zend_ast_create_3(kind, child1, child2, child3); in zend_ast_create_ex_3() local
262 ast->attr = attr; in zend_ast_create_ex_3()
263 return ast; in zend_ast_create_ex_3()
266 zend_ast *ast = zend_ast_create_4(kind, child1, child2, child3, child4); in zend_ast_create_ex_4() local
267 ast->attr = attr; in zend_ast_create_ex_4()
268 return ast; in zend_ast_create_ex_4()
271 zend_ast *ast = zend_ast_create_5(kind, child1, child2, child3, child4, child5); in zend_ast_create_ex_5() local
272 ast->attr = attr; in zend_ast_create_ex_5()
273 return ast; in zend_ast_create_ex_5()
304 ZEND_API zend_result ZEND_FASTCALL zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry …
305 ZEND_API zend_result ZEND_FASTCALL zend_ast_evaluate_ex(zval *result, zend_ast *ast, zend_class_ent…
306 ZEND_API zend_string *zend_ast_export(const char *prefix, zend_ast *ast, const char *suffix);
308 ZEND_API zend_ast_ref * ZEND_FASTCALL zend_ast_copy(zend_ast *ast);
309 ZEND_API void ZEND_FASTCALL zend_ast_destroy(zend_ast *ast);
310 ZEND_API void ZEND_FASTCALL zend_ast_ref_destroy(zend_ast_ref *ast);
313 ZEND_API void zend_ast_apply(zend_ast *ast, zend_ast_apply_func fn, void *context);
319 static zend_always_inline bool zend_ast_is_special(zend_ast *ast) { in zend_ast_is_special() argument
320 return (ast->kind >> ZEND_AST_SPECIAL_SHIFT) & 1; in zend_ast_is_special()
323 static zend_always_inline bool zend_ast_is_list(zend_ast *ast) { in zend_ast_is_list() argument
324 return (ast->kind >> ZEND_AST_IS_LIST_SHIFT) & 1; in zend_ast_is_list()
326 static zend_always_inline zend_ast_list *zend_ast_get_list(zend_ast *ast) { in zend_ast_get_list() argument
327 ZEND_ASSERT(zend_ast_is_list(ast)); in zend_ast_get_list()
328 return (zend_ast_list *) ast; in zend_ast_get_list()
331 static zend_always_inline zval *zend_ast_get_zval(zend_ast *ast) { in zend_ast_get_zval() argument
332 ZEND_ASSERT(ast->kind == ZEND_AST_ZVAL); in zend_ast_get_zval()
333 return &((zend_ast_zval *) ast)->val; in zend_ast_get_zval()
335 static zend_always_inline zend_string *zend_ast_get_str(zend_ast *ast) { in zend_ast_get_str() argument
336 zval *zv = zend_ast_get_zval(ast); in zend_ast_get_str()
341 static zend_always_inline zend_string *zend_ast_get_constant_name(zend_ast *ast) { in zend_ast_get_constant_name() argument
342 ZEND_ASSERT(ast->kind == ZEND_AST_CONSTANT); in zend_ast_get_constant_name()
343 ZEND_ASSERT(Z_TYPE(((zend_ast_zval *) ast)->val) == IS_STRING); in zend_ast_get_constant_name()
344 return Z_STR(((zend_ast_zval *) ast)->val); in zend_ast_get_constant_name()
347 static zend_always_inline uint32_t zend_ast_get_num_children(zend_ast *ast) { in zend_ast_get_num_children() argument
348 ZEND_ASSERT(!zend_ast_is_list(ast)); in zend_ast_get_num_children()
349 return ast->kind >> ZEND_AST_NUM_CHILDREN_SHIFT; in zend_ast_get_num_children()
351 static zend_always_inline uint32_t zend_ast_get_lineno(zend_ast *ast) { in zend_ast_get_lineno() argument
352 if (ast->kind == ZEND_AST_ZVAL) { in zend_ast_get_lineno()
353 zval *zv = zend_ast_get_zval(ast); in zend_ast_get_lineno()
355 } else if (ast->kind == ZEND_AST_CONSTANT) { in zend_ast_get_lineno()
356 zval *zv = &((zend_ast_zval *) ast)->val; in zend_ast_get_lineno()
359 return ast->lineno; in zend_ast_get_lineno()
375 static zend_always_inline zend_ast *zend_ast_list_rtrim(zend_ast *ast) { in zend_ast_list_rtrim() argument
376 zend_ast_list *list = zend_ast_get_list(ast); in zend_ast_list_rtrim()
380 return ast; in zend_ast_list_rtrim()
383 zend_ast * ZEND_FASTCALL zend_ast_with_attributes(zend_ast *ast, zend_ast *attr);