diff options
author | Dmitry Stogov <dmitry@zend.com> | 2015-03-04 02:05:28 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2015-03-04 02:05:28 +0300 |
commit | 2fa8d67a5ce59ba9ba6192481e3c2522c3ff5542 (patch) | |
tree | 9d9d57215f756c387722e74d7d1e1c2de3276a1c | |
parent | 2841aa95db84f3563c94c90f84bf7f47ba159a2d (diff) | |
download | php-git-2fa8d67a5ce59ba9ba6192481e3c2522c3ff5542.tar.gz |
Use zend_string* instead of char* for opened_patch handling. Avoid reallocations and improve string reuse.
50 files changed, 3023 insertions, 3047 deletions
diff --git a/Zend/zend.c b/Zend/zend.c index 397fe879ba..50857bc688 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -48,7 +48,7 @@ ZEND_API zend_class_entry *zend_standard_class_def = NULL; ZEND_API size_t (*zend_printf)(const char *format, ...); ZEND_API zend_write_func_t zend_write; -ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path); +ZEND_API FILE *(*zend_fopen)(const char *filename, zend_string **opened_path); ZEND_API int (*zend_stream_open_function)(const char *filename, zend_file_handle *handle); ZEND_API void (*zend_block_interruptions)(void); ZEND_API void (*zend_unblock_interruptions)(void); @@ -57,7 +57,7 @@ ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint size_t (*zend_vspprintf)(char **pbuf, size_t max_len, const char *format, va_list ap); zend_string *(*zend_vstrpprintf)(size_t max_len, const char *format, va_list ap); ZEND_API char *(*zend_getenv)(char *name, size_t name_len); -ZEND_API char *(*zend_resolve_path)(const char *filename, int filename_len); +ZEND_API zend_string *(*zend_resolve_path)(const char *filename, int filename_len); void (*zend_on_timeout)(int seconds); @@ -374,10 +374,10 @@ ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int } /* }}} */ -static FILE *zend_fopen_wrapper(const char *filename, char **opened_path) /* {{{ */ +static FILE *zend_fopen_wrapper(const char *filename, zend_string **opened_path) /* {{{ */ { if (opened_path) { - *opened_path = estrdup(filename); + *opened_path = zend_string_init(filename, strlen(filename), 0); } return fopen(filename, "rb"); } @@ -1303,7 +1303,7 @@ ZEND_API int zend_execute_scripts(int type, zval *retval, int file_count, ...) / op_array = zend_compile_file(file_handle, type); if (file_handle->opened_path) { - zend_hash_str_add_empty_element(&EG(included_files), file_handle->opened_path, strlen(file_handle->opened_path)); + zend_hash_add_empty_element(&EG(included_files), file_handle->opened_path); } zend_destroy_file_handle(file_handle); if (op_array) { diff --git a/Zend/zend.h b/Zend/zend.h index d7b5275c0a..4cf73225b7 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -193,7 +193,7 @@ typedef struct _zend_utility_functions { void (*error_function)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 4, 0); size_t (*printf_function)(const char *format, ...) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 1, 2); size_t (*write_function)(const char *str, size_t str_length); - FILE *(*fopen_function)(const char *filename, char **opened_path); + FILE *(*fopen_function)(const char *filename, zend_string **opened_path); void (*message_handler)(zend_long message, const void *data); void (*block_interruptions)(void); void (*unblock_interruptions)(void); @@ -204,7 +204,7 @@ typedef struct _zend_utility_functions { size_t (*vspprintf_function)(char **pbuf, size_t max_len, const char *format, va_list ap); zend_string *(*vstrpprintf_function)(size_t max_len, const char *format, va_list ap); char *(*getenv_function)(char *name, size_t name_len); - char *(*resolve_path_function)(const char *filename, int filename_len); + zend_string *(*resolve_path_function)(const char *filename, int filename_len); } zend_utility_functions; typedef struct _zend_utility_values { @@ -272,7 +272,7 @@ END_EXTERN_C() BEGIN_EXTERN_C() extern ZEND_API size_t (*zend_printf)(const char *format, ...) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 1, 2); extern ZEND_API zend_write_func_t zend_write; -extern ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path); +extern ZEND_API FILE *(*zend_fopen)(const char *filename, zend_string **opened_path); extern ZEND_API void (*zend_block_interruptions)(void); extern ZEND_API void (*zend_unblock_interruptions)(void); extern ZEND_API void (*zend_ticks_function)(int ticks); @@ -282,7 +282,7 @@ extern ZEND_API int (*zend_stream_open_function)(const char *filename, zend_file extern size_t (*zend_vspprintf)(char **pbuf, size_t max_len, const char *format, va_list ap); extern zend_string *(*zend_vstrpprintf)(size_t max_len, const char *format, va_list ap); extern ZEND_API char *(*zend_getenv)(char *name, size_t name_len); -extern ZEND_API char *(*zend_resolve_path)(const char *filename, int filename_len); +extern ZEND_API zend_string *(*zend_resolve_path)(const char *filename, int filename_len); ZEND_API void zend_error(int type, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3); diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index 02cbf584ba..f3638c6b7b 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.7.5 */ +/* Generated by re2c 0.13.5 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -484,7 +484,6 @@ ZEND_API int zend_multibyte_set_filter(const zend_encoding *onetime_encoding) ZEND_API int open_file_for_scanning(zend_file_handle *file_handle) { - const char *file_path = NULL; char *buf; size_t size, offset = 0; zend_string *compiled_filename; @@ -538,12 +537,11 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle) BEGIN(INITIAL); if (file_handle->opened_path) { - file_path = file_handle->opened_path; + compiled_filename = zend_string_copy(file_handle->opened_path); } else { - file_path = file_handle->filename; + compiled_filename = zend_string_init(file_handle->filename, strlen(file_handle->filename), 0); } - compiled_filename = zend_string_init(file_path, strlen(file_path), 0); zend_set_compiled_filename(compiled_filename); zend_string_release(compiled_filename); @@ -625,7 +623,7 @@ zend_op_array *compile_filename(int type, zval *filename) zend_file_handle file_handle; zval tmp; zend_op_array *retval; - char *opened_path = NULL; + zend_string *opened_path = NULL; if (Z_TYPE_P(filename) != IS_STRING) { tmp = *filename; @@ -642,13 +640,13 @@ zend_op_array *compile_filename(int type, zval *filename) retval = zend_compile_file(&file_handle, type); if (retval && file_handle.handle.stream.handle) { if (!file_handle.opened_path) { - file_handle.opened_path = opened_path = estrndup(Z_STRVAL_P(filename), Z_STRLEN_P(filename)); + file_handle.opened_path = opened_path = zend_string_copy(Z_STR_P(filename)); } - zend_hash_str_add_empty_element(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)); + zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path); if (opened_path) { - efree(opened_path); + zend_string_release(opened_path); } } zend_destroy_file_handle(&file_handle); @@ -1085,7 +1083,7 @@ restart: SCNG(yy_text) = YYCURSOR; -#line 1089 "Zend/zend_language_scanner.c" +#line 1087 "Zend/zend_language_scanner.c" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -1128,17 +1126,18 @@ restart: } /* *********************************** */ yyc_INITIAL: - YYDEBUG(1, *YYCURSOR); + + YYDEBUG(0, *YYCURSOR); YYFILL(7); yych = *YYCURSOR; - if (yych != '<') goto yy5; - YYDEBUG(3, *YYCURSOR); + if (yych != '<') goto yy4; + YYDEBUG(2, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '?') goto yy6; -yy4: - YYDEBUG(4, *YYCURSOR); + if ((yych = *YYCURSOR) == '?') goto yy5; +yy3: + YYDEBUG(3, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1770 "Zend/zend_language_scanner.l" +#line 1768 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1183,25 +1182,25 @@ inline_char_handler: HANDLE_NEWLINES(yytext, yyleng); return T_INLINE_HTML; } -#line 1187 "Zend/zend_language_scanner.c" +#line 1186 "Zend/zend_language_scanner.c" +yy4: + YYDEBUG(4, *YYCURSOR); + yych = *++YYCURSOR; + goto yy3; yy5: YYDEBUG(5, *YYCURSOR); - yych = *++YYCURSOR; - goto yy4; -yy6: - YYDEBUG(6, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'O') { - if (yych == '=') goto yy8; + if (yych == '=') goto yy7; } else { - if (yych <= 'P') goto yy10; - if (yych == 'p') goto yy10; + if (yych <= 'P') goto yy9; + if (yych == 'p') goto yy9; } -yy7: - YYDEBUG(7, *YYCURSOR); +yy6: + YYDEBUG(6, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1761 "Zend/zend_language_scanner.l" +#line 1759 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { BEGIN(ST_IN_SCRIPTING); @@ -1210,60 +1209,60 @@ yy7: goto inline_char_handler; } } -#line 1214 "Zend/zend_language_scanner.c" -yy8: - YYDEBUG(8, *YYCURSOR); +#line 1213 "Zend/zend_language_scanner.c" +yy7: + YYDEBUG(7, *YYCURSOR); ++YYCURSOR; - YYDEBUG(9, *YYCURSOR); + YYDEBUG(8, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1748 "Zend/zend_language_scanner.l" +#line 1746 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG_WITH_ECHO; } -#line 1225 "Zend/zend_language_scanner.c" +#line 1224 "Zend/zend_language_scanner.c" +yy9: + YYDEBUG(9, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy11; + if (yych == 'h') goto yy11; yy10: YYDEBUG(10, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy12; - if (yych == 'h') goto yy12; + YYCURSOR = YYMARKER; + goto yy6; yy11: YYDEBUG(11, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy7; + yych = *++YYCURSOR; + if (yych == 'P') goto yy12; + if (yych != 'p') goto yy10; yy12: YYDEBUG(12, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy13; - if (yych != 'p') goto yy11; -yy13: - YYDEBUG(13, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= '\f') { - if (yych <= 0x08) goto yy11; - if (yych >= '\v') goto yy11; + if (yych <= 0x08) goto yy10; + if (yych >= '\v') goto yy10; } else { - if (yych <= '\r') goto yy16; - if (yych != ' ') goto yy11; + if (yych <= '\r') goto yy15; + if (yych != ' ') goto yy10; } +yy13: + YYDEBUG(13, *YYCURSOR); + ++YYCURSOR; yy14: YYDEBUG(14, *YYCURSOR); - ++YYCURSOR; -yy15: - YYDEBUG(15, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1754 "Zend/zend_language_scanner.l" +#line 1752 "Zend/zend_language_scanner.l" { HANDLE_NEWLINE(yytext[yyleng-1]); BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG; } -#line 1262 "Zend/zend_language_scanner.c" -yy16: - YYDEBUG(16, *YYCURSOR); +#line 1261 "Zend/zend_language_scanner.c" +yy15: + YYDEBUG(15, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy14; - goto yy15; + if ((yych = *YYCURSOR) == '\n') goto yy13; + goto yy14; /* *********************************** */ yyc_ST_BACKQUOTE: { @@ -1301,34 +1300,34 @@ yyc_ST_BACKQUOTE: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(17, *YYCURSOR); + YYDEBUG(16, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= '_') { - if (yych != '$') goto yy24; + if (yych != '$') goto yy23; } else { - if (yych <= '`') goto yy22; - if (yych == '{') goto yy21; - goto yy24; + if (yych <= '`') goto yy21; + if (yych == '{') goto yy20; + goto yy23; } - YYDEBUG(19, *YYCURSOR); + YYDEBUG(18, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '_') { - if (yych <= '@') goto yy20; - if (yych <= 'Z') goto yy27; - if (yych >= '_') goto yy27; + if (yych <= '@') goto yy19; + if (yych <= 'Z') goto yy26; + if (yych >= '_') goto yy26; } else { if (yych <= 'z') { - if (yych >= 'a') goto yy27; + if (yych >= 'a') goto yy26; } else { - if (yych <= '{') goto yy30; - if (yych >= 0x7F) goto yy27; + if (yych <= '{') goto yy29; + if (yych >= 0x7F) goto yy26; } } -yy20: - YYDEBUG(20, *YYCURSOR); +yy19: + YYDEBUG(19, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2180 "Zend/zend_language_scanner.l" +#line 2178 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1369,119 +1368,118 @@ yy20: zend_scan_escape_string(zendlval, yytext, yyleng, '`'); return T_ENCAPSED_AND_WHITESPACE; } -#line 1373 "Zend/zend_language_scanner.c" +#line 1372 "Zend/zend_language_scanner.c" +yy20: + YYDEBUG(20, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '$') goto yy24; + goto yy19; yy21: YYDEBUG(21, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '$') goto yy25; - goto yy20; -yy22: - YYDEBUG(22, *YYCURSOR); ++YYCURSOR; - YYDEBUG(23, *YYCURSOR); + YYDEBUG(22, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2124 "Zend/zend_language_scanner.l" +#line 2122 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '`'; } -#line 1389 "Zend/zend_language_scanner.c" +#line 1388 "Zend/zend_language_scanner.c" +yy23: + YYDEBUG(23, *YYCURSOR); + yych = *++YYCURSOR; + goto yy19; yy24: YYDEBUG(24, *YYCURSOR); - yych = *++YYCURSOR; - goto yy20; -yy25: - YYDEBUG(25, *YYCURSOR); ++YYCURSOR; - YYDEBUG(26, *YYCURSOR); + YYDEBUG(25, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2111 "Zend/zend_language_scanner.l" +#line 2109 "Zend/zend_language_scanner.l" { Z_LVAL_P(zendlval) = (zend_long) '{'; yy_push_state(ST_IN_SCRIPTING); yyless(1); return T_CURLY_OPEN; } -#line 1406 "Zend/zend_language_scanner.c" -yy27: - YYDEBUG(27, *YYCURSOR); +#line 1405 "Zend/zend_language_scanner.c" +yy26: + YYDEBUG(26, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(28, *YYCURSOR); + YYDEBUG(27, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy27; + goto yy26; } - if (yych == '-') goto yy32; - if (yych <= '@') goto yy29; - if (yych <= '[') goto yy34; -yy29: - YYDEBUG(29, *YYCURSOR); + if (yych == '-') goto yy31; + if (yych == '[') goto yy33; +yy28: + YYDEBUG(28, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1835 "Zend/zend_language_scanner.l" +#line 1833 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1428 "Zend/zend_language_scanner.c" -yy30: - YYDEBUG(30, *YYCURSOR); +#line 1426 "Zend/zend_language_scanner.c" +yy29: + YYDEBUG(29, *YYCURSOR); ++YYCURSOR; - YYDEBUG(31, *YYCURSOR); + YYDEBUG(30, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1559 "Zend/zend_language_scanner.l" +#line 1557 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 1439 "Zend/zend_language_scanner.c" +#line 1437 "Zend/zend_language_scanner.c" +yy31: + YYDEBUG(31, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '>') goto yy35; yy32: YYDEBUG(32, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '>') goto yy36; + YYCURSOR = YYMARKER; + goto yy28; yy33: YYDEBUG(33, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy29; -yy34: - YYDEBUG(34, *YYCURSOR); ++YYCURSOR; - YYDEBUG(35, *YYCURSOR); + YYDEBUG(34, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1828 "Zend/zend_language_scanner.l" +#line 1826 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1460 "Zend/zend_language_scanner.c" -yy36: - YYDEBUG(36, *YYCURSOR); +#line 1458 "Zend/zend_language_scanner.c" +yy35: + YYDEBUG(35, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '_') { - if (yych <= '@') goto yy33; - if (yych <= 'Z') goto yy37; - if (yych <= '^') goto yy33; + if (yych <= '@') goto yy32; + if (yych <= 'Z') goto yy36; + if (yych <= '^') goto yy32; } else { - if (yych <= '`') goto yy33; - if (yych <= 'z') goto yy37; - if (yych <= '~') goto yy33; + if (yych <= '`') goto yy32; + if (yych <= 'z') goto yy36; + if (yych <= '~') goto yy32; } -yy37: - YYDEBUG(37, *YYCURSOR); +yy36: + YYDEBUG(36, *YYCURSOR); ++YYCURSOR; - YYDEBUG(38, *YYCURSOR); + YYDEBUG(37, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1819 "Zend/zend_language_scanner.l" +#line 1817 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1485 "Zend/zend_language_scanner.c" +#line 1483 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_DOUBLE_QUOTES: @@ -1520,36 +1518,36 @@ yyc_ST_DOUBLE_QUOTES: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(39, *YYCURSOR); + YYDEBUG(38, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= '#') { - if (yych == '"') goto yy44; - goto yy46; + if (yych == '"') goto yy43; + goto yy45; } else { - if (yych <= '$') goto yy41; - if (yych == '{') goto yy43; - goto yy46; + if (yych <= '$') goto yy40; + if (yych == '{') goto yy42; + goto yy45; } -yy41: - YYDEBUG(41, *YYCURSOR); +yy40: + YYDEBUG(40, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '_') { - if (yych <= '@') goto yy42; - if (yych <= 'Z') goto yy49; - if (yych >= '_') goto yy49; + if (yych <= '@') goto yy41; + if (yych <= 'Z') goto yy48; + if (yych >= '_') goto yy48; } else { if (yych <= 'z') { - if (yych >= 'a') goto yy49; + if (yych >= 'a') goto yy48; } else { - if (yych <= '{') goto yy52; - if (yych >= 0x7F) goto yy49; + if (yych <= '{') goto yy51; + if (yych >= 0x7F) goto yy48; } } -yy42: - YYDEBUG(42, *YYCURSOR); +yy41: + YYDEBUG(41, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2130 "Zend/zend_language_scanner.l" +#line 2128 "Zend/zend_language_scanner.l" { if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) { YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1; @@ -1598,130 +1596,129 @@ double_quotes_scan_done: zend_scan_escape_string(zendlval, yytext, yyleng, '"'); return T_ENCAPSED_AND_WHITESPACE; } -#line 1602 "Zend/zend_language_scanner.c" +#line 1600 "Zend/zend_language_scanner.c" +yy42: + YYDEBUG(42, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '$') goto yy46; + goto yy41; yy43: YYDEBUG(43, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '$') goto yy47; - goto yy42; -yy44: - YYDEBUG(44, *YYCURSOR); ++YYCURSOR; - YYDEBUG(45, *YYCURSOR); + YYDEBUG(44, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2119 "Zend/zend_language_scanner.l" +#line 2117 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '"'; } -#line 1618 "Zend/zend_language_scanner.c" +#line 1616 "Zend/zend_language_scanner.c" +yy45: + YYDEBUG(45, *YYCURSOR); + yych = *++YYCURSOR; + goto yy41; yy46: YYDEBUG(46, *YYCURSOR); - yych = *++YYCURSOR; - goto yy42; -yy47: - YYDEBUG(47, *YYCURSOR); ++YYCURSOR; - YYDEBUG(48, *YYCURSOR); + YYDEBUG(47, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2111 "Zend/zend_language_scanner.l" +#line 2109 "Zend/zend_language_scanner.l" { Z_LVAL_P(zendlval) = (zend_long) '{'; yy_push_state(ST_IN_SCRIPTING); yyless(1); return T_CURLY_OPEN; } -#line 1635 "Zend/zend_language_scanner.c" -yy49: - YYDEBUG(49, *YYCURSOR); +#line 1633 "Zend/zend_language_scanner.c" +yy48: + YYDEBUG(48, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(50, *YYCURSOR); + YYDEBUG(49, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy49; + goto yy48; } - if (yych == '-') goto yy54; - if (yych <= '@') goto yy51; - if (yych <= '[') goto yy56; -yy51: - YYDEBUG(51, *YYCURSOR); + if (yych == '-') goto yy53; + if (yych == '[') goto yy55; +yy50: + YYDEBUG(50, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1835 "Zend/zend_language_scanner.l" +#line 1833 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1657 "Zend/zend_language_scanner.c" -yy52: - YYDEBUG(52, *YYCURSOR); +#line 1654 "Zend/zend_language_scanner.c" +yy51: + YYDEBUG(51, *YYCURSOR); ++YYCURSOR; - YYDEBUG(53, *YYCURSOR); + YYDEBUG(52, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1559 "Zend/zend_language_scanner.l" +#line 1557 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 1668 "Zend/zend_language_scanner.c" +#line 1665 "Zend/zend_language_scanner.c" +yy53: + YYDEBUG(53, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '>') goto yy57; yy54: YYDEBUG(54, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '>') goto yy58; + YYCURSOR = YYMARKER; + goto yy50; yy55: YYDEBUG(55, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy51; -yy56: - YYDEBUG(56, *YYCURSOR); ++YYCURSOR; - YYDEBUG(57, *YYCURSOR); + YYDEBUG(56, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1828 "Zend/zend_language_scanner.l" +#line 1826 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1689 "Zend/zend_language_scanner.c" -yy58: - YYDEBUG(58, *YYCURSOR); +#line 1686 "Zend/zend_language_scanner.c" +yy57: + YYDEBUG(57, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '_') { - if (yych <= '@') goto yy55; - if (yych <= 'Z') goto yy59; - if (yych <= '^') goto yy55; + if (yych <= '@') goto yy54; + if (yych <= 'Z') goto yy58; + if (yych <= '^') goto yy54; } else { - if (yych <= '`') goto yy55; - if (yych <= 'z') goto yy59; - if (yych <= '~') goto yy55; + if (yych <= '`') goto yy54; + if (yych <= 'z') goto yy58; + if (yych <= '~') goto yy54; } -yy59: - YYDEBUG(59, *YYCURSOR); +yy58: + YYDEBUG(58, *YYCURSOR); ++YYCURSOR; - YYDEBUG(60, *YYCURSOR); + YYDEBUG(59, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1819 "Zend/zend_language_scanner.l" +#line 1817 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1714 "Zend/zend_language_scanner.c" +#line 1711 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_END_HEREDOC: - YYDEBUG(61, *YYCURSOR); + YYDEBUG(60, *YYCURSOR); YYFILL(1); yych = *YYCURSOR; - YYDEBUG(63, *YYCURSOR); + YYDEBUG(62, *YYCURSOR); ++YYCURSOR; - YYDEBUG(64, *YYCURSOR); + YYDEBUG(63, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2097 "Zend/zend_language_scanner.l" +#line 2095 "Zend/zend_language_scanner.l" { zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack)); @@ -1734,7 +1731,7 @@ yyc_ST_END_HEREDOC: BEGIN(ST_IN_SCRIPTING); return T_END_HEREDOC; } -#line 1738 "Zend/zend_language_scanner.c" +#line 1735 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_HEREDOC: { @@ -1772,31 +1769,31 @@ yyc_ST_HEREDOC: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(65, *YYCURSOR); + YYDEBUG(64, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; - if (yych == '$') goto yy67; - if (yych == '{') goto yy69; - goto yy70; -yy67: - YYDEBUG(67, *YYCURSOR); + if (yych == '$') goto yy66; + if (yych == '{') goto yy68; + goto yy69; +yy66: + YYDEBUG(66, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '_') { - if (yych <= '@') goto yy68; - if (yych <= 'Z') goto yy73; - if (yych >= '_') goto yy73; + if (yych <= '@') goto yy67; + if (yych <= 'Z') goto yy72; + if (yych >= '_') goto yy72; } else { if (yych <= 'z') { - if (yych >= 'a') goto yy73; + if (yych >= 'a') goto yy72; } else { - if (yych <= '{') goto yy76; - if (yych >= 0x7F) goto yy73; + if (yych <= '{') goto yy75; + if (yych >= 0x7F) goto yy72; } } -yy68: - YYDEBUG(68, *YYCURSOR); +yy67: + YYDEBUG(67, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2222 "Zend/zend_language_scanner.l" +#line 2220 "Zend/zend_language_scanner.l" { int newline = 0; @@ -1869,108 +1866,107 @@ heredoc_scan_done: zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0); return T_ENCAPSED_AND_WHITESPACE; } -#line 1873 "Zend/zend_language_scanner.c" +#line 1870 "Zend/zend_language_scanner.c" +yy68: + YYDEBUG(68, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '$') goto yy70; + goto yy67; yy69: YYDEBUG(69, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '$') goto yy71; - goto yy68; + goto yy67; yy70: YYDEBUG(70, *YYCURSOR); - yych = *++YYCURSOR; - goto yy68; -yy71: - YYDEBUG(71, *YYCURSOR); ++YYCURSOR; - YYDEBUG(72, *YYCURSOR); + YYDEBUG(71, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2111 "Zend/zend_language_scanner.l" +#line 2109 "Zend/zend_language_scanner.l" { Z_LVAL_P(zendlval) = (zend_long) '{'; yy_push_state(ST_IN_SCRIPTING); yyless(1); return T_CURLY_OPEN; } -#line 1895 "Zend/zend_language_scanner.c" -yy73: - YYDEBUG(73, *YYCURSOR); +#line 1892 "Zend/zend_language_scanner.c" +yy72: + YYDEBUG(72, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(74, *YYCURSOR); + YYDEBUG(73, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy73; + goto yy72; } - if (yych == '-') goto yy78; - if (yych <= '@') goto yy75; - if (yych <= '[') goto yy80; -yy75: - YYDEBUG(75, *YYCURSOR); + if (yych == '-') goto yy77; + if (yych == '[') goto yy79; +yy74: + YYDEBUG(74, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1835 "Zend/zend_language_scanner.l" +#line 1833 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1917 "Zend/zend_language_scanner.c" -yy76: - YYDEBUG(76, *YYCURSOR); +#line 1913 "Zend/zend_language_scanner.c" +yy75: + YYDEBUG(75, *YYCURSOR); ++YYCURSOR; - YYDEBUG(77, *YYCURSOR); + YYDEBUG(76, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1559 "Zend/zend_language_scanner.l" +#line 1557 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 1928 "Zend/zend_language_scanner.c" +#line 1924 "Zend/zend_language_scanner.c" +yy77: + YYDEBUG(77, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '>') goto yy81; yy78: YYDEBUG(78, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '>') goto yy82; + YYCURSOR = YYMARKER; + goto yy74; yy79: YYDEBUG(79, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy75; -yy80: - YYDEBUG(80, *YYCURSOR); ++YYCURSOR; - YYDEBUG(81, *YYCURSOR); + YYDEBUG(80, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1828 "Zend/zend_language_scanner.l" +#line 1826 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1949 "Zend/zend_language_scanner.c" -yy82: - YYDEBUG(82, *YYCURSOR); +#line 1945 "Zend/zend_language_scanner.c" +yy81: + YYDEBUG(81, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '_') { - if (yych <= '@') goto yy79; - if (yych <= 'Z') goto yy83; - if (yych <= '^') goto yy79; + if (yych <= '@') goto yy78; + if (yych <= 'Z') goto yy82; + if (yych <= '^') goto yy78; } else { - if (yych <= '`') goto yy79; - if (yych <= 'z') goto yy83; - if (yych <= '~') goto yy79; + if (yych <= '`') goto yy78; + if (yych <= 'z') goto yy82; + if (yych <= '~') goto yy78; } -yy83: - YYDEBUG(83, *YYCURSOR); +yy82: + YYDEBUG(82, *YYCURSOR); ++YYCURSOR; - YYDEBUG(84, *YYCURSOR); + YYDEBUG(83, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1819 "Zend/zend_language_scanner.l" +#line 1817 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1974 "Zend/zend_language_scanner.c" +#line 1970 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_IN_SCRIPTING: @@ -2009,7 +2005,7 @@ yyc_ST_IN_SCRIPTING: 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, }; - YYDEBUG(85, *YYCURSOR); + YYDEBUG(84, *YYCURSOR); YYFILL(16); yych = *YYCURSOR; YYDEBUG(-1, yych); @@ -2042,32 +2038,32 @@ yyc_ST_IN_SCRIPTING: case 0x1C: case 0x1D: case 0x1E: - case 0x1F: goto yy148; + case 0x1F: goto yy147; case '\t': case '\n': case '\r': - case ' ': goto yy104; - case '!': goto yy119; - case '"': goto yy144; - case '#': goto yy140; - case '$': goto yy130; - case '%': goto yy124; - case '&': goto yy125; - case '\'': goto yy142; - case '(': goto yy113; + case ' ': goto yy103; + case '!': goto yy118; + case '"': goto yy143; + case '#': goto yy139; + case '$': goto yy129; + case '%': goto yy123; + case '&': goto yy124; + case '\'': goto yy141; + case '(': goto yy112; case ')': case ',': case ';': case '@': case '[': case ']': - case '~': goto yy131; - case '*': goto yy122; - case '+': goto yy118; - case '-': goto yy102; - case '.': goto yy109; - case '/': goto yy123; - case '0': goto yy136; + case '~': goto yy130; + case '*': goto yy121; + case '+': goto yy117; + case '-': goto yy101; + case '.': goto yy108; + case '/': goto yy122; + case '0': goto yy135; case '1': case '2': case '3': @@ -2076,594 +2072,594 @@ yyc_ST_IN_SCRIPTING: case '6': case '7': case '8': - case '9': goto yy138; - case ':': goto yy106; - case '<': goto yy120; - case '=': goto yy116; - case '>': goto yy121; - case '?': goto yy110; + case '9': goto yy137; + case ':': goto yy105; + case '<': goto yy119; + case '=': goto yy115; + case '>': goto yy120; + case '?': goto yy109; case 'A': - case 'a': goto yy97; + case 'a': goto yy96; case 'B': - case 'b': goto yy99; + case 'b': goto yy98; case 'C': - case 'c': goto yy91; + case 'c': goto yy90; case 'D': - case 'd': goto yy89; + case 'd': goto yy88; case 'E': - case 'e': goto yy87; + case 'e': goto yy86; case 'F': - case 'f': goto yy90; + case 'f': goto yy89; case 'G': - case 'g': goto yy100; + case 'g': goto yy99; case 'I': - case 'i': goto yy95; + case 'i': goto yy94; case 'L': - case 'l': goto yy117; + case 'l': goto yy116; case 'N': - case 'n': goto yy111; + case 'n': goto yy110; case 'O': - case 'o': goto yy128; + case 'o': goto yy127; case 'P': - case 'p': goto yy101; + case 'p': goto yy100; case 'R': - case 'r': goto yy92; + case 'r': goto yy91; case 'S': - case 's': goto yy98; + case 's': goto yy97; case 'T': - case 't': goto yy94; + case 't': goto yy93; case 'U': - case 'u': goto yy114; + case 'u': goto yy113; case 'V': - case 'v': goto yy112; + case 'v': goto yy111; case 'W': - case 'w': goto yy96; + case 'w': goto yy95; case 'X': - case 'x': goto yy129; + case 'x': goto yy128; case 'Y': - case 'y': goto yy93; - case '\\': goto yy107; - case '^': goto yy127; - case '_': goto yy115; - case '`': goto yy146; - case '{': goto yy132; - case '|': goto yy126; - case '}': goto yy134; - default: goto yy139; - } -yy87: - YYDEBUG(87, *YYCURSOR); + case 'y': goto yy92; + case '\\': goto yy106; + case '^': goto yy126; + case '_': goto yy114; + case '`': goto yy145; + case '{': goto yy131; + case '|': goto yy125; + case '}': goto yy133; + default: goto yy138; + } +yy86: + YYDEBUG(86, *YYCURSOR); ++YYCURSOR; YYDEBUG(-1, yych); switch ((yych = *YYCURSOR)) { case 'C': - case 'c': goto yy698; + case 'c': goto yy697; case 'L': - case 'l': goto yy699; + case 'l': goto yy698; case 'M': - case 'm': goto yy700; + case 'm': goto yy699; case 'N': - case 'n': goto yy701; + case 'n': goto yy700; case 'V': - case 'v': goto yy702; + case 'v': goto yy701; case 'X': - case 'x': goto yy703; - default: goto yy151; + case 'x': goto yy702; + default: goto yy150; } -yy88: - YYDEBUG(88, *YYCURSOR); +yy87: + YYDEBUG(87, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1858 "Zend/zend_language_scanner.l" +#line 1856 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); return T_STRING; } -#line 2162 "Zend/zend_language_scanner.c" -yy89: - YYDEBUG(89, *YYCURSOR); +#line 2158 "Zend/zend_language_scanner.c" +yy88: + YYDEBUG(88, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= 'H') { - if (yych == 'E') goto yy680; - goto yy151; + if (yych == 'E') goto yy679; + goto yy150; } else { - if (yych <= 'I') goto yy681; - if (yych <= 'N') goto yy151; - goto yy682; + if (yych <= 'I') goto yy680; + if (yych <= 'N') goto yy150; + goto yy681; } } else { if (yych <= 'h') { - if (yych == 'e') goto yy680; - goto yy151; + if (yych == 'e') goto yy679; + goto yy150; } else { - if (yych <= 'i') goto yy681; - if (yych == 'o') goto yy682; - goto yy151; + if (yych <= 'i') goto yy680; + if (yych == 'o') goto yy681; + goto yy150; } } -yy90: - YYDEBUG(90, *YYCURSOR); +yy89: + YYDEBUG(89, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= 'N') { - if (yych == 'I') goto yy656; - goto yy151; + if (yych == 'I') goto yy655; + goto yy150; } else { - if (yych <= 'O') goto yy657; - if (yych <= 'T') goto yy151; - goto yy658; + if (yych <= 'O') goto yy656; + if (yych <= 'T') goto yy150; + goto yy657; } } else { if (yych <= 'n') { - if (yych == 'i') goto yy656; - goto yy151; + if (yych == 'i') goto yy655; + goto yy150; } else { - if (yych <= 'o') goto yy657; - if (yych == 'u') goto yy658; - goto yy151; + if (yych <= 'o') goto yy656; + if (yych == 'u') goto yy657; + goto yy150; } } -yy91: - YYDEBUG(91, *YYCURSOR); +yy90: + YYDEBUG(90, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= 'K') { - if (yych == 'A') goto yy621; - goto yy151; + if (yych == 'A') goto yy620; + goto yy150; } else { - if (yych <= 'L') goto yy622; - if (yych <= 'N') goto yy151; - goto yy623; + if (yych <= 'L') goto yy621; + if (yych <= 'N') goto yy150; + goto yy622; } } else { if (yych <= 'k') { - if (yych == 'a') goto yy621; - goto yy151; + if (yych == 'a') goto yy620; + goto yy150; } else { - if (yych <= 'l') goto yy622; - if (yych == 'o') goto yy623; - goto yy151; + if (yych <= 'l') goto yy621; + if (yych == 'o') goto yy622; + goto yy150; } } +yy91: + YYDEBUG(91, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy602; + if (yych == 'e') goto yy602; + goto yy150; yy92: YYDEBUG(92, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy603; - if (yych == 'e') goto yy603; - goto yy151; + if (yych == 'I') goto yy597; + if (yych == 'i') goto yy597; + goto yy150; yy93: YYDEBUG(93, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy598; - if (yych == 'i') goto yy598; - goto yy151; -yy94: - YYDEBUG(94, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'R') { - if (yych == 'H') goto yy586; - if (yych <= 'Q') goto yy151; - goto yy587; + if (yych == 'H') goto yy585; + if (yych <= 'Q') goto yy150; + goto yy586; } else { if (yych <= 'h') { - if (yych <= 'g') goto yy151; - goto yy586; + if (yych <= 'g') goto yy150; + goto yy585; } else { - if (yych == 'r') goto yy587; - goto yy151; + if (yych == 'r') goto yy586; + goto yy150; } } -yy95: - YYDEBUG(95, *YYCURSOR); +yy94: + YYDEBUG(94, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'S') { if (yych <= 'L') { - if (yych == 'F') goto yy533; - goto yy151; + if (yych == 'F') goto yy532; + goto yy150; } else { - if (yych <= 'M') goto yy535; - if (yych <= 'N') goto yy536; - if (yych <= 'R') goto yy151; - goto yy537; + if (yych <= 'M') goto yy534; + if (yych <= 'N') goto yy535; + if (yych <= 'R') goto yy150; + goto yy536; } } else { if (yych <= 'm') { - if (yych == 'f') goto yy533; - if (yych <= 'l') goto yy151; - goto yy535; + if (yych == 'f') goto yy532; + if (yych <= 'l') goto yy150; + goto yy534; } else { - if (yych <= 'n') goto yy536; - if (yych == 's') goto yy537; - goto yy151; + if (yych <= 'n') goto yy535; + if (yych == 's') goto yy536; + goto yy150; } } +yy95: + YYDEBUG(95, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy527; + if (yych == 'h') goto yy527; + goto yy150; yy96: YYDEBUG(96, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy528; - if (yych == 'h') goto yy528; - goto yy151; -yy97: - YYDEBUG(97, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'S') { if (yych <= 'M') { - if (yych == 'B') goto yy510; - goto yy151; + if (yych == 'B') goto yy509; + goto yy150; } else { - if (yych <= 'N') goto yy511; - if (yych <= 'Q') goto yy151; - if (yych <= 'R') goto yy512; - goto yy513; + if (yych <= 'N') goto yy510; + if (yych <= 'Q') goto yy150; + if (yych <= 'R') goto yy511; + goto yy512; } } else { if (yych <= 'n') { - if (yych == 'b') goto yy510; - if (yych <= 'm') goto yy151; - goto yy511; + if (yych == 'b') goto yy509; + if (yych <= 'm') goto yy150; + goto yy510; } else { - if (yych <= 'q') goto yy151; - if (yych <= 'r') goto yy512; - if (yych <= 's') goto yy513; - goto yy151; + if (yych <= 'q') goto yy150; + if (yych <= 'r') goto yy511; + if (yych <= 's') goto yy512; + goto yy150; } } -yy98: - YYDEBUG(98, *YYCURSOR); +yy97: + YYDEBUG(97, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'W') { - if (yych == 'T') goto yy498; - if (yych <= 'V') goto yy151; - goto yy499; + if (yych == 'T') goto yy497; + if (yych <= 'V') goto yy150; + goto yy498; } else { if (yych <= 't') { - if (yych <= 's') goto yy151; - goto yy498; + if (yych <= 's') goto yy150; + goto yy497; } else { - if (yych == 'w') goto yy499; - goto yy151; + if (yych == 'w') goto yy498; + goto yy150; } } -yy99: - YYDEBUG(99, *YYCURSOR); +yy98: + YYDEBUG(98, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ';') { if (yych <= '"') { - if (yych <= '!') goto yy151; - goto yy490; + if (yych <= '!') goto yy150; + goto yy489; } else { - if (yych == '\'') goto yy491; - goto yy151; + if (yych == '\'') goto yy490; + goto yy150; } } else { if (yych <= 'R') { - if (yych <= '<') goto yy489; - if (yych <= 'Q') goto yy151; - goto yy492; + if (yych <= '<') goto yy488; + if (yych <= 'Q') goto yy150; + goto yy491; } else { - if (yych == 'r') goto yy492; - goto yy151; + if (yych == 'r') goto yy491; + goto yy150; } } -yy100: - YYDEBUG(100, *YYCURSOR); +yy99: + YYDEBUG(99, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { - if (yych == 'L') goto yy479; - if (yych <= 'N') goto yy151; - goto yy480; + if (yych == 'L') goto yy478; + if (yych <= 'N') goto yy150; + goto yy479; } else { if (yych <= 'l') { - if (yych <= 'k') goto yy151; - goto yy479; + if (yych <= 'k') goto yy150; + goto yy478; } else { - if (yych == 'o') goto yy480; - goto yy151; + if (yych == 'o') goto yy479; + goto yy150; } } -yy101: - YYDEBUG(101, *YYCURSOR); +yy100: + YYDEBUG(100, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'R') goto yy455; - if (yych <= 'T') goto yy151; - goto yy456; + if (yych == 'R') goto yy454; + if (yych <= 'T') goto yy150; + goto yy455; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy151; - goto yy455; + if (yych <= 'q') goto yy150; + goto yy454; } else { - if (yych == 'u') goto yy456; - goto yy151; + if (yych == 'u') goto yy455; + goto yy150; } } -yy102: - YYDEBUG(102, *YYCURSOR); +yy101: + YYDEBUG(101, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '<') { - if (yych == '-') goto yy451; + if (yych == '-') goto yy450; } else { - if (yych <= '=') goto yy449; - if (yych <= '>') goto yy453; + if (yych <= '=') goto yy448; + if (yych <= '>') goto yy452; } -yy103: - YYDEBUG(103, *YYCURSOR); +yy102: + YYDEBUG(102, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1548 "Zend/zend_language_scanner.l" +#line 1546 "Zend/zend_language_scanner.l" { return yytext[0]; } -#line 2398 "Zend/zend_language_scanner.c" -yy104: - YYDEBUG(104, *YYCURSOR); +#line 2394 "Zend/zend_language_scanner.c" +yy103: + YYDEBUG(103, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy448; -yy105: - YYDEBUG(105, *YYCURSOR); + goto yy447; +yy104: + YYDEBUG(104, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1263 "Zend/zend_language_scanner.l" +#line 1261 "Zend/zend_language_scanner.l" { HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 2412 "Zend/zend_language_scanner.c" +#line 2408 "Zend/zend_language_scanner.c" +yy105: + YYDEBUG(105, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ':') goto yy444; + goto yy102; yy106: YYDEBUG(106, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == ':') goto yy445; - goto yy103; -yy107: - YYDEBUG(107, *YYCURSOR); ++YYCURSOR; - YYDEBUG(108, *YYCURSOR); + YYDEBUG(107, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1288 "Zend/zend_language_scanner.l" +#line 1286 "Zend/zend_language_scanner.l" { return T_NS_SEPARATOR; } -#line 2427 "Zend/zend_language_scanner.c" -yy109: - YYDEBUG(109, *YYCURSOR); +#line 2423 "Zend/zend_language_scanner.c" +yy108: + YYDEBUG(108, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy442; - goto yy103; + if (yych == '.') goto yy441; + goto yy102; } else { - if (yych <= '9') goto yy438; - if (yych == '=') goto yy440; - goto yy103; + if (yych <= '9') goto yy437; + if (yych == '=') goto yy439; + goto yy102; } +yy109: + YYDEBUG(109, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '=') goto yy102; + if (yych <= '>') goto yy431; + if (yych <= '?') goto yy433; + goto yy102; yy110: YYDEBUG(110, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '=') goto yy103; - if (yych <= '>') goto yy432; - if (yych <= '?') goto yy434; - goto yy103; -yy111: - YYDEBUG(111, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'E') { - if (yych == 'A') goto yy420; - if (yych <= 'D') goto yy151; - goto yy421; + if (yych == 'A') goto yy419; + if (yych <= 'D') goto yy150; + goto yy420; } else { if (yych <= 'a') { - if (yych <= '`') goto yy151; - goto yy420; + if (yych <= '`') goto yy150; + goto yy419; } else { - if (yych == 'e') goto yy421; - goto yy151; + if (yych == 'e') goto yy420; + goto yy150; } } +yy111: + YYDEBUG(111, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy416; + if (yych == 'a') goto yy416; + goto yy150; yy112: YYDEBUG(112, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy417; - if (yych == 'a') goto yy417; - goto yy151; -yy113: - YYDEBUG(113, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy342; - if (yych <= 0x1F) goto yy103; - goto yy342; + if (yych == '\t') goto yy341; + if (yych <= 0x1F) goto yy102; + goto yy341; } else { - if (yych <= '@') goto yy103; - if (yych == 'C') goto yy103; - goto yy342; + if (yych <= '@') goto yy102; + if (yych == 'C') goto yy102; + goto yy341; } } else { if (yych <= 'I') { - if (yych == 'F') goto yy342; - if (yych <= 'H') goto yy103; - goto yy342; + if (yych == 'F') goto yy341; + if (yych <= 'H') goto yy102; + goto yy341; } else { - if (yych == 'O') goto yy342; - if (yych <= 'Q') goto yy103; - goto yy342; + if (yych == 'O') goto yy341; + if (yych <= 'Q') goto yy102; + goto yy341; } } } else { if (yych <= 'f') { if (yych <= 'b') { - if (yych == 'U') goto yy342; - if (yych <= '`') goto yy103; - goto yy342; + if (yych == 'U') goto yy341; + if (yych <= '`') goto yy102; + goto yy341; } else { - if (yych == 'd') goto yy342; - if (yych <= 'e') goto yy103; - goto yy342; + if (yych == 'd') goto yy341; + if (yych <= 'e') goto yy102; + goto yy341; } } else { if (yych <= 'o') { - if (yych == 'i') goto yy342; - if (yych <= 'n') goto yy103; - goto yy342; + if (yych == 'i') goto yy341; + if (yych <= 'n') goto yy102; + goto yy341; } else { if (yych <= 's') { - if (yych <= 'q') goto yy103; - goto yy342; + if (yych <= 'q') goto yy102; + goto yy341; } else { - if (yych == 'u') goto yy342; - goto yy103; + if (yych == 'u') goto yy341; + goto yy102; } } } } -yy114: - YYDEBUG(114, *YYCURSOR); +yy113: + YYDEBUG(113, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'S') { - if (yych == 'N') goto yy333; - if (yych <= 'R') goto yy151; - goto yy334; + if (yych == 'N') goto yy332; + if (yych <= 'R') goto yy150; + goto yy333; } else { if (yych <= 'n') { - if (yych <= 'm') goto yy151; - goto yy333; + if (yych <= 'm') goto yy150; + goto yy332; } else { - if (yych == 's') goto yy334; - goto yy151; + if (yych == 's') goto yy333; + goto yy150; } } +yy114: + YYDEBUG(114, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy250; + goto yy150; yy115: YYDEBUG(115, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy251; - goto yy151; + if (yych <= '<') goto yy102; + if (yych <= '=') goto yy244; + if (yych <= '>') goto yy246; + goto yy102; yy116: YYDEBUG(116, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '<') goto yy103; - if (yych <= '=') goto yy245; - if (yych <= '>') goto yy247; - goto yy103; + if (yych == 'I') goto yy240; + if (yych == 'i') goto yy240; + goto yy150; yy117: YYDEBUG(117, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy241; - if (yych == 'i') goto yy241; - goto yy151; + if (yych == '+') goto yy238; + if (yych == '=') goto yy236; + goto yy102; yy118: YYDEBUG(118, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '+') goto yy239; - if (yych == '=') goto yy237; - goto yy103; + if (yych == '=') goto yy233; + goto yy102; yy119: YYDEBUG(119, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy234; - goto yy103; + if (yych <= ';') goto yy102; + if (yych <= '<') goto yy209; + if (yych <= '=') goto yy211; + if (yych <= '>') goto yy213; + goto yy102; yy120: YYDEBUG(120, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= ';') goto yy103; - if (yych <= '<') goto yy210; - if (yych <= '=') goto yy212; - if (yych <= '>') goto yy214; - goto yy103; + if (yych <= '<') goto yy102; + if (yych <= '=') goto yy205; + if (yych <= '>') goto yy203; + goto yy102; yy121: YYDEBUG(121, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '<') goto yy103; - if (yych <= '=') goto yy206; - if (yych <= '>') goto yy204; - goto yy103; + if (yych == '*') goto yy197; + if (yych == '=') goto yy199; + goto yy102; yy122: YYDEBUG(122, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '*') goto yy198; - if (yych == '=') goto yy200; - goto yy103; -yy123: - YYDEBUG(123, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= '.') { - if (yych == '*') goto yy190; - goto yy103; + if (yych == '*') goto yy189; + goto yy102; } else { - if (yych <= '/') goto yy192; - if (yych == '=') goto yy193; - goto yy103; + if (yych <= '/') goto yy191; + if (yych == '=') goto yy192; + goto yy102; } +yy123: + YYDEBUG(123, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '=') goto yy187; + goto yy102; yy124: YYDEBUG(124, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy188; - goto yy103; + if (yych == '&') goto yy183; + if (yych == '=') goto yy185; + goto yy102; yy125: YYDEBUG(125, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '&') goto yy184; - if (yych == '=') goto yy186; - goto yy103; + if (yych == '=') goto yy181; + if (yych == '|') goto yy179; + goto yy102; yy126: YYDEBUG(126, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy182; - if (yych == '|') goto yy180; - goto yy103; + if (yych == '=') goto yy177; + goto yy102; yy127: YYDEBUG(127, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy178; - goto yy103; + if (yych == 'R') goto yy175; + if (yych == 'r') goto yy175; + goto yy150; yy128: YYDEBUG(128, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy176; - if (yych == 'r') goto yy176; - goto yy151; + if (yych == 'O') goto yy172; + if (yych == 'o') goto yy172; + goto yy150; yy129: YYDEBUG(129, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy173; - if (yych == 'o') goto yy173; - goto yy151; -yy130: - YYDEBUG(130, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= '_') { - if (yych <= '@') goto yy103; - if (yych <= 'Z') goto yy170; - if (yych <= '^') goto yy103; - goto yy170; + if (yych <= '@') goto yy102; + if (yych <= 'Z') goto yy169; + if (yych <= '^') goto yy102; + goto yy169; } else { - if (yych <= '`') goto yy103; - if (yych <= 'z') goto yy170; - if (yych <= '~') goto yy103; - goto yy170; + if (yych <= '`') goto yy102; + if (yych <= 'z') goto yy169; + if (yych <= '~') goto yy102; + goto yy169; } +yy130: + YYDEBUG(130, *YYCURSOR); + yych = *++YYCURSOR; + goto yy102; yy131: YYDEBUG(131, *YYCURSOR); - yych = *++YYCURSOR; - goto yy103; -yy132: - YYDEBUG(132, *YYCURSOR); ++YYCURSOR; - YYDEBUG(133, *YYCURSOR); + YYDEBUG(132, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1553 "Zend/zend_language_scanner.l" +#line 1551 "Zend/zend_language_scanner.l" { yy_push_state(ST_IN_SCRIPTING); return '{'; } -#line 2661 "Zend/zend_language_scanner.c" -yy134: - YYDEBUG(134, *YYCURSOR); +#line 2657 "Zend/zend_language_scanner.c" +yy133: + YYDEBUG(133, *YYCURSOR); ++YYCURSOR; - YYDEBUG(135, *YYCURSOR); + YYDEBUG(134, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1565 "Zend/zend_language_scanner.l" +#line 1563 "Zend/zend_language_scanner.l" { RESET_DOC_COMMENT(); if (!zend_stack_is_empty(&SCNG(state_stack))) { @@ -2671,35 +2667,35 @@ yy134: } return '}'; } -#line 2675 "Zend/zend_language_scanner.c" -yy136: - YYDEBUG(136, *YYCURSOR); +#line 2671 "Zend/zend_language_scanner.c" +yy135: + YYDEBUG(135, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'E') { if (yych <= '9') { - if (yych == '.') goto yy152; - if (yych >= '0') goto yy155; + if (yych == '.') goto yy151; + if (yych >= '0') goto yy154; } else { - if (yych == 'B') goto yy163; - if (yych >= 'E') goto yy157; + if (yych == 'B') goto yy162; + if (yych >= 'E') goto yy156; } } else { if (yych <= 'b') { - if (yych == 'X') goto yy162; - if (yych >= 'b') goto yy163; + if (yych == 'X') goto yy161; + if (yych >= 'b') goto yy162; } else { if (yych <= 'e') { - if (yych >= 'e') goto yy157; + if (yych >= 'e') goto yy156; } else { - if (yych == 'x') goto yy162; + if (yych == 'x') goto yy161; } } } -yy137: - YYDEBUG(137, *YYCURSOR); +yy136: + YYDEBUG(136, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1618 "Zend/zend_language_scanner.l" +#line 1616 "Zend/zend_language_scanner.l" { char *end; if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */ @@ -2738,35 +2734,35 @@ yy137: } return T_LNUMBER; } -#line 2742 "Zend/zend_language_scanner.c" -yy138: - YYDEBUG(138, *YYCURSOR); +#line 2738 "Zend/zend_language_scanner.c" +yy137: + YYDEBUG(137, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { - if (yych == '.') goto yy152; - if (yych <= '/') goto yy137; - goto yy155; + if (yych == '.') goto yy151; + if (yych <= '/') goto yy136; + goto yy154; } else { if (yych <= 'E') { - if (yych <= 'D') goto yy137; - goto yy157; + if (yych <= 'D') goto yy136; + goto yy156; } else { - if (yych == 'e') goto yy157; - goto yy137; + if (yych == 'e') goto yy156; + goto yy136; } } +yy138: + YYDEBUG(138, *YYCURSOR); + yych = *++YYCURSOR; + goto yy150; yy139: YYDEBUG(139, *YYCURSOR); - yych = *++YYCURSOR; - goto yy151; + ++YYCURSOR; yy140: YYDEBUG(140, *YYCURSOR); - ++YYCURSOR; -yy141: - YYDEBUG(141, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1864 "Zend/zend_language_scanner.l" +#line 1862 "Zend/zend_language_scanner.l" { while (YYCURSOR < YYLIMIT) { switch (*YYCURSOR++) { @@ -2795,14 +2791,14 @@ yy141: return T_COMMENT; } -#line 2799 "Zend/zend_language_scanner.c" +#line 2795 "Zend/zend_language_scanner.c" +yy141: + YYDEBUG(141, *YYCURSOR); + ++YYCURSOR; yy142: YYDEBUG(142, *YYCURSOR); - ++YYCURSOR; -yy143: - YYDEBUG(143, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1932 "Zend/zend_language_scanner.l" +#line 1930 "Zend/zend_language_scanner.l" { register char *s, *t; char *end; @@ -2870,14 +2866,14 @@ yy143: } return T_CONSTANT_ENCAPSED_STRING; } -#line 2874 "Zend/zend_language_scanner.c" +#line 2870 "Zend/zend_language_scanner.c" +yy143: + YYDEBUG(143, *YYCURSOR); + ++YYCURSOR; yy144: YYDEBUG(144, *YYCURSOR); - ++YYCURSOR; -yy145: - YYDEBUG(145, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2001 "Zend/zend_language_scanner.l" +#line 1999 "Zend/zend_language_scanner.l" { int bprefix = (yytext[0] != '"') ? 1 : 0; @@ -2918,24 +2914,24 @@ yy145: BEGIN(ST_DOUBLE_QUOTES); return '"'; } -#line 2922 "Zend/zend_language_scanner.c" -yy146: - YYDEBUG(146, *YYCURSOR); +#line 2918 "Zend/zend_language_scanner.c" +yy145: + YYDEBUG(145, *YYCURSOR); ++YYCURSOR; - YYDEBUG(147, *YYCURSOR); + YYDEBUG(146, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2091 "Zend/zend_language_scanner.l" +#line 2089 "Zend/zend_language_scanner.l" { BEGIN(ST_BACKQUOTE); return '`'; } -#line 2933 "Zend/zend_language_scanner.c" -yy148: - YYDEBUG(148, *YYCURSOR); +#line 2929 "Zend/zend_language_scanner.c" +yy147: + YYDEBUG(147, *YYCURSOR); ++YYCURSOR; - YYDEBUG(149, *YYCURSOR); + YYDEBUG(148, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2353 "Zend/zend_language_scanner.l" +#line 2351 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -2944,34 +2940,34 @@ yy148: zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 2948 "Zend/zend_language_scanner.c" -yy150: - YYDEBUG(150, *YYCURSOR); +#line 2944 "Zend/zend_language_scanner.c" +yy149: + YYDEBUG(149, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy151: - YYDEBUG(151, *YYCURSOR); +yy150: + YYDEBUG(150, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy150; + goto yy149; } - goto yy88; -yy152: - YYDEBUG(152, *YYCURSOR); + goto yy87; +yy151: + YYDEBUG(151, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(153, *YYCURSOR); + YYDEBUG(152, *YYCURSOR); if (yybm[0+yych] & 8) { - goto yy152; + goto yy151; } - if (yych == 'E') goto yy157; - if (yych == 'e') goto yy157; -yy154: - YYDEBUG(154, *YYCURSOR); + if (yych == 'E') goto yy156; + if (yych == 'e') goto yy156; +yy153: + YYDEBUG(153, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1706 "Zend/zend_language_scanner.l" +#line 1704 "Zend/zend_language_scanner.l" { const char *end; @@ -2980,99 +2976,99 @@ yy154: ZEND_ASSERT(end == yytext + yyleng); return T_DNUMBER; } -#line 2984 "Zend/zend_language_scanner.c" -yy155: - YYDEBUG(155, *YYCURSOR); +#line 2980 "Zend/zend_language_scanner.c" +yy154: + YYDEBUG(154, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(156, *YYCURSOR); + YYDEBUG(155, *YYCURSOR); if (yych <= '9') { - if (yych == '.') goto yy152; - if (yych <= '/') goto yy137; - goto yy155; + if (yych == '.') goto yy151; + if (yych <= '/') goto yy136; + goto yy154; } else { if (yych <= 'E') { - if (yych <= 'D') goto yy137; + if (yych <= 'D') goto yy136; } else { - if (yych != 'e') goto yy137; + if (yych != 'e') goto yy136; } } -yy157: - YYDEBUG(157, *YYCURSOR); +yy156: + YYDEBUG(156, *YYCURSOR); yych = *++YYCURSOR; if (yych <= ',') { - if (yych == '+') goto yy159; + if (yych == '+') goto yy158; } else { - if (yych <= '-') goto yy159; - if (yych <= '/') goto yy158; - if (yych <= '9') goto yy160; + if (yych <= '-') goto yy158; + if (yych <= '/') goto yy157; + if (yych <= '9') goto yy159; } -yy158: - YYDEBUG(158, *YYCURSOR); +yy157: + YYDEBUG(157, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 2) { if (yyaccept <= 1) { - if (yyaccept == 0) { - goto yy88; + if (yyaccept <= 0) { + goto yy87; } else { - goto yy103; + goto yy102; } } else { - goto yy137; + goto yy136; } } else { if (yyaccept <= 4) { - if (yyaccept == 3) { - goto yy154; + if (yyaccept <= 3) { + goto yy153; } else { - goto yy191; + goto yy190; } } else { - goto yy211; + goto yy210; } } +yy158: + YYDEBUG(158, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy157; + if (yych >= ':') goto yy157; yy159: YYDEBUG(159, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy158; - if (yych >= ':') goto yy158; -yy160: - YYDEBUG(160, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; + YYDEBUG(160, *YYCURSOR); + if (yych <= '/') goto yy153; + if (yych <= '9') goto yy159; + goto yy153; +yy161: YYDEBUG(161, *YYCURSOR); - if (yych <= '/') goto yy154; - if (yych <= '9') goto yy160; - goto yy154; -yy162: - YYDEBUG(162, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 32) { - goto yy167; + goto yy166; } - goto yy158; -yy163: - YYDEBUG(163, *YYCURSOR); + goto yy157; +yy162: + YYDEBUG(162, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 16) { - goto yy164; + goto yy163; } - goto yy158; -yy164: - YYDEBUG(164, *YYCURSOR); + goto yy157; +yy163: + YYDEBUG(163, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(165, *YYCURSOR); + YYDEBUG(164, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy164; + goto yy163; } - YYDEBUG(166, *YYCURSOR); + YYDEBUG(165, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1590 "Zend/zend_language_scanner.l" +#line 1588 "Zend/zend_language_scanner.l" { char *bin = yytext + 2; /* Skip "0b" */ int len = yyleng - 2; @@ -3100,19 +3096,19 @@ yy164: return T_DNUMBER; } } -#line 3104 "Zend/zend_language_scanner.c" -yy167: - YYDEBUG(167, *YYCURSOR); +#line 3100 "Zend/zend_language_scanner.c" +yy166: + YYDEBUG(166, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(168, *YYCURSOR); + YYDEBUG(167, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy167; + goto yy166; } - YYDEBUG(169, *YYCURSOR); + YYDEBUG(168, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1657 "Zend/zend_language_scanner.l" +#line 1655 "Zend/zend_language_scanner.l" { char *hex = yytext + 2; /* Skip "0x" */ int len = yyleng - 2; @@ -3140,137 +3136,137 @@ yy167: return T_DNUMBER; } } -#line 3144 "Zend/zend_language_scanner.c" -yy170: - YYDEBUG(170, *YYCURSOR); +#line 3140 "Zend/zend_language_scanner.c" +yy169: + YYDEBUG(169, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(171, *YYCURSOR); + YYDEBUG(170, *YYCURSOR); if (yych <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy170; + if (yych >= '0') goto yy169; } else { - if (yych <= '@') goto yy172; - if (yych <= 'Z') goto yy170; + if (yych <= '@') goto yy171; + if (yych <= 'Z') goto yy169; } } else { if (yych <= '`') { - if (yych <= '_') goto yy170; + if (yych <= '_') goto yy169; } else { - if (yych <= 'z') goto yy170; - if (yych >= 0x7F) goto yy170; + if (yych <= 'z') goto yy169; + if (yych >= 0x7F) goto yy169; } } -yy172: - YYDEBUG(172, *YYCURSOR); +yy171: + YYDEBUG(171, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1835 "Zend/zend_language_scanner.l" +#line 1833 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 3174 "Zend/zend_language_scanner.c" +#line 3170 "Zend/zend_language_scanner.c" +yy172: + YYDEBUG(172, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy173; + if (yych != 'r') goto yy150; yy173: YYDEBUG(173, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy174; - if (yych != 'r') goto yy151; -yy174: - YYDEBUG(174, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(175, *YYCURSOR); + YYDEBUG(174, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1536 "Zend/zend_language_scanner.l" +#line 1534 "Zend/zend_language_scanner.l" { return T_LOGICAL_XOR; } -#line 3192 "Zend/zend_language_scanner.c" -yy176: - YYDEBUG(176, *YYCURSOR); +#line 3188 "Zend/zend_language_scanner.c" +yy175: + YYDEBUG(175, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(177, *YYCURSOR); + YYDEBUG(176, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1528 "Zend/zend_language_scanner.l" +#line 1526 "Zend/zend_language_scanner.l" { return T_LOGICAL_OR; } -#line 3205 "Zend/zend_language_scanner.c" -yy178: - YYDEBUG(178, *YYCURSOR); +#line 3201 "Zend/zend_language_scanner.c" +yy177: + YYDEBUG(177, *YYCURSOR); ++YYCURSOR; - YYDEBUG(179, *YYCURSOR); + YYDEBUG(178, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1516 "Zend/zend_language_scanner.l" +#line 1514 "Zend/zend_language_scanner.l" { return T_XOR_EQUAL; } -#line 3215 "Zend/zend_language_scanner.c" -yy180: - YYDEBUG(180, *YYCURSOR); +#line 3211 "Zend/zend_language_scanner.c" +yy179: + YYDEBUG(179, *YYCURSOR); ++YYCURSOR; - YYDEBUG(181, *YYCURSOR); + YYDEBUG(180, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1520 "Zend/zend_language_scanner.l" +#line 1518 "Zend/zend_language_scanner.l" { return T_BOOLEAN_OR; } -#line 3225 "Zend/zend_language_scanner.c" -yy182: - YYDEBUG(182, *YYCURSOR); +#line 3221 "Zend/zend_language_scanner.c" +yy181: + YYDEBUG(181, *YYCURSOR); ++YYCURSOR; - YYDEBUG(183, *YYCURSOR); + YYDEBUG(182, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1512 "Zend/zend_language_scanner.l" +#line 1510 "Zend/zend_language_scanner.l" { return T_OR_EQUAL; } -#line 3235 "Zend/zend_language_scanner.c" -yy184: - YYDEBUG(184, *YYCURSOR); +#line 3231 "Zend/zend_language_scanner.c" +yy183: + YYDEBUG(183, *YYCURSOR); ++YYCURSOR; - YYDEBUG(185, *YYCURSOR); + YYDEBUG(184, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1524 "Zend/zend_language_scanner.l" +#line 1522 "Zend/zend_language_scanner.l" { return T_BOOLEAN_AND; } -#line 3245 "Zend/zend_language_scanner.c" -yy186: - YYDEBUG(186, *YYCURSOR); +#line 3241 "Zend/zend_language_scanner.c" +yy185: + YYDEBUG(185, *YYCURSOR); ++YYCURSOR; - YYDEBUG(187, *YYCURSOR); + YYDEBUG(186, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1508 "Zend/zend_language_scanner.l" +#line 1506 "Zend/zend_language_scanner.l" { return T_AND_EQUAL; } -#line 3255 "Zend/zend_language_scanner.c" -yy188: - YYDEBUG(188, *YYCURSOR); +#line 3251 "Zend/zend_language_scanner.c" +yy187: + YYDEBUG(187, *YYCURSOR); ++YYCURSOR; - YYDEBUG(189, *YYCURSOR); + YYDEBUG(188, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1496 "Zend/zend_language_scanner.l" +#line 1494 "Zend/zend_language_scanner.l" { return T_MOD_EQUAL; } -#line 3265 "Zend/zend_language_scanner.c" -yy190: - YYDEBUG(190, *YYCURSOR); +#line 3261 "Zend/zend_language_scanner.c" +yy189: + YYDEBUG(189, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '*') goto yy195; -yy191: - YYDEBUG(191, *YYCURSOR); + if (yych == '*') goto yy194; +yy190: + YYDEBUG(190, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1893 "Zend/zend_language_scanner.l" +#line 1891 "Zend/zend_language_scanner.l" { int doc_com; @@ -3303,262 +3299,262 @@ yy191: return T_COMMENT; } -#line 3307 "Zend/zend_language_scanner.c" +#line 3303 "Zend/zend_language_scanner.c" +yy191: + YYDEBUG(191, *YYCURSOR); + yych = *++YYCURSOR; + goto yy140; yy192: YYDEBUG(192, *YYCURSOR); - yych = *++YYCURSOR; - goto yy141; -yy193: - YYDEBUG(193, *YYCURSOR); ++YYCURSOR; - YYDEBUG(194, *YYCURSOR); + YYDEBUG(193, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1488 "Zend/zend_language_scanner.l" +#line 1486 "Zend/zend_language_scanner.l" { return T_DIV_EQUAL; } -#line 3321 "Zend/zend_language_scanner.c" -yy195: - YYDEBUG(195, *YYCURSOR); +#line 3317 "Zend/zend_language_scanner.c" +yy194: + YYDEBUG(194, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 64) { - goto yy196; + goto yy195; } - goto yy158; -yy196: - YYDEBUG(196, *YYCURSOR); + goto yy157; +yy195: + YYDEBUG(195, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(197, *YYCURSOR); + YYDEBUG(196, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy196; + goto yy195; } - goto yy191; -yy198: - YYDEBUG(198, *YYCURSOR); + goto yy190; +yy197: + YYDEBUG(197, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy202; - YYDEBUG(199, *YYCURSOR); + if ((yych = *YYCURSOR) == '=') goto yy201; + YYDEBUG(198, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1480 "Zend/zend_language_scanner.l" +#line 1478 "Zend/zend_language_scanner.l" { return T_POW; } -#line 3349 "Zend/zend_language_scanner.c" -yy200: - YYDEBUG(200, *YYCURSOR); +#line 3345 "Zend/zend_language_scanner.c" +yy199: + YYDEBUG(199, *YYCURSOR); ++YYCURSOR; - YYDEBUG(201, *YYCURSOR); + YYDEBUG(200, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1476 "Zend/zend_language_scanner.l" +#line 1474 "Zend/zend_language_scanner.l" { return T_MUL_EQUAL; } -#line 3359 "Zend/zend_language_scanner.c" -yy202: - YYDEBUG(202, *YYCURSOR); +#line 3355 "Zend/zend_language_scanner.c" +yy201: + YYDEBUG(201, *YYCURSOR); ++YYCURSOR; - YYDEBUG(203, *YYCURSOR); + YYDEBUG(202, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1484 "Zend/zend_language_scanner.l" +#line 1482 "Zend/zend_language_scanner.l" { return T_POW_EQUAL; } -#line 3369 "Zend/zend_language_scanner.c" -yy204: - YYDEBUG(204, *YYCURSOR); +#line 3365 "Zend/zend_language_scanner.c" +yy203: + YYDEBUG(203, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy208; - YYDEBUG(205, *YYCURSOR); + if ((yych = *YYCURSOR) == '=') goto yy207; + YYDEBUG(204, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1544 "Zend/zend_language_scanner.l" +#line 1542 "Zend/zend_language_scanner.l" { return T_SR; } -#line 3380 "Zend/zend_language_scanner.c" -yy206: - YYDEBUG(206, *YYCURSOR); +#line 3376 "Zend/zend_language_scanner.c" +yy205: + YYDEBUG(205, *YYCURSOR); ++YYCURSOR; - YYDEBUG(207, *YYCURSOR); + YYDEBUG(206, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1464 "Zend/zend_language_scanner.l" +#line 1462 "Zend/zend_language_scanner.l" { return T_IS_GREATER_OR_EQUAL; } -#line 3390 "Zend/zend_language_scanner.c" -yy208: - YYDEBUG(208, *YYCURSOR); +#line 3386 "Zend/zend_language_scanner.c" +yy207: + YYDEBUG(207, *YYCURSOR); ++YYCURSOR; - YYDEBUG(209, *YYCURSOR); + YYDEBUG(208, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1504 "Zend/zend_language_scanner.l" +#line 1502 "Zend/zend_language_scanner.l" { return T_SR_EQUAL; } -#line 3400 "Zend/zend_language_scanner.c" -yy210: - YYDEBUG(210, *YYCURSOR); +#line 3396 "Zend/zend_language_scanner.c" +yy209: + YYDEBUG(209, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ';') goto yy211; - if (yych <= '<') goto yy220; - if (yych <= '=') goto yy218; -yy211: - YYDEBUG(211, *YYCURSOR); + if (yych <= ';') goto yy210; + if (yych <= '<') goto yy219; + if (yych <= '=') goto yy217; +yy210: + YYDEBUG(210, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1540 "Zend/zend_language_scanner.l" +#line 1538 "Zend/zend_language_scanner.l" { return T_SL; } -#line 3415 "Zend/zend_language_scanner.c" -yy212: - YYDEBUG(212, *YYCURSOR); +#line 3411 "Zend/zend_language_scanner.c" +yy211: + YYDEBUG(211, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '>') goto yy216; - YYDEBUG(213, *YYCURSOR); + if ((yych = *YYCURSOR) == '>') goto yy215; + YYDEBUG(212, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1460 "Zend/zend_language_scanner.l" +#line 1458 "Zend/zend_language_scanner.l" { return T_IS_SMALLER_OR_EQUAL; } -#line 3426 "Zend/zend_language_scanner.c" +#line 3422 "Zend/zend_language_scanner.c" +yy213: + YYDEBUG(213, *YYCURSOR); + ++YYCURSOR; yy214: YYDEBUG(214, *YYCURSOR); - ++YYCURSOR; -yy215: - YYDEBUG(215, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1452 "Zend/zend_language_scanner.l" +#line 1450 "Zend/zend_language_scanner.l" { return T_IS_NOT_EQUAL; } -#line 3437 "Zend/zend_language_scanner.c" -yy216: - YYDEBUG(216, *YYCURSOR); +#line 3433 "Zend/zend_language_scanner.c" +yy215: + YYDEBUG(215, *YYCURSOR); ++YYCURSOR; - YYDEBUG(217, *YYCURSOR); + YYDEBUG(216, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1456 "Zend/zend_language_scanner.l" +#line 1454 "Zend/zend_language_scanner.l" { return T_SPACESHIP; } -#line 3447 "Zend/zend_language_scanner.c" -yy218: - YYDEBUG(218, *YYCURSOR); +#line 3443 "Zend/zend_language_scanner.c" +yy217: + YYDEBUG(217, *YYCURSOR); ++YYCURSOR; - YYDEBUG(219, *YYCURSOR); + YYDEBUG(218, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1500 "Zend/zend_language_scanner.l" +#line 1498 "Zend/zend_language_scanner.l" { return T_SL_EQUAL; } -#line 3457 "Zend/zend_language_scanner.c" -yy220: - YYDEBUG(220, *YYCURSOR); +#line 3453 "Zend/zend_language_scanner.c" +yy219: + YYDEBUG(219, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; - YYDEBUG(221, *YYCURSOR); + YYDEBUG(220, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy220; + goto yy219; } if (yych <= 'Z') { if (yych <= '&') { - if (yych == '"') goto yy225; - goto yy158; + if (yych == '"') goto yy224; + goto yy157; } else { - if (yych <= '\'') goto yy224; - if (yych <= '@') goto yy158; + if (yych <= '\'') goto yy223; + if (yych <= '@') goto yy157; } } else { if (yych <= '`') { - if (yych != '_') goto yy158; + if (yych != '_') goto yy157; } else { - if (yych <= 'z') goto yy222; - if (yych <= '~') goto yy158; + if (yych <= 'z') goto yy221; + if (yych <= '~') goto yy157; } } -yy222: - YYDEBUG(222, *YYCURSOR); +yy221: + YYDEBUG(221, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; - YYDEBUG(223, *YYCURSOR); + YYDEBUG(222, *YYCURSOR); if (yych <= '@') { if (yych <= '\f') { - if (yych == '\n') goto yy229; - goto yy158; + if (yych == '\n') goto yy228; + goto yy157; } else { - if (yych <= '\r') goto yy231; - if (yych <= '/') goto yy158; - if (yych <= '9') goto yy222; - goto yy158; + if (yych <= '\r') goto yy230; + if (yych <= '/') goto yy157; + if (yych <= '9') goto yy221; + goto yy157; } } else { if (yych <= '_') { - if (yych <= 'Z') goto yy222; - if (yych <= '^') goto yy158; - goto yy222; + if (yych <= 'Z') goto yy221; + if (yych <= '^') goto yy157; + goto yy221; } else { - if (yych <= '`') goto yy158; - if (yych <= 'z') goto yy222; - if (yych <= '~') goto yy158; - goto yy222; + if (yych <= '`') goto yy157; + if (yych <= 'z') goto yy221; + if (yych <= '~') goto yy157; + goto yy221; } } +yy223: + YYDEBUG(223, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\'') goto yy157; + if (yych <= '/') goto yy232; + if (yych <= '9') goto yy157; + goto yy232; yy224: YYDEBUG(224, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\'') goto yy158; - if (yych <= '/') goto yy233; - if (yych <= '9') goto yy158; - goto yy233; + if (yych == '"') goto yy157; + if (yych <= '/') goto yy226; + if (yych <= '9') goto yy157; + goto yy226; yy225: YYDEBUG(225, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '"') goto yy158; - if (yych <= '/') goto yy227; - if (yych <= '9') goto yy158; - goto yy227; -yy226: - YYDEBUG(226, *YYCURSOR); ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; -yy227: - YYDEBUG(227, *YYCURSOR); +yy226: + YYDEBUG(226, *YYCURSOR); if (yych <= 'Z') { if (yych <= '/') { - if (yych != '"') goto yy158; + if (yych != '"') goto yy157; } else { - if (yych <= '9') goto yy226; - if (yych <= '@') goto yy158; - goto yy226; + if (yych <= '9') goto yy225; + if (yych <= '@') goto yy157; + goto yy225; } } else { if (yych <= '`') { - if (yych == '_') goto yy226; - goto yy158; + if (yych == '_') goto yy225; + goto yy157; } else { - if (yych <= 'z') goto yy226; - if (yych <= '~') goto yy158; - goto yy226; + if (yych <= 'z') goto yy225; + if (yych <= '~') goto yy157; + goto yy225; } } +yy227: + YYDEBUG(227, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy228; + if (yych == '\r') goto yy230; + goto yy157; yy228: YYDEBUG(228, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy229; - if (yych == '\r') goto yy231; - goto yy158; + ++YYCURSOR; yy229: YYDEBUG(229, *YYCURSOR); - ++YYCURSOR; -yy230: - YYDEBUG(230, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2043 "Zend/zend_language_scanner.l" +#line 2041 "Zend/zend_language_scanner.l" { char *s; int bprefix = (yytext[0] != '<') ? 1 : 0; @@ -3605,3272 +3601,3272 @@ yy230: return T_START_HEREDOC; } -#line 3609 "Zend/zend_language_scanner.c" +#line 3605 "Zend/zend_language_scanner.c" +yy230: + YYDEBUG(230, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy228; + goto yy229; yy231: YYDEBUG(231, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy229; - goto yy230; -yy232: - YYDEBUG(232, *YYCURSOR); ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; -yy233: - YYDEBUG(233, *YYCURSOR); +yy232: + YYDEBUG(232, *YYCURSOR); if (yych <= 'Z') { if (yych <= '/') { - if (yych == '\'') goto yy228; - goto yy158; + if (yych == '\'') goto yy227; + goto yy157; } else { - if (yych <= '9') goto yy232; - if (yych <= '@') goto yy158; - goto yy232; + if (yych <= '9') goto yy231; + if (yych <= '@') goto yy157; + goto yy231; } } else { if (yych <= '`') { - if (yych == '_') goto yy232; - goto yy158; + if (yych == '_') goto yy231; + goto yy157; } else { - if (yych <= 'z') goto yy232; - if (yych <= '~') goto yy158; - goto yy232; + if (yych <= 'z') goto yy231; + if (yych <= '~') goto yy157; + goto yy231; } } -yy234: - YYDEBUG(234, *YYCURSOR); +yy233: + YYDEBUG(233, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '=') goto yy215; - YYDEBUG(235, *YYCURSOR); + if (yych != '=') goto yy214; + YYDEBUG(234, *YYCURSOR); ++YYCURSOR; - YYDEBUG(236, *YYCURSOR); + YYDEBUG(235, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1444 "Zend/zend_language_scanner.l" +#line 1442 "Zend/zend_language_scanner.l" { return T_IS_NOT_IDENTICAL; } -#line 3653 "Zend/zend_language_scanner.c" -yy237: - YYDEBUG(237, *YYCURSOR); +#line 3649 "Zend/zend_language_scanner.c" +yy236: + YYDEBUG(236, *YYCURSOR); ++YYCURSOR; - YYDEBUG(238, *YYCURSOR); + YYDEBUG(237, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1468 "Zend/zend_language_scanner.l" +#line 1466 "Zend/zend_language_scanner.l" { return T_PLUS_EQUAL; } -#line 3663 "Zend/zend_language_scanner.c" -yy239: - YYDEBUG(239, *YYCURSOR); +#line 3659 "Zend/zend_language_scanner.c" +yy238: + YYDEBUG(238, *YYCURSOR); ++YYCURSOR; - YYDEBUG(240, *YYCURSOR); + YYDEBUG(239, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1432 "Zend/zend_language_scanner.l" +#line 1430 "Zend/zend_language_scanner.l" { return T_INC; } -#line 3673 "Zend/zend_language_scanner.c" +#line 3669 "Zend/zend_language_scanner.c" +yy240: + YYDEBUG(240, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy241; + if (yych != 's') goto yy150; yy241: YYDEBUG(241, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy242; - if (yych != 's') goto yy151; + if (yych == 'T') goto yy242; + if (yych != 't') goto yy150; yy242: YYDEBUG(242, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy243; - if (yych != 't') goto yy151; -yy243: - YYDEBUG(243, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(244, *YYCURSOR); + YYDEBUG(243, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1420 "Zend/zend_language_scanner.l" +#line 1418 "Zend/zend_language_scanner.l" { return T_LIST; } -#line 3696 "Zend/zend_language_scanner.c" -yy245: - YYDEBUG(245, *YYCURSOR); +#line 3692 "Zend/zend_language_scanner.c" +yy244: + YYDEBUG(244, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy249; - YYDEBUG(246, *YYCURSOR); + if ((yych = *YYCURSOR) == '=') goto yy248; + YYDEBUG(245, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1448 "Zend/zend_language_scanner.l" +#line 1446 "Zend/zend_language_scanner.l" { return T_IS_EQUAL; } -#line 3707 "Zend/zend_language_scanner.c" -yy247: - YYDEBUG(247, *YYCURSOR); +#line 3703 "Zend/zend_language_scanner.c" +yy246: + YYDEBUG(246, *YYCURSOR); ++YYCURSOR; - YYDEBUG(248, *YYCURSOR); + YYDEBUG(247, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1416 "Zend/zend_language_scanner.l" +#line 1414 "Zend/zend_language_scanner.l" { return T_DOUBLE_ARROW; } -#line 3717 "Zend/zend_language_scanner.c" -yy249: - YYDEBUG(249, *YYCURSOR); +#line 3713 "Zend/zend_language_scanner.c" +yy248: + YYDEBUG(248, *YYCURSOR); ++YYCURSOR; - YYDEBUG(250, *YYCURSOR); + YYDEBUG(249, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1440 "Zend/zend_language_scanner.l" +#line 1438 "Zend/zend_language_scanner.l" { return T_IS_IDENTICAL; } -#line 3727 "Zend/zend_language_scanner.c" -yy251: - YYDEBUG(251, *YYCURSOR); +#line 3723 "Zend/zend_language_scanner.c" +yy250: + YYDEBUG(250, *YYCURSOR); yych = *++YYCURSOR; YYDEBUG(-1, yych); switch (yych) { case 'C': - case 'c': goto yy253; + case 'c': goto yy252; case 'D': - case 'd': goto yy258; + case 'd': goto yy257; case 'F': - case 'f': goto yy255; + case 'f': goto yy254; case 'H': - case 'h': goto yy252; + case 'h': goto yy251; case 'L': - case 'l': goto yy257; + case 'l': goto yy256; case 'M': - case 'm': goto yy256; + case 'm': goto yy255; case 'N': - case 'n': goto yy259; + case 'n': goto yy258; case 'T': - case 't': goto yy254; - default: goto yy151; + case 't': goto yy253; + default: goto yy150; } +yy251: + YYDEBUG(251, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy319; + if (yych == 'a') goto yy319; + goto yy150; yy252: YYDEBUG(252, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy320; - if (yych == 'a') goto yy320; - goto yy151; + if (yych == 'L') goto yy312; + if (yych == 'l') goto yy312; + goto yy150; yy253: YYDEBUG(253, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy313; - if (yych == 'l') goto yy313; - goto yy151; + if (yych == 'R') goto yy305; + if (yych == 'r') goto yy305; + goto yy150; yy254: YYDEBUG(254, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy306; - if (yych == 'r') goto yy306; - goto yy151; -yy255: - YYDEBUG(255, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'I') goto yy290; - if (yych <= 'T') goto yy151; - goto yy291; + if (yych == 'I') goto yy289; + if (yych <= 'T') goto yy150; + goto yy290; } else { if (yych <= 'i') { - if (yych <= 'h') goto yy151; - goto yy290; + if (yych <= 'h') goto yy150; + goto yy289; } else { - if (yych == 'u') goto yy291; - goto yy151; + if (yych == 'u') goto yy290; + goto yy150; } } +yy255: + YYDEBUG(255, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy281; + if (yych == 'e') goto yy281; + goto yy150; yy256: YYDEBUG(256, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy282; - if (yych == 'e') goto yy282; - goto yy151; + if (yych == 'I') goto yy275; + if (yych == 'i') goto yy275; + goto yy150; yy257: YYDEBUG(257, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy276; - if (yych == 'i') goto yy276; - goto yy151; + if (yych == 'I') goto yy270; + if (yych == 'i') goto yy270; + goto yy150; yy258: YYDEBUG(258, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy271; - if (yych == 'i') goto yy271; - goto yy151; + if (yych == 'A') goto yy259; + if (yych != 'a') goto yy150; yy259: YYDEBUG(259, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy260; - if (yych != 'a') goto yy151; + if (yych == 'M') goto yy260; + if (yych != 'm') goto yy150; yy260: YYDEBUG(260, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy261; - if (yych != 'm') goto yy151; + if (yych == 'E') goto yy261; + if (yych != 'e') goto yy150; yy261: YYDEBUG(261, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy262; - if (yych != 'e') goto yy151; + if (yych == 'S') goto yy262; + if (yych != 's') goto yy150; yy262: YYDEBUG(262, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy263; - if (yych != 's') goto yy151; + if (yych == 'P') goto yy263; + if (yych != 'p') goto yy150; yy263: YYDEBUG(263, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy264; - if (yych != 'p') goto yy151; + if (yych == 'A') goto yy264; + if (yych != 'a') goto yy150; yy264: YYDEBUG(264, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy265; - if (yych != 'a') goto yy151; + if (yych == 'C') goto yy265; + if (yych != 'c') goto yy150; yy265: YYDEBUG(265, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy266; - if (yych != 'c') goto yy151; + if (yych == 'E') goto yy266; + if (yych != 'e') goto yy150; yy266: YYDEBUG(266, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy267; - if (yych != 'e') goto yy151; -yy267: + if (yych != '_') goto yy150; YYDEBUG(267, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy151; + if (yych != '_') goto yy150; YYDEBUG(268, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy151; - YYDEBUG(269, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(270, *YYCURSOR); + YYDEBUG(269, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1743 "Zend/zend_language_scanner.l" +#line 1741 "Zend/zend_language_scanner.l" { return T_NS_C; } -#line 3861 "Zend/zend_language_scanner.c" +#line 3857 "Zend/zend_language_scanner.c" +yy270: + YYDEBUG(270, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy271; + if (yych != 'r') goto yy150; yy271: YYDEBUG(271, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy272; - if (yych != 'r') goto yy151; -yy272: + if (yych != '_') goto yy150; YYDEBUG(272, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy151; + if (yych != '_') goto yy150; YYDEBUG(273, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy151; - YYDEBUG(274, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(275, *YYCURSOR); + YYDEBUG(274, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1739 "Zend/zend_language_scanner.l" +#line 1737 "Zend/zend_language_scanner.l" { return T_DIR; } -#line 3885 "Zend/zend_language_scanner.c" +#line 3881 "Zend/zend_language_scanner.c" +yy275: + YYDEBUG(275, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy276; + if (yych != 'n') goto yy150; yy276: YYDEBUG(276, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy277; - if (yych != 'n') goto yy151; + if (yych == 'E') goto yy277; + if (yych != 'e') goto yy150; yy277: YYDEBUG(277, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy278; - if (yych != 'e') goto yy151; -yy278: + if (yych != '_') goto yy150; YYDEBUG(278, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy151; + if (yych != '_') goto yy150; YYDEBUG(279, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy151; - YYDEBUG(280, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(281, *YYCURSOR); + YYDEBUG(280, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1731 "Zend/zend_language_scanner.l" +#line 1729 "Zend/zend_language_scanner.l" { return T_LINE; } -#line 3914 "Zend/zend_language_scanner.c" +#line 3910 "Zend/zend_language_scanner.c" +yy281: + YYDEBUG(281, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy282; + if (yych != 't') goto yy150; yy282: YYDEBUG(282, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy283; - if (yych != 't') goto yy151; + if (yych == 'H') goto yy283; + if (yych != 'h') goto yy150; yy283: YYDEBUG(283, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy284; - if (yych != 'h') goto yy151; + if (yych == 'O') goto yy284; + if (yych != 'o') goto yy150; yy284: YYDEBUG(284, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy285; - if (yych != 'o') goto yy151; + if (yych == 'D') goto yy285; + if (yych != 'd') goto yy150; yy285: YYDEBUG(285, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy286; - if (yych != 'd') goto yy151; -yy286: + if (yych != '_') goto yy150; YYDEBUG(286, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy151; + if (yych != '_') goto yy150; YYDEBUG(287, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy151; - YYDEBUG(288, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(289, *YYCURSOR); + YYDEBUG(288, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1727 "Zend/zend_language_scanner.l" +#line 1725 "Zend/zend_language_scanner.l" { return T_METHOD_C; } -#line 3953 "Zend/zend_language_scanner.c" +#line 3949 "Zend/zend_language_scanner.c" +yy289: + YYDEBUG(289, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy300; + if (yych == 'l') goto yy300; + goto yy150; yy290: YYDEBUG(290, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy301; - if (yych == 'l') goto yy301; - goto yy151; + if (yych == 'N') goto yy291; + if (yych != 'n') goto yy150; yy291: YYDEBUG(291, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy292; - if (yych != 'n') goto yy151; + if (yych == 'C') goto yy292; + if (yych != 'c') goto yy150; yy292: YYDEBUG(292, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy293; - if (yych != 'c') goto yy151; + if (yych == 'T') goto yy293; + if (yych != 't') goto yy150; yy293: YYDEBUG(293, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy294; - if (yych != 't') goto yy151; + if (yych == 'I') goto yy294; + if (yych != 'i') goto yy150; yy294: YYDEBUG(294, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy295; - if (yych != 'i') goto yy151; + if (yych == 'O') goto yy295; + if (yych != 'o') goto yy150; yy295: YYDEBUG(295, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy296; - if (yych != 'o') goto yy151; + if (yych == 'N') goto yy296; + if (yych != 'n') goto yy150; yy296: YYDEBUG(296, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy297; - if (yych != 'n') goto yy151; -yy297: + if (yych != '_') goto yy150; YYDEBUG(297, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy151; + if (yych != '_') goto yy150; YYDEBUG(298, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy151; - YYDEBUG(299, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(300, *YYCURSOR); + YYDEBUG(299, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1723 "Zend/zend_language_scanner.l" +#line 1721 "Zend/zend_language_scanner.l" { return T_FUNC_C; } -#line 4008 "Zend/zend_language_scanner.c" +#line 4004 "Zend/zend_language_scanner.c" +yy300: + YYDEBUG(300, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy301; + if (yych != 'e') goto yy150; yy301: YYDEBUG(301, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy302; - if (yych != 'e') goto yy151; -yy302: + if (yych != '_') goto yy150; YYDEBUG(302, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy151; + if (yych != '_') goto yy150; YYDEBUG(303, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy151; - YYDEBUG(304, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(305, *YYCURSOR); + YYDEBUG(304, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1735 "Zend/zend_language_scanner.l" +#line 1733 "Zend/zend_language_scanner.l" { return T_FILE; } -#line 4032 "Zend/zend_language_scanner.c" +#line 4028 "Zend/zend_language_scanner.c" +yy305: + YYDEBUG(305, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy306; + if (yych != 'a') goto yy150; yy306: YYDEBUG(306, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy307; - if (yych != 'a') goto yy151; + if (yych == 'I') goto yy307; + if (yych != 'i') goto yy150; yy307: YYDEBUG(307, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy308; - if (yych != 'i') goto yy151; + if (yych == 'T') goto yy308; + if (yych != 't') goto yy150; yy308: YYDEBUG(308, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy309; - if (yych != 't') goto yy151; -yy309: + if (yych != '_') goto yy150; YYDEBUG(309, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy151; + if (yych != '_') goto yy150; YYDEBUG(310, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy151; - YYDEBUG(311, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(312, *YYCURSOR); + YYDEBUG(311, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1719 "Zend/zend_language_scanner.l" +#line 1717 "Zend/zend_language_scanner.l" { return T_TRAIT_C; } -#line 4066 "Zend/zend_language_scanner.c" +#line 4062 "Zend/zend_language_scanner.c" +yy312: + YYDEBUG(312, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy313; + if (yych != 'a') goto yy150; yy313: YYDEBUG(313, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy314; - if (yych != 'a') goto yy151; + if (yych == 'S') goto yy314; + if (yych != 's') goto yy150; yy314: YYDEBUG(314, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'S') goto yy315; - if (yych != 's') goto yy151; + if (yych != 's') goto yy150; yy315: YYDEBUG(315, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy316; - if (yych != 's') goto yy151; -yy316: + if (yych != '_') goto yy150; YYDEBUG(316, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy151; + if (yych != '_') goto yy150; YYDEBUG(317, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy151; - YYDEBUG(318, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(319, *YYCURSOR); + YYDEBUG(318, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1715 "Zend/zend_language_scanner.l" +#line 1713 "Zend/zend_language_scanner.l" { return T_CLASS_C; } -#line 4100 "Zend/zend_language_scanner.c" +#line 4096 "Zend/zend_language_scanner.c" +yy319: + YYDEBUG(319, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy320; + if (yych != 'l') goto yy150; yy320: YYDEBUG(320, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy321; - if (yych != 'l') goto yy151; + if (yych == 'T') goto yy321; + if (yych != 't') goto yy150; yy321: YYDEBUG(321, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy322; - if (yych != 't') goto yy151; -yy322: + if (yych != '_') goto yy150; YYDEBUG(322, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy151; + if (yych == 'C') goto yy323; + if (yych != 'c') goto yy150; +yy323: YYDEBUG(323, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy324; - if (yych != 'c') goto yy151; + if (yych == 'O') goto yy324; + if (yych != 'o') goto yy150; yy324: YYDEBUG(324, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy325; - if (yych != 'o') goto yy151; + if (yych == 'M') goto yy325; + if (yych != 'm') goto yy150; yy325: YYDEBUG(325, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy326; - if (yych != 'm') goto yy151; + if (yych == 'P') goto yy326; + if (yych != 'p') goto yy150; yy326: YYDEBUG(326, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy327; - if (yych != 'p') goto yy151; + if (yych == 'I') goto yy327; + if (yych != 'i') goto yy150; yy327: YYDEBUG(327, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy328; - if (yych != 'i') goto yy151; + if (yych == 'L') goto yy328; + if (yych != 'l') goto yy150; yy328: YYDEBUG(328, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy329; - if (yych != 'l') goto yy151; + if (yych == 'E') goto yy329; + if (yych != 'e') goto yy150; yy329: YYDEBUG(329, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy330; - if (yych != 'e') goto yy151; + if (yych == 'R') goto yy330; + if (yych != 'r') goto yy150; yy330: YYDEBUG(330, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy331; - if (yych != 'r') goto yy151; -yy331: - YYDEBUG(331, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(332, *YYCURSOR); + YYDEBUG(331, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1384 "Zend/zend_language_scanner.l" +#line 1382 "Zend/zend_language_scanner.l" { return T_HALT_COMPILER; } -#line 4166 "Zend/zend_language_scanner.c" +#line 4162 "Zend/zend_language_scanner.c" +yy332: + YYDEBUG(332, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy336; + if (yych == 's') goto yy336; + goto yy150; yy333: YYDEBUG(333, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy337; - if (yych == 's') goto yy337; - goto yy151; + if (yych == 'E') goto yy334; + if (yych != 'e') goto yy150; yy334: YYDEBUG(334, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy335; - if (yych != 'e') goto yy151; -yy335: - YYDEBUG(335, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(336, *YYCURSOR); + YYDEBUG(335, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1364 "Zend/zend_language_scanner.l" +#line 1362 "Zend/zend_language_scanner.l" { return T_USE; } -#line 4190 "Zend/zend_language_scanner.c" +#line 4186 "Zend/zend_language_scanner.c" +yy336: + YYDEBUG(336, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy337; + if (yych != 'e') goto yy150; yy337: YYDEBUG(337, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy338; - if (yych != 'e') goto yy151; + if (yych == 'T') goto yy338; + if (yych != 't') goto yy150; yy338: YYDEBUG(338, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy339; - if (yych != 't') goto yy151; -yy339: - YYDEBUG(339, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(340, *YYCURSOR); + YYDEBUG(339, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1412 "Zend/zend_language_scanner.l" +#line 1410 "Zend/zend_language_scanner.l" { return T_UNSET; } -#line 4213 "Zend/zend_language_scanner.c" -yy341: - YYDEBUG(341, *YYCURSOR); +#line 4209 "Zend/zend_language_scanner.c" +yy340: + YYDEBUG(340, *YYCURSOR); ++YYCURSOR; YYFILL(7); yych = *YYCURSOR; -yy342: - YYDEBUG(342, *YYCURSOR); +yy341: + YYDEBUG(341, *YYCURSOR); if (yych <= 'S') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy341; - if (yych <= 0x1F) goto yy158; - goto yy341; + if (yych == '\t') goto yy340; + if (yych <= 0x1F) goto yy157; + goto yy340; } else { if (yych <= 'A') { - if (yych <= '@') goto yy158; - goto yy346; + if (yych <= '@') goto yy157; + goto yy345; } else { - if (yych <= 'B') goto yy344; - if (yych <= 'C') goto yy158; - goto yy349; + if (yych <= 'B') goto yy343; + if (yych <= 'C') goto yy157; + goto yy348; } } } else { if (yych <= 'I') { - if (yych == 'F') goto yy350; - if (yych <= 'H') goto yy158; - goto yy351; + if (yych == 'F') goto yy349; + if (yych <= 'H') goto yy157; + goto yy350; } else { if (yych <= 'O') { - if (yych <= 'N') goto yy158; - goto yy345; + if (yych <= 'N') goto yy157; + goto yy344; } else { - if (yych <= 'Q') goto yy158; - if (yych <= 'R') goto yy348; - goto yy347; + if (yych <= 'Q') goto yy157; + if (yych <= 'R') goto yy347; + goto yy346; } } } } else { if (yych <= 'f') { if (yych <= 'a') { - if (yych == 'U') goto yy343; - if (yych <= '`') goto yy158; - goto yy346; + if (yych == 'U') goto yy342; + if (yych <= '`') goto yy157; + goto yy345; } else { if (yych <= 'c') { - if (yych <= 'b') goto yy344; - goto yy158; + if (yych <= 'b') goto yy343; + goto yy157; } else { - if (yych <= 'd') goto yy349; - if (yych <= 'e') goto yy158; - goto yy350; + if (yych <= 'd') goto yy348; + if (yych <= 'e') goto yy157; + goto yy349; } } } else { if (yych <= 'q') { if (yych <= 'i') { - if (yych <= 'h') goto yy158; - goto yy351; + if (yych <= 'h') goto yy157; + goto yy350; } else { - if (yych == 'o') goto yy345; - goto yy158; + if (yych == 'o') goto yy344; + goto yy157; } } else { if (yych <= 's') { - if (yych <= 'r') goto yy348; - goto yy347; + if (yych <= 'r') goto yy347; + goto yy346; } else { - if (yych != 'u') goto yy158; + if (yych != 'u') goto yy157; } } } } +yy342: + YYDEBUG(342, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy409; + if (yych == 'n') goto yy409; + goto yy157; yy343: YYDEBUG(343, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy410; - if (yych == 'n') goto yy410; - goto yy158; -yy344: - YYDEBUG(344, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'O') { - if (yych == 'I') goto yy397; - if (yych <= 'N') goto yy158; - goto yy398; + if (yych == 'I') goto yy396; + if (yych <= 'N') goto yy157; + goto yy397; } else { if (yych <= 'i') { - if (yych <= 'h') goto yy158; - goto yy397; + if (yych <= 'h') goto yy157; + goto yy396; } else { - if (yych == 'o') goto yy398; - goto yy158; + if (yych == 'o') goto yy397; + goto yy157; } } +yy344: + YYDEBUG(344, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy388; + if (yych == 'b') goto yy388; + goto yy157; yy345: YYDEBUG(345, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy389; - if (yych == 'b') goto yy389; - goto yy158; + if (yych == 'R') goto yy381; + if (yych == 'r') goto yy381; + goto yy157; yy346: YYDEBUG(346, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy382; - if (yych == 'r') goto yy382; - goto yy158; + if (yych == 'T') goto yy373; + if (yych == 't') goto yy373; + goto yy157; yy347: YYDEBUG(347, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy374; - if (yych == 't') goto yy374; - goto yy158; + if (yych == 'E') goto yy371; + if (yych == 'e') goto yy371; + goto yy157; yy348: YYDEBUG(348, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy372; - if (yych == 'e') goto yy372; - goto yy158; + if (yych == 'O') goto yy367; + if (yych == 'o') goto yy367; + goto yy157; yy349: YYDEBUG(349, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy368; - if (yych == 'o') goto yy368; - goto yy158; + if (yych == 'L') goto yy360; + if (yych == 'l') goto yy360; + goto yy157; yy350: YYDEBUG(350, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy361; - if (yych == 'l') goto yy361; - goto yy158; + if (yych == 'N') goto yy351; + if (yych != 'n') goto yy157; yy351: YYDEBUG(351, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy352; - if (yych != 'n') goto yy158; + if (yych == 'T') goto yy352; + if (yych != 't') goto yy157; yy352: YYDEBUG(352, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy353; - if (yych != 't') goto yy158; + if (yych == 'E') goto yy353; + if (yych != 'e') goto yy355; yy353: YYDEBUG(353, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy354; - if (yych != 'e') goto yy356; + if (yych == 'G') goto yy358; + if (yych == 'g') goto yy358; + goto yy157; yy354: YYDEBUG(354, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy359; - if (yych == 'g') goto yy359; - goto yy158; -yy355: - YYDEBUG(355, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy356: - YYDEBUG(356, *YYCURSOR); +yy355: + YYDEBUG(355, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy355; - goto yy158; + if (yych == '\t') goto yy354; + goto yy157; } else { - if (yych <= ' ') goto yy355; - if (yych != ')') goto yy158; + if (yych <= ' ') goto yy354; + if (yych != ')') goto yy157; } - YYDEBUG(357, *YYCURSOR); + YYDEBUG(356, *YYCURSOR); ++YYCURSOR; - YYDEBUG(358, *YYCURSOR); + YYDEBUG(357, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1312 "Zend/zend_language_scanner.l" +#line 1310 "Zend/zend_language_scanner.l" { return T_INT_CAST; } -#line 4389 "Zend/zend_language_scanner.c" +#line 4385 "Zend/zend_language_scanner.c" +yy358: + YYDEBUG(358, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy359; + if (yych != 'e') goto yy157; yy359: YYDEBUG(359, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy360; - if (yych != 'e') goto yy158; + if (yych == 'R') goto yy354; + if (yych == 'r') goto yy354; + goto yy157; yy360: YYDEBUG(360, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy355; - if (yych == 'r') goto yy355; - goto yy158; + if (yych == 'O') goto yy361; + if (yych != 'o') goto yy157; yy361: YYDEBUG(361, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy362; - if (yych != 'o') goto yy158; + if (yych == 'A') goto yy362; + if (yych != 'a') goto yy157; yy362: YYDEBUG(362, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy363; - if (yych != 'a') goto yy158; + if (yych == 'T') goto yy363; + if (yych != 't') goto yy157; yy363: YYDEBUG(363, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy364; - if (yych != 't') goto yy158; -yy364: - YYDEBUG(364, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(365, *YYCURSOR); + YYDEBUG(364, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy364; - goto yy158; + if (yych == '\t') goto yy363; + goto yy157; } else { - if (yych <= ' ') goto yy364; - if (yych != ')') goto yy158; + if (yych <= ' ') goto yy363; + if (yych != ')') goto yy157; } - YYDEBUG(366, *YYCURSOR); + YYDEBUG(365, *YYCURSOR); ++YYCURSOR; - YYDEBUG(367, *YYCURSOR); + YYDEBUG(366, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1316 "Zend/zend_language_scanner.l" +#line 1314 "Zend/zend_language_scanner.l" { return T_DOUBLE_CAST; } -#line 4437 "Zend/zend_language_scanner.c" +#line 4433 "Zend/zend_language_scanner.c" +yy367: + YYDEBUG(367, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy368; + if (yych != 'u') goto yy157; yy368: YYDEBUG(368, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy369; - if (yych != 'u') goto yy158; + if (yych == 'B') goto yy369; + if (yych != 'b') goto yy157; yy369: YYDEBUG(369, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy370; - if (yych != 'b') goto yy158; + if (yych == 'L') goto yy370; + if (yych != 'l') goto yy157; yy370: YYDEBUG(370, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy371; - if (yych != 'l') goto yy158; + if (yych == 'E') goto yy363; + if (yych == 'e') goto yy363; + goto yy157; yy371: YYDEBUG(371, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy364; - if (yych == 'e') goto yy364; - goto yy158; + if (yych == 'A') goto yy372; + if (yych != 'a') goto yy157; yy372: YYDEBUG(372, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy373; - if (yych != 'a') goto yy158; + if (yych == 'L') goto yy363; + if (yych == 'l') goto yy363; + goto yy157; yy373: YYDEBUG(373, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy364; - if (yych == 'l') goto yy364; - goto yy158; + if (yych == 'R') goto yy374; + if (yych != 'r') goto yy157; yy374: YYDEBUG(374, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy375; - if (yych != 'r') goto yy158; + if (yych == 'I') goto yy375; + if (yych != 'i') goto yy157; yy375: YYDEBUG(375, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy376; - if (yych != 'i') goto yy158; + if (yych == 'N') goto yy376; + if (yych != 'n') goto yy157; yy376: YYDEBUG(376, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy377; - if (yych != 'n') goto yy158; + if (yych == 'G') goto yy377; + if (yych != 'g') goto yy157; yy377: YYDEBUG(377, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy378; - if (yych != 'g') goto yy158; -yy378: - YYDEBUG(378, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(379, *YYCURSOR); + YYDEBUG(378, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy378; - goto yy158; + if (yych == '\t') goto yy377; + goto yy157; } else { - if (yych <= ' ') goto yy378; - if (yych != ')') goto yy158; + if (yych <= ' ') goto yy377; + if (yych != ')') goto yy157; } - YYDEBUG(380, *YYCURSOR); + YYDEBUG(379, *YYCURSOR); ++YYCURSOR; - YYDEBUG(381, *YYCURSOR); + YYDEBUG(380, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1320 "Zend/zend_language_scanner.l" +#line 1318 "Zend/zend_language_scanner.l" { return T_STRING_CAST; } -#line 4511 "Zend/zend_language_scanner.c" +#line 4507 "Zend/zend_language_scanner.c" +yy381: + YYDEBUG(381, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy382; + if (yych != 'r') goto yy157; yy382: YYDEBUG(382, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy383; - if (yych != 'r') goto yy158; + if (yych == 'A') goto yy383; + if (yych != 'a') goto yy157; yy383: YYDEBUG(383, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy384; - if (yych != 'a') goto yy158; + if (yych == 'Y') goto yy384; + if (yych != 'y') goto yy157; yy384: YYDEBUG(384, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy385; - if (yych != 'y') goto yy158; -yy385: - YYDEBUG(385, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(386, *YYCURSOR); + YYDEBUG(385, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy385; - goto yy158; + if (yych == '\t') goto yy384; + goto yy157; } else { - if (yych <= ' ') goto yy385; - if (yych != ')') goto yy158; + if (yych <= ' ') goto yy384; + if (yych != ')') goto yy157; } - YYDEBUG(387, *YYCURSOR); + YYDEBUG(386, *YYCURSOR); ++YYCURSOR; - YYDEBUG(388, *YYCURSOR); + YYDEBUG(387, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1324 "Zend/zend_language_scanner.l" +#line 1322 "Zend/zend_language_scanner.l" { return T_ARRAY_CAST; } -#line 4548 "Zend/zend_language_scanner.c" +#line 4544 "Zend/zend_language_scanner.c" +yy388: + YYDEBUG(388, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'J') goto yy389; + if (yych != 'j') goto yy157; yy389: YYDEBUG(389, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'J') goto yy390; - if (yych != 'j') goto yy158; + if (yych == 'E') goto yy390; + if (yych != 'e') goto yy157; yy390: YYDEBUG(390, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy391; - if (yych != 'e') goto yy158; + if (yych == 'C') goto yy391; + if (yych != 'c') goto yy157; yy391: YYDEBUG(391, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy392; - if (yych != 'c') goto yy158; + if (yych == 'T') goto yy392; + if (yych != 't') goto yy157; yy392: YYDEBUG(392, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy393; - if (yych != 't') goto yy158; -yy393: - YYDEBUG(393, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(394, *YYCURSOR); + YYDEBUG(393, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy393; - goto yy158; + if (yych == '\t') goto yy392; + goto yy157; } else { - if (yych <= ' ') goto yy393; - if (yych != ')') goto yy158; + if (yych <= ' ') goto yy392; + if (yych != ')') goto yy157; } - YYDEBUG(395, *YYCURSOR); + YYDEBUG(394, *YYCURSOR); ++YYCURSOR; - YYDEBUG(396, *YYCURSOR); + YYDEBUG(395, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1328 "Zend/zend_language_scanner.l" +#line 1326 "Zend/zend_language_scanner.l" { return T_OBJECT_CAST; } -#line 4590 "Zend/zend_language_scanner.c" +#line 4586 "Zend/zend_language_scanner.c" +yy396: + YYDEBUG(396, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy406; + if (yych == 'n') goto yy406; + goto yy157; yy397: YYDEBUG(397, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy407; - if (yych == 'n') goto yy407; - goto yy158; + if (yych == 'O') goto yy398; + if (yych != 'o') goto yy157; yy398: YYDEBUG(398, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy399; - if (yych != 'o') goto yy158; + if (yych == 'L') goto yy399; + if (yych != 'l') goto yy157; yy399: YYDEBUG(399, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy400; - if (yych != 'l') goto yy158; + if (yych == 'E') goto yy404; + if (yych == 'e') goto yy404; + goto yy401; yy400: YYDEBUG(400, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy405; - if (yych == 'e') goto yy405; - goto yy402; -yy401: - YYDEBUG(401, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy402: - YYDEBUG(402, *YYCURSOR); +yy401: + YYDEBUG(401, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy401; - goto yy158; + if (yych == '\t') goto yy400; + goto yy157; } else { - if (yych <= ' ') goto yy401; - if (yych != ')') goto yy158; + if (yych <= ' ') goto yy400; + if (yych != ')') goto yy157; } - YYDEBUG(403, *YYCURSOR); + YYDEBUG(402, *YYCURSOR); ++YYCURSOR; - YYDEBUG(404, *YYCURSOR); + YYDEBUG(403, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1332 "Zend/zend_language_scanner.l" +#line 1330 "Zend/zend_language_scanner.l" { return T_BOOL_CAST; } -#line 4635 "Zend/zend_language_scanner.c" +#line 4631 "Zend/zend_language_scanner.c" +yy404: + YYDEBUG(404, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy405; + if (yych != 'a') goto yy157; yy405: YYDEBUG(405, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy406; - if (yych != 'a') goto yy158; + if (yych == 'N') goto yy400; + if (yych == 'n') goto yy400; + goto yy157; yy406: YYDEBUG(406, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy401; - if (yych == 'n') goto yy401; - goto yy158; + if (yych == 'A') goto yy407; + if (yych != 'a') goto yy157; yy407: YYDEBUG(407, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy408; - if (yych != 'a') goto yy158; + if (yych == 'R') goto yy408; + if (yych != 'r') goto yy157; yy408: YYDEBUG(408, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy409; - if (yych != 'r') goto yy158; + if (yych == 'Y') goto yy377; + if (yych == 'y') goto yy377; + goto yy157; yy409: YYDEBUG(409, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy378; - if (yych == 'y') goto yy378; - goto yy158; + if (yych == 'S') goto yy410; + if (yych != 's') goto yy157; yy410: YYDEBUG(410, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy411; - if (yych != 's') goto yy158; + if (yych == 'E') goto yy411; + if (yych != 'e') goto yy157; yy411: YYDEBUG(411, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy412; - if (yych != 'e') goto yy158; + if (yych == 'T') goto yy412; + if (yych != 't') goto yy157; yy412: YYDEBUG(412, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy413; - if (yych != 't') goto yy158; -yy413: - YYDEBUG(413, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(414, *YYCURSOR); + YYDEBUG(413, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy413; - goto yy158; + if (yych == '\t') goto yy412; + goto yy157; } else { - if (yych <= ' ') goto yy413; - if (yych != ')') goto yy158; + if (yych <= ' ') goto yy412; + if (yych != ')') goto yy157; } - YYDEBUG(415, *YYCURSOR); + YYDEBUG(414, *YYCURSOR); ++YYCURSOR; - YYDEBUG(416, *YYCURSOR); + YYDEBUG(415, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1336 "Zend/zend_language_scanner.l" +#line 1334 "Zend/zend_language_scanner.l" { return T_UNSET_CAST; } -#line 4699 "Zend/zend_language_scanner.c" +#line 4695 "Zend/zend_language_scanner.c" +yy416: + YYDEBUG(416, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy417; + if (yych != 'r') goto yy150; yy417: YYDEBUG(417, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy418; - if (yych != 'r') goto yy151; -yy418: - YYDEBUG(418, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(419, *YYCURSOR); + YYDEBUG(418, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1308 "Zend/zend_language_scanner.l" +#line 1306 "Zend/zend_language_scanner.l" { return T_VAR; } -#line 4717 "Zend/zend_language_scanner.c" +#line 4713 "Zend/zend_language_scanner.c" +yy419: + YYDEBUG(419, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy423; + if (yych == 'm') goto yy423; + goto yy150; yy420: YYDEBUG(420, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy424; - if (yych == 'm') goto yy424; - goto yy151; + if (yych == 'W') goto yy421; + if (yych != 'w') goto yy150; yy421: YYDEBUG(421, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'W') goto yy422; - if (yych != 'w') goto yy151; -yy422: - YYDEBUG(422, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(423, *YYCURSOR); + YYDEBUG(422, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1300 "Zend/zend_language_scanner.l" +#line 1298 "Zend/zend_language_scanner.l" { return T_NEW; } -#line 4741 "Zend/zend_language_scanner.c" +#line 4737 "Zend/zend_language_scanner.c" +yy423: + YYDEBUG(423, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy424; + if (yych != 'e') goto yy150; yy424: YYDEBUG(424, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy425; - if (yych != 'e') goto yy151; + if (yych == 'S') goto yy425; + if (yych != 's') goto yy150; yy425: YYDEBUG(425, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy426; - if (yych != 's') goto yy151; + if (yych == 'P') goto yy426; + if (yych != 'p') goto yy150; yy426: YYDEBUG(426, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy427; - if (yych != 'p') goto yy151; + if (yych == 'A') goto yy427; + if (yych != 'a') goto yy150; yy427: YYDEBUG(427, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy428; - if (yych != 'a') goto yy151; + if (yych == 'C') goto yy428; + if (yych != 'c') goto yy150; yy428: YYDEBUG(428, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy429; - if (yych != 'c') goto yy151; + if (yych == 'E') goto yy429; + if (yych != 'e') goto yy150; yy429: YYDEBUG(429, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy430; - if (yych != 'e') goto yy151; -yy430: - YYDEBUG(430, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(431, *YYCURSOR); + YYDEBUG(430, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1360 "Zend/zend_language_scanner.l" +#line 1358 "Zend/zend_language_scanner.l" { return T_NAMESPACE; } -#line 4784 "Zend/zend_language_scanner.c" +#line 4780 "Zend/zend_language_scanner.c" +yy431: + YYDEBUG(431, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) == '\n') goto yy435; + if (yych == '\r') goto yy436; yy432: YYDEBUG(432, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy436; - if (yych == '\r') goto yy437; -yy433: - YYDEBUG(433, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1926 "Zend/zend_language_scanner.l" +#line 1924 "Zend/zend_language_scanner.l" { BEGIN(INITIAL); return T_CLOSE_TAG; /* implicit ';' at php-end tag */ } -#line 4798 "Zend/zend_language_scanner.c" -yy434: - YYDEBUG(434, *YYCURSOR); +#line 4794 "Zend/zend_language_scanner.c" +yy433: + YYDEBUG(433, *YYCURSOR); ++YYCURSOR; - YYDEBUG(435, *YYCURSOR); + YYDEBUG(434, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1296 "Zend/zend_language_scanner.l" +#line 1294 "Zend/zend_language_scanner.l" { return T_COALESCE; } -#line 4808 "Zend/zend_language_scanner.c" +#line 4804 "Zend/zend_language_scanner.c" +yy435: + YYDEBUG(435, *YYCURSOR); + yych = *++YYCURSOR; + goto yy432; yy436: YYDEBUG(436, *YYCURSOR); yych = *++YYCURSOR; - goto yy433; + if (yych == '\n') goto yy435; + goto yy432; yy437: YYDEBUG(437, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy436; - goto yy433; -yy438: - YYDEBUG(438, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(439, *YYCURSOR); + YYDEBUG(438, *YYCURSOR); if (yych <= 'D') { - if (yych <= '/') goto yy154; - if (yych <= '9') goto yy438; - goto yy154; + if (yych <= '/') goto yy153; + if (yych <= '9') goto yy437; + goto yy153; } else { - if (yych <= 'E') goto yy157; - if (yych == 'e') goto yy157; - goto yy154; + if (yych <= 'E') goto yy156; + if (yych == 'e') goto yy156; + goto yy153; } -yy440: - YYDEBUG(440, *YYCURSOR); +yy439: + YYDEBUG(439, *YYCURSOR); ++YYCURSOR; - YYDEBUG(441, *YYCURSOR); + YYDEBUG(440, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1492 "Zend/zend_language_scanner.l" +#line 1490 "Zend/zend_language_scanner.l" { return T_CONCAT_EQUAL; } -#line 4843 "Zend/zend_language_scanner.c" -yy442: - YYDEBUG(442, *YYCURSOR); +#line 4839 "Zend/zend_language_scanner.c" +yy441: + YYDEBUG(441, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '.') goto yy158; - YYDEBUG(443, *YYCURSOR); + if (yych != '.') goto yy157; + YYDEBUG(442, *YYCURSOR); ++YYCURSOR; - YYDEBUG(444, *YYCURSOR); + YYDEBUG(443, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1292 "Zend/zend_language_scanner.l" +#line 1290 "Zend/zend_language_scanner.l" { return T_ELLIPSIS; } -#line 4856 "Zend/zend_language_scanner.c" -yy445: - YYDEBUG(445, *YYCURSOR); +#line 4852 "Zend/zend_language_scanner.c" +yy444: + YYDEBUG(444, *YYCURSOR); ++YYCURSOR; - YYDEBUG(446, *YYCURSOR); + YYDEBUG(445, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1284 "Zend/zend_language_scanner.l" +#line 1282 "Zend/zend_language_scanner.l" { return T_PAAMAYIM_NEKUDOTAYIM; } -#line 4866 "Zend/zend_language_scanner.c" -yy447: - YYDEBUG(447, *YYCURSOR); +#line 4862 "Zend/zend_language_scanner.c" +yy446: + YYDEBUG(446, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy448: - YYDEBUG(448, *YYCURSOR); +yy447: + YYDEBUG(447, *YYCURSOR); if (yych <= '\f') { - if (yych <= 0x08) goto yy105; - if (yych <= '\n') goto yy447; - goto yy105; + if (yych <= 0x08) goto yy104; + if (yych <= '\n') goto yy446; + goto yy104; } else { - if (yych <= '\r') goto yy447; - if (yych == ' ') goto yy447; - goto yy105; + if (yych <= '\r') goto yy446; + if (yych == ' ') goto yy446; + goto yy104; } -yy449: - YYDEBUG(449, *YYCURSOR); +yy448: + YYDEBUG(448, *YYCURSOR); ++YYCURSOR; - YYDEBUG(450, *YYCURSOR); + YYDEBUG(449, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1472 "Zend/zend_language_scanner.l" +#line 1470 "Zend/zend_language_scanner.l" { return T_MINUS_EQUAL; } -#line 4892 "Zend/zend_language_scanner.c" -yy451: - YYDEBUG(451, *YYCURSOR); +#line 4888 "Zend/zend_language_scanner.c" +yy450: + YYDEBUG(450, *YYCURSOR); ++YYCURSOR; - YYDEBUG(452, *YYCURSOR); + YYDEBUG(451, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1436 "Zend/zend_language_scanner.l" +#line 1434 "Zend/zend_language_scanner.l" { return T_DEC; } -#line 4902 "Zend/zend_language_scanner.c" -yy453: - YYDEBUG(453, *YYCURSOR); +#line 4898 "Zend/zend_language_scanner.c" +yy452: + YYDEBUG(452, *YYCURSOR); ++YYCURSOR; - YYDEBUG(454, *YYCURSOR); + YYDEBUG(453, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1258 "Zend/zend_language_scanner.l" +#line 1256 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_PROPERTY); return T_OBJECT_OPERATOR; } -#line 4913 "Zend/zend_language_scanner.c" -yy455: - YYDEBUG(455, *YYCURSOR); +#line 4909 "Zend/zend_language_scanner.c" +yy454: + YYDEBUG(454, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { - if (yych == 'I') goto yy462; - if (yych <= 'N') goto yy151; - goto yy463; + if (yych == 'I') goto yy461; + if (yych <= 'N') goto yy150; + goto yy462; } else { if (yych <= 'i') { - if (yych <= 'h') goto yy151; - goto yy462; + if (yych <= 'h') goto yy150; + goto yy461; } else { - if (yych == 'o') goto yy463; - goto yy151; + if (yych == 'o') goto yy462; + goto yy150; } } +yy455: + YYDEBUG(455, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy456; + if (yych != 'b') goto yy150; yy456: YYDEBUG(456, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy457; - if (yych != 'b') goto yy151; + if (yych == 'L') goto yy457; + if (yych != 'l') goto yy150; yy457: YYDEBUG(457, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy458; - if (yych != 'l') goto yy151; + if (yych == 'I') goto yy458; + if (yych != 'i') goto yy150; yy458: YYDEBUG(458, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy459; - if (yych != 'i') goto yy151; + if (yych == 'C') goto yy459; + if (yych != 'c') goto yy150; yy459: YYDEBUG(459, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy460; - if (yych != 'c') goto yy151; -yy460: - YYDEBUG(460, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(461, *YYCURSOR); + YYDEBUG(460, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1408 "Zend/zend_language_scanner.l" +#line 1406 "Zend/zend_language_scanner.l" { return T_PUBLIC; } -#line 4962 "Zend/zend_language_scanner.c" -yy462: - YYDEBUG(462, *YYCURSOR); +#line 4958 "Zend/zend_language_scanner.c" +yy461: + YYDEBUG(461, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'V') { - if (yych == 'N') goto yy471; - if (yych <= 'U') goto yy151; - goto yy472; + if (yych == 'N') goto yy470; + if (yych <= 'U') goto yy150; + goto yy471; } else { if (yych <= 'n') { - if (yych <= 'm') goto yy151; - goto yy471; + if (yych <= 'm') goto yy150; + goto yy470; } else { - if (yych == 'v') goto yy472; - goto yy151; + if (yych == 'v') goto yy471; + goto yy150; } } +yy462: + YYDEBUG(462, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy463; + if (yych != 't') goto yy150; yy463: YYDEBUG(463, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy464; - if (yych != 't') goto yy151; + if (yych == 'E') goto yy464; + if (yych != 'e') goto yy150; yy464: YYDEBUG(464, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy465; - if (yych != 'e') goto yy151; + if (yych == 'C') goto yy465; + if (yych != 'c') goto yy150; yy465: YYDEBUG(465, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy466; - if (yych != 'c') goto yy151; + if (yych == 'T') goto yy466; + if (yych != 't') goto yy150; yy466: YYDEBUG(466, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy467; - if (yych != 't') goto yy151; + if (yych == 'E') goto yy467; + if (yych != 'e') goto yy150; yy467: YYDEBUG(467, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy468; - if (yych != 'e') goto yy151; + if (yych == 'D') goto yy468; + if (yych != 'd') goto yy150; yy468: YYDEBUG(468, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy469; - if (yych != 'd') goto yy151; -yy469: - YYDEBUG(469, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(470, *YYCURSOR); + YYDEBUG(469, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1404 "Zend/zend_language_scanner.l" +#line 1402 "Zend/zend_language_scanner.l" { return T_PROTECTED; } -#line 5021 "Zend/zend_language_scanner.c" +#line 5017 "Zend/zend_language_scanner.c" +yy470: + YYDEBUG(470, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy476; + if (yych == 't') goto yy476; + goto yy150; yy471: YYDEBUG(471, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy477; - if (yych == 't') goto yy477; - goto yy151; + if (yych == 'A') goto yy472; + if (yych != 'a') goto yy150; yy472: YYDEBUG(472, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy473; - if (yych != 'a') goto yy151; + if (yych == 'T') goto yy473; + if (yych != 't') goto yy150; yy473: YYDEBUG(473, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy474; - if (yych != 't') goto yy151; + if (yych == 'E') goto yy474; + if (yych != 'e') goto yy150; yy474: YYDEBUG(474, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy475; - if (yych != 'e') goto yy151; -yy475: - YYDEBUG(475, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(476, *YYCURSOR); + YYDEBUG(475, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1400 "Zend/zend_language_scanner.l" +#line 1398 "Zend/zend_language_scanner.l" { return T_PRIVATE; } -#line 5055 "Zend/zend_language_scanner.c" -yy477: - YYDEBUG(477, *YYCURSOR); +#line 5051 "Zend/zend_language_scanner.c" +yy476: + YYDEBUG(476, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(478, *YYCURSOR); + YYDEBUG(477, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1234 "Zend/zend_language_scanner.l" +#line 1232 "Zend/zend_language_scanner.l" { return T_PRINT; } -#line 5068 "Zend/zend_language_scanner.c" +#line 5064 "Zend/zend_language_scanner.c" +yy478: + YYDEBUG(478, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy483; + if (yych == 'o') goto yy483; + goto yy150; yy479: YYDEBUG(479, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy484; - if (yych == 'o') goto yy484; - goto yy151; + if (yych == 'T') goto yy480; + if (yych != 't') goto yy150; yy480: YYDEBUG(480, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy481; - if (yych != 't') goto yy151; + if (yych == 'O') goto yy481; + if (yych != 'o') goto yy150; yy481: YYDEBUG(481, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy482; - if (yych != 'o') goto yy151; -yy482: - YYDEBUG(482, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(483, *YYCURSOR); + YYDEBUG(482, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1226 "Zend/zend_language_scanner.l" +#line 1224 "Zend/zend_language_scanner.l" { return T_GOTO; } -#line 5097 "Zend/zend_language_scanner.c" +#line 5093 "Zend/zend_language_scanner.c" +yy483: + YYDEBUG(483, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy484; + if (yych != 'b') goto yy150; yy484: YYDEBUG(484, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy485; - if (yych != 'b') goto yy151; + if (yych == 'A') goto yy485; + if (yych != 'a') goto yy150; yy485: YYDEBUG(485, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy486; - if (yych != 'a') goto yy151; + if (yych == 'L') goto yy486; + if (yych != 'l') goto yy150; yy486: YYDEBUG(486, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy487; - if (yych != 'l') goto yy151; -yy487: - YYDEBUG(487, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(488, *YYCURSOR); + YYDEBUG(487, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1372 "Zend/zend_language_scanner.l" +#line 1370 "Zend/zend_language_scanner.l" { return T_GLOBAL; } -#line 5125 "Zend/zend_language_scanner.c" +#line 5121 "Zend/zend_language_scanner.c" +yy488: + YYDEBUG(488, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '<') goto yy496; + goto yy157; yy489: YYDEBUG(489, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '<') goto yy497; - goto yy158; + goto yy144; yy490: YYDEBUG(490, *YYCURSOR); yych = *++YYCURSOR; - goto yy145; + goto yy142; yy491: YYDEBUG(491, *YYCURSOR); yych = *++YYCURSOR; - goto yy143; + if (yych == 'E') goto yy492; + if (yych != 'e') goto yy150; yy492: YYDEBUG(492, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy493; - if (yych != 'e') goto yy151; + if (yych == 'A') goto yy493; + if (yych != 'a') goto yy150; yy493: YYDEBUG(493, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy494; - if (yych != 'a') goto yy151; + if (yych == 'K') goto yy494; + if (yych != 'k') goto yy150; yy494: YYDEBUG(494, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'K') goto yy495; - if (yych != 'k') goto yy151; -yy495: - YYDEBUG(495, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(496, *YYCURSOR); + YYDEBUG(495, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1218 "Zend/zend_language_scanner.l" +#line 1216 "Zend/zend_language_scanner.l" { return T_BREAK; } -#line 5166 "Zend/zend_language_scanner.c" +#line 5162 "Zend/zend_language_scanner.c" +yy496: + YYDEBUG(496, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '<') goto yy219; + goto yy157; yy497: YYDEBUG(497, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '<') goto yy220; - goto yy158; + if (yych == 'A') goto yy504; + if (yych == 'a') goto yy504; + goto yy150; yy498: YYDEBUG(498, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy505; - if (yych == 'a') goto yy505; - goto yy151; + if (yych == 'I') goto yy499; + if (yych != 'i') goto yy150; yy499: YYDEBUG(499, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy500; - if (yych != 'i') goto yy151; + if (yych == 'T') goto yy500; + if (yych != 't') goto yy150; yy500: YYDEBUG(500, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy501; - if (yych != 't') goto yy151; + if (yych == 'C') goto yy501; + if (yych != 'c') goto yy150; yy501: YYDEBUG(501, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy502; - if (yych != 'c') goto yy151; + if (yych == 'H') goto yy502; + if (yych != 'h') goto yy150; yy502: YYDEBUG(502, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy503; - if (yych != 'h') goto yy151; -yy503: - YYDEBUG(503, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(504, *YYCURSOR); + YYDEBUG(503, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1202 "Zend/zend_language_scanner.l" +#line 1200 "Zend/zend_language_scanner.l" { return T_SWITCH; } -#line 5210 "Zend/zend_language_scanner.c" +#line 5206 "Zend/zend_language_scanner.c" +yy504: + YYDEBUG(504, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy505; + if (yych != 't') goto yy150; yy505: YYDEBUG(505, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy506; - if (yych != 't') goto yy151; + if (yych == 'I') goto yy506; + if (yych != 'i') goto yy150; yy506: YYDEBUG(506, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy507; - if (yych != 'i') goto yy151; + if (yych == 'C') goto yy507; + if (yych != 'c') goto yy150; yy507: YYDEBUG(507, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy508; - if (yych != 'c') goto yy151; -yy508: - YYDEBUG(508, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(509, *YYCURSOR); + YYDEBUG(508, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1388 "Zend/zend_language_scanner.l" +#line 1386 "Zend/zend_language_scanner.l" { return T_STATIC; } -#line 5238 "Zend/zend_language_scanner.c" +#line 5234 "Zend/zend_language_scanner.c" +yy509: + YYDEBUG(509, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy520; + if (yych == 's') goto yy520; + goto yy150; yy510: YYDEBUG(510, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy521; - if (yych == 's') goto yy521; - goto yy151; + if (yych == 'D') goto yy518; + if (yych == 'd') goto yy518; + goto yy150; yy511: YYDEBUG(511, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy519; - if (yych == 'd') goto yy519; - goto yy151; + if (yych == 'R') goto yy514; + if (yych == 'r') goto yy514; + goto yy150; yy512: YYDEBUG(512, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy515; - if (yych == 'r') goto yy515; - goto yy151; -yy513: - YYDEBUG(513, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(514, *YYCURSOR); + YYDEBUG(513, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1198 "Zend/zend_language_scanner.l" +#line 1196 "Zend/zend_language_scanner.l" { return T_AS; } -#line 5269 "Zend/zend_language_scanner.c" +#line 5265 "Zend/zend_language_scanner.c" +yy514: + YYDEBUG(514, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy515; + if (yych != 'a') goto yy150; yy515: YYDEBUG(515, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy516; - if (yych != 'a') goto yy151; + if (yych == 'Y') goto yy516; + if (yych != 'y') goto yy150; yy516: YYDEBUG(516, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy517; - if (yych != 'y') goto yy151; -yy517: - YYDEBUG(517, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(518, *YYCURSOR); + YYDEBUG(517, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1424 "Zend/zend_language_scanner.l" +#line 1422 "Zend/zend_language_scanner.l" { return T_ARRAY; } -#line 5292 "Zend/zend_language_scanner.c" -yy519: - YYDEBUG(519, *YYCURSOR); +#line 5288 "Zend/zend_language_scanner.c" +yy518: + YYDEBUG(518, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(520, *YYCURSOR); + YYDEBUG(519, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1532 "Zend/zend_language_scanner.l" +#line 1530 "Zend/zend_language_scanner.l" { return T_LOGICAL_AND; } -#line 5305 "Zend/zend_language_scanner.c" +#line 5301 "Zend/zend_language_scanner.c" +yy520: + YYDEBUG(520, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy521; + if (yych != 't') goto yy150; yy521: YYDEBUG(521, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy522; - if (yych != 't') goto yy151; + if (yych == 'R') goto yy522; + if (yych != 'r') goto yy150; yy522: YYDEBUG(522, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy523; - if (yych != 'r') goto yy151; + if (yych == 'A') goto yy523; + if (yych != 'a') goto yy150; yy523: YYDEBUG(523, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy524; - if (yych != 'a') goto yy151; + if (yych == 'C') goto yy524; + if (yych != 'c') goto yy150; yy524: YYDEBUG(524, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy525; - if (yych != 'c') goto yy151; + if (yych == 'T') goto yy525; + if (yych != 't') goto yy150; yy525: YYDEBUG(525, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy526; - if (yych != 't') goto yy151; -yy526: - YYDEBUG(526, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(527, *YYCURSOR); + YYDEBUG(526, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1392 "Zend/zend_language_scanner.l" +#line 1390 "Zend/zend_language_scanner.l" { return T_ABSTRACT; } -#line 5343 "Zend/zend_language_scanner.c" +#line 5339 "Zend/zend_language_scanner.c" +yy527: + YYDEBUG(527, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy528; + if (yych != 'i') goto yy150; yy528: YYDEBUG(528, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy529; - if (yych != 'i') goto yy151; + if (yych == 'L') goto yy529; + if (yych != 'l') goto yy150; yy529: YYDEBUG(529, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy530; - if (yych != 'l') goto yy151; + if (yych == 'E') goto yy530; + if (yych != 'e') goto yy150; yy530: YYDEBUG(530, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy531; - if (yych != 'e') goto yy151; -yy531: - YYDEBUG(531, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(532, *YYCURSOR); + YYDEBUG(531, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1158 "Zend/zend_language_scanner.l" +#line 1156 "Zend/zend_language_scanner.l" { return T_WHILE; } -#line 5371 "Zend/zend_language_scanner.c" -yy533: - YYDEBUG(533, *YYCURSOR); +#line 5367 "Zend/zend_language_scanner.c" +yy532: + YYDEBUG(532, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(534, *YYCURSOR); + YYDEBUG(533, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1142 "Zend/zend_language_scanner.l" +#line 1140 "Zend/zend_language_scanner.l" { return T_IF; } -#line 5384 "Zend/zend_language_scanner.c" +#line 5380 "Zend/zend_language_scanner.c" +yy534: + YYDEBUG(534, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy576; + if (yych == 'p') goto yy576; + goto yy150; yy535: YYDEBUG(535, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy577; - if (yych == 'p') goto yy577; - goto yy151; -yy536: - YYDEBUG(536, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= 'C') { - if (yych <= 'B') goto yy151; - goto yy544; - } else { - if (yych <= 'R') goto yy151; - if (yych <= 'S') goto yy542; + if (yych <= 'B') goto yy150; goto yy543; + } else { + if (yych <= 'R') goto yy150; + if (yych <= 'S') goto yy541; + goto yy542; } } else { if (yych <= 'r') { - if (yych == 'c') goto yy544; - goto yy151; + if (yych == 'c') goto yy543; + goto yy150; } else { - if (yych <= 's') goto yy542; - if (yych <= 't') goto yy543; - goto yy151; + if (yych <= 's') goto yy541; + if (yych <= 't') goto yy542; + goto yy150; } } +yy536: + YYDEBUG(536, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy537; + if (yych != 's') goto yy150; yy537: YYDEBUG(537, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy538; - if (yych != 's') goto yy151; + if (yych == 'E') goto yy538; + if (yych != 'e') goto yy150; yy538: YYDEBUG(538, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy539; - if (yych != 'e') goto yy151; + if (yych == 'T') goto yy539; + if (yych != 't') goto yy150; yy539: YYDEBUG(539, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy540; - if (yych != 't') goto yy151; -yy540: - YYDEBUG(540, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(541, *YYCURSOR); + YYDEBUG(540, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1376 "Zend/zend_language_scanner.l" +#line 1374 "Zend/zend_language_scanner.l" { return T_ISSET; } -#line 5440 "Zend/zend_language_scanner.c" +#line 5436 "Zend/zend_language_scanner.c" +yy541: + YYDEBUG(541, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy562; + if (yych == 't') goto yy562; + goto yy150; yy542: YYDEBUG(542, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy563; - if (yych == 't') goto yy563; - goto yy151; + if (yych == 'E') goto yy555; + if (yych == 'e') goto yy555; + goto yy150; yy543: YYDEBUG(543, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy556; - if (yych == 'e') goto yy556; - goto yy151; + if (yych == 'L') goto yy544; + if (yych != 'l') goto yy150; yy544: YYDEBUG(544, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy545; - if (yych != 'l') goto yy151; + if (yych == 'U') goto yy545; + if (yych != 'u') goto yy150; yy545: YYDEBUG(545, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy546; - if (yych != 'u') goto yy151; + if (yych == 'D') goto yy546; + if (yych != 'd') goto yy150; yy546: YYDEBUG(546, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy547; - if (yych != 'd') goto yy151; + if (yych == 'E') goto yy547; + if (yych != 'e') goto yy150; yy547: YYDEBUG(547, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy548; - if (yych != 'e') goto yy151; -yy548: - YYDEBUG(548, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy150; + if (yych >= '0') goto yy149; } else { - if (yych <= '@') goto yy549; - if (yych <= 'Z') goto yy150; + if (yych <= '@') goto yy548; + if (yych <= 'Z') goto yy149; } } else { if (yych <= '`') { - if (yych <= '_') goto yy550; + if (yych <= '_') goto yy549; } else { - if (yych <= 'z') goto yy150; - if (yych >= 0x7F) goto yy150; + if (yych <= 'z') goto yy149; + if (yych >= 0x7F) goto yy149; } } -yy549: - YYDEBUG(549, *YYCURSOR); +yy548: + YYDEBUG(548, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1344 "Zend/zend_language_scanner.l" +#line 1342 "Zend/zend_language_scanner.l" { return T_INCLUDE; } -#line 5498 "Zend/zend_language_scanner.c" +#line 5494 "Zend/zend_language_scanner.c" +yy549: + YYDEBUG(549, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy550; + if (yych != 'o') goto yy150; yy550: YYDEBUG(550, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy551; - if (yych != 'o') goto yy151; + if (yych == 'N') goto yy551; + if (yych != 'n') goto yy150; yy551: YYDEBUG(551, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy552; - if (yych != 'n') goto yy151; + if (yych == 'C') goto yy552; + if (yych != 'c') goto yy150; yy552: YYDEBUG(552, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy553; - if (yych != 'c') goto yy151; + if (yych == 'E') goto yy553; + if (yych != 'e') goto yy150; yy553: YYDEBUG(553, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy554; - if (yych != 'e') goto yy151; -yy554: - YYDEBUG(554, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(555, *YYCURSOR); + YYDEBUG(554, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1348 "Zend/zend_language_scanner.l" +#line 1346 "Zend/zend_language_scanner.l" { return T_INCLUDE_ONCE; } -#line 5531 "Zend/zend_language_scanner.c" +#line 5527 "Zend/zend_language_scanner.c" +yy555: + YYDEBUG(555, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy556; + if (yych != 'r') goto yy150; yy556: YYDEBUG(556, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy557; - if (yych != 'r') goto yy151; + if (yych == 'F') goto yy557; + if (yych != 'f') goto yy150; yy557: YYDEBUG(557, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy558; - if (yych != 'f') goto yy151; + if (yych == 'A') goto yy558; + if (yych != 'a') goto yy150; yy558: YYDEBUG(558, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy559; - if (yych != 'a') goto yy151; + if (yych == 'C') goto yy559; + if (yych != 'c') goto yy150; yy559: YYDEBUG(559, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy560; - if (yych != 'c') goto yy151; + if (yych == 'E') goto yy560; + if (yych != 'e') goto yy150; yy560: YYDEBUG(560, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy561; - if (yych != 'e') goto yy151; -yy561: - YYDEBUG(561, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(562, *YYCURSOR); + YYDEBUG(561, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1242 "Zend/zend_language_scanner.l" +#line 1240 "Zend/zend_language_scanner.l" { return T_INTERFACE; } -#line 5569 "Zend/zend_language_scanner.c" -yy563: - YYDEBUG(563, *YYCURSOR); +#line 5565 "Zend/zend_language_scanner.c" +yy562: + YYDEBUG(562, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'E') { - if (yych == 'A') goto yy564; - if (yych <= 'D') goto yy151; - goto yy565; + if (yych == 'A') goto yy563; + if (yych <= 'D') goto yy150; + goto yy564; } else { if (yych <= 'a') { - if (yych <= '`') goto yy151; + if (yych <= '`') goto yy150; } else { - if (yych == 'e') goto yy565; - goto yy151; + if (yych == 'e') goto yy564; + goto yy150; } } +yy563: + YYDEBUG(563, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy570; + if (yych == 'n') goto yy570; + goto yy150; yy564: YYDEBUG(564, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy571; - if (yych == 'n') goto yy571; - goto yy151; + if (yych == 'A') goto yy565; + if (yych != 'a') goto yy150; yy565: YYDEBUG(565, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy566; - if (yych != 'a') goto yy151; + if (yych == 'D') goto yy566; + if (yych != 'd') goto yy150; yy566: YYDEBUG(566, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy567; - if (yych != 'd') goto yy151; + if (yych == 'O') goto yy567; + if (yych != 'o') goto yy150; yy567: YYDEBUG(567, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy568; - if (yych != 'o') goto yy151; + if (yych == 'F') goto yy568; + if (yych != 'f') goto yy150; yy568: YYDEBUG(568, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy569; - if (yych != 'f') goto yy151; -yy569: - YYDEBUG(569, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(570, *YYCURSOR); + YYDEBUG(569, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1368 "Zend/zend_language_scanner.l" +#line 1366 "Zend/zend_language_scanner.l" { return T_INSTEADOF; } -#line 5623 "Zend/zend_language_scanner.c" +#line 5619 "Zend/zend_language_scanner.c" +yy570: + YYDEBUG(570, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy571; + if (yych != 'c') goto yy150; yy571: YYDEBUG(571, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy572; - if (yych != 'c') goto yy151; + if (yych == 'E') goto yy572; + if (yych != 'e') goto yy150; yy572: YYDEBUG(572, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy573; - if (yych != 'e') goto yy151; + if (yych == 'O') goto yy573; + if (yych != 'o') goto yy150; yy573: YYDEBUG(573, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy574; - if (yych != 'o') goto yy151; + if (yych == 'F') goto yy574; + if (yych != 'f') goto yy150; yy574: YYDEBUG(574, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy575; - if (yych != 'f') goto yy151; -yy575: - YYDEBUG(575, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(576, *YYCURSOR); + YYDEBUG(575, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1194 "Zend/zend_language_scanner.l" +#line 1192 "Zend/zend_language_scanner.l" { return T_INSTANCEOF; } -#line 5656 "Zend/zend_language_scanner.c" +#line 5652 "Zend/zend_language_scanner.c" +yy576: + YYDEBUG(576, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy577; + if (yych != 'l') goto yy150; yy577: YYDEBUG(577, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy578; - if (yych != 'l') goto yy151; + if (yych == 'E') goto yy578; + if (yych != 'e') goto yy150; yy578: YYDEBUG(578, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy579; - if (yych != 'e') goto yy151; + if (yych == 'M') goto yy579; + if (yych != 'm') goto yy150; yy579: YYDEBUG(579, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy580; - if (yych != 'm') goto yy151; + if (yych == 'E') goto yy580; + if (yych != 'e') goto yy150; yy580: YYDEBUG(580, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy581; - if (yych != 'e') goto yy151; + if (yych == 'N') goto yy581; + if (yych != 'n') goto yy150; yy581: YYDEBUG(581, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy582; - if (yych != 'n') goto yy151; + if (yych == 'T') goto yy582; + if (yych != 't') goto yy150; yy582: YYDEBUG(582, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy583; - if (yych != 't') goto yy151; + if (yych == 'S') goto yy583; + if (yych != 's') goto yy150; yy583: YYDEBUG(583, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy584; - if (yych != 's') goto yy151; -yy584: - YYDEBUG(584, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(585, *YYCURSOR); + YYDEBUG(584, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1254 "Zend/zend_language_scanner.l" +#line 1252 "Zend/zend_language_scanner.l" { return T_IMPLEMENTS; } -#line 5704 "Zend/zend_language_scanner.c" +#line 5700 "Zend/zend_language_scanner.c" +yy585: + YYDEBUG(585, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy593; + if (yych == 'r') goto yy593; + goto yy150; yy586: YYDEBUG(586, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy594; - if (yych == 'r') goto yy594; - goto yy151; -yy587: - YYDEBUG(587, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'Y') { - if (yych == 'A') goto yy590; - if (yych <= 'X') goto yy151; + if (yych == 'A') goto yy589; + if (yych <= 'X') goto yy150; } else { if (yych <= 'a') { - if (yych <= '`') goto yy151; - goto yy590; + if (yych <= '`') goto yy150; + goto yy589; } else { - if (yych != 'y') goto yy151; + if (yych != 'y') goto yy150; } } - YYDEBUG(588, *YYCURSOR); + YYDEBUG(587, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(589, *YYCURSOR); + YYDEBUG(588, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1126 "Zend/zend_language_scanner.l" +#line 1124 "Zend/zend_language_scanner.l" { return T_TRY; } -#line 5736 "Zend/zend_language_scanner.c" +#line 5732 "Zend/zend_language_scanner.c" +yy589: + YYDEBUG(589, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy590; + if (yych != 'i') goto yy150; yy590: YYDEBUG(590, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy591; - if (yych != 'i') goto yy151; + if (yych == 'T') goto yy591; + if (yych != 't') goto yy150; yy591: YYDEBUG(591, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy592; - if (yych != 't') goto yy151; -yy592: - YYDEBUG(592, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(593, *YYCURSOR); + YYDEBUG(592, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1246 "Zend/zend_language_scanner.l" +#line 1244 "Zend/zend_language_scanner.l" { return T_TRAIT; } -#line 5759 "Zend/zend_language_scanner.c" +#line 5755 "Zend/zend_language_scanner.c" +yy593: + YYDEBUG(593, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy594; + if (yych != 'o') goto yy150; yy594: YYDEBUG(594, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy595; - if (yych != 'o') goto yy151; + if (yych == 'W') goto yy595; + if (yych != 'w') goto yy150; yy595: YYDEBUG(595, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'W') goto yy596; - if (yych != 'w') goto yy151; -yy596: - YYDEBUG(596, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(597, *YYCURSOR); + YYDEBUG(596, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1138 "Zend/zend_language_scanner.l" +#line 1136 "Zend/zend_language_scanner.l" { return T_THROW; } -#line 5782 "Zend/zend_language_scanner.c" +#line 5778 "Zend/zend_language_scanner.c" +yy597: + YYDEBUG(597, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy598; + if (yych != 'e') goto yy150; yy598: YYDEBUG(598, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy599; - if (yych != 'e') goto yy151; + if (yych == 'L') goto yy599; + if (yych != 'l') goto yy150; yy599: YYDEBUG(599, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy600; - if (yych != 'l') goto yy151; + if (yych == 'D') goto yy600; + if (yych != 'd') goto yy150; yy600: YYDEBUG(600, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy601; - if (yych != 'd') goto yy151; -yy601: - YYDEBUG(601, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(602, *YYCURSOR); + YYDEBUG(601, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1122 "Zend/zend_language_scanner.l" +#line 1120 "Zend/zend_language_scanner.l" { return T_YIELD; } -#line 5810 "Zend/zend_language_scanner.c" -yy603: - YYDEBUG(603, *YYCURSOR); +#line 5806 "Zend/zend_language_scanner.c" +yy602: + YYDEBUG(602, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { - if (yych == 'Q') goto yy605; - if (yych <= 'S') goto yy151; + if (yych == 'Q') goto yy604; + if (yych <= 'S') goto yy150; } else { if (yych <= 'q') { - if (yych <= 'p') goto yy151; - goto yy605; + if (yych <= 'p') goto yy150; + goto yy604; } else { - if (yych != 't') goto yy151; + if (yych != 't') goto yy150; } } + YYDEBUG(603, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy616; + if (yych == 'u') goto yy616; + goto yy150; +yy604: YYDEBUG(604, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy617; - if (yych == 'u') goto yy617; - goto yy151; + if (yych == 'U') goto yy605; + if (yych != 'u') goto yy150; yy605: YYDEBUG(605, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy606; - if (yych != 'u') goto yy151; + if (yych == 'I') goto yy606; + if (yych != 'i') goto yy150; yy606: YYDEBUG(606, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy607; - if (yych != 'i') goto yy151; + if (yych == 'R') goto yy607; + if (yych != 'r') goto yy150; yy607: YYDEBUG(607, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy608; - if (yych != 'r') goto yy151; + if (yych == 'E') goto yy608; + if (yych != 'e') goto yy150; yy608: YYDEBUG(608, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy609; - if (yych != 'e') goto yy151; -yy609: - YYDEBUG(609, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy150; + if (yych >= '0') goto yy149; } else { - if (yych <= '@') goto yy610; - if (yych <= 'Z') goto yy150; + if (yych <= '@') goto yy609; + if (yych <= 'Z') goto yy149; } } else { if (yych <= '`') { - if (yych <= '_') goto yy611; + if (yych <= '_') goto yy610; } else { - if (yych <= 'z') goto yy150; - if (yych >= 0x7F) goto yy150; + if (yych <= 'z') goto yy149; + if (yych >= 0x7F) goto yy149; } } -yy610: - YYDEBUG(610, *YYCURSOR); +yy609: + YYDEBUG(609, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1352 "Zend/zend_language_scanner.l" +#line 1350 "Zend/zend_language_scanner.l" { return T_REQUIRE; } -#line 5875 "Zend/zend_language_scanner.c" +#line 5871 "Zend/zend_language_scanner.c" +yy610: + YYDEBUG(610, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy611; + if (yych != 'o') goto yy150; yy611: YYDEBUG(611, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy612; - if (yych != 'o') goto yy151; + if (yych == 'N') goto yy612; + if (yych != 'n') goto yy150; yy612: YYDEBUG(612, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy613; - if (yych != 'n') goto yy151; + if (yych == 'C') goto yy613; + if (yych != 'c') goto yy150; yy613: YYDEBUG(613, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy614; - if (yych != 'c') goto yy151; + if (yych == 'E') goto yy614; + if (yych != 'e') goto yy150; yy614: YYDEBUG(614, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy615; - if (yych != 'e') goto yy151; -yy615: - YYDEBUG(615, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(616, *YYCURSOR); + YYDEBUG(615, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1356 "Zend/zend_language_scanner.l" +#line 1354 "Zend/zend_language_scanner.l" { return T_REQUIRE_ONCE; } -#line 5908 "Zend/zend_language_scanner.c" +#line 5904 "Zend/zend_language_scanner.c" +yy616: + YYDEBUG(616, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy617; + if (yych != 'r') goto yy150; yy617: YYDEBUG(617, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy618; - if (yych != 'r') goto yy151; + if (yych == 'N') goto yy618; + if (yych != 'n') goto yy150; yy618: YYDEBUG(618, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy619; - if (yych != 'n') goto yy151; -yy619: - YYDEBUG(619, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(620, *YYCURSOR); + YYDEBUG(619, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1118 "Zend/zend_language_scanner.l" +#line 1116 "Zend/zend_language_scanner.l" { return T_RETURN; } -#line 5931 "Zend/zend_language_scanner.c" -yy621: - YYDEBUG(621, *YYCURSOR); +#line 5927 "Zend/zend_language_scanner.c" +yy620: + YYDEBUG(620, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= 'L') { - if (yych <= 'K') goto yy151; - goto yy644; + if (yych <= 'K') goto yy150; + goto yy643; } else { - if (yych <= 'R') goto yy151; - if (yych <= 'S') goto yy643; - goto yy642; + if (yych <= 'R') goto yy150; + if (yych <= 'S') goto yy642; + goto yy641; } } else { if (yych <= 'r') { - if (yych == 'l') goto yy644; - goto yy151; + if (yych == 'l') goto yy643; + goto yy150; } else { - if (yych <= 's') goto yy643; - if (yych <= 't') goto yy642; - goto yy151; + if (yych <= 's') goto yy642; + if (yych <= 't') goto yy641; + goto yy150; } } -yy622: - YYDEBUG(622, *YYCURSOR); +yy621: + YYDEBUG(621, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { - if (yych == 'A') goto yy634; - if (yych <= 'N') goto yy151; - goto yy635; + if (yych == 'A') goto yy633; + if (yych <= 'N') goto yy150; + goto yy634; } else { if (yych <= 'a') { - if (yych <= '`') goto yy151; - goto yy634; + if (yych <= '`') goto yy150; + goto yy633; } else { - if (yych == 'o') goto yy635; - goto yy151; + if (yych == 'o') goto yy634; + goto yy150; } } +yy622: + YYDEBUG(622, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy623; + if (yych != 'n') goto yy150; yy623: YYDEBUG(623, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy624; - if (yych != 'n') goto yy151; -yy624: - YYDEBUG(624, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'T') { - if (yych <= 'R') goto yy151; - if (yych >= 'T') goto yy626; + if (yych <= 'R') goto yy150; + if (yych >= 'T') goto yy625; } else { - if (yych <= 'r') goto yy151; - if (yych <= 's') goto yy625; - if (yych <= 't') goto yy626; - goto yy151; + if (yych <= 'r') goto yy150; + if (yych <= 's') goto yy624; + if (yych <= 't') goto yy625; + goto yy150; } +yy624: + YYDEBUG(624, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy631; + if (yych == 't') goto yy631; + goto yy150; yy625: YYDEBUG(625, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy632; - if (yych == 't') goto yy632; - goto yy151; + if (yych == 'I') goto yy626; + if (yych != 'i') goto yy150; yy626: YYDEBUG(626, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy627; - if (yych != 'i') goto yy151; + if (yych == 'N') goto yy627; + if (yych != 'n') goto yy150; yy627: YYDEBUG(627, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy628; - if (yych != 'n') goto yy151; + if (yych == 'U') goto yy628; + if (yych != 'u') goto yy150; yy628: YYDEBUG(628, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy629; - if (yych != 'u') goto yy151; + if (yych == 'E') goto yy629; + if (yych != 'e') goto yy150; yy629: YYDEBUG(629, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy630; - if (yych != 'e') goto yy151; -yy630: - YYDEBUG(630, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(631, *YYCURSOR); + YYDEBUG(630, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1222 "Zend/zend_language_scanner.l" +#line 1220 "Zend/zend_language_scanner.l" { return T_CONTINUE; } -#line 6025 "Zend/zend_language_scanner.c" -yy632: - YYDEBUG(632, *YYCURSOR); +#line 6021 "Zend/zend_language_scanner.c" +yy631: + YYDEBUG(631, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(633, *YYCURSOR); + YYDEBUG(632, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1114 "Zend/zend_language_scanner.l" +#line 1112 "Zend/zend_language_scanner.l" { return T_CONST; } -#line 6038 "Zend/zend_language_scanner.c" +#line 6034 "Zend/zend_language_scanner.c" +yy633: + YYDEBUG(633, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy638; + if (yych == 's') goto yy638; + goto yy150; yy634: YYDEBUG(634, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy639; - if (yych == 's') goto yy639; - goto yy151; + if (yych == 'N') goto yy635; + if (yych != 'n') goto yy150; yy635: YYDEBUG(635, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy636; - if (yych != 'n') goto yy151; + if (yych == 'E') goto yy636; + if (yych != 'e') goto yy150; yy636: YYDEBUG(636, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy637; - if (yych != 'e') goto yy151; -yy637: - YYDEBUG(637, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(638, *YYCURSOR); + YYDEBUG(637, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1304 "Zend/zend_language_scanner.l" +#line 1302 "Zend/zend_language_scanner.l" { return T_CLONE; } -#line 6067 "Zend/zend_language_scanner.c" +#line 6063 "Zend/zend_language_scanner.c" +yy638: + YYDEBUG(638, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy639; + if (yych != 's') goto yy150; yy639: YYDEBUG(639, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy640; - if (yych != 's') goto yy151; -yy640: - YYDEBUG(640, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(641, *YYCURSOR); + YYDEBUG(640, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1238 "Zend/zend_language_scanner.l" +#line 1236 "Zend/zend_language_scanner.l" { return T_CLASS; } -#line 6085 "Zend/zend_language_scanner.c" +#line 6081 "Zend/zend_language_scanner.c" +yy641: + YYDEBUG(641, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy652; + if (yych == 'c') goto yy652; + goto yy150; yy642: YYDEBUG(642, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy653; - if (yych == 'c') goto yy653; - goto yy151; + if (yych == 'E') goto yy650; + if (yych == 'e') goto yy650; + goto yy150; yy643: YYDEBUG(643, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy651; - if (yych == 'e') goto yy651; - goto yy151; + if (yych == 'L') goto yy644; + if (yych != 'l') goto yy150; yy644: YYDEBUG(644, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy645; - if (yych != 'l') goto yy151; + if (yych == 'A') goto yy645; + if (yych != 'a') goto yy150; yy645: YYDEBUG(645, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy646; - if (yych != 'a') goto yy151; + if (yych == 'B') goto yy646; + if (yych != 'b') goto yy150; yy646: YYDEBUG(646, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy647; - if (yych != 'b') goto yy151; + if (yych == 'L') goto yy647; + if (yych != 'l') goto yy150; yy647: YYDEBUG(647, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy648; - if (yych != 'l') goto yy151; + if (yych == 'E') goto yy648; + if (yych != 'e') goto yy150; yy648: YYDEBUG(648, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy649; - if (yych != 'e') goto yy151; -yy649: - YYDEBUG(649, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(650, *YYCURSOR); + YYDEBUG(649, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1428 "Zend/zend_language_scanner.l" +#line 1426 "Zend/zend_language_scanner.l" { return T_CALLABLE; } -#line 6135 "Zend/zend_language_scanner.c" -yy651: - YYDEBUG(651, *YYCURSOR); +#line 6131 "Zend/zend_language_scanner.c" +yy650: + YYDEBUG(650, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(652, *YYCURSOR); + YYDEBUG(651, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1210 "Zend/zend_language_scanner.l" +#line 1208 "Zend/zend_language_scanner.l" { return T_CASE; } -#line 6148 "Zend/zend_language_scanner.c" +#line 6144 "Zend/zend_language_scanner.c" +yy652: + YYDEBUG(652, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy653; + if (yych != 'h') goto yy150; yy653: YYDEBUG(653, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy654; - if (yych != 'h') goto yy151; -yy654: - YYDEBUG(654, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(655, *YYCURSOR); + YYDEBUG(654, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1130 "Zend/zend_language_scanner.l" +#line 1128 "Zend/zend_language_scanner.l" { return T_CATCH; } -#line 6166 "Zend/zend_language_scanner.c" +#line 6162 "Zend/zend_language_scanner.c" +yy655: + YYDEBUG(655, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy672; + if (yych == 'n') goto yy672; + goto yy150; yy656: YYDEBUG(656, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy673; - if (yych == 'n') goto yy673; - goto yy151; + if (yych == 'R') goto yy665; + if (yych == 'r') goto yy665; + goto yy150; yy657: YYDEBUG(657, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy666; - if (yych == 'r') goto yy666; - goto yy151; + if (yych == 'N') goto yy658; + if (yych != 'n') goto yy150; yy658: YYDEBUG(658, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy659; - if (yych != 'n') goto yy151; + if (yych == 'C') goto yy659; + if (yych != 'c') goto yy150; yy659: YYDEBUG(659, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy660; - if (yych != 'c') goto yy151; + if (yych == 'T') goto yy660; + if (yych != 't') goto yy150; yy660: YYDEBUG(660, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy661; - if (yych != 't') goto yy151; + if (yych == 'I') goto yy661; + if (yych != 'i') goto yy150; yy661: YYDEBUG(661, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy662; - if (yych != 'i') goto yy151; + if (yych == 'O') goto yy662; + if (yych != 'o') goto yy150; yy662: YYDEBUG(662, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy663; - if (yych != 'o') goto yy151; + if (yych == 'N') goto yy663; + if (yych != 'n') goto yy150; yy663: YYDEBUG(663, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy664; - if (yych != 'n') goto yy151; -yy664: - YYDEBUG(664, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(665, *YYCURSOR); + YYDEBUG(664, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1110 "Zend/zend_language_scanner.l" +#line 1108 "Zend/zend_language_scanner.l" { return T_FUNCTION; } -#line 6221 "Zend/zend_language_scanner.c" -yy666: - YYDEBUG(666, *YYCURSOR); +#line 6217 "Zend/zend_language_scanner.c" +yy665: + YYDEBUG(665, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '@') { - if (yych <= '/') goto yy667; - if (yych <= '9') goto yy150; + if (yych <= '/') goto yy666; + if (yych <= '9') goto yy149; } else { - if (yych == 'E') goto yy668; - if (yych <= 'Z') goto yy150; + if (yych == 'E') goto yy667; + if (yych <= 'Z') goto yy149; } } else { if (yych <= 'd') { - if (yych != '`') goto yy150; + if (yych != '`') goto yy149; } else { - if (yych <= 'e') goto yy668; - if (yych <= 'z') goto yy150; - if (yych >= 0x7F) goto yy150; + if (yych <= 'e') goto yy667; + if (yych <= 'z') goto yy149; + if (yych >= 0x7F) goto yy149; } } -yy667: - YYDEBUG(667, *YYCURSOR); +yy666: + YYDEBUG(666, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1170 "Zend/zend_language_scanner.l" +#line 1168 "Zend/zend_language_scanner.l" { return T_FOR; } -#line 6249 "Zend/zend_language_scanner.c" +#line 6245 "Zend/zend_language_scanner.c" +yy667: + YYDEBUG(667, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy668; + if (yych != 'a') goto yy150; yy668: YYDEBUG(668, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy669; - if (yych != 'a') goto yy151; + if (yych == 'C') goto yy669; + if (yych != 'c') goto yy150; yy669: YYDEBUG(669, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy670; - if (yych != 'c') goto yy151; + if (yych == 'H') goto yy670; + if (yych != 'h') goto yy150; yy670: YYDEBUG(670, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy671; - if (yych != 'h') goto yy151; -yy671: - YYDEBUG(671, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(672, *YYCURSOR); + YYDEBUG(671, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1178 "Zend/zend_language_scanner.l" +#line 1176 "Zend/zend_language_scanner.l" { return T_FOREACH; } -#line 6277 "Zend/zend_language_scanner.c" +#line 6273 "Zend/zend_language_scanner.c" +yy672: + YYDEBUG(672, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy673; + if (yych != 'a') goto yy150; yy673: YYDEBUG(673, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy674; - if (yych != 'a') goto yy151; + if (yych == 'L') goto yy674; + if (yych != 'l') goto yy150; yy674: YYDEBUG(674, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy675; - if (yych != 'l') goto yy151; -yy675: - YYDEBUG(675, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '@') { - if (yych <= '/') goto yy676; - if (yych <= '9') goto yy150; + if (yych <= '/') goto yy675; + if (yych <= '9') goto yy149; } else { - if (yych == 'L') goto yy677; - if (yych <= 'Z') goto yy150; + if (yych == 'L') goto yy676; + if (yych <= 'Z') goto yy149; } } else { if (yych <= 'k') { - if (yych != '`') goto yy150; + if (yych != '`') goto yy149; } else { - if (yych <= 'l') goto yy677; - if (yych <= 'z') goto yy150; - if (yych >= 0x7F) goto yy150; + if (yych <= 'l') goto yy676; + if (yych <= 'z') goto yy149; + if (yych >= 0x7F) goto yy149; } } -yy676: - YYDEBUG(676, *YYCURSOR); +yy675: + YYDEBUG(675, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1396 "Zend/zend_language_scanner.l" +#line 1394 "Zend/zend_language_scanner.l" { return T_FINAL; } -#line 6315 "Zend/zend_language_scanner.c" +#line 6311 "Zend/zend_language_scanner.c" +yy676: + YYDEBUG(676, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy677; + if (yych != 'y') goto yy150; yy677: YYDEBUG(677, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy678; - if (yych != 'y') goto yy151; -yy678: - YYDEBUG(678, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(679, *YYCURSOR); + YYDEBUG(678, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1134 "Zend/zend_language_scanner.l" +#line 1132 "Zend/zend_language_scanner.l" { return T_FINALLY; } -#line 6333 "Zend/zend_language_scanner.c" -yy680: - YYDEBUG(680, *YYCURSOR); +#line 6329 "Zend/zend_language_scanner.c" +yy679: + YYDEBUG(679, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'F') { - if (yych == 'C') goto yy686; - if (yych <= 'E') goto yy151; - goto yy687; + if (yych == 'C') goto yy685; + if (yych <= 'E') goto yy150; + goto yy686; } else { if (yych <= 'c') { - if (yych <= 'b') goto yy151; - goto yy686; + if (yych <= 'b') goto yy150; + goto yy685; } else { - if (yych == 'f') goto yy687; - goto yy151; + if (yych == 'f') goto yy686; + goto yy150; } } +yy680: + YYDEBUG(680, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy683; + if (yych == 'e') goto yy683; + goto yy150; yy681: YYDEBUG(681, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy684; - if (yych == 'e') goto yy684; - goto yy151; -yy682: - YYDEBUG(682, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(683, *YYCURSOR); + YYDEBUG(682, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1166 "Zend/zend_language_scanner.l" +#line 1164 "Zend/zend_language_scanner.l" { return T_DO; } -#line 6368 "Zend/zend_language_scanner.c" -yy684: - YYDEBUG(684, *YYCURSOR); +#line 6364 "Zend/zend_language_scanner.c" +yy683: + YYDEBUG(683, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(685, *YYCURSOR); + YYDEBUG(684, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1106 "Zend/zend_language_scanner.l" +#line 1104 "Zend/zend_language_scanner.l" { return T_EXIT; } -#line 6381 "Zend/zend_language_scanner.c" +#line 6377 "Zend/zend_language_scanner.c" +yy685: + YYDEBUG(685, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy692; + if (yych == 'l') goto yy692; + goto yy150; yy686: YYDEBUG(686, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy693; - if (yych == 'l') goto yy693; - goto yy151; + if (yych == 'A') goto yy687; + if (yych != 'a') goto yy150; yy687: YYDEBUG(687, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy688; - if (yych != 'a') goto yy151; + if (yych == 'U') goto yy688; + if (yych != 'u') goto yy150; yy688: YYDEBUG(688, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy689; - if (yych != 'u') goto yy151; + if (yych == 'L') goto yy689; + if (yych != 'l') goto yy150; yy689: YYDEBUG(689, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy690; - if (yych != 'l') goto yy151; + if (yych == 'T') goto yy690; + if (yych != 't') goto yy150; yy690: YYDEBUG(690, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy691; - if (yych != 't') goto yy151; -yy691: - YYDEBUG(691, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(692, *YYCURSOR); + YYDEBUG(691, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1214 "Zend/zend_language_scanner.l" +#line 1212 "Zend/zend_language_scanner.l" { return T_DEFAULT; } -#line 6420 "Zend/zend_language_scanner.c" +#line 6416 "Zend/zend_language_scanner.c" +yy692: + YYDEBUG(692, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy693; + if (yych != 'a') goto yy150; yy693: YYDEBUG(693, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy694; - if (yych != 'a') goto yy151; + if (yych == 'R') goto yy694; + if (yych != 'r') goto yy150; yy694: YYDEBUG(694, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy695; - if (yych != 'r') goto yy151; + if (yych == 'E') goto yy695; + if (yych != 'e') goto yy150; yy695: YYDEBUG(695, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy696; - if (yych != 'e') goto yy151; -yy696: - YYDEBUG(696, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(697, *YYCURSOR); + YYDEBUG(696, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1186 "Zend/zend_language_scanner.l" +#line 1184 "Zend/zend_language_scanner.l" { return T_DECLARE; } -#line 6448 "Zend/zend_language_scanner.c" +#line 6444 "Zend/zend_language_scanner.c" +yy697: + YYDEBUG(697, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy759; + if (yych == 'h') goto yy759; + goto yy150; yy698: YYDEBUG(698, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy760; - if (yych == 'h') goto yy760; - goto yy151; + if (yych == 'S') goto yy753; + if (yych == 's') goto yy753; + goto yy150; yy699: YYDEBUG(699, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy754; - if (yych == 's') goto yy754; - goto yy151; + if (yych == 'P') goto yy749; + if (yych == 'p') goto yy749; + goto yy150; yy700: YYDEBUG(700, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy750; - if (yych == 'p') goto yy750; - goto yy151; + if (yych == 'D') goto yy715; + if (yych == 'd') goto yy715; + goto yy150; yy701: YYDEBUG(701, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy716; - if (yych == 'd') goto yy716; - goto yy151; + if (yych == 'A') goto yy712; + if (yych == 'a') goto yy712; + goto yy150; yy702: YYDEBUG(702, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy713; - if (yych == 'a') goto yy713; - goto yy151; -yy703: - YYDEBUG(703, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'T') { - if (yych == 'I') goto yy704; - if (yych <= 'S') goto yy151; - goto yy705; + if (yych == 'I') goto yy703; + if (yych <= 'S') goto yy150; + goto yy704; } else { if (yych <= 'i') { - if (yych <= 'h') goto yy151; + if (yych <= 'h') goto yy150; } else { - if (yych == 't') goto yy705; - goto yy151; + if (yych == 't') goto yy704; + goto yy150; } } +yy703: + YYDEBUG(703, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy710; + if (yych == 't') goto yy710; + goto yy150; yy704: YYDEBUG(704, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy711; - if (yych == 't') goto yy711; - goto yy151; + if (yych == 'E') goto yy705; + if (yych != 'e') goto yy150; yy705: YYDEBUG(705, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy706; - if (yych != 'e') goto yy151; + if (yych == 'N') goto yy706; + if (yych != 'n') goto yy150; yy706: YYDEBUG(706, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy707; - if (yych != 'n') goto yy151; + if (yych == 'D') goto yy707; + if (yych != 'd') goto yy150; yy707: YYDEBUG(707, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy708; - if (yych != 'd') goto yy151; + if (yych == 'S') goto yy708; + if (yych != 's') goto yy150; yy708: YYDEBUG(708, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy709; - if (yych != 's') goto yy151; -yy709: - YYDEBUG(709, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(710, *YYCURSOR); + YYDEBUG(709, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1250 "Zend/zend_language_scanner.l" +#line 1248 "Zend/zend_language_scanner.l" { return T_EXTENDS; } -#line 6532 "Zend/zend_language_scanner.c" -yy711: - YYDEBUG(711, *YYCURSOR); +#line 6528 "Zend/zend_language_scanner.c" +yy710: + YYDEBUG(710, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(712, *YYCURSOR); + YYDEBUG(711, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1102 "Zend/zend_language_scanner.l" +#line 1100 "Zend/zend_language_scanner.l" { return T_EXIT; } -#line 6545 "Zend/zend_language_scanner.c" +#line 6541 "Zend/zend_language_scanner.c" +yy712: + YYDEBUG(712, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy713; + if (yych != 'l') goto yy150; yy713: YYDEBUG(713, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy714; - if (yych != 'l') goto yy151; -yy714: - YYDEBUG(714, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(715, *YYCURSOR); + YYDEBUG(714, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1340 "Zend/zend_language_scanner.l" +#line 1338 "Zend/zend_language_scanner.l" { return T_EVAL; } -#line 6563 "Zend/zend_language_scanner.c" -yy716: - YYDEBUG(716, *YYCURSOR); +#line 6559 "Zend/zend_language_scanner.c" +yy715: + YYDEBUG(715, *YYCURSOR); yych = *++YYCURSOR; YYDEBUG(-1, yych); switch (yych) { case 'D': - case 'd': goto yy717; + case 'd': goto yy716; case 'F': - case 'f': goto yy718; + case 'f': goto yy717; case 'I': - case 'i': goto yy719; + case 'i': goto yy718; case 'S': - case 's': goto yy720; + case 's': goto yy719; case 'W': - case 'w': goto yy721; - default: goto yy151; + case 'w': goto yy720; + default: goto yy150; } +yy716: + YYDEBUG(716, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy742; + if (yych == 'e') goto yy742; + goto yy150; yy717: YYDEBUG(717, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy743; - if (yych == 'e') goto yy743; - goto yy151; + if (yych == 'O') goto yy734; + if (yych == 'o') goto yy734; + goto yy150; yy718: YYDEBUG(718, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy735; - if (yych == 'o') goto yy735; - goto yy151; + if (yych == 'F') goto yy732; + if (yych == 'f') goto yy732; + goto yy150; yy719: YYDEBUG(719, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy733; - if (yych == 'f') goto yy733; - goto yy151; + if (yych == 'W') goto yy726; + if (yych == 'w') goto yy726; + goto yy150; yy720: YYDEBUG(720, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'W') goto yy727; - if (yych == 'w') goto yy727; - goto yy151; + if (yych == 'H') goto yy721; + if (yych != 'h') goto yy150; yy721: YYDEBUG(721, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy722; - if (yych != 'h') goto yy151; + if (yych == 'I') goto yy722; + if (yych != 'i') goto yy150; yy722: YYDEBUG(722, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy723; - if (yych != 'i') goto yy151; + if (yych == 'L') goto yy723; + if (yych != 'l') goto yy150; yy723: YYDEBUG(723, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy724; - if (yych != 'l') goto yy151; + if (yych == 'E') goto yy724; + if (yych != 'e') goto yy150; yy724: YYDEBUG(724, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy725; - if (yych != 'e') goto yy151; -yy725: - YYDEBUG(725, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(726, *YYCURSOR); + YYDEBUG(725, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1162 "Zend/zend_language_scanner.l" +#line 1160 "Zend/zend_language_scanner.l" { return T_ENDWHILE; } -#line 6637 "Zend/zend_language_scanner.c" +#line 6633 "Zend/zend_language_scanner.c" +yy726: + YYDEBUG(726, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy727; + if (yych != 'i') goto yy150; yy727: YYDEBUG(727, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy728; - if (yych != 'i') goto yy151; + if (yych == 'T') goto yy728; + if (yych != 't') goto yy150; yy728: YYDEBUG(728, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy729; - if (yych != 't') goto yy151; + if (yych == 'C') goto yy729; + if (yych != 'c') goto yy150; yy729: YYDEBUG(729, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy730; - if (yych != 'c') goto yy151; + if (yych == 'H') goto yy730; + if (yych != 'h') goto yy150; yy730: YYDEBUG(730, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy731; - if (yych != 'h') goto yy151; -yy731: - YYDEBUG(731, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(732, *YYCURSOR); + YYDEBUG(731, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1206 "Zend/zend_language_scanner.l" +#line 1204 "Zend/zend_language_scanner.l" { return T_ENDSWITCH; } -#line 6670 "Zend/zend_language_scanner.c" -yy733: - YYDEBUG(733, *YYCURSOR); +#line 6666 "Zend/zend_language_scanner.c" +yy732: + YYDEBUG(732, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(734, *YYCURSOR); + YYDEBUG(733, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1150 "Zend/zend_language_scanner.l" +#line 1148 "Zend/zend_language_scanner.l" { return T_ENDIF; } -#line 6683 "Zend/zend_language_scanner.c" +#line 6679 "Zend/zend_language_scanner.c" +yy734: + YYDEBUG(734, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy735; + if (yych != 'r') goto yy150; yy735: YYDEBUG(735, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy736; - if (yych != 'r') goto yy151; -yy736: - YYDEBUG(736, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '@') { - if (yych <= '/') goto yy737; - if (yych <= '9') goto yy150; + if (yych <= '/') goto yy736; + if (yych <= '9') goto yy149; } else { - if (yych == 'E') goto yy738; - if (yych <= 'Z') goto yy150; + if (yych == 'E') goto yy737; + if (yych <= 'Z') goto yy149; } } else { if (yych <= 'd') { - if (yych != '`') goto yy150; + if (yych != '`') goto yy149; } else { - if (yych <= 'e') goto yy738; - if (yych <= 'z') goto yy150; - if (yych >= 0x7F) goto yy150; + if (yych <= 'e') goto yy737; + if (yych <= 'z') goto yy149; + if (yych >= 0x7F) goto yy149; } } -yy737: - YYDEBUG(737, *YYCURSOR); +yy736: + YYDEBUG(736, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1174 "Zend/zend_language_scanner.l" +#line 1172 "Zend/zend_language_scanner.l" { return T_ENDFOR; } -#line 6716 "Zend/zend_language_scanner.c" +#line 6712 "Zend/zend_language_scanner.c" +yy737: + YYDEBUG(737, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy738; + if (yych != 'a') goto yy150; yy738: YYDEBUG(738, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy739; - if (yych != 'a') goto yy151; + if (yych == 'C') goto yy739; + if (yych != 'c') goto yy150; yy739: YYDEBUG(739, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy740; - if (yych != 'c') goto yy151; + if (yych == 'H') goto yy740; + if (yych != 'h') goto yy150; yy740: YYDEBUG(740, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy741; - if (yych != 'h') goto yy151; -yy741: - YYDEBUG(741, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(742, *YYCURSOR); + YYDEBUG(741, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1182 "Zend/zend_language_scanner.l" +#line 1180 "Zend/zend_language_scanner.l" { return T_ENDFOREACH; } -#line 6744 "Zend/zend_language_scanner.c" +#line 6740 "Zend/zend_language_scanner.c" +yy742: + YYDEBUG(742, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy743; + if (yych != 'c') goto yy150; yy743: YYDEBUG(743, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy744; - if (yych != 'c') goto yy151; + if (yych == 'L') goto yy744; + if (yych != 'l') goto yy150; yy744: YYDEBUG(744, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy745; - if (yych != 'l') goto yy151; + if (yych == 'A') goto yy745; + if (yych != 'a') goto yy150; yy745: YYDEBUG(745, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy746; - if (yych != 'a') goto yy151; + if (yych == 'R') goto yy746; + if (yych != 'r') goto yy150; yy746: YYDEBUG(746, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy747; - if (yych != 'r') goto yy151; + if (yych == 'E') goto yy747; + if (yych != 'e') goto yy150; yy747: YYDEBUG(747, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy748; - if (yych != 'e') goto yy151; -yy748: - YYDEBUG(748, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(749, *YYCURSOR); + YYDEBUG(748, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1190 "Zend/zend_language_scanner.l" +#line 1188 "Zend/zend_language_scanner.l" { return T_ENDDECLARE; } -#line 6782 "Zend/zend_language_scanner.c" +#line 6778 "Zend/zend_language_scanner.c" +yy749: + YYDEBUG(749, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy750; + if (yych != 't') goto yy150; yy750: YYDEBUG(750, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy751; - if (yych != 't') goto yy151; + if (yych == 'Y') goto yy751; + if (yych != 'y') goto yy150; yy751: YYDEBUG(751, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy752; - if (yych != 'y') goto yy151; -yy752: - YYDEBUG(752, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(753, *YYCURSOR); + YYDEBUG(752, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1380 "Zend/zend_language_scanner.l" +#line 1378 "Zend/zend_language_scanner.l" { return T_EMPTY; } -#line 6805 "Zend/zend_language_scanner.c" +#line 6801 "Zend/zend_language_scanner.c" +yy753: + YYDEBUG(753, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy754; + if (yych != 'e') goto yy150; yy754: YYDEBUG(754, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy755; - if (yych != 'e') goto yy151; -yy755: - YYDEBUG(755, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '@') { - if (yych <= '/') goto yy756; - if (yych <= '9') goto yy150; + if (yych <= '/') goto yy755; + if (yych <= '9') goto yy149; } else { - if (yych == 'I') goto yy757; - if (yych <= 'Z') goto yy150; + if (yych == 'I') goto yy756; + if (yych <= 'Z') goto yy149; } } else { if (yych <= 'h') { - if (yych != '`') goto yy150; + if (yych != '`') goto yy149; } else { - if (yych <= 'i') goto yy757; - if (yych <= 'z') goto yy150; - if (yych >= 0x7F) goto yy150; + if (yych <= 'i') goto yy756; + if (yych <= 'z') goto yy149; + if (yych >= 0x7F) goto yy149; } } -yy756: - YYDEBUG(756, *YYCURSOR); +yy755: + YYDEBUG(755, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1154 "Zend/zend_language_scanner.l" +#line 1152 "Zend/zend_language_scanner.l" { return T_ELSE; } -#line 6838 "Zend/zend_language_scanner.c" +#line 6834 "Zend/zend_language_scanner.c" +yy756: + YYDEBUG(756, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy757; + if (yych != 'f') goto yy150; yy757: YYDEBUG(757, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy758; - if (yych != 'f') goto yy151; -yy758: - YYDEBUG(758, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(759, *YYCURSOR); + YYDEBUG(758, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1146 "Zend/zend_language_scanner.l" +#line 1144 "Zend/zend_language_scanner.l" { return T_ELSEIF; } -#line 6856 "Zend/zend_language_scanner.c" +#line 6852 "Zend/zend_language_scanner.c" +yy759: + YYDEBUG(759, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy760; + if (yych != 'o') goto yy150; yy760: YYDEBUG(760, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy761; - if (yych != 'o') goto yy151; -yy761: - YYDEBUG(761, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy150; + goto yy149; } - YYDEBUG(762, *YYCURSOR); + YYDEBUG(761, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1230 "Zend/zend_language_scanner.l" +#line 1228 "Zend/zend_language_scanner.l" { return T_ECHO; } -#line 6874 "Zend/zend_language_scanner.c" +#line 6870 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_PROPERTY: @@ -6909,111 +6905,111 @@ yyc_ST_LOOKING_FOR_PROPERTY: 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, }; - YYDEBUG(763, *YYCURSOR); + YYDEBUG(762, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= '-') { if (yych <= '\r') { - if (yych <= 0x08) goto yy771; - if (yych <= '\n') goto yy765; - if (yych <= '\f') goto yy771; + if (yych <= 0x08) goto yy770; + if (yych <= '\n') goto yy764; + if (yych <= '\f') goto yy770; } else { - if (yych == ' ') goto yy765; - if (yych <= ',') goto yy771; - goto yy767; + if (yych == ' ') goto yy764; + if (yych <= ',') goto yy770; + goto yy766; } } else { if (yych <= '_') { - if (yych <= '@') goto yy771; - if (yych <= 'Z') goto yy769; - if (yych <= '^') goto yy771; - goto yy769; + if (yych <= '@') goto yy770; + if (yych <= 'Z') goto yy768; + if (yych <= '^') goto yy770; + goto yy768; } else { - if (yych <= '`') goto yy771; - if (yych <= 'z') goto yy769; - if (yych <= '~') goto yy771; - goto yy769; + if (yych <= '`') goto yy770; + if (yych <= 'z') goto yy768; + if (yych <= '~') goto yy770; + goto yy768; } } -yy765: - YYDEBUG(765, *YYCURSOR); +yy764: + YYDEBUG(764, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy777; -yy766: - YYDEBUG(766, *YYCURSOR); + goto yy776; +yy765: + YYDEBUG(765, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1263 "Zend/zend_language_scanner.l" +#line 1261 "Zend/zend_language_scanner.l" { HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 6952 "Zend/zend_language_scanner.c" +#line 6948 "Zend/zend_language_scanner.c" +yy766: + YYDEBUG(766, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) == '>') goto yy773; yy767: YYDEBUG(767, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '>') goto yy774; -yy768: - YYDEBUG(768, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1278 "Zend/zend_language_scanner.l" +#line 1276 "Zend/zend_language_scanner.l" { yyless(0); yy_pop_state(); goto restart; } -#line 6966 "Zend/zend_language_scanner.c" -yy769: - YYDEBUG(769, *YYCURSOR); +#line 6962 "Zend/zend_language_scanner.c" +yy768: + YYDEBUG(768, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy773; -yy770: - YYDEBUG(770, *YYCURSOR); + goto yy772; +yy769: + YYDEBUG(769, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1272 "Zend/zend_language_scanner.l" +#line 1270 "Zend/zend_language_scanner.l" { yy_pop_state(); zend_copy_value(zendlval, yytext, yyleng); return T_STRING; } -#line 6981 "Zend/zend_language_scanner.c" +#line 6977 "Zend/zend_language_scanner.c" +yy770: + YYDEBUG(770, *YYCURSOR); + yych = *++YYCURSOR; + goto yy767; yy771: YYDEBUG(771, *YYCURSOR); - yych = *++YYCURSOR; - goto yy768; -yy772: - YYDEBUG(772, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy773: - YYDEBUG(773, *YYCURSOR); +yy772: + YYDEBUG(772, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy772; + goto yy771; } - goto yy770; -yy774: - YYDEBUG(774, *YYCURSOR); + goto yy769; +yy773: + YYDEBUG(773, *YYCURSOR); ++YYCURSOR; - YYDEBUG(775, *YYCURSOR); + YYDEBUG(774, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1268 "Zend/zend_language_scanner.l" +#line 1266 "Zend/zend_language_scanner.l" { return T_OBJECT_OPERATOR; } -#line 7006 "Zend/zend_language_scanner.c" -yy776: - YYDEBUG(776, *YYCURSOR); +#line 7002 "Zend/zend_language_scanner.c" +yy775: + YYDEBUG(775, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy777: - YYDEBUG(777, *YYCURSOR); +yy776: + YYDEBUG(776, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy776; + goto yy775; } - goto yy766; + goto yy765; } /* *********************************** */ yyc_ST_LOOKING_FOR_VARNAME: @@ -7052,76 +7048,74 @@ yyc_ST_LOOKING_FOR_VARNAME: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(778, *YYCURSOR); + YYDEBUG(777, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= '_') { - if (yych <= '@') goto yy782; - if (yych <= 'Z') goto yy780; - if (yych <= '^') goto yy782; + if (yych <= '@') goto yy781; + if (yych <= 'Z') goto yy779; + if (yych <= '^') goto yy781; } else { - if (yych <= '`') goto yy782; - if (yych <= 'z') goto yy780; - if (yych <= '~') goto yy782; + if (yych <= '`') goto yy781; + if (yych <= 'z') goto yy779; + if (yych <= '~') goto yy781; } -yy780: - YYDEBUG(780, *YYCURSOR); +yy779: + YYDEBUG(779, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '_') { if (yych <= '@') { - if (yych <= '/') goto yy781; - if (yych <= '9') goto yy784; + if (yych <= '/') goto yy780; + if (yych <= '9') goto yy783; } else { - if (yych <= '[') goto yy784; - if (yych >= '_') goto yy784; + if (yych <= '[') goto yy783; + if (yych >= '_') goto yy783; } } else { if (yych <= '|') { - if (yych <= '`') goto yy781; - if (yych <= 'z') goto yy784; + if (yych <= '`') goto yy780; + if (yych <= 'z') goto yy783; } else { - if (yych != '~') goto yy784; + if (yych != '~') goto yy783; } } -yy781: - YYDEBUG(781, *YYCURSOR); +yy780: + YYDEBUG(780, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1583 "Zend/zend_language_scanner.l" +#line 1581 "Zend/zend_language_scanner.l" { yyless(0); yy_pop_state(); yy_push_state(ST_IN_SCRIPTING); goto restart; } -#line 7098 "Zend/zend_language_scanner.c" +#line 7094 "Zend/zend_language_scanner.c" +yy781: + YYDEBUG(781, *YYCURSOR); + yych = *++YYCURSOR; + goto yy780; yy782: YYDEBUG(782, *YYCURSOR); - yych = *++YYCURSOR; - goto yy781; -yy783: - YYDEBUG(783, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy784: - YYDEBUG(784, *YYCURSOR); +yy783: + YYDEBUG(783, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy783; + goto yy782; } - if (yych <= '@') goto yy785; - if (yych <= '[') goto yy786; - if (yych == '}') goto yy786; + if (yych == '[') goto yy785; + if (yych == '}') goto yy785; + YYDEBUG(784, *YYCURSOR); + YYCURSOR = YYMARKER; + goto yy780; yy785: YYDEBUG(785, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy781; -yy786: - YYDEBUG(786, *YYCURSOR); ++YYCURSOR; - YYDEBUG(787, *YYCURSOR); + YYDEBUG(786, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1574 "Zend/zend_language_scanner.l" +#line 1572 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); zend_copy_value(zendlval, yytext, yyleng); @@ -7129,18 +7123,18 @@ yy786: yy_push_state(ST_IN_SCRIPTING); return T_STRING_VARNAME; } -#line 7133 "Zend/zend_language_scanner.c" +#line 7127 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_NOWDOC: - YYDEBUG(788, *YYCURSOR); + YYDEBUG(787, *YYCURSOR); YYFILL(1); yych = *YYCURSOR; - YYDEBUG(790, *YYCURSOR); + YYDEBUG(789, *YYCURSOR); ++YYCURSOR; - YYDEBUG(791, *YYCURSOR); + YYDEBUG(790, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2296 "Zend/zend_language_scanner.l" +#line 2294 "Zend/zend_language_scanner.l" { int newline = 0; @@ -7196,7 +7190,7 @@ nowdoc_scan_done: HANDLE_NEWLINES(yytext, yyleng - newline); return T_ENCAPSED_AND_WHITESPACE; } -#line 7200 "Zend/zend_language_scanner.c" +#line 7194 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_VAR_OFFSET: { @@ -7234,76 +7228,76 @@ yyc_ST_VAR_OFFSET: 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, }; - YYDEBUG(792, *YYCURSOR); + YYDEBUG(791, *YYCURSOR); YYFILL(3); yych = *YYCURSOR; if (yych <= '/') { if (yych <= ' ') { if (yych <= '\f') { - if (yych <= 0x08) goto yy806; - if (yych <= '\n') goto yy802; - goto yy806; + if (yych <= 0x08) goto yy805; + if (yych <= '\n') goto yy801; + goto yy805; } else { - if (yych <= '\r') goto yy802; - if (yych <= 0x1F) goto yy806; - goto yy802; + if (yych <= '\r') goto yy801; + if (yych <= 0x1F) goto yy805; + goto yy801; } } else { if (yych <= '$') { - if (yych <= '"') goto yy801; - if (yych <= '#') goto yy802; - goto yy797; + if (yych <= '"') goto yy800; + if (yych <= '#') goto yy801; + goto yy796; } else { - if (yych == '\'') goto yy802; - goto yy801; + if (yych == '\'') goto yy801; + goto yy800; } } } else { if (yych <= '\\') { if (yych <= '@') { - if (yych <= '0') goto yy794; - if (yych <= '9') goto yy796; - goto yy801; + if (yych <= '0') goto yy793; + if (yych <= '9') goto yy795; + goto yy800; } else { - if (yych <= 'Z') goto yy804; - if (yych <= '[') goto yy801; - goto yy802; + if (yych <= 'Z') goto yy803; + if (yych <= '[') goto yy800; + goto yy801; } } else { if (yych <= '_') { - if (yych <= ']') goto yy799; - if (yych <= '^') goto yy801; - goto yy804; + if (yych <= ']') goto yy798; + if (yych <= '^') goto yy800; + goto yy803; } else { - if (yych <= '`') goto yy801; - if (yych <= 'z') goto yy804; - if (yych <= '~') goto yy801; - goto yy804; + if (yych <= '`') goto yy800; + if (yych <= 'z') goto yy803; + if (yych <= '~') goto yy800; + goto yy803; } } } -yy794: - YYDEBUG(794, *YYCURSOR); +yy793: + YYDEBUG(793, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'W') { if (yych <= '9') { - if (yych >= '0') goto yy818; + if (yych >= '0') goto yy817; } else { - if (yych == 'B') goto yy815; + if (yych == 'B') goto yy814; } } else { if (yych <= 'b') { - if (yych <= 'X') goto yy817; - if (yych >= 'b') goto yy815; + if (yych <= 'X') goto yy816; + if (yych >= 'b') goto yy814; } else { - if (yych == 'x') goto yy817; + if (yych == 'x') goto yy816; } } -yy795: - YYDEBUG(795, *YYCURSOR); +yy794: + YYDEBUG(794, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1685 "Zend/zend_language_scanner.l" +#line 1683 "Zend/zend_language_scanner.l" { /* Offset could be treated as a long */ if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) { char *end; @@ -7319,53 +7313,53 @@ string: } return T_NUM_STRING; } -#line 7323 "Zend/zend_language_scanner.c" +#line 7317 "Zend/zend_language_scanner.c" +yy795: + YYDEBUG(795, *YYCURSOR); + yych = *++YYCURSOR; + goto yy813; yy796: YYDEBUG(796, *YYCURSOR); - yych = *++YYCURSOR; - goto yy814; -yy797: - YYDEBUG(797, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '_') { - if (yych <= '@') goto yy798; - if (yych <= 'Z') goto yy810; - if (yych >= '_') goto yy810; + if (yych <= '@') goto yy797; + if (yych <= 'Z') goto yy809; + if (yych >= '_') goto yy809; } else { - if (yych <= '`') goto yy798; - if (yych <= 'z') goto yy810; - if (yych >= 0x7F) goto yy810; + if (yych <= '`') goto yy797; + if (yych <= 'z') goto yy809; + if (yych >= 0x7F) goto yy809; } -yy798: - YYDEBUG(798, *YYCURSOR); +yy797: + YYDEBUG(797, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1845 "Zend/zend_language_scanner.l" +#line 1843 "Zend/zend_language_scanner.l" { /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */ return yytext[0]; } -#line 7348 "Zend/zend_language_scanner.c" -yy799: - YYDEBUG(799, *YYCURSOR); +#line 7342 "Zend/zend_language_scanner.c" +yy798: + YYDEBUG(798, *YYCURSOR); ++YYCURSOR; - YYDEBUG(800, *YYCURSOR); + YYDEBUG(799, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1840 "Zend/zend_language_scanner.l" +#line 1838 "Zend/zend_language_scanner.l" { yy_pop_state(); return ']'; } -#line 7359 "Zend/zend_language_scanner.c" +#line 7353 "Zend/zend_language_scanner.c" +yy800: + YYDEBUG(800, *YYCURSOR); + yych = *++YYCURSOR; + goto yy797; yy801: YYDEBUG(801, *YYCURSOR); - yych = *++YYCURSOR; - goto yy798; -yy802: - YYDEBUG(802, *YYCURSOR); ++YYCURSOR; - YYDEBUG(803, *YYCURSOR); + YYDEBUG(802, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1850 "Zend/zend_language_scanner.l" +#line 1848 "Zend/zend_language_scanner.l" { /* Invalid rule to return a more explicit parse error with proper line number */ yyless(0); @@ -7373,27 +7367,27 @@ yy802: ZVAL_NULL(zendlval); return T_ENCAPSED_AND_WHITESPACE; } -#line 7377 "Zend/zend_language_scanner.c" -yy804: - YYDEBUG(804, *YYCURSOR); +#line 7371 "Zend/zend_language_scanner.c" +yy803: + YYDEBUG(803, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy809; -yy805: - YYDEBUG(805, *YYCURSOR); + goto yy808; +yy804: + YYDEBUG(804, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1858 "Zend/zend_language_scanner.l" +#line 1856 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); return T_STRING; } -#line 7391 "Zend/zend_language_scanner.c" -yy806: - YYDEBUG(806, *YYCURSOR); +#line 7385 "Zend/zend_language_scanner.c" +yy805: + YYDEBUG(805, *YYCURSOR); ++YYCURSOR; - YYDEBUG(807, *YYCURSOR); + YYDEBUG(806, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2353 "Zend/zend_language_scanner.l" +#line 2351 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -7402,115 +7396,115 @@ yy806: zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 7406 "Zend/zend_language_scanner.c" -yy808: - YYDEBUG(808, *YYCURSOR); +#line 7400 "Zend/zend_language_scanner.c" +yy807: + YYDEBUG(807, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy809: - YYDEBUG(809, *YYCURSOR); +yy808: + YYDEBUG(808, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy808; + goto yy807; } - goto yy805; -yy810: - YYDEBUG(810, *YYCURSOR); + goto yy804; +yy809: + YYDEBUG(809, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(811, *YYCURSOR); + YYDEBUG(810, *YYCURSOR); if (yych <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy810; + if (yych >= '0') goto yy809; } else { - if (yych <= '@') goto yy812; - if (yych <= 'Z') goto yy810; + if (yych <= '@') goto yy811; + if (yych <= 'Z') goto yy809; } } else { if (yych <= '`') { - if (yych <= '_') goto yy810; + if (yych <= '_') goto yy809; } else { - if (yych <= 'z') goto yy810; - if (yych >= 0x7F) goto yy810; + if (yych <= 'z') goto yy809; + if (yych >= 0x7F) goto yy809; } } -yy812: - YYDEBUG(812, *YYCURSOR); +yy811: + YYDEBUG(811, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1835 "Zend/zend_language_scanner.l" +#line 1833 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 7447 "Zend/zend_language_scanner.c" -yy813: - YYDEBUG(813, *YYCURSOR); +#line 7441 "Zend/zend_language_scanner.c" +yy812: + YYDEBUG(812, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy814: - YYDEBUG(814, *YYCURSOR); +yy813: + YYDEBUG(813, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy813; + goto yy812; } - goto yy795; -yy815: - YYDEBUG(815, *YYCURSOR); + goto yy794; +yy814: + YYDEBUG(814, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 128) { - goto yy823; + goto yy822; } +yy815: + YYDEBUG(815, *YYCURSOR); + YYCURSOR = YYMARKER; + goto yy794; yy816: YYDEBUG(816, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy795; -yy817: - YYDEBUG(817, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 64) { - goto yy821; + goto yy820; } - goto yy816; -yy818: - YYDEBUG(818, *YYCURSOR); + goto yy815; +yy817: + YYDEBUG(817, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; + YYDEBUG(818, *YYCURSOR); + if (yych <= '/') goto yy819; + if (yych <= '9') goto yy817; +yy819: YYDEBUG(819, *YYCURSOR); - if (yych <= '/') goto yy820; - if (yych <= '9') goto yy818; -yy820: - YYDEBUG(820, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1701 "Zend/zend_language_scanner.l" +#line 1699 "Zend/zend_language_scanner.l" { /* Offset must be treated as a string */ ZVAL_STRINGL(zendlval, yytext, yyleng); return T_NUM_STRING; } -#line 7492 "Zend/zend_language_scanner.c" -yy821: - YYDEBUG(821, *YYCURSOR); +#line 7486 "Zend/zend_language_scanner.c" +yy820: + YYDEBUG(820, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(822, *YYCURSOR); + YYDEBUG(821, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy821; + goto yy820; } - goto yy820; -yy823: - YYDEBUG(823, *YYCURSOR); + goto yy819; +yy822: + YYDEBUG(822, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(824, *YYCURSOR); + YYDEBUG(823, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy823; + goto yy822; } - goto yy820; + goto yy819; } } -#line 2362 "Zend/zend_language_scanner.l" +#line 2360 "Zend/zend_language_scanner.l" } diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 31c9a52a44..e4b1314f76 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -482,7 +482,6 @@ ZEND_API int zend_multibyte_set_filter(const zend_encoding *onetime_encoding) ZEND_API int open_file_for_scanning(zend_file_handle *file_handle) { - const char *file_path = NULL; char *buf; size_t size, offset = 0; zend_string *compiled_filename; @@ -536,12 +535,11 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle) BEGIN(INITIAL); if (file_handle->opened_path) { - file_path = file_handle->opened_path; + compiled_filename = zend_string_copy(file_handle->opened_path); } else { - file_path = file_handle->filename; + compiled_filename = zend_string_init(file_handle->filename, strlen(file_handle->filename), 0); } - compiled_filename = zend_string_init(file_path, strlen(file_path), 0); zend_set_compiled_filename(compiled_filename); zend_string_release(compiled_filename); @@ -623,7 +621,7 @@ zend_op_array *compile_filename(int type, zval *filename) zend_file_handle file_handle; zval tmp; zend_op_array *retval; - char *opened_path = NULL; + zend_string *opened_path = NULL; if (Z_TYPE_P(filename) != IS_STRING) { tmp = *filename; @@ -640,13 +638,13 @@ zend_op_array *compile_filename(int type, zval *filename) retval = zend_compile_file(&file_handle, type); if (retval && file_handle.handle.stream.handle) { if (!file_handle.opened_path) { - file_handle.opened_path = opened_path = estrndup(Z_STRVAL_P(filename), Z_STRLEN_P(filename)); + file_handle.opened_path = opened_path = zend_string_copy(Z_STR_P(filename)); } - zend_hash_str_add_empty_element(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)); + zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path); if (opened_path) { - efree(opened_path); + zend_string_release(opened_path); } } zend_destroy_file_handle(&file_handle); diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h index baf859bcd4..5926e3c61d 100644 --- a/Zend/zend_language_scanner_defs.h +++ b/Zend/zend_language_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.7.5 */ +/* Generated by re2c 0.13.5 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE { diff --git a/Zend/zend_stream.c b/Zend/zend_stream.c index 717c9b12a4..7796edb0d6 100644 --- a/Zend/zend_stream.c +++ b/Zend/zend_stream.c @@ -322,7 +322,7 @@ ZEND_API void zend_file_handle_dtor(zend_file_handle *fh) /* {{{ */ break; } if (fh->opened_path) { - efree(fh->opened_path); + zend_string_release(fh->opened_path); fh->opened_path = NULL; } if (fh->free_filename && fh->filename) { diff --git a/Zend/zend_stream.h b/Zend/zend_stream.h index 47a9c7d7d3..3dfaaf474b 100644 --- a/Zend/zend_stream.h +++ b/Zend/zend_stream.h @@ -69,7 +69,7 @@ typedef struct _zend_file_handle { zend_stream stream; } handle; const char *filename; - char *opened_path; + zend_string *opened_path; zend_stream_type type; zend_bool free_filename; } zend_file_handle; diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 1f4fe799a3..7936af95b2 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -4589,24 +4589,24 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMPVAR|CV, ANY) case ZEND_INCLUDE_ONCE: case ZEND_REQUIRE_ONCE: { zend_file_handle file_handle; - char *resolved_path; + zend_string *resolved_path; resolved_path = zend_resolve_path(Z_STRVAL_P(inc_filename), (int)Z_STRLEN_P(inc_filename)); if (resolved_path) { - failure_retval = zend_hash_str_exists(&EG(included_files), resolved_path, (int)strlen(resolved_path)); + failure_retval = zend_hash_exists(&EG(included_files), resolved_path); } else { - resolved_path = Z_STRVAL_P(inc_filename); + resolved_path = zend_string_copy(Z_STR_P(inc_filename)); } if (failure_retval) { /* do nothing, file already included */ - } else if (SUCCESS == zend_stream_open(resolved_path, &file_handle)) { + } else if (SUCCESS == zend_stream_open(resolved_path->val, &file_handle)) { if (!file_handle.opened_path) { - file_handle.opened_path = estrdup(resolved_path); + file_handle.opened_path = zend_string_copy(resolved_path); } - if (zend_hash_str_add_empty_element(&EG(included_files), file_handle.opened_path, (int)strlen(file_handle.opened_path))) { + if (zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path)) { new_op_array = zend_compile_file(&file_handle, (opline->extended_value==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE)); zend_destroy_file_handle(&file_handle); } else { @@ -4620,9 +4620,7 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMPVAR|CV, ANY) zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename)); } } - if (resolved_path != Z_STRVAL_P(inc_filename)) { - efree(resolved_path); - } + zend_string_release(resolved_path); } break; case ZEND_INCLUDE: diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 0cff7d7baf..a850098865 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -3127,24 +3127,24 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HA case ZEND_INCLUDE_ONCE: case ZEND_REQUIRE_ONCE: { zend_file_handle file_handle; - char *resolved_path; + zend_string *resolved_path; resolved_path = zend_resolve_path(Z_STRVAL_P(inc_filename), (int)Z_STRLEN_P(inc_filename)); if (resolved_path) { - failure_retval = zend_hash_str_exists(&EG(included_files), resolved_path, (int)strlen(resolved_path)); + failure_retval = zend_hash_exists(&EG(included_files), resolved_path); } else { - resolved_path = Z_STRVAL_P(inc_filename); + resolved_path = zend_string_copy(Z_STR_P(inc_filename)); } if (failure_retval) { /* do nothing, file already included */ - } else if (SUCCESS == zend_stream_open(resolved_path, &file_handle)) { + } else if (SUCCESS == zend_stream_open(resolved_path->val, &file_handle)) { if (!file_handle.opened_path) { - file_handle.opened_path = estrdup(resolved_path); + file_handle.opened_path = zend_string_copy(resolved_path); } - if (zend_hash_str_add_empty_element(&EG(included_files), file_handle.opened_path, (int)strlen(file_handle.opened_path))) { + if (zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path)) { new_op_array = zend_compile_file(&file_handle, (opline->extended_value==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE)); zend_destroy_file_handle(&file_handle); } else { @@ -3158,9 +3158,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HA zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename)); } } - if (resolved_path != Z_STRVAL_P(inc_filename)) { - efree(resolved_path); - } + zend_string_release(resolved_path); } break; case ZEND_INCLUDE: @@ -24687,24 +24685,24 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL case ZEND_INCLUDE_ONCE: case ZEND_REQUIRE_ONCE: { zend_file_handle file_handle; - char *resolved_path; + zend_string *resolved_path; resolved_path = zend_resolve_path(Z_STRVAL_P(inc_filename), (int)Z_STRLEN_P(inc_filename)); if (resolved_path) { - failure_retval = zend_hash_str_exists(&EG(included_files), resolved_path, (int)strlen(resolved_path)); + failure_retval = zend_hash_exists(&EG(included_files), resolved_path); } else { - resolved_path = Z_STRVAL_P(inc_filename); + resolved_path = zend_string_copy(Z_STR_P(inc_filename)); } if (failure_retval) { /* do nothing, file already included */ - } else if (SUCCESS == zend_stream_open(resolved_path, &file_handle)) { + } else if (SUCCESS == zend_stream_open(resolved_path->val, &file_handle)) { if (!file_handle.opened_path) { - file_handle.opened_path = estrdup(resolved_path); + file_handle.opened_path = zend_string_copy(resolved_path); } - if (zend_hash_str_add_empty_element(&EG(included_files), file_handle.opened_path, (int)strlen(file_handle.opened_path))) { + if (zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path)) { new_op_array = zend_compile_file(&file_handle, (opline->extended_value==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE)); zend_destroy_file_handle(&file_handle); } else { @@ -24718,9 +24716,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename)); } } - if (resolved_path != Z_STRVAL_P(inc_filename)) { - efree(resolved_path); - } + zend_string_release(resolved_path); } break; case ZEND_INCLUDE: @@ -34099,24 +34095,24 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_H case ZEND_INCLUDE_ONCE: case ZEND_REQUIRE_ONCE: { zend_file_handle file_handle; - char *resolved_path; + zend_string *resolved_path; resolved_path = zend_resolve_path(Z_STRVAL_P(inc_filename), (int)Z_STRLEN_P(inc_filename)); if (resolved_path) { - failure_retval = zend_hash_str_exists(&EG(included_files), resolved_path, (int)strlen(resolved_path)); + failure_retval = zend_hash_exists(&EG(included_files), resolved_path); } else { - resolved_path = Z_STRVAL_P(inc_filename); + resolved_path = zend_string_copy(Z_STR_P(inc_filename)); } if (failure_retval) { /* do nothing, file already included */ - } else if (SUCCESS == zend_stream_open(resolved_path, &file_handle)) { + } else if (SUCCESS == zend_stream_open(resolved_path->val, &file_handle)) { if (!file_handle.opened_path) { - file_handle.opened_path = estrdup(resolved_path); + file_handle.opened_path = zend_string_copy(resolved_path); } - if (zend_hash_str_add_empty_element(&EG(included_files), file_handle.opened_path, (int)strlen(file_handle.opened_path))) { + if (zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path)) { new_op_array = zend_compile_file(&file_handle, (opline->extended_value==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE)); zend_destroy_file_handle(&file_handle); } else { @@ -34130,9 +34126,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_H zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename)); } } - if (resolved_path != Z_STRVAL_P(inc_filename)) { - efree(resolved_path); - } + zend_string_release(resolved_path); } break; case ZEND_INCLUDE: diff --git a/ext/bz2/bz2.c b/ext/bz2/bz2.c index 9b59942f26..969c5e131c 100644 --- a/ext/bz2/bz2.c +++ b/ext/bz2/bz2.c @@ -235,7 +235,7 @@ PHP_BZ2_API php_stream *_php_stream_bz2open(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, - char **opened_path, + zend_string **opened_path, php_stream_context *context STREAMS_DC) { php_stream *retstream = NULL, *stream = NULL; @@ -266,20 +266,8 @@ PHP_BZ2_API php_stream *_php_stream_bz2open(php_stream_wrapper *wrapper, bz_file = BZ2_bzopen(path_copy, mode); if (opened_path && bz_file) { -#ifdef VIRTUAL_DIR - *opened_path = path_copy; - path_copy = NULL; -#else - *opened_path = estrdup(path_copy); -#endif - } - -#ifdef VIRTUAL_DIR - if (path_copy) { - efree(path_copy); + *opened_path = zend_string_init(path_copy, strlen(path_copy), 0); } -#endif - path_copy = NULL; if (bz_file == NULL) { /* that didn't work, so try and get something from the network/wrapper */ @@ -296,7 +284,7 @@ PHP_BZ2_API php_stream *_php_stream_bz2open(php_stream_wrapper *wrapper, * failed. */ if (opened_path && !bz_file && mode[0] == 'w') { - VCWD_UNLINK(*opened_path); + VCWD_UNLINK((*opened_path)->val); } } diff --git a/ext/bz2/php_bz2.h b/ext/bz2/php_bz2.h index b3c0725086..b1aa4ca97c 100644 --- a/ext/bz2/php_bz2.h +++ b/ext/bz2/php_bz2.h @@ -47,7 +47,7 @@ extern zend_module_entry bz2_module_entry; # define PHP_BZ2_API #endif -PHP_BZ2_API php_stream *_php_stream_bz2open(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC); +PHP_BZ2_API php_stream *_php_stream_bz2open(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); PHP_BZ2_API php_stream *_php_stream_bz2open_from_BZFILE(BZFILE *bz, const char *mode, php_stream *innerstream STREAMS_DC); #define php_stream_bz2open_from_BZFILE(bz, mode, innerstream) _php_stream_bz2open_from_BZFILE((bz), (mode), (innerstream) STREAMS_CC) diff --git a/ext/dba/dba.c b/ext/dba/dba.c index f4569071f1..8491ff6a38 100644 --- a/ext/dba/dba.c +++ b/ext/dba/dba.c @@ -627,7 +627,7 @@ static void php_dba_open(INTERNAL_FUNCTION_PARAMETERS, int persistent) char *file_mode; char mode[4], *pmode, *lock_file_mode = NULL; int persistent_flag = persistent ? STREAM_OPEN_PERSISTENT : 0; - char *opened_path = NULL; + zend_string *opened_path = NULL; char *lock_name; if (ac < 2) { @@ -853,13 +853,9 @@ static void php_dba_open(INTERNAL_FUNCTION_PARAMETERS, int persistent) /* when not in read mode or failed to open .lck file read only. now try again in create(write) mode and log errors */ lock_file_mode = "a+b"; } else { - if (!persistent) { - info->lock.name = opened_path; - } else { - if (opened_path) { - info->lock.name = pestrdup(opened_path, persistent); - efree(opened_path); - } + if (opened_path) { + info->lock.name = pestrndup(opened_path->val, opened_path->len, persistent); + zend_string_release(opened_path); } } } @@ -869,15 +865,11 @@ static void php_dba_open(INTERNAL_FUNCTION_PARAMETERS, int persistent) if (lock_dbf) { /* replace the path info with the real path of the opened file */ pefree(info->path, persistent); - info->path = pestrdup(opened_path, persistent); + info->path = pestrndup(opened_path->val, opened_path->len, persistent); } /* now store the name of the lock */ - if (!persistent) { - info->lock.name = opened_path; - } else { - info->lock.name = pestrdup(opened_path, persistent); - efree(opened_path); - } + info->lock.name = pestrdup(opened_path->val, opened_path->len, persistent); + zend_string_release(opened_path); } } if (!lock_dbf) { diff --git a/ext/gd/gd.c b/ext/gd/gd.c index 61050ba288..9c252f45fc 100644 --- a/ext/gd/gd.c +++ b/ext/gd/gd.c @@ -2686,7 +2686,7 @@ static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char int b; FILE *tmp; char buf[4096]; - char *path; + zend_string *path; tmp = php_open_temporary_file(NULL, NULL, &path); if (tmp == NULL) { @@ -2745,8 +2745,8 @@ static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char } fclose(tmp); - VCWD_UNLINK((const char *)path); /* make sure that the temporary file is removed */ - efree(path); + VCWD_UNLINK((const char *)path->val); /* make sure that the temporary file is removed */ + zend_string_release(path); } RETURN_TRUE; } diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c index 584a12dc42..efd0be4c8c 100644 --- a/ext/opcache/ZendAccelerator.c +++ b/ext/opcache/ZendAccelerator.c @@ -105,7 +105,7 @@ char *zps_api_failure_reason = NULL; static zend_op_array *(*accelerator_orig_compile_file)(zend_file_handle *file_handle, int type); static int (*accelerator_orig_zend_stream_open_function)(const char *filename, zend_file_handle *handle ); -static char *(*accelerator_orig_zend_resolve_path)(const char *filename, int filename_len); +static zend_string *(*accelerator_orig_zend_resolve_path)(const char *filename, int filename_len); static void (*orig_chdir)(INTERNAL_FUNCTION_PARAMETERS) = NULL; static ZEND_INI_MH((*orig_include_path_on_modify)) = NULL; @@ -765,25 +765,23 @@ static accel_time_t zend_get_file_handle_timestamp(zend_file_handle *file_handle break; case ZEND_HANDLE_FILENAME: case ZEND_HANDLE_MAPPED: - { - char *file_path = file_handle->opened_path; + if (file_handle->opened_path) { + char *file_path = file_handle->opened_path->val; - if (file_path) { - if (is_stream_path(file_path)) { - if (zend_get_stream_timestamp(file_path, &statbuf) == SUCCESS) { - break; - } - } - if (VCWD_STAT(file_path, &statbuf) != -1) { + if (is_stream_path(file_path)) { + if (zend_get_stream_timestamp(file_path, &statbuf) == SUCCESS) { break; } } - - if (zend_get_stream_timestamp(file_handle->filename, &statbuf) != SUCCESS) { - return 0; + if (VCWD_STAT(file_path, &statbuf) != -1) { + break; } - break; } + + if (zend_get_stream_timestamp(file_handle->filename, &statbuf) != SUCCESS) { + return 0; + } + break; case ZEND_HANDLE_STREAM: { php_stream *stream = (php_stream *)file_handle->handle.stream.handle; @@ -825,20 +823,25 @@ static accel_time_t zend_get_file_handle_timestamp(zend_file_handle *file_handle static inline int do_validate_timestamps(zend_persistent_script *persistent_script, zend_file_handle *file_handle) { zend_file_handle ps_handle; - char *full_path_ptr = NULL; + zend_string *full_path_ptr = NULL; /** check that the persistent script is indeed the same file we cached * (if part of the path is a symlink than it possible that the user will change it) * See bug #15140 */ if (file_handle->opened_path) { - if (strcmp(persistent_script->full_path->val, file_handle->opened_path) != 0) { + if (persistent_script->full_path != file_handle->opened_path && + (persistent_script->full_path->len != file_handle->opened_path->len || + memcmp(persistent_script->full_path->val, file_handle->opened_path->val, file_handle->opened_path->len) != 0)) { return FAILURE; } } else { full_path_ptr = accelerator_orig_zend_resolve_path(file_handle->filename, strlen(file_handle->filename)); - if (full_path_ptr && strcmp(persistent_script->full_path->val, full_path_ptr) != 0) { - efree(full_path_ptr); + if (full_path_ptr && + persistent_script->full_path != full_path_ptr && + (persistent_script->full_path->len != full_path_ptr->len || + memcmp(persistent_script->full_path->val, full_path_ptr->val, full_path_ptr->len) != 0)) { + zend_string_release(full_path_ptr); return FAILURE; } file_handle->opened_path = full_path_ptr; @@ -846,7 +849,7 @@ static inline int do_validate_timestamps(zend_persistent_script *persistent_scri if (persistent_script->timestamp == 0) { if (full_path_ptr) { - efree(full_path_ptr); + zend_string_release(full_path_ptr); file_handle->opened_path = NULL; } return FAILURE; @@ -854,19 +857,19 @@ static inline int do_validate_timestamps(zend_persistent_script *persistent_scri if (zend_get_file_handle_timestamp(file_handle, NULL) == persistent_script->timestamp) { if (full_path_ptr) { - efree(full_path_ptr); + zend_string_release(full_path_ptr); file_handle->opened_path = NULL; } return SUCCESS; } if (full_path_ptr) { - efree(full_path_ptr); + zend_string_release(full_path_ptr); file_handle->opened_path = NULL; } ps_handle.type = ZEND_HANDLE_FILENAME; ps_handle.filename = persistent_script->full_path->val; - ps_handle.opened_path = persistent_script->full_path->val; + ps_handle.opened_path = persistent_script->full_path; if (zend_get_file_handle_timestamp(&ps_handle, NULL) == persistent_script->timestamp) { return SUCCESS; @@ -934,8 +937,8 @@ char *accel_make_persistent_key_ex(zend_file_handle *file_handle, int path_lengt /* we don't handle this well for now. */ zend_accel_error(ACCEL_LOG_INFO, "getcwd() failed for '%s' (%d), please try to set opcache.use_cwd to 0 in ini file", file_handle->filename, errno); if (file_handle->opened_path) { - cwd = file_handle->opened_path; - cwd_len = strlen(cwd); + cwd = file_handle->opened_path->val; + cwd_len = file_handle->opened_path->len; } else { ZCG(key_len) = 0; return NULL; @@ -1047,7 +1050,7 @@ static inline char *accel_make_persistent_key(zend_file_handle *file_handle, int int zend_accel_invalidate(const char *filename, int filename_len, zend_bool force) { - char *realpath; + zend_string *realpath; zend_persistent_script *persistent_script; if (!ZCG(enabled) || !accel_startup_ok || !ZCSG(accelerator_enabled) || accelerator_shm_read_lock() != SUCCESS) { @@ -1060,12 +1063,12 @@ int zend_accel_invalidate(const char *filename, int filename_len, zend_bool forc return FAILURE; } - persistent_script = zend_accel_hash_find(&ZCSG(hash), realpath, strlen(realpath)); + persistent_script = zend_accel_hash_find(&ZCSG(hash), realpath->val, realpath->len); if (persistent_script && !persistent_script->corrupted) { zend_file_handle file_handle; file_handle.type = ZEND_HANDLE_FILENAME; - file_handle.filename = realpath; + file_handle.filename = realpath->val; file_handle.opened_path = realpath; if (force || @@ -1317,7 +1320,7 @@ static zend_persistent_script *compile_and_cache_file(zend_file_handle *file_han } /* check blacklist right after ensuring that file was opened */ - if (file_handle->opened_path && zend_accel_blacklist_is_blacklisted(&accel_blacklist, file_handle->opened_path)) { + if (file_handle->opened_path && zend_accel_blacklist_is_blacklisted(&accel_blacklist, file_handle->opened_path->val)) { ZCSG(blacklist_misses)++; *op_array_p = accelerator_orig_compile_file(file_handle, type); return NULL; @@ -1439,7 +1442,7 @@ static zend_persistent_script *compile_and_cache_file(zend_file_handle *file_han } if (file_handle->opened_path) { - new_persistent_script->full_path = zend_string_init(file_handle->opened_path, strlen(file_handle->opened_path), 0); + new_persistent_script->full_path = zend_string_copy(file_handle->opened_path); } else { new_persistent_script->full_path = zend_string_init(file_handle->filename, strlen(file_handle->filename), 0); } @@ -1521,7 +1524,7 @@ zend_op_array *persistent_compile_file(zend_file_handle *file_handle, int type) } if (file_handle->opened_path && - (bucket = zend_accel_hash_find_entry(&ZCSG(hash), file_handle->opened_path, strlen(file_handle->opened_path))) != NULL) { + (bucket = zend_accel_hash_find_entry(&ZCSG(hash), file_handle->opened_path->val, file_handle->opened_path->len)) != NULL) { persistent_script = (zend_persistent_script *)bucket->data; if (!ZCG(accel_directives).revalidate_path && @@ -1702,7 +1705,7 @@ static int persistent_stream_open_function(const char *filename, zend_file_handl (EG(current_execute_data) && (ZCG(cache_opline) == EG(current_execute_data)->opline))) { persistent_script = ZCG(cache_persistent_script); - handle->opened_path = estrndup(persistent_script->full_path->val, persistent_script->full_path->len); + handle->opened_path = zend_string_copy(persistent_script->full_path); handle->type = ZEND_HANDLE_FILENAME; return SUCCESS; #if 0 @@ -1733,7 +1736,7 @@ static int persistent_stream_open_function(const char *filename, zend_file_handl } /* zend_resolve_path() replacement for PHP 5.3 and above */ -static char* persistent_zend_resolve_path(const char *filename, int filename_len) +static zend_string* persistent_zend_resolve_path(const char *filename, int filename_len) { if (ZCG(enabled) && accel_startup_ok && (ZCG(counted) || ZCSG(accelerator_enabled)) && @@ -1752,7 +1755,7 @@ static char* persistent_zend_resolve_path(const char *filename, int filename_len zend_file_handle handle; char *key = NULL; int key_length; - char *resolved_path; + zend_string *resolved_path; zend_accel_hash_entry *bucket; zend_persistent_script *persistent_script; @@ -1766,7 +1769,7 @@ static char* persistent_zend_resolve_path(const char *filename, int filename_len ZCG(key_len) = persistent_script->full_path->len; ZCG(cache_opline) = EG(current_execute_data) ? EG(current_execute_data)->opline : NULL; ZCG(cache_persistent_script) = persistent_script; - return estrndup(persistent_script->full_path->val, persistent_script->full_path->len); + return zend_string_copy(persistent_script->full_path); } } @@ -1783,7 +1786,7 @@ static char* persistent_zend_resolve_path(const char *filename, int filename_len /* we have persistent script */ ZCG(cache_opline) = EG(current_execute_data) ? EG(current_execute_data)->opline : NULL; ZCG(cache_persistent_script) = persistent_script; - return estrndup(persistent_script->full_path->val, persistent_script->full_path->len); + return zend_string_copy(persistent_script->full_path); } /* find the full real path */ @@ -1791,7 +1794,7 @@ static char* persistent_zend_resolve_path(const char *filename, int filename_len /* Check if requested file already cached (by real path) */ if (resolved_path && - (bucket = zend_accel_hash_find_entry(&ZCSG(hash), resolved_path, strlen(resolved_path))) != NULL) { + (bucket = zend_accel_hash_find_entry(&ZCSG(hash), resolved_path->val, resolved_path->len)) != NULL) { persistent_script = (zend_persistent_script *)bucket->data; if (persistent_script && !persistent_script->corrupted) { diff --git a/ext/opcache/zend_accelerator_module.c b/ext/opcache/zend_accelerator_module.c index 625fe65d4e..3af08d0123 100644 --- a/ext/opcache/zend_accelerator_module.c +++ b/ext/opcache/zend_accelerator_module.c @@ -278,25 +278,25 @@ ZEND_INI_BEGIN() #endif ZEND_INI_END() -static int filename_is_in_cache(char *filename, int filename_len) +static int filename_is_in_cache(zend_string *filename) { char *key; int key_length; zend_file_handle handle = {{0}, NULL, NULL, 0, 0}; zend_persistent_script *persistent_script; - handle.filename = filename; + handle.filename = filename->val; handle.type = ZEND_HANDLE_FILENAME; - if (IS_ABSOLUTE_PATH(filename, filename_len)) { - persistent_script = zend_accel_hash_find(&ZCSG(hash), filename, filename_len); + if (IS_ABSOLUTE_PATH(filename->val, filename->len)) { + persistent_script = zend_accel_hash_find(&ZCSG(hash), filename->val, filename->len); if (persistent_script) { return !persistent_script->corrupted && validate_timestamp_and_record(persistent_script, &handle) == SUCCESS; } } - if ((key = accel_make_persistent_key_ex(&handle, filename_len, &key_length)) != NULL) { + if ((key = accel_make_persistent_key_ex(&handle, filename->len, &key_length)) != NULL) { persistent_script = zend_accel_hash_find(&ZCSG(hash), key, key_length); return persistent_script && !persistent_script->corrupted && validate_timestamp_and_record(persistent_script, &handle) == SUCCESS; @@ -315,7 +315,7 @@ static int accel_file_in_cache(INTERNAL_FUNCTION_PARAMETERS) Z_STRLEN(zfilename) == 0) { return 0; } - return filename_is_in_cache(Z_STRVAL(zfilename), Z_STRLEN(zfilename)); + return filename_is_in_cache(Z_STR(zfilename)); } static void accel_file_exists(INTERNAL_FUNCTION_PARAMETERS) @@ -734,8 +734,7 @@ static ZEND_FUNCTION(opcache_compile_file) Return true if the script is cached in OPCache, false if it is not cached or if OPCache is not running. */ static ZEND_FUNCTION(opcache_is_script_cached) { - char *script_name; - size_t script_name_len; + zend_string *script_name; if (!validate_api_restriction()) { RETURN_FALSE; @@ -745,9 +744,9 @@ static ZEND_FUNCTION(opcache_is_script_cached) RETURN_FALSE; } - if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &script_name, &script_name_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &script_name) == FAILURE) { return; } - RETURN_BOOL(filename_is_in_cache(script_name, script_name_len)); + RETURN_BOOL(filename_is_in_cache(script_name)); } diff --git a/ext/phar/dirstream.c b/ext/phar/dirstream.c index dcfc3ddcbc..9a81dbbe3a 100644 --- a/ext/phar/dirstream.c +++ b/ext/phar/dirstream.c @@ -300,7 +300,7 @@ PHAR_ADD_ENTRY: /** * Open a directory handle within a phar archive */ -php_stream *phar_wrapper_open_dir(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC) /* {{{ */ +php_stream *phar_wrapper_open_dir(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC) /* {{{ */ { php_url *resource = NULL; php_stream *ret; diff --git a/ext/phar/dirstream.h b/ext/phar/dirstream.h index 97cc4a4cb0..b0e5f50ae4 100644 --- a/ext/phar/dirstream.h +++ b/ext/phar/dirstream.h @@ -33,7 +33,7 @@ static int phar_dir_close(php_stream *stream, int close_handle); static int phar_dir_flush(php_stream *stream); static int phar_dir_seek( php_stream *stream, zend_off_t offset, int whence, zend_off_t *newoffset); #else -php_stream* phar_wrapper_open_dir(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC); +php_stream* phar_wrapper_open_dir(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); #endif END_EXTERN_C() diff --git a/ext/phar/func_interceptors.c b/ext/phar/func_interceptors.c index f71e1f34c2..e3bdf01cf1 100644 --- a/ext/phar/func_interceptors.c +++ b/ext/phar/func_interceptors.c @@ -118,6 +118,7 @@ PHAR_FUNC(phar_file_get_contents) /* {{{ */ if (use_include_path || (!IS_ABSOLUTE_PATH(filename, filename_len) && !strstr(filename, "://"))) { char *arch, *entry, *fname; + zend_string *entry_str = NULL; int arch_len, entry_len, fname_len; php_stream_context *context = NULL; @@ -148,8 +149,8 @@ PHAR_FUNC(phar_file_get_contents) /* {{{ */ goto skip_phar; } if (use_include_path) { - if ((entry = phar_find_in_include_path(entry, entry_len, NULL))) { - name = entry; + if ((entry_str = phar_find_in_include_path(entry, entry_len, NULL))) { + name = entry_str->val; goto phar_it; } else { /* this file is not in the phar, use the original path */ @@ -188,7 +189,11 @@ phar_it: context = php_stream_context_from_zval(zcontext, 0); } stream = php_stream_open_wrapper_ex(name, "rb", 0 | REPORT_ERRORS, NULL, context); - efree(name); + if (entry_str) { + zend_string_release(entry_str); + } else { + efree(name); + } if (!stream) { RETURN_FALSE; @@ -243,6 +248,7 @@ PHAR_FUNC(phar_readfile) /* {{{ */ } if (use_include_path || (!IS_ABSOLUTE_PATH(filename, filename_len) && !strstr(filename, "://"))) { char *arch, *entry, *fname; + zend_string *entry_str = NULL; int arch_len, entry_len, fname_len; php_stream_context *context = NULL; char *name; @@ -267,12 +273,12 @@ PHAR_FUNC(phar_readfile) /* {{{ */ goto skip_phar; } if (use_include_path) { - if (!(entry = phar_find_in_include_path(entry, entry_len, NULL))) { + if (!(entry_str = phar_find_in_include_path(entry, entry_len, NULL))) { /* this file is not in the phar, use the original path */ efree(arch); goto skip_phar; } else { - name = entry; + name = entry_str->val; } } else { entry = phar_fix_filepath(estrndup(entry, entry_len), &entry_len, 1); @@ -301,7 +307,11 @@ notfound: efree(arch); context = php_stream_context_from_zval(zcontext, 0); stream = php_stream_open_wrapper_ex(name, "rb", 0 | REPORT_ERRORS, NULL, context); - efree(name); + if (entry_str) { + zend_string_release(entry_str); + } else { + efree(name); + } if (stream == NULL) { RETURN_FALSE; } @@ -339,6 +349,7 @@ PHAR_FUNC(phar_fopen) /* {{{ */ } if (use_include_path || (!IS_ABSOLUTE_PATH(filename, filename_len) && !strstr(filename, "://"))) { char *arch, *entry, *fname; + zend_string *entry_str = NULL; int arch_len, entry_len, fname_len; php_stream_context *context = NULL; char *name; @@ -363,12 +374,12 @@ PHAR_FUNC(phar_fopen) /* {{{ */ goto skip_phar; } if (use_include_path) { - if (!(entry = phar_find_in_include_path(entry, entry_len, NULL))) { + if (!(entry_str = phar_find_in_include_path(entry, entry_len, NULL))) { /* this file is not in the phar, use the original path */ efree(arch); goto skip_phar; } else { - name = entry; + name = entry_str->val; } } else { entry = phar_fix_filepath(estrndup(entry, entry_len), &entry_len, 1); @@ -398,7 +409,11 @@ notfound: efree(arch); context = php_stream_context_from_zval(zcontext, 0); stream = php_stream_open_wrapper_ex(name, mode, 0 | REPORT_ERRORS, NULL, context); - efree(name); + if (entry_str) { + zend_string_release(entry_str); + } else { + efree(name); + } if (stream == NULL) { RETURN_FALSE; } diff --git a/ext/phar/phar.c b/ext/phar/phar.c index cba275c30a..8448100f77 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -27,7 +27,7 @@ static void destroy_phar_data(zval *zv); ZEND_DECLARE_MODULE_GLOBALS(phar) -char *(*phar_save_resolve_path)(const char *filename, int filename_len); +zend_string *(*phar_save_resolve_path)(const char *filename, int filename_len); /** * set's phar->is_writeable based on the current INI value @@ -1322,7 +1322,8 @@ int phar_create_or_parse_filename(char *fname, int fname_len, char *alias, int a { phar_archive_data *mydata; php_stream *fp; - char *actual = NULL, *p; + zend_string *actual = NULL; + char *p; if (!pphar) { pphar = &mydata; @@ -1340,8 +1341,8 @@ int phar_create_or_parse_filename(char *fname, int fname_len, char *alias, int a fp = php_stream_open_wrapper(fname, "rb", IGNORE_URL|STREAM_MUST_SEEK|0, &actual); if (actual) { - fname = actual; - fname_len = strlen(actual); + fname = actual->val; + fname_len = actual->len; } if (fp) { @@ -1350,20 +1351,20 @@ int phar_create_or_parse_filename(char *fname, int fname_len, char *alias, int a (*pphar)->is_writeable = 1; } if (actual) { - efree(actual); + zend_string_release(actual); } return SUCCESS; } else { /* file exists, but is either corrupt or not a phar archive */ if (actual) { - efree(actual); + zend_string_release(actual); } return FAILURE; } } if (actual) { - efree(actual); + zend_string_release(actual); } if (PHAR_G(readonly) && !is_data) { @@ -1475,7 +1476,7 @@ int phar_create_or_parse_filename(char *fname, int fname_len, char *alias, int a int phar_open_from_filename(char *fname, int fname_len, char *alias, int alias_len, int options, phar_archive_data** pphar, char **error) /* {{{ */ { php_stream *fp; - char *actual; + zend_string *actual; int ret, is_data = 0; if (error) { @@ -1509,20 +1510,20 @@ int phar_open_from_filename(char *fname, int fname_len, char *alias, int alias_l } } if (actual) { - efree(actual); + zend_string_release(actual); } return FAILURE; } if (actual) { - fname = actual; - fname_len = strlen(actual); + fname = actual->val; + fname_len = actual->len; } ret = phar_open_from_fp(fp, fname, fname_len, alias, alias_len, options, pphar, is_data, error); if (actual) { - efree(actual); + zend_string_release(actual); } return ret; @@ -2252,7 +2253,7 @@ int phar_open_executed_filename(char *alias, int alias_len, char **error) /* {{{ char *fname; php_stream *fp; int fname_len; - char *actual = NULL; + zend_string *actual = NULL; int ret; if (error) { @@ -2298,20 +2299,20 @@ int phar_open_executed_filename(char *alias, int alias_len, char **error) /* {{{ spprintf(error, 0, "unable to open phar for reading \"%s\"", fname); } if (actual) { - efree(actual); + zend_string_release(actual); } return FAILURE; } if (actual) { - fname = actual; - fname_len = strlen(actual); + fname = actual->val; + fname_len = actual->len; } ret = phar_open_from_fp(fp, fname, fname_len, alias, alias_len, REPORT_ERRORS, NULL, 0, error); if (actual) { - efree(actual); + zend_string_release(actual); } return ret; @@ -3254,7 +3255,7 @@ static size_t phar_zend_stream_fsizer(void *handle) /* {{{ */ zend_op_array *(*phar_orig_compile_file)(zend_file_handle *file_handle, int type); #define phar_orig_zend_open zend_stream_open_function -static char *phar_resolve_path(const char *filename, int filename_len) +static zend_string *phar_resolve_path(const char *filename, int filename_len) { return phar_find_in_include_path((char *) filename, filename_len, NULL); } diff --git a/ext/phar/phar_internal.h b/ext/phar/phar_internal.h index 0f8323f065..ccff36770b 100644 --- a/ext/phar/phar_internal.h +++ b/ext/phar/phar_internal.h @@ -495,7 +495,7 @@ union _phar_entry_object { #endif #ifndef PHAR_MAIN -extern char *(*phar_save_resolve_path)(const char *filename, int filename_len); +extern zend_string *(*phar_save_resolve_path)(const char *filename, int filename_len); #endif BEGIN_EXTERN_C() @@ -562,7 +562,7 @@ char *phar_compress_filter(phar_entry_info * entry, int return_unknown); void phar_remove_virtual_dirs(phar_archive_data *phar, char *filename, int filename_len); void phar_add_virtual_dirs(phar_archive_data *phar, char *filename, int filename_len); int phar_mount_entry(phar_archive_data *phar, char *filename, int filename_len, char *path, int path_len); -char *phar_find_in_include_path(char *file, int file_len, phar_archive_data **pphar); +zend_string *phar_find_in_include_path(char *file, int file_len, phar_archive_data **pphar); char *phar_fix_filepath(char *path, int *new_len, int use_cwd); phar_entry_info * phar_open_jit(phar_archive_data *phar, phar_entry_info *entry, char **error); int phar_parse_metadata(char **buffer, zval *metadata, int zip_metadata_len); diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c index 0b173d1e0b..d5f84b87de 100644 --- a/ext/phar/phar_object.c +++ b/ext/phar/phar_object.c @@ -1399,11 +1399,11 @@ static int phar_build(zend_object_iterator *iter, void *puser) /* {{{ */ phar_entry_data *data; php_stream *fp; size_t contents_len; - char *fname, *error = NULL, *base = p_obj->b, *opened, *save = NULL, *temp = NULL; + char *fname, *error = NULL, *base = p_obj->b, *save = NULL, *temp = NULL; + zend_string *opened; char *str_key; zend_class_entry *ce = p_obj->c; phar_archive_object *phar_obj = p_obj->p; - char *str = "[stream]"; value = iter->funcs->get_current_data(iter); @@ -1453,7 +1453,7 @@ static int phar_build(zend_object_iterator *iter, void *puser) /* {{{ */ } close_fp = 0; - opened = (char *) estrndup(str, sizeof("[stream]") - 1); + opened = zend_string_init("[stream]", sizeof("[stream]") - 1, 0); goto after_open_fp; case IS_OBJECT: if (instanceof_function(Z_OBJCE_P(value), spl_ce_SplFileInfo)) { @@ -1638,7 +1638,7 @@ after_open_fp: } if (opened) { - efree(opened); + zend_string_release(opened); } if (close_fp) { @@ -1657,7 +1657,7 @@ after_open_fp: } if (opened) { - efree(opened); + zend_string_release(opened); } if (temp) { @@ -1692,9 +1692,7 @@ after_open_fp: php_stream_close(fp); } - // TODO: avoid reallocation ??? - add_assoc_string(p_obj->ret, str_key, opened); - efree(opened); + add_assoc_str(p_obj->ret, str_key, opened); if (save) { efree(save); @@ -4202,7 +4200,7 @@ PHP_METHOD(Phar, extractTo) php_stream *fp; php_stream_statbuf ssb; phar_entry_info *entry; - char *pathto, *filename, *actual; + char *pathto, *filename; size_t pathto_len, filename_len; int ret, i; int nelems; @@ -4215,7 +4213,7 @@ PHP_METHOD(Phar, extractTo) return; } - fp = php_stream_open_wrapper(phar_obj->archive->fname, "rb", IGNORE_URL|STREAM_MUST_SEEK, &actual); + fp = php_stream_open_wrapper(phar_obj->archive->fname, "rb", IGNORE_URL|STREAM_MUST_SEEK, NULL); if (!fp) { zend_throw_exception_ex(spl_ce_InvalidArgumentException, 0, @@ -4223,7 +4221,6 @@ PHP_METHOD(Phar, extractTo) return; } - efree(actual); php_stream_close(fp); if (pathto_len < 1) { diff --git a/ext/phar/stream.c b/ext/phar/stream.c index ac40b3e8dc..e05b1663c2 100644 --- a/ext/phar/stream.c +++ b/ext/phar/stream.c @@ -155,7 +155,7 @@ php_url* phar_parse_url(php_stream_wrapper *wrapper, const char *filename, const /** * used for fopen('phar://...') and company */ -static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC) /* {{{ */ +static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC) /* {{{ */ { phar_archive_data *phar; phar_entry_data *idata; @@ -231,7 +231,7 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha } } if (opened_path) { - spprintf(opened_path, MAXPATHLEN, "phar://%s/%s", idata->phar->fname, idata->internal_file->filename); + *opened_path = zend_strpprintf(MAXPATHLEN, "phar://%s/%s", idata->phar->fname, idata->internal_file->filename); } return fpf; } else { @@ -249,7 +249,7 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha } efree(internal_file); if (opened_path) { - spprintf(opened_path, MAXPATHLEN, "%s", phar->fname); + *opened_path = zend_strpprintf(MAXPATHLEN, "%s", phar->fname); } php_url_free(resource); goto phar_stub; @@ -275,7 +275,7 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha ++(entry->fp_refcount); php_url_free(resource); if (opened_path) { - spprintf(opened_path, MAXPATHLEN, "%s", phar->fname); + *opened_path = zend_strpprintf(MAXPATHLEN, "%s", phar->fname); } efree(internal_file); goto phar_stub; @@ -332,7 +332,7 @@ idata_error: } } if (opened_path) { - spprintf(opened_path, MAXPATHLEN, "phar://%s/%s", idata->phar->fname, idata->internal_file->filename); + *opened_path = zend_strpprintf(MAXPATHLEN, "phar://%s/%s", idata->phar->fname, idata->internal_file->filename); } efree(internal_file); phar_stub: diff --git a/ext/phar/stream.h b/ext/phar/stream.h index dc798c0d1b..2b637c0caf 100644 --- a/ext/phar/stream.h +++ b/ext/phar/stream.h @@ -24,7 +24,7 @@ BEGIN_EXTERN_C() php_url* phar_parse_url(php_stream_wrapper *wrapper, const char *filename, const char *mode, int options); void phar_entry_remove(phar_entry_data *idata, char **error); -static php_stream* phar_wrapper_open_url(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC); +static php_stream* phar_wrapper_open_url(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); static int phar_wrapper_rename(php_stream_wrapper *wrapper, const char *url_from, const char *url_to, int options, php_stream_context *context); static int phar_wrapper_unlink(php_stream_wrapper *wrapper, const char *url, int options, php_stream_context *context); static int phar_wrapper_stat(php_stream_wrapper *wrapper, const char *url, int flags, php_stream_statbuf *ssb, php_stream_context *context); diff --git a/ext/phar/util.c b/ext/phar/util.c index 1c10ab13e0..190f69cf61 100644 --- a/ext/phar/util.c +++ b/ext/phar/util.c @@ -250,10 +250,11 @@ int phar_mount_entry(phar_archive_data *phar, char *filename, int filename_len, } /* }}} */ -char *phar_find_in_include_path(char *filename, int filename_len, phar_archive_data **pphar) /* {{{ */ +zend_string *phar_find_in_include_path(char *filename, int filename_len, phar_archive_data **pphar) /* {{{ */ { - char *path, *fname, *arch, *entry, *ret, *test; - int arch_len, entry_len, fname_len, ret_len; + zend_string *ret; + char *path, *fname, *arch, *entry, *test; + int arch_len, entry_len, fname_len; phar_archive_data *phar; if (pphar) { @@ -299,14 +300,14 @@ splitted: if (*test == '/') { if (zend_hash_str_exists(&(phar->manifest), test + 1, try_len - 1)) { - spprintf(&ret, 0, "phar://%s%s", arch, test); + ret = zend_strpprintf(0, "phar://%s%s", arch, test); efree(arch); efree(test); return ret; } } else { if (zend_hash_str_exists(&(phar->manifest), test, try_len)) { - spprintf(&ret, 0, "phar://%s/%s", arch, test); + ret = zend_strpprintf(0, "phar://%s/%s", arch, test); efree(arch); efree(test); return ret; @@ -320,11 +321,9 @@ splitted: ret = php_resolve_path(filename, filename_len, path); efree(path); - if (ret && strlen(ret) > 8 && !strncmp(ret, "phar://", 7)) { - ret_len = strlen(ret); + if (ret && ret->len > 8 && !strncmp(ret->val, "phar://", 7)) { /* found phar:// */ - - if (SUCCESS != phar_split_fname(ret, ret_len, &arch, &arch_len, &entry, &entry_len, 1, 0)) { + if (SUCCESS != phar_split_fname(ret->val, ret->len, &arch, &arch_len, &entry, &entry_len, 1, 0)) { return ret; } diff --git a/ext/spl/php_spl.c b/ext/spl/php_spl.c index 9c7dc5caff..f16734422b 100644 --- a/ext/spl/php_spl.c +++ b/ext/spl/php_spl.c @@ -273,9 +273,9 @@ static int spl_autoload(zend_string *class_name, zend_string *lc_name, const cha if (ret == SUCCESS) { zend_string *opened_path; if (!file_handle.opened_path) { - file_handle.opened_path = estrndup(class_file, class_file_len); + file_handle.opened_path = zend_string_init(class_file, class_file_len, 0); } - opened_path = zend_string_init(file_handle.opened_path, strlen(file_handle.opened_path), 0); + opened_path = zend_string_copy(file_handle.opened_path); ZVAL_NULL(&dummy); if (zend_hash_add(&EG(included_files), opened_path, &dummy)) { new_op_array = zend_compile_file(&file_handle, ZEND_REQUIRE); diff --git a/ext/standard/file.c b/ext/standard/file.c index 3599313a71..dae4235a99 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -802,7 +802,7 @@ PHP_FUNCTION(tempnam) { char *dir, *prefix; size_t dir_len, prefix_len; - char *opened_path; + zend_string *opened_path; int fd; zend_string *p; @@ -823,9 +823,7 @@ PHP_FUNCTION(tempnam) if ((fd = php_open_temporary_fd_ex(dir, p->val, &opened_path, 1)) >= 0) { close(fd); - // TODO: avoid reallocation ??? - RETVAL_STRING(opened_path); - efree(opened_path); + RETVAL_STR(opened_path); } zend_string_release(p); } diff --git a/ext/standard/ftp_fopen_wrapper.c b/ext/standard/ftp_fopen_wrapper.c index 1c83a9434c..b003ffda0f 100644 --- a/ext/standard/ftp_fopen_wrapper.c +++ b/ext/standard/ftp_fopen_wrapper.c @@ -131,7 +131,7 @@ static int php_stream_ftp_stream_close(php_stream_wrapper *wrapper, php_stream * /* {{{ php_ftp_fopen_connect */ static php_stream *php_ftp_fopen_connect(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, - char **opened_path, php_stream_context *context, php_stream **preuseid, + zend_string **opened_path, php_stream_context *context, php_stream **preuseid, php_url **presource, int *puse_ssl, int *puse_ssl_on_data) { php_stream *stream = NULL, *reuseid = NULL; @@ -412,7 +412,7 @@ static unsigned short php_fopen_do_pasv(php_stream *stream, char *ip, size_t ip_ /* {{{ php_fopen_url_wrap_ftp */ php_stream * php_stream_url_wrap_ftp(php_stream_wrapper *wrapper, const char *path, const char *mode, - int options, char **opened_path, php_stream_context *context STREAMS_DC) + int options, zend_string **opened_path, php_stream_context *context STREAMS_DC) { php_stream *stream = NULL, *datastream = NULL; php_url *resource = NULL; @@ -684,7 +684,7 @@ static php_stream_ops php_ftp_dirstream_ops = { /* {{{ php_stream_ftp_opendir */ php_stream * php_stream_ftp_opendir(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, - char **opened_path, php_stream_context *context STREAMS_DC) + zend_string **opened_path, php_stream_context *context STREAMS_DC) { php_stream *stream, *reuseid, *datastream = NULL; php_ftp_dirstream_data *dirsdata; diff --git a/ext/standard/http_fopen_wrapper.c b/ext/standard/http_fopen_wrapper.c index 6e0ea812a4..1f54f62c6c 100644 --- a/ext/standard/http_fopen_wrapper.c +++ b/ext/standard/http_fopen_wrapper.c @@ -110,7 +110,7 @@ static inline void strip_header(char *header_bag, char *lc_header_bag, } php_stream *php_stream_url_wrap_http_ex(php_stream_wrapper *wrapper, - const char *path, const char *mode, int options, char **opened_path, + const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context, int redirect_max, int flags STREAMS_DC) /* {{{ */ { php_stream *stream = NULL; @@ -933,7 +933,7 @@ out: } /* }}} */ -php_stream *php_stream_url_wrap_http(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC) /* {{{ */ +php_stream *php_stream_url_wrap_http(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC) /* {{{ */ { return php_stream_url_wrap_http_ex(wrapper, path, mode, options, opened_path, context, PHP_URL_REDIRECT_MAX, HTTP_WRAPPER_HEADER_INIT STREAMS_CC); } diff --git a/ext/standard/php_fopen_wrapper.c b/ext/standard/php_fopen_wrapper.c index 5e85d4dc43..1dc6a21cf5 100644 --- a/ext/standard/php_fopen_wrapper.c +++ b/ext/standard/php_fopen_wrapper.c @@ -172,7 +172,7 @@ static void php_stream_apply_filter_list(php_stream *stream, char *filterlist, i /* }}} */ php_stream * php_stream_url_wrap_php(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, - char **opened_path, php_stream_context *context STREAMS_DC) /* {{{ */ + zend_string **opened_path, php_stream_context *context STREAMS_DC) /* {{{ */ { int fd = -1; int mode_rw = 0; @@ -345,6 +345,7 @@ php_stream * php_stream_url_wrap_php(php_stream_wrapper *wrapper, const char *pa efree(pathdup); return NULL; } + if (!(stream = php_stream_open_wrapper(p + 10, mode, options, opened_path))) { efree(pathdup); return NULL; diff --git a/ext/standard/php_fopen_wrappers.h b/ext/standard/php_fopen_wrappers.h index 5217144755..3773edbc5d 100644 --- a/ext/standard/php_fopen_wrappers.h +++ b/ext/standard/php_fopen_wrappers.h @@ -23,8 +23,8 @@ #ifndef PHP_FOPEN_WRAPPERS_H #define PHP_FOPEN_WRAPPERS_H -php_stream *php_stream_url_wrap_http(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC); -php_stream *php_stream_url_wrap_ftp(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC); +php_stream *php_stream_url_wrap_http(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); +php_stream *php_stream_url_wrap_ftp(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); extern PHPAPI php_stream_wrapper php_stream_http_wrapper; extern PHPAPI php_stream_wrapper php_stream_ftp_wrapper; extern PHPAPI php_stream_wrapper php_stream_php_wrapper; diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index 46c2aaa9a1..a86aae25f0 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -1489,8 +1489,9 @@ PHP_FUNCTION(stream_socket_enable_crypto) Determine what file will be opened by calls to fopen() with a relative path */ PHP_FUNCTION(stream_resolve_include_path) { - char *filename, *resolved_path; + char *filename; size_t filename_len; + zend_string *resolved_path; if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &filename, &filename_len) == FAILURE) { return; @@ -1499,10 +1500,7 @@ PHP_FUNCTION(stream_resolve_include_path) resolved_path = zend_resolve_path(filename, (int)filename_len); if (resolved_path) { - // TODO: avoid reallocation ??? - RETVAL_STRING(resolved_path); - efree(resolved_path); - return; + RETURN_STR(resolved_path); } RETURN_FALSE; } diff --git a/ext/zip/php_zip.h b/ext/zip/php_zip.h index a1ae3d5d6f..31099053ef 100644 --- a/ext/zip/php_zip.h +++ b/ext/zip/php_zip.h @@ -90,7 +90,7 @@ static inline ze_zip_object *php_zip_fetch_object(zend_object *obj) { #define Z_ZIP_P(zv) php_zip_fetch_object(Z_OBJ_P((zv))) -php_stream *php_stream_zip_opener(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC); +php_stream *php_stream_zip_opener(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); php_stream *php_stream_zip_open(const char *filename, const char *path, const char *mode STREAMS_DC); extern php_stream_wrapper php_stream_zip_wrapper; diff --git a/ext/zip/zip_stream.c b/ext/zip/zip_stream.c index d56213d1d5..18707eed27 100644 --- a/ext/zip/zip_stream.c +++ b/ext/zip/zip_stream.c @@ -254,7 +254,7 @@ php_stream *php_stream_zip_opener(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, - char **opened_path, + zend_string **opened_path, php_stream_context *context STREAMS_DC) { int path_len; @@ -314,7 +314,7 @@ php_stream *php_stream_zip_opener(php_stream_wrapper *wrapper, stream = php_stream_alloc(&php_stream_zipio_ops, self, NULL, mode); if (opened_path) { - *opened_path = estrdup(path); + *opened_path = zend_string_init(path, strlen(path), 0); } } else { zip_close(za); diff --git a/ext/zlib/php_zlib.h b/ext/zlib/php_zlib.h index 1ecf593e69..2a8e443eba 100644 --- a/ext/zlib/php_zlib.h +++ b/ext/zlib/php_zlib.h @@ -58,7 +58,7 @@ ZEND_BEGIN_MODULE_GLOBALS(zlib) int compression_coding; ZEND_END_MODULE_GLOBALS(zlib); -php_stream *php_stream_gzopen(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC); +php_stream *php_stream_gzopen(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); extern php_stream_ops php_stream_gzio_ops; extern php_stream_wrapper php_stream_gzip_wrapper; extern php_stream_filter_factory php_zlib_filter_factory; diff --git a/ext/zlib/zlib_fopen_wrapper.c b/ext/zlib/zlib_fopen_wrapper.c index 8b17eca12b..6e63cc2641 100644 --- a/ext/zlib/zlib_fopen_wrapper.c +++ b/ext/zlib/zlib_fopen_wrapper.c @@ -111,7 +111,7 @@ php_stream_ops php_stream_gzio_ops = { }; php_stream *php_stream_gzopen(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, - char **opened_path, php_stream_context *context STREAMS_DC) + zend_string **opened_path, php_stream_context *context STREAMS_DC) { struct php_gz_stream_data_t *self; php_stream *stream = NULL, *innerstream = NULL; diff --git a/main/fopen_wrappers.c b/main/fopen_wrappers.c index 9414ebdf36..c516481298 100644 --- a/main/fopen_wrappers.c +++ b/main/fopen_wrappers.c @@ -340,7 +340,7 @@ PHPAPI int php_check_open_basedir_ex(const char *path, int warn) /* {{{ php_fopen_and_set_opened_path */ -static FILE *php_fopen_and_set_opened_path(const char *path, const char *mode, char **opened_path) +static FILE *php_fopen_and_set_opened_path(const char *path, const char *mode, zend_string **opened_path) { FILE *fp; @@ -349,7 +349,12 @@ static FILE *php_fopen_and_set_opened_path(const char *path, const char *mode, c } fp = VCWD_FOPEN(path, mode); if (fp && opened_path) { - *opened_path = expand_filepath_with_mode(path, NULL, NULL, 0, CWD_EXPAND); + //TODO :avoid reallocation + char *tmp = expand_filepath_with_mode(path, NULL, NULL, 0, CWD_EXPAND); + if (tmp) { + *opened_path = zend_string_init(tmp, strlen(tmp), 0); + efree(tmp); + } } return fp; } @@ -361,7 +366,7 @@ PHPAPI int php_fopen_primary_script(zend_file_handle *file_handle) { char *path_info; char *filename = NULL; - char *resolved_path = NULL; + zend_string *resolved_path = NULL; int length; zend_bool orig_display_errors; @@ -448,7 +453,7 @@ PHPAPI int php_fopen_primary_script(zend_file_handle *file_handle) } return FAILURE; } - efree(resolved_path); + zend_string_release(resolved_path); orig_display_errors = PG(display_errors); PG(display_errors) = 0; @@ -481,7 +486,7 @@ PHPAPI int php_fopen_primary_script(zend_file_handle *file_handle) /* {{{ php_resolve_path * Returns the realpath for given filename according to include path */ -PHPAPI char *php_resolve_path(const char *filename, int filename_length, const char *path) +PHPAPI zend_string *php_resolve_path(const char *filename, int filename_length, const char *path) { char resolved_path[MAXPATHLEN]; char trypath[MAXPATHLEN]; @@ -499,7 +504,7 @@ PHPAPI char *php_resolve_path(const char *filename, int filename_length, const c wrapper = php_stream_locate_url_wrapper(filename, &actual_path, STREAM_OPEN_FOR_INCLUDE); if (wrapper == &php_plain_files_wrapper) { if (tsrm_realpath(actual_path, resolved_path)) { - return estrdup(resolved_path); + return zend_string_init(resolved_path, strlen(resolved_path), 0); } } return NULL; @@ -512,7 +517,7 @@ PHPAPI char *php_resolve_path(const char *filename, int filename_length, const c !path || !*path) { if (tsrm_realpath(filename, resolved_path)) { - return estrdup(resolved_path); + return zend_string_init(resolved_path, strlen(resolved_path), 0); } else { return NULL; } @@ -562,14 +567,14 @@ PHPAPI char *php_resolve_path(const char *filename, int filename_length, const c php_stream_statbuf ssb; if (SUCCESS == wrapper->wops->url_stat(wrapper, trypath, 0, &ssb, NULL)) { - return estrdup(trypath); + return zend_string_init(trypath, strlen(trypath), 0); } } continue; } } if (tsrm_realpath(actual_path, resolved_path)) { - return estrdup(resolved_path); + return zend_string_init(resolved_path, strlen(resolved_path), 0); } } /* end provided path */ @@ -598,7 +603,7 @@ PHPAPI char *php_resolve_path(const char *filename, int filename_length, const c php_stream_statbuf ssb; if (SUCCESS == wrapper->wops->url_stat(wrapper, trypath, 0, &ssb, NULL)) { - return estrdup(trypath); + return zend_string_init(trypath, strlen(trypath), 0); } } return NULL; @@ -606,7 +611,7 @@ PHPAPI char *php_resolve_path(const char *filename, int filename_length, const c } if (tsrm_realpath(actual_path, resolved_path)) { - return estrdup(resolved_path); + return zend_string_init(resolved_path, strlen(resolved_path), 0); } } } @@ -619,7 +624,7 @@ PHPAPI char *php_resolve_path(const char *filename, int filename_length, const c * Tries to open a file with a PATH-style list of directories. * If the filename starts with "." or "/", the path is ignored. */ -PHPAPI FILE *php_fopen_with_path(const char *filename, const char *mode, const char *path, char **opened_path) +PHPAPI FILE *php_fopen_with_path(const char *filename, const char *mode, const char *path, zend_string **opened_path) { char *pathbuf, *ptr, *end; const char *exec_fname; diff --git a/main/fopen_wrappers.h b/main/fopen_wrappers.h index e54a499603..e693b03dba 100644 --- a/main/fopen_wrappers.h +++ b/main/fopen_wrappers.h @@ -46,9 +46,9 @@ PHPAPI int php_check_specific_open_basedir(const char *basedir, const char *path PHPAPI int php_check_safe_mode_include_dir(const char *path); -PHPAPI char *php_resolve_path(const char *filename, int filename_len, const char *path); +PHPAPI zend_string *php_resolve_path(const char *filename, int filename_len, const char *path); -PHPAPI FILE *php_fopen_with_path(const char *filename, const char *mode, const char *path, char **opened_path); +PHPAPI FILE *php_fopen_with_path(const char *filename, const char *mode, const char *path, zend_string **opened_path); PHPAPI char *php_strip_url_passwd(char *path); diff --git a/main/main.c b/main/main.c index 3dcba48779..f5c04099ea 100644 --- a/main/main.c +++ b/main/main.c @@ -1350,7 +1350,7 @@ PHP_FUNCTION(set_time_limit) /* {{{ php_fopen_wrapper_for_zend */ -static FILE *php_fopen_wrapper_for_zend(const char *filename, char **opened_path) +static FILE *php_fopen_wrapper_for_zend(const char *filename, zend_string **opened_path) { return php_stream_open_wrapper_as_file((char *)filename, "rb", USE_PATH|IGNORE_URL_WIN|REPORT_ERRORS|STREAM_OPEN_FOR_INCLUDE, opened_path); } @@ -1428,7 +1428,7 @@ PHPAPI int php_stream_open_for_zend_ex(const char *filename, zend_file_handle *h } /* }}} */ -static char *php_resolve_path_for_zend(const char *filename, int filename_len) /* {{{ */ +static zend_string *php_resolve_path_for_zend(const char *filename, int filename_len) /* {{{ */ { return php_resolve_path(filename, filename_len, PG(include_path)); } @@ -2490,12 +2490,9 @@ PHPAPI int php_execute_script(zend_file_handle *primary_file) primary_file->opened_path == NULL && primary_file->type != ZEND_HANDLE_FILENAME ) { - int realfile_len; - if (expand_filepath(primary_file->filename, realfile)) { - realfile_len = (int)strlen(realfile); - zend_hash_str_add_empty_element(&EG(included_files), realfile, realfile_len); - primary_file->opened_path = estrndup(realfile, realfile_len); + primary_file->opened_path = zend_string_init(realfile, strlen(realfile), 0); + zend_hash_add_empty_element(&EG(included_files), primary_file->opened_path); } } diff --git a/main/php_ini.c b/main/php_ini.c index 9c16aa327d..7914244147 100644 --- a/main/php_ini.c +++ b/main/php_ini.c @@ -389,6 +389,7 @@ int php_init_config(void) char *open_basedir; int free_ini_search_path = 0; zend_file_handle fh; + zend_string *opened_path = NULL; zend_hash_init(&configuration_hash, 8, NULL, config_zval_dtor, 1); @@ -555,7 +556,8 @@ int php_init_config(void) if (!((statbuf.st_mode & S_IFMT) == S_IFDIR)) { fh.handle.fp = VCWD_FOPEN(php_ini_file_name, "r"); if (fh.handle.fp) { - fh.filename = php_ini_opened_path = expand_filepath(php_ini_file_name, NULL); + fh.filename = expand_filepath(php_ini_file_name, NULL); + opened_path = zend_string_init(fh.filename, strlen(fh.filename), 0); } } } @@ -566,18 +568,18 @@ int php_init_config(void) const char *fmt = "php-%s.ini"; char *ini_fname; spprintf(&ini_fname, 0, fmt, sapi_module.name); - fh.handle.fp = php_fopen_with_path(ini_fname, "r", php_ini_search_path, &php_ini_opened_path); + fh.handle.fp = php_fopen_with_path(ini_fname, "r", php_ini_search_path, &opened_path); efree(ini_fname); if (fh.handle.fp) { - fh.filename = php_ini_opened_path; + fh.filename = opened_path->val; } } /* If still no ini file found, search for php.ini file in search path */ if (!fh.handle.fp) { - fh.handle.fp = php_fopen_with_path("php.ini", "r", php_ini_search_path, &php_ini_opened_path); + fh.handle.fp = php_fopen_with_path("php.ini", "r", php_ini_search_path, &opened_path); if (fh.handle.fp) { - fh.filename = php_ini_opened_path; + fh.filename = opened_path->val; } } } @@ -599,8 +601,8 @@ int php_init_config(void) ZVAL_NEW_STR(&tmp, zend_string_init(fh.filename, strlen(fh.filename), 1)); zend_hash_str_update(&configuration_hash, "cfg_file_path", sizeof("cfg_file_path")-1, &tmp); - if (php_ini_opened_path) { - efree(php_ini_opened_path); + if (opened_path) { + zend_string_release(opened_path); } php_ini_opened_path = zend_strndup(Z_STRVAL(tmp), Z_STRLEN(tmp)); } diff --git a/main/php_open_temporary_file.c b/main/php_open_temporary_file.c index 9bb5bd77ee..a88c823eed 100644 --- a/main/php_open_temporary_file.c +++ b/main/php_open_temporary_file.c @@ -94,10 +94,10 @@ * SUCH DAMAGE. */ -static int php_do_open_temporary_file(const char *path, const char *pfx, char **opened_path_p) +static int php_do_open_temporary_file(const char *path, const char *pfx, zend_string **opened_path_p) { char *trailing_slash; - char *opened_path; + char opened_path[MAXPATHLEN]; char cwd[MAXPATHLEN]; cwd_state new_state; int fd = -1; @@ -138,8 +138,7 @@ static int php_do_open_temporary_file(const char *path, const char *pfx, char ** trailing_slash = "/"; } - if (spprintf(&opened_path, 0, "%s%s%sXXXXXX", new_state.cwd, trailing_slash, pfx) >= MAXPATHLEN) { - efree(opened_path); + if (snprintf(opened_path, MAXPATHLEN, "%s%s%sXXXXXX", new_state.cwd, trailing_slash, pfx) >= MAXPATHLEN) { efree(new_state.cwd); return -1; } @@ -150,7 +149,6 @@ static int php_do_open_temporary_file(const char *path, const char *pfx, char ** /* Some versions of windows set the temp file to be read-only, * which means that opening it will fail... */ if (VCWD_CHMOD(opened_path, 0600)) { - efree(opened_path); efree(new_state.cwd); return -1; } @@ -165,10 +163,8 @@ static int php_do_open_temporary_file(const char *path, const char *pfx, char ** } #endif - if (fd == -1 || !opened_path_p) { - efree(opened_path); - } else { - *opened_path_p = opened_path; + if (fd != -1 && opened_path_p) { + *opened_path_p = zend_string_init(opened_path, strlen(opened_path), 0); } efree(new_state.cwd); return fd; @@ -264,7 +260,7 @@ PHPAPI const char* php_get_temporary_directory(void) * This function should do its best to return a file pointer to a newly created * unique file, on every platform. */ -PHPAPI int php_open_temporary_fd_ex(const char *dir, const char *pfx, char **opened_path_p, zend_bool open_basedir_check) +PHPAPI int php_open_temporary_fd_ex(const char *dir, const char *pfx, zend_string **opened_path_p, zend_bool open_basedir_check) { int fd; const char *temp_dir; @@ -296,12 +292,12 @@ def_tmp: return fd; } -PHPAPI int php_open_temporary_fd(const char *dir, const char *pfx, char **opened_path_p) +PHPAPI int php_open_temporary_fd(const char *dir, const char *pfx, zend_string **opened_path_p) { return php_open_temporary_fd_ex(dir, pfx, opened_path_p, 0); } -PHPAPI FILE *php_open_temporary_file(const char *dir, const char *pfx, char **opened_path_p) +PHPAPI FILE *php_open_temporary_file(const char *dir, const char *pfx, zend_string **opened_path_p) { FILE *fp; int fd = php_open_temporary_fd(dir, pfx, opened_path_p); diff --git a/main/php_open_temporary_file.h b/main/php_open_temporary_file.h index e63cc599f0..912f4a8adc 100644 --- a/main/php_open_temporary_file.h +++ b/main/php_open_temporary_file.h @@ -22,9 +22,9 @@ #define PHP_OPEN_TEMPORARY_FILE_H BEGIN_EXTERN_C() -PHPAPI FILE *php_open_temporary_file(const char *dir, const char *pfx, char **opened_path_p); -PHPAPI int php_open_temporary_fd_ex(const char *dir, const char *pfx, char **opened_path_p, zend_bool open_basedir_check); -PHPAPI int php_open_temporary_fd(const char *dir, const char *pfx, char **opened_path_p); +PHPAPI FILE *php_open_temporary_file(const char *dir, const char *pfx, zend_string **opened_path_p); +PHPAPI int php_open_temporary_fd_ex(const char *dir, const char *pfx, zend_string **opened_path_p, zend_bool open_basedir_check); +PHPAPI int php_open_temporary_fd(const char *dir, const char *pfx, zend_string **opened_path_p); PHPAPI const char *php_get_temporary_directory(void); PHPAPI void php_shutdown_temporary_directory(void); END_EXTERN_C() diff --git a/main/php_streams.h b/main/php_streams.h index 3cd0c047cd..3035bd560b 100644 --- a/main/php_streams.h +++ b/main/php_streams.h @@ -134,7 +134,7 @@ typedef struct _php_stream_ops { typedef struct _php_stream_wrapper_ops { /* open/create a wrapped stream */ php_stream *(*stream_opener)(php_stream_wrapper *wrapper, const char *filename, const char *mode, - int options, char **opened_path, php_stream_context *context STREAMS_DC); + int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); /* close/destroy a wrapped stream */ int (*stream_closer)(php_stream_wrapper *wrapper, php_stream *stream); /* stat a wrapped stream */ @@ -143,7 +143,7 @@ typedef struct _php_stream_wrapper_ops { int (*url_stat)(php_stream_wrapper *wrapper, const char *url, int flags, php_stream_statbuf *ssb, php_stream_context *context); /* open a "directory" stream */ php_stream *(*dir_opener)(php_stream_wrapper *wrapper, const char *filename, const char *mode, - int options, char **opened_path, php_stream_context *context STREAMS_DC); + int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); const char *label; @@ -554,7 +554,7 @@ PHPAPI int php_register_url_stream_wrapper(const char *protocol, php_stream_wrap PHPAPI int php_unregister_url_stream_wrapper(const char *protocol); PHPAPI int php_register_url_stream_wrapper_volatile(const char *protocol, php_stream_wrapper *wrapper); PHPAPI int php_unregister_url_stream_wrapper_volatile(const char *protocol); -PHPAPI php_stream *_php_stream_open_wrapper_ex(const char *path, const char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC); +PHPAPI php_stream *_php_stream_open_wrapper_ex(const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); PHPAPI php_stream_wrapper *php_stream_locate_url_wrapper(const char *path, const char **path_for_open, int options); PHPAPI const char *php_stream_locate_eol(php_stream *stream, zend_string *buf); diff --git a/main/rfc1867.c b/main/rfc1867.c index a1d8232dd9..493f70b65e 100644 --- a/main/rfc1867.c +++ b/main/rfc1867.c @@ -191,16 +191,16 @@ static void register_http_post_files_variable_ex(char *var, zval *val, zval *htt static int unlink_filename(zval *el) /* {{{ */ { - char *filename = (char*)Z_PTR_P(el); - VCWD_UNLINK(filename); + zend_string *filename = Z_STR_P(el); + VCWD_UNLINK(filename->val); return 0; } /* }}} */ static void free_filename(zval *el) { - char *filename = (char*)Z_PTR_P(el); - efree(filename); + zend_string *filename = Z_STR_P(el); + zend_string_release(filename); } void destroy_uploaded_files_hash(void) /* {{{ */ @@ -685,7 +685,8 @@ static char *multipart_buffer_read_body(multipart_buffer *self, size_t *len) SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler) /* {{{ */ { char *boundary, *s = NULL, *boundary_end = NULL, *start_arr = NULL, *array_index = NULL; - char *temp_filename = NULL, *lbuf = NULL, *abuf = NULL; + char *lbuf = NULL, *abuf = NULL; + zend_string *temp_filename = NULL; int boundary_len = 0, cancel_upload = 0, is_arr_upload = 0, array_len = 0; int64_t total_bytes = 0, max_file_size = 0; int skip_upload = 0, anonindex = 0, is_anonymous; @@ -980,7 +981,7 @@ SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler) /* {{{ */ event_file_start.name = param; event_file_start.filename = &filename; if (php_rfc1867_callback(MULTIPART_EVENT_FILE_START, &event_file_start, &event_extra_data) == FAILURE) { - temp_filename = ""; + temp_filename = NULL; efree(param); efree(filename); continue; @@ -1095,7 +1096,7 @@ SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler) /* {{{ */ multipart_event_file_end event_file_end; event_file_end.post_bytes_processed = SG(read_post_bytes); - event_file_end.temp_filename = temp_filename; + event_file_end.temp_filename = temp_filename->val; event_file_end.cancel_upload = cancel_upload; if (php_rfc1867_callback(MULTIPART_EVENT_FILE_END, &event_file_end, &event_extra_data) == FAILURE) { cancel_upload = UPLOAD_ERROR_X; @@ -1105,13 +1106,13 @@ SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler) /* {{{ */ if (cancel_upload) { if (temp_filename) { if (cancel_upload != UPLOAD_ERROR_E) { /* file creation failed */ - unlink(temp_filename); + unlink(temp_filename->val); } - efree(temp_filename); + zend_string_release(temp_filename); } - temp_filename = ""; + temp_filename = NULL; } else { - zend_hash_str_add_ptr(SG(rfc1867_uploaded_files), temp_filename, strlen(temp_filename), temp_filename); + zend_hash_add_ptr(SG(rfc1867_uploaded_files), temp_filename, temp_filename); } /* is_arr_upload is true when name of file upload field @@ -1211,7 +1212,11 @@ SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler) /* {{{ */ /* if param is of form xxx[.*] this will cut it to xxx */ if (!is_anonymous) { - ZVAL_STRING(&zfilename, temp_filename); + if (temp_filename) { + ZVAL_STR_COPY(&zfilename, temp_filename); + } else { + ZVAL_EMPTY_STRING(&zfilename); + } safe_php_register_variable_ex(param, &zfilename, NULL, 1); } @@ -1222,7 +1227,11 @@ SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler) /* {{{ */ snprintf(lbuf, llen, "%s[tmp_name]", param); } add_protected_variable(lbuf); - ZVAL_STRING(&zfilename, temp_filename); + if (temp_filename) { + ZVAL_STR_COPY(&zfilename, temp_filename); + } else { + ZVAL_EMPTY_STRING(&zfilename); + } register_http_post_files_variable_ex(lbuf, &zfilename, &PG(http_globals)[TRACK_VARS_FILES], 1); } diff --git a/main/streams/cast.c b/main/streams/cast.c index da8c6f1de8..bc9cc805e8 100644 --- a/main/streams/cast.c +++ b/main/streams/cast.c @@ -342,7 +342,7 @@ exit_success: /* }}} */ /* {{{ php_stream_open_wrapper_as_file */ -PHPAPI FILE * _php_stream_open_wrapper_as_file(char *path, char *mode, int options, char **opened_path STREAMS_DC) +PHPAPI FILE * _php_stream_open_wrapper_as_file(char *path, char *mode, int options, zend_string **opened_path STREAMS_DC) { FILE *fp = NULL; php_stream *stream = NULL; @@ -356,7 +356,7 @@ PHPAPI FILE * _php_stream_open_wrapper_as_file(char *path, char *mode, int optio if (php_stream_cast(stream, PHP_STREAM_AS_STDIO|PHP_STREAM_CAST_TRY_HARD|PHP_STREAM_CAST_RELEASE, (void**)&fp, REPORT_ERRORS) == FAILURE) { php_stream_close(stream); if (opened_path && *opened_path) { - efree(*opened_path); + zend_string_release(*opened_path); } return NULL; } diff --git a/main/streams/glob_wrapper.c b/main/streams/glob_wrapper.c index 3926fc6540..4dffc27ade 100644 --- a/main/streams/glob_wrapper.c +++ b/main/streams/glob_wrapper.c @@ -207,7 +207,7 @@ php_stream_ops php_glob_stream_ops = { /* {{{ php_glob_stream_opener */ static php_stream *php_glob_stream_opener(php_stream_wrapper *wrapper, const char *path, const char *mode, - int options, char **opened_path, php_stream_context *context STREAMS_DC) + int options, zend_string **opened_path, php_stream_context *context STREAMS_DC) { glob_s_t *pglob; int ret; @@ -220,7 +220,7 @@ static php_stream *php_glob_stream_opener(php_stream_wrapper *wrapper, const cha if (!strncmp(path, "glob://", sizeof("glob://")-1)) { path += sizeof("glob://")-1; if (opened_path) { - *opened_path = estrdup(path); + *opened_path = zend_string_init(path, strlen(path), 0); } } diff --git a/main/streams/memory.c b/main/streams/memory.c index 2016a9898c..9a9b11fe07 100644 --- a/main/streams/memory.c +++ b/main/streams/memory.c @@ -619,7 +619,7 @@ PHPAPI php_stream_ops php_stream_rfc2397_ops = { }; static php_stream * php_stream_url_wrap_rfc2397(php_stream_wrapper *wrapper, const char *path, - const char *mode, int options, char **opened_path, + const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC) /* {{{ */ { php_stream *stream; diff --git a/main/streams/php_stream_plain_wrapper.h b/main/streams/php_stream_plain_wrapper.h index cdf91084ab..61fc09542b 100644 --- a/main/streams/php_stream_plain_wrapper.h +++ b/main/streams/php_stream_plain_wrapper.h @@ -27,10 +27,10 @@ PHPAPI extern php_stream_wrapper php_plain_files_wrapper; BEGIN_EXTERN_C() /* like fopen, but returns a stream */ -PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, char **opened_path, int options STREAMS_DC); +PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, zend_string **opened_path, int options STREAMS_DC); #define php_stream_fopen(filename, mode, opened) _php_stream_fopen((filename), (mode), (opened), 0 STREAMS_CC) -PHPAPI php_stream *_php_stream_fopen_with_path(const char *filename, const char *mode, const char *path, char **opened_path, int options STREAMS_DC); +PHPAPI php_stream *_php_stream_fopen_with_path(const char *filename, const char *mode, const char *path, zend_string **opened_path, int options STREAMS_DC); #define php_stream_fopen_with_path(filename, mode, path, opened) _php_stream_fopen_with_path((filename), (mode), (path), (opened), 0 STREAMS_CC) PHPAPI php_stream *_php_stream_fopen_from_file(FILE *file, const char *mode STREAMS_DC); @@ -45,13 +45,13 @@ PHPAPI php_stream *_php_stream_fopen_from_pipe(FILE *file, const char *mode STRE PHPAPI php_stream *_php_stream_fopen_tmpfile(int dummy STREAMS_DC); #define php_stream_fopen_tmpfile() _php_stream_fopen_tmpfile(0 STREAMS_CC) -PHPAPI php_stream *_php_stream_fopen_temporary_file(const char *dir, const char *pfx, char **opened_path STREAMS_DC); +PHPAPI php_stream *_php_stream_fopen_temporary_file(const char *dir, const char *pfx, zend_string **opened_path STREAMS_DC); #define php_stream_fopen_temporary_file(dir, pfx, opened_path) _php_stream_fopen_temporary_file((dir), (pfx), (opened_path) STREAMS_CC) /* This is a utility API for extensions that are opening a stream, converting it * to a FILE* and then closing it again. Be warned that fileno() on the result * will most likely fail on systems with fopencookie. */ -PHPAPI FILE * _php_stream_open_wrapper_as_file(char * path, char * mode, int options, char **opened_path STREAMS_DC); +PHPAPI FILE * _php_stream_open_wrapper_as_file(char * path, char * mode, int options, zend_string **opened_path STREAMS_DC); #define php_stream_open_wrapper_as_file(path, mode, options, opened_path) _php_stream_open_wrapper_as_file((path), (mode), (options), (opened_path) STREAMS_CC) END_EXTERN_C() diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c index fe256b767e..83bd059c34 100644 --- a/main/streams/plain_wrapper.c +++ b/main/streams/plain_wrapper.c @@ -124,7 +124,7 @@ typedef struct { unsigned _reserved:29; int lock_flag; /* stores the lock state */ - char *temp_file_name; /* if non-null, this is the path to a temporary file that + zend_string *temp_name; /* if non-null, this is the path to a temporary file that * is to be deleted when the stream is closed */ #if HAVE_FLUSHIO char last_op; @@ -168,7 +168,7 @@ static php_stream *_php_stream_fopen_from_fd_int(int fd, const char *mode, const self->is_pipe = 0; self->lock_flag = LOCK_UN; self->is_process_pipe = 0; - self->temp_file_name = NULL; + self->temp_name = NULL; self->fd = fd; return php_stream_alloc_rel(&php_stream_stdio_ops, self, persistent_id, mode); @@ -184,15 +184,15 @@ static php_stream *_php_stream_fopen_from_file_int(FILE *file, const char *mode self->is_pipe = 0; self->lock_flag = LOCK_UN; self->is_process_pipe = 0; - self->temp_file_name = NULL; + self->temp_name = NULL; self->fd = fileno(file); return php_stream_alloc_rel(&php_stream_stdio_ops, self, 0, mode); } -PHPAPI php_stream *_php_stream_fopen_temporary_file(const char *dir, const char *pfx, char **opened_path_ptr STREAMS_DC) +PHPAPI php_stream *_php_stream_fopen_temporary_file(const char *dir, const char *pfx, zend_string **opened_path_ptr STREAMS_DC) { - char *opened_path = NULL; + zend_string *opened_path = NULL; int fd; fd = php_open_temporary_fd(dir, pfx, &opened_path); @@ -207,9 +207,9 @@ PHPAPI php_stream *_php_stream_fopen_temporary_file(const char *dir, const char if (stream) { php_stdio_stream_data *self = (php_stdio_stream_data*)stream->abstract; stream->wrapper = &php_plain_files_wrapper; - stream->orig_path = estrdup(opened_path); + stream->orig_path = estrndup(opened_path->val, opened_path->len); - self->temp_file_name = opened_path; + self->temp_name = opened_path; self->lock_flag = LOCK_UN; return stream; @@ -311,7 +311,7 @@ PHPAPI php_stream *_php_stream_fopen_from_pipe(FILE *file, const char *mode STRE self->lock_flag = LOCK_UN; self->is_process_pipe = 1; self->fd = fileno(file); - self->temp_file_name = NULL; + self->temp_name = NULL; stream = php_stream_alloc_rel(&php_stream_stdio_ops, self, 0, mode); stream->flags |= PHP_STREAM_FLAG_NO_SEEK; @@ -450,11 +450,11 @@ static int php_stdiop_close(php_stream *stream, int close_handle) } else { return 0; /* everything should be closed already -> success */ } - if (data->temp_file_name) { - unlink(data->temp_file_name); + if (data->temp_name) { + unlink(data->temp_name->val); /* temporary streams are never persistent */ - efree(data->temp_file_name); - data->temp_file_name = NULL; + zend_string_release(data->temp_name); + data->temp_name = NULL; } } else { ret = 0; @@ -890,7 +890,7 @@ static php_stream_ops php_plain_files_dirstream_ops = { }; static php_stream *php_plain_files_dir_opener(php_stream_wrapper *wrapper, const char *path, const char *mode, - int options, char **opened_path, php_stream_context *context STREAMS_DC) + int options, zend_string **opened_path, php_stream_context *context STREAMS_DC) { DIR *dir = NULL; php_stream *stream = NULL; @@ -928,9 +928,9 @@ static php_stream *php_plain_files_dir_opener(php_stream_wrapper *wrapper, const /* }}} */ /* {{{ php_stream_fopen */ -PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, char **opened_path, int options STREAMS_DC) +PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, zend_string **opened_path, int options STREAMS_DC) { - char *realpath = NULL; + char realpath[MAXPATHLEN]; int open_flags; int fd; php_stream *ret; @@ -945,9 +945,9 @@ PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, cha } if (options & STREAM_ASSUME_REALPATH) { - realpath = estrdup(filename); + strlcpy(realpath, filename, sizeof(realpath)); } else { - if ((realpath = expand_filepath(filename, NULL)) == NULL) { + if (expand_filepath(filename, realpath) == NULL) { return NULL; } } @@ -957,15 +957,12 @@ PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, cha switch (php_stream_from_persistent_id(persistent_id, &ret)) { case PHP_STREAM_PERSISTENT_SUCCESS: if (opened_path) { - *opened_path = realpath; - realpath = NULL; + //TODO: avoid reallocation??? + *opened_path = zend_string_init(realpath, strlen(realpath), 0); } /* fall through */ case PHP_STREAM_PERSISTENT_FAILURE: - if (realpath) { - efree(realpath); - } efree(persistent_id);; return ret; } @@ -983,11 +980,7 @@ PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, cha if (ret) { if (opened_path) { - *opened_path = realpath; - realpath = NULL; - } - if (realpath) { - efree(realpath); + *opened_path = zend_string_init(realpath, strlen(realpath), 0); } if (persistent_id) { efree(persistent_id); @@ -1005,7 +998,7 @@ PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, cha r = do_fstat(self, 0); if ((r == 0 && !S_ISREG(self->sb.st_mode))) { if (opened_path) { - efree(*opened_path); + zend_string_release(*opened_path); *opened_path = NULL; } php_stream_close(ret); @@ -1018,7 +1011,6 @@ PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, cha } close(fd); } - efree(realpath); if (persistent_id) { efree(persistent_id); } @@ -1028,7 +1020,7 @@ PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, cha static php_stream *php_plain_files_stream_opener(php_stream_wrapper *wrapper, const char *path, const char *mode, - int options, char **opened_path, php_stream_context *context STREAMS_DC) + int options, zend_string **opened_path, php_stream_context *context STREAMS_DC) { if (((options & STREAM_DISABLE_OPEN_BASEDIR) == 0) && php_check_open_basedir(path)) { return NULL; @@ -1393,7 +1385,7 @@ PHPAPI php_stream_wrapper php_plain_files_wrapper = { }; /* {{{ php_stream_fopen_with_path */ -PHPAPI php_stream *_php_stream_fopen_with_path(const char *filename, const char *mode, const char *path, char **opened_path, int options STREAMS_DC) +PHPAPI php_stream *_php_stream_fopen_with_path(const char *filename, const char *mode, const char *path, zend_string **opened_path, int options STREAMS_DC) { /* code ripped off from fopen_wrappers.c */ char *pathbuf, *end; diff --git a/main/streams/streams.c b/main/streams/streams.c index 7821c44c2e..16149fbc92 100644 --- a/main/streams/streams.c +++ b/main/streams/streams.c @@ -2015,13 +2015,13 @@ PHPAPI php_stream_dirent *_php_stream_readdir(php_stream *dirstream, php_stream_ /* {{{ php_stream_open_wrapper_ex */ PHPAPI php_stream *_php_stream_open_wrapper_ex(const char *path, const char *mode, int options, - char **opened_path, php_stream_context *context STREAMS_DC) + zend_string **opened_path, php_stream_context *context STREAMS_DC) { php_stream *stream = NULL; php_stream_wrapper *wrapper = NULL; const char *path_to_open; int persistent = options & STREAM_OPEN_PERSISTENT; - char *resolved_path = NULL; + zend_string *resolved_path = NULL; char *copy_of_path = NULL; if (opened_path) { @@ -2036,7 +2036,7 @@ PHPAPI php_stream *_php_stream_open_wrapper_ex(const char *path, const char *mod if (options & USE_PATH) { resolved_path = zend_resolve_path(path, (int)strlen(path)); if (resolved_path) { - path = resolved_path; + path = resolved_path->val; /* we've found this file, don't re-check include_path or run realpath */ options |= STREAM_ASSUME_REALPATH; options &= ~USE_PATH; @@ -2049,7 +2049,7 @@ PHPAPI php_stream *_php_stream_open_wrapper_ex(const char *path, const char *mod if (options & STREAM_USE_URL && (!wrapper || !wrapper->is_url)) { php_error_docref(NULL, E_WARNING, "This function may only be used against URLs"); if (resolved_path) { - efree(resolved_path); + zend_string_release(resolved_path); } return NULL; } @@ -2102,7 +2102,7 @@ PHPAPI php_stream *_php_stream_open_wrapper_ex(const char *path, const char *mod ? PHP_STREAM_PREFER_STDIO : PHP_STREAM_NO_PREFERENCE)) { case PHP_STREAM_UNCHANGED: if (resolved_path) { - efree(resolved_path); + zend_string_release(resolved_path); } return stream; case PHP_STREAM_RELEASED: @@ -2111,7 +2111,7 @@ PHPAPI php_stream *_php_stream_open_wrapper_ex(const char *path, const char *mod } newstream->orig_path = pestrdup(path, persistent); if (resolved_path) { - efree(resolved_path); + zend_string_release(resolved_path); } return newstream; default: @@ -2141,7 +2141,7 @@ PHPAPI php_stream *_php_stream_open_wrapper_ex(const char *path, const char *mod if (stream == NULL && (options & REPORT_ERRORS)) { php_stream_display_wrapper_errors(wrapper, path, "failed to open stream"); if (opened_path && *opened_path) { - efree(*opened_path); + zend_string_release(*opened_path); *opened_path = NULL; } } @@ -2152,7 +2152,7 @@ PHPAPI php_stream *_php_stream_open_wrapper_ex(const char *path, const char *mod } #endif if (resolved_path) { - efree(resolved_path); + zend_string_release(resolved_path); } return stream; } diff --git a/main/streams/userspace.c b/main/streams/userspace.c index 8d40ec3e12..33dbbf8d67 100644 --- a/main/streams/userspace.c +++ b/main/streams/userspace.c @@ -45,7 +45,7 @@ struct php_user_stream_wrapper { php_stream_wrapper wrapper; }; -static php_stream *user_wrapper_opener(php_stream_wrapper *wrapper, const char *filename, const char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC); +static php_stream *user_wrapper_opener(php_stream_wrapper *wrapper, const char *filename, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); static int user_wrapper_stat_url(php_stream_wrapper *wrapper, const char *url, int flags, php_stream_statbuf *ssb, php_stream_context *context); static int user_wrapper_unlink(php_stream_wrapper *wrapper, const char *url, int options, php_stream_context *context); static int user_wrapper_rename(php_stream_wrapper *wrapper, const char *url_from, const char *url_to, int options, php_stream_context *context); @@ -53,7 +53,7 @@ static int user_wrapper_mkdir(php_stream_wrapper *wrapper, const char *url, int static int user_wrapper_rmdir(php_stream_wrapper *wrapper, const char *url, int options, php_stream_context *context); static int user_wrapper_metadata(php_stream_wrapper *wrapper, const char *url, int option, void *value, php_stream_context *context); static php_stream *user_wrapper_opendir(php_stream_wrapper *wrapper, const char *filename, const char *mode, - int options, char **opened_path, php_stream_context *context STREAMS_DC); + int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); static php_stream_wrapper_ops user_stream_wops = { user_wrapper_opener, @@ -325,7 +325,7 @@ static void user_stream_create_object(struct php_user_stream_wrapper *uwrap, php } static php_stream *user_wrapper_opener(php_stream_wrapper *wrapper, const char *filename, const char *mode, - int options, char **opened_path, php_stream_context *context STREAMS_DC) + int options, zend_string **opened_path, php_stream_context *context STREAMS_DC) { struct php_user_stream_wrapper *uwrap = (struct php_user_stream_wrapper*)wrapper->abstract; php_userstream_data_t *us; @@ -385,7 +385,7 @@ static php_stream *user_wrapper_opener(php_stream_wrapper *wrapper, const char * /* if the opened path is set, copy it out */ if (Z_ISREF(args[3]) && Z_TYPE_P(Z_REFVAL(args[3])) == IS_STRING && opened_path) { - *opened_path = estrndup(Z_STRVAL_P(Z_REFVAL(args[3])), Z_STRLEN_P(Z_REFVAL(args[3]))); + *opened_path = zend_string_copy(Z_STR_P(Z_REFVAL(args[3]))); } /* set wrapper data to be a reference to our object */ @@ -415,7 +415,7 @@ static php_stream *user_wrapper_opener(php_stream_wrapper *wrapper, const char * } static php_stream *user_wrapper_opendir(php_stream_wrapper *wrapper, const char *filename, const char *mode, - int options, char **opened_path, php_stream_context *context STREAMS_DC) + int options, zend_string **opened_path, php_stream_context *context STREAMS_DC) { struct php_user_stream_wrapper *uwrap = (struct php_user_stream_wrapper*)wrapper->abstract; php_userstream_data_t *us; |