Lines Matching refs:ast

136 ZEND_DECLARE_MODULE_GLOBALS(ast)
375 zend_ast *ast; in get_ast() local
377 ast = zend_compile_string_to_ast(code, ast_arena, filename); in get_ast()
379 return ast; in get_ast()
385 zend_ast *ast; in get_ast()
394 CG(ast) = NULL; in get_ast()
399 zend_ast_destroy(CG(ast)); in get_ast()
401 CG(ast) = NULL; in get_ast()
405 ast = CG(ast); in get_ast()
413 return ast; in get_ast()
439 static inline zend_bool ast_is_name(zend_ast *ast, zend_ast *parent, uint32_t i) { in ast_is_name() argument
440 if (!ast) { in ast_is_name()
443 if (ast->kind != ZEND_AST_ZVAL || Z_TYPE_P(zend_ast_get_zval(ast)) != IS_STRING) { in ast_is_name()
502 static inline zend_bool ast_is_type(zend_ast *ast, zend_ast *parent, uint32_t i) { in ast_is_type() argument
540 static inline zend_bool ast_is_var_name(zend_ast *ast, zend_ast *parent, uint32_t i) { in ast_is_var_name() argument
542 || (parent->kind == ZEND_AST_CATCH && i == 1 && ast != NULL); in ast_is_var_name()
546 static inline zend_bool ast_should_normalize_list(zend_ast *ast, zend_ast *parent, uint32_t i) { in ast_should_normalize_list() argument
547 if (ast && ast->kind == ZEND_AST_STMT_LIST) { in ast_should_normalize_list()
557 return ast != NULL; in ast_should_normalize_list()
624 static inline zend_ast **ast_get_children(zend_ast *ast, ast_state_info_t *state, uint32_t *count) { in ast_get_children() argument
625 if (ast_kind_is_decl(ast->kind)) { in ast_get_children()
626 zend_ast_decl *decl = (zend_ast_decl *) ast; in ast_get_children()
635 } else if (zend_ast_is_list(ast)) { in ast_get_children()
636 zend_ast_list *list = zend_ast_get_list(ast); in ast_get_children()
640 *count = zend_ast_get_num_children(ast); in ast_get_children()
641 return ast->child; in ast_get_children()
645 static void ast_to_zval(zval *zv, zend_ast *ast, ast_state_info_t *state);
685 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
706 && ast_is_type(child, ast, i) in ast_name_to_zval()
726 static void ast_fill_children_ht(HashTable *ht, zend_ast *ast, ast_state_info_t *state) { in ast_fill_children_ht() argument
728 zend_bool is_list = zend_ast_is_list(ast); in ast_fill_children_ht()
729 zend_ast **children = ast_get_children(ast, state, &count); in ast_fill_children_ht()
730 const zend_ast_kind ast_kind = ast->kind; in ast_fill_children_ht()
808 if (ast_is_name(child, ast, i)) { in ast_fill_children_ht()
809 ast_name_to_zval(child, ast, &child_zv, i, state); in ast_fill_children_ht()
815 } else if (ast_is_var_name(child, ast, i)) { in ast_fill_children_ht()
817 } else if (ast_should_normalize_list(child, ast, i)) { in ast_fill_children_ht()
825 &child_zv, ZEND_AST_STMT_LIST, 0, zend_ast_get_lineno(ast), state, 0); in ast_fill_children_ht()
923 static void ast_to_zval(zval *zv, zend_ast *ast, ast_state_info_t *state) { in ast_to_zval() argument
926 if (ast == NULL) { in ast_to_zval()
931 if (ast->kind == ZEND_AST_ZVAL) { in ast_to_zval()
932 ZVAL_COPY(zv, zend_ast_get_zval(ast)); in ast_to_zval()
936 switch (ast->kind) { in ast_to_zval()
939 ast->attr = ast_assign_op_to_binary_op(ast->attr); in ast_to_zval()
943 ast->kind = ZEND_AST_BINARY_OP; in ast_to_zval()
944 ast->attr = AST_BINARY_IS_GREATER; in ast_to_zval()
947 ast->kind = ZEND_AST_BINARY_OP; in ast_to_zval()
948 ast->attr = AST_BINARY_IS_GREATER_OR_EQUAL; in ast_to_zval()
951 ast->kind = ZEND_AST_BINARY_OP; in ast_to_zval()
952 ast->attr = AST_BINARY_BOOL_OR; in ast_to_zval()
955 ast->kind = ZEND_AST_BINARY_OP; in ast_to_zval()
956 ast->attr = AST_BINARY_BOOL_AND; in ast_to_zval()
959 ast->kind = ZEND_AST_BINARY_OP; in ast_to_zval()
960 ast->attr = AST_BINARY_COALESCE; in ast_to_zval()
963 ast->kind = ZEND_AST_UNARY_OP; in ast_to_zval()
964 ast->attr = AST_SILENCE; in ast_to_zval()
967 ast->kind = ZEND_AST_UNARY_OP; in ast_to_zval()
968 ast->attr = AST_PLUS; in ast_to_zval()
971 ast->kind = ZEND_AST_UNARY_OP; in ast_to_zval()
972 ast->attr = AST_MINUS; in ast_to_zval()
979 ast->child[0]->attr = ast->attr; in ast_to_zval()
980 ast_to_zval(zv, ast->child[0], state); in ast_to_zval()
990 ast_to_zval(zv, ast->child[1], state); in ast_to_zval()
993 AST_NODE_SET_PROP_FLAGS(Z_OBJ_P(zv), ast->attr); in ast_to_zval()
998 ast->kind = ZEND_AST_ASSIGN_OP; in ast_to_zval()
999 ast->attr = AST_BINARY_COALESCE; in ast_to_zval()
1004 ast_to_zval(&name_zval, ast->child[0], state); in ast_to_zval()
1007 … &class_name_zval, AST_NAME, ast->child[0]->attr, zend_ast_get_lineno(ast), state, 1, &name_zval); in ast_to_zval()
1011 … zv, ZEND_AST_CLASS_CONST, 0, zend_ast_get_lineno(ast), state, 2, &class_name_zval, &const_zval); in ast_to_zval()
1017 if (ast->attr == ZEND_PARENTHESIZED_CONCAT) { in ast_to_zval()
1018 ast->attr = ZEND_CONCAT; in ast_to_zval()
1026 zend_ast *const_name_ast = ast->child[1]; in ast_to_zval()
1029 zend_ast *class_name_ast = ast->child[0]; in ast_to_zval()
1043 zv, ZEND_AST_CLASS_NAME, 0, zend_ast_get_lineno(ast), state, 1, &class_name_zval); in ast_to_zval()
1055 zend_ast_kind kind = ast->kind; in ast_to_zval()
1058 AST_NODE_SET_PROP_LINENO(obj, zend_ast_get_lineno(ast)); in ast_to_zval()
1064 zend_ast_decl *decl = (zend_ast_decl *) ast; in ast_to_zval()
1103 AST_NODE_SET_PROP_FLAGS(obj, ast->attr); in ast_to_zval()
1106 ast_fill_children_ht(children, ast, state); in ast_to_zval()
1108 if (ast->kind == ZEND_AST_PROP_DECL && state->version >= 70) { in ast_to_zval()
1117 …zv, ZEND_AST_PROP_GROUP, ast->attr, zend_ast_get_lineno(ast), state, 3, &type_zval, &prop_group_zv… in ast_to_zval()
1120 …zv, ZEND_AST_PROP_GROUP, ast->attr, zend_ast_get_lineno(ast), state, 2, &type_zval, &prop_group_zv… in ast_to_zval()
1126 if (ast->kind == ZEND_AST_CLASS_CONST_DECL && state->version >= 80) { in ast_to_zval()
1134 …zv, ZEND_AST_CLASS_CONST_GROUP, ast->attr, zend_ast_get_lineno(ast), state, 2, &const_decl_zval, &… in ast_to_zval()
1200 zend_ast *ast; in PHP_FUNCTION() local
1229 ast = get_ast(code, &arena, filename); in PHP_FUNCTION()
1230 if (!ast) { in PHP_FUNCTION()
1237 ast_to_zval(return_value, ast, &state); in PHP_FUNCTION()
1240 zend_ast_destroy(ast); in PHP_FUNCTION()
1248 zend_ast *ast; in PHP_FUNCTION() local
1259 ast = get_ast(code, &arena, filename); in PHP_FUNCTION()
1260 if (!ast) { in PHP_FUNCTION()
1266 ast_to_zval(return_value, ast, &state); in PHP_FUNCTION()
1268 zend_ast_destroy(ast); in PHP_FUNCTION()
1423 PHP_MINFO_FUNCTION(ast) { in PHP_MINFO_FUNCTION() argument
1435 PHP_RINIT_FUNCTION(ast) { in PHP_RINIT_FUNCTION() argument
1440 PHP_RSHUTDOWN_FUNCTION(ast) { in PHP_RSHUTDOWN_FUNCTION() argument
1445 PHP_MINIT_FUNCTION(ast) { in PHP_MINIT_FUNCTION() argument
1591 PHP_MSHUTDOWN_FUNCTION(ast) { in PHP_MSHUTDOWN_FUNCTION() argument
1603 PHP_MINIT(ast),
1604 PHP_MSHUTDOWN(ast),
1605 PHP_RINIT(ast),
1606 PHP_RSHUTDOWN(ast),
1607 PHP_MINFO(ast),
1609 PHP_MODULE_GLOBALS(ast),
1617 ZEND_GET_MODULE(ast)