diff options
Diffstat (limited to 'Zend/zend_language_scanner.l')
| -rw-r--r-- | Zend/zend_language_scanner.l | 288 |
1 files changed, 144 insertions, 144 deletions
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 2ae42a360f..a5beb25b3c 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -416,18 +416,18 @@ static inline int zend_copy_string_value(zval *zendlval, char *str, zend_uint st int32_t consumed = 0; if (type == IS_UNICODE) { - consumed = zend_convert_scanner_output(&zendlval->value.ustr.val, &zendlval->value.ustr.len, str, str_len, &status TSRMLS_CC); + consumed = zend_convert_scanner_output(&Z_USTRVAL_P(zendlval), &Z_USTRLEN_P(zendlval), str, str_len, &status TSRMLS_CC); if (U_FAILURE(status)) { zend_error(E_COMPILE_WARNING,"Illegal or truncated character in input: offset %d, state=%d", consumed, YYSTATE); - efree(zendlval->value.ustr.val); + efree(Z_USTRVAL_P(zendlval)); return 0; } - zendlval->type = IS_UNICODE; + Z_TYPE_P(zendlval) = IS_UNICODE; } else { - zendlval->value.str.val = (char *)estrndup(str, str_len); - zendlval->value.str.len = str_len; - zendlval->type = type; + Z_STRVAL_P(zendlval) = (char *)estrndup(str, str_len); + Z_STRLEN_P(zendlval) = str_len; + Z_TYPE_P(zendlval) = type; } return 1; @@ -786,8 +786,8 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSR zend_bool original_in_compilation = CG(in_compilation); retval_znode.op_type = IS_CONST; - retval_znode.u.constant.type = IS_LONG; - retval_znode.u.constant.value.lval = 1; + Z_TYPE(retval_znode.u.constant) = IS_LONG; + Z_LVAL(retval_znode.u.constant) = 1; retval_znode.u.constant.is_ref = 0; retval_znode.u.constant.refcount = 1; @@ -840,13 +840,13 @@ zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC) zend_op_array *retval; char *opened_path = NULL; - if (filename->type != IS_STRING) { + if (Z_TYPE_P(filename) != IS_STRING) { tmp = *filename; zval_copy_ctor(&tmp); convert_to_string(&tmp); filename = &tmp; } - file_handle.filename = filename->value.str.val; + file_handle.filename = Z_STRVAL_P(filename); file_handle.free_filename = 0; file_handle.type = ZEND_HANDLE_FILENAME; file_handle.opened_path = NULL; @@ -857,7 +857,7 @@ zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC) int dummy = 1; if (!file_handle.opened_path) { - file_handle.opened_path = opened_path = estrndup(filename->value.str.val, filename->value.str.len); + file_handle.opened_path = opened_path = estrndup(Z_STRVAL_P(filename), Z_STRLEN_P(filename)); } zend_hash_add(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1, (void *)&dummy, sizeof(int), NULL); @@ -888,14 +888,14 @@ ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_D } /* enforce two trailing NULLs for flex... */ - STR_REALLOC(str->value.str.val, str->value.str.len+2); + STR_REALLOC(Z_STRVAL_P(str), Z_STRLEN_P(str)+2); - str->value.str.val[str->value.str.len+1]=0; + Z_STRVAL_P(str)[Z_STRLEN_P(str)+1]=0; SCNG(yy_in)=NULL; zend_prepare_scanner_converters(encoding, 0 TSRMLS_CC); - yy_scan_buffer(str->value.str.val, str->value.str.len+2 TSRMLS_CC); + yy_scan_buffer(Z_STRVAL_P(str), Z_STRLEN_P(str)+2 TSRMLS_CC); zend_set_compiled_filename(filename TSRMLS_CC); zend_set_compiled_script_encoding((char*)ucnv_getName(SCNG(output_conv), &status) TSRMLS_CC); @@ -1014,8 +1014,8 @@ int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_ END_EXTERN_C() #define zend_copy_value(zendlval, yytext, yyleng) \ - zendlval->value.str.val = (char *)estrndup(yytext, yyleng); \ - zendlval->value.str.len = yyleng; + Z_STRVAL_P(zendlval) = (char *)estrndup(yytext, yyleng); \ + Z_STRLEN_P(zendlval) = yyleng; int zend_scan_unicode_double_string(zval *zendlval TSRMLS_DC) { @@ -1034,8 +1034,8 @@ int zend_scan_unicode_double_string(zval *zendlval TSRMLS_DC) } /* convert escape sequences */ - s = t = zendlval->value.ustr.val; - end = s+zendlval->value.ustr.len; + s = t = Z_USTRVAL_P(zendlval); + end = s+Z_USTRLEN_P(zendlval); while (s<end) { if (*s==0x5C /*'\\'*/) { s++; @@ -1052,38 +1052,38 @@ int zend_scan_unicode_double_string(zval *zendlval TSRMLS_DC) switch(c) { case 0x6E: /*'n'*/ *t++ = (UChar) 0x0A; /*'\n'*/ - zendlval->value.ustr.len--; + Z_USTRLEN_P(zendlval)--; break; case 0x72: /*'r'*/ *t++ = (UChar) 0x0D; /*'\r'*/ - zendlval->value.ustr.len--; + Z_USTRLEN_P(zendlval)--; break; case 0x74: /*'t'*/ *t++ = (UChar) 0x09; /*'\t'*/ - zendlval->value.ustr.len--; + Z_USTRLEN_P(zendlval)--; break; case 0x5C: /*'\\'*/ case 0x24: /*'$'*/ case 0x22: /*'"'*/ *t++ = *s; - zendlval->value.ustr.len--; + Z_USTRLEN_P(zendlval)--; break; case 0x43: /*'C'*/ { UChar *p = s+1; if (p < end && zend_parse_charname_sequence(&p, end, &codepoint)) { - zendlval->value.ustr.len -= p - s + 1; + Z_USTRLEN_P(zendlval) -= p - s + 1; s = p; if (U_IS_BMP(codepoint)) { *t++ = (UChar) codepoint; } else { *t++ = (UChar) U16_LEAD(codepoint); *t++ = (UChar) U16_TRAIL(codepoint); - zendlval->value.ustr.len++; + Z_USTRLEN_P(zendlval)++; } } else { zend_error(E_COMPILE_WARNING, "Invalid \\C{..} sequence"); - efree(zendlval->value.ustr.val); + efree(Z_USTRVAL_P(zendlval)); return 0; } break; @@ -1091,12 +1091,12 @@ int zend_scan_unicode_double_string(zval *zendlval TSRMLS_DC) case 0x75: /*'u'*/ min_digits = 4; max_digits = 4; - zendlval->value.ustr.len--; + Z_USTRLEN_P(zendlval)--; break; case 0x55: /*'U'*/ min_digits = 6; max_digits = 6; - zendlval->value.ustr.len--; + Z_USTRLEN_P(zendlval)--; break; default: digit = zend_get_octal_digit(*s); @@ -1110,7 +1110,7 @@ int zend_scan_unicode_double_string(zval *zendlval TSRMLS_DC) && (s+1) < end && (digit = zend_get_hex_digit(*(s+1))) >= 0) { min_digits = 1; max_digits = 2; - zendlval->value.ustr.len--; + Z_USTRLEN_P(zendlval)--; s++; n = 1; /* already have one digit */ codepoint = digit; @@ -1135,20 +1135,20 @@ int zend_scan_unicode_double_string(zval *zendlval TSRMLS_DC) if (n < min_digits) { /* can only happen for \u and \U sequences */ zend_error(E_COMPILE_WARNING,"\\%c escape sequence requires exactly %d hexadecimal digits", (char) c, min_digits); - efree(zendlval->value.ustr.val); + efree(Z_USTRVAL_P(zendlval)); return 0; } if (U_IS_BMP(codepoint)) { *t++ = (UChar) codepoint; - zendlval->value.ustr.len -= n; + Z_USTRLEN_P(zendlval) -= n; } else if (codepoint <= 0x10FFFF) { *t++ = (UChar) U16_LEAD(codepoint); *t++ = (UChar) U16_TRAIL(codepoint); - zendlval->value.ustr.len -= n-1; + Z_USTRLEN_P(zendlval) -= n-1; } else { zend_error(E_COMPILE_WARNING,"\\U%06x is above the highest valid codepoint 0x10FFFF", codepoint); - efree(zendlval->value.ustr.val); + efree(Z_USTRVAL_P(zendlval)); return 0; } } else { @@ -1176,8 +1176,8 @@ int zend_scan_unicode_single_string(zval *zendlval TSRMLS_DC) } /* convert escape sequences */ - s = t = zendlval->value.ustr.val; - end = s+zendlval->value.ustr.len; + s = t = Z_USTRVAL_P(zendlval); + end = s+Z_USTRLEN_P(zendlval); while (s<end) { if (*s==0x5C /*'\\'*/) { s++; @@ -1188,24 +1188,24 @@ int zend_scan_unicode_single_string(zval *zendlval TSRMLS_DC) case 0x5C: /*'\\'*/ case 0x27: /*'\''*/ *t++ = *s; - zendlval->value.ustr.len--; + Z_USTRLEN_P(zendlval)--; break; case 0x43: /*'C'*/ { UChar *p = s+1; if (p < end && zend_parse_charname_sequence(&p, end, &codepoint)) { - zendlval->value.ustr.len -= p - s + 1; + Z_USTRLEN_P(zendlval) -= p - s + 1; s = p; if (U_IS_BMP(codepoint)) { *t++ = (UChar) codepoint; } else { *t++ = (UChar) U16_LEAD(codepoint); *t++ = (UChar) U16_TRAIL(codepoint); - zendlval->value.ustr.len++; + Z_USTRLEN_P(zendlval)++; } } else { zend_error(E_COMPILE_WARNING, "Invalid \\C{..} sequence"); - efree(zendlval->value.ustr.val); + efree(Z_USTRVAL_P(zendlval)); return 0; } break; @@ -1216,10 +1216,10 @@ int zend_scan_unicode_single_string(zval *zendlval TSRMLS_DC) if (zend_udigits_to_codepoint(s+1, end, &codepoint, 4)) { *t++ = (UChar) codepoint; s += 4; - zendlval->value.ustr.len -= 5; + Z_USTRLEN_P(zendlval) -= 5; } else { zend_error(E_COMPILE_WARNING,"\\u escape sequence requires exactly 4 hexadecimal digits"); - efree(zendlval->value.ustr.val); + efree(Z_USTRVAL_P(zendlval)); return 0; } break; @@ -1230,20 +1230,20 @@ int zend_scan_unicode_single_string(zval *zendlval TSRMLS_DC) if (zend_udigits_to_codepoint(s+1, end, &codepoint, 6)) { if (U_IS_BMP(codepoint)) { *t++ = (UChar) codepoint; - zendlval->value.ustr.len -= 7; + Z_USTRLEN_P(zendlval) -= 7; } else if (codepoint <= 0x10FFFF) { *t++ = (UChar) U16_LEAD(codepoint); *t++ = (UChar) U16_TRAIL(codepoint); - zendlval->value.ustr.len -= 6; + Z_USTRLEN_P(zendlval) -= 6; } else { zend_error(E_COMPILE_WARNING,"\\U%06x is above the highest valid codepoint 0x10FFFF", codepoint); - efree(zendlval->value.ustr.val); + efree(Z_USTRVAL_P(zendlval)); return 0; } s += 6; } else { zend_error(E_COMPILE_WARNING,"\\U escape sequence requires exactly 6 hexadecimal digits"); - efree(zendlval->value.ustr.val); + efree(Z_USTRVAL_P(zendlval)); return 0; } break; @@ -1268,14 +1268,14 @@ int zend_scan_binary_double_string(zval *zendlval TSRMLS_DC) register char *s, *t; char *end; - zendlval->value.str.val = estrndup(yytext+1, yyleng-2); - zendlval->value.str.len = yyleng-2; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = estrndup(yytext+1, yyleng-2); + Z_STRLEN_P(zendlval) = yyleng-2; + Z_TYPE_P(zendlval) = IS_STRING; HANDLE_NEWLINES(yytext, yyleng); /* convert escape sequences */ - s = t = zendlval->value.str.val; - end = s+zendlval->value.str.len; + s = t = Z_STRVAL_P(zendlval); + end = s+Z_STRLEN_P(zendlval); while (s<end) { if (*s=='\\') { s++; @@ -1285,21 +1285,21 @@ int zend_scan_binary_double_string(zval *zendlval TSRMLS_DC) switch(*s) { case 'n': *t++ = '\n'; - zendlval->value.str.len--; + Z_STRLEN_P(zendlval)--; break; case 'r': *t++ = '\r'; - zendlval->value.str.len--; + Z_STRLEN_P(zendlval)--; break; case 't': *t++ = '\t'; - zendlval->value.str.len--; + Z_STRLEN_P(zendlval)--; break; case '\\': case '$': case '"': *t++ = *s; - zendlval->value.str.len--; + Z_STRLEN_P(zendlval)--; break; default: /* check for an octal */ @@ -1307,26 +1307,26 @@ int zend_scan_binary_double_string(zval *zendlval TSRMLS_DC) char octal_buf[4] = { 0, 0, 0, 0 }; octal_buf[0] = *s; - zendlval->value.str.len--; + Z_STRLEN_P(zendlval)--; if ((s+1)<end && ZEND_IS_OCT(*(s+1))) { octal_buf[1] = *(++s); - zendlval->value.str.len--; + Z_STRLEN_P(zendlval)--; if ((s+1)<end && ZEND_IS_OCT(*(s+1))) { octal_buf[2] = *(++s); - zendlval->value.str.len--; + Z_STRLEN_P(zendlval)--; } } *t++ = (char) strtol(octal_buf, NULL, 8); } else if (*s=='x' && (s+1)<end && ZEND_IS_HEX(*(s+1))) { char hex_buf[3] = { 0, 0, 0}; - zendlval->value.str.len--; /* for the 'x' */ + Z_STRLEN_P(zendlval)--; /* for the 'x' */ hex_buf[0] = *(++s); - zendlval->value.str.len--; + Z_STRLEN_P(zendlval)--; if ((s+1)<end && ZEND_IS_HEX(*(s+1))) { hex_buf[1] = *(++s); - zendlval->value.str.len--; + Z_STRLEN_P(zendlval)--; } *t++ = (char) strtol(hex_buf, NULL, 16); } else { @@ -1350,14 +1350,14 @@ int zend_scan_binary_single_string(zval *zendlval TSRMLS_DC) register char *s, *t; char *end; - zendlval->value.str.val = estrndup(yytext+1, yyleng-2); - zendlval->value.str.len = yyleng-2; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = estrndup(yytext+1, yyleng-2); + Z_STRLEN_P(zendlval) = yyleng-2; + Z_TYPE_P(zendlval) = IS_STRING; HANDLE_NEWLINES(yytext, yyleng); /* convert escape sequences */ - s = t = zendlval->value.str.val; - end = s+zendlval->value.str.len; + s = t = Z_STRVAL_P(zendlval); + end = s+Z_STRLEN_P(zendlval); while (s<end) { if (*s=='\\') { s++; @@ -1368,7 +1368,7 @@ int zend_scan_binary_single_string(zval *zendlval TSRMLS_DC) case '\\': case '\'': *t++ = *s; - zendlval->value.str.len--; + Z_STRLEN_P(zendlval)--; break; default: *t++ = '\\'; @@ -1846,34 +1846,34 @@ NEWLINE ("\r"|"\n"|"\r\n") <ST_IN_SCRIPTING>{LNUM} { errno = 0; - zendlval->value.lval = strtol(yytext, NULL, 0); + Z_LVAL_P(zendlval) = strtol(yytext, NULL, 0); if (errno == ERANGE) { /* overflow */ - zendlval->value.dval = zend_strtod(yytext, NULL); - zendlval->type = IS_DOUBLE; + Z_DVAL_P(zendlval) = zend_strtod(yytext, NULL); + Z_TYPE_P(zendlval) = IS_DOUBLE; return T_DNUMBER; } else { - zendlval->type = IS_LONG; + Z_TYPE_P(zendlval) = IS_LONG; return T_LNUMBER; } } <ST_IN_SCRIPTING>{HNUM} { errno = 0; - zendlval->value.lval = strtoul(yytext, NULL, 16); + Z_LVAL_P(zendlval) = strtoul(yytext, NULL, 16); if (errno == ERANGE) { /* overflow */ /* not trying strtod - it returns trash on 0x-es */ - zendlval->value.lval = LONG_MAX; /* maximal long */ + Z_LVAL_P(zendlval) = LONG_MAX; /* maximal long */ zend_error(E_NOTICE,"Hex number is too big: %s", yytext); } else { - if (zendlval->value.lval < 0) { + if (Z_LVAL_P(zendlval) < 0) { /* maintain consistency with the old way */ - zendlval->value.dval = (unsigned long) zendlval->value.lval; - zendlval->type = IS_DOUBLE; + Z_DVAL_P(zendlval) = (unsigned long) Z_LVAL_P(zendlval); + Z_TYPE_P(zendlval) = IS_DOUBLE; return T_DNUMBER; } - zendlval->type = IS_LONG; + Z_TYPE_P(zendlval) = IS_LONG; } - zendlval->type = IS_LONG; + Z_TYPE_P(zendlval) = IS_LONG; return T_LNUMBER; } @@ -1885,8 +1885,8 @@ NEWLINE ("\r"|"\n"|"\r\n") } <ST_IN_SCRIPTING>{DNUM}|{EXPONENT_DNUM} { - zendlval->value.dval = zend_strtod(yytext, NULL); - zendlval->type = IS_DOUBLE; + Z_DVAL_P(zendlval) = zend_strtod(yytext, NULL); + Z_TYPE_P(zendlval) = IS_DOUBLE; return T_DNUMBER; } @@ -1940,7 +1940,7 @@ NEWLINE ("\r"|"\n"|"\r\n") } else { func_name = (char*)EMPTY_STR; } - zendlval->value.str.len = len; + Z_USTRLEN_P(zendlval) = len; Z_USTRVAL_P(zendlval) = eumalloc(len+1); if (class_name) { u_strcpy(Z_USTRVAL_P(zendlval), (UChar*)class_name); @@ -1951,7 +1951,7 @@ NEWLINE ("\r"|"\n"|"\r\n") Z_USTRVAL_P(zendlval)[0] = 0; } u_strcat(Z_USTRVAL_P(zendlval), (UChar*)func_name); - zendlval->type = IS_UNICODE; + Z_TYPE_P(zendlval) = IS_UNICODE; } else { if (class_name) { len += strlen(class_name) + 2; @@ -1960,21 +1960,21 @@ NEWLINE ("\r"|"\n"|"\r\n") len += strlen(func_name); } - zendlval->value.str.val = emalloc(len+1); - zendlval->value.str.len = sprintf(zendlval->value.str.val, "%s%s%s", + Z_STRVAL_P(zendlval) = emalloc(len+1); + Z_STRLEN_P(zendlval) = sprintf(Z_STRVAL_P(zendlval), "%s%s%s", class_name ? class_name : "", class_name && func_name ? "::" : "", func_name ? func_name : "" ); - zendlval->value.str.len = strlen(zendlval->value.str.val); - zendlval->type = IS_STRING; + Z_STRLEN_P(zendlval) = strlen(Z_STRVAL_P(zendlval)); + Z_TYPE_P(zendlval) = IS_STRING; } return T_METHOD_C; } <ST_IN_SCRIPTING>"__LINE__" { - zendlval->value.lval = CG(zend_lineno); - zendlval->type = IS_LONG; + Z_LVAL_P(zendlval) = CG(zend_lineno); + Z_TYPE_P(zendlval) = IS_LONG; return T_LINE; } @@ -1989,9 +1989,9 @@ NEWLINE ("\r"|"\n"|"\r\n") } <INITIAL>(([^<]|"<"[^?%s<]){1,400})|"<s"|"<" { - zendlval->value.str.val = (char *) estrndup(yytext, yyleng); - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = (char *) estrndup(yytext, yyleng); + Z_STRLEN_P(zendlval) = yyleng; + Z_TYPE_P(zendlval) = IS_STRING; HANDLE_NEWLINES(yytext, yyleng); return T_INLINE_HTML; } @@ -1999,15 +1999,15 @@ NEWLINE ("\r"|"\n"|"\r\n") <INITIAL>"<?"|"<script"{WHITESPACE}+"language"{WHITESPACE}*"="{WHITESPACE}*("php"|"\"php\""|"\'php\'"){WHITESPACE}*">" { HANDLE_NEWLINES(yytext, yyleng); if (CG(short_tags) || yyleng>2) { /* yyleng>2 means it's not <? but <script> */ - zendlval->value.str.val = yytext; /* no copying - intentional */ - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */ + Z_STRLEN_P(zendlval) = yyleng; + Z_TYPE_P(zendlval) = IS_STRING; BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG; } else { - zendlval->value.str.val = (char *) estrndup(yytext, yyleng); - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = (char *) estrndup(yytext, yyleng); + Z_STRLEN_P(zendlval) = yyleng; + Z_TYPE_P(zendlval) = IS_STRING; return T_INLINE_HTML; } } @@ -2015,15 +2015,15 @@ NEWLINE ("\r"|"\n"|"\r\n") <INITIAL>"<%="|"<?=" { if ((yytext[1]=='%' && CG(asp_tags)) || (yytext[1]=='?' && CG(short_tags))) { - zendlval->value.str.val = yytext; /* no copying - intentional */ - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */ + Z_STRLEN_P(zendlval) = yyleng; + Z_TYPE_P(zendlval) = IS_STRING; BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG_WITH_ECHO; } else { - zendlval->value.str.val = (char *) estrndup(yytext, yyleng); - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = (char *) estrndup(yytext, yyleng); + Z_STRLEN_P(zendlval) = yyleng; + Z_TYPE_P(zendlval) = IS_STRING; return T_INLINE_HTML; } } @@ -2031,24 +2031,24 @@ NEWLINE ("\r"|"\n"|"\r\n") <INITIAL>"<%" { if (CG(asp_tags)) { - zendlval->value.str.val = yytext; /* no copying - intentional */ - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */ + Z_STRLEN_P(zendlval) = yyleng; + Z_TYPE_P(zendlval) = IS_STRING; BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG; } else { - zendlval->value.str.val = (char *) estrndup(yytext, yyleng); - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = (char *) estrndup(yytext, yyleng); + Z_STRLEN_P(zendlval) = yyleng; + Z_TYPE_P(zendlval) = IS_STRING; return T_INLINE_HTML; } } <INITIAL>"<?php"([ \t]|{NEWLINE}) { - zendlval->value.str.val = yytext; /* no copying - intentional */ - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */ + Z_STRLEN_P(zendlval) = yyleng; + Z_TYPE_P(zendlval) = IS_STRING; HANDLE_NEWLINE(yytext[yyleng-1]); BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG; @@ -2083,9 +2083,9 @@ NEWLINE ("\r"|"\n"|"\r\n") <ST_IN_SCRIPTING>{WHITESPACE} { - zendlval->value.str.val = yytext; /* no copying - intentional */ - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */ + Z_STRLEN_P(zendlval) = yyleng; + Z_TYPE_P(zendlval) = IS_STRING; HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } @@ -2110,18 +2110,18 @@ NEWLINE ("\r"|"\n"|"\r\n") CG(zend_lineno)++; /* intentional fall through */ default: - zendlval->value.str.val = yytext; /* no copying - intentional */ - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */ + Z_STRLEN_P(zendlval) = yyleng; + Z_TYPE_P(zendlval) = IS_STRING; BEGIN(ST_IN_SCRIPTING); return T_COMMENT; } } <ST_ONE_LINE_COMMENT>{NEWLINE} { - zendlval->value.str.val = yytext; /* no copying - intentional */ - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */ + Z_STRLEN_P(zendlval) = yyleng; + Z_TYPE_P(zendlval) = IS_STRING; BEGIN(ST_IN_SCRIPTING); CG(zend_lineno)++; return T_COMMENT; @@ -2129,9 +2129,9 @@ NEWLINE ("\r"|"\n"|"\r\n") <ST_ONE_LINE_COMMENT>"?>"|"%>" { if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */ - zendlval->value.str.val = yytext; /* no copying - intentional */ - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */ + Z_STRLEN_P(zendlval) = yyleng; + Z_TYPE_P(zendlval) = IS_STRING; yyless(yyleng-2); BEGIN(ST_IN_SCRIPTING); return T_COMMENT; @@ -2177,9 +2177,9 @@ NEWLINE ("\r"|"\n"|"\r\n") } <ST_IN_SCRIPTING>("?>"|"</script"{WHITESPACE}*">"){NEWLINE}? { - zendlval->value.str.val = yytext; /* no copying - intentional */ - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; + Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */ + Z_STRLEN_P(zendlval) = yyleng; + Z_TYPE_P(zendlval) = IS_STRING; BEGIN(INITIAL); return T_CLOSE_TAG; /* implicit ';' at php-end tag */ } @@ -2188,9 +2188,9 @@ NEWLINE ("\r"|"\n"|"\r\n") <ST_IN_SCRIPTING>"%>"{NEWLINE}? { if (CG(asp_tags)) { BEGIN(INITIAL); - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; - zendlval->value.str.val = yytext; /* no copying - intentional */ + Z_STRLEN_P(zendlval) = yyleng; + Z_TYPE_P(zendlval) = IS_STRING; + Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */ return T_CLOSE_TAG; /* implicit ';' at php-end tag */ } else { yyless(1); @@ -2291,8 +2291,8 @@ NEWLINE ("\r"|"\n"|"\r\n") } if (label_len==CG(heredoc_len) && !memcmp(yytext, CG(heredoc), label_len)) { - zendlval->value.str.val = estrndup(yytext, label_len); /* unput destroys yytext */ - zendlval->value.str.len = label_len; + Z_STRVAL_P(zendlval) = estrndup(yytext, label_len); /* unput destroys yytext */ + Z_STRLEN_P(zendlval) = label_len; yyless(yyleng - (yyleng - label_len)); efree(CG(heredoc)); CG(heredoc)=NULL; @@ -2334,7 +2334,7 @@ NEWLINE ("\r"|"\n"|"\r\n") <ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"$"[^a-zA-Z_\x7f-\xff{] { - zendlval->value.lval = (long) yytext[0]; + Z_LVAL_P(zendlval) = (long) yytext[0]; if (yyleng == 2) { yyless(1); } @@ -2343,12 +2343,12 @@ NEWLINE ("\r"|"\n"|"\r\n") <ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>{ENCAPSED_TOKENS} { - zendlval->value.lval = (long) yytext[0]; + Z_LVAL_P(zendlval) = (long) yytext[0]; return yytext[0]; } <ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"{$" { - zendlval->value.lval = (long) yytext[0]; + Z_LVAL_P(zendlval) = (long) yytext[0]; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); yyless(1); return T_CURLY_OPEN; @@ -2356,22 +2356,22 @@ NEWLINE ("\r"|"\n"|"\r\n") <ST_DOUBLE_QUOTES>"\\\"" { - zendlval->value.lval = (long) '"'; + Z_LVAL_P(zendlval) = (long) '"'; return T_CHARACTER; } <ST_BACKQUOTE>"\\`" { - zendlval->value.lval = (long) '`'; + Z_LVAL_P(zendlval) = (long) '`'; return T_CHARACTER; } <ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"\\"[0-7]{1,3} { - zendlval->value.lval = strtol(yytext+1, NULL, 8); + Z_LVAL_P(zendlval) = strtol(yytext+1, NULL, 8); return T_CHARACTER; } <ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"\\x"[0-9A-Fa-f]{1,2} { - zendlval->value.lval = strtol (yytext+2, NULL, 16); + Z_LVAL_P(zendlval) = strtol (yytext+2, NULL, 16); return T_CHARACTER; } @@ -2383,7 +2383,7 @@ NEWLINE ("\r"|"\n"|"\r\n") if (CG(literal_type) == IS_UNICODE) { if (zend_digits_to_codepoint(yytext+2, yytext+yyleng, &codepoint, req_digits)) { if (codepoint <= 0x10FFFF) { - zendlval->value.lval = (long) codepoint; + Z_LVAL_P(zendlval) = (long) codepoint; /* give back if we grabbed more than needed for \u case */ if (yyleng > req_digits + 2) { yyless(req_digits + 2); @@ -2413,7 +2413,7 @@ NEWLINE ("\r"|"\n"|"\r\n") /* safe, since we have } at the end */ yytext[yyleng-1] = 0; if (zend_uchar_from_name(yytext+3, &codepoint)) { - zendlval->value.lval = (long) codepoint; + Z_LVAL_P(zendlval) = (long) codepoint; return T_CHARACTER; } else { zend_error(E_COMPILE_WARNING, "Invalid Unicode character name: '%s'", yytext+3); @@ -2439,19 +2439,19 @@ NEWLINE ("\r"|"\n"|"\r\n") <ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"\\"{ANY_CHAR} { switch (yytext[1]) { case 'n': - zendlval->value.lval = (long) '\n'; + Z_LVAL_P(zendlval) = (long) '\n'; break; case 't': - zendlval->value.lval = (long) '\t'; + Z_LVAL_P(zendlval) = (long) '\t'; break; case 'r': - zendlval->value.lval = (long) '\r'; + Z_LVAL_P(zendlval) = (long) '\r'; break; case '\\': - zendlval->value.lval = (long) '\\'; + Z_LVAL_P(zendlval) = (long) '\\'; break; case '$': - zendlval->value.lval = (long) yytext[1]; + Z_LVAL_P(zendlval) = (long) yytext[1]; break; default: if (!zend_copy_string_value(zendlval, yytext, yyleng, CG(literal_type) TSRMLS_CC)) { |
