-/* Generated by re2c 0.16 */
+/* Generated by re2c 1.0.1 */
#line 1 "Zend/zend_language_scanner.l"
/*
+----------------------------------------------------------------------+
/* perform sanity check. If this message is triggered you should
increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
#define YYMAXFILL 16
+
#if ZEND_MMAP_AHEAD < YYMAXFILL
# error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
#endif
#define HEREDOC_USING_SPACES 1
#define HEREDOC_USING_TABS 2
-static zend_bool strip_multiline_string_indentation(zval *zendlval, int newline, int indentation, zend_bool using_spaces)
+static const char *next_newline(const char *str, const char *end, size_t *newline_len) {
+ for (; str < end; str++) {
+ if (*str == '\r') {
+ *newline_len = str + 1 < end && *(str + 1) == '\n' ? 2 : 1;
+ } else if (*str == '\n') {
+ *newline_len = 1;
+ return str;
+ }
+ }
+ *newline_len = 0;
+ return NULL;
+}
+
+static zend_bool strip_multiline_string_indentation(
+ zval *zendlval, int indentation, zend_bool using_spaces,
+ zend_bool newline_at_start, zend_bool newline_at_end)
{
- int len = Z_STRLEN_P(zendlval), new_len = len, i = 0, j = 0, skip, newline_count = 0;
+ const char *str = Z_STRVAL_P(zendlval), *end = str + Z_STRLEN_P(zendlval);
char *copy = Z_STRVAL_P(zendlval);
- zend_bool trailing_newline = 0;
- while (j < len) {
- trailing_newline = 0;
+ int newline_count = 0;
+ size_t newline_len;
+ const char *nl;
+
+ if (!newline_at_start) {
+ nl = next_newline(str, end, &newline_len);
+ if (!nl) {
+ return 1;
+ }
+
+ str = nl + newline_len;
+ copy = (char *) nl + newline_len;
+ newline_count++;
+ } else {
+ nl = str;
+ }
+
+ /* <= intentional */
+ while (str <= end && nl) {
+ size_t skip;
+ nl = next_newline(str, end, &newline_len);
+ if (!nl && newline_at_end) {
+ nl = end;
+ }
- for (skip = 0; skip < indentation; ++skip, ++j, --new_len) {
- if (copy[j] == '\r' || copy[j] == '\n') {
- goto skip;
+ /* Try to skip indentation */
+ for (skip = 0; skip < indentation; skip++, str++) {
+ if (str == nl) {
+ /* Don't require full indentation on whitespace-only lines */
+ break;
}
- if (copy[j] != ' ' && copy[j] != '\t') {
+ if (str == end || (*str != ' ' && *str != '\t')) {
CG(zend_lineno) += newline_count;
- zend_throw_exception_ex(zend_ce_parse_error, 0, "Invalid body indentation level (expecting an indentation level of at least %d)", indentation);
+ zend_throw_exception_ex(zend_ce_parse_error, 0,
+ "Invalid body indentation level (expecting an indentation level of at least %d)", indentation);
goto error;
}
- if ((!using_spaces && copy[j] == ' ') || (using_spaces && copy[j] == '\t')) {
+ if ((!using_spaces && *str == ' ') || (using_spaces && *str == '\t')) {
CG(zend_lineno) += newline_count;
- zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
+ zend_throw_exception(zend_ce_parse_error,
+ "Invalid indentation - tabs and spaces cannot be mixed", 0);
goto error;
}
}
- while (j < len && copy[j] != '\r' && copy[j] != '\n') {
- copy[i++] = copy[j++];
- }
-
- if (j == len) {
+ if (str == end) {
break;
}
-skip:
- if (copy[j] == '\r') {
- copy[i++] = copy[j++];
- trailing_newline = 1;
- }
-
- if (copy[j] == '\n') {
- copy[i++] = copy[j++];
- trailing_newline = 1;
- }
-
- if (trailing_newline) {
- ++newline_count;
- }
- }
- if (YYSTATE != STATE(ST_END_HEREDOC) && trailing_newline && indentation) {
- CG(zend_lineno) += newline_count;
- zend_throw_exception_ex(zend_ce_parse_error, 0, "Invalid body indentation level (expecting an indentation level of at least %d)", indentation);
- goto error;
+ size_t len = nl ? (nl - str + newline_len) : (end - str);
+ memmove(copy, str, len);
+ str += len;
+ copy += len;
+ newline_count++;
}
- Z_STRVAL_P(zendlval)[new_len - newline] = '\0';
- Z_STRLEN_P(zendlval) = new_len - newline;
-
+ *copy = '\0';
+ Z_STRLEN_P(zendlval) = copy - Z_STRVAL_P(zendlval);
return 1;
error:
SCNG(yy_text) = YYCURSOR;
-#line 1229 "Zend/zend_language_scanner.c"
+#line 1251 "Zend/zend_language_scanner.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
}
}
/* *********************************** */
-yyc_INITIAL:
- YYDEBUG(1, *YYCURSOR);
- YYFILL(7);
- yych = *YYCURSOR;
- if (yych == '<') goto yy5;
- YYDEBUG(3, *YYCURSOR);
- ++YYCURSOR;
-yy4:
- YYDEBUG(4, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1938 "Zend/zend_language_scanner.l"
+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(1, *YYCURSOR);
+ YYFILL(16);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 4) {
+ goto yy5;
+ }
+ 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 yy3;
+ case ' ':
+ case '!': goto yy8;
+ case '"': goto yy10;
+ case '#': goto yy12;
+ case '$': goto yy14;
+ case '%': goto yy15;
+ case '&': goto yy16;
+ case '\'': goto yy17;
+ case '(': goto yy19;
+ case ')':
+ case ',':
+ case ';':
+ case '@':
+ case '[':
+ case ']':
+ case '~': goto yy20;
+ case '*': goto yy21;
+ case '+': goto yy22;
+ case '-': goto yy23;
+ case '.': goto yy24;
+ case '/': goto yy25;
+ case '0': goto yy26;
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy28;
+ case ':': goto yy30;
+ case '<': goto yy31;
+ case '=': goto yy32;
+ case '>': 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 2748 "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 1468 "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 1430 "Zend/zend_language_scanner.l"
+ {
+ goto return_whitespace;
+}
+#line 1484 "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 1713 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(yytext[0]);
+}
+#line 1496 "Zend/zend_language_scanner.c"
+yy10:
+ YYDEBUG(10, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(11, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 2224 "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);
+ if (EXPECTED(zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == SUCCESS)
+ || !PARSER_MODE()) {
+ RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
+ } else {
+ RETURN_TOKEN(T_ERROR);
+ }
+ 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 1547 "Zend/zend_language_scanner.c"
+yy12:
+ YYDEBUG(12, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(13, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 2051 "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 if (yyleng == 1) {
- ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*yytext));
- } else {
- ZVAL_STRINGL(zendlval, yytext, yyleng);
+ if (PARSER_MODE()) {
+ SKIP_TOKEN(T_COMMENT);
}
- HANDLE_NEWLINES(yytext, yyleng);
- RETURN_TOKEN_WITH_VAL(T_INLINE_HTML);
+ RETURN_TOKEN(T_COMMENT);
}
-#line 1328 "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 1926 "Zend/zend_language_scanner.l"
- {
- if (CG(short_tags)) {
- BEGIN(ST_IN_SCRIPTING);
- if (PARSER_MODE()) {
- SKIP_TOKEN(T_OPEN_TAG);
- }
- RETURN_TOKEN(T_OPEN_TAG);
- } else {
- goto inline_char_handler;
- }
-}
-#line 1356 "Zend/zend_language_scanner.c"
-yy8:
- YYDEBUG(8, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(9, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1907 "Zend/zend_language_scanner.l"
- {
- BEGIN(ST_IN_SCRIPTING);
- if (PARSER_MODE()) {
- RETURN_TOKEN(T_ECHO);
- }
- RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO);
-}
-#line 1370 "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 1585 "Zend/zend_language_scanner.c"
yy14:
- YYDEBUG(14, *YYCURSOR);
- ++YYCURSOR;
-yy15:
- YYDEBUG(15, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1916 "Zend/zend_language_scanner.l"
- {
- HANDLE_NEWLINE(yytext[yyleng-1]);
- BEGIN(ST_IN_SCRIPTING);
- if (PARSER_MODE()) {
- SKIP_TOKEN(T_OPEN_TAG);
- }
- RETURN_TOKEN(T_OPEN_TAG);
-}
-#line 1410 "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 2472 "Zend/zend_language_scanner.l"
+#line 2134 "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 == '{') {
- break;
- }
- continue;
- case '{':
- if (*YYCURSOR == '$') {
- break;
- }
- continue;
- case '\\':
- if (YYCURSOR < YYLIMIT) {
- YYCURSOR++;
- }
- /* fall through */
- default:
- continue;
+ } 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_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
}
+ }
- YYCURSOR--;
- break;
+ if (yyleng-bprefix-2 <= 1) {
+ if (yyleng-bprefix-2 < 1) {
+ ZVAL_EMPTY_STRING(zendlval);
+ } else {
+ zend_uchar c = (zend_uchar)*(yytext+bprefix+1);
+ if (c == '\n' || c == '\r') {
+ CG(zend_lineno)++;
+ }
+ ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
+ }
+ goto skip_escape_conversion;
}
+ ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
- yyleng = YYCURSOR - SCNG(yy_text);
+ /* convert escape sequences */
+ s = Z_STRVAL_P(zendlval);
+ end = s+Z_STRLEN_P(zendlval);
+ while (1) {
+ if (UNEXPECTED(*s=='\\')) {
+ break;
+ }
+ if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
+ CG(zend_lineno)++;
+ }
+ s++;
+ if (s == end) {
+ goto skip_escape_conversion;
+ }
+ }
- if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '`') == SUCCESS)
- || !PARSER_MODE()) {
- RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
- } else {
- RETURN_TOKEN(T_ERROR);
+ t = s;
+ while (s<end) {
+ if (*s=='\\') {
+ s++;
+ if (*s == '\\' || *s == '\'') {
+ *t++ = *s;
+ } else {
+ *t++ = '\\';
+ *t++ = *s;
+ }
+ } else {
+ *t++ = *s;
+ }
+ if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
+ CG(zend_lineno)++;
+ }
+ s++;
+ }
+ *t = 0;
+ Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
+
+skip_escape_conversion:
+ if (SCNG(output_filter)) {
+ size_t sz = 0;
+ char *str = NULL;
+ s = Z_STRVAL_P(zendlval);
+ // TODO: avoid reallocation ???
+ SCNG(output_filter)((unsigned char **)&str, &sz, (unsigned char *)s, (size_t)Z_STRLEN_P(zendlval));
+ ZVAL_STRINGL(zendlval, str, sz);
}
+ RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
}
-#line 1512 "Zend/zend_language_scanner.c"
-yy21:
- YYDEBUG(21, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= '_') {
- if (yych <= '@') goto yy20;
- if (yych <= 'Z') goto yy25;
- if (yych <= '^') goto yy20;
- goto yy25;
+#line 1705 "Zend/zend_language_scanner.c"
+yy19:
+ YYDEBUG(19, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+ if (yych <= 'D') {
+ if (yych <= ' ') {
+ if (yych == '\t') goto yy81;
+ if (yych <= 0x1F) goto yy9;
+ goto yy81;
+ } else {
+ if (yych <= '@') goto yy9;
+ if (yych == 'C') goto yy9;
+ goto yy81;
+ }
+ } else {
+ if (yych <= 'I') {
+ if (yych == 'F') goto yy81;
+ if (yych <= 'H') goto yy9;
+ goto yy81;
+ } else {
+ if (yych == 'O') goto yy81;
+ if (yych <= 'Q') goto yy9;
+ goto yy81;
+ }
+ }
} else {
- if (yych <= 'z') {
- if (yych <= '`') goto yy20;
- goto yy25;
+ if (yych <= 'f') {
+ if (yych <= 'b') {
+ if (yych == 'U') goto yy81;
+ if (yych <= '`') goto yy9;
+ goto yy81;
+ } else {
+ if (yych == 'd') goto yy81;
+ if (yych <= 'e') goto yy9;
+ goto yy81;
+ }
} else {
- if (yych <= '{') goto yy28;
- if (yych <= 0x7F) goto yy20;
- goto yy25;
+ if (yych <= 'o') {
+ if (yych == 'i') goto yy81;
+ if (yych <= 'n') goto yy9;
+ goto yy81;
+ } else {
+ if (yych <= 's') {
+ if (yych <= 'q') goto yy9;
+ goto yy81;
+ } else {
+ if (yych == 'u') goto yy81;
+ goto yy9;
+ }
+ }
}
}
+yy20:
+ YYDEBUG(20, *YYCURSOR);
+ ++YYCURSOR;
+ goto yy9;
+yy21:
+ YYDEBUG(21, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '*') goto yy92;
+ if (yych == '=') goto yy94;
+ goto yy9;
yy22:
YYDEBUG(22, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == '+') goto yy96;
+ if (yych == '=') goto yy98;
+ goto yy9;
+yy23:
YYDEBUG(23, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2412 "Zend/zend_language_scanner.l"
- {
- BEGIN(ST_IN_SCRIPTING);
- RETURN_TOKEN('`');
-}
-#line 1541 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych <= '<') {
+ if (yych == '-') goto yy100;
+ goto yy9;
+ } else {
+ if (yych <= '=') goto yy102;
+ if (yych <= '>') goto yy104;
+ goto yy9;
+ }
yy24:
YYDEBUG(24, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '$') goto yy30;
- goto yy20;
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+ if (yych == '.') goto yy106;
+ goto yy9;
+ } else {
+ if (yych <= '9') goto yy107;
+ if (yych == '=') goto yy110;
+ goto yy9;
+ }
yy25:
YYDEBUG(25, *YYCURSOR);
- YYMARKER = ++YYCURSOR;
- YYFILL(3);
- yych = *YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych <= '.') {
+ if (yych == '*') goto yy112;
+ goto yy9;
+ } else {
+ if (yych <= '/') goto yy12;
+ if (yych == '=') goto yy114;
+ goto yy9;
+ }
+yy26:
YYDEBUG(26, *YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy25;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'X') {
+ if (yych == 'B') goto yy116;
+ if (yych <= 'W') goto yy29;
+ goto yy118;
+ } else {
+ if (yych <= 'b') {
+ if (yych <= 'a') goto yy29;
+ goto yy116;
+ } else {
+ if (yych == 'x') goto yy118;
+ goto yy29;
+ }
}
- if (yych == '-') goto yy32;
- if (yych <= '@') goto yy27;
- if (yych <= '[') goto yy34;
yy27:
YYDEBUG(27, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2003 "Zend/zend_language_scanner.l"
+#line 1782 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
+ char *end;
+ if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
+ errno = 0;
+ ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0));
+ /* This isn't an assert, we need to ensure 019 isn't valid octal
+ * Because the lexing itself doesn't do that for us
+ */
+ if (end != yytext + yyleng) {
+ zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
+ ZVAL_UNDEF(zendlval);
+ if (PARSER_MODE()) {
+ RETURN_TOKEN(T_ERROR);
+ }
+ RETURN_TOKEN_WITH_VAL(T_LNUMBER);
+ }
+ } else {
+ errno = 0;
+ ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0));
+ if (errno == ERANGE) { /* Overflow */
+ errno = 0;
+ if (yytext[0] == '0') { /* octal overflow */
+ ZVAL_DOUBLE(zendlval, zend_oct_strtod(yytext, (const char **)&end));
+ } else {
+ ZVAL_DOUBLE(zendlval, zend_strtod(yytext, (const char **)&end));
+ }
+ /* Also not an assert for the same reason */
+ if (end != yytext + yyleng) {
+ zend_throw_exception(zend_ce_parse_error,
+ "Invalid numeric literal", 0);
+ ZVAL_UNDEF(zendlval);
+ if (PARSER_MODE()) {
+ RETURN_TOKEN(T_ERROR);
+ }
+ }
+ RETURN_TOKEN_WITH_VAL(T_DNUMBER);
+ }
+ /* Also not an assert for the same reason */
+ if (end != yytext + yyleng) {
+ zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
+ ZVAL_UNDEF(zendlval);
+ if (PARSER_MODE()) {
+ RETURN_TOKEN(T_ERROR);
+ }
+ RETURN_TOKEN_WITH_VAL(T_DNUMBER);
+ }
+ }
+ ZEND_ASSERT(!errno);
+ RETURN_TOKEN_WITH_VAL(T_LNUMBER);
}
-#line 1566 "Zend/zend_language_scanner.c"
+#line 1880 "Zend/zend_language_scanner.c"
yy28:
YYDEBUG(28, *YYCURSOR);
- ++YYCURSOR;
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(3);
+ yych = *YYCURSOR;
+yy29:
YYDEBUG(29, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1703 "Zend/zend_language_scanner.l"
- {
- yy_push_state(ST_LOOKING_FOR_VARNAME);
- RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
-}
-#line 1577 "Zend/zend_language_scanner.c"
+ if (yybm[0+yych] & 8) {
+ goto yy28;
+ }
+ if (yych <= 'D') {
+ if (yych == '.') goto yy107;
+ goto yy27;
+ } else {
+ if (yych <= 'E') goto yy117;
+ if (yych == 'e') goto yy117;
+ goto yy27;
+ }
yy30:
YYDEBUG(30, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == ':') goto yy119;
+ goto yy9;
+yy31:
YYDEBUG(31, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2400 "Zend/zend_language_scanner.l"
- {
- yy_push_state(ST_IN_SCRIPTING);
- yyless(1);
- RETURN_TOKEN(T_CURLY_OPEN);
-}
-#line 1589 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych <= ';') goto yy9;
+ if (yych <= '<') goto yy121;
+ if (yych <= '=') goto yy123;
+ if (yych <= '>') goto yy125;
+ goto yy9;
yy32:
YYDEBUG(32, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '>') 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 1997 "Zend/zend_language_scanner.l"
- {
- yyless(yyleng - 1);
- yy_push_state(ST_VAR_OFFSET);
- RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 1609 "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 1989 "Zend/zend_language_scanner.l"
+#line 2046 "Zend/zend_language_scanner.l"
{
- yyless(yyleng - 3);
- yy_push_state(ST_LOOKING_FOR_PROPERTY);
- RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
+ RETURN_TOKEN_WITH_STR(T_STRING, 0);
}
-#line 1633 "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 1966 "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 2418 "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);
-
- if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '"') == SUCCESS)
- || !PARSER_MODE()) {
- RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
- } else {
- RETURN_TOKEN(T_ERROR);
- }
-}
-#line 1739 "Zend/zend_language_scanner.c"
yy43:
YYDEBUG(43, *YYCURSOR);
++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+yy44:
YYDEBUG(44, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2407 "Zend/zend_language_scanner.l"
- {
- BEGIN(ST_IN_SCRIPTING);
- RETURN_TOKEN('"');
-}
-#line 1750 "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 2003 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 1793 "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 1703 "Zend/zend_language_scanner.l"
- {
- yy_push_state(ST_LOOKING_FOR_VARNAME);
- RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
-}
-#line 1804 "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 2400 "Zend/zend_language_scanner.l"
- {
- yy_push_state(ST_IN_SCRIPTING);
- yyless(1);
- RETURN_TOKEN(T_CURLY_OPEN);
-}
-#line 1816 "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);
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy185;
+ if (yych == 'i') goto yy185;
+ goto yy44;
+yy58:
+ YYDEBUG(58, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(59, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1997 "Zend/zend_language_scanner.l"
+#line 1453 "Zend/zend_language_scanner.l"
{
- yyless(yyleng - 1);
- yy_push_state(ST_VAR_OFFSET);
- RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
+ RETURN_TOKEN(T_NS_SEPARATOR);
}
-#line 1836 "Zend/zend_language_scanner.c"
-yy58:
- YYDEBUG(58, *YYCURSOR);
+#line 2255 "Zend/zend_language_scanner.c"
+yy60:
+ YYDEBUG(60, *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);
+ if (yych == '=') goto yy186;
+ goto yy9;
+yy61:
+ YYDEBUG(61, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '_') goto yy188;
+ goto yy44;
+yy62:
+ YYDEBUG(62, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(60, *YYCURSOR);
+ YYDEBUG(63, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1989 "Zend/zend_language_scanner.l"
+#line 2401 "Zend/zend_language_scanner.l"
{
- yyless(yyleng - 3);
- yy_push_state(ST_LOOKING_FOR_PROPERTY);
- RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 1860 "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 2386 "Zend/zend_language_scanner.l"
- {
- zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
-
- yyleng = heredoc_label->indentation + heredoc_label->length;
- YYCURSOR += yyleng - 1;
-
- heredoc_label_dtor(heredoc_label);
- efree(heredoc_label);
-
- BEGIN(ST_IN_SCRIPTING);
- RETURN_TOKEN(T_END_HEREDOC);
+ BEGIN(ST_BACKQUOTE);
+ RETURN_TOKEN('`');
}
-#line 1884 "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 2276 "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 1718 "Zend/zend_language_scanner.l"
+ {
+ yy_push_state(ST_IN_SCRIPTING);
+ RETURN_TOKEN('{');
+}
+#line 2287 "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 2518 "Zend/zend_language_scanner.l"
+#line 1730 "Zend/zend_language_scanner.l"
{
- zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
- int newline = 0, indentation = 0, spacing = 0;
-
- if (YYCURSOR > YYLIMIT) {
- RETURN_TOKEN(END);
+ RESET_DOC_COMMENT();
+ if (!zend_stack_is_empty(&SCNG(state_stack))) {
+ yy_pop_state();
}
-
- YYCURSOR--;
-
- while (YYCURSOR < YYLIMIT) {
- switch (*YYCURSOR++) {
- case '\r':
- if (*YYCURSOR == '\n') {
- YYCURSOR++;
- }
- /* fall through */
- case '\n':
- indentation = spacing = 0;
-
- while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
- if (*YYCURSOR == '\t') {
- spacing |= HEREDOC_USING_TABS;
- } else {
- spacing |= HEREDOC_USING_SPACES;
- }
- ++YYCURSOR;
- ++indentation;
- }
-
- if (YYCURSOR == YYLIMIT) {
- yyleng = YYCURSOR - SCNG(yy_text);
- HANDLE_NEWLINES(yytext, yyleng);
- ZVAL_NULL(zendlval);
- RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
- }
-
- /* 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)) {
- if (IS_LABEL_START(YYCURSOR[heredoc_label->length])) {
- continue;
- }
-
- if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
- zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
- }
-
- /* newline before label will be subtracted from returned text, but
- * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
- if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
- newline = 2; /* Windows newline */
- } else {
- newline = 1;
- }
-
- CG(increment_lineno) = 1; /* For newline before label */
-
- if (SCNG(heredoc_scan_ahead)) {
- SCNG(heredoc_indentation) = indentation;
- SCNG(heredoc_indentation_uses_spaces) = (spacing == HEREDOC_USING_SPACES);
- } else {
- YYCURSOR -= indentation;
- }
-
- 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;
- }
-
-heredoc_scan_done:
-
- yyleng = YYCURSOR - SCNG(yy_text);
- ZVAL_STRINGL(zendlval, yytext, yyleng);
-
- if (!SCNG(heredoc_scan_ahead) && !EG(exception) && PARSER_MODE()) {
- zend_string *copy = Z_STR_P(zendlval);
-
- if (!strip_multiline_string_indentation(zendlval, newline, heredoc_label->indentation, heredoc_label->indentation_uses_spaces)) {
- RETURN_TOKEN(T_ERROR);
- }
-
- if (UNEXPECTED(zend_scan_escape_string(zendlval, ZSTR_VAL(copy), ZSTR_LEN(copy), 0) != SUCCESS)) {
- zend_string_efree(copy);
- RETURN_TOKEN(T_ERROR);
- }
-
- zend_string_efree(copy);
- } else {
- HANDLE_NEWLINES(yytext, yyleng - newline);
- }
-
- RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
+ RETURN_TOKEN('}');
}
-#line 2049 "Zend/zend_language_scanner.c"
+#line 2307 "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;
-yy71:
- YYDEBUG(71, *YYCURSOR);
- YYMARKER = ++YYCURSOR;
- YYFILL(3);
- yych = *YYCURSOR;
- YYDEBUG(72, *YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy71;
- }
- if (yych == '-') goto yy78;
- if (yych <= '@') goto yy73;
- if (yych <= '[') goto yy80;
-yy73:
- YYDEBUG(73, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2003 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 2092 "Zend/zend_language_scanner.c"
-yy74:
- YYDEBUG(74, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(75, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1703 "Zend/zend_language_scanner.l"
- {
- yy_push_state(ST_LOOKING_FOR_VARNAME);
- RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
-}
-#line 2103 "Zend/zend_language_scanner.c"
-yy76:
- YYDEBUG(76, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(77, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2400 "Zend/zend_language_scanner.l"
- {
- yy_push_state(ST_IN_SCRIPTING);
- yyless(1);
- RETURN_TOKEN(T_CURLY_OPEN);
-}
-#line 2115 "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);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1997 "Zend/zend_language_scanner.l"
- {
- yyless(yyleng - 1);
- yy_push_state(ST_VAR_OFFSET);
- RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 2135 "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);
- ++YYCURSOR;
- YYDEBUG(84, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1989 "Zend/zend_language_scanner.l"
+#line 1617 "Zend/zend_language_scanner.l"
{
- yyless(yyleng - 3);
- yy_push_state(ST_LOOKING_FOR_PROPERTY);
- RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 2159 "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);
- yych = *YYCURSOR;
- if (yybm[0+yych] & 4) {
- goto yy89;
- }
- 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 'B':
- case 'b': goto yy121;
- case 'C':
- case 'c': goto yy122;
- case 'D':
- case 'd': goto yy123;
- case 'E':
- case 'e': goto yy124;
- case 'F':
- case 'f': goto yy125;
- case 'G':
- case 'g': goto yy126;
- case 'I':
- case 'i': goto yy129;
- case 'L':
- case 'l': goto yy130;
- case 'N':
- case 'n': goto yy131;
- case 'O':
- case 'o': goto yy132;
- case 'P':
- case 'p': goto yy133;
- case 'R':
- case 'r': goto yy134;
- case 'S':
- case 's': goto yy135;
- case 'T':
- case 't': goto yy136;
- 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;
- }
-yy87:
- YYDEBUG(87, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(88, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2720 "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 2337 "Zend/zend_language_scanner.c"
-yy89:
- YYDEBUG(89, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(90, *YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy89;
- }
- YYDEBUG(91, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1409 "Zend/zend_language_scanner.l"
- {
- goto return_whitespace;
-}
-#line 2353 "Zend/zend_language_scanner.c"
-yy92:
- YYDEBUG(92, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy153;
-yy93:
- YYDEBUG(93, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1692 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(yytext[0]);
-}
-#line 2365 "Zend/zend_language_scanner.c"
-yy94:
- YYDEBUG(94, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(95, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2203 "Zend/zend_language_scanner.l"
- {
- int bprefix = (yytext[0] != '"') ? 1 : 0;
-
- while (YYCURSOR < YYLIMIT) {
- switch (*YYCURSOR++) {
- case '"':
- yyleng = YYCURSOR - SCNG(yy_text);
- if (EXPECTED(zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == SUCCESS)
- || !PARSER_MODE()) {
- RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
- } else {
- RETURN_TOKEN(T_ERROR);
- }
- 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('"');
-}
-#line 2416 "Zend/zend_language_scanner.c"
-yy96:
- YYDEBUG(96, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(97, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2030 "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 (PARSER_MODE()) {
- SKIP_TOKEN(T_COMMENT);
- }
- RETURN_TOKEN(T_COMMENT);
-}
-#line 2454 "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:
- YYDEBUG(99, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '=') goto yy158;
- goto yy93;
-yy100:
- YYDEBUG(100, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '&') goto yy160;
- if (yych == '=') goto yy162;
- goto yy93;
-yy101:
- YYDEBUG(101, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(102, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2113 "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_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
- }
- }
-
- if (yyleng-bprefix-2 <= 1) {
- if (yyleng-bprefix-2 < 1) {
- ZVAL_EMPTY_STRING(zendlval);
- } else {
- zend_uchar c = (zend_uchar)*(yytext+bprefix+1);
- if (c == '\n' || c == '\r') {
- CG(zend_lineno)++;
- }
- ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
- }
- goto skip_escape_conversion;
- }
- ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
-
- /* convert escape sequences */
- s = Z_STRVAL_P(zendlval);
- end = s+Z_STRLEN_P(zendlval);
- while (1) {
- if (UNEXPECTED(*s=='\\')) {
- break;
- }
- if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
- CG(zend_lineno)++;
- }
- s++;
- if (s == end) {
- goto skip_escape_conversion;
- }
- }
-
- t = s;
- while (s<end) {
- if (*s=='\\') {
- s++;
- if (*s == '\\' || *s == '\'') {
- *t++ = *s;
+ RETURN_TOKEN(T_IS_NOT_EQUAL);
+}
+#line 2319 "Zend/zend_language_scanner.c"
+yy71:
+ YYDEBUG(71, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(72, *YYCURSOR);
+ if (yych <= '^') {
+ if (yych <= '9') {
+ if (yych >= '0') goto yy71;
} else {
- *t++ = '\\';
- *t++ = *s;
+ if (yych <= '@') goto yy73;
+ if (yych <= 'Z') goto yy71;
}
} else {
- *t++ = *s;
- }
- if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
- CG(zend_lineno)++;
+ if (yych <= '`') {
+ if (yych <= '_') goto yy71;
+ } else {
+ if (yych <= 'z') goto yy71;
+ if (yych >= 0x80) goto yy71;
+ }
}
- s++;
- }
- *t = 0;
- Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
-
-skip_escape_conversion:
- if (SCNG(output_filter)) {
- size_t sz = 0;
- char *str = NULL;
- s = Z_STRVAL_P(zendlval);
- // TODO: avoid reallocation ???
- SCNG(output_filter)((unsigned char **)&str, &sz, (unsigned char *)s, (size_t)Z_STRLEN_P(zendlval));
- ZVAL_STRINGL(zendlval, str, sz);
- }
- RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
+yy73:
+ YYDEBUG(73, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 2024 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
}
-#line 2574 "Zend/zend_language_scanner.c"
-yy103:
- YYDEBUG(103, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= 'S') {
- if (yych <= 'D') {
- if (yych <= ' ') {
- if (yych == '\t') goto yy165;
- if (yych <= 0x1F) goto yy93;
- goto yy165;
+#line 2348 "Zend/zend_language_scanner.c"
+yy74:
+ YYDEBUG(74, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(75, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1661 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_MOD_EQUAL);
+}
+#line 2358 "Zend/zend_language_scanner.c"
+yy76:
+ YYDEBUG(76, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(77, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1689 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_BOOLEAN_AND);
+}
+#line 2368 "Zend/zend_language_scanner.c"
+yy78:
+ YYDEBUG(78, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(79, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1673 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_AND_EQUAL);
+}
+#line 2378 "Zend/zend_language_scanner.c"
+yy80:
+ YYDEBUG(80, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(7);
+ yych = *YYCURSOR;
+yy81:
+ YYDEBUG(81, *YYCURSOR);
+ if (yybm[0+yych] & 32) {
+ goto yy80;
+ }
+ switch (yych) {
+ case 'A':
+ case 'a': goto yy83;
+ case 'B':
+ case 'b': goto yy84;
+ case 'D':
+ case 'd': goto yy85;
+ case 'F':
+ case 'f': goto yy86;
+ case 'I':
+ case 'i': goto yy87;
+ case 'O':
+ case 'o': goto yy88;
+ case 'R':
+ case 'r': goto yy89;
+ case 'S':
+ case 's': goto yy90;
+ case 'U':
+ 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 {
- if (yych <= '@') goto yy93;
- if (yych == 'C') goto yy93;
- goto yy165;
+ goto yy27;
}
} else {
- if (yych <= 'I') {
- if (yych == 'F') goto yy165;
- if (yych <= 'H') goto yy93;
- goto yy165;
+ if (yyaccept == 2) {
+ goto yy36;
} else {
- if (yych == 'O') goto yy165;
- if (yych <= 'Q') goto yy93;
- goto yy165;
+ goto yy109;
}
}
} else {
- if (yych <= 'f') {
- if (yych <= 'b') {
- if (yych == 'U') goto yy165;
- if (yych <= '`') goto yy93;
- goto yy165;
+ if (yyaccept <= 5) {
+ if (yyaccept == 4) {
+ goto yy113;
} else {
- if (yych == 'd') goto yy165;
- if (yych <= 'e') goto yy93;
- goto yy165;
+ goto yy122;
}
} else {
- if (yych <= 'o') {
- if (yych == 'i') goto yy165;
- if (yych <= 'n') goto yy93;
- goto yy165;
- } else {
- if (yych <= 's') {
- if (yych <= 'q') goto yy93;
- goto yy165;
- } else {
- if (yych == 'u') goto yy165;
- goto yy93;
- }
- }
+ goto yy457;
}
}
-yy104:
- YYDEBUG(104, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy93;
-yy105:
- YYDEBUG(105, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '*') goto yy176;
- if (yych == '=') goto yy178;
- goto yy93;
-yy106:
- YYDEBUG(106, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '+') goto yy180;
- if (yych == '=') goto yy182;
- goto yy93;
-yy107:
- YYDEBUG(107, *YYCURSOR);
+yy83:
+ YYDEBUG(83, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= '<') {
- if (yych == '-') goto yy184;
- goto yy93;
- } else {
- if (yych <= '=') goto yy186;
- if (yych <= '>') goto yy188;
- goto yy93;
- }
-yy108:
- YYDEBUG(108, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '/') {
- if (yych == '.') goto yy190;
- goto yy93;
- } else {
- if (yych <= '9') goto yy191;
- if (yych == '=') goto yy194;
- goto yy93;
- }
-yy109:
- YYDEBUG(109, *YYCURSOR);
+ if (yych == 'R') goto yy195;
+ if (yych == 'r') goto yy195;
+ goto yy82;
+yy84:
+ YYDEBUG(84, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= '.') {
- if (yych == '*') goto yy196;
- goto yy93;
- } else {
- if (yych <= '/') goto yy96;
- if (yych == '=') goto yy198;
- goto yy93;
- }
-yy110:
- YYDEBUG(110, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 8) {
- goto yy112;
- }
- if (yych <= 'W') {
- if (yych <= 'A') {
- if (yych == '.') goto yy191;
- } else {
- if (yych <= 'B') goto yy200;
- if (yych == 'E') goto yy201;
- }
+ if (yych <= 'O') {
+ if (yych == 'I') goto yy196;
+ if (yych <= 'N') goto yy82;
+ goto yy197;
} else {
- if (yych <= 'd') {
- if (yych <= 'X') goto yy202;
- if (yych == 'b') goto yy200;
+ if (yych <= 'i') {
+ if (yych <= 'h') goto yy82;
+ goto yy196;
} else {
- if (yych <= 'e') goto yy201;
- if (yych == 'x') goto yy202;
+ if (yych == 'o') goto yy197;
+ goto yy82;
}
}
-yy111:
- YYDEBUG(111, *YYCURSOR);
+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);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy200;
+ if (yych == 'n') goto yy200;
+ goto yy82;
+yy88:
+ YYDEBUG(88, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'B') goto yy201;
+ if (yych == 'b') goto yy201;
+ goto yy82;
+yy89:
+ YYDEBUG(89, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy202;
+ if (yych == 'e') goto yy202;
+ goto yy82;
+yy90:
+ YYDEBUG(90, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy203;
+ if (yych == 't') goto yy203;
+ goto yy82;
+yy91:
+ YYDEBUG(91, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy204;
+ if (yych == 'n') goto yy204;
+ goto yy82;
+yy92:
+ YYDEBUG(92, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy205;
+ YYDEBUG(93, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1761 "Zend/zend_language_scanner.l"
+#line 1645 "Zend/zend_language_scanner.l"
{
- char *end;
- if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
- errno = 0;
- ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0));
- /* This isn't an assert, we need to ensure 019 isn't valid octal
- * Because the lexing itself doesn't do that for us
- */
- if (end != yytext + yyleng) {
- zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
- ZVAL_UNDEF(zendlval);
- if (PARSER_MODE()) {
- RETURN_TOKEN(T_ERROR);
- }
- RETURN_TOKEN_WITH_VAL(T_LNUMBER);
- }
- } else {
- errno = 0;
- ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0));
- if (errno == ERANGE) { /* Overflow */
- errno = 0;
- if (yytext[0] == '0') { /* octal overflow */
- ZVAL_DOUBLE(zendlval, zend_oct_strtod(yytext, (const char **)&end));
- } else {
- ZVAL_DOUBLE(zendlval, zend_strtod(yytext, (const char **)&end));
- }
- /* Also not an assert for the same reason */
- if (end != yytext + yyleng) {
- zend_throw_exception(zend_ce_parse_error,
- "Invalid numeric literal", 0);
- ZVAL_UNDEF(zendlval);
- if (PARSER_MODE()) {
- RETURN_TOKEN(T_ERROR);
- }
- }
- RETURN_TOKEN_WITH_VAL(T_DNUMBER);
- }
- /* Also not an assert for the same reason */
- if (end != yytext + yyleng) {
- zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
- ZVAL_UNDEF(zendlval);
- if (PARSER_MODE()) {
- RETURN_TOKEN(T_ERROR);
- }
- RETURN_TOKEN_WITH_VAL(T_DNUMBER);
- }
- }
- ZEND_ASSERT(!errno);
- RETURN_TOKEN_WITH_VAL(T_LNUMBER);
+ RETURN_TOKEN(T_POW);
+}
+#line 2512 "Zend/zend_language_scanner.c"
+yy94:
+ YYDEBUG(94, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(95, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1641 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_MUL_EQUAL);
+}
+#line 2522 "Zend/zend_language_scanner.c"
+yy96:
+ YYDEBUG(96, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(97, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1597 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_INC);
+}
+#line 2532 "Zend/zend_language_scanner.c"
+yy98:
+ YYDEBUG(98, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(99, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1633 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_PLUS_EQUAL);
+}
+#line 2542 "Zend/zend_language_scanner.c"
+yy100:
+ YYDEBUG(100, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(101, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1601 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_DEC);
+}
+#line 2552 "Zend/zend_language_scanner.c"
+yy102:
+ YYDEBUG(102, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(103, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1637 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_MINUS_EQUAL);
+}
+#line 2562 "Zend/zend_language_scanner.c"
+yy104:
+ YYDEBUG(104, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(105, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1425 "Zend/zend_language_scanner.l"
+ {
+ yy_push_state(ST_LOOKING_FOR_PROPERTY);
+ RETURN_TOKEN(T_OBJECT_OPERATOR);
}
-#line 2755 "Zend/zend_language_scanner.c"
-yy112:
- YYDEBUG(112, *YYCURSOR);
- yyaccept = 1;
+#line 2573 "Zend/zend_language_scanner.c"
+yy106:
+ YYDEBUG(106, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '.') goto yy207;
+ goto yy82;
+yy107:
+ YYDEBUG(107, *YYCURSOR);
+ yyaccept = 3;
YYMARKER = ++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
- YYDEBUG(113, *YYCURSOR);
- if (yybm[0+yych] & 8) {
- goto yy112;
- }
+ YYDEBUG(108, *YYCURSOR);
if (yych <= 'D') {
- if (yych == '.') goto yy191;
- goto yy111;
+ if (yych <= '/') goto yy109;
+ if (yych <= '9') goto yy107;
} else {
- if (yych <= 'E') goto yy201;
- if (yych == 'e') goto yy201;
- goto yy111;
+ if (yych <= 'E') goto yy117;
+ if (yych == 'e') goto yy117;
+ }
+yy109:
+ YYDEBUG(109, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1886 "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_WITH_VAL(T_DNUMBER);
+}
+#line 2605 "Zend/zend_language_scanner.c"
+yy110:
+ YYDEBUG(110, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(111, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1657 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_CONCAT_EQUAL);
+}
+#line 2615 "Zend/zend_language_scanner.c"
+yy112:
+ YYDEBUG(112, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '*') goto yy209;
+yy113:
+ YYDEBUG(113, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 2083 "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);
+ if (PARSER_MODE()) {
+ SKIP_TOKEN(T_DOC_COMMENT);
}
+ RETURN_TOKEN(T_DOC_COMMENT);
+ }
+
+ if (PARSER_MODE()) {
+ SKIP_TOKEN(T_COMMENT);
+ }
+ RETURN_TOKEN(T_COMMENT);
+}
+#line 2663 "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 1653 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_DIV_EQUAL);
+}
+#line 2673 "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 2025 "Zend/zend_language_scanner.l"
+#line 1449 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN_WITH_STR(T_STRING, 0);
+ RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
}
-#line 2840 "Zend/zend_language_scanner.c"
+#line 2709 "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 1705 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_SL);
+}
+#line 2724 "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 1625 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
+}
+#line 2735 "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 1613 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_IS_EQUAL);
+}
+#line 2750 "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 1581 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_DOUBLE_ARROW);
+}
+#line 2760 "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 1629 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
+}
+#line 2770 "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 1709 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_SR);
+}
+#line 2781 "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 2122 "Zend/zend_language_scanner.l"
+ {
+ BEGIN(INITIAL);
+ if (yytext[yyleng-1] != '>') {
+ CG(increment_lineno) = 1;
+ }
+ if (PARSER_MODE()) {
+ RETURN_TOKEN(';'); /* implicit ';' at php-end tag */
+ }
+ RETURN_TOKEN(T_CLOSE_TAG);
+}
+#line 2801 "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:
- 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;
- }
- }
+ ++YYCURSOR;
+ YYDEBUG(137, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1461 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_COALESCE);
+}
+#line 2811 "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 1432 "Zend/zend_language_scanner.l"
+#line 1365 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_NS_SEPARATOR);
+ RETURN_TOKEN(T_AS);
}
-#line 3129 "Zend/zend_language_scanner.c"
+#line 2842 "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 2380 "Zend/zend_language_scanner.l"
- {
- BEGIN(ST_BACKQUOTE);
- RETURN_TOKEN('`');
-}
-#line 3150 "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 1697 "Zend/zend_language_scanner.l"
- {
- yy_push_state(ST_IN_SCRIPTING);
- RETURN_TOKEN('{');
-}
-#line 3161 "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 1709 "Zend/zend_language_scanner.l"
+#line 1333 "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 3181 "Zend/zend_language_scanner.c"
+#line 2932 "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 1596 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_IS_NOT_EQUAL);
-}
-#line 3193 "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 2003 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 3222 "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 1640 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_MOD_EQUAL);
-}
-#line 3232 "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 1668 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_BOOLEAN_AND);
-}
-#line 3242 "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 1652 "Zend/zend_language_scanner.l"
+#line 1309 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_AND_EQUAL);
+ RETURN_TOKEN(T_IF);
}
-#line 3252 "Zend/zend_language_scanner.c"
-yy164:
- YYDEBUG(164, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(7);
- yych = *YYCURSOR;
+#line 3021 "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 1693 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_LOGICAL_OR);
+}
+#line 3086 "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 1624 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_POW);
-}
-#line 3386 "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 1620 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_MUL_EQUAL);
-}
-#line 3396 "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 1576 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_INC);
-}
-#line 3406 "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 1612 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_PLUS_EQUAL);
-}
-#line 3416 "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 1580 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_DEC);
-}
-#line 3426 "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 1616 "Zend/zend_language_scanner.l"
+#line 1681 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_MINUS_EQUAL);
+ RETURN_TOKEN(T_XOR_EQUAL);
}
-#line 3436 "Zend/zend_language_scanner.c"
+#line 3204 "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 1404 "Zend/zend_language_scanner.l"
+#line 1677 "Zend/zend_language_scanner.l"
{
- yy_push_state(ST_LOOKING_FOR_PROPERTY);
- RETURN_TOKEN(T_OBJECT_OPERATOR);
+ RETURN_TOKEN(T_OR_EQUAL);
}
-#line 3447 "Zend/zend_language_scanner.c"
-yy190:
- YYDEBUG(190, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '.') goto yy291;
- goto yy166;
+#line 3236 "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 1865 "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_WITH_VAL(T_DNUMBER);
+#line 1685 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_BOOLEAN_OR);
}
-#line 3479 "Zend/zend_language_scanner.c"
-yy194:
- YYDEBUG(194, *YYCURSOR);
+#line 3246 "Zend/zend_language_scanner.c"
+yy193:
+ YYDEBUG(193, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(195, *YYCURSOR);
+ YYDEBUG(194, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1636 "Zend/zend_language_scanner.l"
+#line 1609 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_CONCAT_EQUAL);
+ RETURN_TOKEN(T_IS_NOT_IDENTICAL);
}
-#line 3489 "Zend/zend_language_scanner.c"
+#line 3256 "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 2062 "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);
- if (PARSER_MODE()) {
- SKIP_TOKEN(T_DOC_COMMENT);
- }
- RETURN_TOKEN(T_DOC_COMMENT);
- }
-
- if (PARSER_MODE()) {
- SKIP_TOKEN(T_COMMENT);
- }
- RETURN_TOKEN(T_COMMENT);
-}
-#line 3537 "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 1632 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_DIV_EQUAL);
-}
-#line 3547 "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 1428 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
-}
-#line 3583 "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 1684 "Zend/zend_language_scanner.l"
+#line 1649 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_SL);
+ RETURN_TOKEN(T_POW_EQUAL);
}
-#line 3598 "Zend/zend_language_scanner.c"
+#line 3326 "Zend/zend_language_scanner.c"
yy207:
YYDEBUG(207, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '>') goto yy307;
YYDEBUG(208, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1604 "Zend/zend_language_scanner.l"
+#line 1457 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
+ RETURN_TOKEN(T_ELLIPSIS);
}
-#line 3609 "Zend/zend_language_scanner.c"
+#line 3336 "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 1592 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_IS_EQUAL);
-}
-#line 3624 "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 1560 "Zend/zend_language_scanner.l"
+#line 1754 "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_WITH_VAL(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_WITH_VAL(T_DNUMBER);
+ }
}
-#line 3634 "Zend/zend_language_scanner.c"
+#line 3388 "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 1608 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
-}
-#line 3644 "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 1688 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_SR);
-}
-#line 3655 "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 2101 "Zend/zend_language_scanner.l"
+#line 1833 "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 (PARSER_MODE()) {
- RETURN_TOKEN(';'); /* implicit ';' at php-end tag */
+
+ 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_WITH_VAL(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_WITH_VAL(T_DNUMBER);
}
- RETURN_TOKEN(T_CLOSE_TAG);
}
-#line 3675 "Zend/zend_language_scanner.c"
-yy220:
- YYDEBUG(220, *YYCURSOR);
+#line 3442 "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 1440 "Zend/zend_language_scanner.l"
+#line 1665 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_COALESCE);
+ RETURN_TOKEN(T_SL_EQUAL);
}
-#line 3685 "Zend/zend_language_scanner.c"
-yy222:
- YYDEBUG(222, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy315;
- if (yych == 's') goto yy315;
- goto yy128;
+#line 3481 "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 1621 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_SPACESHIP);
+}
+#line 3491 "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 1344 "Zend/zend_language_scanner.l"
+#line 1605 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_AS);
+ RETURN_TOKEN(T_IS_IDENTICAL);
}
-#line 3716 "Zend/zend_language_scanner.c"
+#line 3501 "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 1669 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_SR_EQUAL);
+}
+#line 3511 "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 1312 "Zend/zend_language_scanner.l"
+#line 1697 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_DO);
+ RETURN_TOKEN(T_LOGICAL_AND);
}
-#line 3806 "Zend/zend_language_scanner.c"
+#line 3539 "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 1288 "Zend/zend_language_scanner.l"
+#line 1267 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_IF);
+ RETURN_TOKEN(T_EXIT);
}
-#line 3895 "Zend/zend_language_scanner.c"
+#line 3624 "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 1672 "Zend/zend_language_scanner.l"
+#line 1337 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_LOGICAL_OR);
+ RETURN_TOKEN(T_FOR);
}
-#line 3960 "Zend/zend_language_scanner.c"
+#line 3710 "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 1465 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_NEW);
+}
+#line 3783 "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 1660 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_XOR_EQUAL);
-}
-#line 4078 "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 1656 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_OR_EQUAL);
-}
-#line 4110 "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 1664 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_BOOLEAN_OR);
-}
-#line 4120 "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 1588 "Zend/zend_language_scanner.l"
+#line 1293 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_IS_NOT_IDENTICAL);
+ RETURN_TOKEN(T_TRY);
}
-#line 4130 "Zend/zend_language_scanner.c"
-yy279:
- YYDEBUG(279, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy381;
- if (yych == 'r') goto yy381;
- goto yy166;
+#line 3860 "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 1529 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_USE);
+}
+#line 3879 "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 1473 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_VAR);
+}
+#line 3892 "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 1701 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_LOGICAL_XOR);
+}
+#line 3911 "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 1628 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_POW_EQUAL);
-}
-#line 4200 "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 1436 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_ELLIPSIS);
-}
-#line 4210 "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 1733 "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_WITH_VAL(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_WITH_VAL(T_DNUMBER);
- }
-}
-#line 4262 "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 1812 "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_WITH_VAL(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_WITH_VAL(T_DNUMBER);
- }
-}
-#line 4316 "Zend/zend_language_scanner.c"
-yy303:
- YYDEBUG(303, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
- 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 == 'E') goto yy386;
+ if (yych == 'e') goto yy386;
+ goto yy383;
+yy303:
+ YYDEBUG(303, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy387;
+ if (yych == 'e') goto yy387;
+ goto yy82;
+yy304:
+ YYDEBUG(304, *YYCURSOR);
+ 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 1644 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_SL_EQUAL);
-}
-#line 4355 "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 1600 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_SPACESHIP);
-}
-#line 4365 "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 1584 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_IS_IDENTICAL);
-}
-#line 4375 "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 1648 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_SR_EQUAL);
-}
-#line 4385 "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 1676 "Zend/zend_language_scanner.l"
+#line 1377 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_LOGICAL_AND);
+ RETURN_TOKEN(T_CASE);
}
-#line 4413 "Zend/zend_language_scanner.c"
-yy318:
- YYDEBUG(318, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy398;
- if (yych == 'a') goto yy398;
- goto yy128;
+#line 4129 "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 1397 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_ECHO);
+}
+#line 4184 "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 1246 "Zend/zend_language_scanner.l"
+#line 1321 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_EXIT);
+ RETURN_TOKEN(T_ELSE);
}
-#line 4498 "Zend/zend_language_scanner.c"
+#line 4212 "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 1505 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_EVAL);
+}
+#line 4261 "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 1316 "Zend/zend_language_scanner.l"
+#line 1263 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_FOR);
+ RETURN_TOKEN(T_EXIT);
}
-#line 4584 "Zend/zend_language_scanner.c"
+#line 4274 "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 1393 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_GOTO);
+}
+#line 4317 "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);
+ yych = *++YYCURSOR;
+ if (yybm[0+yych] & 16) {
+ goto yy43;
+ }
+ YYDEBUG(353, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1444 "Zend/zend_language_scanner.l"
+#line 1585 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_NEW);
+ RETURN_TOKEN(T_LIST);
}
-#line 4657 "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;
- }
- }
+#line 4370 "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 1272 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_TRY);
-}
-#line 4734 "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 1508 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_USE);
-}
-#line 4753 "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 1452 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_VAR);
-}
-#line 4766 "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 1680 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_LOGICAL_XOR);
-}
-#line 4785 "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 1477 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_INT_CAST);
+}
+#line 4561 "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;
+yy393:
+ YYDEBUG(393, *YYCURSOR);
+ 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);
+ ++YYCURSOR;
+ YYFILL(3);
+ yych = *YYCURSOR;
+yy395:
+ YYDEBUG(395, *YYCURSOR);
+ if (yych <= 'Z') {
+ if (yych <= '/') {
+ if (yych == '\'') goto yy483;
+ goto yy82;
+ } else {
+ if (yych <= '9') goto yy394;
+ if (yych <= '@') goto yy82;
+ goto yy394;
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych == '_') goto yy394;
+ goto yy82;
+ } else {
+ if (yych <= 'z') goto yy394;
+ if (yych <= 0x7F) goto yy82;
+ goto yy394;
+ }
+ }
+yy396:
+ YYDEBUG(396, *YYCURSOR);
+ ++YYCURSOR;
+yy397:
+ YYDEBUG(397, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 2270 "Zend/zend_language_scanner.l"
+ {
+ char *s;
+ unsigned char *saved_cursor;
+ int bprefix = (yytext[0] != '<') ? 1 : 0, spacing = 0, indentation = 0;
+ zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
+ zend_bool is_heredoc = 1;
+
+ 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;
+ is_heredoc = 0;
+
+ BEGIN(ST_NOWDOC);
+ } else {
+ if (*s == '"') {
+ s++;
+ heredoc_label->length -= 2;
+ }
+
+ BEGIN(ST_HEREDOC);
+ }
+
+ heredoc_label->label = estrndup(s, heredoc_label->length);
+ heredoc_label->indentation = 0;
+ saved_cursor = YYCURSOR;
+
+ zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
+
+ while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
+ if (*YYCURSOR == '\t') {
+ spacing |= HEREDOC_USING_TABS;
} else {
- if (yych <= '\r') goto yy391;
- if (yych == ' ') goto yy391;
- goto yy197;
+ spacing |= HEREDOC_USING_SPACES;
}
-yy393:
- YYDEBUG(393, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '"') goto yy166;
- if (yych <= '/') goto yy477;
- if (yych <= '9') goto yy166;
- goto yy477;
-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);
- yych = *YYCURSOR;
- YYDEBUG(396, *YYCURSOR);
- if (yych <= '@') {
- if (yych <= '\f') {
- if (yych == '\n') goto yy480;
- goto yy166;
- } else {
- if (yych <= '\r') goto yy482;
- if (yych <= '/') goto yy166;
- if (yych <= '9') goto yy395;
- goto yy166;
+ ++indentation;
+ }
+
+ if (YYCURSOR == YYLIMIT) {
+ YYCURSOR = saved_cursor;
+ RETURN_TOKEN(T_START_HEREDOC);
+ }
+
+ /* Check for ending label on the next line */
+ if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
+ if (!IS_LABEL_START(YYCURSOR[heredoc_label->length])) {
+ if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
+ zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
}
- } else {
- if (yych <= '_') {
- 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;
+
+ YYCURSOR = saved_cursor;
+ heredoc_label->indentation = indentation;
+
+ BEGIN(ST_END_HEREDOC);
+ RETURN_TOKEN(T_START_HEREDOC);
+ }
+ }
+
+ YYCURSOR = saved_cursor;
+
+ if (is_heredoc && !SCNG(heredoc_scan_ahead)) {
+ zend_lex_state current_state;
+ int heredoc_nesting_level = 1;
+ int first_token = 0;
+
+ zend_save_lexical_state(¤t_state);
+
+ SCNG(heredoc_scan_ahead) = 1;
+ SCNG(heredoc_indentation) = 0;
+ SCNG(heredoc_indentation_uses_spaces) = 0;
+ LANG_SCNG(on_event) = NULL;
+
+ zend_ptr_stack_reverse_apply(¤t_state.heredoc_label_stack, copy_heredoc_label_stack);
+
+ while (heredoc_nesting_level) {
+ zval zv;
+ int retval;
+
+ ZVAL_UNDEF(&zv);
+ retval = lex_scan(&zv, NULL);
+ zval_dtor(&zv);
+
+ if (EG(exception)) {
+ zend_clear_exception();
+ break;
+ }
+
+ if (!first_token) {
+ first_token = retval;
+ }
+
+ switch (retval) {
+ case T_START_HEREDOC:
+ ++heredoc_nesting_level;
+ break;
+ case T_END_HEREDOC:
+ --heredoc_nesting_level;
+ break;
+ case END:
+ heredoc_nesting_level = 0;
}
}
-yy397:
- YYDEBUG(397, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy483;
- if (yych == 'r') goto yy483;
- goto yy128;
+
+ if (
+ (first_token == T_VARIABLE
+ || first_token == T_DOLLAR_OPEN_CURLY_BRACES
+ || first_token == T_CURLY_OPEN
+ ) && SCNG(heredoc_indentation)) {
+ zend_throw_exception_ex(zend_ce_parse_error, 0, "Invalid body indentation level (expecting an indentation level of at least %d)", SCNG(heredoc_indentation));
+ }
+
+ heredoc_label->indentation = SCNG(heredoc_indentation);
+ heredoc_label->indentation_uses_spaces = SCNG(heredoc_indentation_uses_spaces);
+
+ zend_restore_lexical_state(¤t_state);
+ SCNG(heredoc_scan_ahead) = 0;
+ CG(increment_lineno) = 0;
+ }
+
+ RETURN_TOKEN(T_START_HEREDOC);
+}
+#line 4788 "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 1356 "Zend/zend_language_scanner.l"
+#line 1589 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_CASE);
+ RETURN_TOKEN(T_ARRAY);
}
-#line 5003 "Zend/zend_language_scanner.c"
-yy403:
- YYDEBUG(403, *YYCURSOR);
+#line 4812 "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 1385 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_BREAK);
+}
+#line 4825 "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 1297 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_CATCH);
+}
+#line 4844 "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 1405 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_CLASS);
+}
+#line 4857 "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 1376 "Zend/zend_language_scanner.l"
+#line 1469 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ECHO);
+ RETURN_TOKEN(T_CLONE);
}
-#line 5058 "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 4870 "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 1300 "Zend/zend_language_scanner.l"
+#line 1275 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ELSE);
+ RETURN_TOKEN(T_CONST);
}
-#line 5086 "Zend/zend_language_scanner.c"
+#line 4883 "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 1545 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_EMPTY);
+}
+#line 4920 "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 1484 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_EVAL);
-}
-#line 5135 "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 1242 "Zend/zend_language_scanner.l"
+#line 1317 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_EXIT);
+ RETURN_TOKEN(T_ENDIF);
}
-#line 5148 "Zend/zend_language_scanner.c"
+#line 4945 "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 1561 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_FINAL);
+}
+#line 4991 "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 1372 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_GOTO);
-}
-#line 5191 "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 1564 "Zend/zend_language_scanner.l"
+#line 1541 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_LIST);
+ RETURN_TOKEN(T_ISSET);
}
-#line 5244 "Zend/zend_language_scanner.c"
+#line 5052 "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 1401 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_PRINT);
+}
+#line 5071 "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 1305 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_THROW);
+}
+#line 5126 "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 1413 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_TRAIT);
+}
+#line 5139 "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 1577 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_UNSET);
+}
+#line 5152 "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 1325 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_WHILE);
+}
+#line 5165 "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 1289 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_YIELD);
+}
+#line 5187 "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 1456 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_INT_CAST);
-}
-#line 5435 "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 1497 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_BOOL_CAST);
+}
+#line 5283 "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 1481 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_DOUBLE_CAST);
+}
+#line 5317 "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 2249 "Zend/zend_language_scanner.l"
- {
- char *s;
- unsigned char *saved_cursor;
- int bprefix = (yytext[0] != '<') ? 1 : 0, spacing = 0, indentation = 0;
- zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
- zend_bool is_heredoc = 1;
-
- 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;
- is_heredoc = 0;
-
- BEGIN(ST_NOWDOC);
- } else {
- if (*s == '"') {
- s++;
- heredoc_label->length -= 2;
- }
-
- BEGIN(ST_HEREDOC);
- }
-
- heredoc_label->label = estrndup(s, heredoc_label->length);
- heredoc_label->indentation = 0;
- saved_cursor = YYCURSOR;
-
- zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
-
- while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
- if (*YYCURSOR == '\t') {
- spacing |= HEREDOC_USING_TABS;
- } else {
- spacing |= HEREDOC_USING_SPACES;
- }
++YYCURSOR;
- ++indentation;
- }
-
- if (YYCURSOR == YYLIMIT) {
- YYCURSOR = saved_cursor;
- RETURN_TOKEN(T_START_HEREDOC);
- }
-
- /* Check for ending label on the next line */
- if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
- if (!IS_LABEL_START(YYCURSOR[heredoc_label->length])) {
- if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
- zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
- }
-
- YYCURSOR = saved_cursor;
- heredoc_label->indentation = indentation;
-
- BEGIN(ST_END_HEREDOC);
- RETURN_TOKEN(T_START_HEREDOC);
- }
- }
-
- YYCURSOR = saved_cursor;
-
- if (is_heredoc && !SCNG(heredoc_scan_ahead)) {
- zend_lex_state current_state;
- int heredoc_nesting_level = 1;
- int first_token = 0;
-
- zend_save_lexical_state(¤t_state);
-
- SCNG(heredoc_scan_ahead) = 1;
- SCNG(heredoc_indentation) = 0;
- SCNG(heredoc_indentation_uses_spaces) = 0;
- LANG_SCNG(on_event) = NULL;
-
- zend_ptr_stack_reverse_apply(¤t_state.heredoc_label_stack, copy_heredoc_label_stack);
-
- while (heredoc_nesting_level) {
- zval zv;
- int retval;
-
- ZVAL_UNDEF(&zv);
- retval = lex_scan(&zv, NULL);
- zval_dtor(&zv);
-
- if (EG(exception)) {
- zend_clear_exception();
- break;
- }
-
- if (!first_token) {
- first_token = retval;
- }
-
- switch (retval) {
- case T_START_HEREDOC:
- ++heredoc_nesting_level;
- break;
- case T_END_HEREDOC:
- --heredoc_nesting_level;
- break;
- case END:
- heredoc_nesting_level = 0;
- }
- }
-
- if (
- (first_token == T_VARIABLE
- || first_token == T_DOLLAR_OPEN_CURLY_BRACES
- || first_token == T_CURLY_OPEN
- ) && SCNG(heredoc_indentation)) {
- zend_throw_exception_ex(zend_ce_parse_error, 0, "Invalid body indentation level (expecting an indentation level of at least %d)", SCNG(heredoc_indentation));
- }
-
- heredoc_label->indentation = SCNG(heredoc_indentation);
- heredoc_label->indentation_uses_spaces = SCNG(heredoc_indentation_uses_spaces);
-
- zend_restore_lexical_state(¤t_state);
- SCNG(heredoc_scan_ahead) = 0;
- CG(increment_lineno) = 0;
- }
-
- RETURN_TOKEN(T_START_HEREDOC);
-}
-#line 5662 "Zend/zend_language_scanner.c"
-yy482:
+ 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 1568 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_ARRAY);
-}
-#line 5686 "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 1364 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_BREAK);
-}
-#line 5699 "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 1276 "Zend/zend_language_scanner.l"
+#line 1313 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_CATCH);
+ RETURN_TOKEN(T_ELSEIF);
}
-#line 5718 "Zend/zend_language_scanner.c"
+#line 5386 "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 1384 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_CLASS);
-}
-#line 5731 "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 1448 "Zend/zend_language_scanner.l"
+#line 1341 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_CLONE);
+ RETURN_TOKEN(T_ENDFOR);
}
-#line 5744 "Zend/zend_language_scanner.c"
+#line 5420 "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 1254 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_CONST);
-}
-#line 5757 "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 1524 "Zend/zend_language_scanner.l"
+#line 1537 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_EMPTY);
+ RETURN_TOKEN(T_GLOBAL);
}
-#line 5794 "Zend/zend_language_scanner.c"
+#line 5469 "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 1296 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_ENDIF);
-}
-#line 5819 "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 1540 "Zend/zend_language_scanner.l"
+#line 1573 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_FINAL);
+ RETURN_TOKEN(T_PUBLIC);
}
-#line 5865 "Zend/zend_language_scanner.c"
+#line 5530 "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 1279 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_RETURN);
+}
+#line 5549 "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 1553 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_STATIC);
+}
+#line 5562 "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 1369 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_SWITCH);
+}
+#line 5575 "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 1520 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_ISSET);
-}
-#line 5926 "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 1380 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_PRINT);
-}
-#line 5945 "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 1489 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_ARRAY_CAST);
+}
+#line 5659 "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 1284 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_THROW);
-}
-#line 6000 "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 1392 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_TRAIT);
-}
-#line 6013 "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 1556 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_UNSET);
-}
-#line 6026 "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 1304 "Zend/zend_language_scanner.l"
+#line 1501 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_WHILE);
+ RETURN_TOKEN(T_UNSET_CAST);
}
-#line 6039 "Zend/zend_language_scanner.c"
+#line 5709 "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 1268 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_YIELD);
-}
-#line 6061 "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 1353 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_DECLARE);
+}
+#line 5740 "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 1381 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_DEFAULT);
+}
+#line 5753 "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 1417 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_EXTENDS);
+}
+#line 5790 "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 1301 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_FINALLY);
+}
+#line 5803 "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 1476 "Zend/zend_language_scanner.l"
+#line 1345 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_BOOL_CAST);
+ RETURN_TOKEN(T_FOREACH);
}
-#line 6157 "Zend/zend_language_scanner.c"
+#line 5816 "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 1509 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_INCLUDE);
+}
+#line 5854 "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 1460 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_DOUBLE_CAST);
-}
-#line 6191 "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;
-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;
+ if (yych == 'C') goto yy603;
+ if (yych == 'c') goto yy603;
+ goto yy44;
+yy565:
+ YYDEBUG(565, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yybm[0+yych] & 16) {
+ goto yy43;
}
+ YYDEBUG(566, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1565 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_PRIVATE);
+}
+#line 5891 "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 1517 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_REQUIRE);
+}
+#line 5923 "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 1292 "Zend/zend_language_scanner.l"
+#line 1919 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ELSEIF);
+ RETURN_TOKEN(T_DIR);
}
-#line 6260 "Zend/zend_language_scanner.c"
+#line 5947 "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 1320 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_ENDFOR);
-}
-#line 6294 "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 1485 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_STRING_CAST);
+}
+#line 5996 "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 1516 "Zend/zend_language_scanner.l"
+#line 1493 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_GLOBAL);
+ RETURN_TOKEN(T_OBJECT_CAST);
}
-#line 6343 "Zend/zend_language_scanner.c"
-yy586:
- YYDEBUG(586, *YYCURSOR);
+#line 6006 "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 1557 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_ABSTRACT);
+}
+#line 6019 "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 1593 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_CALLABLE);
+}
+#line 6032 "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 1389 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_CONTINUE);
+}
+#line 6045 "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 1552 "Zend/zend_language_scanner.l"
+#line 1329 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_PUBLIC);
+ RETURN_TOKEN(T_ENDWHILE);
}
-#line 6404 "Zend/zend_language_scanner.c"
+#line 6076 "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 1258 "Zend/zend_language_scanner.l"
+#line 1271 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_RETURN);
+ RETURN_TOKEN(T_FUNCTION);
}
-#line 6423 "Zend/zend_language_scanner.c"
+#line 6089 "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 1532 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_STATIC);
-}
-#line 6436 "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 1348 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_SWITCH);
-}
-#line 6449 "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 1915 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_FILE);
+}
+#line 6161 "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 1468 "Zend/zend_language_scanner.l"
+#line 1911 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ARRAY_CAST);
+ RETURN_TOKEN(T_LINE);
}
-#line 6533 "Zend/zend_language_scanner.c"
+#line 6186 "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 1373 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_ENDSWITCH);
+}
+#line 6227 "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 1480 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_UNSET_CAST);
-}
-#line 6583 "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 1533 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_INSTEADOF);
+}
+#line 6258 "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 1332 "Zend/zend_language_scanner.l"
+#line 1409 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_DECLARE);
+ RETURN_TOKEN(T_INTERFACE);
}
-#line 6614 "Zend/zend_language_scanner.c"
-yy629:
- YYDEBUG(629, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
+#line 6271 "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 1360 "Zend/zend_language_scanner.l"
+#line 1525 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_DEFAULT);
+ RETURN_TOKEN(T_NAMESPACE);
}
-#line 6627 "Zend/zend_language_scanner.c"
-yy631:
- YYDEBUG(631, *YYCURSOR);
+#line 6284 "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 1569 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_PROTECTED);
+}
+#line 6297 "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 1396 "Zend/zend_language_scanner.l"
+#line 1895 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_EXTENDS);
+ RETURN_TOKEN(T_CLASS_C);
}
-#line 6664 "Zend/zend_language_scanner.c"
+#line 6322 "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 1280 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_FINALLY);
-}
-#line 6677 "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 1324 "Zend/zend_language_scanner.l"
+#line 1899 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_FOREACH);
+ RETURN_TOKEN(T_TRAIT_C);
}
-#line 6690 "Zend/zend_language_scanner.c"
-yy641:
- YYDEBUG(641, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy680;
- if (yych == 'n') goto yy680;
- goto yy128;
+#line 6358 "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 1357 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_ENDDECLARE);
+}
+#line 6371 "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 1488 "Zend/zend_language_scanner.l"
+#line 1349 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_INCLUDE);
+ RETURN_TOKEN(T_ENDFOREACH);
}
-#line 6728 "Zend/zend_language_scanner.c"
-yy645:
- YYDEBUG(645, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy684;
- if (yych == 'e') goto yy684;
- goto yy128;
+#line 6384 "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 1421 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_IMPLEMENTS);
+}
+#line 6397 "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 1544 "Zend/zend_language_scanner.l"
+#line 1361 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_PRIVATE);
+ RETURN_TOKEN(T_INSTANCEOF);
}
-#line 6765 "Zend/zend_language_scanner.c"
+#line 6416 "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 1496 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_REQUIRE);
-}
-#line 6797 "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 1898 "Zend/zend_language_scanner.l"
+#line 1907 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_DIR);
+ RETURN_TOKEN(T_METHOD_C);
}
-#line 6821 "Zend/zend_language_scanner.c"
+#line 6468 "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 1283 "Zend/zend_language_scanner.l"
+ {
+ yyless(yyleng - 1);
+ HANDLE_NEWLINES(yytext, yyleng);
+ RETURN_TOKEN(T_YIELD_FROM);
+}
+#line 6498 "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 1464 "Zend/zend_language_scanner.l"
+#line 1513 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_STRING_CAST);
+ RETURN_TOKEN(T_INCLUDE_ONCE);
}
-#line 6870 "Zend/zend_language_scanner.c"
+#line 6527 "Zend/zend_language_scanner.c"
yy667:
YYDEBUG(667, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yybm[0+yych] & 16) {
+ goto yy43;
+ }
YYDEBUG(668, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1472 "Zend/zend_language_scanner.l"
+#line 1521 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_OBJECT_CAST);
+ RETURN_TOKEN(T_REQUIRE_ONCE);
}
-#line 6880 "Zend/zend_language_scanner.c"
+#line 6540 "Zend/zend_language_scanner.c"
yy669:
YYDEBUG(669, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
+ yych = *++YYCURSOR;
+ if (yybm[0+yych] & 16) {
+ goto yy43;
}
YYDEBUG(670, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1536 "Zend/zend_language_scanner.l"
+#line 1903 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ABSTRACT);
+ RETURN_TOKEN(T_FUNC_C);
}
-#line 6893 "Zend/zend_language_scanner.c"
+#line 6553 "Zend/zend_language_scanner.c"
yy671:
YYDEBUG(671, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy673;
+ if (yych == 'l') goto yy673;
+ goto yy44;
+yy672:
YYDEBUG(672, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1572 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_CALLABLE);
-}
-#line 6906 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == '_') goto yy674;
+ goto yy44;
yy673:
YYDEBUG(673, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
- }
+ 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(675, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1368 "Zend/zend_language_scanner.l"
+#line 1923 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_CONTINUE);
+ RETURN_TOKEN(T_NS_C);
}
-#line 6919 "Zend/zend_language_scanner.c"
-yy675:
- YYDEBUG(675, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy701;
- if (yych == 'r') goto yy701;
- goto yy128;
+#line 6583 "Zend/zend_language_scanner.c"
yy676:
YYDEBUG(676, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy702;
- if (yych == 'c') goto yy702;
- goto yy128;
+ if (yych == 'R') goto yy677;
+ if (yych != 'r') goto yy44;
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;
+ if (yybm[0+yych] & 16) {
+ goto yy43;
}
- YYDEBUG(679, *YYCURSOR);
+ YYDEBUG(678, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1308 "Zend/zend_language_scanner.l"
+#line 1549 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ENDWHILE);
+ RETURN_TOKEN(T_HALT_COMPILER);
}
-#line 6950 "Zend/zend_language_scanner.c"
-yy680:
- YYDEBUG(680, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
+#line 6601 "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;
+ }
+ 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 1250 "Zend/zend_language_scanner.l"
+#line 1443 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_FUNCTION);
+ yyless(0);
+ yy_pop_state();
+ goto restart;
}
-#line 6963 "Zend/zend_language_scanner.c"
-yy682:
- YYDEBUG(682, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy705;
- if (yych == 't') goto yy705;
- goto yy128;
+#line 6673 "Zend/zend_language_scanner.c"
yy683:
YYDEBUG(683, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy706;
- if (yych == 'o') goto yy706;
- goto yy128;
-yy684:
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
YYDEBUG(684, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy707;
- if (yych == 'o') goto yy707;
- goto yy128;
-yy685:
+ if (yybm[0+yych] & 64) {
+ goto yy683;
+ }
YYDEBUG(685, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'F') goto yy708;
- if (yych == 'f') goto yy708;
- goto yy128;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1430 "Zend/zend_language_scanner.l"
+ {
+ goto return_whitespace;
+}
+#line 6689 "Zend/zend_language_scanner.c"
yy686:
YYDEBUG(686, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy710;
- if (yych == 'e') goto yy710;
- goto yy128;
+ if (yych == '>') goto yy690;
+ goto yy682;
yy687:
YYDEBUG(687, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy712;
- if (yych == 'e') goto yy712;
- goto yy128;
-yy688:
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
YYDEBUG(688, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'D') goto yy714;
- if (yych == 'd') goto yy714;
- goto yy128;
-yy689:
+ if (yybm[0+yych] & 128) {
+ goto yy687;
+ }
YYDEBUG(689, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy716;
- if (yych == 'o') goto yy716;
- goto yy128;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1438 "Zend/zend_language_scanner.l"
+ {
+ yy_pop_state();
+ RETURN_TOKEN_WITH_STR(T_STRING, 0);
+}
+#line 6711 "Zend/zend_language_scanner.c"
yy690:
YYDEBUG(690, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy717;
- if (yych == 'o') goto yy717;
- goto yy166;
-yy691:
+ ++YYCURSOR;
YYDEBUG(691, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '_') goto yy718;
- goto yy128;
-yy692:
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1434 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_OBJECT_OPERATOR);
+}
+#line 6721 "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(694, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
+yy695:
+ YYDEBUG(695, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 2493 "Zend/zend_language_scanner.l"
+ {
+ 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;
}
- YYDEBUG(693, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1894 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_FILE);
+
+ YYCURSOR--;
+ break;
+ }
+
+ yyleng = YYCURSOR - SCNG(yy_text);
+
+ if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '`') == SUCCESS)
+ || !PARSER_MODE()) {
+ RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
+ } else {
+ RETURN_TOKEN(T_ERROR);
+ }
}
-#line 7035 "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;
+#line 6819 "Zend/zend_language_scanner.c"
yy696:
YYDEBUG(696, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
+ yych = *++YYCURSOR;
+ if (yych <= '_') {
+ if (yych <= '@') goto yy695;
+ if (yych <= 'Z') goto yy700;
+ if (yych <= '^') goto yy695;
+ goto yy700;
+ } else {
+ if (yych <= 'z') {
+ if (yych <= '`') goto yy695;
+ goto yy700;
+ } else {
+ if (yych <= '{') goto yy703;
+ if (yych <= 0x7F) goto yy695;
+ goto yy700;
+ }
}
+yy697:
YYDEBUG(697, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(698, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1890 "Zend/zend_language_scanner.l"
+#line 2433 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_LINE);
+ BEGIN(ST_IN_SCRIPTING);
+ RETURN_TOKEN('`');
}
-#line 7060 "Zend/zend_language_scanner.c"
-yy698:
- YYDEBUG(698, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '_') goto yy722;
- goto yy128;
+#line 6848 "Zend/zend_language_scanner.c"
yy699:
YYDEBUG(699, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy723;
- if (yych == 'a') goto yy723;
- goto yy128;
+ if (yych == '$') goto yy705;
+ goto yy695;
yy700:
YYDEBUG(700, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '_') goto yy724;
- goto yy128;
-yy701:
+ YYMARKER = ++YYCURSOR;
+ YYFILL(3);
+ yych = *YYCURSOR;
YYDEBUG(701, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy726;
- if (yych == 'e') goto yy726;
- goto yy128;
+ if (yybm[0+yych] & 128) {
+ goto yy700;
+ }
+ if (yych == '-') goto yy707;
+ if (yych <= '@') goto yy702;
+ if (yych <= '[') goto yy709;
yy702:
YYDEBUG(702, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'H') goto yy728;
- if (yych == 'h') goto yy728;
- goto yy128;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 2024 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
+}
+#line 6873 "Zend/zend_language_scanner.c"
yy703:
YYDEBUG(703, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
- }
YYDEBUG(704, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1352 "Zend/zend_language_scanner.l"
+#line 1724 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ENDSWITCH);
+ yy_push_state(ST_LOOKING_FOR_VARNAME);
+ RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
}
-#line 7101 "Zend/zend_language_scanner.c"
+#line 6884 "Zend/zend_language_scanner.c"
yy705:
YYDEBUG(705, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy730;
- if (yych == 's') goto yy730;
- goto yy128;
-yy706:
+ ++YYCURSOR;
YYDEBUG(706, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy732;
- if (yych == 'n') goto yy732;
- goto yy128;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 2421 "Zend/zend_language_scanner.l"
+ {
+ yy_push_state(ST_IN_SCRIPTING);
+ yyless(1);
+ RETURN_TOKEN(T_CURLY_OPEN);
+}
+#line 6896 "Zend/zend_language_scanner.c"
yy707:
YYDEBUG(707, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy733;
- if (yych == 'f') goto yy733;
- goto yy128;
+ if (yych == '>') goto yy711;
yy708:
YYDEBUG(708, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
- }
+ YYCURSOR = YYMARKER;
+ goto yy702;
+yy709:
YYDEBUG(709, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1512 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_INSTEADOF);
-}
-#line 7132 "Zend/zend_language_scanner.c"
-yy710:
- YYDEBUG(710, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
- }
- YYDEBUG(711, *YYCURSOR);
+ YYDEBUG(710, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1388 "Zend/zend_language_scanner.l"
+#line 2018 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_INTERFACE);
+ yyless(yyleng - 1);
+ yy_push_state(ST_VAR_OFFSET);
+ RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
}
-#line 7145 "Zend/zend_language_scanner.c"
+#line 6916 "Zend/zend_language_scanner.c"
+yy711:
+ YYDEBUG(711, *YYCURSOR);
+ yych = *++YYCURSOR;
+ 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;
+ }
yy712:
YYDEBUG(712, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
- }
YYDEBUG(713, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1504 "Zend/zend_language_scanner.l"
+#line 2010 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_NAMESPACE);
+ yyless(yyleng - 3);
+ yy_push_state(ST_LOOKING_FOR_PROPERTY);
+ RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
}
-#line 7158 "Zend/zend_language_scanner.c"
-yy714:
+#line 6940 "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,
+ };
YYDEBUG(714, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
+ YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych <= '#') {
+ if (yych == '"') goto yy718;
+ } else {
+ if (yych <= '$') goto yy720;
+ if (yych == '{') goto yy721;
}
- YYDEBUG(715, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1548 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_PROTECTED);
-}
-#line 7171 "Zend/zend_language_scanner.c"
-yy716:
YYDEBUG(716, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy735;
- if (yych == 'n') goto yy735;
- goto yy128;
+ ++YYCURSOR;
yy717:
YYDEBUG(717, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'M') goto yy736;
- if (yych == 'm') goto yy736;
- goto yy166;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 2439 "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);
+
+ if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '"') == SUCCESS)
+ || !PARSER_MODE()) {
+ RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
+ } else {
+ RETURN_TOKEN(T_ERROR);
+ }
+}
+#line 7046 "Zend/zend_language_scanner.c"
yy718:
YYDEBUG(718, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
- }
YYDEBUG(719, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1874 "Zend/zend_language_scanner.l"
+#line 2428 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_CLASS_C);
+ BEGIN(ST_IN_SCRIPTING);
+ RETURN_TOKEN('"');
}
-#line 7196 "Zend/zend_language_scanner.c"
+#line 7057 "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);
- yych = *++YYCURSOR;
- if (yych == '_') goto yy739;
- goto yy128;
-yy723:
- YYDEBUG(723, *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;
- }
- YYDEBUG(725, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1878 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_TRAIT_C);
-}
-#line 7232 "Zend/zend_language_scanner.c"
-yy726:
- YYDEBUG(726, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
- }
- YYDEBUG(727, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1336 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_ENDDECLARE);
-}
-#line 7245 "Zend/zend_language_scanner.c"
-yy728:
- YYDEBUG(728, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
- }
- YYDEBUG(729, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1328 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_ENDFOREACH);
-}
-#line 7258 "Zend/zend_language_scanner.c"
-yy730:
- YYDEBUG(730, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
- }
- YYDEBUG(731, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1400 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_IMPLEMENTS);
-}
-#line 7271 "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);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
- }
- YYDEBUG(734, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1340 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_INSTANCEOF);
-}
-#line 7290 "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);
- 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 yy717;
+ if (yych <= 'Z') goto yy722;
+ if (yych <= '^') goto yy717;
+ goto yy722;
} else {
- if (yych <= '`') {
- if (yych <= '_') goto yy166;
- goto yy744;
+ if (yych <= 'z') {
+ if (yych <= '`') goto yy717;
+ goto yy722;
} else {
- if (yych <= 'z') goto yy166;
- if (yych <= 0x7F) goto yy744;
- goto yy166;
+ if (yych <= '{') goto yy725;
+ if (yych <= 0x7F) goto yy717;
+ goto yy722;
}
}
-yy737:
- YYDEBUG(737, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '_') goto yy746;
- goto yy128;
-yy738:
- YYDEBUG(738, *YYCURSOR);
+yy721:
+ YYDEBUG(721, *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;
+ 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;
}
- YYDEBUG(740, *YYCURSOR);
+ if (yych == '-') goto yy729;
+ if (yych <= '@') goto yy724;
+ if (yych <= '[') goto yy731;
+yy724:
+ YYDEBUG(724, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1886 "Zend/zend_language_scanner.l"
+#line 2024 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_METHOD_C);
+ RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
}
-#line 7342 "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);
+#line 7100 "Zend/zend_language_scanner.c"
+yy725:
+ YYDEBUG(725, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(745, *YYCURSOR);
+ YYDEBUG(726, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1262 "Zend/zend_language_scanner.l"
+#line 1724 "Zend/zend_language_scanner.l"
{
- yyless(yyleng - 1);
- HANDLE_NEWLINES(yytext, yyleng);
- RETURN_TOKEN(T_YIELD_FROM);
+ yy_push_state(ST_LOOKING_FOR_VARNAME);
+ RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
}
-#line 7372 "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);
- yych = *++YYCURSOR;
- if (yych == '_') goto yy756;
- goto yy128;
-yy749:
- YYDEBUG(749, *YYCURSOR);
+#line 7111 "Zend/zend_language_scanner.c"
+yy727:
+ YYDEBUG(727, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
- }
- YYDEBUG(750, *YYCURSOR);
+ YYDEBUG(728, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1492 "Zend/zend_language_scanner.l"
+#line 2421 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_INCLUDE_ONCE);
+ yy_push_state(ST_IN_SCRIPTING);
+ yyless(1);
+ RETURN_TOKEN(T_CURLY_OPEN);
}
-#line 7401 "Zend/zend_language_scanner.c"
-yy751:
- YYDEBUG(751, *YYCURSOR);
+#line 7123 "Zend/zend_language_scanner.c"
+yy729:
+ YYDEBUG(729, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '>') goto yy733;
+yy730:
+ YYDEBUG(730, *YYCURSOR);
+ YYCURSOR = YYMARKER;
+ goto yy724;
+yy731:
+ YYDEBUG(731, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
- }
- YYDEBUG(752, *YYCURSOR);
+ YYDEBUG(732, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1500 "Zend/zend_language_scanner.l"
+#line 2018 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_REQUIRE_ONCE);
+ yyless(yyleng - 1);
+ yy_push_state(ST_VAR_OFFSET);
+ RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
}
-#line 7414 "Zend/zend_language_scanner.c"
-yy753:
- YYDEBUG(753, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
+#line 7143 "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;
}
- YYDEBUG(754, *YYCURSOR);
+yy734:
+ YYDEBUG(734, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(735, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1882 "Zend/zend_language_scanner.l"
+#line 2010 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_FUNC_C);
+ yyless(yyleng - 3);
+ yy_push_state(ST_LOOKING_FOR_PROPERTY);
+ RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
}
-#line 7427 "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);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy760;
- if (yych == 'e') goto yy760;
- goto yy128;
-yy758:
- YYDEBUG(758, *YYCURSOR);
+#line 7167 "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,
+ };
+ YYDEBUG(736, *YYCURSOR);
+ YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych == '$') goto yy740;
+ if (yych == '{') goto yy741;
+ YYDEBUG(738, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 16) {
- goto yy127;
- }
- YYDEBUG(759, *YYCURSOR);
+yy739:
+ YYDEBUG(739, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1902 "Zend/zend_language_scanner.l"
+#line 2539 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_NS_C);
-}
-#line 7457 "Zend/zend_language_scanner.c"
-yy760:
- YYDEBUG(760, *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;
+ zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
+ int newline = 0, indentation = 0, spacing = 0;
+
+ if (YYCURSOR > YYLIMIT) {
+ RETURN_TOKEN(END);
+ }
+
+ YYCURSOR--;
+
+ while (YYCURSOR < YYLIMIT) {
+ switch (*YYCURSOR++) {
+ case '\r':
+ if (*YYCURSOR == '\n') {
+ YYCURSOR++;
+ }
+ /* fall through */
+ case '\n':
+ indentation = spacing = 0;
+
+ while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
+ if (*YYCURSOR == '\t') {
+ spacing |= HEREDOC_USING_TABS;
+ } else {
+ spacing |= HEREDOC_USING_SPACES;
+ }
+ ++YYCURSOR;
+ ++indentation;
+ }
+
+ if (YYCURSOR == YYLIMIT) {
+ yyleng = YYCURSOR - SCNG(yy_text);
+ HANDLE_NEWLINES(yytext, yyleng);
+ ZVAL_NULL(zendlval);
+ RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
+ }
+
+ /* 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)) {
+ if (IS_LABEL_START(YYCURSOR[heredoc_label->length])) {
+ continue;
+ }
+
+ if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
+ zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
+ }
+
+ /* newline before label will be subtracted from returned text, but
+ * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
+ if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
+ newline = 2; /* Windows newline */
+ } else {
+ newline = 1;
+ }
+
+ CG(increment_lineno) = 1; /* For newline before label */
+
+ if (SCNG(heredoc_scan_ahead)) {
+ SCNG(heredoc_indentation) = indentation;
+ SCNG(heredoc_indentation_uses_spaces) = (spacing == HEREDOC_USING_SPACES);
+ } else {
+ YYCURSOR -= indentation;
+ }
+
+ 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;
+ }
+
+heredoc_scan_done:
+
+ yyleng = YYCURSOR - SCNG(yy_text);
+ ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
+
+ if (!SCNG(heredoc_scan_ahead) && !EG(exception) && PARSER_MODE()) {
+ zend_bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
+ zend_string *copy = Z_STR_P(zendlval);
+
+ if (!strip_multiline_string_indentation(
+ zendlval, heredoc_label->indentation, heredoc_label->indentation_uses_spaces,
+ newline_at_start, newline != 0)) {
+ RETURN_TOKEN(T_ERROR);
+ }
+
+ if (UNEXPECTED(zend_scan_escape_string(zendlval, ZSTR_VAL(copy), ZSTR_LEN(copy), 0) != SUCCESS)) {
+ zend_string_efree(copy);
+ RETURN_TOKEN(T_ERROR);
}
- YYDEBUG(762, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1528 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_HALT_COMPILER);
-}
-#line 7475 "Zend/zend_language_scanner.c"
+
+ zend_string_efree(copy);
+ } else {
+ HANDLE_NEWLINES(yytext, yyleng - newline);
}
-/* *********************************** */
-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(763, *YYCURSOR);
- YYFILL(2);
- yych = *YYCURSOR;
- if (yybm[0+yych] & 64) {
- goto yy767;
- }
- if (yych <= '^') {
- if (yych <= '-') {
- if (yych >= '-') goto yy770;
- } else {
- if (yych <= '@') goto yy765;
- if (yych <= 'Z') goto yy771;
- }
+
+ RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
+}
+#line 7336 "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 <= '`') {
- if (yych <= '_') goto yy771;
+ if (yych <= 'z') {
+ if (yych <= '`') goto yy739;
+ goto yy742;
} else {
- if (yych <= 'z') goto yy771;
- if (yych >= 0x80) goto yy771;
+ if (yych <= '{') goto yy745;
+ if (yych <= 0x7F) goto yy739;
+ goto yy742;
}
}
-yy765:
- YYDEBUG(765, *YYCURSOR);
+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 2024 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
+}
+#line 7379 "Zend/zend_language_scanner.c"
+yy745:
+ YYDEBUG(745, *YYCURSOR);
++YYCURSOR;
-yy766:
- YYDEBUG(766, *YYCURSOR);
+ YYDEBUG(746, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1422 "Zend/zend_language_scanner.l"
+#line 1724 "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 7547 "Zend/zend_language_scanner.c"
-yy767:
- YYDEBUG(767, *YYCURSOR);
+#line 7390 "Zend/zend_language_scanner.c"
+yy747:
+ YYDEBUG(747, *YYCURSOR);
++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(768, *YYCURSOR);
- if (yybm[0+yych] & 64) {
- goto yy767;
- }
- YYDEBUG(769, *YYCURSOR);
+ YYDEBUG(748, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1409 "Zend/zend_language_scanner.l"
+#line 2421 "Zend/zend_language_scanner.l"
{
- goto return_whitespace;
+ yy_push_state(ST_IN_SCRIPTING);
+ yyless(1);
+ RETURN_TOKEN(T_CURLY_OPEN);
}
-#line 7563 "Zend/zend_language_scanner.c"
-yy770:
- YYDEBUG(770, *YYCURSOR);
+#line 7402 "Zend/zend_language_scanner.c"
+yy749:
+ YYDEBUG(749, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '>') goto yy774;
- goto yy766;
-yy771:
- YYDEBUG(771, *YYCURSOR);
+ if (yych == '>') goto yy753;
+yy750:
+ YYDEBUG(750, *YYCURSOR);
+ YYCURSOR = YYMARKER;
+ goto yy744;
+yy751:
+ YYDEBUG(751, *YYCURSOR);
++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(772, *YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy771;
- }
- YYDEBUG(773, *YYCURSOR);
+ YYDEBUG(752, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1417 "Zend/zend_language_scanner.l"
+#line 2018 "Zend/zend_language_scanner.l"
{
- yy_pop_state();
- RETURN_TOKEN_WITH_STR(T_STRING, 0);
+ yyless(yyleng - 1);
+ yy_push_state(ST_VAR_OFFSET);
+ RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
}
-#line 7585 "Zend/zend_language_scanner.c"
-yy774:
- YYDEBUG(774, *YYCURSOR);
+#line 7422 "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(775, *YYCURSOR);
+ YYDEBUG(755, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1413 "Zend/zend_language_scanner.l"
+#line 2010 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_OBJECT_OPERATOR);
+ yyless(yyleng - 3);
+ yy_push_state(ST_LOOKING_FOR_PROPERTY);
+ RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
}
-#line 7595 "Zend/zend_language_scanner.c"
+#line 7446 "Zend/zend_language_scanner.c"
}
/* *********************************** */
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(756, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yych <= '_') {
- if (yych <= '@') goto yy778;
- if (yych <= 'Z') goto yy780;
- if (yych >= '_') goto yy780;
+ if (yych <= '@') goto yy758;
+ if (yych <= 'Z') goto yy760;
+ if (yych >= '_') goto yy760;
} else {
- if (yych <= '`') goto yy778;
- if (yych <= 'z') goto yy780;
- if (yych >= 0x80) goto yy780;
+ if (yych <= '`') goto yy758;
+ if (yych <= 'z') goto yy760;
+ if (yych >= 0x80) goto yy760;
}
-yy778:
- YYDEBUG(778, *YYCURSOR);
+yy758:
+ YYDEBUG(758, *YYCURSOR);
++YYCURSOR;
-yy779:
- YYDEBUG(779, *YYCURSOR);
+yy759:
+ YYDEBUG(759, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1726 "Zend/zend_language_scanner.l"
+#line 1747 "Zend/zend_language_scanner.l"
{
yyless(0);
yy_pop_state();
yy_push_state(ST_IN_SCRIPTING);
goto restart;
}
-#line 7659 "Zend/zend_language_scanner.c"
-yy780:
- YYDEBUG(780, *YYCURSOR);
+#line 7510 "Zend/zend_language_scanner.c"
+yy760:
+ YYDEBUG(760, *YYCURSOR);
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '_') {
if (yych <= '@') {
- if (yych <= '/') goto yy779;
- if (yych <= '9') goto yy782;
- goto yy779;
+ if (yych <= '/') goto yy759;
+ if (yych <= '9') goto yy762;
+ goto yy759;
} else {
- if (yych <= '[') goto yy782;
- if (yych <= '^') goto yy779;
- goto yy782;
+ if (yych <= '[') goto yy762;
+ if (yych <= '^') goto yy759;
+ goto yy762;
}
} else {
if (yych <= '|') {
- if (yych <= '`') goto yy779;
- if (yych <= 'z') goto yy782;
- goto yy779;
+ if (yych <= '`') goto yy759;
+ if (yych <= 'z') goto yy762;
+ goto yy759;
} else {
- if (yych <= '}') goto yy782;
- if (yych <= 0x7F) goto yy779;
- goto yy782;
+ if (yych <= '}') goto yy762;
+ if (yych <= 0x7F) goto yy759;
+ goto yy762;
}
}
-yy781:
- YYDEBUG(781, *YYCURSOR);
+yy761:
+ YYDEBUG(761, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy782:
- YYDEBUG(782, *YYCURSOR);
+yy762:
+ YYDEBUG(762, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy781;
+ goto yy761;
}
- if (yych <= '@') goto yy783;
- if (yych <= '[') goto yy784;
- if (yych == '}') goto yy784;
-yy783:
- YYDEBUG(783, *YYCURSOR);
+ if (yych <= '@') goto yy763;
+ if (yych <= '[') goto yy764;
+ if (yych == '}') goto yy764;
+yy763:
+ YYDEBUG(763, *YYCURSOR);
YYCURSOR = YYMARKER;
- goto yy779;
-yy784:
- YYDEBUG(784, *YYCURSOR);
+ goto yy759;
+yy764:
+ YYDEBUG(764, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(785, *YYCURSOR);
+ YYDEBUG(765, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1718 "Zend/zend_language_scanner.l"
+#line 1739 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
- yy_pop_state();
- yy_push_state(ST_IN_SCRIPTING);
- RETURN_TOKEN_WITH_STR(T_STRING_VARNAME, 0);
-}
-#line 7713 "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 2636 "Zend/zend_language_scanner.l"
- {
- zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
- int newline = 0, indentation = 0, spacing = -1;
-
- if (YYCURSOR > YYLIMIT) {
- RETURN_TOKEN(END);
- }
-
- YYCURSOR--;
-
- while (YYCURSOR < YYLIMIT) {
- switch (*YYCURSOR++) {
- case '\r':
- if (*YYCURSOR == '\n') {
- YYCURSOR++;
- }
- /* fall through */
- case '\n':
- indentation = spacing = 0;
-
- while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
- if (*YYCURSOR == '\t') {
- spacing |= HEREDOC_USING_TABS;
- } else {
- spacing |= HEREDOC_USING_SPACES;
- }
- ++YYCURSOR;
- ++indentation;
- }
-
- if (YYCURSOR == YYLIMIT) {
- yyleng = YYCURSOR - SCNG(yy_text);
- HANDLE_NEWLINES(yytext, yyleng);
- ZVAL_NULL(zendlval);
- RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
- }
-
- /* 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)) {
- if (IS_LABEL_START(YYCURSOR[heredoc_label->length])) {
- continue;
- }
-
- if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
- zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
- }
-
- /* newline before label will be subtracted from returned text, but
- * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
- if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
- newline = 2; /* Windows newline */
- } else {
- newline = 1;
- }
-
- CG(increment_lineno) = 1; /* For newline before label */
-
- YYCURSOR -= indentation;
- heredoc_label->indentation = indentation;
-
- BEGIN(ST_END_HEREDOC);
-
- goto nowdoc_scan_done;
- }
- /* fall through */
- default:
- continue;
- }
- }
-
-nowdoc_scan_done:
- yyleng = YYCURSOR - SCNG(yy_text);
- ZVAL_STRINGL(zendlval, yytext, yyleng);
-
- if (!EG(exception) && spacing != -1 && PARSER_MODE()
- && !strip_multiline_string_indentation(zendlval, newline, indentation, spacing == HEREDOC_USING_SPACES)) {
- RETURN_TOKEN(T_ERROR);
- }
-
- HANDLE_NEWLINES(yytext, yyleng - newline);
- RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
+ yy_pop_state();
+ yy_push_state(ST_IN_SCRIPTING);
+ RETURN_TOKEN_WITH_STR(T_STRING_VARNAME, 0);
}
-#line 7807 "Zend/zend_language_scanner.c"
+#line 7564 "Zend/zend_language_scanner.c"
+ }
/* *********************************** */
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 2720 "Zend/zend_language_scanner.l"
+#line 2748 "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 7904 "Zend/zend_language_scanner.c"
-yy794:
- YYDEBUG(794, *YYCURSOR);
+#line 7662 "Zend/zend_language_scanner.c"
+yy770:
+ YYDEBUG(770, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(795, *YYCURSOR);
+ YYDEBUG(771, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2017 "Zend/zend_language_scanner.l"
+#line 2038 "Zend/zend_language_scanner.l"
{
/* Invalid rule to return a more explicit parse error with proper line number */
yyless(0);
ZVAL_NULL(zendlval);
RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
}
-#line 7918 "Zend/zend_language_scanner.c"
-yy796:
- YYDEBUG(796, *YYCURSOR);
+#line 7676 "Zend/zend_language_scanner.c"
+yy772:
+ YYDEBUG(772, *YYCURSOR);
++YYCURSOR;
-yy797:
- YYDEBUG(797, *YYCURSOR);
+yy773:
+ YYDEBUG(773, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2012 "Zend/zend_language_scanner.l"
+#line 2033 "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 7930 "Zend/zend_language_scanner.c"
-yy798:
- YYDEBUG(798, *YYCURSOR);
+#line 7688 "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 1840 "Zend/zend_language_scanner.l"
+#line 1861 "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;
}
RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
}
-#line 7981 "Zend/zend_language_scanner.c"
-yy801:
- YYDEBUG(801, *YYCURSOR);
+#line 7739 "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 2025 "Zend/zend_language_scanner.l"
+#line 2046 "Zend/zend_language_scanner.l"
{
RETURN_TOKEN_WITH_STR(T_STRING, 0);
}
-#line 8007 "Zend/zend_language_scanner.c"
-yy806:
- YYDEBUG(806, *YYCURSOR);
+#line 7765 "Zend/zend_language_scanner.c"
+yy782:
+ YYDEBUG(782, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(807, *YYCURSOR);
+ YYDEBUG(783, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2007 "Zend/zend_language_scanner.l"
+#line 2028 "Zend/zend_language_scanner.l"
{
yy_pop_state();
RETURN_TOKEN(']');
}
-#line 8018 "Zend/zend_language_scanner.c"
-yy808:
- YYDEBUG(808, *YYCURSOR);
+#line 7776 "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 2003 "Zend/zend_language_scanner.l"
+#line 2024 "Zend/zend_language_scanner.l"
{
RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
}
-#line 8047 "Zend/zend_language_scanner.c"
-yy811:
- YYDEBUG(811, *YYCURSOR);
+#line 7805 "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 1856 "Zend/zend_language_scanner.l"
+#line 1877 "Zend/zend_language_scanner.l"
{ /* Offset must be treated as a string */
if (yyleng == 1) {
ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext)));
}
RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
}
-#line 8068 "Zend/zend_language_scanner.c"
-yy814:
- YYDEBUG(814, *YYCURSOR);
+#line 7826 "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 1959 "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 if (yyleng == 1) {
+ ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*yytext));
+ } else {
+ ZVAL_STRINGL(zendlval, yytext, yyleng);
+ }
+ HANDLE_NEWLINES(yytext, yyleng);
+ RETURN_TOKEN_WITH_VAL(T_INLINE_HTML);
+}
+#line 7923 "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 1947 "Zend/zend_language_scanner.l"
+ {
+ if (CG(short_tags)) {
+ BEGIN(ST_IN_SCRIPTING);
+ if (PARSER_MODE()) {
+ SKIP_TOKEN(T_OPEN_TAG);
+ }
+ RETURN_TOKEN(T_OPEN_TAG);
+ } else {
+ goto inline_char_handler;
+ }
+}
+#line 7951 "Zend/zend_language_scanner.c"
+yy804:
+ YYDEBUG(804, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(805, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1928 "Zend/zend_language_scanner.l"
+ {
+ BEGIN(ST_IN_SCRIPTING);
+ if (PARSER_MODE()) {
+ RETURN_TOKEN(T_ECHO);
+ }
+ RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO);
+}
+#line 7965 "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 1937 "Zend/zend_language_scanner.l"
+ {
+ HANDLE_NEWLINE(yytext[yyleng-1]);
+ BEGIN(ST_IN_SCRIPTING);
+ if (PARSER_MODE()) {
+ SKIP_TOKEN(T_OPEN_TAG);
+ }
+ RETURN_TOKEN(T_OPEN_TAG);
+}
+#line 8005 "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 2407 "Zend/zend_language_scanner.l"
+ {
+ zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
+
+ yyleng = heredoc_label->indentation + heredoc_label->length;
+ YYCURSOR += yyleng - 1;
+
+ heredoc_label_dtor(heredoc_label);
+ efree(heredoc_label);
+
+ BEGIN(ST_IN_SCRIPTING);
+ RETURN_TOKEN(T_END_HEREDOC);
+}
+#line 8033 "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 2660 "Zend/zend_language_scanner.l"
+ {
+ zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
+ int newline = 0, indentation = 0, spacing = -1;
+
+ if (YYCURSOR > YYLIMIT) {
+ RETURN_TOKEN(END);
+ }
+
+ YYCURSOR--;
+
+ while (YYCURSOR < YYLIMIT) {
+ switch (*YYCURSOR++) {
+ case '\r':
+ if (*YYCURSOR == '\n') {
+ YYCURSOR++;
+ }
+ /* fall through */
+ case '\n':
+ indentation = spacing = 0;
+
+ while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
+ if (*YYCURSOR == '\t') {
+ spacing |= HEREDOC_USING_TABS;
+ } else {
+ spacing |= HEREDOC_USING_SPACES;
+ }
+ ++YYCURSOR;
+ ++indentation;
+ }
+
+ if (YYCURSOR == YYLIMIT) {
+ yyleng = YYCURSOR - SCNG(yy_text);
+ HANDLE_NEWLINES(yytext, yyleng);
+ ZVAL_NULL(zendlval);
+ RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
+ }
+
+ /* 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)) {
+ if (IS_LABEL_START(YYCURSOR[heredoc_label->length])) {
+ continue;
+ }
+
+ if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
+ zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
+ }
+
+ /* newline before label will be subtracted from returned text, but
+ * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
+ if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
+ newline = 2; /* Windows newline */
+ } else {
+ newline = 1;
+ }
+
+ CG(increment_lineno) = 1; /* For newline before label */
+
+ YYCURSOR -= indentation;
+ heredoc_label->indentation = indentation;
+
+ BEGIN(ST_END_HEREDOC);
+
+ goto nowdoc_scan_done;
+ }
+ /* fall through */
+ default:
+ continue;
+ }
+ }
+
+nowdoc_scan_done:
+ yyleng = YYCURSOR - SCNG(yy_text);
+ ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
+
+ if (!EG(exception) && spacing != -1 && PARSER_MODE()) {
+ zend_bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
+ if (!strip_multiline_string_indentation(
+ zendlval, indentation, spacing == HEREDOC_USING_SPACES,
+ newline_at_start, newline != 0)) {
+ RETURN_TOKEN(T_ERROR);
}
- goto yy813;
}
+
+ HANDLE_NEWLINES(yytext, yyleng - newline);
+ RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
+}
+#line 8130 "Zend/zend_language_scanner.c"
}
-#line 2729 "Zend/zend_language_scanner.l"
+#line 2757 "Zend/zend_language_scanner.l"
emit_token_with_str: