From b6b15fc65cc7898bc1ea992ec607ddb7f94e8eb8 Mon Sep 17 00:00:00 2001 From: Theodore Brown Date: Thu, 9 May 2019 14:19:52 -0500 Subject: Fix #77993: Wrong parse error for invalid hex literal on Windows If a PHP file contains an invalid hex literal such as `0x_10`, the expected error is `Parse error: syntax error, unexpected 'x_10' (T_STRING) in %s on line %d`. This already worked correctly on Linux, but on Windows prior to this patch a different error was produced: `Parse error: Invalid numeric literal in %s on line %d`. --- Zend/tests/bug77993.phpt | 7 + Zend/zend_language_scanner.c | 9399 ++++++++++++++++++------------------- Zend/zend_language_scanner.l | 3 +- Zend/zend_language_scanner_defs.h | 2 +- 4 files changed, 4708 insertions(+), 4703 deletions(-) create mode 100644 Zend/tests/bug77993.phpt diff --git a/Zend/tests/bug77993.phpt b/Zend/tests/bug77993.phpt new file mode 100644 index 0000000000..c19841811b --- /dev/null +++ b/Zend/tests/bug77993.phpt @@ -0,0 +1,7 @@ +--TEST-- +Bug #77993 (Wrong parse error for invalid hex literal on Windows) +--FILE-- +': goto yy33; + case '?': goto yy34; + case 'A': + case 'a': goto yy35; + case 'B': + case 'b': goto yy37; + case 'C': + case 'c': goto yy38; + case 'D': + case 'd': goto yy39; + case 'E': + case 'e': goto yy40; + case 'F': + case 'f': goto yy41; + case 'G': + case 'g': goto yy42; + case 'I': + case 'i': goto yy45; + case 'L': + case 'l': goto yy46; + case 'N': + case 'n': goto yy47; + case 'O': + case 'o': goto yy48; + case 'P': + case 'p': goto yy49; + case 'R': + case 'r': goto yy50; + case 'S': + case 's': goto yy51; + case 'T': + case 't': goto yy52; + case 'U': + case 'u': goto yy53; + case 'V': + case 'v': goto yy54; + case 'W': + case 'w': goto yy55; + case 'X': + case 'x': goto yy56; + case 'Y': + case 'y': goto yy57; + case '\\': goto yy58; + case '^': goto yy60; + case '_': goto yy61; + case '`': goto yy62; + case '{': goto yy64; + case '|': goto yy66; + case '}': goto yy67; + default: goto yy43; + } +yy3: + YYDEBUG(3, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(4, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2390 "Zend/zend_language_scanner.l" + { if (YYCURSOR > YYLIMIT) { RETURN_TOKEN(END); } -inline_char_handler: + zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); + goto restart; +} +#line 1330 "Zend/zend_language_scanner.c" +yy5: + YYDEBUG(5, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(6, *YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy5; + } + YYDEBUG(7, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1292 "Zend/zend_language_scanner.l" + { + HANDLE_NEWLINES(yytext, yyleng); + RETURN_TOKEN(T_WHITESPACE); +} +#line 1347 "Zend/zend_language_scanner.c" +yy8: + YYDEBUG(8, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '=') goto yy69; +yy9: + YYDEBUG(9, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1577 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(yytext[0]); +} +#line 1359 "Zend/zend_language_scanner.c" +yy10: + YYDEBUG(10, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(11, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2038 "Zend/zend_language_scanner.l" + { + int bprefix = (yytext[0] != '"') ? 1 : 0; - while (1) { - YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR); + while (YYCURSOR < YYLIMIT) { + switch (*YYCURSOR++) { + case '"': + yyleng = YYCURSOR - SCNG(yy_text); + zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"'); + RETURN_TOKEN(T_CONSTANT_ENCAPSED_STRING); + case '$': + if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { + break; + } + continue; + case '{': + if (*YYCURSOR == '$') { + break; + } + continue; + case '\\': + if (YYCURSOR < YYLIMIT) { + YYCURSOR++; + } + /* fall through */ + default: + continue; + } - YYCURSOR = ptr ? ptr + 1 : YYLIMIT; + YYCURSOR--; + break; + } - if (YYCURSOR >= YYLIMIT) { - break; - } + /* Remember how much was scanned to save rescanning */ + SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng); - if (*YYCURSOR == '?') { - if (CG(short_tags) || !strncasecmp((char*)YYCURSOR + 1, "php", 3) || (*(YYCURSOR + 1) == '=')) { /* Assume [ \t\n\r] follows "php" */ + YYCURSOR = SCNG(yy_text) + yyleng; - YYCURSOR--; + BEGIN(ST_DOUBLE_QUOTES); + RETURN_TOKEN('"'); +} +#line 1406 "Zend/zend_language_scanner.c" +yy12: + YYDEBUG(12, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(13, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1898 "Zend/zend_language_scanner.l" + { + while (YYCURSOR < YYLIMIT) { + switch (*YYCURSOR++) { + case '\r': + if (*YYCURSOR == '\n') { + YYCURSOR++; + } + /* fall through */ + case '\n': + CG(zend_lineno)++; break; - } + case '?': + if (*YYCURSOR == '>') { + YYCURSOR--; + break; + } + /* fall through */ + default: + continue; } + + break; } yyleng = YYCURSOR - SCNG(yy_text); - if (SCNG(output_filter)) { - size_t readsize; - char *s = NULL; - size_t sz = 0; - // TODO: avoid reallocation ??? - readsize = SCNG(output_filter)((unsigned char **)&s, &sz, (unsigned char *)yytext, (size_t)yyleng); - ZVAL_STRINGL(zendlval, s, sz); - efree(s); - if (readsize < yyleng) { - yyless(readsize); - } - } else { - ZVAL_STRINGL(zendlval, yytext, yyleng); - } - HANDLE_NEWLINES(yytext, yyleng); - RETURN_TOKEN(T_INLINE_HTML); -} -#line 1209 "Zend/zend_language_scanner.c" -yy5: - YYDEBUG(5, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '?') goto yy4; - YYDEBUG(6, *YYCURSOR); - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'O') { - if (yych == '=') goto yy8; - } else { - if (yych <= 'P') goto yy10; - if (yych == 'p') goto yy10; - } -yy7: - YYDEBUG(7, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1794 "Zend/zend_language_scanner.l" - { - if (CG(short_tags)) { - BEGIN(ST_IN_SCRIPTING); - RETURN_TOKEN(T_OPEN_TAG); - } else { - goto inline_char_handler; - } -} -#line 1234 "Zend/zend_language_scanner.c" -yy8: - YYDEBUG(8, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(9, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1781 "Zend/zend_language_scanner.l" - { - BEGIN(ST_IN_SCRIPTING); - RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO); + RETURN_TOKEN(T_COMMENT); } -#line 1245 "Zend/zend_language_scanner.c" -yy10: - YYDEBUG(10, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy12; - if (yych == 'h') goto yy12; -yy11: - YYDEBUG(11, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy7; -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; - } else { - if (yych <= '\r') goto yy16; - if (yych != ' ') goto yy11; - } +#line 1441 "Zend/zend_language_scanner.c" yy14: - YYDEBUG(14, *YYCURSOR); - ++YYCURSOR; -yy15: - YYDEBUG(15, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1787 "Zend/zend_language_scanner.l" - { - HANDLE_NEWLINE(yytext[yyleng-1]); - BEGIN(ST_IN_SCRIPTING); - RETURN_TOKEN(T_OPEN_TAG); -} -#line 1282 "Zend/zend_language_scanner.c" -yy16: - YYDEBUG(16, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy14; - goto yy15; -/* *********************************** */ -yyc_ST_BACKQUOTE: - { - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - }; - YYDEBUG(17, *YYCURSOR); - YYFILL(2); - yych = *YYCURSOR; + YYDEBUG(14, *YYCURSOR); + yych = *++YYCURSOR; if (yych <= '_') { - if (yych == '$') goto yy21; + if (yych <= '@') goto yy9; + if (yych <= 'Z') goto yy71; + if (yych <= '^') goto yy9; + goto yy71; } else { - if (yych <= '`') goto yy22; - if (yych == '{') goto yy24; + if (yych <= '`') goto yy9; + if (yych <= 'z') goto yy71; + if (yych <= 0x7F) goto yy9; + goto yy71; } - YYDEBUG(19, *YYCURSOR); +yy15: + YYDEBUG(15, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '=') goto yy74; + goto yy9; +yy16: + YYDEBUG(16, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '&') goto yy76; + if (yych == '=') goto yy78; + goto yy9; +yy17: + YYDEBUG(17, *YYCURSOR); ++YYCURSOR; -yy20: - YYDEBUG(20, *YYCURSOR); + YYDEBUG(18, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2216 "Zend/zend_language_scanner.l" +#line 1969 "Zend/zend_language_scanner.l" { - if (YYCURSOR > YYLIMIT) { - RETURN_TOKEN(END); - } - if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) { - YYCURSOR++; - } + register char *s, *t; + char *end; + int bprefix = (yytext[0] != '\'') ? 1 : 0; + + while (1) { + if (YYCURSOR < YYLIMIT) { + if (*YYCURSOR == '\'') { + YYCURSOR++; + yyleng = YYCURSOR - SCNG(yy_text); - while (YYCURSOR < YYLIMIT) { - switch (*YYCURSOR++) { - case '`': break; - case '$': - if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { + } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) { + YYCURSOR++; + } + } else { + yyleng = YYLIMIT - SCNG(yy_text); + + /* Unclosed single quotes; treat similar to double quotes, but without a separate token + * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..." + * rule, which continued in ST_IN_SCRIPTING state after the quote */ + ZVAL_NULL(zendlval); + RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); + } + } + + ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2); + + /* convert escape sequences */ + s = t = Z_STRVAL_P(zendlval); + end = s+Z_STRLEN_P(zendlval); + while (s') goto yy36; + if (yych <= '<') goto yy9; + if (yych <= '=') goto yy126; + if (yych <= '>') goto yy128; + goto yy9; yy33: YYDEBUG(33, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy27; + yych = *++YYCURSOR; + if (yych <= '<') goto yy9; + if (yych <= '=') goto yy130; + if (yych <= '>') goto yy132; + goto yy9; yy34: YYDEBUG(34, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= '=') goto yy9; + if (yych <= '>') goto yy134; + if (yych <= '?') goto yy136; + goto yy9; +yy35: YYDEBUG(35, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1861 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 1); - yy_push_state(ST_VAR_OFFSET); - zend_copy_value(zendlval, (yytext+1), (yyleng-1)); - RETURN_TOKEN(T_VARIABLE); -} -#line 1480 "Zend/zend_language_scanner.c" -yy36: - YYDEBUG(36, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy33; - if (yych <= 'Z') goto yy37; - if (yych <= '^') goto yy33; + if (yych <= 'S') { + if (yych <= 'M') { + if (yych == 'B') goto yy138; + goto yy44; + } else { + if (yych <= 'N') goto yy139; + if (yych <= 'Q') goto yy44; + if (yych <= 'R') goto yy140; + goto yy141; + } } else { - if (yych <= '`') goto yy33; - if (yych <= 'z') goto yy37; - if (yych <= 0x7F) goto yy33; + if (yych <= 'n') { + if (yych == 'b') goto yy138; + if (yych <= 'm') goto yy44; + goto yy139; + } else { + if (yych <= 'q') goto yy44; + if (yych <= 'r') goto yy140; + if (yych <= 's') goto yy141; + goto yy44; + } } -yy37: - YYDEBUG(37, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(38, *YYCURSOR); +yy36: + YYDEBUG(36, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1852 "Zend/zend_language_scanner.l" +#line 1892 "Zend/zend_language_scanner.l" { - yyless(yyleng - 3); - yy_push_state(ST_LOOKING_FOR_PROPERTY); - zend_copy_value(zendlval, (yytext+1), (yyleng-1)); - RETURN_TOKEN(T_VARIABLE); + zend_copy_value(zendlval, yytext, yyleng); + RETURN_TOKEN(T_STRING); } -#line 1505 "Zend/zend_language_scanner.c" - } -/* *********************************** */ -yyc_ST_DOUBLE_QUOTES: - { - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - }; +#line 1795 "Zend/zend_language_scanner.c" +yy37: + YYDEBUG(37, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ';') { + if (yych <= '"') { + if (yych <= '!') goto yy44; + goto yy10; + } else { + if (yych == '\'') goto yy17; + goto yy44; + } + } else { + if (yych <= 'R') { + if (yych <= '<') goto yy143; + if (yych <= 'Q') goto yy44; + goto yy144; + } else { + if (yych == 'r') goto yy144; + goto yy44; + } + } +yy38: + YYDEBUG(38, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= 'K') { + if (yych == 'A') goto yy145; + goto yy44; + } else { + if (yych <= 'L') goto yy146; + if (yych <= 'N') goto yy44; + goto yy147; + } + } else { + if (yych <= 'k') { + if (yych == 'a') goto yy145; + goto yy44; + } else { + if (yych <= 'l') goto yy146; + if (yych == 'o') goto yy147; + goto yy44; + } + } +yy39: YYDEBUG(39, *YYCURSOR); - YYFILL(2); - yych = *YYCURSOR; - if (yych <= '#') { - if (yych == '"') goto yy43; + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= 'H') { + if (yych == 'E') goto yy148; + goto yy44; + } else { + if (yych <= 'I') goto yy149; + if (yych <= 'N') goto yy44; + goto yy150; + } } else { - if (yych <= '$') goto yy45; - if (yych == '{') goto yy46; + if (yych <= 'h') { + if (yych == 'e') goto yy148; + goto yy44; + } else { + if (yych <= 'i') goto yy149; + if (yych == 'o') goto yy150; + goto yy44; + } + } +yy40: + YYDEBUG(40, *YYCURSOR); + yych = *++YYCURSOR; + switch (yych) { + case 'C': + case 'c': goto yy152; + case 'L': + case 'l': goto yy153; + case 'M': + case 'm': goto yy154; + case 'N': + case 'n': goto yy155; + case 'V': + case 'v': goto yy156; + case 'X': + case 'x': goto yy157; + default: goto yy44; } +yy41: YYDEBUG(41, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= 'N') { + if (yych == 'I') goto yy158; + goto yy44; + } else { + if (yych <= 'O') goto yy159; + if (yych <= 'T') goto yy44; + goto yy160; + } + } else { + if (yych <= 'n') { + if (yych == 'i') goto yy158; + goto yy44; + } else { + if (yych <= 'o') goto yy159; + if (yych == 'u') goto yy160; + goto yy44; + } + } yy42: YYDEBUG(42, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2166 "Zend/zend_language_scanner.l" - { - if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) { - YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1; - SET_DOUBLE_QUOTES_SCANNED_LENGTH(0); - - goto double_quotes_scan_done; - } - - if (YYCURSOR > YYLIMIT) { - RETURN_TOKEN(END); - } - if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) { - YYCURSOR++; - } - - while (YYCURSOR < YYLIMIT) { - switch (*YYCURSOR++) { - case '"': - break; - case '$': - if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { - break; - } - continue; - case '{': - if (*YYCURSOR == '$') { - break; - } - continue; - case '\\': - if (YYCURSOR < YYLIMIT) { - YYCURSOR++; - } - /* fall through */ - default: - continue; + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych == 'L') goto yy161; + if (yych <= 'N') goto yy44; + goto yy162; + } else { + if (yych <= 'l') { + if (yych <= 'k') goto yy44; + goto yy161; + } else { + if (yych == 'o') goto yy162; + goto yy44; + } } - - YYCURSOR--; - break; - } - -double_quotes_scan_done: - yyleng = YYCURSOR - SCNG(yy_text); - - zend_scan_escape_string(zendlval, yytext, yyleng, '"'); - RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); -} -#line 1607 "Zend/zend_language_scanner.c" yy43: YYDEBUG(43, *YYCURSOR); ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy44: YYDEBUG(44, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2155 "Zend/zend_language_scanner.l" - { - BEGIN(ST_IN_SCRIPTING); - RETURN_TOKEN('"'); -} -#line 1618 "Zend/zend_language_scanner.c" + if (yybm[0+yych] & 16) { + goto yy43; + } + goto yy36; yy45: YYDEBUG(45, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy42; - if (yych <= 'Z') goto yy47; - if (yych <= '^') goto yy42; - goto yy47; + if (yych <= 'S') { + if (yych <= 'L') { + if (yych == 'F') goto yy163; + goto yy44; + } else { + if (yych <= 'M') goto yy165; + if (yych <= 'N') goto yy166; + if (yych <= 'R') goto yy44; + goto yy167; + } } else { - if (yych <= 'z') { - if (yych <= '`') goto yy42; - goto yy47; + if (yych <= 'm') { + if (yych == 'f') goto yy163; + if (yych <= 'l') goto yy44; + goto yy165; } else { - if (yych <= '{') goto yy50; - if (yych <= 0x7F) goto yy42; - goto yy47; + if (yych <= 'n') goto yy166; + if (yych == 's') goto yy167; + goto yy44; } } yy46: YYDEBUG(46, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '$') goto yy52; - goto yy42; + if (yych == 'I') goto yy168; + if (yych == 'i') goto yy168; + goto yy44; yy47: YYDEBUG(47, *YYCURSOR); - YYMARKER = ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; - YYDEBUG(48, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy47; + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych == 'A') goto yy169; + if (yych <= 'D') goto yy44; + goto yy170; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy44; + goto yy169; + } else { + if (yych == 'e') goto yy170; + goto yy44; + } } - if (yych == '-') goto yy54; - if (yych <= '@') goto yy49; - if (yych <= '[') goto yy56; +yy48: + YYDEBUG(48, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy171; + if (yych == 'r') goto yy171; + goto yy44; yy49: YYDEBUG(49, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1868 "Zend/zend_language_scanner.l" - { - zend_copy_value(zendlval, (yytext+1), (yyleng-1)); - RETURN_TOKEN(T_VARIABLE); -} -#line 1662 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'R') goto yy173; + if (yych <= 'T') goto yy44; + goto yy174; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy44; + goto yy173; + } else { + if (yych == 'u') goto yy174; + goto yy44; + } + } yy50: YYDEBUG(50, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'E') goto yy175; + if (yych == 'e') goto yy175; + goto yy44; +yy51: YYDEBUG(51, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1588 "Zend/zend_language_scanner.l" - { - yy_push_state(ST_LOOKING_FOR_VARNAME); - RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); -} -#line 1673 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych <= 'W') { + if (yych == 'T') goto yy176; + if (yych <= 'V') goto yy44; + goto yy177; + } else { + if (yych <= 't') { + if (yych <= 's') goto yy44; + goto yy176; + } else { + if (yych == 'w') goto yy177; + goto yy44; + } + } yy52: YYDEBUG(52, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych == 'H') goto yy178; + if (yych <= 'Q') goto yy44; + goto yy179; + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy44; + goto yy178; + } else { + if (yych == 'r') goto yy179; + goto yy44; + } + } +yy53: YYDEBUG(53, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2147 "Zend/zend_language_scanner.l" - { - Z_LVAL_P(zendlval) = (zend_long) '{'; - yy_push_state(ST_IN_SCRIPTING); - yyless(1); - RETURN_TOKEN(T_CURLY_OPEN); -} -#line 1686 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych == 'N') goto yy180; + if (yych <= 'R') goto yy44; + goto yy181; + } else { + if (yych <= 'n') { + if (yych <= 'm') goto yy44; + goto yy180; + } else { + if (yych == 's') goto yy181; + goto yy44; + } + } yy54: YYDEBUG(54, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '>') goto yy58; + if (yych == 'A') goto yy182; + if (yych == 'a') goto yy182; + goto yy44; yy55: YYDEBUG(55, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy49; + yych = *++YYCURSOR; + if (yych == 'H') goto yy183; + if (yych == 'h') goto yy183; + goto yy44; yy56: YYDEBUG(56, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'O') goto yy184; + if (yych == 'o') goto yy184; + goto yy44; +yy57: YYDEBUG(57, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1861 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 1); - yy_push_state(ST_VAR_OFFSET); - zend_copy_value(zendlval, (yytext+1), (yyleng-1)); - RETURN_TOKEN(T_VARIABLE); -} -#line 1707 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'I') goto yy185; + if (yych == 'i') goto yy185; + goto yy44; yy58: YYDEBUG(58, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy55; - if (yych <= 'Z') goto yy59; - if (yych <= '^') goto yy55; - } else { - if (yych <= '`') goto yy55; - if (yych <= 'z') goto yy59; - if (yych <= 0x7F) goto yy55; - } -yy59: - YYDEBUG(59, *YYCURSOR); ++YYCURSOR; - YYDEBUG(60, *YYCURSOR); + YYDEBUG(59, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1852 "Zend/zend_language_scanner.l" +#line 1317 "Zend/zend_language_scanner.l" { - yyless(yyleng - 3); - yy_push_state(ST_LOOKING_FOR_PROPERTY); - zend_copy_value(zendlval, (yytext+1), (yyleng-1)); - RETURN_TOKEN(T_VARIABLE); -} -#line 1732 "Zend/zend_language_scanner.c" - } -/* *********************************** */ -yyc_ST_END_HEREDOC: - YYDEBUG(61, *YYCURSOR); - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(63, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(64, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2133 "Zend/zend_language_scanner.l" - { - zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack)); - - YYCURSOR += heredoc_label->length - 1; - yyleng = heredoc_label->length; - - heredoc_label_dtor(heredoc_label); - efree(heredoc_label); - - BEGIN(ST_IN_SCRIPTING); - RETURN_TOKEN(T_END_HEREDOC); + RETURN_TOKEN(T_NS_SEPARATOR); } -#line 1756 "Zend/zend_language_scanner.c" -/* *********************************** */ -yyc_ST_HEREDOC: - { - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - }; +#line 2084 "Zend/zend_language_scanner.c" +yy60: + YYDEBUG(60, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '=') goto yy186; + goto yy9; +yy61: + YYDEBUG(61, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy188; + goto yy44; +yy62: + YYDEBUG(62, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(63, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2128 "Zend/zend_language_scanner.l" + { + BEGIN(ST_BACKQUOTE); + RETURN_TOKEN('`'); +} +#line 2105 "Zend/zend_language_scanner.c" +yy64: + YYDEBUG(64, *YYCURSOR); + ++YYCURSOR; YYDEBUG(65, *YYCURSOR); - YYFILL(2); - yych = *YYCURSOR; - if (yych == '$') goto yy69; - if (yych == '{') goto yy70; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1582 "Zend/zend_language_scanner.l" + { + yy_push_state(ST_IN_SCRIPTING); + RETURN_TOKEN('{'); +} +#line 2116 "Zend/zend_language_scanner.c" +yy66: + YYDEBUG(66, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '=') goto yy189; + if (yych == '|') goto yy191; + goto yy9; +yy67: YYDEBUG(67, *YYCURSOR); ++YYCURSOR; -yy68: YYDEBUG(68, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2258 "Zend/zend_language_scanner.l" +#line 1594 "Zend/zend_language_scanner.l" { - int newline = 0; - - zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack)); - - if (YYCURSOR > YYLIMIT) { - RETURN_TOKEN(END); - } - - YYCURSOR--; - - while (YYCURSOR < YYLIMIT) { - switch (*YYCURSOR++) { - case '\r': - if (*YYCURSOR == '\n') { - YYCURSOR++; - } - /* fall through */ - case '\n': - /* Check for ending label on the next line */ - if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) { - YYCTYPE *end = YYCURSOR + heredoc_label->length; - - if (*end == ';') { - end++; - } - - if (*end == '\n' || *end == '\r') { - /* newline before label will be subtracted from returned text, but - * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */ - if (YYCURSOR[-2] == '\r' && YYCURSOR[-1] == '\n') { - newline = 2; /* Windows newline */ - } else { - newline = 1; - } - - CG(increment_lineno) = 1; /* For newline before label */ - BEGIN(ST_END_HEREDOC); - - goto heredoc_scan_done; - } - } - continue; - case '$': - if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { - break; - } - continue; - case '{': - if (*YYCURSOR == '$') { - break; - } - continue; - case '\\': - if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') { - YYCURSOR++; - } - /* fall through */ - default: - continue; - } - - YYCURSOR--; - break; + RESET_DOC_COMMENT(); + if (!zend_stack_is_empty(&SCNG(state_stack))) { + yy_pop_state(); } - -heredoc_scan_done: - yyleng = YYCURSOR - SCNG(yy_text); - - zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0); - RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); + RETURN_TOKEN('}'); } -#line 1877 "Zend/zend_language_scanner.c" +#line 2136 "Zend/zend_language_scanner.c" yy69: YYDEBUG(69, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy68; - if (yych <= 'Z') goto yy71; - if (yych <= '^') goto yy68; - goto yy71; - } else { - if (yych <= 'z') { - if (yych <= '`') goto yy68; - goto yy71; - } else { - if (yych <= '{') goto yy74; - if (yych <= 0x7F) goto yy68; - goto yy71; - } - } + if (yych == '=') goto yy193; yy70: YYDEBUG(70, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '$') goto yy76; - goto yy68; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1481 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IS_NOT_EQUAL); +} +#line 2148 "Zend/zend_language_scanner.c" yy71: YYDEBUG(71, *YYCURSOR); - YYMARKER = ++YYCURSOR; - YYFILL(3); + ++YYCURSOR; + YYFILL(1); yych = *YYCURSOR; YYDEBUG(72, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy71; + if (yych <= '^') { + if (yych <= '9') { + if (yych >= '0') goto yy71; + } else { + if (yych <= '@') goto yy73; + if (yych <= 'Z') goto yy71; + } + } else { + if (yych <= '`') { + if (yych <= '_') goto yy71; + } else { + if (yych <= 'z') goto yy71; + if (yych >= 0x80) goto yy71; + } } - if (yych == '-') goto yy78; - if (yych <= '@') goto yy73; - if (yych <= '[') goto yy80; yy73: YYDEBUG(73, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1868 "Zend/zend_language_scanner.l" +#line 1869 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); RETURN_TOKEN(T_VARIABLE); } -#line 1921 "Zend/zend_language_scanner.c" +#line 2178 "Zend/zend_language_scanner.c" yy74: YYDEBUG(74, *YYCURSOR); ++YYCURSOR; YYDEBUG(75, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1588 "Zend/zend_language_scanner.l" +#line 1525 "Zend/zend_language_scanner.l" { - yy_push_state(ST_LOOKING_FOR_VARNAME); - RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); + RETURN_TOKEN(T_MOD_EQUAL); } -#line 1932 "Zend/zend_language_scanner.c" +#line 2188 "Zend/zend_language_scanner.c" yy76: YYDEBUG(76, *YYCURSOR); ++YYCURSOR; YYDEBUG(77, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2147 "Zend/zend_language_scanner.l" +#line 1553 "Zend/zend_language_scanner.l" { - Z_LVAL_P(zendlval) = (zend_long) '{'; - yy_push_state(ST_IN_SCRIPTING); - yyless(1); - RETURN_TOKEN(T_CURLY_OPEN); + RETURN_TOKEN(T_BOOLEAN_AND); } -#line 1945 "Zend/zend_language_scanner.c" +#line 2198 "Zend/zend_language_scanner.c" yy78: YYDEBUG(78, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '>') goto yy82; -yy79: - YYDEBUG(79, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy73; -yy80: - YYDEBUG(80, *YYCURSOR); ++YYCURSOR; - YYDEBUG(81, *YYCURSOR); + YYDEBUG(79, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1861 "Zend/zend_language_scanner.l" +#line 1537 "Zend/zend_language_scanner.l" { - yyless(yyleng - 1); - yy_push_state(ST_VAR_OFFSET); - zend_copy_value(zendlval, (yytext+1), (yyleng-1)); - RETURN_TOKEN(T_VARIABLE); + RETURN_TOKEN(T_AND_EQUAL); } -#line 1966 "Zend/zend_language_scanner.c" -yy82: - YYDEBUG(82, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy79; - if (yych <= 'Z') goto yy83; - if (yych <= '^') goto yy79; - } else { - if (yych <= '`') goto yy79; - if (yych <= 'z') goto yy83; - if (yych <= 0x7F) goto yy79; - } -yy83: - YYDEBUG(83, *YYCURSOR); +#line 2208 "Zend/zend_language_scanner.c" +yy80: + YYDEBUG(80, *YYCURSOR); ++YYCURSOR; - YYDEBUG(84, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1852 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 3); - yy_push_state(ST_LOOKING_FOR_PROPERTY); - zend_copy_value(zendlval, (yytext+1), (yyleng-1)); - RETURN_TOKEN(T_VARIABLE); -} -#line 1991 "Zend/zend_language_scanner.c" - } -/* *********************************** */ -yyc_ST_IN_SCRIPTING: - { - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 36, 4, 0, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 36, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 216, 216, 152, 152, 152, 152, 152, 152, - 152, 152, 0, 0, 0, 0, 0, 0, - 0, 144, 144, 144, 144, 144, 144, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 0, 0, 0, 0, 16, - 0, 144, 144, 144, 144, 144, 144, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 0, 0, 0, 0, 0, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - }; - YYDEBUG(85, *YYCURSOR); - YYFILL(16); + YYFILL(7); yych = *YYCURSOR; - if (yybm[0+yych] & 4) { - goto yy89; +yy81: + YYDEBUG(81, *YYCURSOR); + if (yybm[0+yych] & 32) { + goto yy80; } switch (yych) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case 0x0E: - case 0x0F: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - case 0x19: - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case 0x7F: goto yy87; - case ' ': - case '!': goto yy92; - case '"': goto yy94; - case '#': goto yy96; - case '$': goto yy98; - case '%': goto yy99; - case '&': goto yy100; - case '\'': goto yy101; - case '(': goto yy103; - case ')': - case ',': - case ';': - case '@': - case '[': - case ']': - case '~': goto yy104; - case '*': goto yy105; - case '+': goto yy106; - case '-': goto yy107; - case '.': goto yy108; - case '/': goto yy109; - case '0': goto yy110; - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy112; - case ':': goto yy114; - case '<': goto yy115; - case '=': goto yy116; - case '>': goto yy117; - case '?': goto yy118; case 'A': - case 'a': goto yy119; + case 'a': goto yy83; case 'B': - case 'b': goto yy121; - case 'C': - case 'c': goto yy122; + case 'b': goto yy84; case 'D': - case 'd': goto yy123; - case 'E': - case 'e': goto yy124; + case 'd': goto yy85; case 'F': - case 'f': goto yy125; - case 'G': - case 'g': goto yy126; + case 'f': goto yy86; case 'I': - case 'i': goto yy129; - case 'L': - case 'l': goto yy130; - case 'N': - case 'n': goto yy131; + case 'i': goto yy87; case 'O': - case 'o': goto yy132; - case 'P': - case 'p': goto yy133; + case 'o': goto yy88; case 'R': - case 'r': goto yy134; + case 'r': goto yy89; case 'S': - case 's': goto yy135; - case 'T': - case 't': goto yy136; + case 's': goto yy90; case 'U': - case 'u': goto yy137; - case 'V': - case 'v': goto yy138; - case 'W': - case 'w': goto yy139; - case 'X': - case 'x': goto yy140; - case 'Y': - case 'y': goto yy141; - case '\\': goto yy142; - case '^': goto yy144; - case '_': goto yy145; - case '`': goto yy146; - case '{': goto yy148; - case '|': goto yy150; - case '}': goto yy151; - default: goto yy127; + case 'u': goto yy91; + default: goto yy82; + } +yy82: + YYDEBUG(82, *YYCURSOR); + YYCURSOR = YYMARKER; + if (yyaccept <= 3) { + if (yyaccept <= 1) { + if (yyaccept == 0) { + goto yy9; + } else { + goto yy27; + } + } else { + if (yyaccept == 2) { + goto yy36; + } else { + goto yy109; + } + } + } else { + if (yyaccept <= 5) { + if (yyaccept == 4) { + goto yy113; + } else { + goto yy122; + } + } else { + goto yy457; + } + } +yy83: + YYDEBUG(83, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy195; + if (yych == 'r') goto yy195; + goto yy82; +yy84: + YYDEBUG(84, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych == 'I') goto yy196; + if (yych <= 'N') goto yy82; + goto yy197; + } else { + if (yych <= 'i') { + if (yych <= 'h') goto yy82; + goto yy196; + } else { + if (yych == 'o') goto yy197; + goto yy82; + } } +yy85: + YYDEBUG(85, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy198; + if (yych == 'o') goto yy198; + goto yy82; +yy86: + YYDEBUG(86, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy199; + if (yych == 'l') goto yy199; + goto yy82; yy87: YYDEBUG(87, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'N') goto yy200; + if (yych == 'n') goto yy200; + goto yy82; +yy88: YYDEBUG(88, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2389 "Zend/zend_language_scanner.l" - { - if (YYCURSOR > YYLIMIT) { - RETURN_TOKEN(END); - } - - zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); - goto restart; -} -#line 2169 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'B') goto yy201; + if (yych == 'b') goto yy201; + goto yy82; yy89: YYDEBUG(89, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'E') goto yy202; + if (yych == 'e') goto yy202; + goto yy82; +yy90: YYDEBUG(90, *YYCURSOR); - if (yybm[0+yych] & 4) { - goto yy89; - } + yych = *++YYCURSOR; + if (yych == 'T') goto yy203; + if (yych == 't') goto yy203; + goto yy82; +yy91: YYDEBUG(91, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1292 "Zend/zend_language_scanner.l" - { - HANDLE_NEWLINES(yytext, yyleng); - RETURN_TOKEN(T_WHITESPACE); -} -#line 2186 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'N') goto yy204; + if (yych == 'n') goto yy204; + goto yy82; yy92: YYDEBUG(92, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy153; -yy93: + yych = *++YYCURSOR; + if (yych == '=') goto yy205; YYDEBUG(93, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1577 "Zend/zend_language_scanner.l" +#line 1509 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(yytext[0]); + RETURN_TOKEN(T_POW); } -#line 2198 "Zend/zend_language_scanner.c" +#line 2342 "Zend/zend_language_scanner.c" yy94: YYDEBUG(94, *YYCURSOR); ++YYCURSOR; YYDEBUG(95, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2037 "Zend/zend_language_scanner.l" +#line 1505 "Zend/zend_language_scanner.l" { - int bprefix = (yytext[0] != '"') ? 1 : 0; - - while (YYCURSOR < YYLIMIT) { - switch (*YYCURSOR++) { - case '"': - yyleng = YYCURSOR - SCNG(yy_text); - zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"'); - RETURN_TOKEN(T_CONSTANT_ENCAPSED_STRING); - case '$': - if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { - break; - } - continue; - case '{': - if (*YYCURSOR == '$') { - break; - } - continue; - case '\\': - if (YYCURSOR < YYLIMIT) { - YYCURSOR++; - } - /* fall through */ - default: - continue; - } - - YYCURSOR--; - break; - } - - /* Remember how much was scanned to save rescanning */ - SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng); - - YYCURSOR = SCNG(yy_text) + yyleng; - - BEGIN(ST_DOUBLE_QUOTES); - RETURN_TOKEN('"'); + RETURN_TOKEN(T_MUL_EQUAL); } -#line 2245 "Zend/zend_language_scanner.c" +#line 2352 "Zend/zend_language_scanner.c" yy96: YYDEBUG(96, *YYCURSOR); ++YYCURSOR; YYDEBUG(97, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1897 "Zend/zend_language_scanner.l" +#line 1461 "Zend/zend_language_scanner.l" { - while (YYCURSOR < YYLIMIT) { - switch (*YYCURSOR++) { - case '\r': - if (*YYCURSOR == '\n') { - YYCURSOR++; - } - /* fall through */ - case '\n': - CG(zend_lineno)++; - break; - case '?': - if (*YYCURSOR == '>') { - YYCURSOR--; - break; - } - /* fall through */ - default: - continue; - } - - break; - } - - yyleng = YYCURSOR - SCNG(yy_text); - - RETURN_TOKEN(T_COMMENT); + RETURN_TOKEN(T_INC); } -#line 2280 "Zend/zend_language_scanner.c" +#line 2362 "Zend/zend_language_scanner.c" yy98: YYDEBUG(98, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy93; - if (yych <= 'Z') goto yy155; - if (yych <= '^') goto yy93; - goto yy155; - } else { - if (yych <= '`') goto yy93; - if (yych <= 'z') goto yy155; - if (yych <= 0x7F) goto yy93; - goto yy155; - } -yy99: + ++YYCURSOR; YYDEBUG(99, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '=') goto yy158; - goto yy93; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1497 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_PLUS_EQUAL); +} +#line 2372 "Zend/zend_language_scanner.c" yy100: YYDEBUG(100, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '&') goto yy160; - if (yych == '=') goto yy162; - goto yy93; -yy101: - YYDEBUG(101, *YYCURSOR); ++YYCURSOR; - YYDEBUG(102, *YYCURSOR); + YYDEBUG(101, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1968 "Zend/zend_language_scanner.l" +#line 1465 "Zend/zend_language_scanner.l" { - register char *s, *t; - char *end; - int bprefix = (yytext[0] != '\'') ? 1 : 0; - - while (1) { - if (YYCURSOR < YYLIMIT) { - if (*YYCURSOR == '\'') { - YYCURSOR++; - yyleng = YYCURSOR - SCNG(yy_text); - - break; - } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) { - YYCURSOR++; - } - } else { - yyleng = YYLIMIT - SCNG(yy_text); - - /* Unclosed single quotes; treat similar to double quotes, but without a separate token - * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..." - * rule, which continued in ST_IN_SCRIPTING state after the quote */ - ZVAL_NULL(zendlval); - RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); - } - } - - ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2); - - /* convert escape sequences */ - s = t = Z_STRVAL_P(zendlval); - end = s+Z_STRLEN_P(zendlval); - while (s 2) { + doc_com = 1; + RESET_DOC_COMMENT(); + } else { + doc_com = 0; + } + + while (YYCURSOR < YYLIMIT) { + if (*YYCURSOR++ == '*' && *YYCURSOR == '/') { + break; } + } + + if (YYCURSOR < YYLIMIT) { + YYCURSOR++; + } else { + zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno)); + } + + yyleng = YYCURSOR - SCNG(yy_text); + HANDLE_NEWLINES(yytext, yyleng); + + if (doc_com) { + CG(doc_comment) = zend_string_init(yytext, yyleng, 0); + RETURN_TOKEN(T_DOC_COMMENT); + } + + RETURN_TOKEN(T_COMMENT); +} +#line 2487 "Zend/zend_language_scanner.c" yy114: YYDEBUG(114, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == ':') goto yy203; - goto yy93; -yy115: + ++YYCURSOR; YYDEBUG(115, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= ';') goto yy93; - if (yych <= '<') goto yy205; - if (yych <= '=') goto yy207; - if (yych <= '>') goto yy209; - goto yy93; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1517 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DIV_EQUAL); +} +#line 2497 "Zend/zend_language_scanner.c" yy116: YYDEBUG(116, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '<') goto yy93; - if (yych <= '=') goto yy210; - if (yych <= '>') goto yy212; - goto yy93; + if (yybm[0+yych] & 64) { + goto yy210; + } + goto yy82; yy117: YYDEBUG(117, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '<') goto yy93; - if (yych <= '=') goto yy214; - if (yych <= '>') goto yy216; - goto yy93; + if (yych <= ',') { + if (yych == '+') goto yy213; + goto yy82; + } else { + if (yych <= '-') goto yy213; + if (yych <= '/') goto yy82; + if (yych <= '9') goto yy214; + goto yy82; + } yy118: YYDEBUG(118, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '=') goto yy93; - if (yych <= '>') goto yy218; - if (yych <= '?') goto yy220; - goto yy93; + if (yybm[0+yych] & 128) { + goto yy216; + } + goto yy82; yy119: YYDEBUG(119, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) <= 'S') { - if (yych <= 'M') { - if (yych == 'B') goto yy222; - goto yy128; - } else { - if (yych <= 'N') goto yy223; - if (yych <= 'Q') goto yy128; - if (yych <= 'R') goto yy224; - goto yy225; - } - } else { - if (yych <= 'n') { - if (yych == 'b') goto yy222; - if (yych <= 'm') goto yy128; - goto yy223; - } else { - if (yych <= 'q') goto yy128; - if (yych <= 'r') goto yy224; - if (yych <= 's') goto yy225; - goto yy128; - } - } -yy120: YYDEBUG(120, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1891 "Zend/zend_language_scanner.l" +#line 1313 "Zend/zend_language_scanner.l" { - zend_copy_value(zendlval, yytext, yyleng); - RETURN_TOKEN(T_STRING); + RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM); } -#line 2638 "Zend/zend_language_scanner.c" +#line 2533 "Zend/zend_language_scanner.c" yy121: YYDEBUG(121, *YYCURSOR); - yyaccept = 2; + yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ';') { - if (yych <= '"') { - if (yych <= '!') goto yy128; - goto yy94; - } else { - if (yych == '\'') goto yy101; - goto yy128; - } - } else { - if (yych <= 'R') { - if (yych <= '<') goto yy227; - if (yych <= 'Q') goto yy128; - goto yy228; - } else { - if (yych == 'r') goto yy228; - goto yy128; - } - } + if (yych <= ';') goto yy122; + if (yych <= '<') goto yy219; + if (yych <= '=') goto yy221; yy122: YYDEBUG(122, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych <= 'K') { - if (yych == 'A') goto yy229; - goto yy128; - } else { - if (yych <= 'L') goto yy230; - if (yych <= 'N') goto yy128; - goto yy231; - } - } else { - if (yych <= 'k') { - if (yych == 'a') goto yy229; - goto yy128; - } else { - if (yych <= 'l') goto yy230; - if (yych == 'o') goto yy231; - goto yy128; - } - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 1569 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_SL); +} +#line 2548 "Zend/zend_language_scanner.c" yy123: YYDEBUG(123, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych <= 'H') { - if (yych == 'E') goto yy232; - goto yy128; - } else { - if (yych <= 'I') goto yy233; - if (yych <= 'N') goto yy128; - goto yy234; - } - } else { - if (yych <= 'h') { - if (yych == 'e') goto yy232; - goto yy128; - } else { - if (yych <= 'i') goto yy233; - if (yych == 'o') goto yy234; - goto yy128; - } - } -yy124: + if (yych == '>') goto yy223; YYDEBUG(124, *YYCURSOR); - yych = *++YYCURSOR; - switch (yych) { - case 'C': - case 'c': goto yy236; - case 'L': - case 'l': goto yy237; - case 'M': - case 'm': goto yy238; - case 'N': - case 'n': goto yy239; - case 'V': - case 'v': goto yy240; - case 'X': - case 'x': goto yy241; - default: goto yy128; - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 1489 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL); +} +#line 2559 "Zend/zend_language_scanner.c" yy125: YYDEBUG(125, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych <= 'N') { - if (yych == 'I') goto yy242; - goto yy128; - } else { - if (yych <= 'O') goto yy243; - if (yych <= 'T') goto yy128; - goto yy244; - } - } else { - if (yych <= 'n') { - if (yych == 'i') goto yy242; - goto yy128; - } else { - if (yych <= 'o') goto yy243; - if (yych == 'u') goto yy244; - goto yy128; - } - } + ++YYCURSOR; + goto yy70; yy126: YYDEBUG(126, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'L') goto yy245; - if (yych <= 'N') goto yy128; - goto yy246; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy128; - goto yy245; - } else { - if (yych == 'o') goto yy246; - goto yy128; - } - } -yy127: + if (yych == '=') goto yy225; YYDEBUG(127, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1477 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IS_EQUAL); +} +#line 2574 "Zend/zend_language_scanner.c" yy128: YYDEBUG(128, *YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy127; - } - goto yy120; -yy129: + ++YYCURSOR; YYDEBUG(129, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych <= 'L') { - if (yych == 'F') goto yy247; - goto yy128; - } else { - if (yych <= 'M') goto yy249; - if (yych <= 'N') goto yy250; - if (yych <= 'R') goto yy128; - goto yy251; - } - } else { - if (yych <= 'm') { - if (yych == 'f') goto yy247; - if (yych <= 'l') goto yy128; - goto yy249; - } else { - if (yych <= 'n') goto yy250; - if (yych == 's') goto yy251; - goto yy128; - } - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 1445 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DOUBLE_ARROW); +} +#line 2584 "Zend/zend_language_scanner.c" yy130: YYDEBUG(130, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy252; - if (yych == 'i') goto yy252; - goto yy128; -yy131: + ++YYCURSOR; YYDEBUG(131, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych == 'A') goto yy253; - if (yych <= 'D') goto yy128; - goto yy254; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy128; - goto yy253; - } else { - if (yych == 'e') goto yy254; - goto yy128; - } - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 1493 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IS_GREATER_OR_EQUAL); +} +#line 2594 "Zend/zend_language_scanner.c" yy132: YYDEBUG(132, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy255; - if (yych == 'r') goto yy255; - goto yy128; -yy133: + if (yych == '=') goto yy227; YYDEBUG(133, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'R') goto yy257; - if (yych <= 'T') goto yy128; - goto yy258; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy128; - goto yy257; - } else { - if (yych == 'u') goto yy258; - goto yy128; - } - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 1573 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_SR); +} +#line 2605 "Zend/zend_language_scanner.c" yy134: YYDEBUG(134, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy259; - if (yych == 'e') goto yy259; - goto yy128; + if (yych == '\n') goto yy229; + if (yych == '\r') goto yy230; yy135: YYDEBUG(135, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'W') { - if (yych == 'T') goto yy260; - if (yych <= 'V') goto yy128; - goto yy261; - } else { - if (yych <= 't') { - if (yych <= 's') goto yy128; - goto yy260; - } else { - if (yych == 'w') goto yy261; - goto yy128; - } - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 1960 "Zend/zend_language_scanner.l" + { + BEGIN(INITIAL); + if (yytext[yyleng-1] != '>') { + CG(increment_lineno) = 1; + } + RETURN_TOKEN(T_CLOSE_TAG); /* implicit ';' at php-end tag */ +} +#line 2622 "Zend/zend_language_scanner.c" yy136: YYDEBUG(136, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych == 'H') goto yy262; - if (yych <= 'Q') goto yy128; - goto yy263; - } else { - if (yych <= 'h') { - if (yych <= 'g') goto yy128; - goto yy262; - } else { - if (yych == 'r') goto yy263; - goto yy128; - } - } -yy137: + ++YYCURSOR; YYDEBUG(137, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych == 'N') goto yy264; - if (yych <= 'R') goto yy128; - goto yy265; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy128; - goto yy264; - } else { - if (yych == 's') goto yy265; - goto yy128; - } - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 1325 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_COALESCE); +} +#line 2632 "Zend/zend_language_scanner.c" yy138: YYDEBUG(138, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy266; - if (yych == 'a') goto yy266; - goto yy128; + if (yych == 'S') goto yy231; + if (yych == 's') goto yy231; + goto yy44; yy139: YYDEBUG(139, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy267; - if (yych == 'h') goto yy267; - goto yy128; + if (yych == 'D') goto yy232; + if (yych == 'd') goto yy232; + goto yy44; yy140: YYDEBUG(140, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy268; - if (yych == 'o') goto yy268; - goto yy128; + if (yych == 'R') goto yy234; + if (yych == 'r') goto yy234; + goto yy44; yy141: YYDEBUG(141, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy269; - if (yych == 'i') goto yy269; - goto yy128; -yy142: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(142, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(143, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1317 "Zend/zend_language_scanner.l" +#line 1227 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_NS_SEPARATOR); + RETURN_TOKEN(T_AS); } -#line 2927 "Zend/zend_language_scanner.c" +#line 2663 "Zend/zend_language_scanner.c" +yy143: + YYDEBUG(143, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '<') goto yy235; + goto yy82; yy144: YYDEBUG(144, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy270; - goto yy93; + if (yych == 'E') goto yy236; + if (yych == 'e') goto yy236; + goto yy44; yy145: YYDEBUG(145, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy272; - goto yy128; + if (yych <= 'T') { + if (yych <= 'L') { + if (yych <= 'K') goto yy44; + goto yy237; + } else { + if (yych <= 'R') goto yy44; + if (yych <= 'S') goto yy238; + goto yy239; + } + } else { + if (yych <= 'r') { + if (yych == 'l') goto yy237; + goto yy44; + } else { + if (yych <= 's') goto yy238; + if (yych <= 't') goto yy239; + goto yy44; + } + } yy146: YYDEBUG(146, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych == 'A') goto yy240; + if (yych <= 'N') goto yy44; + goto yy241; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy44; + goto yy240; + } else { + if (yych == 'o') goto yy241; + goto yy44; + } + } +yy147: YYDEBUG(147, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2127 "Zend/zend_language_scanner.l" - { - BEGIN(ST_BACKQUOTE); - RETURN_TOKEN('`'); -} -#line 2948 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'N') goto yy242; + if (yych == 'n') goto yy242; + goto yy44; yy148: YYDEBUG(148, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= 'F') { + if (yych == 'C') goto yy243; + if (yych <= 'E') goto yy44; + goto yy244; + } else { + if (yych <= 'c') { + if (yych <= 'b') goto yy44; + goto yy243; + } else { + if (yych == 'f') goto yy244; + goto yy44; + } + } +yy149: YYDEBUG(149, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1582 "Zend/zend_language_scanner.l" - { - yy_push_state(ST_IN_SCRIPTING); - RETURN_TOKEN('{'); -} -#line 2959 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'E') goto yy245; + if (yych == 'e') goto yy245; + goto yy44; yy150: YYDEBUG(150, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy273; - if (yych == '|') goto yy275; - goto yy93; -yy151: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(151, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(152, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1594 "Zend/zend_language_scanner.l" +#line 1195 "Zend/zend_language_scanner.l" { - RESET_DOC_COMMENT(); - if (!zend_stack_is_empty(&SCNG(state_stack))) { - yy_pop_state(); - } - RETURN_TOKEN('}'); + RETURN_TOKEN(T_DO); } -#line 2979 "Zend/zend_language_scanner.c" +#line 2753 "Zend/zend_language_scanner.c" +yy152: + YYDEBUG(152, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy247; + if (yych == 'h') goto yy247; + goto yy44; yy153: YYDEBUG(153, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy277; + yych = *++YYCURSOR; + if (yych == 'S') goto yy248; + if (yych == 's') goto yy248; + goto yy44; yy154: YYDEBUG(154, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1481 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_NOT_EQUAL); -} -#line 2991 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'P') goto yy249; + if (yych == 'p') goto yy249; + goto yy44; yy155: YYDEBUG(155, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'D') goto yy250; + if (yych == 'd') goto yy250; + goto yy44; +yy156: YYDEBUG(156, *YYCURSOR); - if (yych <= '^') { - if (yych <= '9') { - if (yych >= '0') goto yy155; - } else { - if (yych <= '@') goto yy157; - if (yych <= 'Z') goto yy155; - } + yych = *++YYCURSOR; + if (yych == 'A') goto yy251; + if (yych == 'a') goto yy251; + goto yy44; +yy157: + YYDEBUG(157, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych == 'I') goto yy252; + if (yych <= 'S') goto yy44; + goto yy253; } else { - if (yych <= '`') { - if (yych <= '_') goto yy155; + if (yych <= 'i') { + if (yych <= 'h') goto yy44; + goto yy252; } else { - if (yych <= 'z') goto yy155; - if (yych >= 0x80) goto yy155; + if (yych == 't') goto yy253; + goto yy44; } } -yy157: - YYDEBUG(157, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1868 "Zend/zend_language_scanner.l" - { - zend_copy_value(zendlval, (yytext+1), (yyleng-1)); - RETURN_TOKEN(T_VARIABLE); -} -#line 3021 "Zend/zend_language_scanner.c" yy158: YYDEBUG(158, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'N') goto yy254; + if (yych == 'n') goto yy254; + goto yy44; +yy159: YYDEBUG(159, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1525 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_MOD_EQUAL); -} -#line 3031 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'R') goto yy255; + if (yych == 'r') goto yy255; + goto yy44; yy160: YYDEBUG(160, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'N') goto yy257; + if (yych == 'n') goto yy257; + goto yy44; +yy161: YYDEBUG(161, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1553 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_BOOLEAN_AND); -} -#line 3041 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'O') goto yy258; + if (yych == 'o') goto yy258; + goto yy44; yy162: YYDEBUG(162, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'T') goto yy259; + if (yych == 't') goto yy259; + goto yy44; +yy163: YYDEBUG(163, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; + } + YYDEBUG(164, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1537 "Zend/zend_language_scanner.l" +#line 1171 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_AND_EQUAL); + RETURN_TOKEN(T_IF); } -#line 3051 "Zend/zend_language_scanner.c" -yy164: - YYDEBUG(164, *YYCURSOR); - ++YYCURSOR; - YYFILL(7); - yych = *YYCURSOR; +#line 2842 "Zend/zend_language_scanner.c" yy165: YYDEBUG(165, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy164; - } - switch (yych) { - case 'A': - case 'a': goto yy167; - case 'B': - case 'b': goto yy168; - case 'D': - case 'd': goto yy169; - case 'F': - case 'f': goto yy170; - case 'I': - case 'i': goto yy171; - case 'O': - case 'o': goto yy172; - case 'R': - case 'r': goto yy173; - case 'S': - case 's': goto yy174; - case 'U': - case 'u': goto yy175; - default: goto yy166; - } + yych = *++YYCURSOR; + if (yych == 'P') goto yy260; + if (yych == 'p') goto yy260; + goto yy44; yy166: YYDEBUG(166, *YYCURSOR); - YYCURSOR = YYMARKER; - if (yyaccept <= 3) { - if (yyaccept <= 1) { - if (yyaccept == 0) { - goto yy93; - } else { - goto yy111; - } + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= 'C') { + if (yych <= 'B') goto yy44; + goto yy261; } else { - if (yyaccept == 2) { - goto yy120; - } else { - goto yy193; - } + if (yych <= 'R') goto yy44; + if (yych <= 'S') goto yy262; + goto yy263; } } else { - if (yyaccept <= 5) { - if (yyaccept == 4) { - goto yy197; - } else { - goto yy206; - } + if (yych <= 'r') { + if (yych == 'c') goto yy261; + goto yy44; } else { - goto yy541; + if (yych <= 's') goto yy262; + if (yych <= 't') goto yy263; + goto yy44; } } yy167: YYDEBUG(167, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy279; - if (yych == 'r') goto yy279; - goto yy166; + if (yych == 'S') goto yy264; + if (yych == 's') goto yy264; + goto yy44; yy168: YYDEBUG(168, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'I') goto yy280; - if (yych <= 'N') goto yy166; - goto yy281; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy166; - goto yy280; - } else { - if (yych == 'o') goto yy281; - goto yy166; - } - } + if (yych == 'S') goto yy265; + if (yych == 's') goto yy265; + goto yy44; yy169: YYDEBUG(169, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy282; - if (yych == 'o') goto yy282; - goto yy166; + if (yych == 'M') goto yy266; + if (yych == 'm') goto yy266; + goto yy44; yy170: YYDEBUG(170, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy283; - if (yych == 'l') goto yy283; - goto yy166; + if (yych == 'W') goto yy267; + if (yych == 'w') goto yy267; + goto yy44; yy171: YYDEBUG(171, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy284; - if (yych == 'n') goto yy284; - goto yy166; -yy172: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(172, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy285; - if (yych == 'b') goto yy285; - goto yy166; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1557 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_LOGICAL_OR); +} +#line 2907 "Zend/zend_language_scanner.c" yy173: YYDEBUG(173, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy286; - if (yych == 'e') goto yy286; - goto yy166; + if (yych <= 'O') { + if (yych == 'I') goto yy269; + if (yych <= 'N') goto yy44; + goto yy270; + } else { + if (yych <= 'i') { + if (yych <= 'h') goto yy44; + goto yy269; + } else { + if (yych == 'o') goto yy270; + goto yy44; + } + } yy174: YYDEBUG(174, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy287; - if (yych == 't') goto yy287; - goto yy166; + if (yych == 'B') goto yy271; + if (yych == 'b') goto yy271; + goto yy44; yy175: YYDEBUG(175, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy288; - if (yych == 'n') goto yy288; - goto yy166; + if (yych <= 'T') { + if (yych == 'Q') goto yy272; + if (yych <= 'S') goto yy44; + goto yy273; + } else { + if (yych <= 'q') { + if (yych <= 'p') goto yy44; + goto yy272; + } else { + if (yych == 't') goto yy273; + goto yy44; + } + } yy176: YYDEBUG(176, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy289; + yych = *++YYCURSOR; + if (yych == 'A') goto yy274; + if (yych == 'a') goto yy274; + goto yy44; +yy177: YYDEBUG(177, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1509 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_POW); -} -#line 3185 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'I') goto yy275; + if (yych == 'i') goto yy275; + goto yy44; yy178: YYDEBUG(178, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'R') goto yy276; + if (yych == 'r') goto yy276; + goto yy44; +yy179: YYDEBUG(179, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1505 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_MUL_EQUAL); -} -#line 3195 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych == 'A') goto yy277; + if (yych <= 'X') goto yy44; + goto yy278; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy44; + goto yy277; + } else { + if (yych == 'y') goto yy278; + goto yy44; + } + } yy180: YYDEBUG(180, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'S') goto yy280; + if (yych == 's') goto yy280; + goto yy44; +yy181: YYDEBUG(181, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1461 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INC); -} -#line 3205 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'E') goto yy281; + if (yych == 'e') goto yy281; + goto yy44; yy182: YYDEBUG(182, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'R') goto yy283; + if (yych == 'r') goto yy283; + goto yy44; +yy183: YYDEBUG(183, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1497 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PLUS_EQUAL); -} -#line 3215 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'I') goto yy285; + if (yych == 'i') goto yy285; + goto yy44; yy184: YYDEBUG(184, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'R') goto yy286; + if (yych == 'r') goto yy286; + goto yy44; +yy185: YYDEBUG(185, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1465 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DEC); -} -#line 3225 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'E') goto yy288; + if (yych == 'e') goto yy288; + goto yy44; yy186: YYDEBUG(186, *YYCURSOR); ++YYCURSOR; YYDEBUG(187, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1501 "Zend/zend_language_scanner.l" +#line 1545 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_MINUS_EQUAL); + RETURN_TOKEN(T_XOR_EQUAL); } -#line 3235 "Zend/zend_language_scanner.c" +#line 3025 "Zend/zend_language_scanner.c" yy188: YYDEBUG(188, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + switch (yych) { + case 'C': + case 'c': goto yy289; + case 'D': + case 'd': goto yy290; + case 'F': + case 'f': goto yy291; + case 'H': + case 'h': goto yy292; + case 'L': + case 'l': goto yy293; + case 'M': + case 'm': goto yy294; + case 'N': + case 'n': goto yy295; + case 'T': + case 't': goto yy296; + default: goto yy44; + } +yy189: YYDEBUG(189, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(190, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1287 "Zend/zend_language_scanner.l" +#line 1541 "Zend/zend_language_scanner.l" { - yy_push_state(ST_LOOKING_FOR_PROPERTY); - RETURN_TOKEN(T_OBJECT_OPERATOR); + RETURN_TOKEN(T_OR_EQUAL); } -#line 3246 "Zend/zend_language_scanner.c" -yy190: - YYDEBUG(190, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '.') goto yy291; - goto yy166; +#line 3057 "Zend/zend_language_scanner.c" yy191: YYDEBUG(191, *YYCURSOR); - yyaccept = 3; - YYMARKER = ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; + ++YYCURSOR; YYDEBUG(192, *YYCURSOR); - if (yych <= 'D') { - if (yych <= '/') goto yy193; - if (yych <= '9') goto yy191; - } else { - if (yych <= 'E') goto yy201; - if (yych == 'e') goto yy201; - } -yy193: - YYDEBUG(193, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1739 "Zend/zend_language_scanner.l" +#line 1549 "Zend/zend_language_scanner.l" { - const char *end; - - ZVAL_DOUBLE(zendlval, zend_strtod(yytext, &end)); - /* errno isn't checked since we allow HUGE_VAL/INF overflow */ - ZEND_ASSERT(end == yytext + yyleng); - RETURN_TOKEN(T_DNUMBER); + RETURN_TOKEN(T_BOOLEAN_OR); } -#line 3278 "Zend/zend_language_scanner.c" -yy194: - YYDEBUG(194, *YYCURSOR); +#line 3067 "Zend/zend_language_scanner.c" +yy193: + YYDEBUG(193, *YYCURSOR); ++YYCURSOR; - YYDEBUG(195, *YYCURSOR); + YYDEBUG(194, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1521 "Zend/zend_language_scanner.l" +#line 1473 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_CONCAT_EQUAL); + RETURN_TOKEN(T_IS_NOT_IDENTICAL); } -#line 3288 "Zend/zend_language_scanner.c" +#line 3077 "Zend/zend_language_scanner.c" +yy195: + YYDEBUG(195, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy297; + if (yych == 'r') goto yy297; + goto yy82; yy196: YYDEBUG(196, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '*') goto yy293; + yych = *++YYCURSOR; + if (yych == 'N') goto yy298; + if (yych == 'n') goto yy298; + goto yy82; yy197: YYDEBUG(197, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1926 "Zend/zend_language_scanner.l" - { - int doc_com; - - if (yyleng > 2) { - doc_com = 1; - RESET_DOC_COMMENT(); - } else { - doc_com = 0; - } - - while (YYCURSOR < YYLIMIT) { - if (*YYCURSOR++ == '*' && *YYCURSOR == '/') { - break; - } - } - - if (YYCURSOR < YYLIMIT) { - YYCURSOR++; - } else { - zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno)); - } - - yyleng = YYCURSOR - SCNG(yy_text); - HANDLE_NEWLINES(yytext, yyleng); - - if (doc_com) { - CG(doc_comment) = zend_string_init(yytext, yyleng, 0); - RETURN_TOKEN(T_DOC_COMMENT); - } - - RETURN_TOKEN(T_COMMENT); -} -#line 3330 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'O') goto yy299; + if (yych == 'o') goto yy299; + goto yy82; yy198: YYDEBUG(198, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'U') goto yy300; + if (yych == 'u') goto yy300; + goto yy82; +yy199: YYDEBUG(199, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1517 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DIV_EQUAL); -} -#line 3340 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'O') goto yy301; + if (yych == 'o') goto yy301; + goto yy82; yy200: YYDEBUG(200, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 64) { - goto yy294; - } - goto yy166; + if (yych == 'T') goto yy302; + if (yych == 't') goto yy302; + goto yy82; yy201: YYDEBUG(201, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= ',') { - if (yych == '+') goto yy297; - goto yy166; - } else { - if (yych <= '-') goto yy297; - if (yych <= '/') goto yy166; - if (yych <= '9') goto yy298; - goto yy166; - } + if (yych == 'J') goto yy303; + if (yych == 'j') goto yy303; + goto yy82; yy202: YYDEBUG(202, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 128) { - goto yy300; - } - goto yy166; + if (yych == 'A') goto yy304; + if (yych == 'a') goto yy304; + goto yy82; yy203: YYDEBUG(203, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'R') goto yy305; + if (yych == 'r') goto yy305; + goto yy82; +yy204: YYDEBUG(204, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1313 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM); -} -#line 3376 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'S') goto yy306; + if (yych == 's') goto yy306; + goto yy82; yy205: YYDEBUG(205, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ';') goto yy206; - if (yych <= '<') goto yy303; - if (yych <= '=') goto yy305; -yy206: + ++YYCURSOR; YYDEBUG(206, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1569 "Zend/zend_language_scanner.l" +#line 1513 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_SL); + RETURN_TOKEN(T_POW_EQUAL); } -#line 3391 "Zend/zend_language_scanner.c" +#line 3147 "Zend/zend_language_scanner.c" yy207: YYDEBUG(207, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '>') goto yy307; YYDEBUG(208, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1489 "Zend/zend_language_scanner.l" +#line 1321 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL); + RETURN_TOKEN(T_ELLIPSIS); } -#line 3402 "Zend/zend_language_scanner.c" +#line 3157 "Zend/zend_language_scanner.c" yy209: YYDEBUG(209, *YYCURSOR); yych = *++YYCURSOR; - goto yy154; + if (yych <= '\f') { + if (yych <= 0x08) goto yy82; + if (yych <= '\n') goto yy307; + goto yy82; + } else { + if (yych <= '\r') goto yy307; + if (yych == ' ') goto yy307; + goto yy82; + } yy210: YYDEBUG(210, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy309; + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(211, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1477 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_EQUAL); -} -#line 3417 "Zend/zend_language_scanner.c" -yy212: + if (yybm[0+yych] & 64) { + goto yy210; + } YYDEBUG(212, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(213, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1445 "Zend/zend_language_scanner.l" +#line 1619 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_DOUBLE_ARROW); + char *bin = yytext + 2; /* Skip "0b" */ + int len = yyleng - 2; + char *end; + + /* Skip any leading 0s */ + while (*bin == '0') { + ++bin; + --len; + } + + if (len < SIZEOF_ZEND_LONG * 8) { + if (len == 0) { + ZVAL_LONG(zendlval, 0); + } else { + errno = 0; + ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2)); + ZEND_ASSERT(!errno && end == yytext + yyleng); + } + RETURN_TOKEN(T_LNUMBER); + } else { + ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end)); + /* errno isn't checked since we allow HUGE_VAL/INF overflow */ + ZEND_ASSERT(end == yytext + yyleng); + RETURN_TOKEN(T_DNUMBER); + } } -#line 3427 "Zend/zend_language_scanner.c" +#line 3209 "Zend/zend_language_scanner.c" +yy213: + YYDEBUG(213, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy82; + if (yych >= ':') goto yy82; yy214: YYDEBUG(214, *YYCURSOR); ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(215, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1493 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_GREATER_OR_EQUAL); -} -#line 3437 "Zend/zend_language_scanner.c" + if (yych <= '/') goto yy109; + if (yych <= '9') goto yy214; + goto yy109; yy216: YYDEBUG(216, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy311; + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(217, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1573 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SR); -} -#line 3448 "Zend/zend_language_scanner.c" -yy218: + if (yybm[0+yych] & 128) { + goto yy216; + } YYDEBUG(218, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy313; - if (yych == '\r') goto yy314; -yy219: - YYDEBUG(219, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1959 "Zend/zend_language_scanner.l" +#line 1691 "Zend/zend_language_scanner.l" { - BEGIN(INITIAL); - if (yytext[yyleng-1] != '>') { - CG(increment_lineno) = 1; + char *hex = yytext + 2; /* Skip "0x" */ + int len = yyleng - 2; + char *end; + + /* Skip any leading 0s */ + while (*hex == '0') { + hex++; + len--; + } + + if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) { + if (len == 0) { + ZVAL_LONG(zendlval, 0); + } else { + errno = 0; + ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16)); + ZEND_ASSERT(!errno && end == hex + len); + } + RETURN_TOKEN(T_LNUMBER); + } else { + ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end)); + /* errno isn't checked since we allow HUGE_VAL/INF overflow */ + ZEND_ASSERT(end == hex + len); + RETURN_TOKEN(T_DNUMBER); } - RETURN_TOKEN(T_CLOSE_TAG); /* implicit ';' at php-end tag */ } -#line 3465 "Zend/zend_language_scanner.c" -yy220: - YYDEBUG(220, *YYCURSOR); +#line 3263 "Zend/zend_language_scanner.c" +yy219: + YYDEBUG(219, *YYCURSOR); ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; + YYDEBUG(220, *YYCURSOR); + if (yych <= '\'') { + if (yych <= ' ') { + if (yych == '\t') goto yy219; + if (yych <= 0x1F) goto yy82; + goto yy219; + } else { + if (yych == '"') goto yy309; + if (yych <= '&') goto yy82; + goto yy310; + } + } else { + if (yych <= '_') { + if (yych <= '@') goto yy82; + if (yych <= 'Z') goto yy311; + if (yych <= '^') goto yy82; + goto yy311; + } else { + if (yych <= '`') goto yy82; + if (yych <= 'z') goto yy311; + if (yych <= 0x7F) goto yy82; + goto yy311; + } + } +yy221: YYDEBUG(221, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(222, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1325 "Zend/zend_language_scanner.l" +#line 1529 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_COALESCE); + RETURN_TOKEN(T_SL_EQUAL); } -#line 3475 "Zend/zend_language_scanner.c" -yy222: - YYDEBUG(222, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy315; - if (yych == 's') goto yy315; - goto yy128; +#line 3302 "Zend/zend_language_scanner.c" yy223: YYDEBUG(223, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy316; - if (yych == 'd') goto yy316; - goto yy128; -yy224: + ++YYCURSOR; YYDEBUG(224, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy318; - if (yych == 'r') goto yy318; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1485 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_SPACESHIP); +} +#line 3312 "Zend/zend_language_scanner.c" yy225: YYDEBUG(225, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } YYDEBUG(226, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1227 "Zend/zend_language_scanner.l" +#line 1469 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_AS); + RETURN_TOKEN(T_IS_IDENTICAL); } -#line 3506 "Zend/zend_language_scanner.c" +#line 3322 "Zend/zend_language_scanner.c" yy227: YYDEBUG(227, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '<') goto yy319; - goto yy166; -yy228: + ++YYCURSOR; YYDEBUG(228, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy320; - if (yych == 'e') goto yy320; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1533 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_SR_EQUAL); +} +#line 3332 "Zend/zend_language_scanner.c" yy229: YYDEBUG(229, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'L') { - if (yych <= 'K') goto yy128; - goto yy321; - } else { - if (yych <= 'R') goto yy128; - if (yych <= 'S') goto yy322; - goto yy323; - } - } else { - if (yych <= 'r') { - if (yych == 'l') goto yy321; - goto yy128; - } else { - if (yych <= 's') goto yy322; - if (yych <= 't') goto yy323; - goto yy128; - } - } + ++YYCURSOR; + goto yy135; yy230: YYDEBUG(230, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'A') goto yy324; - if (yych <= 'N') goto yy128; - goto yy325; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy128; - goto yy324; - } else { - if (yych == 'o') goto yy325; - goto yy128; - } - } + if (yych == '\n') goto yy229; + goto yy135; yy231: YYDEBUG(231, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy326; - if (yych == 'n') goto yy326; - goto yy128; + if (yych == 'T') goto yy313; + if (yych == 't') goto yy313; + goto yy44; yy232: YYDEBUG(232, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'F') { - if (yych == 'C') goto yy327; - if (yych <= 'E') goto yy128; - goto yy328; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy128; - goto yy327; - } else { - if (yych == 'f') goto yy328; - goto yy128; - } + if (yybm[0+yych] & 16) { + goto yy43; } -yy233: YYDEBUG(233, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy329; - if (yych == 'e') goto yy329; - goto yy128; -yy234: - YYDEBUG(234, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(235, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1195 "Zend/zend_language_scanner.l" +#line 1561 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_DO); + RETURN_TOKEN(T_LOGICAL_AND); } -#line 3596 "Zend/zend_language_scanner.c" +#line 3360 "Zend/zend_language_scanner.c" +yy234: + YYDEBUG(234, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy314; + if (yych == 'a') goto yy314; + goto yy44; +yy235: + YYDEBUG(235, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '<') goto yy219; + goto yy82; yy236: YYDEBUG(236, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy331; - if (yych == 'h') goto yy331; - goto yy128; + if (yych == 'A') goto yy315; + if (yych == 'a') goto yy315; + goto yy44; yy237: YYDEBUG(237, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy332; - if (yych == 's') goto yy332; - goto yy128; + if (yych == 'L') goto yy316; + if (yych == 'l') goto yy316; + goto yy44; yy238: YYDEBUG(238, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy333; - if (yych == 'p') goto yy333; - goto yy128; + if (yych == 'E') goto yy317; + if (yych == 'e') goto yy317; + goto yy44; yy239: YYDEBUG(239, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy334; - if (yych == 'd') goto yy334; - goto yy128; + if (yych == 'C') goto yy319; + if (yych == 'c') goto yy319; + goto yy44; yy240: YYDEBUG(240, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy335; - if (yych == 'a') goto yy335; - goto yy128; + if (yych == 'S') goto yy320; + if (yych == 's') goto yy320; + goto yy44; yy241: YYDEBUG(241, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych == 'I') goto yy336; - if (yych <= 'S') goto yy128; - goto yy337; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy128; - goto yy336; - } else { - if (yych == 't') goto yy337; - goto yy128; - } - } + if (yych == 'N') goto yy321; + if (yych == 'n') goto yy321; + goto yy44; yy242: YYDEBUG(242, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy338; - if (yych == 'n') goto yy338; - goto yy128; + if (yych <= 'T') { + if (yych <= 'R') goto yy44; + if (yych <= 'S') goto yy322; + goto yy323; + } else { + if (yych <= 'r') goto yy44; + if (yych <= 's') goto yy322; + if (yych <= 't') goto yy323; + goto yy44; + } yy243: YYDEBUG(243, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy339; - if (yych == 'r') goto yy339; - goto yy128; + if (yych == 'L') goto yy324; + if (yych == 'l') goto yy324; + goto yy44; yy244: YYDEBUG(244, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy341; - if (yych == 'n') goto yy341; - goto yy128; + if (yych == 'A') goto yy325; + if (yych == 'a') goto yy325; + goto yy44; yy245: YYDEBUG(245, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy342; - if (yych == 'o') goto yy342; - goto yy128; -yy246: - YYDEBUG(246, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy343; - if (yych == 't') goto yy343; - goto yy128; -yy247: - YYDEBUG(247, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(248, *YYCURSOR); + YYDEBUG(246, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1171 "Zend/zend_language_scanner.l" +#line 1129 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_IF); + RETURN_TOKEN(T_EXIT); } -#line 3685 "Zend/zend_language_scanner.c" +#line 3445 "Zend/zend_language_scanner.c" +yy247: + YYDEBUG(247, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy326; + if (yych == 'o') goto yy326; + goto yy44; +yy248: + YYDEBUG(248, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy328; + if (yych == 'e') goto yy328; + goto yy44; yy249: YYDEBUG(249, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy344; - if (yych == 'p') goto yy344; - goto yy128; + if (yych == 'T') goto yy330; + if (yych == 't') goto yy330; + goto yy44; yy250: YYDEBUG(250, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'C') { - if (yych <= 'B') goto yy128; - goto yy345; - } else { - if (yych <= 'R') goto yy128; - if (yych <= 'S') goto yy346; - goto yy347; - } - } else { - if (yych <= 'r') { - if (yych == 'c') goto yy345; - goto yy128; - } else { - if (yych <= 's') goto yy346; - if (yych <= 't') goto yy347; - goto yy128; - } + switch (yych) { + case 'D': + case 'd': goto yy331; + case 'F': + case 'f': goto yy332; + case 'I': + case 'i': goto yy333; + case 'S': + case 's': goto yy334; + case 'W': + case 'w': goto yy335; + default: goto yy44; } yy251: YYDEBUG(251, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy348; - if (yych == 's') goto yy348; - goto yy128; + if (yych == 'L') goto yy336; + if (yych == 'l') goto yy336; + goto yy44; yy252: YYDEBUG(252, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy349; - if (yych == 's') goto yy349; - goto yy128; + if (yych == 'T') goto yy338; + if (yych == 't') goto yy338; + goto yy44; yy253: YYDEBUG(253, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy350; - if (yych == 'm') goto yy350; - goto yy128; + if (yych == 'E') goto yy340; + if (yych == 'e') goto yy340; + goto yy44; yy254: YYDEBUG(254, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'W') goto yy351; - if (yych == 'w') goto yy351; - goto yy128; + if (yych == 'A') goto yy341; + if (yych == 'a') goto yy341; + goto yy44; yy255: YYDEBUG(255, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + yych = *++YYCURSOR; + if (yych <= '^') { + if (yych <= '@') { + if (yych <= '/') goto yy256; + if (yych <= '9') goto yy43; + } else { + if (yych == 'E') goto yy342; + if (yych <= 'Z') goto yy43; + } + } else { + if (yych <= 'd') { + if (yych != '`') goto yy43; + } else { + if (yych <= 'e') goto yy342; + if (yych <= 'z') goto yy43; + if (yych >= 0x80) goto yy43; + } } +yy256: YYDEBUG(256, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1557 "Zend/zend_language_scanner.l" +#line 1199 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_LOGICAL_OR); + RETURN_TOKEN(T_FOR); } -#line 3750 "Zend/zend_language_scanner.c" +#line 3531 "Zend/zend_language_scanner.c" yy257: YYDEBUG(257, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'I') goto yy353; - if (yych <= 'N') goto yy128; - goto yy354; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy128; - goto yy353; - } else { - if (yych == 'o') goto yy354; - goto yy128; - } - } + if (yych == 'C') goto yy343; + if (yych == 'c') goto yy343; + goto yy44; yy258: YYDEBUG(258, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy355; - if (yych == 'b') goto yy355; - goto yy128; + if (yych == 'B') goto yy344; + if (yych == 'b') goto yy344; + goto yy44; yy259: YYDEBUG(259, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych == 'Q') goto yy356; - if (yych <= 'S') goto yy128; - goto yy357; - } else { - if (yych <= 'q') { - if (yych <= 'p') goto yy128; - goto yy356; - } else { - if (yych == 't') goto yy357; - goto yy128; - } - } + if (yych == 'O') goto yy345; + if (yych == 'o') goto yy345; + goto yy44; yy260: YYDEBUG(260, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy358; - if (yych == 'a') goto yy358; - goto yy128; + if (yych == 'L') goto yy347; + if (yych == 'l') goto yy347; + goto yy44; yy261: YYDEBUG(261, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy359; - if (yych == 'i') goto yy359; - goto yy128; + if (yych == 'L') goto yy348; + if (yych == 'l') goto yy348; + goto yy44; yy262: YYDEBUG(262, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy360; - if (yych == 'r') goto yy360; - goto yy128; + if (yych == 'T') goto yy349; + if (yych == 't') goto yy349; + goto yy44; yy263: YYDEBUG(263, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'Y') { - if (yych == 'A') goto yy361; - if (yych <= 'X') goto yy128; - goto yy362; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy128; - goto yy361; - } else { - if (yych == 'y') goto yy362; - goto yy128; - } - } + if (yych == 'E') goto yy350; + if (yych == 'e') goto yy350; + goto yy44; yy264: YYDEBUG(264, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy364; - if (yych == 's') goto yy364; - goto yy128; + if (yych == 'E') goto yy351; + if (yych == 'e') goto yy351; + goto yy44; yy265: YYDEBUG(265, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy365; - if (yych == 'e') goto yy365; - goto yy128; + if (yych == 'T') goto yy352; + if (yych == 't') goto yy352; + goto yy44; yy266: YYDEBUG(266, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy367; - if (yych == 'r') goto yy367; - goto yy128; + if (yych == 'E') goto yy354; + if (yych == 'e') goto yy354; + goto yy44; yy267: YYDEBUG(267, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy369; - if (yych == 'i') goto yy369; - goto yy128; -yy268: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(268, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy370; - if (yych == 'r') goto yy370; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1329 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_NEW); +} +#line 3604 "Zend/zend_language_scanner.c" yy269: YYDEBUG(269, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy372; - if (yych == 'e') goto yy372; - goto yy128; + if (yych <= 'V') { + if (yych == 'N') goto yy355; + if (yych <= 'U') goto yy44; + goto yy356; + } else { + if (yych <= 'n') { + if (yych <= 'm') goto yy44; + goto yy355; + } else { + if (yych == 'v') goto yy356; + goto yy44; + } + } yy270: YYDEBUG(270, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'T') goto yy357; + if (yych == 't') goto yy357; + goto yy44; +yy271: YYDEBUG(271, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1545 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_XOR_EQUAL); -} -#line 3868 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'L') goto yy358; + if (yych == 'l') goto yy358; + goto yy44; yy272: YYDEBUG(272, *YYCURSOR); yych = *++YYCURSOR; - switch (yych) { - case 'C': - case 'c': goto yy373; - case 'D': - case 'd': goto yy374; - case 'F': - case 'f': goto yy375; - case 'H': - case 'h': goto yy376; - case 'L': - case 'l': goto yy377; - case 'M': - case 'm': goto yy378; - case 'N': - case 'n': goto yy379; - case 'T': - case 't': goto yy380; - default: goto yy128; - } + if (yych == 'U') goto yy359; + if (yych == 'u') goto yy359; + goto yy44; yy273: YYDEBUG(273, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'U') goto yy360; + if (yych == 'u') goto yy360; + goto yy44; +yy274: YYDEBUG(274, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1541 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_OR_EQUAL); -} -#line 3900 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'T') goto yy361; + if (yych == 't') goto yy361; + goto yy44; yy275: YYDEBUG(275, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'T') goto yy362; + if (yych == 't') goto yy362; + goto yy44; +yy276: YYDEBUG(276, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1549 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_BOOLEAN_OR); -} -#line 3910 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'O') goto yy363; + if (yych == 'o') goto yy363; + goto yy44; yy277: YYDEBUG(277, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'I') goto yy364; + if (yych == 'i') goto yy364; + goto yy44; +yy278: YYDEBUG(278, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; + } + YYDEBUG(279, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1473 "Zend/zend_language_scanner.l" +#line 1155 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_IS_NOT_IDENTICAL); + RETURN_TOKEN(T_TRY); } -#line 3920 "Zend/zend_language_scanner.c" -yy279: - YYDEBUG(279, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy381; - if (yych == 'r') goto yy381; - goto yy166; +#line 3681 "Zend/zend_language_scanner.c" yy280: YYDEBUG(280, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy382; - if (yych == 'n') goto yy382; - goto yy166; + if (yych == 'E') goto yy365; + if (yych == 'e') goto yy365; + goto yy44; yy281: YYDEBUG(281, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy383; - if (yych == 'o') goto yy383; - goto yy166; -yy282: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(282, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy384; - if (yych == 'u') goto yy384; - goto yy166; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1393 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_USE); +} +#line 3700 "Zend/zend_language_scanner.c" yy283: YYDEBUG(283, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy385; - if (yych == 'o') goto yy385; - goto yy166; -yy284: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(284, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy386; - if (yych == 't') goto yy386; - goto yy166; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1337 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_VAR); +} +#line 3713 "Zend/zend_language_scanner.c" yy285: YYDEBUG(285, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'J') goto yy387; - if (yych == 'j') goto yy387; - goto yy166; + if (yych == 'L') goto yy366; + if (yych == 'l') goto yy366; + goto yy44; yy286: YYDEBUG(286, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy388; - if (yych == 'a') goto yy388; - goto yy166; -yy287: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(287, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy389; - if (yych == 'r') goto yy389; - goto yy166; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1565 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_LOGICAL_XOR); +} +#line 3732 "Zend/zend_language_scanner.c" yy288: YYDEBUG(288, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy390; - if (yych == 's') goto yy390; - goto yy166; + if (yych == 'L') goto yy367; + if (yych == 'l') goto yy367; + goto yy44; yy289: YYDEBUG(289, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'L') goto yy368; + if (yych == 'l') goto yy368; + goto yy44; +yy290: YYDEBUG(290, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1513 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_POW_EQUAL); -} -#line 3990 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'I') goto yy369; + if (yych == 'i') goto yy369; + goto yy44; yy291: YYDEBUG(291, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'I') goto yy370; + if (yych <= 'T') goto yy44; + goto yy371; + } else { + if (yych <= 'i') { + if (yych <= 'h') goto yy44; + goto yy370; + } else { + if (yych == 'u') goto yy371; + goto yy44; + } + } +yy292: YYDEBUG(292, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1321 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ELLIPSIS); -} -#line 4000 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'A') goto yy372; + if (yych == 'a') goto yy372; + goto yy44; yy293: YYDEBUG(293, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '\f') { - if (yych <= 0x08) goto yy166; - if (yych <= '\n') goto yy391; - goto yy166; - } else { - if (yych <= '\r') goto yy391; - if (yych == ' ') goto yy391; - goto yy166; - } + if (yych == 'I') goto yy373; + if (yych == 'i') goto yy373; + goto yy44; yy294: YYDEBUG(294, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'E') goto yy374; + if (yych == 'e') goto yy374; + goto yy44; +yy295: YYDEBUG(295, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy294; - } + yych = *++YYCURSOR; + if (yych == 'A') goto yy375; + if (yych == 'a') goto yy375; + goto yy44; +yy296: YYDEBUG(296, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1619 "Zend/zend_language_scanner.l" - { - char *bin = yytext + 2; /* Skip "0b" */ - int len = yyleng - 2; - char *end; - - /* Skip any leading 0s */ - while (*bin == '0') { - ++bin; - --len; - } - - if (len < SIZEOF_ZEND_LONG * 8) { - if (len == 0) { - ZVAL_LONG(zendlval, 0); - } else { - errno = 0; - ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2)); - ZEND_ASSERT(!errno && end == yytext + yyleng); - } - RETURN_TOKEN(T_LNUMBER); - } else { - ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end)); - /* errno isn't checked since we allow HUGE_VAL/INF overflow */ - ZEND_ASSERT(end == yytext + yyleng); - RETURN_TOKEN(T_DNUMBER); - } -} -#line 4052 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'R') goto yy376; + if (yych == 'r') goto yy376; + goto yy44; yy297: YYDEBUG(297, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy166; - if (yych >= ':') goto yy166; + if (yych == 'A') goto yy377; + if (yych == 'a') goto yy377; + goto yy82; yy298: YYDEBUG(298, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'A') goto yy378; + if (yych == 'a') goto yy378; + goto yy82; +yy299: YYDEBUG(299, *YYCURSOR); - if (yych <= '/') goto yy193; - if (yych <= '9') goto yy298; - goto yy193; + yych = *++YYCURSOR; + if (yych == 'L') goto yy379; + if (yych == 'l') goto yy379; + goto yy82; yy300: YYDEBUG(300, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'B') goto yy380; + if (yych == 'b') goto yy380; + goto yy82; +yy301: YYDEBUG(301, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy300; - } + yych = *++YYCURSOR; + if (yych == 'A') goto yy381; + if (yych == 'a') goto yy381; + goto yy82; +yy302: YYDEBUG(302, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1690 "Zend/zend_language_scanner.l" - { - char *hex = yytext + 2; /* Skip "0x" */ - int len = yyleng - 2; - char *end; - - /* Skip any leading 0s */ - while (*hex == '0') { - hex++; - len--; - } - - if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) { - if (len == 0) { - ZVAL_LONG(zendlval, 0); - } else { - errno = 0; - ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16)); - ZEND_ASSERT(!errno && end == hex + len); - } - RETURN_TOKEN(T_LNUMBER); - } else { - ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end)); - /* errno isn't checked since we allow HUGE_VAL/INF overflow */ - ZEND_ASSERT(end == hex + len); - RETURN_TOKEN(T_DNUMBER); - } -} -#line 4106 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'E') goto yy386; + if (yych == 'e') goto yy386; + goto yy383; yy303: YYDEBUG(303, *YYCURSOR); - ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'E') goto yy387; + if (yych == 'e') goto yy387; + goto yy82; +yy304: YYDEBUG(304, *YYCURSOR); - if (yych <= '\'') { - if (yych <= ' ') { - if (yych == '\t') goto yy303; - if (yych <= 0x1F) goto yy166; - goto yy303; - } else { - if (yych == '"') goto yy393; - if (yych <= '&') goto yy166; - goto yy394; - } - } else { - if (yych <= '_') { - if (yych <= '@') goto yy166; - if (yych <= 'Z') goto yy395; - if (yych <= '^') goto yy166; - goto yy395; - } else { - if (yych <= '`') goto yy166; - if (yych <= 'z') goto yy395; - if (yych <= 0x7F) goto yy166; - goto yy395; - } - } + yych = *++YYCURSOR; + if (yych == 'L') goto yy388; + if (yych == 'l') goto yy388; + goto yy82; yy305: YYDEBUG(305, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'I') goto yy390; + if (yych == 'i') goto yy390; + goto yy82; +yy306: YYDEBUG(306, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1529 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SL_EQUAL); -} -#line 4145 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'E') goto yy391; + if (yych == 'e') goto yy391; + goto yy82; yy307: YYDEBUG(307, *YYCURSOR); ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(308, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1485 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SPACESHIP); -} -#line 4155 "Zend/zend_language_scanner.c" + if (yych <= '\f') { + if (yych <= 0x08) goto yy113; + if (yych <= '\n') goto yy307; + goto yy113; + } else { + if (yych <= '\r') goto yy307; + if (yych == ' ') goto yy307; + goto yy113; + } yy309: YYDEBUG(309, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == '"') goto yy82; + if (yych <= '/') goto yy393; + if (yych <= '9') goto yy82; + goto yy393; +yy310: YYDEBUG(310, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1469 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_IDENTICAL); -} -#line 4165 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == '\'') goto yy82; + if (yych <= '/') goto yy395; + if (yych <= '9') goto yy82; + goto yy395; yy311: YYDEBUG(311, *YYCURSOR); ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; YYDEBUG(312, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1533 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SR_EQUAL); -} -#line 4175 "Zend/zend_language_scanner.c" + if (yych <= '@') { + if (yych <= '\f') { + if (yych == '\n') goto yy396; + goto yy82; + } else { + if (yych <= '\r') goto yy398; + if (yych <= '/') goto yy82; + if (yych <= '9') goto yy311; + goto yy82; + } + } else { + if (yych <= '_') { + if (yych <= 'Z') goto yy311; + if (yych <= '^') goto yy82; + goto yy311; + } else { + if (yych <= '`') goto yy82; + if (yych <= 'z') goto yy311; + if (yych <= 0x7F) goto yy82; + goto yy311; + } + } yy313: YYDEBUG(313, *YYCURSOR); yych = *++YYCURSOR; - goto yy219; + if (yych == 'R') goto yy399; + if (yych == 'r') goto yy399; + goto yy44; yy314: YYDEBUG(314, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy313; - goto yy219; + if (yych == 'Y') goto yy400; + if (yych == 'y') goto yy400; + goto yy44; yy315: YYDEBUG(315, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy397; - if (yych == 't') goto yy397; - goto yy128; + if (yych == 'K') goto yy402; + if (yych == 'k') goto yy402; + goto yy44; yy316: YYDEBUG(316, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'A') goto yy404; + if (yych == 'a') goto yy404; + goto yy44; +yy317: YYDEBUG(317, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; + } + YYDEBUG(318, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1561 "Zend/zend_language_scanner.l" +#line 1239 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_LOGICAL_AND); + RETURN_TOKEN(T_CASE); } -#line 4203 "Zend/zend_language_scanner.c" -yy318: - YYDEBUG(318, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy398; - if (yych == 'a') goto yy398; - goto yy128; +#line 3950 "Zend/zend_language_scanner.c" yy319: YYDEBUG(319, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '<') goto yy303; - goto yy166; + if (yych == 'H') goto yy405; + if (yych == 'h') goto yy405; + goto yy44; yy320: YYDEBUG(320, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy399; - if (yych == 'a') goto yy399; - goto yy128; + if (yych == 'S') goto yy407; + if (yych == 's') goto yy407; + goto yy44; yy321: YYDEBUG(321, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy400; - if (yych == 'l') goto yy400; - goto yy128; + if (yych == 'E') goto yy409; + if (yych == 'e') goto yy409; + goto yy44; yy322: YYDEBUG(322, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy401; - if (yych == 'e') goto yy401; - goto yy128; + if (yych == 'T') goto yy411; + if (yych == 't') goto yy411; + goto yy44; yy323: YYDEBUG(323, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy403; - if (yych == 'c') goto yy403; - goto yy128; + if (yych == 'I') goto yy413; + if (yych == 'i') goto yy413; + goto yy44; yy324: YYDEBUG(324, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy404; - if (yych == 's') goto yy404; - goto yy128; + if (yych == 'A') goto yy414; + if (yych == 'a') goto yy414; + goto yy44; yy325: YYDEBUG(325, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy405; - if (yych == 'n') goto yy405; - goto yy128; + if (yych == 'U') goto yy415; + if (yych == 'u') goto yy415; + goto yy44; yy326: YYDEBUG(326, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'R') goto yy128; - if (yych <= 'S') goto yy406; - goto yy407; - } else { - if (yych <= 'r') goto yy128; - if (yych <= 's') goto yy406; - if (yych <= 't') goto yy407; - goto yy128; + if (yybm[0+yych] & 16) { + goto yy43; } -yy327: YYDEBUG(327, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy408; - if (yych == 'l') goto yy408; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1259 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ECHO); +} +#line 4005 "Zend/zend_language_scanner.c" yy328: YYDEBUG(328, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy409; - if (yych == 'a') goto yy409; - goto yy128; + if (yych <= '^') { + if (yych <= '@') { + if (yych <= '/') goto yy329; + if (yych <= '9') goto yy43; + } else { + if (yych == 'I') goto yy416; + if (yych <= 'Z') goto yy43; + } + } else { + if (yych <= 'h') { + if (yych != '`') goto yy43; + } else { + if (yych <= 'i') goto yy416; + if (yych <= 'z') goto yy43; + if (yych >= 0x80) goto yy43; + } + } yy329: YYDEBUG(329, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(330, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1129 "Zend/zend_language_scanner.l" +#line 1183 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_EXIT); + RETURN_TOKEN(T_ELSE); } -#line 4288 "Zend/zend_language_scanner.c" +#line 4033 "Zend/zend_language_scanner.c" +yy330: + YYDEBUG(330, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy417; + if (yych == 'y') goto yy417; + goto yy44; yy331: YYDEBUG(331, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy410; - if (yych == 'o') goto yy410; - goto yy128; + if (yych == 'E') goto yy419; + if (yych == 'e') goto yy419; + goto yy44; yy332: YYDEBUG(332, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy412; - if (yych == 'e') goto yy412; - goto yy128; + if (yych == 'O') goto yy420; + if (yych == 'o') goto yy420; + goto yy44; yy333: YYDEBUG(333, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy414; - if (yych == 't') goto yy414; - goto yy128; + if (yych == 'F') goto yy421; + if (yych == 'f') goto yy421; + goto yy44; yy334: YYDEBUG(334, *YYCURSOR); yych = *++YYCURSOR; - switch (yych) { - case 'D': - case 'd': goto yy415; - case 'F': - case 'f': goto yy416; - case 'I': - case 'i': goto yy417; - case 'S': - case 's': goto yy418; - case 'W': - case 'w': goto yy419; - default: goto yy128; - } + if (yych == 'W') goto yy423; + if (yych == 'w') goto yy423; + goto yy44; yy335: YYDEBUG(335, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy420; - if (yych == 'l') goto yy420; - goto yy128; + if (yych == 'H') goto yy424; + if (yych == 'h') goto yy424; + goto yy44; yy336: YYDEBUG(336, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy422; - if (yych == 't') goto yy422; - goto yy128; -yy337: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(337, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy424; - if (yych == 'e') goto yy424; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1369 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_EVAL); +} +#line 4082 "Zend/zend_language_scanner.c" yy338: YYDEBUG(338, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy425; - if (yych == 'a') goto yy425; - goto yy128; -yy339: - YYDEBUG(339, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '^') { - if (yych <= '@') { - if (yych <= '/') goto yy340; - if (yych <= '9') goto yy127; - } else { - if (yych == 'E') goto yy426; - if (yych <= 'Z') goto yy127; - } - } else { - if (yych <= 'd') { - if (yych != '`') goto yy127; - } else { - if (yych <= 'e') goto yy426; - if (yych <= 'z') goto yy127; - if (yych >= 0x80) goto yy127; - } + if (yybm[0+yych] & 16) { + goto yy43; } -yy340: - YYDEBUG(340, *YYCURSOR); + YYDEBUG(339, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1199 "Zend/zend_language_scanner.l" +#line 1125 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_FOR); + RETURN_TOKEN(T_EXIT); } -#line 4374 "Zend/zend_language_scanner.c" +#line 4095 "Zend/zend_language_scanner.c" +yy340: + YYDEBUG(340, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy425; + if (yych == 'n') goto yy425; + goto yy44; yy341: YYDEBUG(341, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy427; - if (yych == 'c') goto yy427; - goto yy128; + if (yych == 'L') goto yy426; + if (yych == 'l') goto yy426; + goto yy44; yy342: YYDEBUG(342, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy428; - if (yych == 'b') goto yy428; - goto yy128; + if (yych == 'A') goto yy428; + if (yych == 'a') goto yy428; + goto yy44; yy343: YYDEBUG(343, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy429; - if (yych == 'o') goto yy429; - goto yy128; + if (yych == 'T') goto yy429; + if (yych == 't') goto yy429; + goto yy44; yy344: YYDEBUG(344, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy431; - if (yych == 'l') goto yy431; - goto yy128; + if (yych == 'A') goto yy430; + if (yych == 'a') goto yy430; + goto yy44; yy345: YYDEBUG(345, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy432; - if (yych == 'l') goto yy432; - goto yy128; -yy346: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(346, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy433; - if (yych == 't') goto yy433; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1255 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_GOTO); +} +#line 4138 "Zend/zend_language_scanner.c" yy347: YYDEBUG(347, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy434; - if (yych == 'e') goto yy434; - goto yy128; + if (yych == 'E') goto yy431; + if (yych == 'e') goto yy431; + goto yy44; yy348: YYDEBUG(348, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy435; - if (yych == 'e') goto yy435; - goto yy128; + if (yych == 'U') goto yy432; + if (yych == 'u') goto yy432; + goto yy44; yy349: YYDEBUG(349, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy436; - if (yych == 't') goto yy436; - goto yy128; + if (yych <= 'E') { + if (yych == 'A') goto yy433; + if (yych <= 'D') goto yy44; + goto yy434; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy44; + goto yy433; + } else { + if (yych == 'e') goto yy434; + goto yy44; + } + } yy350: YYDEBUG(350, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy438; - if (yych == 'e') goto yy438; - goto yy128; + if (yych == 'R') goto yy435; + if (yych == 'r') goto yy435; + goto yy44; yy351: YYDEBUG(351, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'T') goto yy436; + if (yych == 't') goto yy436; + goto yy44; +yy352: YYDEBUG(352, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1329 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_NEW); -} -#line 4447 "Zend/zend_language_scanner.c" -yy353: - YYDEBUG(353, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'V') { - if (yych == 'N') goto yy439; - if (yych <= 'U') goto yy128; - goto yy440; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy128; - goto yy439; - } else { - if (yych == 'v') goto yy440; - goto yy128; - } + if (yybm[0+yych] & 16) { + goto yy43; } + YYDEBUG(353, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1449 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_LIST); +} +#line 4191 "Zend/zend_language_scanner.c" yy354: YYDEBUG(354, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy441; - if (yych == 't') goto yy441; - goto yy128; + if (yych == 'S') goto yy438; + if (yych == 's') goto yy438; + goto yy44; yy355: YYDEBUG(355, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy442; - if (yych == 'l') goto yy442; - goto yy128; + if (yych == 'T') goto yy439; + if (yych == 't') goto yy439; + goto yy44; yy356: YYDEBUG(356, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy443; - if (yych == 'u') goto yy443; - goto yy128; + if (yych == 'A') goto yy441; + if (yych == 'a') goto yy441; + goto yy44; yy357: YYDEBUG(357, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy444; - if (yych == 'u') goto yy444; - goto yy128; + if (yych == 'E') goto yy442; + if (yych == 'e') goto yy442; + goto yy44; yy358: YYDEBUG(358, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy445; - if (yych == 't') goto yy445; - goto yy128; + if (yych == 'I') goto yy443; + if (yych == 'i') goto yy443; + goto yy44; yy359: YYDEBUG(359, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy446; - if (yych == 't') goto yy446; - goto yy128; + if (yych == 'I') goto yy444; + if (yych == 'i') goto yy444; + goto yy44; yy360: YYDEBUG(360, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy447; - if (yych == 'o') goto yy447; - goto yy128; + if (yych == 'R') goto yy445; + if (yych == 'r') goto yy445; + goto yy44; yy361: YYDEBUG(361, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy448; - if (yych == 'i') goto yy448; - goto yy128; + if (yych == 'I') goto yy446; + if (yych == 'i') goto yy446; + goto yy44; yy362: YYDEBUG(362, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'C') goto yy447; + if (yych == 'c') goto yy447; + goto yy44; +yy363: YYDEBUG(363, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1155 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_TRY); -} -#line 4524 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'W') goto yy448; + if (yych == 'w') goto yy448; + goto yy44; yy364: YYDEBUG(364, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy449; - if (yych == 'e') goto yy449; - goto yy128; + if (yych == 'T') goto yy450; + if (yych == 't') goto yy450; + goto yy44; yy365: YYDEBUG(365, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'T') goto yy452; + if (yych == 't') goto yy452; + goto yy44; +yy366: YYDEBUG(366, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1393 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_USE); -} -#line 4543 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'E') goto yy454; + if (yych == 'e') goto yy454; + goto yy44; yy367: YYDEBUG(367, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'D') goto yy456; + if (yych == 'd') goto yy456; + goto yy44; +yy368: YYDEBUG(368, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1337 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_VAR); -} -#line 4556 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'A') goto yy458; + if (yych == 'a') goto yy458; + goto yy44; yy369: YYDEBUG(369, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy450; - if (yych == 'l') goto yy450; - goto yy128; + if (yych == 'R') goto yy459; + if (yych == 'r') goto yy459; + goto yy44; yy370: YYDEBUG(370, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'L') goto yy460; + if (yych == 'l') goto yy460; + goto yy44; +yy371: YYDEBUG(371, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1565 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_LOGICAL_XOR); -} -#line 4575 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'N') goto yy461; + if (yych == 'n') goto yy461; + goto yy44; yy372: YYDEBUG(372, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy451; - if (yych == 'l') goto yy451; - goto yy128; + if (yych == 'L') goto yy462; + if (yych == 'l') goto yy462; + goto yy44; yy373: YYDEBUG(373, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy452; - if (yych == 'l') goto yy452; - goto yy128; + if (yych == 'N') goto yy463; + if (yych == 'n') goto yy463; + goto yy44; yy374: YYDEBUG(374, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy453; - if (yych == 'i') goto yy453; - goto yy128; + if (yych == 'T') goto yy464; + if (yych == 't') goto yy464; + goto yy44; yy375: YYDEBUG(375, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'I') goto yy454; - if (yych <= 'T') goto yy128; - goto yy455; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy128; - goto yy454; - } else { - if (yych == 'u') goto yy455; - goto yy128; - } - } + if (yych == 'M') goto yy465; + if (yych == 'm') goto yy465; + goto yy44; yy376: YYDEBUG(376, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy456; - if (yych == 'a') goto yy456; - goto yy128; + if (yych == 'A') goto yy466; + if (yych == 'a') goto yy466; + goto yy44; yy377: YYDEBUG(377, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy457; - if (yych == 'i') goto yy457; - goto yy128; + if (yych == 'Y') goto yy467; + if (yych == 'y') goto yy467; + goto yy82; yy378: YYDEBUG(378, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy458; - if (yych == 'e') goto yy458; - goto yy128; + if (yych == 'R') goto yy469; + if (yych == 'r') goto yy469; + goto yy82; yy379: YYDEBUG(379, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy459; - if (yych == 'a') goto yy459; - goto yy128; + if (yych == 'E') goto yy474; + if (yych == 'e') goto yy474; + goto yy471; yy380: YYDEBUG(380, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy460; - if (yych == 'r') goto yy460; - goto yy128; + if (yych == 'L') goto yy475; + if (yych == 'l') goto yy475; + goto yy82; yy381: YYDEBUG(381, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy461; - if (yych == 'a') goto yy461; - goto yy166; + if (yych == 'T') goto yy388; + if (yych == 't') goto yy388; + goto yy82; yy382: YYDEBUG(382, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy462; - if (yych == 'a') goto yy462; - goto yy166; + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; yy383: YYDEBUG(383, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy463; - if (yych == 'l') goto yy463; - goto yy166; -yy384: + if (yych <= 0x1F) { + if (yych == '\t') goto yy382; + goto yy82; + } else { + if (yych <= ' ') goto yy382; + if (yych != ')') goto yy82; + } YYDEBUG(384, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy464; - if (yych == 'b') goto yy464; - goto yy166; -yy385: + ++YYCURSOR; YYDEBUG(385, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy465; - if (yych == 'a') goto yy465; - goto yy166; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1341 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INT_CAST); +} +#line 4382 "Zend/zend_language_scanner.c" yy386: YYDEBUG(386, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy470; - if (yych == 'e') goto yy470; - goto yy467; + if (yych == 'G') goto yy476; + if (yych == 'g') goto yy476; + goto yy82; yy387: YYDEBUG(387, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy471; - if (yych == 'e') goto yy471; - goto yy166; + if (yych == 'C') goto yy477; + if (yych == 'c') goto yy477; + goto yy82; yy388: YYDEBUG(388, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy472; - if (yych == 'l') goto yy472; - goto yy166; -yy389: + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(389, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy474; - if (yych == 'i') goto yy474; - goto yy166; + if (yych <= 0x1F) { + if (yych == '\t') goto yy388; + goto yy82; + } else { + if (yych <= ' ') goto yy388; + if (yych == ')') goto yy478; + goto yy82; + } yy390: YYDEBUG(390, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy475; - if (yych == 'e') goto yy475; - goto yy166; + if (yych == 'N') goto yy480; + if (yych == 'n') goto yy480; + goto yy82; yy391: YYDEBUG(391, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy481; + if (yych == 't') goto yy481; + goto yy82; +yy392: + YYDEBUG(392, *YYCURSOR); ++YYCURSOR; - YYFILL(1); + YYFILL(3); yych = *YYCURSOR; - YYDEBUG(392, *YYCURSOR); - if (yych <= '\f') { - if (yych <= 0x08) goto yy197; - if (yych <= '\n') goto yy391; - goto yy197; - } else { - if (yych <= '\r') goto yy391; - if (yych == ' ') goto yy391; - goto yy197; - } yy393: YYDEBUG(393, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '"') goto yy166; - if (yych <= '/') goto yy477; - if (yych <= '9') goto yy166; - goto yy477; + if (yych <= 'Z') { + if (yych <= '/') { + if (yych == '"') goto yy483; + goto yy82; + } else { + if (yych <= '9') goto yy392; + if (yych <= '@') goto yy82; + goto yy392; + } + } else { + if (yych <= '`') { + if (yych == '_') goto yy392; + goto yy82; + } else { + if (yych <= 'z') goto yy392; + if (yych <= 0x7F) goto yy82; + goto yy392; + } + } yy394: YYDEBUG(394, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\'') goto yy166; - if (yych <= '/') goto yy479; - if (yych <= '9') goto yy166; - goto yy479; -yy395: - YYDEBUG(395, *YYCURSOR); ++YYCURSOR; - YYFILL(2); + YYFILL(3); yych = *YYCURSOR; - YYDEBUG(396, *YYCURSOR); - if (yych <= '@') { - if (yych <= '\f') { - if (yych == '\n') goto yy480; - goto yy166; +yy395: + YYDEBUG(395, *YYCURSOR); + if (yych <= 'Z') { + if (yych <= '/') { + if (yych == '\'') goto yy483; + goto yy82; } else { - if (yych <= '\r') goto yy482; - if (yych <= '/') goto yy166; - if (yych <= '9') goto yy395; - goto yy166; + if (yych <= '9') goto yy394; + if (yych <= '@') goto yy82; + goto yy394; } } else { - if (yych <= '_') { - if (yych <= 'Z') goto yy395; - if (yych <= '^') goto yy166; - goto yy395; + if (yych <= '`') { + if (yych == '_') goto yy394; + goto yy82; } else { - if (yych <= '`') goto yy166; - if (yych <= 'z') goto yy395; - if (yych <= 0x7F) goto yy166; - goto yy395; + if (yych <= 'z') goto yy394; + if (yych <= 0x7F) goto yy82; + goto yy394; } } +yy396: + YYDEBUG(396, *YYCURSOR); + ++YYCURSOR; yy397: YYDEBUG(397, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy483; - if (yych == 'r') goto yy483; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 2080 "Zend/zend_language_scanner.l" + { + char *s; + int bprefix = (yytext[0] != '<') ? 1 : 0; + zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label)); + + CG(zend_lineno)++; + heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0); + s = yytext+bprefix+3; + while ((*s == ' ') || (*s == '\t')) { + s++; + heredoc_label->length--; + } + + if (*s == '\'') { + s++; + heredoc_label->length -= 2; + + BEGIN(ST_NOWDOC); + } else { + if (*s == '"') { + s++; + heredoc_label->length -= 2; + } + + BEGIN(ST_HEREDOC); + } + + heredoc_label->label = estrndup(s, heredoc_label->length); + + /* Check for ending label on the next line */ + if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) { + YYCTYPE *end = YYCURSOR + heredoc_label->length; + + if (*end == ';') { + end++; + } + + if (*end == '\n' || *end == '\r') { + BEGIN(ST_END_HEREDOC); + } + } + + zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label); + + RETURN_TOKEN(T_START_HEREDOC); +} +#line 4526 "Zend/zend_language_scanner.c" yy398: YYDEBUG(398, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy484; - if (yych == 'y') goto yy484; - goto yy128; + if (yych == '\n') goto yy396; + goto yy397; yy399: YYDEBUG(399, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'K') goto yy486; - if (yych == 'k') goto yy486; - goto yy128; + if (yych == 'A') goto yy484; + if (yych == 'a') goto yy484; + goto yy44; yy400: YYDEBUG(400, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy488; - if (yych == 'a') goto yy488; - goto yy128; -yy401: - YYDEBUG(401, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(402, *YYCURSOR); + YYDEBUG(401, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1239 "Zend/zend_language_scanner.l" +#line 1453 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_CASE); + RETURN_TOKEN(T_ARRAY); } -#line 4793 "Zend/zend_language_scanner.c" -yy403: - YYDEBUG(403, *YYCURSOR); +#line 4550 "Zend/zend_language_scanner.c" +yy402: + YYDEBUG(402, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy489; - if (yych == 'h') goto yy489; - goto yy128; + if (yybm[0+yych] & 16) { + goto yy43; + } + YYDEBUG(403, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1247 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_BREAK); +} +#line 4563 "Zend/zend_language_scanner.c" yy404: YYDEBUG(404, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy491; - if (yych == 's') goto yy491; - goto yy128; + if (yych == 'B') goto yy485; + if (yych == 'b') goto yy485; + goto yy44; yy405: YYDEBUG(405, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy493; - if (yych == 'e') goto yy493; - goto yy128; -yy406: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(406, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy495; - if (yych == 't') goto yy495; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1159 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_CATCH); +} +#line 4582 "Zend/zend_language_scanner.c" yy407: YYDEBUG(407, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy497; - if (yych == 'i') goto yy497; - goto yy128; -yy408: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(408, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy498; - if (yych == 'a') goto yy498; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1267 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_CLASS); +} +#line 4595 "Zend/zend_language_scanner.c" yy409: YYDEBUG(409, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy499; - if (yych == 'u') goto yy499; - goto yy128; -yy410: - YYDEBUG(410, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(411, *YYCURSOR); + YYDEBUG(410, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1259 "Zend/zend_language_scanner.l" +#line 1333 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_ECHO); + RETURN_TOKEN(T_CLONE); } -#line 4848 "Zend/zend_language_scanner.c" -yy412: - YYDEBUG(412, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '^') { - if (yych <= '@') { - if (yych <= '/') goto yy413; - if (yych <= '9') goto yy127; - } else { - if (yych == 'I') goto yy500; - if (yych <= 'Z') goto yy127; - } - } else { - if (yych <= 'h') { - if (yych != '`') goto yy127; - } else { - if (yych <= 'i') goto yy500; - if (yych <= 'z') goto yy127; - if (yych >= 0x80) goto yy127; - } +#line 4608 "Zend/zend_language_scanner.c" +yy411: + YYDEBUG(411, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; } -yy413: - YYDEBUG(413, *YYCURSOR); + YYDEBUG(412, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1183 "Zend/zend_language_scanner.l" +#line 1137 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_ELSE); + RETURN_TOKEN(T_CONST); } -#line 4876 "Zend/zend_language_scanner.c" +#line 4621 "Zend/zend_language_scanner.c" +yy413: + YYDEBUG(413, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy486; + if (yych == 'n') goto yy486; + goto yy44; yy414: YYDEBUG(414, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy501; - if (yych == 'y') goto yy501; - goto yy128; + if (yych == 'R') goto yy487; + if (yych == 'r') goto yy487; + goto yy44; yy415: YYDEBUG(415, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy503; - if (yych == 'e') goto yy503; - goto yy128; + if (yych == 'L') goto yy488; + if (yych == 'l') goto yy488; + goto yy44; yy416: YYDEBUG(416, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy504; - if (yych == 'o') goto yy504; - goto yy128; + if (yych == 'F') goto yy489; + if (yych == 'f') goto yy489; + goto yy44; yy417: YYDEBUG(417, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy505; - if (yych == 'f') goto yy505; - goto yy128; -yy418: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(418, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'W') goto yy507; - if (yych == 'w') goto yy507; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1409 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_EMPTY); +} +#line 4658 "Zend/zend_language_scanner.c" yy419: YYDEBUG(419, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy508; - if (yych == 'h') goto yy508; - goto yy128; + if (yych == 'C') goto yy491; + if (yych == 'c') goto yy491; + goto yy44; yy420: YYDEBUG(420, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'R') goto yy492; + if (yych == 'r') goto yy492; + goto yy44; +yy421: YYDEBUG(421, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1369 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_EVAL); -} -#line 4925 "Zend/zend_language_scanner.c" -yy422: - YYDEBUG(422, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(423, *YYCURSOR); + YYDEBUG(422, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1125 "Zend/zend_language_scanner.l" +#line 1179 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_EXIT); + RETURN_TOKEN(T_ENDIF); } -#line 4938 "Zend/zend_language_scanner.c" +#line 4683 "Zend/zend_language_scanner.c" +yy423: + YYDEBUG(423, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy494; + if (yych == 'i') goto yy494; + goto yy44; yy424: YYDEBUG(424, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy509; - if (yych == 'n') goto yy509; - goto yy128; + if (yych == 'I') goto yy495; + if (yych == 'i') goto yy495; + goto yy44; yy425: YYDEBUG(425, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy510; - if (yych == 'l') goto yy510; - goto yy128; + if (yych == 'D') goto yy496; + if (yych == 'd') goto yy496; + goto yy44; yy426: YYDEBUG(426, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy512; - if (yych == 'a') goto yy512; - goto yy128; + if (yych <= '^') { + if (yych <= '@') { + if (yych <= '/') goto yy427; + if (yych <= '9') goto yy43; + } else { + if (yych == 'L') goto yy497; + if (yych <= 'Z') goto yy43; + } + } else { + if (yych <= 'k') { + if (yych != '`') goto yy43; + } else { + if (yych <= 'l') goto yy497; + if (yych <= 'z') goto yy43; + if (yych >= 0x80) goto yy43; + } + } yy427: YYDEBUG(427, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy513; - if (yych == 't') goto yy513; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1425 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_FINAL); +} +#line 4729 "Zend/zend_language_scanner.c" yy428: YYDEBUG(428, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy514; - if (yych == 'a') goto yy514; - goto yy128; + if (yych == 'C') goto yy498; + if (yych == 'c') goto yy498; + goto yy44; yy429: YYDEBUG(429, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'I') goto yy499; + if (yych == 'i') goto yy499; + goto yy44; +yy430: YYDEBUG(430, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1255 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_GOTO); -} -#line 4981 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'L') goto yy500; + if (yych == 'l') goto yy500; + goto yy44; yy431: YYDEBUG(431, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy515; - if (yych == 'e') goto yy515; - goto yy128; + if (yych == 'M') goto yy502; + if (yych == 'm') goto yy502; + goto yy44; yy432: YYDEBUG(432, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy516; - if (yych == 'u') goto yy516; - goto yy128; + if (yych == 'D') goto yy503; + if (yych == 'd') goto yy503; + goto yy44; yy433: YYDEBUG(433, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych == 'A') goto yy517; - if (yych <= 'D') goto yy128; - goto yy518; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy128; - goto yy517; - } else { - if (yych == 'e') goto yy518; - goto yy128; - } - } + if (yych == 'N') goto yy504; + if (yych == 'n') goto yy504; + goto yy44; yy434: YYDEBUG(434, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy519; - if (yych == 'r') goto yy519; - goto yy128; + if (yych == 'A') goto yy505; + if (yych == 'a') goto yy505; + goto yy44; yy435: YYDEBUG(435, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy520; - if (yych == 't') goto yy520; - goto yy128; + if (yych == 'F') goto yy506; + if (yych == 'f') goto yy506; + goto yy44; yy436: YYDEBUG(436, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; } YYDEBUG(437, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1449 "Zend/zend_language_scanner.l" +#line 1405 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_LIST); + RETURN_TOKEN(T_ISSET); } -#line 5034 "Zend/zend_language_scanner.c" +#line 4790 "Zend/zend_language_scanner.c" yy438: YYDEBUG(438, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy522; - if (yych == 's') goto yy522; - goto yy128; + if (yych == 'P') goto yy507; + if (yych == 'p') goto yy507; + goto yy44; yy439: YYDEBUG(439, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy523; - if (yych == 't') goto yy523; - goto yy128; -yy440: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(440, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy525; - if (yych == 'a') goto yy525; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1263 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_PRINT); +} +#line 4809 "Zend/zend_language_scanner.c" yy441: YYDEBUG(441, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy526; - if (yych == 'e') goto yy526; - goto yy128; + if (yych == 'T') goto yy508; + if (yych == 't') goto yy508; + goto yy44; yy442: YYDEBUG(442, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy527; - if (yych == 'i') goto yy527; - goto yy128; + if (yych == 'C') goto yy509; + if (yych == 'c') goto yy509; + goto yy44; yy443: YYDEBUG(443, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy528; - if (yych == 'i') goto yy528; - goto yy128; + if (yych == 'C') goto yy510; + if (yych == 'c') goto yy510; + goto yy44; yy444: YYDEBUG(444, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy529; - if (yych == 'r') goto yy529; - goto yy128; + if (yych == 'R') goto yy512; + if (yych == 'r') goto yy512; + goto yy44; yy445: YYDEBUG(445, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy530; - if (yych == 'i') goto yy530; - goto yy128; + if (yych == 'N') goto yy513; + if (yych == 'n') goto yy513; + goto yy44; yy446: YYDEBUG(446, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy531; - if (yych == 'c') goto yy531; - goto yy128; + if (yych == 'C') goto yy515; + if (yych == 'c') goto yy515; + goto yy44; yy447: YYDEBUG(447, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'W') goto yy532; - if (yych == 'w') goto yy532; - goto yy128; + if (yych == 'H') goto yy517; + if (yych == 'h') goto yy517; + goto yy44; yy448: YYDEBUG(448, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy534; - if (yych == 't') goto yy534; - goto yy128; -yy449: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(449, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy536; - if (yych == 't') goto yy536; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1167 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_THROW); +} +#line 4864 "Zend/zend_language_scanner.c" yy450: YYDEBUG(450, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy538; - if (yych == 'e') goto yy538; - goto yy128; -yy451: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(451, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy540; - if (yych == 'd') goto yy540; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1275 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_TRAIT); +} +#line 4877 "Zend/zend_language_scanner.c" yy452: YYDEBUG(452, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy542; - if (yych == 'a') goto yy542; - goto yy128; -yy453: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(453, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy543; - if (yych == 'r') goto yy543; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1441 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_UNSET); +} +#line 4890 "Zend/zend_language_scanner.c" yy454: YYDEBUG(454, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy544; - if (yych == 'l') goto yy544; - goto yy128; -yy455: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(455, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy545; - if (yych == 'n') goto yy545; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1187 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_WHILE); +} +#line 4903 "Zend/zend_language_scanner.c" yy456: YYDEBUG(456, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy546; - if (yych == 'l') goto yy546; - goto yy128; + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy43; + } + if (yych <= '\f') { + if (yych <= 0x08) goto yy457; + if (yych <= '\n') goto yy519; + } else { + if (yych <= '\r') goto yy519; + if (yych == ' ') goto yy519; + } yy457: YYDEBUG(457, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy547; - if (yych == 'n') goto yy547; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1151 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_YIELD); +} +#line 4925 "Zend/zend_language_scanner.c" yy458: YYDEBUG(458, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy548; - if (yych == 't') goto yy548; - goto yy128; + if (yych == 'S') goto yy521; + if (yych == 's') goto yy521; + goto yy44; yy459: YYDEBUG(459, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy549; - if (yych == 'm') goto yy549; - goto yy128; + if (yych == '_') goto yy522; + goto yy44; yy460: YYDEBUG(460, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy550; - if (yych == 'a') goto yy550; - goto yy128; + if (yych == 'E') goto yy523; + if (yych == 'e') goto yy523; + goto yy44; yy461: YYDEBUG(461, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy551; - if (yych == 'y') goto yy551; - goto yy166; + if (yych == 'C') goto yy524; + if (yych == 'c') goto yy524; + goto yy44; yy462: YYDEBUG(462, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy553; - if (yych == 'r') goto yy553; - goto yy166; + if (yych == 'T') goto yy525; + if (yych == 't') goto yy525; + goto yy44; yy463: YYDEBUG(463, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy558; - if (yych == 'e') goto yy558; - goto yy555; + if (yych == 'E') goto yy526; + if (yych == 'e') goto yy526; + goto yy44; yy464: YYDEBUG(464, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy559; - if (yych == 'l') goto yy559; - goto yy166; + if (yych == 'H') goto yy527; + if (yych == 'h') goto yy527; + goto yy44; yy465: YYDEBUG(465, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy472; - if (yych == 't') goto yy472; - goto yy166; + if (yych == 'E') goto yy528; + if (yych == 'e') goto yy528; + goto yy44; yy466: YYDEBUG(466, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy529; + if (yych == 'i') goto yy529; + goto yy44; +yy467: + YYDEBUG(467, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy467: - YYDEBUG(467, *YYCURSOR); + YYDEBUG(468, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy466; - goto yy166; + if (yych == '\t') goto yy467; + goto yy82; } else { - if (yych <= ' ') goto yy466; - if (yych != ')') goto yy166; + if (yych <= ' ') goto yy467; + if (yych == ')') goto yy530; + goto yy82; } - YYDEBUG(468, *YYCURSOR); - ++YYCURSOR; +yy469: YYDEBUG(469, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1341 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INT_CAST); -} -#line 5225 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'Y') goto yy532; + if (yych == 'y') goto yy532; + goto yy82; yy470: YYDEBUG(470, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy560; - if (yych == 'g') goto yy560; - goto yy166; -yy471: - YYDEBUG(471, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy561; - if (yych == 'c') goto yy561; - goto yy166; -yy472: - YYDEBUG(472, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(473, *YYCURSOR); +yy471: + YYDEBUG(471, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy472; - goto yy166; + if (yych == '\t') goto yy470; + goto yy82; } else { - if (yych <= ' ') goto yy472; - if (yych == ')') goto yy562; - goto yy166; + if (yych <= ' ') goto yy470; + if (yych != ')') goto yy82; } + YYDEBUG(472, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(473, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1361 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_BOOL_CAST); +} +#line 5021 "Zend/zend_language_scanner.c" yy474: YYDEBUG(474, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy564; - if (yych == 'n') goto yy564; - goto yy166; + if (yych == 'A') goto yy534; + if (yych == 'a') goto yy534; + goto yy82; yy475: YYDEBUG(475, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy565; - if (yych == 't') goto yy565; - goto yy166; + if (yych == 'E') goto yy388; + if (yych == 'e') goto yy388; + goto yy82; yy476: YYDEBUG(476, *YYCURSOR); - ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'E') goto yy535; + if (yych == 'e') goto yy535; + goto yy82; yy477: YYDEBUG(477, *YYCURSOR); - if (yych <= 'Z') { - if (yych <= '/') { - if (yych == '"') goto yy567; - goto yy166; - } else { - if (yych <= '9') goto yy476; - if (yych <= '@') goto yy166; - goto yy476; - } - } else { - if (yych <= '`') { - if (yych == '_') goto yy476; - goto yy166; - } else { - if (yych <= 'z') goto yy476; - if (yych <= 0x7F) goto yy166; - goto yy476; - } - } + yych = *++YYCURSOR; + if (yych == 'T') goto yy536; + if (yych == 't') goto yy536; + goto yy82; yy478: YYDEBUG(478, *YYCURSOR); ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; -yy479: YYDEBUG(479, *YYCURSOR); - if (yych <= 'Z') { - if (yych <= '/') { - if (yych == '\'') goto yy567; - goto yy166; - } else { - if (yych <= '9') goto yy478; - if (yych <= '@') goto yy166; - goto yy478; - } - } else { - if (yych <= '`') { - if (yych == '_') goto yy478; - goto yy166; - } else { - if (yych <= 'z') goto yy478; - if (yych <= 0x7F) goto yy166; - goto yy478; - } - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 1345 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DOUBLE_CAST); +} +#line 5055 "Zend/zend_language_scanner.c" yy480: YYDEBUG(480, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'G') goto yy532; + if (yych == 'g') goto yy532; + goto yy82; yy481: YYDEBUG(481, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2079 "Zend/zend_language_scanner.l" - { - char *s; - int bprefix = (yytext[0] != '<') ? 1 : 0; - zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label)); - - CG(zend_lineno)++; - heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0); - s = yytext+bprefix+3; - while ((*s == ' ') || (*s == '\t')) { - s++; - heredoc_label->length--; - } - - if (*s == '\'') { - s++; - heredoc_label->length -= 2; - - BEGIN(ST_NOWDOC); - } else { - if (*s == '"') { - s++; - heredoc_label->length -= 2; - } - - BEGIN(ST_HEREDOC); - } - - heredoc_label->label = estrndup(s, heredoc_label->length); - - /* Check for ending label on the next line */ - if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) { - YYCTYPE *end = YYCURSOR + heredoc_label->length; - - if (*end == ';') { - end++; - } - - if (*end == '\n' || *end == '\r') { - BEGIN(ST_END_HEREDOC); - } - } - - zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label); - - RETURN_TOKEN(T_START_HEREDOC); -} -#line 5369 "Zend/zend_language_scanner.c" -yy482: + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(482, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy480; - goto yy481; + if (yych <= 0x1F) { + if (yych == '\t') goto yy481; + goto yy82; + } else { + if (yych <= ' ') goto yy481; + if (yych == ')') goto yy538; + goto yy82; + } yy483: YYDEBUG(483, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy568; - if (yych == 'a') goto yy568; - goto yy128; + if (yych == '\n') goto yy396; + if (yych == '\r') goto yy398; + goto yy82; yy484: YYDEBUG(484, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'C') goto yy540; + if (yych == 'c') goto yy540; + goto yy44; +yy485: YYDEBUG(485, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1453 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ARRAY); -} -#line 5393 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'L') goto yy541; + if (yych == 'l') goto yy541; + goto yy44; yy486: YYDEBUG(486, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'U') goto yy542; + if (yych == 'u') goto yy542; + goto yy44; +yy487: YYDEBUG(487, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1247 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_BREAK); -} -#line 5406 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'E') goto yy543; + if (yych == 'e') goto yy543; + goto yy44; yy488: YYDEBUG(488, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy569; - if (yych == 'b') goto yy569; - goto yy128; + if (yych == 'T') goto yy545; + if (yych == 't') goto yy545; + goto yy44; yy489: YYDEBUG(489, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; } YYDEBUG(490, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1159 "Zend/zend_language_scanner.l" +#line 1175 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_CATCH); + RETURN_TOKEN(T_ELSEIF); } -#line 5425 "Zend/zend_language_scanner.c" +#line 5124 "Zend/zend_language_scanner.c" yy491: YYDEBUG(491, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'L') goto yy547; + if (yych == 'l') goto yy547; + goto yy44; +yy492: YYDEBUG(492, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1267 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CLASS); -} -#line 5438 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych <= '^') { + if (yych <= '@') { + if (yych <= '/') goto yy493; + if (yych <= '9') goto yy43; + } else { + if (yych == 'E') goto yy548; + if (yych <= 'Z') goto yy43; + } + } else { + if (yych <= 'd') { + if (yych != '`') goto yy43; + } else { + if (yych <= 'e') goto yy548; + if (yych <= 'z') goto yy43; + if (yych >= 0x80) goto yy43; + } + } yy493: YYDEBUG(493, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(494, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1333 "Zend/zend_language_scanner.l" +#line 1203 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_CLONE); + RETURN_TOKEN(T_ENDFOR); } -#line 5451 "Zend/zend_language_scanner.c" +#line 5158 "Zend/zend_language_scanner.c" +yy494: + YYDEBUG(494, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy549; + if (yych == 't') goto yy549; + goto yy44; yy495: YYDEBUG(495, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'L') goto yy550; + if (yych == 'l') goto yy550; + goto yy44; +yy496: YYDEBUG(496, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1137 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CONST); -} -#line 5464 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'S') goto yy551; + if (yych == 's') goto yy551; + goto yy44; yy497: YYDEBUG(497, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy570; - if (yych == 'n') goto yy570; - goto yy128; + if (yych == 'Y') goto yy553; + if (yych == 'y') goto yy553; + goto yy44; yy498: YYDEBUG(498, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy571; - if (yych == 'r') goto yy571; - goto yy128; + if (yych == 'H') goto yy555; + if (yych == 'h') goto yy555; + goto yy44; yy499: YYDEBUG(499, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy572; - if (yych == 'l') goto yy572; - goto yy128; + if (yych == 'O') goto yy557; + if (yych == 'o') goto yy557; + goto yy44; yy500: YYDEBUG(500, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy573; - if (yych == 'f') goto yy573; - goto yy128; -yy501: - YYDEBUG(501, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(502, *YYCURSOR); + YYDEBUG(501, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1409 "Zend/zend_language_scanner.l" +#line 1401 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_EMPTY); + RETURN_TOKEN(T_GLOBAL); } -#line 5501 "Zend/zend_language_scanner.c" +#line 5207 "Zend/zend_language_scanner.c" +yy502: + YYDEBUG(502, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy558; + if (yych == 'e') goto yy558; + goto yy44; yy503: YYDEBUG(503, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy575; - if (yych == 'c') goto yy575; - goto yy128; + if (yych == 'E') goto yy559; + if (yych == 'e') goto yy559; + goto yy44; yy504: YYDEBUG(504, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy576; - if (yych == 'r') goto yy576; - goto yy128; + if (yych == 'C') goto yy561; + if (yych == 'c') goto yy561; + goto yy44; yy505: YYDEBUG(505, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'D') goto yy562; + if (yych == 'd') goto yy562; + goto yy44; +yy506: YYDEBUG(506, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1179 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDIF); -} -#line 5526 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'A') goto yy563; + if (yych == 'a') goto yy563; + goto yy44; yy507: YYDEBUG(507, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy578; - if (yych == 'i') goto yy578; - goto yy128; + if (yych == 'A') goto yy564; + if (yych == 'a') goto yy564; + goto yy44; yy508: YYDEBUG(508, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy579; - if (yych == 'i') goto yy579; - goto yy128; + if (yych == 'E') goto yy565; + if (yych == 'e') goto yy565; + goto yy44; yy509: YYDEBUG(509, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy580; - if (yych == 'd') goto yy580; - goto yy128; + if (yych == 'T') goto yy567; + if (yych == 't') goto yy567; + goto yy44; yy510: YYDEBUG(510, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '^') { - if (yych <= '@') { - if (yych <= '/') goto yy511; - if (yych <= '9') goto yy127; - } else { - if (yych == 'L') goto yy581; - if (yych <= 'Z') goto yy127; - } - } else { - if (yych <= 'k') { - if (yych != '`') goto yy127; - } else { - if (yych <= 'l') goto yy581; - if (yych <= 'z') goto yy127; - if (yych >= 0x80) goto yy127; - } + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; } -yy511: YYDEBUG(511, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1425 "Zend/zend_language_scanner.l" +#line 1437 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_FINAL); + RETURN_TOKEN(T_PUBLIC); } -#line 5572 "Zend/zend_language_scanner.c" +#line 5268 "Zend/zend_language_scanner.c" yy512: YYDEBUG(512, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy582; - if (yych == 'c') goto yy582; - goto yy128; + if (yych == 'E') goto yy568; + if (yych == 'e') goto yy568; + goto yy44; yy513: YYDEBUG(513, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy583; - if (yych == 'i') goto yy583; - goto yy128; -yy514: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(514, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy584; - if (yych == 'l') goto yy584; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1141 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_RETURN); +} +#line 5287 "Zend/zend_language_scanner.c" yy515: YYDEBUG(515, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy586; - if (yych == 'm') goto yy586; - goto yy128; -yy516: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(516, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy587; - if (yych == 'd') goto yy587; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1417 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_STATIC); +} +#line 5300 "Zend/zend_language_scanner.c" yy517: YYDEBUG(517, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy588; - if (yych == 'n') goto yy588; - goto yy128; -yy518: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(518, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy589; - if (yych == 'a') goto yy589; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1231 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_SWITCH); +} +#line 5313 "Zend/zend_language_scanner.c" yy519: YYDEBUG(519, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy590; - if (yych == 'f') goto yy590; - goto yy128; -yy520: - YYDEBUG(520, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + YYFILL(5); + yych = *YYCURSOR; + YYDEBUG(520, *YYCURSOR); + if (yych <= 0x1F) { + if (yych <= '\n') { + if (yych <= 0x08) goto yy82; + goto yy519; + } else { + if (yych == '\r') goto yy519; + goto yy82; + } + } else { + if (yych <= 'F') { + if (yych <= ' ') goto yy519; + if (yych <= 'E') goto yy82; + goto yy570; + } else { + if (yych == 'f') goto yy570; + goto yy82; + } } +yy521: YYDEBUG(521, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1405 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ISSET); -} -#line 5633 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'S') goto yy571; + if (yych == 's') goto yy571; + goto yy44; yy522: YYDEBUG(522, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy591; - if (yych == 'p') goto yy591; - goto yy128; + if (yych == '_') goto yy572; + goto yy44; yy523: YYDEBUG(523, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == '_') goto yy574; + goto yy44; +yy524: YYDEBUG(524, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1263 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PRINT); -} -#line 5652 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'T') goto yy575; + if (yych == 't') goto yy575; + goto yy44; yy525: YYDEBUG(525, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy592; - if (yych == 't') goto yy592; - goto yy128; + if (yych == '_') goto yy576; + goto yy44; yy526: YYDEBUG(526, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy593; - if (yych == 'c') goto yy593; - goto yy128; + if (yych == '_') goto yy577; + goto yy44; yy527: YYDEBUG(527, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy594; - if (yych == 'c') goto yy594; - goto yy128; + if (yych == 'O') goto yy578; + if (yych == 'o') goto yy578; + goto yy44; yy528: YYDEBUG(528, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy596; - if (yych == 'r') goto yy596; - goto yy128; + if (yych == 'S') goto yy579; + if (yych == 's') goto yy579; + goto yy44; yy529: YYDEBUG(529, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy597; - if (yych == 'n') goto yy597; - goto yy128; + if (yych == 'T') goto yy580; + if (yych == 't') goto yy580; + goto yy44; yy530: YYDEBUG(530, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy599; - if (yych == 'c') goto yy599; - goto yy128; -yy531: + ++YYCURSOR; YYDEBUG(531, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy601; - if (yych == 'h') goto yy601; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1353 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ARRAY_CAST); +} +#line 5397 "Zend/zend_language_scanner.c" yy532: YYDEBUG(532, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(533, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1167 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_THROW); -} -#line 5707 "Zend/zend_language_scanner.c" + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy82; + } else { + if (yych <= ' ') goto yy532; + if (yych == ')') goto yy581; + goto yy82; + } yy534: YYDEBUG(534, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'N') goto yy470; + if (yych == 'n') goto yy470; + goto yy82; +yy535: YYDEBUG(535, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1275 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_TRAIT); -} -#line 5720 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'R') goto yy382; + if (yych == 'r') goto yy382; + goto yy82; yy536: YYDEBUG(536, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(537, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1441 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_UNSET); -} -#line 5733 "Zend/zend_language_scanner.c" + if (yych <= 0x1F) { + if (yych == '\t') goto yy536; + goto yy82; + } else { + if (yych <= ' ') goto yy536; + if (yych == ')') goto yy583; + goto yy82; + } yy538: YYDEBUG(538, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } YYDEBUG(539, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1187 "Zend/zend_language_scanner.l" +#line 1365 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_WHILE); + RETURN_TOKEN(T_UNSET_CAST); } -#line 5746 "Zend/zend_language_scanner.c" +#line 5447 "Zend/zend_language_scanner.c" yy540: YYDEBUG(540, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy127; - } - if (yych <= '\f') { - if (yych <= 0x08) goto yy541; - if (yych <= '\n') goto yy603; - } else { - if (yych <= '\r') goto yy603; - if (yych == ' ') goto yy603; - } + yych = *++YYCURSOR; + if (yych == 'T') goto yy585; + if (yych == 't') goto yy585; + goto yy44; yy541: YYDEBUG(541, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1151 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_YIELD); -} -#line 5768 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'E') goto yy587; + if (yych == 'e') goto yy587; + goto yy44; yy542: YYDEBUG(542, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy605; - if (yych == 's') goto yy605; - goto yy128; + if (yych == 'E') goto yy589; + if (yych == 'e') goto yy589; + goto yy44; yy543: YYDEBUG(543, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy606; - goto yy128; -yy544: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(544, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy607; - if (yych == 'e') goto yy607; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1215 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DECLARE); +} +#line 5478 "Zend/zend_language_scanner.c" yy545: YYDEBUG(545, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy608; - if (yych == 'c') goto yy608; - goto yy128; -yy546: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(546, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy609; - if (yych == 't') goto yy609; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1243 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DEFAULT); +} +#line 5491 "Zend/zend_language_scanner.c" yy547: YYDEBUG(547, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy610; - if (yych == 'e') goto yy610; - goto yy128; + if (yych == 'A') goto yy591; + if (yych == 'a') goto yy591; + goto yy44; yy548: YYDEBUG(548, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy611; - if (yych == 'h') goto yy611; - goto yy128; + if (yych == 'A') goto yy592; + if (yych == 'a') goto yy592; + goto yy44; yy549: YYDEBUG(549, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy612; - if (yych == 'e') goto yy612; - goto yy128; + if (yych == 'C') goto yy593; + if (yych == 'c') goto yy593; + goto yy44; yy550: YYDEBUG(550, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy613; - if (yych == 'i') goto yy613; - goto yy128; + if (yych == 'E') goto yy594; + if (yych == 'e') goto yy594; + goto yy44; yy551: YYDEBUG(551, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(552, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy551; - goto yy166; - } else { - if (yych <= ' ') goto yy551; - if (yych == ')') goto yy614; - goto yy166; + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; } + YYDEBUG(552, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1279 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_EXTENDS); +} +#line 5528 "Zend/zend_language_scanner.c" yy553: YYDEBUG(553, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy616; - if (yych == 'y') goto yy616; - goto yy166; -yy554: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(554, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1163 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_FINALLY); +} +#line 5541 "Zend/zend_language_scanner.c" yy555: YYDEBUG(555, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy554; - goto yy166; - } else { - if (yych <= ' ') goto yy554; - if (yych != ')') goto yy166; + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; } YYDEBUG(556, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(557, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1361 "Zend/zend_language_scanner.l" +#line 1207 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_BOOL_CAST); + RETURN_TOKEN(T_FOREACH); } -#line 5864 "Zend/zend_language_scanner.c" +#line 5554 "Zend/zend_language_scanner.c" +yy557: + YYDEBUG(557, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy596; + if (yych == 'n') goto yy596; + goto yy44; yy558: YYDEBUG(558, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy618; - if (yych == 'a') goto yy618; - goto yy166; + if (yych == 'N') goto yy598; + if (yych == 'n') goto yy598; + goto yy44; yy559: YYDEBUG(559, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy472; - if (yych == 'e') goto yy472; - goto yy166; + if (yych <= '^') { + if (yych <= '9') { + if (yych >= '0') goto yy43; + } else { + if (yych <= '@') goto yy560; + if (yych <= 'Z') goto yy43; + } + } else { + if (yych <= '`') { + if (yych <= '_') goto yy599; + } else { + if (yych <= 'z') goto yy43; + if (yych >= 0x80) goto yy43; + } + } yy560: YYDEBUG(560, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy619; - if (yych == 'e') goto yy619; - goto yy166; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1373 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INCLUDE); +} +#line 5592 "Zend/zend_language_scanner.c" yy561: YYDEBUG(561, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy620; - if (yych == 't') goto yy620; - goto yy166; + if (yych == 'E') goto yy600; + if (yych == 'e') goto yy600; + goto yy44; yy562: YYDEBUG(562, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'O') goto yy601; + if (yych == 'o') goto yy601; + goto yy44; +yy563: YYDEBUG(563, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1345 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DOUBLE_CAST); -} -#line 5898 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'C') goto yy602; + if (yych == 'c') goto yy602; + goto yy44; yy564: YYDEBUG(564, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy616; - if (yych == 'g') goto yy616; - goto yy166; + if (yych == 'C') goto yy603; + if (yych == 'c') goto yy603; + goto yy44; yy565: YYDEBUG(565, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(566, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy166; - } else { - if (yych <= ' ') goto yy565; - if (yych == ')') goto yy622; - goto yy166; + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; } + YYDEBUG(566, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1429 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_PRIVATE); +} +#line 5629 "Zend/zend_language_scanner.c" yy567: YYDEBUG(567, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy480; - if (yych == '\r') goto yy482; - goto yy166; + if (yych == 'E') goto yy604; + if (yych == 'e') goto yy604; + goto yy44; yy568: YYDEBUG(568, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy624; - if (yych == 'c') goto yy624; - goto yy128; + if (yych <= '^') { + if (yych <= '9') { + if (yych >= '0') goto yy43; + } else { + if (yych <= '@') goto yy569; + if (yych <= 'Z') goto yy43; + } + } else { + if (yych <= '`') { + if (yych <= '_') goto yy605; + } else { + if (yych <= 'z') goto yy43; + if (yych >= 0x80) goto yy43; + } + } yy569: YYDEBUG(569, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy625; - if (yych == 'l') goto yy625; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1381 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_REQUIRE); +} +#line 5661 "Zend/zend_language_scanner.c" yy570: YYDEBUG(570, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy626; - if (yych == 'u') goto yy626; - goto yy128; + if (yych == 'R') goto yy606; + if (yych == 'r') goto yy606; + goto yy82; yy571: YYDEBUG(571, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy627; - if (yych == 'e') goto yy627; - goto yy128; + if (yych == '_') goto yy607; + goto yy44; yy572: YYDEBUG(572, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy629; - if (yych == 't') goto yy629; - goto yy128; -yy573: - YYDEBUG(573, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(574, *YYCURSOR); + YYDEBUG(573, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1175 "Zend/zend_language_scanner.l" +#line 1773 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_ELSEIF); + RETURN_TOKEN(T_DIR); } -#line 5967 "Zend/zend_language_scanner.c" +#line 5685 "Zend/zend_language_scanner.c" +yy574: + YYDEBUG(574, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy608; + goto yy44; yy575: YYDEBUG(575, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy631; - if (yych == 'l') goto yy631; - goto yy128; + if (yych == 'I') goto yy610; + if (yych == 'i') goto yy610; + goto yy44; yy576: YYDEBUG(576, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '^') { - if (yych <= '@') { - if (yych <= '/') goto yy577; - if (yych <= '9') goto yy127; - } else { - if (yych == 'E') goto yy632; - if (yych <= 'Z') goto yy127; - } - } else { - if (yych <= 'd') { - if (yych != '`') goto yy127; - } else { - if (yych <= 'e') goto yy632; - if (yych <= 'z') goto yy127; - if (yych >= 0x80) goto yy127; - } - } + yych = *++YYCURSOR; + if (yych == 'C') goto yy611; + if (yych == 'c') goto yy611; + goto yy44; yy577: YYDEBUG(577, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1203 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDFOR); -} -#line 6001 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == '_') goto yy612; + goto yy44; yy578: YYDEBUG(578, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy633; - if (yych == 't') goto yy633; - goto yy128; + if (yych == 'D') goto yy614; + if (yych == 'd') goto yy614; + goto yy44; yy579: YYDEBUG(579, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy634; - if (yych == 'l') goto yy634; - goto yy128; + if (yych == 'P') goto yy615; + if (yych == 'p') goto yy615; + goto yy44; yy580: YYDEBUG(580, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy635; - if (yych == 's') goto yy635; - goto yy128; + if (yych == '_') goto yy616; + goto yy44; yy581: YYDEBUG(581, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy637; - if (yych == 'y') goto yy637; - goto yy128; -yy582: + ++YYCURSOR; YYDEBUG(582, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy639; - if (yych == 'h') goto yy639; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1349 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_STRING_CAST); +} +#line 5734 "Zend/zend_language_scanner.c" yy583: YYDEBUG(583, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy641; - if (yych == 'o') goto yy641; - goto yy128; -yy584: - YYDEBUG(584, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(585, *YYCURSOR); + YYDEBUG(584, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1401 "Zend/zend_language_scanner.l" +#line 1357 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_GLOBAL); + RETURN_TOKEN(T_OBJECT_CAST); } -#line 6050 "Zend/zend_language_scanner.c" -yy586: - YYDEBUG(586, *YYCURSOR); +#line 5744 "Zend/zend_language_scanner.c" +yy585: + YYDEBUG(585, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy642; - if (yych == 'e') goto yy642; - goto yy128; + if (yybm[0+yych] & 16) { + goto yy43; + } + YYDEBUG(586, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1421 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ABSTRACT); +} +#line 5757 "Zend/zend_language_scanner.c" yy587: YYDEBUG(587, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy643; - if (yych == 'e') goto yy643; - goto yy128; -yy588: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(588, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy645; - if (yych == 'c') goto yy645; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1457 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_CALLABLE); +} +#line 5770 "Zend/zend_language_scanner.c" yy589: YYDEBUG(589, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy646; - if (yych == 'd') goto yy646; - goto yy128; -yy590: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(590, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy647; - if (yych == 'a') goto yy647; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1251 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_CONTINUE); +} +#line 5783 "Zend/zend_language_scanner.c" yy591: YYDEBUG(591, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy648; - if (yych == 'a') goto yy648; - goto yy128; + if (yych == 'R') goto yy617; + if (yych == 'r') goto yy617; + goto yy44; yy592: YYDEBUG(592, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy649; - if (yych == 'e') goto yy649; - goto yy128; + if (yych == 'C') goto yy618; + if (yych == 'c') goto yy618; + goto yy44; yy593: YYDEBUG(593, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy651; - if (yych == 't') goto yy651; - goto yy128; + if (yych == 'H') goto yy619; + if (yych == 'h') goto yy619; + goto yy44; yy594: YYDEBUG(594, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; } YYDEBUG(595, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1437 "Zend/zend_language_scanner.l" +#line 1191 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_PUBLIC); + RETURN_TOKEN(T_ENDWHILE); } -#line 6111 "Zend/zend_language_scanner.c" +#line 5814 "Zend/zend_language_scanner.c" yy596: YYDEBUG(596, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy652; - if (yych == 'e') goto yy652; - goto yy128; -yy597: - YYDEBUG(597, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(598, *YYCURSOR); + YYDEBUG(597, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1141 "Zend/zend_language_scanner.l" +#line 1133 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_RETURN); + RETURN_TOKEN(T_FUNCTION); } -#line 6130 "Zend/zend_language_scanner.c" +#line 5827 "Zend/zend_language_scanner.c" +yy598: + YYDEBUG(598, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy621; + if (yych == 't') goto yy621; + goto yy44; yy599: YYDEBUG(599, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'O') goto yy622; + if (yych == 'o') goto yy622; + goto yy44; +yy600: YYDEBUG(600, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1417 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_STATIC); -} -#line 6143 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'O') goto yy623; + if (yych == 'o') goto yy623; + goto yy44; yy601: YYDEBUG(601, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'F') goto yy624; + if (yych == 'f') goto yy624; + goto yy44; +yy602: YYDEBUG(602, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1231 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SWITCH); -} -#line 6156 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'E') goto yy626; + if (yych == 'e') goto yy626; + goto yy44; yy603: YYDEBUG(603, *YYCURSOR); - ++YYCURSOR; - YYFILL(5); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'E') goto yy628; + if (yych == 'e') goto yy628; + goto yy44; +yy604: YYDEBUG(604, *YYCURSOR); - if (yych <= 0x1F) { - if (yych <= '\n') { - if (yych <= 0x08) goto yy166; - goto yy603; - } else { - if (yych == '\r') goto yy603; - goto yy166; - } - } else { - if (yych <= 'F') { - if (yych <= ' ') goto yy603; - if (yych <= 'E') goto yy166; - goto yy654; - } else { - if (yych == 'f') goto yy654; - goto yy166; - } - } + yych = *++YYCURSOR; + if (yych == 'D') goto yy630; + if (yych == 'd') goto yy630; + goto yy44; yy605: YYDEBUG(605, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy655; - if (yych == 's') goto yy655; - goto yy128; + if (yych == 'O') goto yy632; + if (yych == 'o') goto yy632; + goto yy44; yy606: YYDEBUG(606, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy656; - goto yy128; + if (yych == 'O') goto yy633; + if (yych == 'o') goto yy633; + goto yy82; yy607: YYDEBUG(607, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy658; - goto yy128; + if (yych == '_') goto yy634; + goto yy44; yy608: YYDEBUG(608, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy659; - if (yych == 't') goto yy659; - goto yy128; -yy609: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(609, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy660; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1769 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_FILE); +} +#line 5899 "Zend/zend_language_scanner.c" yy610: YYDEBUG(610, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy661; - goto yy128; + if (yych == 'O') goto yy636; + if (yych == 'o') goto yy636; + goto yy44; yy611: YYDEBUG(611, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy662; - if (yych == 'o') goto yy662; - goto yy128; + if (yych == 'O') goto yy637; + if (yych == 'o') goto yy637; + goto yy44; yy612: YYDEBUG(612, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy663; - if (yych == 's') goto yy663; - goto yy128; -yy613: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(613, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy664; - if (yych == 't') goto yy664; - goto yy128; -yy614: - YYDEBUG(614, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(615, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1353 "Zend/zend_language_scanner.l" +#line 1765 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_ARRAY_CAST); + RETURN_TOKEN(T_LINE); } -#line 6240 "Zend/zend_language_scanner.c" +#line 5924 "Zend/zend_language_scanner.c" +yy614: + YYDEBUG(614, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy638; + goto yy44; +yy615: + YYDEBUG(615, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy639; + if (yych == 'a') goto yy639; + goto yy44; yy616: YYDEBUG(616, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == '_') goto yy640; + goto yy44; +yy617: YYDEBUG(617, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy616; - goto yy166; - } else { - if (yych <= ' ') goto yy616; - if (yych == ')') goto yy665; - goto yy166; - } + yych = *++YYCURSOR; + if (yych == 'E') goto yy642; + if (yych == 'e') goto yy642; + goto yy44; yy618: YYDEBUG(618, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy554; - if (yych == 'n') goto yy554; - goto yy166; + if (yych == 'H') goto yy644; + if (yych == 'h') goto yy644; + goto yy44; yy619: YYDEBUG(619, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy466; - if (yych == 'r') goto yy466; - goto yy166; -yy620: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(620, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1235 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ENDSWITCH); +} +#line 5965 "Zend/zend_language_scanner.c" +yy621: YYDEBUG(621, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy620; - goto yy166; - } else { - if (yych <= ' ') goto yy620; - if (yych == ')') goto yy667; - goto yy166; - } + yych = *++YYCURSOR; + if (yych == 'S') goto yy646; + if (yych == 's') goto yy646; + goto yy44; yy622: YYDEBUG(622, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'N') goto yy648; + if (yych == 'n') goto yy648; + goto yy44; +yy623: YYDEBUG(623, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1365 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_UNSET_CAST); -} -#line 6290 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'F') goto yy649; + if (yych == 'f') goto yy649; + goto yy44; yy624: YYDEBUG(624, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy669; - if (yych == 't') goto yy669; - goto yy128; -yy625: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(625, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy671; - if (yych == 'e') goto yy671; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1397 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INSTEADOF); +} +#line 5996 "Zend/zend_language_scanner.c" yy626: YYDEBUG(626, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy673; - if (yych == 'e') goto yy673; - goto yy128; -yy627: - YYDEBUG(627, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(628, *YYCURSOR); + YYDEBUG(627, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1215 "Zend/zend_language_scanner.l" +#line 1271 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_DECLARE); + RETURN_TOKEN(T_INTERFACE); } -#line 6321 "Zend/zend_language_scanner.c" -yy629: - YYDEBUG(629, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; +#line 6009 "Zend/zend_language_scanner.c" +yy628: + YYDEBUG(628, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(630, *YYCURSOR); + YYDEBUG(629, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1243 "Zend/zend_language_scanner.l" +#line 1389 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_DEFAULT); + RETURN_TOKEN(T_NAMESPACE); } -#line 6334 "Zend/zend_language_scanner.c" -yy631: - YYDEBUG(631, *YYCURSOR); +#line 6022 "Zend/zend_language_scanner.c" +yy630: + YYDEBUG(630, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy675; - if (yych == 'a') goto yy675; - goto yy128; + if (yybm[0+yych] & 16) { + goto yy43; + } + YYDEBUG(631, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1433 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_PROTECTED); +} +#line 6035 "Zend/zend_language_scanner.c" yy632: YYDEBUG(632, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy676; - if (yych == 'a') goto yy676; - goto yy128; + if (yych == 'N') goto yy651; + if (yych == 'n') goto yy651; + goto yy44; yy633: YYDEBUG(633, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy677; - if (yych == 'c') goto yy677; - goto yy128; + if (yych == 'M') goto yy652; + if (yych == 'm') goto yy652; + goto yy82; yy634: YYDEBUG(634, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy678; - if (yych == 'e') goto yy678; - goto yy128; -yy635: - YYDEBUG(635, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(636, *YYCURSOR); + YYDEBUG(635, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1279 "Zend/zend_language_scanner.l" +#line 1749 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_EXTENDS); + RETURN_TOKEN(T_CLASS_C); } -#line 6371 "Zend/zend_language_scanner.c" +#line 6060 "Zend/zend_language_scanner.c" +yy636: + YYDEBUG(636, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy653; + if (yych == 'n') goto yy653; + goto yy44; yy637: YYDEBUG(637, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'M') goto yy654; + if (yych == 'm') goto yy654; + goto yy44; +yy638: YYDEBUG(638, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1163 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FINALLY); -} -#line 6384 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == '_') goto yy655; + goto yy44; yy639: YYDEBUG(639, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } + yych = *++YYCURSOR; + if (yych == 'C') goto yy657; + if (yych == 'c') goto yy657; + goto yy44; +yy640: YYDEBUG(640, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; + } + YYDEBUG(641, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1207 "Zend/zend_language_scanner.l" +#line 1753 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_FOREACH); + RETURN_TOKEN(T_TRAIT_C); } -#line 6397 "Zend/zend_language_scanner.c" -yy641: - YYDEBUG(641, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy680; - if (yych == 'n') goto yy680; - goto yy128; +#line 6096 "Zend/zend_language_scanner.c" yy642: YYDEBUG(642, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy682; - if (yych == 'n') goto yy682; - goto yy128; -yy643: - YYDEBUG(643, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '^') { - if (yych <= '9') { - if (yych >= '0') goto yy127; - } else { - if (yych <= '@') goto yy644; - if (yych <= 'Z') goto yy127; - } - } else { - if (yych <= '`') { - if (yych <= '_') goto yy683; - } else { - if (yych <= 'z') goto yy127; - if (yych >= 0x80) goto yy127; - } + if (yybm[0+yych] & 16) { + goto yy43; } + YYDEBUG(643, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1219 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ENDDECLARE); +} +#line 6109 "Zend/zend_language_scanner.c" yy644: YYDEBUG(644, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; + } + YYDEBUG(645, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1373 "Zend/zend_language_scanner.l" +#line 1211 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_INCLUDE); + RETURN_TOKEN(T_ENDFOREACH); } -#line 6435 "Zend/zend_language_scanner.c" -yy645: - YYDEBUG(645, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy684; - if (yych == 'e') goto yy684; - goto yy128; +#line 6122 "Zend/zend_language_scanner.c" yy646: YYDEBUG(646, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy685; - if (yych == 'o') goto yy685; - goto yy128; -yy647: + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(647, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy686; - if (yych == 'c') goto yy686; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1283 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IMPLEMENTS); +} +#line 6135 "Zend/zend_language_scanner.c" yy648: YYDEBUG(648, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy687; - if (yych == 'c') goto yy687; - goto yy128; + if (yych == 'C') goto yy658; + if (yych == 'c') goto yy658; + goto yy44; yy649: YYDEBUG(649, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; } YYDEBUG(650, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1429 "Zend/zend_language_scanner.l" +#line 1223 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_PRIVATE); + RETURN_TOKEN(T_INSTANCEOF); } -#line 6472 "Zend/zend_language_scanner.c" +#line 6154 "Zend/zend_language_scanner.c" yy651: YYDEBUG(651, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy688; - if (yych == 'e') goto yy688; - goto yy128; + if (yych == 'C') goto yy659; + if (yych == 'c') goto yy659; + goto yy44; yy652: YYDEBUG(652, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '^') { + yych = *++YYCURSOR; + if (yych <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy127; + if (yych <= '/') goto yy660; + goto yy82; } else { - if (yych <= '@') goto yy653; - if (yych <= 'Z') goto yy127; + if (yych <= '@') goto yy660; + if (yych <= 'Z') goto yy82; + goto yy660; } } else { if (yych <= '`') { - if (yych <= '_') goto yy689; + if (yych <= '_') goto yy82; + goto yy660; } else { - if (yych <= 'z') goto yy127; - if (yych >= 0x80) goto yy127; + if (yych <= 'z') goto yy82; + if (yych <= 0x7F) goto yy660; + goto yy82; } } yy653: YYDEBUG(653, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1381 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_REQUIRE); -} -#line 6504 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == '_') goto yy662; + goto yy44; yy654: YYDEBUG(654, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy690; - if (yych == 'r') goto yy690; - goto yy166; + if (yych == 'P') goto yy663; + if (yych == 'p') goto yy663; + goto yy44; yy655: YYDEBUG(655, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy691; - goto yy128; -yy656: - YYDEBUG(656, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(657, *YYCURSOR); + YYDEBUG(656, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1772 "Zend/zend_language_scanner.l" +#line 1761 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_DIR); + RETURN_TOKEN(T_METHOD_C); } -#line 6528 "Zend/zend_language_scanner.c" +#line 6206 "Zend/zend_language_scanner.c" +yy657: + YYDEBUG(657, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy664; + if (yych == 'e') goto yy664; + goto yy44; yy658: YYDEBUG(658, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy692; - goto yy128; + if (yych == 'E') goto yy665; + if (yych == 'e') goto yy665; + goto yy44; yy659: YYDEBUG(659, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy694; - if (yych == 'i') goto yy694; - goto yy128; + if (yych == 'E') goto yy667; + if (yych == 'e') goto yy667; + goto yy44; yy660: YYDEBUG(660, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy695; - if (yych == 'c') goto yy695; - goto yy128; -yy661: + ++YYCURSOR; YYDEBUG(661, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy696; - goto yy128; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1145 "Zend/zend_language_scanner.l" + { + yyless(yyleng - 1); + HANDLE_NEWLINES(yytext, yyleng); + RETURN_TOKEN(T_YIELD_FROM); +} +#line 6236 "Zend/zend_language_scanner.c" yy662: YYDEBUG(662, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy698; - if (yych == 'd') goto yy698; - goto yy128; + if (yych == '_') goto yy669; + goto yy44; yy663: YYDEBUG(663, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy699; - if (yych == 'p') goto yy699; - goto yy128; + if (yych == 'I') goto yy671; + if (yych == 'i') goto yy671; + goto yy44; yy664: YYDEBUG(664, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy700; - goto yy128; + if (yych == '_') goto yy672; + goto yy44; yy665: YYDEBUG(665, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; + } YYDEBUG(666, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1349 "Zend/zend_language_scanner.l" +#line 1377 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_STRING_CAST); + RETURN_TOKEN(T_INCLUDE_ONCE); } -#line 6577 "Zend/zend_language_scanner.c" +#line 6265 "Zend/zend_language_scanner.c" yy667: YYDEBUG(667, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(668, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1357 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_OBJECT_CAST); -} -#line 6587 "Zend/zend_language_scanner.c" -yy669: - YYDEBUG(669, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(670, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1421 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ABSTRACT); -} -#line 6600 "Zend/zend_language_scanner.c" -yy671: - YYDEBUG(671, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(672, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1457 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CALLABLE); -} -#line 6613 "Zend/zend_language_scanner.c" -yy673: - YYDEBUG(673, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(674, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1251 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CONTINUE); -} -#line 6626 "Zend/zend_language_scanner.c" -yy675: - YYDEBUG(675, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy701; - if (yych == 'r') goto yy701; - goto yy128; -yy676: - YYDEBUG(676, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy702; - if (yych == 'c') goto yy702; - goto yy128; -yy677: - YYDEBUG(677, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy703; - if (yych == 'h') goto yy703; - goto yy128; -yy678: - YYDEBUG(678, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(679, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1191 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDWHILE); -} -#line 6657 "Zend/zend_language_scanner.c" -yy680: - YYDEBUG(680, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(681, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1133 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FUNCTION); -} -#line 6670 "Zend/zend_language_scanner.c" -yy682: - YYDEBUG(682, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy705; - if (yych == 't') goto yy705; - goto yy128; -yy683: - YYDEBUG(683, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy706; - if (yych == 'o') goto yy706; - goto yy128; -yy684: - YYDEBUG(684, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy707; - if (yych == 'o') goto yy707; - goto yy128; -yy685: - YYDEBUG(685, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy708; - if (yych == 'f') goto yy708; - goto yy128; -yy686: - YYDEBUG(686, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy710; - if (yych == 'e') goto yy710; - goto yy128; -yy687: - YYDEBUG(687, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy712; - if (yych == 'e') goto yy712; - goto yy128; -yy688: - YYDEBUG(688, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy714; - if (yych == 'd') goto yy714; - goto yy128; -yy689: - YYDEBUG(689, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy716; - if (yych == 'o') goto yy716; - goto yy128; -yy690: - YYDEBUG(690, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy717; - if (yych == 'o') goto yy717; - goto yy166; -yy691: - YYDEBUG(691, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy718; - goto yy128; -yy692: - YYDEBUG(692, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(693, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1768 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FILE); -} -#line 6742 "Zend/zend_language_scanner.c" -yy694: - YYDEBUG(694, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy720; - if (yych == 'o') goto yy720; - goto yy128; -yy695: - YYDEBUG(695, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy721; - if (yych == 'o') goto yy721; - goto yy128; -yy696: - YYDEBUG(696, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(697, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1764 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_LINE); -} -#line 6767 "Zend/zend_language_scanner.c" -yy698: - YYDEBUG(698, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy722; - goto yy128; -yy699: - YYDEBUG(699, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy723; - if (yych == 'a') goto yy723; - goto yy128; -yy700: - YYDEBUG(700, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy724; - goto yy128; -yy701: - YYDEBUG(701, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy726; - if (yych == 'e') goto yy726; - goto yy128; -yy702: - YYDEBUG(702, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy728; - if (yych == 'h') goto yy728; - goto yy128; -yy703: - YYDEBUG(703, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(704, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1235 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDSWITCH); -} -#line 6808 "Zend/zend_language_scanner.c" -yy705: - YYDEBUG(705, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy730; - if (yych == 's') goto yy730; - goto yy128; -yy706: - YYDEBUG(706, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy732; - if (yych == 'n') goto yy732; - goto yy128; -yy707: - YYDEBUG(707, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy733; - if (yych == 'f') goto yy733; - goto yy128; -yy708: - YYDEBUG(708, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(709, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1397 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INSTEADOF); -} -#line 6839 "Zend/zend_language_scanner.c" -yy710: - YYDEBUG(710, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(711, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1271 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INTERFACE); -} -#line 6852 "Zend/zend_language_scanner.c" -yy712: - YYDEBUG(712, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(713, *YYCURSOR); + YYDEBUG(668, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1389 "Zend/zend_language_scanner.l" +#line 1385 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_NAMESPACE); + RETURN_TOKEN(T_REQUIRE_ONCE); } -#line 6865 "Zend/zend_language_scanner.c" -yy714: - YYDEBUG(714, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; +#line 6278 "Zend/zend_language_scanner.c" +yy669: + YYDEBUG(669, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(715, *YYCURSOR); + YYDEBUG(670, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1433 "Zend/zend_language_scanner.l" +#line 1757 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_PROTECTED); + RETURN_TOKEN(T_FUNC_C); } -#line 6878 "Zend/zend_language_scanner.c" -yy716: - YYDEBUG(716, *YYCURSOR); +#line 6291 "Zend/zend_language_scanner.c" +yy671: + YYDEBUG(671, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy735; - if (yych == 'n') goto yy735; - goto yy128; -yy717: - YYDEBUG(717, *YYCURSOR); + if (yych == 'L') goto yy673; + if (yych == 'l') goto yy673; + goto yy44; +yy672: + YYDEBUG(672, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy736; - if (yych == 'm') goto yy736; - goto yy166; -yy718: - YYDEBUG(718, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + if (yych == '_') goto yy674; + goto yy44; +yy673: + YYDEBUG(673, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy676; + if (yych == 'e') goto yy676; + goto yy44; +yy674: + YYDEBUG(674, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(719, *YYCURSOR); + YYDEBUG(675, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1748 "Zend/zend_language_scanner.l" +#line 1777 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_CLASS_C); + RETURN_TOKEN(T_NS_C); } -#line 6903 "Zend/zend_language_scanner.c" -yy720: - YYDEBUG(720, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy737; - if (yych == 'n') goto yy737; - goto yy128; -yy721: - YYDEBUG(721, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy738; - if (yych == 'm') goto yy738; - goto yy128; -yy722: - YYDEBUG(722, *YYCURSOR); +#line 6321 "Zend/zend_language_scanner.c" +yy676: + YYDEBUG(676, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy739; - goto yy128; -yy723: - YYDEBUG(723, *YYCURSOR); + if (yych == 'R') goto yy677; + if (yych != 'r') goto yy44; +yy677: + YYDEBUG(677, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy741; - if (yych == 'c') goto yy741; - goto yy128; -yy724: - YYDEBUG(724, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + if (yybm[0+yych] & 16) { + goto yy43; } - YYDEBUG(725, *YYCURSOR); + YYDEBUG(678, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1752 "Zend/zend_language_scanner.l" +#line 1413 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_TRAIT_C); + RETURN_TOKEN(T_HALT_COMPILER); } -#line 6939 "Zend/zend_language_scanner.c" -yy726: - YYDEBUG(726, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; +#line 6339 "Zend/zend_language_scanner.c" + } +/* *********************************** */ +yyc_ST_LOOKING_FOR_PROPERTY: + { + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 64, 0, 0, 64, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 64, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 128, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + }; + YYDEBUG(679, *YYCURSOR); + YYFILL(2); + yych = *YYCURSOR; + if (yybm[0+yych] & 64) { + goto yy683; } - YYDEBUG(727, *YYCURSOR); + if (yych <= '^') { + if (yych <= '-') { + if (yych >= '-') goto yy686; + } else { + if (yych <= '@') goto yy681; + if (yych <= 'Z') goto yy687; + } + } else { + if (yych <= '`') { + if (yych <= '_') goto yy687; + } else { + if (yych <= 'z') goto yy687; + if (yych >= 0x80) goto yy687; + } + } +yy681: + YYDEBUG(681, *YYCURSOR); + ++YYCURSOR; +yy682: + YYDEBUG(682, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1219 "Zend/zend_language_scanner.l" +#line 1307 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_ENDDECLARE); + yyless(0); + yy_pop_state(); + goto restart; } -#line 6952 "Zend/zend_language_scanner.c" -yy728: - YYDEBUG(728, *YYCURSOR); +#line 6411 "Zend/zend_language_scanner.c" +yy683: + YYDEBUG(683, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(684, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy683; } - YYDEBUG(729, *YYCURSOR); + YYDEBUG(685, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1211 "Zend/zend_language_scanner.l" +#line 1292 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_ENDFOREACH); + HANDLE_NEWLINES(yytext, yyleng); + RETURN_TOKEN(T_WHITESPACE); } -#line 6965 "Zend/zend_language_scanner.c" -yy730: - YYDEBUG(730, *YYCURSOR); +#line 6428 "Zend/zend_language_scanner.c" +yy686: + YYDEBUG(686, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '>') goto yy690; + goto yy682; +yy687: + YYDEBUG(687, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(688, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy687; } - YYDEBUG(731, *YYCURSOR); + YYDEBUG(689, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1283 "Zend/zend_language_scanner.l" +#line 1301 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_IMPLEMENTS); + yy_pop_state(); + zend_copy_value(zendlval, yytext, yyleng); + RETURN_TOKEN(T_STRING); } -#line 6978 "Zend/zend_language_scanner.c" -yy732: - YYDEBUG(732, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy742; - if (yych == 'c') goto yy742; - goto yy128; -yy733: - YYDEBUG(733, *YYCURSOR); +#line 6451 "Zend/zend_language_scanner.c" +yy690: + YYDEBUG(690, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + YYDEBUG(691, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1297 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_OBJECT_OPERATOR); +} +#line 6461 "Zend/zend_language_scanner.c" + } +/* *********************************** */ +yyc_ST_BACKQUOTE: + { + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 128, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + }; + YYDEBUG(692, *YYCURSOR); + YYFILL(2); + yych = *YYCURSOR; + if (yych <= '_') { + if (yych == '$') goto yy696; + } else { + if (yych <= '`') goto yy697; + if (yych == '{') goto yy699; } - YYDEBUG(734, *YYCURSOR); + YYDEBUG(694, *YYCURSOR); + ++YYCURSOR; +yy695: + YYDEBUG(695, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1223 "Zend/zend_language_scanner.l" +#line 2217 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_INSTANCEOF); + if (YYCURSOR > YYLIMIT) { + RETURN_TOKEN(END); + } + if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) { + YYCURSOR++; + } + + while (YYCURSOR < YYLIMIT) { + switch (*YYCURSOR++) { + case '`': + break; + case '$': + if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { + break; + } + continue; + case '{': + if (*YYCURSOR == '$') { + break; + } + continue; + case '\\': + if (YYCURSOR < YYLIMIT) { + YYCURSOR++; + } + /* fall through */ + default: + continue; + } + + YYCURSOR--; + break; + } + + yyleng = YYCURSOR - SCNG(yy_text); + + zend_scan_escape_string(zendlval, yytext, yyleng, '`'); + RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); } -#line 6997 "Zend/zend_language_scanner.c" -yy735: - YYDEBUG(735, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy743; - if (yych == 'c') goto yy743; - goto yy128; -yy736: - YYDEBUG(736, *YYCURSOR); +#line 6555 "Zend/zend_language_scanner.c" +yy696: + YYDEBUG(696, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '^') { - if (yych <= '9') { - if (yych <= '/') goto yy744; - goto yy166; - } else { - if (yych <= '@') goto yy744; - if (yych <= 'Z') goto yy166; - goto yy744; - } + if (yych <= '_') { + if (yych <= '@') goto yy695; + if (yych <= 'Z') goto yy700; + if (yych <= '^') goto yy695; + goto yy700; } else { - if (yych <= '`') { - if (yych <= '_') goto yy166; - goto yy744; + if (yych <= 'z') { + if (yych <= '`') goto yy695; + goto yy700; } else { - if (yych <= 'z') goto yy166; - if (yych <= 0x7F) goto yy744; - goto yy166; + if (yych <= '{') goto yy703; + if (yych <= 0x7F) goto yy695; + goto yy700; } } -yy737: - YYDEBUG(737, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy746; - goto yy128; -yy738: - YYDEBUG(738, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy747; - if (yych == 'p') goto yy747; - goto yy128; -yy739: - YYDEBUG(739, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(740, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1760 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_METHOD_C); -} -#line 7049 "Zend/zend_language_scanner.c" -yy741: - YYDEBUG(741, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy748; - if (yych == 'e') goto yy748; - goto yy128; -yy742: - YYDEBUG(742, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy749; - if (yych == 'e') goto yy749; - goto yy128; -yy743: - YYDEBUG(743, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy751; - if (yych == 'e') goto yy751; - goto yy128; -yy744: - YYDEBUG(744, *YYCURSOR); +yy697: + YYDEBUG(697, *YYCURSOR); ++YYCURSOR; - YYDEBUG(745, *YYCURSOR); + YYDEBUG(698, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1145 "Zend/zend_language_scanner.l" +#line 2161 "Zend/zend_language_scanner.l" { - yyless(yyleng - 1); - HANDLE_NEWLINES(yytext, yyleng); - RETURN_TOKEN(T_YIELD_FROM); + BEGIN(ST_IN_SCRIPTING); + RETURN_TOKEN('`'); } -#line 7079 "Zend/zend_language_scanner.c" -yy746: - YYDEBUG(746, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy753; - goto yy128; -yy747: - YYDEBUG(747, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy755; - if (yych == 'i') goto yy755; - goto yy128; -yy748: - YYDEBUG(748, *YYCURSOR); +#line 6584 "Zend/zend_language_scanner.c" +yy699: + YYDEBUG(699, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy756; - goto yy128; -yy749: - YYDEBUG(749, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + if (yych == '$') goto yy705; + goto yy695; +yy700: + YYDEBUG(700, *YYCURSOR); + YYMARKER = ++YYCURSOR; + YYFILL(3); + yych = *YYCURSOR; + YYDEBUG(701, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy700; } - YYDEBUG(750, *YYCURSOR); + if (yych == '-') goto yy707; + if (yych <= '@') goto yy702; + if (yych <= '[') goto yy709; +yy702: + YYDEBUG(702, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1377 "Zend/zend_language_scanner.l" +#line 1869 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_INCLUDE_ONCE); + zend_copy_value(zendlval, (yytext+1), (yyleng-1)); + RETURN_TOKEN(T_VARIABLE); } -#line 7108 "Zend/zend_language_scanner.c" -yy751: - YYDEBUG(751, *YYCURSOR); +#line 6610 "Zend/zend_language_scanner.c" +yy703: + YYDEBUG(703, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(752, *YYCURSOR); + YYDEBUG(704, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1385 "Zend/zend_language_scanner.l" +#line 1588 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_REQUIRE_ONCE); + yy_push_state(ST_LOOKING_FOR_VARNAME); + RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); } -#line 7121 "Zend/zend_language_scanner.c" -yy753: - YYDEBUG(753, *YYCURSOR); +#line 6621 "Zend/zend_language_scanner.c" +yy705: + YYDEBUG(705, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(754, *YYCURSOR); + YYDEBUG(706, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1756 "Zend/zend_language_scanner.l" +#line 2148 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_FUNC_C); + Z_LVAL_P(zendlval) = (zend_long) '{'; + yy_push_state(ST_IN_SCRIPTING); + yyless(1); + RETURN_TOKEN(T_CURLY_OPEN); } -#line 7134 "Zend/zend_language_scanner.c" -yy755: - YYDEBUG(755, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy757; - if (yych == 'l') goto yy757; - goto yy128; -yy756: - YYDEBUG(756, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy758; - goto yy128; -yy757: - YYDEBUG(757, *YYCURSOR); +#line 6634 "Zend/zend_language_scanner.c" +yy707: + YYDEBUG(707, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy760; - if (yych == 'e') goto yy760; - goto yy128; -yy758: - YYDEBUG(758, *YYCURSOR); + if (yych == '>') goto yy711; +yy708: + YYDEBUG(708, *YYCURSOR); + YYCURSOR = YYMARKER; + goto yy702; +yy709: + YYDEBUG(709, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; - } - YYDEBUG(759, *YYCURSOR); + YYDEBUG(710, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1776 "Zend/zend_language_scanner.l" +#line 1862 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_NS_C); + yyless(yyleng - 1); + yy_push_state(ST_VAR_OFFSET); + zend_copy_value(zendlval, (yytext+1), (yyleng-1)); + RETURN_TOKEN(T_VARIABLE); } -#line 7164 "Zend/zend_language_scanner.c" -yy760: - YYDEBUG(760, *YYCURSOR); +#line 6655 "Zend/zend_language_scanner.c" +yy711: + YYDEBUG(711, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy761; - if (yych != 'r') goto yy128; -yy761: - YYDEBUG(761, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy127; + if (yych <= '_') { + if (yych <= '@') goto yy708; + if (yych <= 'Z') goto yy712; + if (yych <= '^') goto yy708; + } else { + if (yych <= '`') goto yy708; + if (yych <= 'z') goto yy712; + if (yych <= 0x7F) goto yy708; } - YYDEBUG(762, *YYCURSOR); +yy712: + YYDEBUG(712, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(713, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1413 "Zend/zend_language_scanner.l" +#line 1853 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_HALT_COMPILER); + yyless(yyleng - 3); + yy_push_state(ST_LOOKING_FOR_PROPERTY); + zend_copy_value(zendlval, (yytext+1), (yyleng-1)); + RETURN_TOKEN(T_VARIABLE); } -#line 7182 "Zend/zend_language_scanner.c" +#line 6680 "Zend/zend_language_scanner.c" } /* *********************************** */ -yyc_ST_LOOKING_FOR_PROPERTY: +yyc_ST_DOUBLE_QUOTES: { static const unsigned char yybm[] = { 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64, 64, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0, @@ -7217,93 +6715,198 @@ yyc_ST_LOOKING_FOR_PROPERTY: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(763, *YYCURSOR); + YYDEBUG(714, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; - if (yybm[0+yych] & 64) { - goto yy767; + if (yych <= '#') { + if (yych == '"') goto yy718; + } else { + if (yych <= '$') goto yy720; + if (yych == '{') goto yy721; } - if (yych <= '^') { - if (yych <= '-') { - if (yych >= '-') goto yy770; - } else { - if (yych <= '@') goto yy765; - if (yych <= 'Z') goto yy771; - } + YYDEBUG(716, *YYCURSOR); + ++YYCURSOR; +yy717: + YYDEBUG(717, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2167 "Zend/zend_language_scanner.l" + { + if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) { + YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1; + SET_DOUBLE_QUOTES_SCANNED_LENGTH(0); + + goto double_quotes_scan_done; + } + + if (YYCURSOR > YYLIMIT) { + RETURN_TOKEN(END); + } + if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) { + YYCURSOR++; + } + + while (YYCURSOR < YYLIMIT) { + switch (*YYCURSOR++) { + case '"': + break; + case '$': + if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { + break; + } + continue; + case '{': + if (*YYCURSOR == '$') { + break; + } + continue; + case '\\': + if (YYCURSOR < YYLIMIT) { + YYCURSOR++; + } + /* fall through */ + default: + continue; + } + + YYCURSOR--; + break; + } + +double_quotes_scan_done: + yyleng = YYCURSOR - SCNG(yy_text); + + zend_scan_escape_string(zendlval, yytext, yyleng, '"'); + RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); +} +#line 6782 "Zend/zend_language_scanner.c" +yy718: + YYDEBUG(718, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(719, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2156 "Zend/zend_language_scanner.l" + { + BEGIN(ST_IN_SCRIPTING); + RETURN_TOKEN('"'); +} +#line 6793 "Zend/zend_language_scanner.c" +yy720: + YYDEBUG(720, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '_') { + if (yych <= '@') goto yy717; + if (yych <= 'Z') goto yy722; + if (yych <= '^') goto yy717; + goto yy722; } else { - if (yych <= '`') { - if (yych <= '_') goto yy771; + if (yych <= 'z') { + if (yych <= '`') goto yy717; + goto yy722; } else { - if (yych <= 'z') goto yy771; - if (yych >= 0x80) goto yy771; + if (yych <= '{') goto yy725; + if (yych <= 0x7F) goto yy717; + goto yy722; } } -yy765: - YYDEBUG(765, *YYCURSOR); +yy721: + YYDEBUG(721, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '$') goto yy727; + goto yy717; +yy722: + YYDEBUG(722, *YYCURSOR); + YYMARKER = ++YYCURSOR; + YYFILL(3); + yych = *YYCURSOR; + YYDEBUG(723, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy722; + } + if (yych == '-') goto yy729; + if (yych <= '@') goto yy724; + if (yych <= '[') goto yy731; +yy724: + YYDEBUG(724, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1869 "Zend/zend_language_scanner.l" + { + zend_copy_value(zendlval, (yytext+1), (yyleng-1)); + RETURN_TOKEN(T_VARIABLE); +} +#line 6837 "Zend/zend_language_scanner.c" +yy725: + YYDEBUG(725, *YYCURSOR); ++YYCURSOR; -yy766: - YYDEBUG(766, *YYCURSOR); + YYDEBUG(726, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1307 "Zend/zend_language_scanner.l" +#line 1588 "Zend/zend_language_scanner.l" { - yyless(0); - yy_pop_state(); - goto restart; + yy_push_state(ST_LOOKING_FOR_VARNAME); + RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); } -#line 7254 "Zend/zend_language_scanner.c" -yy767: - YYDEBUG(767, *YYCURSOR); +#line 6848 "Zend/zend_language_scanner.c" +yy727: + YYDEBUG(727, *YYCURSOR); ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(768, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy767; - } - YYDEBUG(769, *YYCURSOR); + YYDEBUG(728, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1292 "Zend/zend_language_scanner.l" +#line 2148 "Zend/zend_language_scanner.l" { - HANDLE_NEWLINES(yytext, yyleng); - RETURN_TOKEN(T_WHITESPACE); + Z_LVAL_P(zendlval) = (zend_long) '{'; + yy_push_state(ST_IN_SCRIPTING); + yyless(1); + RETURN_TOKEN(T_CURLY_OPEN); } -#line 7271 "Zend/zend_language_scanner.c" -yy770: - YYDEBUG(770, *YYCURSOR); +#line 6861 "Zend/zend_language_scanner.c" +yy729: + YYDEBUG(729, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '>') goto yy774; - goto yy766; -yy771: - YYDEBUG(771, *YYCURSOR); + if (yych == '>') goto yy733; +yy730: + YYDEBUG(730, *YYCURSOR); + YYCURSOR = YYMARKER; + goto yy724; +yy731: + YYDEBUG(731, *YYCURSOR); ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(772, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy771; - } - YYDEBUG(773, *YYCURSOR); + YYDEBUG(732, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1301 "Zend/zend_language_scanner.l" +#line 1862 "Zend/zend_language_scanner.l" { - yy_pop_state(); - zend_copy_value(zendlval, yytext, yyleng); - RETURN_TOKEN(T_STRING); + yyless(yyleng - 1); + yy_push_state(ST_VAR_OFFSET); + zend_copy_value(zendlval, (yytext+1), (yyleng-1)); + RETURN_TOKEN(T_VARIABLE); } -#line 7294 "Zend/zend_language_scanner.c" -yy774: - YYDEBUG(774, *YYCURSOR); +#line 6882 "Zend/zend_language_scanner.c" +yy733: + YYDEBUG(733, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '_') { + if (yych <= '@') goto yy730; + if (yych <= 'Z') goto yy734; + if (yych <= '^') goto yy730; + } else { + if (yych <= '`') goto yy730; + if (yych <= 'z') goto yy734; + if (yych <= 0x7F) goto yy730; + } +yy734: + YYDEBUG(734, *YYCURSOR); ++YYCURSOR; - YYDEBUG(775, *YYCURSOR); + YYDEBUG(735, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1297 "Zend/zend_language_scanner.l" +#line 1853 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_OBJECT_OPERATOR); + yyless(yyleng - 3); + yy_push_state(ST_LOOKING_FOR_PROPERTY); + zend_copy_value(zendlval, (yytext+1), (yyleng-1)); + RETURN_TOKEN(T_VARIABLE); } -#line 7304 "Zend/zend_language_scanner.c" +#line 6907 "Zend/zend_language_scanner.c" } /* *********************************** */ -yyc_ST_LOOKING_FOR_VARNAME: +yyc_ST_HEREDOC: { static const unsigned char yybm[] = { 0, 0, 0, 0, 0, 0, 0, 0, @@ -7339,99 +6942,18 @@ yyc_ST_LOOKING_FOR_VARNAME: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(776, *YYCURSOR); + YYDEBUG(736, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy778; - if (yych <= 'Z') goto yy780; - if (yych >= '_') goto yy780; - } else { - if (yych <= '`') goto yy778; - if (yych <= 'z') goto yy780; - if (yych >= 0x80) goto yy780; - } -yy778: - YYDEBUG(778, *YYCURSOR); - ++YYCURSOR; -yy779: - YYDEBUG(779, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1612 "Zend/zend_language_scanner.l" - { - yyless(0); - yy_pop_state(); - yy_push_state(ST_IN_SCRIPTING); - goto restart; -} -#line 7368 "Zend/zend_language_scanner.c" -yy780: - YYDEBUG(780, *YYCURSOR); - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '_') { - if (yych <= '@') { - if (yych <= '/') goto yy779; - if (yych <= '9') goto yy782; - goto yy779; - } else { - if (yych <= '[') goto yy782; - if (yych <= '^') goto yy779; - goto yy782; - } - } else { - if (yych <= '|') { - if (yych <= '`') goto yy779; - if (yych <= 'z') goto yy782; - goto yy779; - } else { - if (yych <= '}') goto yy782; - if (yych <= 0x7F) goto yy779; - goto yy782; - } - } -yy781: - YYDEBUG(781, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy782: - YYDEBUG(782, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy781; - } - if (yych <= '@') goto yy783; - if (yych <= '[') goto yy784; - if (yych == '}') goto yy784; -yy783: - YYDEBUG(783, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy779; -yy784: - YYDEBUG(784, *YYCURSOR); + if (yych == '$') goto yy740; + if (yych == '{') goto yy741; + YYDEBUG(738, *YYCURSOR); ++YYCURSOR; - YYDEBUG(785, *YYCURSOR); +yy739: + YYDEBUG(739, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1603 "Zend/zend_language_scanner.l" +#line 2259 "Zend/zend_language_scanner.l" { - yyless(yyleng - 1); - zend_copy_value(zendlval, yytext, yyleng); - yy_pop_state(); - yy_push_state(ST_IN_SCRIPTING); - RETURN_TOKEN(T_STRING_VARNAME); -} -#line 7423 "Zend/zend_language_scanner.c" - } -/* *********************************** */ -yyc_ST_NOWDOC: - YYDEBUG(786, *YYCURSOR); - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(788, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(789, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2332 "Zend/zend_language_scanner.l" - { int newline = 0; zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack)); @@ -7470,23 +6992,274 @@ yyc_ST_NOWDOC: CG(increment_lineno) = 1; /* For newline before label */ BEGIN(ST_END_HEREDOC); - goto nowdoc_scan_done; + goto heredoc_scan_done; } } + continue; + case '$': + if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { + break; + } + continue; + case '{': + if (*YYCURSOR == '$') { + break; + } + continue; + case '\\': + if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') { + YYCURSOR++; + } /* fall through */ default: continue; } - } - -nowdoc_scan_done: - yyleng = YYCURSOR - SCNG(yy_text); - - zend_copy_value(zendlval, yytext, yyleng - newline); - HANDLE_NEWLINES(yytext, yyleng - newline); - RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); + + YYCURSOR--; + break; + } + +heredoc_scan_done: + yyleng = YYCURSOR - SCNG(yy_text); + + zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0); + RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); +} +#line 7029 "Zend/zend_language_scanner.c" +yy740: + YYDEBUG(740, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '_') { + if (yych <= '@') goto yy739; + if (yych <= 'Z') goto yy742; + if (yych <= '^') goto yy739; + goto yy742; + } else { + if (yych <= 'z') { + if (yych <= '`') goto yy739; + goto yy742; + } else { + if (yych <= '{') goto yy745; + if (yych <= 0x7F) goto yy739; + goto yy742; + } + } +yy741: + YYDEBUG(741, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '$') goto yy747; + goto yy739; +yy742: + YYDEBUG(742, *YYCURSOR); + YYMARKER = ++YYCURSOR; + YYFILL(3); + yych = *YYCURSOR; + YYDEBUG(743, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy742; + } + if (yych == '-') goto yy749; + if (yych <= '@') goto yy744; + if (yych <= '[') goto yy751; +yy744: + YYDEBUG(744, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1869 "Zend/zend_language_scanner.l" + { + zend_copy_value(zendlval, (yytext+1), (yyleng-1)); + RETURN_TOKEN(T_VARIABLE); +} +#line 7073 "Zend/zend_language_scanner.c" +yy745: + YYDEBUG(745, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(746, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1588 "Zend/zend_language_scanner.l" + { + yy_push_state(ST_LOOKING_FOR_VARNAME); + RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); +} +#line 7084 "Zend/zend_language_scanner.c" +yy747: + YYDEBUG(747, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(748, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2148 "Zend/zend_language_scanner.l" + { + Z_LVAL_P(zendlval) = (zend_long) '{'; + yy_push_state(ST_IN_SCRIPTING); + yyless(1); + RETURN_TOKEN(T_CURLY_OPEN); +} +#line 7097 "Zend/zend_language_scanner.c" +yy749: + YYDEBUG(749, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '>') goto yy753; +yy750: + YYDEBUG(750, *YYCURSOR); + YYCURSOR = YYMARKER; + goto yy744; +yy751: + YYDEBUG(751, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(752, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1862 "Zend/zend_language_scanner.l" + { + yyless(yyleng - 1); + yy_push_state(ST_VAR_OFFSET); + zend_copy_value(zendlval, (yytext+1), (yyleng-1)); + RETURN_TOKEN(T_VARIABLE); +} +#line 7118 "Zend/zend_language_scanner.c" +yy753: + YYDEBUG(753, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '_') { + if (yych <= '@') goto yy750; + if (yych <= 'Z') goto yy754; + if (yych <= '^') goto yy750; + } else { + if (yych <= '`') goto yy750; + if (yych <= 'z') goto yy754; + if (yych <= 0x7F) goto yy750; + } +yy754: + YYDEBUG(754, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(755, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1853 "Zend/zend_language_scanner.l" + { + yyless(yyleng - 3); + yy_push_state(ST_LOOKING_FOR_PROPERTY); + zend_copy_value(zendlval, (yytext+1), (yyleng-1)); + RETURN_TOKEN(T_VARIABLE); +} +#line 7143 "Zend/zend_language_scanner.c" + } +/* *********************************** */ +yyc_ST_LOOKING_FOR_VARNAME: + { + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 128, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + }; + YYDEBUG(756, *YYCURSOR); + YYFILL(2); + yych = *YYCURSOR; + if (yych <= '_') { + if (yych <= '@') goto yy758; + if (yych <= 'Z') goto yy760; + if (yych >= '_') goto yy760; + } else { + if (yych <= '`') goto yy758; + if (yych <= 'z') goto yy760; + if (yych >= 0x80) goto yy760; + } +yy758: + YYDEBUG(758, *YYCURSOR); + ++YYCURSOR; +yy759: + YYDEBUG(759, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1612 "Zend/zend_language_scanner.l" + { + yyless(0); + yy_pop_state(); + yy_push_state(ST_IN_SCRIPTING); + goto restart; +} +#line 7207 "Zend/zend_language_scanner.c" +yy760: + YYDEBUG(760, *YYCURSOR); + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '_') { + if (yych <= '@') { + if (yych <= '/') goto yy759; + if (yych <= '9') goto yy762; + goto yy759; + } else { + if (yych <= '[') goto yy762; + if (yych <= '^') goto yy759; + goto yy762; + } + } else { + if (yych <= '|') { + if (yych <= '`') goto yy759; + if (yych <= 'z') goto yy762; + goto yy759; + } else { + if (yych <= '}') goto yy762; + if (yych <= 0x7F) goto yy759; + goto yy762; + } + } +yy761: + YYDEBUG(761, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy762: + YYDEBUG(762, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy761; + } + if (yych <= '@') goto yy763; + if (yych <= '[') goto yy764; + if (yych == '}') goto yy764; +yy763: + YYDEBUG(763, *YYCURSOR); + YYCURSOR = YYMARKER; + goto yy759; +yy764: + YYDEBUG(764, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(765, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1603 "Zend/zend_language_scanner.l" + { + yyless(yyleng - 1); + zend_copy_value(zendlval, yytext, yyleng); + yy_pop_state(); + yy_push_state(ST_IN_SCRIPTING); + RETURN_TOKEN(T_STRING_VARNAME); } -#line 7490 "Zend/zend_language_scanner.c" +#line 7262 "Zend/zend_language_scanner.c" + } /* *********************************** */ yyc_ST_VAR_OFFSET: { @@ -7524,57 +7297,57 @@ yyc_ST_VAR_OFFSET: 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, }; - YYDEBUG(790, *YYCURSOR); + YYDEBUG(766, *YYCURSOR); YYFILL(3); yych = *YYCURSOR; if (yych <= '0') { if (yych <= ' ') { if (yych <= '\f') { - if (yych <= 0x08) goto yy792; - if (yych <= '\n') goto yy794; + if (yych <= 0x08) goto yy768; + if (yych <= '\n') goto yy770; } else { - if (yych <= '\r') goto yy794; - if (yych >= ' ') goto yy794; + if (yych <= '\r') goto yy770; + if (yych >= ' ') goto yy770; } } else { if (yych <= '$') { - if (yych <= '"') goto yy796; - if (yych <= '#') goto yy794; - goto yy798; + if (yych <= '"') goto yy772; + if (yych <= '#') goto yy770; + goto yy774; } else { - if (yych == '\'') goto yy794; - if (yych <= '/') goto yy796; - goto yy799; + if (yych == '\'') goto yy770; + if (yych <= '/') goto yy772; + goto yy775; } } } else { if (yych <= ']') { if (yych <= 'Z') { - if (yych <= '9') goto yy801; - if (yych <= '@') goto yy796; - goto yy803; + if (yych <= '9') goto yy777; + if (yych <= '@') goto yy772; + goto yy779; } else { - if (yych <= '[') goto yy796; - if (yych <= '\\') goto yy794; - goto yy806; + if (yych <= '[') goto yy772; + if (yych <= '\\') goto yy770; + goto yy782; } } else { if (yych <= '`') { - if (yych == '_') goto yy803; - goto yy796; + if (yych == '_') goto yy779; + goto yy772; } else { - if (yych <= 'z') goto yy803; - if (yych <= '~') goto yy796; - if (yych >= 0x80) goto yy803; + if (yych <= 'z') goto yy779; + if (yych <= '~') goto yy772; + if (yych >= 0x80) goto yy779; } } } -yy792: - YYDEBUG(792, *YYCURSOR); +yy768: + YYDEBUG(768, *YYCURSOR); ++YYCURSOR; - YYDEBUG(793, *YYCURSOR); + YYDEBUG(769, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2389 "Zend/zend_language_scanner.l" +#line 2390 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { RETURN_TOKEN(END); @@ -7583,13 +7356,13 @@ yy792: zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 7587 "Zend/zend_language_scanner.c" -yy794: - YYDEBUG(794, *YYCURSOR); +#line 7360 "Zend/zend_language_scanner.c" +yy770: + YYDEBUG(770, *YYCURSOR); ++YYCURSOR; - YYDEBUG(795, *YYCURSOR); + YYDEBUG(771, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1883 "Zend/zend_language_scanner.l" +#line 1884 "Zend/zend_language_scanner.l" { /* Invalid rule to return a more explicit parse error with proper line number */ yyless(0); @@ -7597,54 +7370,54 @@ yy794: ZVAL_NULL(zendlval); RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); } -#line 7601 "Zend/zend_language_scanner.c" -yy796: - YYDEBUG(796, *YYCURSOR); +#line 7374 "Zend/zend_language_scanner.c" +yy772: + YYDEBUG(772, *YYCURSOR); ++YYCURSOR; -yy797: - YYDEBUG(797, *YYCURSOR); +yy773: + YYDEBUG(773, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1878 "Zend/zend_language_scanner.l" +#line 1879 "Zend/zend_language_scanner.l" { /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */ RETURN_TOKEN(yytext[0]); } -#line 7613 "Zend/zend_language_scanner.c" -yy798: - YYDEBUG(798, *YYCURSOR); +#line 7386 "Zend/zend_language_scanner.c" +yy774: + YYDEBUG(774, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '_') { - if (yych <= '@') goto yy797; - if (yych <= 'Z') goto yy808; - if (yych <= '^') goto yy797; - goto yy808; + if (yych <= '@') goto yy773; + if (yych <= 'Z') goto yy784; + if (yych <= '^') goto yy773; + goto yy784; } else { - if (yych <= '`') goto yy797; - if (yych <= 'z') goto yy808; - if (yych <= 0x7F) goto yy797; - goto yy808; + if (yych <= '`') goto yy773; + if (yych <= 'z') goto yy784; + if (yych <= 0x7F) goto yy773; + goto yy784; } -yy799: - YYDEBUG(799, *YYCURSOR); +yy775: + YYDEBUG(775, *YYCURSOR); yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'W') { if (yych <= '9') { - if (yych >= '0') goto yy811; + if (yych >= '0') goto yy787; } else { - if (yych == 'B') goto yy814; + if (yych == 'B') goto yy790; } } else { if (yych <= 'b') { - if (yych <= 'X') goto yy816; - if (yych >= 'b') goto yy814; + if (yych <= 'X') goto yy792; + if (yych >= 'b') goto yy790; } else { - if (yych == 'x') goto yy816; + if (yych == 'x') goto yy792; } } -yy800: - YYDEBUG(800, *YYCURSOR); +yy776: + YYDEBUG(776, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1718 "Zend/zend_language_scanner.l" +#line 1719 "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; @@ -7660,131 +7433,355 @@ string: } RETURN_TOKEN(T_NUM_STRING); } -#line 7664 "Zend/zend_language_scanner.c" -yy801: - YYDEBUG(801, *YYCURSOR); +#line 7437 "Zend/zend_language_scanner.c" +yy777: + YYDEBUG(777, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(802, *YYCURSOR); + YYDEBUG(778, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy801; + goto yy777; } - goto yy800; -yy803: - YYDEBUG(803, *YYCURSOR); + goto yy776; +yy779: + YYDEBUG(779, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(804, *YYCURSOR); + YYDEBUG(780, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy803; + goto yy779; } - YYDEBUG(805, *YYCURSOR); + YYDEBUG(781, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1891 "Zend/zend_language_scanner.l" +#line 1892 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); RETURN_TOKEN(T_STRING); } -#line 7691 "Zend/zend_language_scanner.c" -yy806: - YYDEBUG(806, *YYCURSOR); +#line 7464 "Zend/zend_language_scanner.c" +yy782: + YYDEBUG(782, *YYCURSOR); ++YYCURSOR; - YYDEBUG(807, *YYCURSOR); + YYDEBUG(783, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1873 "Zend/zend_language_scanner.l" +#line 1874 "Zend/zend_language_scanner.l" { yy_pop_state(); RETURN_TOKEN(']'); } -#line 7702 "Zend/zend_language_scanner.c" -yy808: - YYDEBUG(808, *YYCURSOR); +#line 7475 "Zend/zend_language_scanner.c" +yy784: + YYDEBUG(784, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(809, *YYCURSOR); + YYDEBUG(785, *YYCURSOR); if (yych <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy808; + if (yych >= '0') goto yy784; } else { - if (yych <= '@') goto yy810; - if (yych <= 'Z') goto yy808; + if (yych <= '@') goto yy786; + if (yych <= 'Z') goto yy784; } } else { if (yych <= '`') { - if (yych <= '_') goto yy808; + if (yych <= '_') goto yy784; } else { - if (yych <= 'z') goto yy808; - if (yych >= 0x80) goto yy808; + if (yych <= 'z') goto yy784; + if (yych >= 0x80) goto yy784; } } -yy810: - YYDEBUG(810, *YYCURSOR); +yy786: + YYDEBUG(786, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1868 "Zend/zend_language_scanner.l" +#line 1869 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); RETURN_TOKEN(T_VARIABLE); } -#line 7732 "Zend/zend_language_scanner.c" -yy811: - YYDEBUG(811, *YYCURSOR); +#line 7505 "Zend/zend_language_scanner.c" +yy787: + YYDEBUG(787, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(812, *YYCURSOR); - if (yych <= '/') goto yy813; - if (yych <= '9') goto yy811; -yy813: - YYDEBUG(813, *YYCURSOR); + YYDEBUG(788, *YYCURSOR); + if (yych <= '/') goto yy789; + if (yych <= '9') goto yy787; +yy789: + YYDEBUG(789, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1734 "Zend/zend_language_scanner.l" +#line 1735 "Zend/zend_language_scanner.l" { /* Offset must be treated as a string */ ZVAL_STRINGL(zendlval, yytext, yyleng); RETURN_TOKEN(T_NUM_STRING); } -#line 7749 "Zend/zend_language_scanner.c" -yy814: - YYDEBUG(814, *YYCURSOR); +#line 7522 "Zend/zend_language_scanner.c" +yy790: + YYDEBUG(790, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 64) { - goto yy817; + goto yy793; } -yy815: - YYDEBUG(815, *YYCURSOR); +yy791: + YYDEBUG(791, *YYCURSOR); YYCURSOR = YYMARKER; - goto yy800; -yy816: - YYDEBUG(816, *YYCURSOR); + goto yy776; +yy792: + YYDEBUG(792, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 128) { - goto yy819; + goto yy795; } - goto yy815; -yy817: - YYDEBUG(817, *YYCURSOR); + goto yy791; +yy793: + YYDEBUG(793, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(818, *YYCURSOR); + YYDEBUG(794, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy817; + goto yy793; } - goto yy813; -yy819: - YYDEBUG(819, *YYCURSOR); + goto yy789; +yy795: + YYDEBUG(795, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(820, *YYCURSOR); + YYDEBUG(796, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy819; + goto yy795; + } + goto yy789; + } +/* *********************************** */ +yyc_INITIAL: + YYDEBUG(797, *YYCURSOR); + YYFILL(7); + yych = *YYCURSOR; + if (yych == '<') goto yy801; + YYDEBUG(799, *YYCURSOR); + ++YYCURSOR; +yy800: + YYDEBUG(800, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1804 "Zend/zend_language_scanner.l" + { + if (YYCURSOR > YYLIMIT) { + RETURN_TOKEN(END); + } + +inline_char_handler: + + while (1) { + YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR); + + YYCURSOR = ptr ? ptr + 1 : YYLIMIT; + + if (YYCURSOR >= YYLIMIT) { + break; + } + + if (*YYCURSOR == '?') { + if (CG(short_tags) || !strncasecmp((char*)YYCURSOR + 1, "php", 3) || (*(YYCURSOR + 1) == '=')) { /* Assume [ \t\n\r] follows "php" */ + + YYCURSOR--; + break; + } + } + } + + yyleng = YYCURSOR - SCNG(yy_text); + + if (SCNG(output_filter)) { + size_t readsize; + char *s = NULL; + size_t sz = 0; + // TODO: avoid reallocation ??? + readsize = SCNG(output_filter)((unsigned char **)&s, &sz, (unsigned char *)yytext, (size_t)yyleng); + ZVAL_STRINGL(zendlval, s, sz); + efree(s); + if (readsize < yyleng) { + yyless(readsize); + } + } else { + ZVAL_STRINGL(zendlval, yytext, yyleng); + } + HANDLE_NEWLINES(yytext, yyleng); + RETURN_TOKEN(T_INLINE_HTML); +} +#line 7617 "Zend/zend_language_scanner.c" +yy801: + YYDEBUG(801, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '?') goto yy800; + YYDEBUG(802, *YYCURSOR); + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'O') { + if (yych == '=') goto yy804; + } else { + if (yych <= 'P') goto yy806; + if (yych == 'p') goto yy806; + } +yy803: + YYDEBUG(803, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1795 "Zend/zend_language_scanner.l" + { + if (CG(short_tags)) { + BEGIN(ST_IN_SCRIPTING); + RETURN_TOKEN(T_OPEN_TAG); + } else { + goto inline_char_handler; + } +} +#line 7642 "Zend/zend_language_scanner.c" +yy804: + YYDEBUG(804, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(805, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1782 "Zend/zend_language_scanner.l" + { + BEGIN(ST_IN_SCRIPTING); + RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO); +} +#line 7653 "Zend/zend_language_scanner.c" +yy806: + YYDEBUG(806, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy808; + if (yych == 'h') goto yy808; +yy807: + YYDEBUG(807, *YYCURSOR); + YYCURSOR = YYMARKER; + goto yy803; +yy808: + YYDEBUG(808, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy809; + if (yych != 'p') goto yy807; +yy809: + YYDEBUG(809, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\f') { + if (yych <= 0x08) goto yy807; + if (yych >= '\v') goto yy807; + } else { + if (yych <= '\r') goto yy812; + if (yych != ' ') goto yy807; + } +yy810: + YYDEBUG(810, *YYCURSOR); + ++YYCURSOR; +yy811: + YYDEBUG(811, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1788 "Zend/zend_language_scanner.l" + { + HANDLE_NEWLINE(yytext[yyleng-1]); + BEGIN(ST_IN_SCRIPTING); + RETURN_TOKEN(T_OPEN_TAG); +} +#line 7690 "Zend/zend_language_scanner.c" +yy812: + YYDEBUG(812, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy810; + goto yy811; +/* *********************************** */ +yyc_ST_END_HEREDOC: + YYDEBUG(813, *YYCURSOR); + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(815, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(816, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2134 "Zend/zend_language_scanner.l" + { + zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack)); + + YYCURSOR += heredoc_label->length - 1; + yyleng = heredoc_label->length; + + heredoc_label_dtor(heredoc_label); + efree(heredoc_label); + + BEGIN(ST_IN_SCRIPTING); + RETURN_TOKEN(T_END_HEREDOC); +} +#line 7718 "Zend/zend_language_scanner.c" +/* *********************************** */ +yyc_ST_NOWDOC: + YYDEBUG(817, *YYCURSOR); + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(819, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(820, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2333 "Zend/zend_language_scanner.l" + { + int newline = 0; + + zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack)); + + if (YYCURSOR > YYLIMIT) { + RETURN_TOKEN(END); + } + + YYCURSOR--; + + while (YYCURSOR < YYLIMIT) { + switch (*YYCURSOR++) { + case '\r': + if (*YYCURSOR == '\n') { + YYCURSOR++; + } + /* fall through */ + case '\n': + /* Check for ending label on the next line */ + if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) { + YYCTYPE *end = YYCURSOR + heredoc_label->length; + + if (*end == ';') { + end++; + } + + if (*end == '\n' || *end == '\r') { + /* newline before label will be subtracted from returned text, but + * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */ + if (YYCURSOR[-2] == '\r' && YYCURSOR[-1] == '\n') { + newline = 2; /* Windows newline */ + } else { + newline = 1; + } + + CG(increment_lineno) = 1; /* For newline before label */ + BEGIN(ST_END_HEREDOC); + + goto nowdoc_scan_done; + } + } + /* fall through */ + default: + continue; } - goto yy813; } + +nowdoc_scan_done: + yyleng = YYCURSOR - SCNG(yy_text); + + zend_copy_value(zendlval, yytext, yyleng - newline); + HANDLE_NEWLINES(yytext, yyleng - newline); + RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); +} +#line 7784 "Zend/zend_language_scanner.c" } -#line 2398 "Zend/zend_language_scanner.l" +#line 2399 "Zend/zend_language_scanner.l" } diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 837df416e2..0cc3d0e72b 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1648,7 +1648,8 @@ NEWLINE ("\r"|"\n"|"\r\n") char *end; if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */ errno = 0; - ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0)); + /* base must be passed explicitly for correct parse error on Windows */ + ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, yytext[0] == '0' ? 8 : 10)); /* This isn't an assert, we need to ensure 019 isn't valid octal * Because the lexing itself doesn't do that for us */ diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h index c89b1bba45..3c01b5bc76 100644 --- a/Zend/zend_language_scanner_defs.h +++ b/Zend/zend_language_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.16 */ +/* Generated by re2c 1.0.1 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE { -- cgit v1.2.1