Lines Matching refs:ast

132 ZEND_DECLARE_MODULE_GLOBALS(ast)
370 zend_ast *ast; in get_ast() local
372 ast = zend_compile_string_to_ast(code, ast_arena, filename); in get_ast()
374 return ast; in get_ast()
380 zend_ast *ast; in get_ast()
389 CG(ast) = NULL; in get_ast()
394 zend_ast_destroy(CG(ast)); in get_ast()
396 CG(ast) = NULL; in get_ast()
400 ast = CG(ast); in get_ast()
408 return ast; in get_ast()
432 static inline zend_bool ast_is_name(zend_ast *ast, zend_ast *parent, uint32_t i) { in ast_is_name() argument
433 if (!ast) { in ast_is_name()
436 if (ast->kind != ZEND_AST_ZVAL || Z_TYPE_P(zend_ast_get_zval(ast)) != IS_STRING) { in ast_is_name()
495 static inline zend_bool ast_is_type(zend_ast *ast, zend_ast *parent, uint32_t i) { in ast_is_type() argument
533 static inline zend_bool ast_is_var_name(zend_ast *ast, zend_ast *parent, uint32_t i) { in ast_is_var_name() argument
535 || (parent->kind == ZEND_AST_CATCH && i == 1 && ast != NULL); in ast_is_var_name()
539 static inline zend_bool ast_should_normalize_list(zend_ast *ast, zend_ast *parent, uint32_t i) { in ast_should_normalize_list() argument
540 if (ast && ast->kind == ZEND_AST_STMT_LIST) { in ast_should_normalize_list()
550 return ast != NULL; in ast_should_normalize_list()
617 static inline zend_ast **ast_get_children(zend_ast *ast, ast_state_info_t *state, uint32_t *count) { in ast_get_children() argument
618 if (ast_kind_is_decl(ast->kind)) { in ast_get_children()
619 zend_ast_decl *decl = (zend_ast_decl *) ast; in ast_get_children()
628 } else if (zend_ast_is_list(ast)) { in ast_get_children()
629 zend_ast_list *list = zend_ast_get_list(ast); in ast_get_children()
633 *count = zend_ast_get_num_children(ast); in ast_get_children()
634 return ast->child; in ast_get_children()
638 static void ast_to_zval(zval *zv, zend_ast *ast, ast_state_info_t *state);
678 static inline void ast_name_to_zval(zend_ast *child, zend_ast *ast, zval *child_zv, int i, ast_stat… in ast_name_to_zval() argument
699 && ast_is_type(child, ast, i) in ast_name_to_zval()
719 static void ast_fill_children_ht(HashTable *ht, zend_ast *ast, ast_state_info_t *state) { in ast_fill_children_ht() argument
721 zend_bool is_list = zend_ast_is_list(ast); in ast_fill_children_ht()
722 zend_ast **children = ast_get_children(ast, state, &count); in ast_fill_children_ht()
723 const zend_ast_kind ast_kind = ast->kind; in ast_fill_children_ht()
783 if (ast_is_name(child, ast, i)) { in ast_fill_children_ht()
784 ast_name_to_zval(child, ast, &child_zv, i, state); in ast_fill_children_ht()
790 } else if (ast_is_var_name(child, ast, i)) { in ast_fill_children_ht()
792 } else if (ast_should_normalize_list(child, ast, i)) { in ast_fill_children_ht()
800 &child_zv, ZEND_AST_STMT_LIST, 0, zend_ast_get_lineno(ast), state, 0); in ast_fill_children_ht()
887 static void ast_to_zval(zval *zv, zend_ast *ast, ast_state_info_t *state) { in ast_to_zval() argument
890 if (ast == NULL) { in ast_to_zval()
895 if (ast->kind == ZEND_AST_ZVAL) { in ast_to_zval()
896 ZVAL_COPY(zv, zend_ast_get_zval(ast)); in ast_to_zval()
900 switch (ast->kind) { in ast_to_zval()
903 ast->attr = ast_assign_op_to_binary_op(ast->attr); in ast_to_zval()
907 ast->kind = ZEND_AST_BINARY_OP; in ast_to_zval()
908 ast->attr = AST_BINARY_IS_GREATER; in ast_to_zval()
911 ast->kind = ZEND_AST_BINARY_OP; in ast_to_zval()
912 ast->attr = AST_BINARY_IS_GREATER_OR_EQUAL; in ast_to_zval()
915 ast->kind = ZEND_AST_BINARY_OP; in ast_to_zval()
916 ast->attr = AST_BINARY_BOOL_OR; in ast_to_zval()
919 ast->kind = ZEND_AST_BINARY_OP; in ast_to_zval()
920 ast->attr = AST_BINARY_BOOL_AND; in ast_to_zval()
923 ast->kind = ZEND_AST_BINARY_OP; in ast_to_zval()
924 ast->attr = AST_BINARY_COALESCE; in ast_to_zval()
927 ast->kind = ZEND_AST_UNARY_OP; in ast_to_zval()
928 ast->attr = AST_SILENCE; in ast_to_zval()
931 ast->kind = ZEND_AST_UNARY_OP; in ast_to_zval()
932 ast->attr = AST_PLUS; in ast_to_zval()
935 ast->kind = ZEND_AST_UNARY_OP; in ast_to_zval()
936 ast->attr = AST_MINUS; in ast_to_zval()
943 ast->child[0]->attr = ast->attr; in ast_to_zval()
944 ast_to_zval(zv, ast->child[0], state); in ast_to_zval()
954 ast_to_zval(zv, ast->child[1], state); in ast_to_zval()
957 AST_NODE_SET_PROP_FLAGS(Z_OBJ_P(zv), ast->attr); in ast_to_zval()
962 ast->kind = ZEND_AST_ASSIGN_OP; in ast_to_zval()
963 ast->attr = AST_BINARY_COALESCE; in ast_to_zval()
968 ast_to_zval(&name_zval, ast->child[0], state); in ast_to_zval()
971 … &class_name_zval, AST_NAME, ast->child[0]->attr, zend_ast_get_lineno(ast), state, 1, &name_zval); in ast_to_zval()
975 … zv, ZEND_AST_CLASS_CONST, 0, zend_ast_get_lineno(ast), state, 2, &class_name_zval, &const_zval); in ast_to_zval()
981 if (ast->attr == ZEND_PARENTHESIZED_CONCAT) { in ast_to_zval()
982 ast->attr = ZEND_CONCAT; in ast_to_zval()
990 zend_ast *const_name_ast = ast->child[1]; in ast_to_zval()
993 zend_ast *class_name_ast = ast->child[0]; in ast_to_zval()
1007 zv, ZEND_AST_CLASS_NAME, 0, zend_ast_get_lineno(ast), state, 1, &class_name_zval); in ast_to_zval()
1019 AST_NODE_SET_PROP_KIND(obj, ast->kind); in ast_to_zval()
1021 AST_NODE_SET_PROP_LINENO(obj, zend_ast_get_lineno(ast)); in ast_to_zval()
1026 if (ast_kind_is_decl(ast->kind)) { in ast_to_zval()
1027 zend_ast_decl *decl = (zend_ast_decl *) ast; in ast_to_zval()
1030 if (ast->kind == ZEND_AST_CLASS) { in ast_to_zval()
1058 AST_NODE_SET_PROP_FLAGS(obj, ast->attr); in ast_to_zval()
1061 ast_fill_children_ht(children, ast, state); in ast_to_zval()
1063 if (ast->kind == ZEND_AST_PROP_DECL && state->version >= 70) { in ast_to_zval()
1072 …zv, ZEND_AST_PROP_GROUP, ast->attr, zend_ast_get_lineno(ast), state, 3, &type_zval, &prop_group_zv… in ast_to_zval()
1075 …zv, ZEND_AST_PROP_GROUP, ast->attr, zend_ast_get_lineno(ast), state, 2, &type_zval, &prop_group_zv… in ast_to_zval()
1081 if (ast->kind == ZEND_AST_CLASS_CONST_DECL && state->version >= 80) { in ast_to_zval()
1089 …zv, ZEND_AST_CLASS_CONST_GROUP, ast->attr, zend_ast_get_lineno(ast), state, 2, &const_decl_zval, &… in ast_to_zval()
1155 zend_ast *ast; in PHP_FUNCTION() local
1184 ast = get_ast(code, &arena, filename); in PHP_FUNCTION()
1185 if (!ast) { in PHP_FUNCTION()
1192 ast_to_zval(return_value, ast, &state); in PHP_FUNCTION()
1195 zend_ast_destroy(ast); in PHP_FUNCTION()
1203 zend_ast *ast; in PHP_FUNCTION() local
1214 ast = get_ast(code, &arena, filename); in PHP_FUNCTION()
1215 if (!ast) { in PHP_FUNCTION()
1221 ast_to_zval(return_value, ast, &state); in PHP_FUNCTION()
1223 zend_ast_destroy(ast); in PHP_FUNCTION()
1378 PHP_MINFO_FUNCTION(ast) { in PHP_MINFO_FUNCTION() argument
1390 PHP_RINIT_FUNCTION(ast) { in PHP_RINIT_FUNCTION() argument
1395 PHP_RSHUTDOWN_FUNCTION(ast) { in PHP_RSHUTDOWN_FUNCTION() argument
1400 PHP_MINIT_FUNCTION(ast) { in PHP_MINIT_FUNCTION() argument
1546 PHP_MSHUTDOWN_FUNCTION(ast) { in PHP_MSHUTDOWN_FUNCTION() argument
1558 PHP_MINIT(ast),
1559 PHP_MSHUTDOWN(ast),
1560 PHP_RINIT(ast),
1561 PHP_RSHUTDOWN(ast),
1562 PHP_MINFO(ast),
1564 PHP_MODULE_GLOBALS(ast),
1572 ZEND_GET_MODULE(ast)