mirror of
https://github.com/php/php-src.git
synced 2024-11-28 12:26:37 +08:00
Get rid of chval - it's really not necessary and seems to be confusing people
This commit is contained in:
parent
9a751419cf
commit
0d6a794d85
@ -681,11 +681,11 @@ encaps_list:
|
|||||||
| encaps_list T_ENCAPSED_AND_WHITESPACE { do_add_string(&$$, &$1, &$2 CLS_CC); }
|
| encaps_list T_ENCAPSED_AND_WHITESPACE { do_add_string(&$$, &$1, &$2 CLS_CC); }
|
||||||
| encaps_list T_CHARACTER { do_add_char(&$$, &$1, &$2 CLS_CC); }
|
| encaps_list T_CHARACTER { do_add_char(&$$, &$1, &$2 CLS_CC); }
|
||||||
| encaps_list T_BAD_CHARACTER { do_add_string(&$$, &$1, &$2 CLS_CC); }
|
| encaps_list T_BAD_CHARACTER { do_add_string(&$$, &$1, &$2 CLS_CC); }
|
||||||
| encaps_list '[' { $2.u.constant.value.chval = '['; do_add_char(&$$, &$1, &$2 CLS_CC); }
|
| encaps_list '[' { $2.u.constant.value.lval = (long) '['; do_add_char(&$$, &$1, &$2 CLS_CC); }
|
||||||
| encaps_list ']' { $2.u.constant.value.chval = ']'; do_add_char(&$$, &$1, &$2 CLS_CC); }
|
| encaps_list ']' { $2.u.constant.value.lval = (long) ']'; do_add_char(&$$, &$1, &$2 CLS_CC); }
|
||||||
| encaps_list '{' { $2.u.constant.value.chval = '{'; do_add_char(&$$, &$1, &$2 CLS_CC); }
|
| encaps_list '{' { $2.u.constant.value.lval = (long) '{'; do_add_char(&$$, &$1, &$2 CLS_CC); }
|
||||||
| encaps_list '}' { $2.u.constant.value.chval = '}'; do_add_char(&$$, &$1, &$2 CLS_CC); }
|
| encaps_list '}' { $2.u.constant.value.lval = (long) '}'; do_add_char(&$$, &$1, &$2 CLS_CC); }
|
||||||
| encaps_list T_OBJECT_OPERATOR { znode tmp; $2.u.constant.value.chval = '-'; do_add_char(&tmp, &$1, &$2 CLS_CC); $2.u.constant.value.chval = '>'; do_add_char(&$$, &tmp, &$2 CLS_CC); }
|
| encaps_list T_OBJECT_OPERATOR { znode tmp; $2.u.constant.value.lval = (long) '-'; do_add_char(&tmp, &$1, &$2 CLS_CC); $2.u.constant.value.lval = (long) '>'; do_add_char(&$$, &tmp, &$2 CLS_CC); }
|
||||||
| /* empty */ { do_init_string(&$$ CLS_CC); }
|
| /* empty */ { do_init_string(&$$ CLS_CC); }
|
||||||
|
|
||||||
;
|
;
|
||||||
|
@ -1556,7 +1556,7 @@ ESCAPED_AND_WHITESPACE [\n\t\r #'.:;,()|^&+-/*=%!~<>?@]+
|
|||||||
|
|
||||||
|
|
||||||
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"$"[^a-zA-Z_\x7f-\xff{] {
|
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"$"[^a-zA-Z_\x7f-\xff{] {
|
||||||
zendlval->value.chval = yytext[0];
|
zendlval->value.lval = (long) yytext[0];
|
||||||
if (yyleng == 2) {
|
if (yyleng == 2) {
|
||||||
yyless(1);
|
yyless(1);
|
||||||
/*unput(yytext[1]);
|
/*unput(yytext[1]);
|
||||||
@ -1568,12 +1568,12 @@ ESCAPED_AND_WHITESPACE [\n\t\r #'.:;,()|^&+-/*=%!~<>?@]+
|
|||||||
|
|
||||||
|
|
||||||
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>{ENCAPSED_TOKENS} {
|
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>{ENCAPSED_TOKENS} {
|
||||||
zendlval->value.chval = yytext[0];
|
zendlval->value.lval = (long) yytext[0];
|
||||||
return yytext[0];
|
return yytext[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"{$" {
|
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"{$" {
|
||||||
zendlval->value.chval = yytext[0];
|
zendlval->value.lval = (long) yytext[0];
|
||||||
yy_push_state(ST_IN_SCRIPTING);
|
yy_push_state(ST_IN_SCRIPTING);
|
||||||
/*unput('$');*/
|
/*unput('$');*/
|
||||||
yyless(1);
|
yyless(1);
|
||||||
@ -1582,54 +1582,54 @@ ESCAPED_AND_WHITESPACE [\n\t\r #'.:;,()|^&+-/*=%!~<>?@]+
|
|||||||
|
|
||||||
|
|
||||||
<ST_SINGLE_QUOTE>"\\'" {
|
<ST_SINGLE_QUOTE>"\\'" {
|
||||||
zendlval->value.chval='\'';
|
zendlval->value.lval = (long) '\'';
|
||||||
return T_CHARACTER;
|
return T_CHARACTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
<ST_SINGLE_QUOTE>"\\\\" {
|
<ST_SINGLE_QUOTE>"\\\\" {
|
||||||
zendlval->value.chval='\\';
|
zendlval->value.lval = (long)'\\';
|
||||||
return T_CHARACTER;
|
return T_CHARACTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
<ST_DOUBLE_QUOTES>"\\\"" {
|
<ST_DOUBLE_QUOTES>"\\\"" {
|
||||||
zendlval->value.chval='"';
|
zendlval->value.lval = (long) '"';
|
||||||
return T_CHARACTER;
|
return T_CHARACTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
<ST_BACKQUOTE>"\\`" {
|
<ST_BACKQUOTE>"\\`" {
|
||||||
zendlval->value.chval='`';
|
zendlval->value.lval = (long) '`';
|
||||||
return T_CHARACTER;
|
return T_CHARACTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"\\"[0-7]{1,3} {
|
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"\\"[0-7]{1,3} {
|
||||||
zendlval->value.chval = (char) strtol (yytext+1, NULL, 8);
|
zendlval->value.lval = strtol(yytext+1, NULL, 8);
|
||||||
return T_CHARACTER;
|
return T_CHARACTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"\\x"[0-9A-Fa-f]{1,2} {
|
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"\\x"[0-9A-Fa-f]{1,2} {
|
||||||
zendlval->value.chval = (char) strtol (yytext+2, NULL, 16);
|
zendlval->value.lval = strtol (yytext+2, NULL, 16);
|
||||||
return T_CHARACTER;
|
return T_CHARACTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"\\". {
|
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"\\". {
|
||||||
switch (yytext[1]) {
|
switch (yytext[1]) {
|
||||||
case 'n':
|
case 'n':
|
||||||
zendlval->value.chval='\n';
|
zendlval->value.lval = (long) '\n';
|
||||||
break;
|
break;
|
||||||
case 't':
|
case 't':
|
||||||
zendlval->value.chval='\t';
|
zendlval->value.lval = (long) '\t';
|
||||||
break;
|
break;
|
||||||
case 'r':
|
case 'r':
|
||||||
zendlval->value.chval='\r';
|
zendlval->value.lval = (long) '\r';
|
||||||
break;
|
break;
|
||||||
case '\\':
|
case '\\':
|
||||||
zendlval->value.chval='\\';
|
zendlval->value.lval = (long) '\\';
|
||||||
break;
|
break;
|
||||||
case '$':
|
case '$':
|
||||||
zendlval->value.chval=yytext[1];
|
zendlval->value.lval = (long) yytext[1];
|
||||||
break;
|
break;
|
||||||
case '{':
|
case '{':
|
||||||
zendlval->value.chval=yytext[1];
|
zendlval->value.lval = (long) yytext[1];
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
zendlval->value.str.val = estrndup(yytext,yyleng);
|
zendlval->value.str.val = estrndup(yytext,yyleng);
|
||||||
|
@ -159,7 +159,6 @@ typedef union _zvalue_value {
|
|||||||
char *val;
|
char *val;
|
||||||
int len;
|
int len;
|
||||||
} str;
|
} str;
|
||||||
char chval; /* char value */
|
|
||||||
HashTable *ht; /* hash table value */
|
HashTable *ht; /* hash table value */
|
||||||
struct {
|
struct {
|
||||||
zend_class_entry *ce;
|
zend_class_entry *ce;
|
||||||
|
@ -880,7 +880,7 @@ ZEND_API int add_char_to_string(zval *result, zval *op1, zval *op2)
|
|||||||
{
|
{
|
||||||
result->value.str.len = op1->value.str.len + 1;
|
result->value.str.len = op1->value.str.len + 1;
|
||||||
result->value.str.val = (char *) erealloc(op1->value.str.val, result->value.str.len+1);
|
result->value.str.val = (char *) erealloc(op1->value.str.val, result->value.str.len+1);
|
||||||
result->value.str.val[result->value.str.len - 1] = op2->value.chval;
|
result->value.str.val[result->value.str.len - 1] = (char) op2->value.lval;
|
||||||
result->value.str.val[result->value.str.len] = 0;
|
result->value.str.val[result->value.str.len] = 0;
|
||||||
result->type = IS_STRING;
|
result->type = IS_STRING;
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
|
Loading…
Reference in New Issue
Block a user