Commit: e0135014c3b4edaf67312677c440a93133fe6a0c
Author: Dmitry Stogov <dmi...@zend.com> Thu, 7 Nov 2013 10:22:49
+0400
Parents: 9647c61dc101b9d460259fedb3731026f0390eeb
Branches: PHP-5.6
Link:
http://git.php.net/?p=php-src.git;a=commitdiff;h=e0135014c3b4edaf67312677c440a93133fe6a0c
Log:
Renaming
Changed paths:
M Zend/zend_ast.c
M Zend/zend_ast.h
M Zend/zend_language_parser.y
diff --git a/Zend/zend_ast.c b/Zend/zend_ast.c
index 7ebb8d2..7495da3 100644
--- a/Zend/zend_ast.c
+++ b/Zend/zend_ast.c
@@ -23,7 +23,7 @@
#include "zend_API.h"
#include "zend_operators.h"
-ZEND_API zend_ast *zend_ast_create_constant_node(zval *zv)
+ZEND_API zend_ast *zend_ast_create_constant(zval *zv)
{
zend_ast *node = emalloc(sizeof(zend_ast) + sizeof(zval));
node->kind = ZEND_CONST;
@@ -33,7 +33,7 @@ ZEND_API zend_ast *zend_ast_create_constant_node(zval *zv)
return node;
}
-ZEND_API zend_ast* zend_ast_create_node1(uint kind, zend_ast *op0)
+ZEND_API zend_ast* zend_ast_create_unary(uint kind, zend_ast *op0)
{
zend_ast *node = emalloc(sizeof(zend_ast));
node->kind = kind;
@@ -42,7 +42,7 @@ ZEND_API zend_ast* zend_ast_create_node1(uint kind, zend_ast
*op0)
return node;
}
-ZEND_API zend_ast* zend_ast_create_node2(uint kind, zend_ast *op0, zend_ast
*op1)
+ZEND_API zend_ast* zend_ast_create_binary(uint kind, zend_ast *op0, zend_ast
*op1)
{
zend_ast *node = emalloc(sizeof(zend_ast) + sizeof(zend_ast*));
node->kind = kind;
@@ -52,7 +52,7 @@ ZEND_API zend_ast* zend_ast_create_node2(uint kind, zend_ast
*op0, zend_ast *op1
return node;
}
-ZEND_API zend_ast* zend_ast_create_node3(uint kind, zend_ast *op0, zend_ast
*op1, zend_ast *op2)
+ZEND_API zend_ast* zend_ast_create_ternary(uint kind, zend_ast *op0, zend_ast
*op1, zend_ast *op2)
{
zend_ast *node = emalloc(sizeof(zend_ast) + sizeof(zend_ast*) * 2);
node->kind = kind;
@@ -251,7 +251,7 @@ ZEND_API void zend_ast_evaluate(zval *result, zend_ast *ast
TSRMLS_DC)
}
zval_dtor(&op1);
break;
- case ZEND_TERNARY:
+ case ZEND_SELECT:
zend_ast_evaluate(&op1, ast->u.child[0] TSRMLS_CC);
if (zend_is_true(&op1)) {
if (!ast->u.child[1]) {
@@ -287,22 +287,22 @@ ZEND_API zend_ast *zend_ast_copy(zend_ast *ast)
if (ast == NULL) {
return NULL;
} else if (ast->kind == ZEND_CONST) {
- zend_ast *node = zend_ast_create_constant_node(ast->u.val);
+ zend_ast *node = zend_ast_create_constant(ast->u.val);
zval_copy_ctor(node->u.val);
return node;
} else {
switch (ast->children) {
case 1:
- return zend_ast_create_node1(
+ return zend_ast_create_unary(
ast->kind,
zend_ast_copy(ast->u.child[0]));
case 2:
- return zend_ast_create_node2(
+ return zend_ast_create_binary(
ast->kind,
zend_ast_copy(ast->u.child[0]),
zend_ast_copy(ast->u.child[1]));
case 3:
- return zend_ast_create_node3(
+ return zend_ast_create_ternary(
ast->kind,
zend_ast_copy(ast->u.child[0]),
zend_ast_copy(ast->u.child[1]),
diff --git a/Zend/zend_ast.h b/Zend/zend_ast.h
index 4c94cf8..9cdcbf5 100644
--- a/Zend/zend_ast.h
+++ b/Zend/zend_ast.h
@@ -26,15 +26,15 @@ typedef struct _zend_ast zend_ast;
#include "zend.h"
-typedef enum _zend_ast_node_kind {
- /* first 256 node kinds are reserved for opcodes */
+typedef enum _zend_ast_kind {
+ /* first 256 kinds are reserved for opcodes */
ZEND_CONST = 256,
ZEND_BOOL_AND,
ZEND_BOOL_OR,
- ZEND_TERNARY,
+ ZEND_SELECT,
ZEND_UNARY_PLUS,
ZEND_UNARY_MINUS,
-} zend_ast_ode_kind;
+} zend_ast_kind;
struct _zend_ast {
unsigned short kind;
@@ -45,11 +45,11 @@ struct _zend_ast {
} u;
};
-ZEND_API zend_ast *zend_ast_create_constant_node(zval *zv);
+ZEND_API zend_ast *zend_ast_create_constant(zval *zv);
-ZEND_API zend_ast *zend_ast_create_node1(uint kind, zend_ast *op0);
-ZEND_API zend_ast *zend_ast_create_node2(uint kind, zend_ast *op0, zend_ast
*op1);
-ZEND_API zend_ast *zend_ast_create_node3(uint kind, zend_ast *op0, zend_ast
*op1, zend_ast *op2);
+ZEND_API zend_ast *zend_ast_create_unary(uint kind, zend_ast *op0);
+ZEND_API zend_ast *zend_ast_create_binary(uint kind, zend_ast *op0, zend_ast
*op1);
+ZEND_API zend_ast *zend_ast_create_ternary(uint kind, zend_ast *op0, zend_ast
*op1, zend_ast *op2);
ZEND_API int zend_ast_is_ct_constant(zend_ast *ast);
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y
index b6926ea..8041acc 100644
--- a/Zend/zend_language_parser.y
+++ b/Zend/zend_language_parser.y
@@ -956,49 +956,49 @@ static_scalar: /* compile-time evaluated scalars */
;
static_scalar_value:
- common_scalar { $$.u.ast =
zend_ast_create_constant_node(&$1.u.constant); }
- | static_class_name_scalar { $$.u.ast =
zend_ast_create_constant_node(&$1.u.constant); }
- | namespace_name { zend_do_fetch_constant(&$$, NULL,
&$1, ZEND_CT, 1 TSRMLS_CC); $$.u.ast =
zend_ast_create_constant_node(&$$.u.constant); }
- | 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_node(&$$.u.constant); }
- | 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_node(&$$.u.constant); }
- | static_class_constant { $$.u.ast =
zend_ast_create_constant_node(&$1.u.constant); }
- | T_CLASS_C { $$.u.ast =
zend_ast_create_constant_node(&$1.u.constant); }
- | T_ARRAY '(' static_array_pair_list ')' { $$ = $3;
Z_TYPE($$.u.constant) = IS_CONSTANT_ARRAY; $$.u.ast =
zend_ast_create_constant_node(&$$.u.constant); }
- | '[' static_array_pair_list ']' { $$ = $2; Z_TYPE($$.u.constant)
= IS_CONSTANT_ARRAY; $$.u.ast = zend_ast_create_constant_node(&$$.u.constant); }
+ common_scalar { $$.u.ast =
zend_ast_create_constant(&$1.u.constant); }
+ | static_class_name_scalar { $$.u.ast =
zend_ast_create_constant(&$1.u.constant); }
+ | namespace_name { zend_do_fetch_constant(&$$, NULL,
&$1, ZEND_CT, 1 TSRMLS_CC); $$.u.ast =
zend_ast_create_constant(&$$.u.constant); }
+ | 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); }
+ | 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); }
+ | static_class_constant { $$.u.ast =
zend_ast_create_constant(&$1.u.constant); }
+ | T_CLASS_C { $$.u.ast =
zend_ast_create_constant(&$1.u.constant); }
+ | T_ARRAY '(' static_array_pair_list ')' { $$ = $3;
Z_TYPE($$.u.constant) = IS_CONSTANT_ARRAY; $$.u.ast =
zend_ast_create_constant(&$$.u.constant); }
+ | '[' static_array_pair_list ']' { $$ = $2; Z_TYPE($$.u.constant)
= IS_CONSTANT_ARRAY; $$.u.ast = zend_ast_create_constant(&$$.u.constant); }
| static_operation { $$ = $1; }
;
static_operation:
- static_scalar_value '+' static_scalar_value { $$.u.ast =
zend_ast_create_node2(ZEND_ADD, $1.u.ast, $3.u.ast); }
- | static_scalar_value '-' static_scalar_value { $$.u.ast =
zend_ast_create_node2(ZEND_SUB, $1.u.ast, $3.u.ast); }
- | static_scalar_value '*' static_scalar_value { $$.u.ast =
zend_ast_create_node2(ZEND_MUL, $1.u.ast, $3.u.ast); }
- | static_scalar_value '/' static_scalar_value { $$.u.ast =
zend_ast_create_node2(ZEND_DIV, $1.u.ast, $3.u.ast); }
- | static_scalar_value '%' static_scalar_value { $$.u.ast =
zend_ast_create_node2(ZEND_MOD, $1.u.ast, $3.u.ast); }
- | '!' static_scalar_value { $$.u.ast =
zend_ast_create_node1(ZEND_BOOL_NOT, $2.u.ast); }
- | '~' static_scalar_value { $$.u.ast =
zend_ast_create_node1(ZEND_BW_NOT, $2.u.ast); }
- | static_scalar_value '|' static_scalar_value { $$.u.ast =
zend_ast_create_node2(ZEND_BW_OR, $1.u.ast, $3.u.ast); }
- | static_scalar_value '&' static_scalar_value { $$.u.ast =
zend_ast_create_node2(ZEND_BW_AND, $1.u.ast, $3.u.ast); }
- | static_scalar_value '^' static_scalar_value { $$.u.ast =
zend_ast_create_node2(ZEND_BW_XOR, $1.u.ast, $3.u.ast); }
- | static_scalar_value T_SL static_scalar_value { $$.u.ast =
zend_ast_create_node2(ZEND_SL, $1.u.ast, $3.u.ast); }
- | static_scalar_value T_SR static_scalar_value { $$.u.ast =
zend_ast_create_node2(ZEND_SR, $1.u.ast, $3.u.ast); }
- | static_scalar_value '.' static_scalar_value { $$.u.ast =
zend_ast_create_node2(ZEND_CONCAT, $1.u.ast, $3.u.ast); }
- | static_scalar_value T_LOGICAL_XOR static_scalar_value {
$$.u.ast = zend_ast_create_node2(ZEND_BOOL_XOR, $1.u.ast, $3.u.ast); }
- | static_scalar_value T_LOGICAL_AND static_scalar_value {
$$.u.ast = zend_ast_create_node2(ZEND_BOOL_AND, $1.u.ast, $3.u.ast); }
- | static_scalar_value T_LOGICAL_OR static_scalar_value { $$.u.ast
= zend_ast_create_node2(ZEND_BOOL_OR, $1.u.ast, $3.u.ast); }
- | static_scalar_value T_BOOLEAN_AND static_scalar_value {
$$.u.ast = zend_ast_create_node2(ZEND_BOOL_AND, $1.u.ast, $3.u.ast); }
- | static_scalar_value T_BOOLEAN_OR static_scalar_value { $$.u.ast
= zend_ast_create_node2(ZEND_BOOL_OR, $1.u.ast, $3.u.ast); }
- | static_scalar_value T_IS_IDENTICAL static_scalar_value {
$$.u.ast = zend_ast_create_node2(ZEND_IS_IDENTICAL, $1.u.ast, $3.u.ast); }
- | static_scalar_value T_IS_NOT_IDENTICAL static_scalar_value {
$$.u.ast = zend_ast_create_node2(ZEND_IS_NOT_IDENTICAL, $1.u.ast, $3.u.ast); }
- | static_scalar_value T_IS_EQUAL static_scalar_value { $$.u.ast =
zend_ast_create_node2(ZEND_IS_EQUAL, $1.u.ast, $3.u.ast); }
- | static_scalar_value T_IS_NOT_EQUAL static_scalar_value {
$$.u.ast = zend_ast_create_node2(ZEND_IS_NOT_EQUAL, $1.u.ast, $3.u.ast); }
- | static_scalar_value '<' static_scalar_value { $$.u.ast =
zend_ast_create_node2(ZEND_IS_SMALLER, $1.u.ast, $3.u.ast); }
- | static_scalar_value '>' static_scalar_value { $$.u.ast =
zend_ast_create_node2(ZEND_IS_SMALLER, $3.u.ast, $1.u.ast); }
- | static_scalar_value T_IS_SMALLER_OR_EQUAL static_scalar_value {
$$.u.ast = zend_ast_create_node2(ZEND_IS_SMALLER_OR_EQUAL, $1.u.ast, $3.u.ast);
}
- | static_scalar_value T_IS_GREATER_OR_EQUAL static_scalar_value {
$$.u.ast = zend_ast_create_node2(ZEND_IS_SMALLER_OR_EQUAL, $3.u.ast, $1.u.ast);
}
- | static_scalar_value '?' ':' static_scalar_value { $$.u.ast =
zend_ast_create_node3(ZEND_TERNARY, $1.u.ast, NULL, $4.u.ast); }
- | static_scalar_value '?' static_scalar_value ':'
static_scalar_value { $$.u.ast = zend_ast_create_node3(ZEND_TERNARY, $1.u.ast,
$3.u.ast, $5.u.ast); }
- | '+' static_scalar_value { $$.u.ast =
zend_ast_create_node1(ZEND_UNARY_PLUS, $2.u.ast); }
- | '-' static_scalar_value { $$.u.ast =
zend_ast_create_node1(ZEND_UNARY_MINUS, $2.u.ast); }
+ static_scalar_value '+' static_scalar_value { $$.u.ast =
zend_ast_create_binary(ZEND_ADD, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '-' static_scalar_value { $$.u.ast =
zend_ast_create_binary(ZEND_SUB, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '*' static_scalar_value { $$.u.ast =
zend_ast_create_binary(ZEND_MUL, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '/' static_scalar_value { $$.u.ast =
zend_ast_create_binary(ZEND_DIV, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '%' static_scalar_value { $$.u.ast =
zend_ast_create_binary(ZEND_MOD, $1.u.ast, $3.u.ast); }
+ | '!' static_scalar_value { $$.u.ast =
zend_ast_create_unary(ZEND_BOOL_NOT, $2.u.ast); }
+ | '~' static_scalar_value { $$.u.ast =
zend_ast_create_unary(ZEND_BW_NOT, $2.u.ast); }
+ | static_scalar_value '|' static_scalar_value { $$.u.ast =
zend_ast_create_binary(ZEND_BW_OR, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '&' static_scalar_value { $$.u.ast =
zend_ast_create_binary(ZEND_BW_AND, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '^' static_scalar_value { $$.u.ast =
zend_ast_create_binary(ZEND_BW_XOR, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_SL static_scalar_value { $$.u.ast =
zend_ast_create_binary(ZEND_SL, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_SR static_scalar_value { $$.u.ast =
zend_ast_create_binary(ZEND_SR, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '.' static_scalar_value { $$.u.ast =
zend_ast_create_binary(ZEND_CONCAT, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_LOGICAL_XOR static_scalar_value {
$$.u.ast = zend_ast_create_binary(ZEND_BOOL_XOR, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_LOGICAL_AND static_scalar_value {
$$.u.ast = zend_ast_create_binary(ZEND_BOOL_AND, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_LOGICAL_OR static_scalar_value { $$.u.ast
= zend_ast_create_binary(ZEND_BOOL_OR, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_BOOLEAN_AND static_scalar_value {
$$.u.ast = zend_ast_create_binary(ZEND_BOOL_AND, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_BOOLEAN_OR static_scalar_value { $$.u.ast
= zend_ast_create_binary(ZEND_BOOL_OR, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_IS_IDENTICAL static_scalar_value {
$$.u.ast = zend_ast_create_binary(ZEND_IS_IDENTICAL, $1.u.ast, $3.u.ast); }
+ | 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); }
+ | static_scalar_value T_IS_EQUAL static_scalar_value { $$.u.ast =
zend_ast_create_binary(ZEND_IS_EQUAL, $1.u.ast, $3.u.ast); }
+ | 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); }
+ | static_scalar_value '<' static_scalar_value { $$.u.ast =
zend_ast_create_binary(ZEND_IS_SMALLER, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '>' static_scalar_value { $$.u.ast =
zend_ast_create_binary(ZEND_IS_SMALLER, $3.u.ast, $1.u.ast); }
+ | 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); }
+ | 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); }
+ | static_scalar_value '?' ':' static_scalar_value { $$.u.ast =
zend_ast_create_ternary(ZEND_SELECT, $1.u.ast, NULL, $4.u.ast); }
+ | 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); }
+ | '+' static_scalar_value { $$.u.ast =
zend_ast_create_unary(ZEND_UNARY_PLUS, $2.u.ast); }
+ | '-' static_scalar_value { $$.u.ast =
zend_ast_create_unary(ZEND_UNARY_MINUS, $2.u.ast); }
| '(' static_scalar_value ')' { $$ = $2; }
;
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php