diff --git a/Zend/tests/friends/friend_basic_001.phpt b/Zend/tests/friends/friend_basic_001.phpt new file mode 100644 index 0000000000000..ff49654433b35 --- /dev/null +++ b/Zend/tests/friends/friend_basic_001.phpt @@ -0,0 +1,46 @@ +--TEST-- +A class can declare another class as a friend so that it may access protected and private properties +--FILE-- +firstName = $firstName; + $this->lastName = $lastName; + } + + public function format() + { + return new PersonFormatter($this); + } +} + +class PersonFormatter +{ + private $person; + + public function __construct(Person $person) + { + $this->person = $person; + } + + public function getFullName() + { + return $this->person->firstName . ' ' . $this->person->lastName; + } +} + +$person = new Person('Alice', 'Wonderland'); +$formatter = $person->format(); + +var_dump($formatter->getFullName()); +?> +--EXPECTF-- +string(%d) "Alice Wonderland" \ No newline at end of file diff --git a/Zend/tests/friends/friend_basic_002.phpt b/Zend/tests/friends/friend_basic_002.phpt new file mode 100644 index 0000000000000..170afcfc7f738 --- /dev/null +++ b/Zend/tests/friends/friend_basic_002.phpt @@ -0,0 +1,44 @@ +--TEST-- +A class can declare multiple classes as friend +--FILE-- +name = $name; + } +} + +class PartyGoer +{ + public function greet(PartyHost $person) + { + echo "Your name was {$person->name}, right? Nice party!" . PHP_EOL; + } +} + +class Bouncer +{ + public function greet(PartyHost $person) + { + echo "Hey {$person->name}! If you need backup, let me know." . PHP_EOL; + } +} + +$host = new PartyHost('Dustin'); +$attendee = new PartyGoer(); +$bouncer = new Bouncer(); + +$attendee->greet($host); +$bouncer->greet($host); + +?> +--EXPECT-- +Your name was Dustin, right? Nice party! +Hey Dustin! If you need backup, let me know. \ No newline at end of file diff --git a/Zend/tests/friends/friend_inheritance_001.phpt b/Zend/tests/friends/friend_inheritance_001.phpt new file mode 100644 index 0000000000000..affb08d47dd85 --- /dev/null +++ b/Zend/tests/friends/friend_inheritance_001.phpt @@ -0,0 +1,41 @@ +--TEST-- +A friend of class Base is not automatically a friend of class Derived and vice-versa +--FILE-- +property . PHP_EOL; + } +} + +$base = new Base(); +$derived = new Derived(); +$friend = new Friendly(); + +$friend->touch($base); +$friend->touch($derived); + +?> +--EXPECTF-- +base + +Fatal error: Uncaught Error: Cannot access protected property Derived::$property in %s:%d +Stack trace: +#0 %s(%d): Friendly->touch(Object(Derived)) +#1 {main} + thrown in %s on line %d \ No newline at end of file diff --git a/Zend/tests/friends/friend_inheritance_002.phpt b/Zend/tests/friends/friend_inheritance_002.phpt new file mode 100644 index 0000000000000..1a624cffc8a66 --- /dev/null +++ b/Zend/tests/friends/friend_inheritance_002.phpt @@ -0,0 +1,42 @@ +--TEST-- +Friendship is not transitive. If Base is a friend of another class, Derived is not automatically a friend. +--FILE-- +friend = $subject; + } +} + +class Derived extends Base +{ + public function touch() + { + echo $this->friend->property . PHP_EOL; + } +} + +$subject = new Subject(); +$derived = new Derived($subject); + +$derived->touch(); + +?> +--EXPECTF-- +Fatal error: Uncaught Error: Cannot access protected property Subject::$property in %s:%d +Stack trace: +#0 %s(%d): Derived->touch() +#1 {main} + thrown in %s on line %d \ No newline at end of file diff --git a/Zend/tests/friends/friend_inheritance_003.phpt b/Zend/tests/friends/friend_inheritance_003.phpt new file mode 100644 index 0000000000000..72dae7551aef5 --- /dev/null +++ b/Zend/tests/friends/friend_inheritance_003.phpt @@ -0,0 +1,49 @@ +--TEST-- +Access due to friendship is inherited +--FILE-- +secret . PHP_EOL; + } +} + +class Friendly +{ + public function touch(Derived $derived) + { + echo $derived->derived . PHP_EOL; // Allowed via normal friend functionality + echo $derived->override . PHP_EOL; // Allowed because inherited and accessible by Derived + + echo $derived->secret . PHP_EOL; // Dis-allowed because not accessible by Derived + // In this case, it will behave just as if the derived itself + // attempted to access the private property from base + } +} + +$derived = new Derived(); + +$derived->touch(); +(new Friendly())->touch($derived); + +?> +--EXPECTF-- +Notice: Undefined property: Derived::$secret in %s on line %d + +derived +override + +Notice: Undefined property: Derived::$secret in %s on line %d \ No newline at end of file diff --git a/Zend/zend.h b/Zend/zend.h index 7db86dd986d3a..396808dea7581 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -156,11 +156,13 @@ struct _zend_class_entry { uint32_t num_interfaces; uint32_t num_traits; + uint32_t num_friends; zend_class_entry **interfaces; zend_class_entry **traits; zend_trait_alias **trait_aliases; zend_trait_precedence **trait_precedences; + zend_class_entry **friends; union { struct { diff --git a/Zend/zend_ast.h b/Zend/zend_ast.h index d9640a70cdc1c..9687d0e2f7c24 100644 --- a/Zend/zend_ast.h +++ b/Zend/zend_ast.h @@ -89,6 +89,7 @@ enum _zend_ast_kind { ZEND_AST_POST_INC, ZEND_AST_POST_DEC, ZEND_AST_YIELD_FROM, + ZEND_AST_FRIEND, ZEND_AST_GLOBAL, ZEND_AST_UNSET, diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 310fac9cc973e..57420699709fd 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -1211,6 +1211,7 @@ void zend_do_early_binding(void) /* {{{ */ case ZEND_VERIFY_ABSTRACT_CLASS: case ZEND_ADD_INTERFACE: case ZEND_ADD_TRAIT: + case ZEND_ADD_FRIEND: case ZEND_BIND_TRAITS: /* We currently don't early-bind classes that implement interfaces */ /* Classes with traits are handled exactly the same, no early-bind here */ @@ -1758,6 +1759,8 @@ ZEND_API void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify ce->traits = NULL; ce->trait_aliases = NULL; ce->trait_precedences = NULL; + ce->num_friends = 0; + ce->friends = NULL; ce->serialize = NULL; ce->unserialize = NULL; ce->serialize_func = NULL; @@ -6251,6 +6254,26 @@ void zend_compile_use_trait(zend_ast *ast) /* {{{ */ } /* }}} */ +void zend_compile_friend(zend_ast *ast) /* {{{ */ +{ + zend_ast_list *friends = zend_ast_get_list(ast->child[0]); + zend_class_entry *ce = CG(active_class_entry); + zend_op *opline; + uint32_t i; + + for (i = 0; i < friends->children; ++i) { + zend_ast *friend_ast = friends->child[i]; + + opline = zend_emit_op(NULL, ZEND_ADD_FRIEND, &FC(implementing_class), NULL); + opline->op2_type = IS_CONST; + opline->op2.constant = zend_add_class_name_literal(CG(active_op_array), + zend_resolve_class_name_ast(friend_ast)); + + ce->num_friends++; + } +} +/* }}} */ + void zend_compile_implements(znode *class_node, zend_ast *ast) /* {{{ */ { zend_ast_list *list = zend_ast_get_list(ast); @@ -6462,6 +6485,11 @@ void zend_compile_class_decl(zend_ast *ast) /* {{{ */ zend_emit_op(NULL, ZEND_BIND_TRAITS, &declare_node, NULL); } + if (ce->num_friends > 0) { + ce->friends = NULL; + ce->num_friends = 0; + } + if (implements_ast) { zend_compile_implements(&declare_node, implements_ast); } @@ -8199,6 +8227,9 @@ void zend_compile_stmt(zend_ast *ast) /* {{{ */ case ZEND_AST_USE_TRAIT: zend_compile_use_trait(ast); break; + case ZEND_AST_FRIEND: + zend_compile_friend(ast); + break; case ZEND_AST_CLASS: zend_compile_class_decl(ast); break; diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c index be605a49de6c2..90201120bf78b 100644 --- a/Zend/zend_inheritance.c +++ b/Zend/zend_inheritance.c @@ -1102,6 +1102,32 @@ ZEND_API void zend_do_implement_trait(zend_class_entry *ce, zend_class_entry *tr } /* }}} */ +ZEND_API void zend_do_implement_friend(zend_class_entry *ce, zend_class_entry *friend) /* {{{ */ +{ + uint32_t i, ignore = 0; + uint32_t current_friend_num = ce->num_friends; + uint32_t parent_friend_num = ce->parent ? ce->parent->num_friends : 0; + + for (i = 0; i < ce->num_friends; i++) { + if (ce->friends[i] == NULL) { + memmove(ce->friends + i, ce->friends + i + 1, sizeof(zend_class_entry*) * (--ce->num_friends - i)); + i--; + } else if (ce->friends[i] == friend) { + if (i < parent_friend_num) { + ignore = 1; + } + } + } + + if (!ignore) { + if (ce->num_friends >= current_friend_num) { + ce->friends = (zend_class_entry **) erealloc(ce->friends, sizeof(zend_class_entry *) * (++current_friend_num)); + } + ce->friends[ce->num_friends++] = friend; + } +} +/* }}} */ + static zend_bool zend_traits_method_compatibility_check(zend_function *fn, zend_function *other_fn) /* {{{ */ { uint32_t fn_flags = fn->common.scope->ce_flags; diff --git a/Zend/zend_inheritance.h b/Zend/zend_inheritance.h index cf25516efc845..35f6b49634992 100644 --- a/Zend/zend_inheritance.h +++ b/Zend/zend_inheritance.h @@ -30,6 +30,8 @@ ZEND_API void zend_do_implement_interface(zend_class_entry *ce, zend_class_entry ZEND_API void zend_do_implement_trait(zend_class_entry *ce, zend_class_entry *trait); ZEND_API void zend_do_bind_traits(zend_class_entry *ce); +ZEND_API void zend_do_implement_friend(zend_class_entry *ce, zend_class_entry *friend); + ZEND_API void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent_ce); void zend_do_early_binding(void); diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 9e4397aa92b88..d2eb2e9d3f02a 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -174,6 +174,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*); %token T_FINALLY "finally (T_FINALLY)" %token T_THROW "throw (T_THROW)" %token T_USE "use (T_USE)" +%token T_FRIEND "friend (T_FRIEND)" %token T_INSTEADOF "insteadof (T_INSTEADOF)" %token T_GLOBAL "global (T_GLOBAL)" %token T_STATIC "static (T_STATIC)" @@ -271,7 +272,7 @@ reserved_non_modifiers: T_INCLUDE | T_INCLUDE_ONCE | T_EVAL | T_REQUIRE | T_REQUIRE_ONCE | T_LOGICAL_OR | T_LOGICAL_XOR | T_LOGICAL_AND | T_INSTANCEOF | T_NEW | T_CLONE | T_EXIT | T_IF | T_ELSEIF | T_ELSE | T_ENDIF | T_ECHO | T_DO | T_WHILE | T_ENDWHILE | T_FOR | T_ENDFOR | T_FOREACH | T_ENDFOREACH | T_DECLARE | T_ENDDECLARE | T_AS | T_TRY | T_CATCH | T_FINALLY - | T_THROW | T_USE | T_INSTEADOF | T_GLOBAL | T_VAR | T_UNSET | T_ISSET | T_EMPTY | T_CONTINUE | T_GOTO + | T_THROW | T_USE | T_FRIEND | T_INSTEADOF | T_GLOBAL | T_VAR | T_UNSET | T_ISSET | T_EMPTY | T_CONTINUE | T_GOTO | T_FUNCTION | T_CONST | T_RETURN | T_PRINT | T_YIELD | T_LIST | T_SWITCH | T_ENDSWITCH | T_CASE | T_DEFAULT | T_BREAK | T_ARRAY | T_CALLABLE | T_EXTENDS | T_IMPLEMENTS | T_NAMESPACE | T_TRAIT | T_INTERFACE | T_CLASS | T_CLASS_C | T_TRAIT_C | T_FUNC_C | T_METHOD_C | T_LINE | T_FILE | T_DIR | T_NS_C @@ -724,6 +725,8 @@ class_statement: { $$ = $3; $$->attr = $1; } | T_USE name_list trait_adaptations { $$ = zend_ast_create(ZEND_AST_USE_TRAIT, $2, $3); } + | T_FRIEND name_list ';' + { $$ = zend_ast_create(ZEND_AST_FRIEND, $2); } | method_modifiers function returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type backup_fn_flags method_body backup_fn_flags { $$ = zend_ast_create_decl(ZEND_AST_METHOD, $3 | $1 | $12, $2, $5, diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index db713464deda5..6d88ed820905d 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1,4 +1,4 @@ -/* Generated by re2c 1.0.1 */ +/* Generated by re2c 0.14.3 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -75,7 +75,6 @@ /* 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 @@ -1247,7 +1246,7 @@ int start_line = CG(zend_lineno); SCNG(yy_text) = YYCURSOR; -#line 1251 "Zend/zend_language_scanner.c" +#line 1250 "Zend/zend_language_scanner.c" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -1289,6757 +1288,6324 @@ int start_line = CG(zend_lineno); } } /* *********************************** */ -yyc_ST_IN_SCRIPTING: +yyc_INITIAL: + YYDEBUG(1, *YYCURSOR); + YYFILL(7); + yych = *YYCURSOR; + if (yych != '<') goto yy5; + YYDEBUG(3, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) == '?') goto yy6; +yy4: + YYDEBUG(4, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1963 "Zend/zend_language_scanner.l" { - 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); } - 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; +inline_char_handler: - 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; - } + while (1) { + YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR); - YYCURSOR--; - break; - } + YYCURSOR = ptr ? ptr + 1 : YYLIMIT; - /* Remember how much was scanned to save rescanning */ - SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng); + if (YYCURSOR >= YYLIMIT) { + break; + } - 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" */ - 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)++; + YYCURSOR--; break; - case '?': - if (*YYCURSOR == '>') { - YYCURSOR--; - break; - } - /* fall through */ - default: - continue; + } } - - break; } yyleng = YYCURSOR - SCNG(yy_text); - if (PARSER_MODE()) { - SKIP_TOKEN(T_COMMENT); + 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); } - RETURN_TOKEN(T_COMMENT); + HANDLE_NEWLINES(yytext, yyleng); + RETURN_TOKEN_WITH_VAL(T_INLINE_HTML); } -#line 1585 "Zend/zend_language_scanner.c" -yy14: - YYDEBUG(14, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy9; - if (yych <= 'Z') goto yy71; - if (yych <= '^') goto yy9; - goto yy71; - } else { - if (yych <= '`') goto yy9; - if (yych <= 'z') goto yy71; - if (yych <= 0x7F) goto yy9; - goto yy71; +#line 1350 "Zend/zend_language_scanner.c" +yy5: + YYDEBUG(5, *YYCURSOR); + yych = *++YYCURSOR; + goto yy4; +yy6: + YYDEBUG(6, *YYCURSOR); + yyaccept = 0; + 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 1951 "Zend/zend_language_scanner.l" + { + if (CG(short_tags)) { + BEGIN(ST_IN_SCRIPTING); + if (PARSER_MODE()) { + SKIP_TOKEN(T_OPEN_TAG); } -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; - YYDEBUG(18, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2134 "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++; - } + RETURN_TOKEN(T_OPEN_TAG); + } else { + goto inline_char_handler; + } +} +#line 1380 "Zend/zend_language_scanner.c" +yy8: + YYDEBUG(8, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(9, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1932 "Zend/zend_language_scanner.l" + { + BEGIN(ST_IN_SCRIPTING); + if (PARSER_MODE()) { + RETURN_TOKEN(T_ECHO); + } + RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO); +} +#line 1394 "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; + } +yy14: + YYDEBUG(14, *YYCURSOR); + ++YYCURSOR; +yy15: + YYDEBUG(15, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1941 "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 1434 "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; + if (yych <= '_') { + if (yych != '$') goto yy24; } 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 (yych <= '`') goto yy22; + if (yych == '{') goto yy21; + goto yy24; } - } - - if (yyleng-bprefix-2 <= 1) { - if (yyleng-bprefix-2 < 1) { - ZVAL_EMPTY_STRING(zendlval); + YYDEBUG(19, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '_') { + if (yych <= '@') goto yy20; + if (yych <= 'Z') goto yy27; + if (yych >= '_') goto yy27; } else { - zend_uchar c = (zend_uchar)*(yytext+bprefix+1); - if (c == '\n' || c == '\r') { - CG(zend_lineno)++; + if (yych <= 'z') { + if (yych >= 'a') goto yy27; + } else { + if (yych <= '{') goto yy30; + if (yych >= 0x80) goto yy27; } - ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c)); } - goto skip_escape_conversion; +yy20: + YYDEBUG(20, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2497 "Zend/zend_language_scanner.l" + { + if (YYCURSOR > YYLIMIT) { + RETURN_TOKEN(END); } - 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; - } + if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) { + YYCURSOR++; } - t = s; - while (s') goto yy36; yy33: YYDEBUG(33, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '<') goto yy9; - if (yych <= '=') goto yy130; - if (yych <= '>') goto yy132; - goto yy9; + YYCURSOR = YYMARKER; + goto yy29; yy34: YYDEBUG(34, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '=') goto yy9; - if (yych <= '>') goto yy134; - if (yych <= '?') goto yy136; - goto yy9; -yy35: + ++YYCURSOR; YYDEBUG(35, *YYCURSOR); - yych = *++YYCURSOR; - 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 <= '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; - } - } -yy36: - YYDEBUG(36, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2046 "Zend/zend_language_scanner.l" +#line 2022 "Zend/zend_language_scanner.l" { - RETURN_TOKEN_WITH_STR(T_STRING, 0); + yyless(yyleng - 1); + yy_push_state(ST_VAR_OFFSET); + RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); } -#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); +#line 1633 "Zend/zend_language_scanner.c" +yy36: + YYDEBUG(36, *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; - } + if (yych <= '_') { + if (yych <= '@') goto yy33; + if (yych <= 'Z') goto yy37; + if (yych <= '^') goto yy33; } else { - if (yych <= 'k') { - if (yych == 'a') goto yy145; - goto yy44; - } else { - if (yych <= 'l') goto yy146; - if (yych == 'o') goto yy147; - goto yy44; - } + if (yych <= '`') goto yy33; + if (yych <= 'z') goto yy37; + if (yych <= 0x7F) goto yy33; } -yy39: +yy37: + YYDEBUG(37, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(38, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2014 "Zend/zend_language_scanner.l" + { + yyless(yyleng - 3); + yy_push_state(ST_LOOKING_FOR_PROPERTY); + RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); +} +#line 1657 "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(39, *YYCURSOR); - 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; - } + YYFILL(2); + yych = *YYCURSOR; + if (yych <= '#') { + if (yych == '"') goto yy44; + goto yy46; } else { - 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; + if (yych <= '$') goto yy41; + if (yych == '{') goto yy43; + goto yy46; } yy41: YYDEBUG(41, *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; - } + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '_') { + if (yych <= '@') goto yy42; + if (yych <= 'Z') goto yy49; + if (yych >= '_') goto yy49; } else { - if (yych <= 'n') { - if (yych == 'i') goto yy158; - goto yy44; + if (yych <= 'z') { + if (yych >= 'a') goto yy49; } else { - if (yych <= 'o') goto yy159; - if (yych == 'u') goto yy160; - goto yy44; + if (yych <= '{') goto yy52; + if (yych >= 0x80) goto yy49; } } yy42: YYDEBUG(42, *YYCURSOR); - 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; - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 2443 "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 1778 "Zend/zend_language_scanner.c" yy43: YYDEBUG(43, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == '$') goto yy47; + goto yy42; yy44: YYDEBUG(44, *YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy43; - } - goto yy36; -yy45: + ++YYCURSOR; YYDEBUG(45, *YYCURSOR); - yych = *++YYCURSOR; - 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 <= 'm') { - if (yych == 'f') goto yy163; - if (yych <= 'l') goto yy44; - goto yy165; - } else { - if (yych <= 'n') goto yy166; - if (yych == 's') goto yy167; - goto yy44; - } - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 2432 "Zend/zend_language_scanner.l" + { + BEGIN(ST_IN_SCRIPTING); + RETURN_TOKEN('"'); +} +#line 1794 "Zend/zend_language_scanner.c" yy46: YYDEBUG(46, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy168; - if (yych == 'i') goto yy168; - goto yy44; + goto yy42; yy47: YYDEBUG(47, *YYCURSOR); - 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; - } - } -yy48: + ++YYCURSOR; YYDEBUG(48, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy171; - if (yych == 'r') goto yy171; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 2425 "Zend/zend_language_scanner.l" + { + yy_push_state(ST_IN_SCRIPTING); + yyless(1); + RETURN_TOKEN(T_CURLY_OPEN); +} +#line 1810 "Zend/zend_language_scanner.c" yy49: YYDEBUG(49, *YYCURSOR); - 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: + yyaccept = 0; + YYMARKER = ++YYCURSOR; + YYFILL(3); + yych = *YYCURSOR; YYDEBUG(50, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy175; - if (yych == 'e') goto yy175; - goto yy44; + if (yybm[0+yych] & 128) { + goto yy49; + } + if (yych == '-') goto yy54; + if (yych <= '@') goto yy51; + if (yych <= '[') goto yy56; yy51: YYDEBUG(51, *YYCURSOR); - 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; - } - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 2028 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); +} +#line 1831 "Zend/zend_language_scanner.c" yy52: YYDEBUG(52, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(53, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1728 "Zend/zend_language_scanner.l" + { + yy_push_state(ST_LOOKING_FOR_VARNAME); + RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); +} +#line 1842 "Zend/zend_language_scanner.c" +yy54: + YYDEBUG(54, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych == 'H') goto yy178; - if (yych <= 'Q') goto yy44; - goto yy179; + if (yych == '>') goto yy58; +yy55: + YYDEBUG(55, *YYCURSOR); + YYCURSOR = YYMARKER; + goto yy51; +yy56: + YYDEBUG(56, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(57, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2022 "Zend/zend_language_scanner.l" + { + yyless(yyleng - 1); + yy_push_state(ST_VAR_OFFSET); + RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); +} +#line 1862 "Zend/zend_language_scanner.c" +yy58: + YYDEBUG(58, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '_') { + if (yych <= '@') goto yy55; + if (yych <= 'Z') goto yy59; + if (yych <= '^') goto yy55; } else { - if (yych <= 'h') { - if (yych <= 'g') goto yy44; - goto yy178; - } else { - if (yych == 'r') goto yy179; - goto yy44; - } + if (yych <= '`') goto yy55; + if (yych <= 'z') goto yy59; + if (yych <= 0x7F) goto yy55; } -yy53: - YYDEBUG(53, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych == 'N') goto yy180; - if (yych <= 'R') goto yy44; - goto yy181; +yy59: + YYDEBUG(59, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(60, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2014 "Zend/zend_language_scanner.l" + { + yyless(yyleng - 3); + yy_push_state(ST_LOOKING_FOR_PROPERTY); + RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); +} +#line 1886 "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 2411 "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 1910 "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(65, *YYCURSOR); + YYFILL(2); + yych = *YYCURSOR; + if (yych == '$') goto yy67; + if (yych == '{') goto yy69; + goto yy70; +yy67: + YYDEBUG(67, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '_') { + if (yych <= '@') goto yy68; + if (yych <= 'Z') goto yy73; + if (yych >= '_') goto yy73; } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy44; - goto yy180; + if (yych <= 'z') { + if (yych >= 'a') goto yy73; } else { - if (yych == 's') goto yy181; - goto yy44; + if (yych <= '{') goto yy76; + if (yych >= 0x80) goto yy73; } } -yy54: - YYDEBUG(54, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy182; - if (yych == 'a') goto yy182; - goto yy44; -yy55: - YYDEBUG(55, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy183; - if (yych == 'h') goto yy183; - goto yy44; -yy56: - YYDEBUG(56, *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 1453 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_NS_SEPARATOR); -} -#line 2255 "Zend/zend_language_scanner.c" -yy60: - YYDEBUG(60, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '=') goto yy186; - goto yy9; -yy61: - YYDEBUG(61, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy188; - goto yy44; -yy62: - YYDEBUG(62, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(63, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2401 "Zend/zend_language_scanner.l" - { - BEGIN(ST_BACKQUOTE); - RETURN_TOKEN('`'); -} -#line 2276 "Zend/zend_language_scanner.c" -yy64: - YYDEBUG(64, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(65, *YYCURSOR); - 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; - YYDEBUG(68, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1730 "Zend/zend_language_scanner.l" - { - RESET_DOC_COMMENT(); - if (!zend_stack_is_empty(&SCNG(state_stack))) { - yy_pop_state(); +yy68: + YYDEBUG(68, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2543 "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); + } + + 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); + } + + zend_string_efree(copy); + } else { + HANDLE_NEWLINES(yytext, yyleng - newline); } - RETURN_TOKEN('}'); + + RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); } -#line 2307 "Zend/zend_language_scanner.c" +#line 2092 "Zend/zend_language_scanner.c" yy69: YYDEBUG(69, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy193; + if (yych == '$') goto yy71; + goto yy68; yy70: YYDEBUG(70, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1617 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_NOT_EQUAL); -} -#line 2319 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + goto yy68; yy71: YYDEBUG(71, *YYCURSOR); ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; YYDEBUG(72, *YYCURSOR); - if (yych <= '^') { - if (yych <= '9') { - if (yych >= '0') goto yy71; - } else { - if (yych <= '@') goto yy73; - if (yych <= 'Z') goto yy71; - } - } else { - if (yych <= '`') { - if (yych <= '_') goto yy71; - } else { - if (yych <= 'z') goto yy71; - if (yych >= 0x80) goto yy71; - } - } -yy73: - YYDEBUG(73, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2024 "Zend/zend_language_scanner.l" +#line 2425 "Zend/zend_language_scanner.l" { - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); + yy_push_state(ST_IN_SCRIPTING); + yyless(1); + RETURN_TOKEN(T_CURLY_OPEN); } -#line 2348 "Zend/zend_language_scanner.c" -yy74: +#line 2113 "Zend/zend_language_scanner.c" +yy73: + YYDEBUG(73, *YYCURSOR); + yyaccept = 0; + YYMARKER = ++YYCURSOR; + YYFILL(3); + yych = *YYCURSOR; YYDEBUG(74, *YYCURSOR); - ++YYCURSOR; + if (yybm[0+yych] & 128) { + goto yy73; + } + if (yych == '-') goto yy78; + if (yych <= '@') goto yy75; + if (yych <= '[') goto yy80; +yy75: YYDEBUG(75, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1661 "Zend/zend_language_scanner.l" +#line 2028 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_MOD_EQUAL); + RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); } -#line 2358 "Zend/zend_language_scanner.c" +#line 2134 "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" +#line 1728 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_BOOLEAN_AND); + yy_push_state(ST_LOOKING_FOR_VARNAME); + RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); } -#line 2368 "Zend/zend_language_scanner.c" +#line 2145 "Zend/zend_language_scanner.c" yy78: YYDEBUG(78, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == '>') goto yy82; +yy79: 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" + YYCURSOR = YYMARKER; + goto yy75; yy80: YYDEBUG(80, *YYCURSOR); ++YYCURSOR; - YYFILL(7); - yych = *YYCURSOR; -yy81: YYDEBUG(81, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy80; + yyleng = YYCURSOR - SCNG(yy_text); +#line 2022 "Zend/zend_language_scanner.l" + { + yyless(yyleng - 1); + yy_push_state(ST_VAR_OFFSET); + RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); +} +#line 2165 "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 2014 "Zend/zend_language_scanner.l" + { + yyless(yyleng - 3); + yy_push_state(ST_LOOKING_FOR_PROPERTY); + RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); +} +#line 2189 "Zend/zend_language_scanner.c" + } +/* *********************************** */ +yyc_ST_IN_SCRIPTING: + { + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 192, 64, 0, 0, 64, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 60, 60, 44, 44, 44, 44, 44, 44, + 44, 44, 0, 0, 0, 0, 0, 0, + 0, 36, 36, 36, 36, 36, 36, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 0, 0, 0, 0, 4, + 0, 36, 36, 36, 36, 36, 36, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 0, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + }; + YYDEBUG(85, *YYCURSOR); + YYFILL(16); + yych = *YYCURSOR; + YYDEBUG(-1, yych); switch (yych) { + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + case 0x08: + case '\v': + case '\f': + 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 yy148; + case '\t': + case '\n': + case '\r': + case ' ': goto yy104; + case '!': goto yy119; + case '"': goto yy144; + case '#': goto yy140; + case '$': goto yy130; + case '%': goto yy124; + case '&': goto yy125; + case '\'': goto yy142; + case '(': goto yy113; + case ')': + case ',': + case ';': + case '@': + case '[': + case ']': + case '~': goto yy131; + case '*': goto yy122; + case '+': goto yy118; + case '-': goto yy102; + case '.': goto yy109; + case '/': goto yy123; + case '0': goto yy136; + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy138; + case ':': goto yy106; + case '<': goto yy120; + case '=': goto yy116; + case '>': goto yy121; + case '?': goto yy110; case 'A': - case 'a': goto yy83; + case 'a': goto yy97; case 'B': - case 'b': goto yy84; + case 'b': goto yy99; + case 'C': + case 'c': goto yy91; case 'D': - case 'd': goto yy85; + case 'd': goto yy89; + case 'E': + case 'e': goto yy87; case 'F': - case 'f': goto yy86; + case 'f': goto yy90; + case 'G': + case 'g': goto yy100; case 'I': - case 'i': goto yy87; + case 'i': goto yy95; + case 'L': + case 'l': goto yy117; + case 'N': + case 'n': goto yy111; case 'O': - case 'o': goto yy88; + case 'o': goto yy128; + case 'P': + case 'p': goto yy101; case 'R': - case 'r': goto yy89; + case 'r': goto yy92; case 'S': - case 's': goto yy90; + case 's': goto yy98; + case 'T': + case 't': goto yy94; 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 { - goto yy27; - } - } else { - if (yyaccept == 2) { - goto yy36; - } else { - goto yy109; - } - } - } else { - if (yyaccept <= 5) { - if (yyaccept == 4) { - goto yy113; - } else { - goto yy122; - } - } else { - goto yy457; - } - } -yy83: - YYDEBUG(83, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy195; - if (yych == 'r') goto yy195; - goto yy82; -yy84: - YYDEBUG(84, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'I') goto yy196; - if (yych <= 'N') goto yy82; - goto yy197; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy82; - goto yy196; - } else { - if (yych == 'o') goto yy197; - goto yy82; - } + case 'u': goto yy114; + case 'V': + case 'v': goto yy112; + case 'W': + case 'w': goto yy96; + case 'X': + case 'x': goto yy129; + case 'Y': + case 'y': goto yy93; + case '\\': goto yy107; + case '^': goto yy127; + case '_': goto yy115; + case '`': goto yy146; + case '{': goto yy132; + case '|': goto yy126; + case '}': goto yy134; + default: goto yy139; } -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; + ++YYCURSOR; + YYDEBUG(-1, yych); + switch ((yych = *YYCURSOR)) { + case 'C': + case 'c': goto yy712; + case 'L': + case 'l': goto yy713; + case 'M': + case 'm': goto yy714; + case 'N': + case 'n': goto yy715; + case 'V': + case 'v': goto yy716; + case 'X': + case 'x': goto yy717; + default: goto yy151; + } yy88: YYDEBUG(88, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy201; - if (yych == 'b') goto yy201; - goto yy82; + yyleng = YYCURSOR - SCNG(yy_text); +#line 2050 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN_WITH_STR(T_STRING, 0); +} +#line 2377 "Zend/zend_language_scanner.c" yy89: YYDEBUG(89, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy202; - if (yych == 'e') goto yy202; - goto yy82; + if (yych <= 'O') { + if (yych <= 'H') { + if (yych == 'E') goto yy694; + goto yy151; + } else { + if (yych <= 'I') goto yy695; + if (yych <= 'N') goto yy151; + goto yy696; + } + } else { + if (yych <= 'h') { + if (yych == 'e') goto yy694; + goto yy151; + } else { + if (yych <= 'i') goto yy695; + if (yych == 'o') goto yy696; + goto yy151; + } + } yy90: YYDEBUG(90, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy203; - if (yych == 't') goto yy203; - goto yy82; + if (yych <= 'U') { + if (yych <= 'O') { + if (yych == 'I') goto yy664; + if (yych <= 'N') goto yy151; + goto yy665; + } else { + if (yych == 'R') goto yy666; + if (yych <= 'T') goto yy151; + goto yy667; + } + } else { + if (yych <= 'o') { + if (yych == 'i') goto yy664; + if (yych <= 'n') goto yy151; + goto yy665; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy151; + goto yy666; + } else { + if (yych == 'u') goto yy667; + goto yy151; + } + } + } yy91: YYDEBUG(91, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy204; - if (yych == 'n') goto yy204; - goto yy82; + if (yych <= 'O') { + if (yych <= 'K') { + if (yych == 'A') goto yy629; + goto yy151; + } else { + if (yych <= 'L') goto yy630; + if (yych <= 'N') goto yy151; + goto yy631; + } + } else { + if (yych <= 'k') { + if (yych == 'a') goto yy629; + goto yy151; + } else { + if (yych <= 'l') goto yy630; + if (yych == 'o') goto yy631; + goto yy151; + } + } yy92: YYDEBUG(92, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy205; + if (yych == 'E') goto yy611; + if (yych == 'e') goto yy611; + goto yy151; +yy93: YYDEBUG(93, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1645 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_POW); -} -#line 2512 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'I') goto yy598; + if (yych == 'i') goto yy598; + goto yy151; yy94: YYDEBUG(94, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych == 'H') goto yy586; + if (yych <= 'Q') goto yy151; + goto yy587; + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy151; + goto yy586; + } else { + if (yych == 'r') goto yy587; + goto yy151; + } + } +yy95: 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" + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych <= 'L') { + if (yych == 'F') goto yy533; + goto yy151; + } else { + if (yych <= 'M') goto yy535; + if (yych <= 'N') goto yy536; + if (yych <= 'R') goto yy151; + goto yy537; + } + } else { + if (yych <= 'm') { + if (yych == 'f') goto yy533; + if (yych <= 'l') goto yy151; + goto yy535; + } else { + if (yych <= 'n') goto yy536; + if (yych == 's') goto yy537; + goto yy151; + } + } yy96: YYDEBUG(96, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'H') goto yy528; + if (yych == 'h') goto yy528; + goto yy151; +yy97: 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" + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych <= 'M') { + if (yych == 'B') goto yy510; + goto yy151; + } else { + if (yych <= 'N') goto yy511; + if (yych <= 'Q') goto yy151; + if (yych <= 'R') goto yy512; + goto yy513; + } + } else { + if (yych <= 'n') { + if (yych == 'b') goto yy510; + if (yych <= 'm') goto yy151; + goto yy511; + } else { + if (yych <= 'q') goto yy151; + if (yych <= 'r') goto yy512; + if (yych <= 's') goto yy513; + goto yy151; + } + } yy98: YYDEBUG(98, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= 'W') { + if (yych == 'T') goto yy498; + if (yych <= 'V') goto yy151; + goto yy499; + } else { + if (yych <= 't') { + if (yych <= 's') goto yy151; + goto yy498; + } else { + if (yych == 'w') goto yy499; + goto yy151; + } + } +yy99: 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" + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ';') { + if (yych <= '"') { + if (yych <= '!') goto yy151; + goto yy490; + } else { + if (yych == '\'') goto yy491; + goto yy151; + } + } else { + if (yych <= 'R') { + if (yych <= '<') goto yy489; + if (yych <= 'Q') goto yy151; + goto yy492; + } else { + if (yych == 'r') goto yy492; + goto yy151; + } + } yy100: YYDEBUG(100, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych == 'L') goto yy479; + if (yych <= 'N') goto yy151; + goto yy480; + } else { + if (yych <= 'l') { + if (yych <= 'k') goto yy151; + goto yy479; + } else { + if (yych == 'o') goto yy480; + goto yy151; + } + } +yy101: 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" + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'R') goto yy455; + if (yych <= 'T') goto yy151; + goto yy456; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy151; + goto yy455; + } else { + if (yych == 'u') goto yy456; + goto yy151; + } + } yy102: YYDEBUG(102, *YYCURSOR); ++YYCURSOR; + if ((yych = *YYCURSOR) <= '<') { + if (yych == '-') goto yy451; + } else { + if (yych <= '=') goto yy449; + if (yych <= '>') goto yy453; + } +yy103: YYDEBUG(103, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1637 "Zend/zend_language_scanner.l" +#line 1717 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_MINUS_EQUAL); + RETURN_TOKEN(yytext[0]); } -#line 2562 "Zend/zend_language_scanner.c" +#line 2619 "Zend/zend_language_scanner.c" yy104: YYDEBUG(104, *YYCURSOR); ++YYCURSOR; + yych = *YYCURSOR; + goto yy448; +yy105: YYDEBUG(105, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1425 "Zend/zend_language_scanner.l" +#line 1430 "Zend/zend_language_scanner.l" { - yy_push_state(ST_LOOKING_FOR_PROPERTY); - RETURN_TOKEN(T_OBJECT_OPERATOR); + goto return_whitespace; } -#line 2573 "Zend/zend_language_scanner.c" +#line 2632 "Zend/zend_language_scanner.c" yy106: YYDEBUG(106, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '.') goto yy207; - goto yy82; + if (yych == ':') goto yy445; + goto yy103; yy107: YYDEBUG(107, *YYCURSOR); - yyaccept = 3; - YYMARKER = ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; + ++YYCURSOR; YYDEBUG(108, *YYCURSOR); - if (yych <= 'D') { - if (yych <= '/') goto yy109; - if (yych <= '9') goto yy107; - } else { - 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" +#line 1453 "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); + RETURN_TOKEN(T_NS_SEPARATOR); } -#line 2605 "Zend/zend_language_scanner.c" +#line 2647 "Zend/zend_language_scanner.c" +yy109: + YYDEBUG(109, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy442; + goto yy103; + } else { + if (yych <= '9') goto yy438; + if (yych == '=') goto yy440; + goto yy103; + } yy110: YYDEBUG(110, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= '=') goto yy103; + if (yych <= '>') goto yy432; + if (yych <= '?') goto yy434; + goto yy103; +yy111: 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" + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych == 'A') goto yy420; + if (yych <= 'D') goto yy151; + goto yy421; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy151; + goto yy420; + } else { + if (yych == 'e') goto yy421; + goto yy151; + } + } yy112: YYDEBUG(112, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '*') goto yy209; + yych = *++YYCURSOR; + if (yych == 'A') goto yy417; + if (yych == 'a') goto yy417; + goto yy151; 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); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy342; + if (yych <= 0x1F) goto yy103; + goto yy342; + } else { + if (yych <= '@') goto yy103; + if (yych == 'C') goto yy103; + goto yy342; + } + } else { + if (yych <= 'I') { + if (yych == 'F') goto yy342; + if (yych <= 'H') goto yy103; + goto yy342; + } else { + if (yych == 'O') goto yy342; + if (yych <= 'Q') goto yy103; + goto yy342; + } + } + } else { + if (yych <= 'f') { + if (yych <= 'b') { + if (yych == 'U') goto yy342; + if (yych <= '`') goto yy103; + goto yy342; + } else { + if (yych == 'd') goto yy342; + if (yych <= 'e') goto yy103; + goto yy342; + } + } else { + if (yych <= 'o') { + if (yych == 'i') goto yy342; + if (yych <= 'n') goto yy103; + goto yy342; + } else { + if (yych <= 's') { + if (yych <= 'q') goto yy103; + goto yy342; + } else { + if (yych == 'u') goto yy342; + goto yy103; + } + } + } } - 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); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych == 'N') goto yy333; + if (yych <= 'R') goto yy151; + goto yy334; + } else { + if (yych <= 'n') { + if (yych <= 'm') goto yy151; + goto yy333; + } else { + if (yych == 's') goto yy334; + goto yy151; + } + } +yy115: YYDEBUG(115, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1653 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DIV_EQUAL); -} -#line 2673 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == '_') goto yy251; + goto yy151; yy116: YYDEBUG(116, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 64) { - goto yy210; - } - goto yy82; + if (yych <= '<') goto yy103; + if (yych <= '=') goto yy245; + if (yych <= '>') goto yy247; + goto yy103; yy117: YYDEBUG(117, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= ',') { - if (yych == '+') goto yy213; - goto yy82; - } else { - if (yych <= '-') goto yy213; - if (yych <= '/') goto yy82; - if (yych <= '9') goto yy214; - goto yy82; - } + if (yych == 'I') goto yy241; + if (yych == 'i') goto yy241; + goto yy151; yy118: YYDEBUG(118, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 128) { - goto yy216; - } - goto yy82; + if (yych == '+') goto yy239; + if (yych == '=') goto yy237; + goto yy103; yy119: YYDEBUG(119, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == '=') goto yy234; + goto yy103; +yy120: YYDEBUG(120, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1449 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM); -} -#line 2709 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych <= ';') goto yy103; + if (yych <= '<') goto yy210; + if (yych <= '=') goto yy212; + if (yych <= '>') goto yy214; + goto yy103; yy121: YYDEBUG(121, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ';') goto yy122; - if (yych <= '<') goto yy219; - if (yych <= '=') goto yy221; + yych = *++YYCURSOR; + if (yych <= '<') goto yy103; + if (yych <= '=') goto yy206; + if (yych <= '>') goto yy204; + goto yy103; yy122: YYDEBUG(122, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1705 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SL); -} -#line 2724 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == '*') goto yy198; + if (yych == '=') goto yy200; + goto yy103; yy123: YYDEBUG(123, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '>') goto yy223; + if (yych <= '.') { + if (yych == '*') goto yy190; + goto yy103; + } else { + if (yych <= '/') goto yy192; + if (yych == '=') goto yy193; + goto yy103; + } +yy124: YYDEBUG(124, *YYCURSOR); - 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" + yych = *++YYCURSOR; + if (yych == '=') goto yy188; + goto yy103; yy125: YYDEBUG(125, *YYCURSOR); - ++YYCURSOR; - goto yy70; + yych = *++YYCURSOR; + if (yych == '&') goto yy184; + if (yych == '=') goto yy186; + goto yy103; yy126: YYDEBUG(126, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy225; + if (yych == '=') goto yy182; + if (yych == '|') goto yy180; + goto yy103; +yy127: YYDEBUG(127, *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" + yych = *++YYCURSOR; + if (yych == '=') goto yy178; + goto yy103; yy128: YYDEBUG(128, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'R') goto yy176; + if (yych == 'r') goto yy176; + goto yy151; +yy129: YYDEBUG(129, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1581 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DOUBLE_ARROW); -} -#line 2760 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'O') goto yy173; + if (yych == 'o') goto yy173; + goto yy151; yy130: YYDEBUG(130, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= '_') { + if (yych <= '@') goto yy103; + if (yych <= 'Z') goto yy170; + if (yych <= '^') goto yy103; + goto yy170; + } else { + if (yych <= '`') goto yy103; + if (yych <= 'z') goto yy170; + if (yych <= 0x7F) goto yy103; + goto yy170; + } +yy131: YYDEBUG(131, *YYCURSOR); - 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" + yych = *++YYCURSOR; + goto yy103; yy132: YYDEBUG(132, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '=') goto yy227; + ++YYCURSOR; YYDEBUG(133, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1709 "Zend/zend_language_scanner.l" +#line 1722 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_SR); + yy_push_state(ST_IN_SCRIPTING); + RETURN_TOKEN('{'); } -#line 2781 "Zend/zend_language_scanner.c" +#line 2881 "Zend/zend_language_scanner.c" yy134: YYDEBUG(134, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy229; - if (yych == '\r') goto yy230; -yy135: + ++YYCURSOR; YYDEBUG(135, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2122 "Zend/zend_language_scanner.l" +#line 1734 "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 */ + RESET_DOC_COMMENT(); + if (!zend_stack_is_empty(&SCNG(state_stack))) { + yy_pop_state(); } - RETURN_TOKEN(T_CLOSE_TAG); + RETURN_TOKEN('}'); } -#line 2801 "Zend/zend_language_scanner.c" +#line 2895 "Zend/zend_language_scanner.c" yy136: YYDEBUG(136, *YYCURSOR); - ++YYCURSOR; + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'E') { + if (yych <= '9') { + if (yych == '.') goto yy152; + if (yych >= '0') goto yy155; + } else { + if (yych == 'B') goto yy163; + if (yych >= 'E') goto yy157; + } + } else { + if (yych <= 'b') { + if (yych == 'X') goto yy162; + if (yych >= 'b') goto yy163; + } else { + if (yych <= 'e') { + if (yych >= 'e') goto yy157; + } else { + if (yych == 'x') goto yy162; + } + } + } +yy137: YYDEBUG(137, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1461 "Zend/zend_language_scanner.l" +#line 1786 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_COALESCE); + 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 2811 "Zend/zend_language_scanner.c" +#line 2974 "Zend/zend_language_scanner.c" yy138: YYDEBUG(138, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy231; - if (yych == 's') goto yy231; - goto yy44; + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych == '.') goto yy152; + if (yych <= '/') goto yy137; + goto yy155; + } else { + if (yych <= 'E') { + if (yych <= 'D') goto yy137; + goto yy157; + } else { + if (yych == 'e') goto yy157; + goto yy137; + } + } yy139: YYDEBUG(139, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy232; - if (yych == 'd') goto yy232; - goto yy44; + goto yy151; yy140: YYDEBUG(140, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy234; - if (yych == 'r') goto yy234; - goto yy44; + ++YYCURSOR; yy141: YYDEBUG(141, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + yyleng = YYCURSOR - SCNG(yy_text); +#line 2055 "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 3034 "Zend/zend_language_scanner.c" +yy142: YYDEBUG(142, *YYCURSOR); + ++YYCURSOR; +yy143: + YYDEBUG(143, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1365 "Zend/zend_language_scanner.l" +#line 2138 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_AS); + 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 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 2932 "Zend/zend_language_scanner.c" +#line 3208 "Zend/zend_language_scanner.c" +yy150: + YYDEBUG(150, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy151: + YYDEBUG(151, *YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy150; + } + goto yy88; yy152: YYDEBUG(152, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy247; - if (yych == 'h') goto yy247; - goto yy44; -yy153: + yyaccept = 3; + YYMARKER = ++YYCURSOR; + YYFILL(3); + yych = *YYCURSOR; YYDEBUG(153, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy248; - if (yych == 's') goto yy248; - goto yy44; + if (yybm[0+yych] & 8) { + goto yy152; + } + if (yych == 'E') goto yy157; + if (yych == 'e') goto yy157; yy154: YYDEBUG(154, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy249; - if (yych == 'p') goto yy249; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1890 "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 3244 "Zend/zend_language_scanner.c" yy155: YYDEBUG(155, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy250; - if (yych == 'd') goto yy250; - goto yy44; -yy156: + yyaccept = 2; + YYMARKER = ++YYCURSOR; + YYFILL(3); + yych = *YYCURSOR; YYDEBUG(156, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy251; - if (yych == 'a') goto yy251; - goto yy44; + if (yych <= '9') { + if (yych == '.') goto yy152; + if (yych <= '/') goto yy137; + goto yy155; + } else { + if (yych <= 'E') { + if (yych <= 'D') goto yy137; + } else { + if (yych != 'e') goto yy137; + } + } yy157: YYDEBUG(157, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych == 'I') goto yy252; - if (yych <= 'S') goto yy44; - goto yy253; + if (yych <= ',') { + if (yych == '+') goto yy159; } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy44; - goto yy252; - } else { - if (yych == 't') goto yy253; - goto yy44; - } + if (yych <= '-') goto yy159; + if (yych <= '/') goto yy158; + if (yych <= '9') goto yy160; } yy158: YYDEBUG(158, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy254; - if (yych == 'n') goto yy254; - goto yy44; + YYCURSOR = YYMARKER; + if (yyaccept <= 3) { + if (yyaccept <= 1) { + if (yyaccept == 0) { + goto yy88; + } else { + goto yy103; + } + } else { + if (yyaccept == 2) { + goto yy137; + } else { + goto yy154; + } + } + } else { + if (yyaccept <= 5) { + if (yyaccept == 4) { + goto yy191; + } else { + goto yy211; + } + } else { + goto yy602; + } + } yy159: YYDEBUG(159, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy255; - if (yych == 'r') goto yy255; - goto yy44; + if (yych <= '/') goto yy158; + if (yych >= ':') goto yy158; yy160: YYDEBUG(160, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy257; - if (yych == 'n') goto yy257; - goto yy44; -yy161: + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(161, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy258; - if (yych == 'o') goto yy258; - goto yy44; + if (yych <= '/') goto yy154; + if (yych <= '9') goto yy160; + goto yy154; yy162: YYDEBUG(162, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy259; - if (yych == 't') goto yy259; - goto yy44; + if (yybm[0+yych] & 32) { + goto yy167; + } + goto yy158; yy163: YYDEBUG(163, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 16) { - goto yy43; + goto yy164; } + goto yy158; +yy164: YYDEBUG(164, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1309 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IF); -} -#line 3021 "Zend/zend_language_scanner.c" -yy165: + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(165, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy260; - if (yych == 'p') goto yy260; - goto yy44; -yy166: + if (yybm[0+yych] & 16) { + goto yy164; + } YYDEBUG(166, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'C') { - if (yych <= 'B') goto yy44; - goto yy261; - } else { - if (yych <= 'R') goto yy44; - if (yych <= 'S') goto yy262; - goto yy263; - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 1758 "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 { - if (yych <= 'r') { - if (yych == 'c') goto yy261; - goto yy44; - } else { - if (yych <= 's') goto yy262; - if (yych <= 't') goto yy263; - goto yy44; - } + 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 3368 "Zend/zend_language_scanner.c" yy167: YYDEBUG(167, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy264; - if (yych == 's') goto yy264; - goto yy44; -yy168: + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(168, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy265; - if (yych == 's') goto yy265; - goto yy44; -yy169: + if (yybm[0+yych] & 32) { + goto yy167; + } YYDEBUG(169, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy266; - if (yych == 'm') goto yy266; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1837 "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 3408 "Zend/zend_language_scanner.c" yy170: YYDEBUG(170, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'W') goto yy267; - if (yych == 'w') goto yy267; - goto yy44; -yy171: + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(171, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + if (yych <= '^') { + if (yych <= '9') { + if (yych >= '0') goto yy170; + } else { + if (yych <= '@') goto yy172; + if (yych <= 'Z') goto yy170; + } + } else { + if (yych <= '`') { + if (yych <= '_') goto yy170; + } else { + if (yych <= 'z') goto yy170; + if (yych >= 0x80) goto yy170; + } } +yy172: YYDEBUG(172, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1693 "Zend/zend_language_scanner.l" +#line 2028 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_LOGICAL_OR); + RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); } -#line 3086 "Zend/zend_language_scanner.c" +#line 3437 "Zend/zend_language_scanner.c" yy173: YYDEBUG(173, *YYCURSOR); yych = *++YYCURSOR; - 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; - } - } + if (yych == 'R') goto yy174; + if (yych != 'r') goto yy151; yy174: YYDEBUG(174, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy271; - if (yych == 'b') goto yy271; - goto yy44; -yy175: - YYDEBUG(175, *YYCURSOR); - yych = *++YYCURSOR; - 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; - } + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } + YYDEBUG(175, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1705 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_LOGICAL_XOR); +} +#line 3455 "Zend/zend_language_scanner.c" yy176: YYDEBUG(176, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy274; - if (yych == 'a') goto yy274; - goto yy44; -yy177: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(177, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy275; - if (yych == 'i') goto yy275; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1697 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_LOGICAL_OR); +} +#line 3468 "Zend/zend_language_scanner.c" yy178: YYDEBUG(178, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy276; - if (yych == 'r') goto yy276; - goto yy44; -yy179: + ++YYCURSOR; YYDEBUG(179, *YYCURSOR); - 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; - } - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 1685 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_XOR_EQUAL); +} +#line 3478 "Zend/zend_language_scanner.c" yy180: YYDEBUG(180, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy280; - if (yych == 's') goto yy280; - goto yy44; -yy181: + ++YYCURSOR; YYDEBUG(181, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy281; - if (yych == 'e') goto yy281; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1689 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_BOOLEAN_OR); +} +#line 3488 "Zend/zend_language_scanner.c" yy182: YYDEBUG(182, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy283; - if (yych == 'r') goto yy283; - goto yy44; -yy183: + ++YYCURSOR; YYDEBUG(183, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy285; - if (yych == 'i') goto yy285; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1681 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_OR_EQUAL); +} +#line 3498 "Zend/zend_language_scanner.c" yy184: YYDEBUG(184, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy286; - if (yych == 'r') goto yy286; - goto yy44; -yy185: + ++YYCURSOR; YYDEBUG(185, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy288; - if (yych == 'e') goto yy288; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1693 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_BOOLEAN_AND); +} +#line 3508 "Zend/zend_language_scanner.c" yy186: YYDEBUG(186, *YYCURSOR); ++YYCURSOR; YYDEBUG(187, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1681 "Zend/zend_language_scanner.l" +#line 1677 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_XOR_EQUAL); + RETURN_TOKEN(T_AND_EQUAL); } -#line 3204 "Zend/zend_language_scanner.c" +#line 3518 "Zend/zend_language_scanner.c" yy188: YYDEBUG(188, *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); + YYDEBUG(189, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1677 "Zend/zend_language_scanner.l" +#line 1665 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_OR_EQUAL); + RETURN_TOKEN(T_MOD_EQUAL); } -#line 3236 "Zend/zend_language_scanner.c" +#line 3528 "Zend/zend_language_scanner.c" +yy190: + YYDEBUG(190, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '*') goto yy195; yy191: YYDEBUG(191, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(192, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1685 "Zend/zend_language_scanner.l" +#line 2087 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_BOOLEAN_OR); + 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 3246 "Zend/zend_language_scanner.c" +#line 3576 "Zend/zend_language_scanner.c" +yy192: + YYDEBUG(192, *YYCURSOR); + yych = *++YYCURSOR; + goto yy141; yy193: YYDEBUG(193, *YYCURSOR); ++YYCURSOR; YYDEBUG(194, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1609 "Zend/zend_language_scanner.l" +#line 1657 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_IS_NOT_IDENTICAL); + RETURN_TOKEN(T_DIV_EQUAL); } -#line 3256 "Zend/zend_language_scanner.c" +#line 3590 "Zend/zend_language_scanner.c" yy195: YYDEBUG(195, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy297; - if (yych == 'r') goto yy297; - goto yy82; + if (yybm[0+yych] & 64) { + goto yy196; + } + goto yy158; yy196: YYDEBUG(196, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy298; - if (yych == 'n') goto yy298; - goto yy82; -yy197: + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(197, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy299; - if (yych == 'o') goto yy299; - goto yy82; + if (yybm[0+yych] & 64) { + goto yy196; + } + goto yy191; yy198: YYDEBUG(198, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy300; - if (yych == 'u') goto yy300; - goto yy82; -yy199: + ++YYCURSOR; + if ((yych = *YYCURSOR) == '=') goto yy202; YYDEBUG(199, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy301; - if (yych == 'o') goto yy301; - goto yy82; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1649 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_POW); +} +#line 3618 "Zend/zend_language_scanner.c" yy200: YYDEBUG(200, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy302; - if (yych == 't') goto yy302; - goto yy82; -yy201: + ++YYCURSOR; YYDEBUG(201, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'J') goto yy303; - if (yych == 'j') goto yy303; - goto yy82; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1645 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_MUL_EQUAL); +} +#line 3628 "Zend/zend_language_scanner.c" yy202: YYDEBUG(202, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy304; - if (yych == 'a') goto yy304; - goto yy82; -yy203: + ++YYCURSOR; YYDEBUG(203, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy305; - if (yych == 'r') goto yy305; - goto yy82; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1653 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_POW_EQUAL); +} +#line 3638 "Zend/zend_language_scanner.c" yy204: YYDEBUG(204, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy306; - if (yych == 's') goto yy306; - goto yy82; -yy205: - YYDEBUG(205, *YYCURSOR); ++YYCURSOR; - YYDEBUG(206, *YYCURSOR); + if ((yych = *YYCURSOR) == '=') goto yy208; + YYDEBUG(205, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1649 "Zend/zend_language_scanner.l" +#line 1713 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_POW_EQUAL); + RETURN_TOKEN(T_SR); } -#line 3326 "Zend/zend_language_scanner.c" -yy207: - YYDEBUG(207, *YYCURSOR); +#line 3649 "Zend/zend_language_scanner.c" +yy206: + YYDEBUG(206, *YYCURSOR); ++YYCURSOR; - YYDEBUG(208, *YYCURSOR); + YYDEBUG(207, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1457 "Zend/zend_language_scanner.l" +#line 1633 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_ELLIPSIS); + RETURN_TOKEN(T_IS_GREATER_OR_EQUAL); } -#line 3336 "Zend/zend_language_scanner.c" -yy209: +#line 3659 "Zend/zend_language_scanner.c" +yy208: + YYDEBUG(208, *YYCURSOR); + ++YYCURSOR; YYDEBUG(209, *YYCURSOR); - yych = *++YYCURSOR; - 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; - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 1673 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_SR_EQUAL); +} +#line 3669 "Zend/zend_language_scanner.c" yy210: YYDEBUG(210, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ';') goto yy211; + if (yych <= '<') goto yy220; + if (yych <= '=') goto yy218; +yy211: YYDEBUG(211, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy210; - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 1709 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_SL); +} +#line 3684 "Zend/zend_language_scanner.c" +yy212: YYDEBUG(212, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) == '>') goto yy216; + YYDEBUG(213, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1754 "Zend/zend_language_scanner.l" +#line 1629 "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); - } + RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL); } -#line 3388 "Zend/zend_language_scanner.c" -yy213: - YYDEBUG(213, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy82; - if (yych >= ':') goto yy82; +#line 3695 "Zend/zend_language_scanner.c" yy214: YYDEBUG(214, *YYCURSOR); ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; +yy215: YYDEBUG(215, *YYCURSOR); - if (yych <= '/') goto yy109; - if (yych <= '9') goto yy214; - goto yy109; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1621 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IS_NOT_EQUAL); +} +#line 3706 "Zend/zend_language_scanner.c" yy216: YYDEBUG(216, *YYCURSOR); ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; YYDEBUG(217, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy216; - } - YYDEBUG(218, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1833 "Zend/zend_language_scanner.l" +#line 1625 "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); - } + RETURN_TOKEN(T_SPACESHIP); } -#line 3442 "Zend/zend_language_scanner.c" -yy219: +#line 3716 "Zend/zend_language_scanner.c" +yy218: + YYDEBUG(218, *YYCURSOR); + ++YYCURSOR; YYDEBUG(219, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1669 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_SL_EQUAL); +} +#line 3726 "Zend/zend_language_scanner.c" +yy220: + YYDEBUG(220, *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; + YYDEBUG(221, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy220; + } + if (yych <= 'Z') { + if (yych <= '&') { + if (yych == '"') goto yy225; + goto yy158; } else { - if (yych == '"') goto yy309; - if (yych <= '&') goto yy82; - goto yy310; + if (yych <= '\'') goto yy224; + if (yych <= '@') goto yy158; } } else { - if (yych <= '_') { - if (yych <= '@') goto yy82; - if (yych <= 'Z') goto yy311; - if (yych <= '^') goto yy82; - goto yy311; + if (yych <= '`') { + if (yych != '_') goto yy158; } else { - if (yych <= '`') goto yy82; - if (yych <= 'z') goto yy311; - if (yych <= 0x7F) goto yy82; - goto yy311; + if (yych <= 'z') goto yy222; + if (yych <= 0x7F) goto yy158; } } -yy221: - YYDEBUG(221, *YYCURSOR); - ++YYCURSOR; +yy222: YYDEBUG(222, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1665 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SL_EQUAL); -} -#line 3481 "Zend/zend_language_scanner.c" -yy223: - YYDEBUG(223, *YYCURSOR); ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; + YYDEBUG(223, *YYCURSOR); + if (yych <= '@') { + if (yych <= '\f') { + if (yych == '\n') goto yy229; + goto yy158; + } else { + if (yych <= '\r') goto yy231; + if (yych <= '/') goto yy158; + if (yych <= '9') goto yy222; + goto yy158; + } + } else { + if (yych <= '_') { + if (yych <= 'Z') goto yy222; + if (yych <= '^') goto yy158; + goto yy222; + } else { + if (yych <= '`') goto yy158; + if (yych <= 'z') goto yy222; + if (yych <= 0x7F) goto yy158; + goto yy222; + } + } +yy224: YYDEBUG(224, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1621 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SPACESHIP); -} -#line 3491 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == '\'') goto yy158; + if (yych <= '/') goto yy233; + if (yych <= '9') goto yy158; + goto yy233; yy225: YYDEBUG(225, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == '"') goto yy158; + if (yych <= '/') goto yy227; + if (yych <= '9') goto yy158; + goto yy227; +yy226: YYDEBUG(226, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1605 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_IDENTICAL); -} -#line 3501 "Zend/zend_language_scanner.c" + ++YYCURSOR; + YYFILL(3); + yych = *YYCURSOR; yy227: YYDEBUG(227, *YYCURSOR); - ++YYCURSOR; + if (yych <= 'Z') { + if (yych <= '/') { + if (yych != '"') goto yy158; + } else { + if (yych <= '9') goto yy226; + if (yych <= '@') goto yy158; + goto yy226; + } + } else { + if (yych <= '`') { + if (yych == '_') goto yy226; + goto yy158; + } else { + if (yych <= 'z') goto yy226; + if (yych <= 0x7F) goto yy158; + goto yy226; + } + } +yy228: YYDEBUG(228, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1669 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SR_EQUAL); -} -#line 3511 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == '\n') goto yy229; + if (yych == '\r') goto yy231; + goto yy158; yy229: YYDEBUG(229, *YYCURSOR); ++YYCURSOR; - goto yy135; yy230: YYDEBUG(230, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy229; - goto yy135; + yyleng = YYCURSOR - SCNG(yy_text); +#line 2274 "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 3961 "Zend/zend_language_scanner.c" yy231: YYDEBUG(231, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy313; - if (yych == 't') goto yy313; - goto yy44; + if (yych == '\n') goto yy229; + goto yy230; yy232: YYDEBUG(232, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + ++YYCURSOR; + YYFILL(3); + yych = *YYCURSOR; +yy233: + YYDEBUG(233, *YYCURSOR); + if (yych <= 'Z') { + if (yych <= '/') { + if (yych == '\'') goto yy228; + goto yy158; + } else { + if (yych <= '9') goto yy232; + if (yych <= '@') goto yy158; + goto yy232; + } + } else { + if (yych <= '`') { + if (yych == '_') goto yy232; + goto yy158; + } else { + if (yych <= 'z') goto yy232; + if (yych <= 0x7F) goto yy158; + goto yy232; + } } - YYDEBUG(233, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1697 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_LOGICAL_AND); -} -#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: + if (yych != '=') goto yy215; YYDEBUG(235, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '<') goto yy219; - goto yy82; -yy236: + ++YYCURSOR; YYDEBUG(236, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy315; - if (yych == 'a') goto yy315; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1613 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IS_NOT_IDENTICAL); +} +#line 4005 "Zend/zend_language_scanner.c" yy237: YYDEBUG(237, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy316; - if (yych == 'l') goto yy316; - goto yy44; -yy238: + ++YYCURSOR; YYDEBUG(238, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy317; - if (yych == 'e') goto yy317; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1637 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_PLUS_EQUAL); +} +#line 4015 "Zend/zend_language_scanner.c" yy239: YYDEBUG(239, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy319; - if (yych == 'c') goto yy319; - goto yy44; -yy240: + ++YYCURSOR; YYDEBUG(240, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy320; - if (yych == 's') goto yy320; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1601 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INC); +} +#line 4025 "Zend/zend_language_scanner.c" yy241: YYDEBUG(241, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy321; - if (yych == 'n') goto yy321; - goto yy44; + if (yych == 'S') goto yy242; + if (yych != 's') goto yy151; yy242: YYDEBUG(242, *YYCURSOR); yych = *++YYCURSOR; - 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; - } + if (yych == 'T') goto yy243; + if (yych != 't') goto yy151; yy243: YYDEBUG(243, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy324; - if (yych == 'l') goto yy324; - goto yy44; -yy244: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(244, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy325; - if (yych == 'a') goto yy325; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1589 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_LIST); +} +#line 4048 "Zend/zend_language_scanner.c" yy245: YYDEBUG(245, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + ++YYCURSOR; + if ((yych = *YYCURSOR) == '=') goto yy249; YYDEBUG(246, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1267 "Zend/zend_language_scanner.l" +#line 1617 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_EXIT); + RETURN_TOKEN(T_IS_EQUAL); } -#line 3624 "Zend/zend_language_scanner.c" +#line 4059 "Zend/zend_language_scanner.c" yy247: YYDEBUG(247, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy326; - if (yych == 'o') goto yy326; - goto yy44; -yy248: + ++YYCURSOR; YYDEBUG(248, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy328; - if (yych == 'e') goto yy328; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1585 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DOUBLE_ARROW); +} +#line 4069 "Zend/zend_language_scanner.c" yy249: YYDEBUG(249, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy330; - if (yych == 't') goto yy330; - goto yy44; -yy250: + ++YYCURSOR; YYDEBUG(250, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1609 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IS_IDENTICAL); +} +#line 4079 "Zend/zend_language_scanner.c" +yy251: + YYDEBUG(251, *YYCURSOR); yych = *++YYCURSOR; + YYDEBUG(-1, yych); switch (yych) { + case 'C': + case 'c': goto yy253; case 'D': - case 'd': goto yy331; + case 'd': goto yy258; 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; + case 'f': goto yy255; + case 'H': + case 'h': goto yy252; + case 'L': + case 'l': goto yy257; + case 'M': + case 'm': goto yy256; + case 'N': + case 'n': goto yy259; + case 'T': + case 't': goto yy254; + default: goto yy151; } -yy251: - YYDEBUG(251, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy336; - if (yych == 'l') goto yy336; - goto yy44; yy252: YYDEBUG(252, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy338; - if (yych == 't') goto yy338; - goto yy44; + if (yych == 'A') goto yy320; + if (yych == 'a') goto yy320; + goto yy151; yy253: YYDEBUG(253, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy340; - if (yych == 'e') goto yy340; - goto yy44; + if (yych == 'L') goto yy313; + if (yych == 'l') goto yy313; + goto yy151; yy254: YYDEBUG(254, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy341; - if (yych == 'a') goto yy341; - goto yy44; + if (yych == 'R') goto yy306; + if (yych == 'r') goto yy306; + goto yy151; yy255: YYDEBUG(255, *YYCURSOR); 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; - } + if (yych <= 'U') { + if (yych == 'I') goto yy290; + if (yych <= 'T') goto yy151; + goto yy291; } else { - if (yych <= 'd') { - if (yych != '`') goto yy43; + if (yych <= 'i') { + if (yych <= 'h') goto yy151; + goto yy290; } else { - if (yych <= 'e') goto yy342; - if (yych <= 'z') goto yy43; - if (yych >= 0x80) goto yy43; + if (yych == 'u') goto yy291; + goto yy151; } } yy256: YYDEBUG(256, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1337 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FOR); -} -#line 3710 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'E') goto yy282; + if (yych == 'e') goto yy282; + goto yy151; yy257: YYDEBUG(257, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy343; - if (yych == 'c') goto yy343; - goto yy44; + if (yych == 'I') goto yy276; + if (yych == 'i') goto yy276; + goto yy151; yy258: YYDEBUG(258, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy344; - if (yych == 'b') goto yy344; - goto yy44; + if (yych == 'I') goto yy271; + if (yych == 'i') goto yy271; + goto yy151; yy259: YYDEBUG(259, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy345; - if (yych == 'o') goto yy345; - goto yy44; + if (yych == 'A') goto yy260; + if (yych != 'a') goto yy151; yy260: YYDEBUG(260, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy347; - if (yych == 'l') goto yy347; - goto yy44; + if (yych == 'M') goto yy261; + if (yych != 'm') goto yy151; yy261: YYDEBUG(261, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy348; - if (yych == 'l') goto yy348; - goto yy44; + if (yych == 'E') goto yy262; + if (yych != 'e') goto yy151; yy262: YYDEBUG(262, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy349; - if (yych == 't') goto yy349; - goto yy44; + if (yych == 'S') goto yy263; + if (yych != 's') goto yy151; yy263: YYDEBUG(263, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy350; - if (yych == 'e') goto yy350; - goto yy44; + if (yych == 'P') goto yy264; + if (yych != 'p') goto yy151; yy264: YYDEBUG(264, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy351; - if (yych == 'e') goto yy351; - goto yy44; + if (yych == 'A') goto yy265; + if (yych != 'a') goto yy151; yy265: YYDEBUG(265, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy352; - if (yych == 't') goto yy352; - goto yy44; + if (yych == 'C') goto yy266; + if (yych != 'c') goto yy151; yy266: YYDEBUG(266, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy354; - if (yych == 'e') goto yy354; - goto yy44; + if (yych == 'E') goto yy267; + if (yych != 'e') goto yy151; yy267: YYDEBUG(267, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych != '_') goto yy151; YYDEBUG(268, *YYCURSOR); - 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 <= '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; - } + if (yych != '_') goto yy151; + YYDEBUG(269, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } -yy270: YYDEBUG(270, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy357; - if (yych == 't') goto yy357; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1927 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_NS_C); +} +#line 4213 "Zend/zend_language_scanner.c" yy271: YYDEBUG(271, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy358; - if (yych == 'l') goto yy358; - goto yy44; + if (yych == 'R') goto yy272; + if (yych != 'r') goto yy151; yy272: YYDEBUG(272, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy359; - if (yych == 'u') goto yy359; - goto yy44; -yy273: + if (yych != '_') goto yy151; YYDEBUG(273, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy360; - if (yych == 'u') goto yy360; - goto yy44; -yy274: + if (yych != '_') goto yy151; YYDEBUG(274, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy361; - if (yych == 't') goto yy361; - goto yy44; -yy275: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(275, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy362; - if (yych == 't') goto yy362; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1923 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DIR); +} +#line 4237 "Zend/zend_language_scanner.c" yy276: YYDEBUG(276, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy363; - if (yych == 'o') goto yy363; - goto yy44; + if (yych == 'N') goto yy277; + if (yych != 'n') goto yy151; yy277: YYDEBUG(277, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy364; - if (yych == 'i') goto yy364; - goto yy44; + if (yych == 'E') goto yy278; + if (yych != 'e') goto yy151; yy278: YYDEBUG(278, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych != '_') goto yy151; YYDEBUG(279, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1293 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_TRY); -} -#line 3860 "Zend/zend_language_scanner.c" -yy280: - YYDEBUG(280, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy365; - if (yych == 'e') goto yy365; - goto yy44; -yy281: - YYDEBUG(281, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + if (yych != '_') goto yy151; + YYDEBUG(280, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - YYDEBUG(282, *YYCURSOR); + YYDEBUG(281, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1529 "Zend/zend_language_scanner.l" +#line 1915 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_USE); + RETURN_TOKEN(T_LINE); } -#line 3879 "Zend/zend_language_scanner.c" +#line 4266 "Zend/zend_language_scanner.c" +yy282: + YYDEBUG(282, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy283; + if (yych != 't') goto yy151; yy283: YYDEBUG(283, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'H') goto yy284; + if (yych != 'h') goto yy151; +yy284: YYDEBUG(284, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1473 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_VAR); -} -#line 3892 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'O') goto yy285; + if (yych != 'o') goto yy151; yy285: YYDEBUG(285, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy366; - if (yych == 'l') goto yy366; - goto yy44; + if (yych == 'D') goto yy286; + if (yych != 'd') goto yy151; yy286: YYDEBUG(286, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych != '_') goto yy151; YYDEBUG(287, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy151; + YYDEBUG(288, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(289, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1701 "Zend/zend_language_scanner.l" +#line 1911 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_LOGICAL_XOR); + RETURN_TOKEN(T_METHOD_C); } -#line 3911 "Zend/zend_language_scanner.c" -yy288: - YYDEBUG(288, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy367; - if (yych == 'l') goto yy367; - goto yy44; -yy289: - YYDEBUG(289, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy368; - if (yych == 'l') goto yy368; - goto yy44; +#line 4305 "Zend/zend_language_scanner.c" yy290: YYDEBUG(290, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy369; - if (yych == 'i') goto yy369; - goto yy44; + if (yych == 'L') goto yy301; + if (yych == 'l') goto yy301; + goto yy151; yy291: YYDEBUG(291, *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; - } - } + if (yych == 'N') goto yy292; + if (yych != 'n') goto yy151; yy292: YYDEBUG(292, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy372; - if (yych == 'a') goto yy372; - goto yy44; + if (yych == 'C') goto yy293; + if (yych != 'c') goto yy151; yy293: YYDEBUG(293, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy373; - if (yych == 'i') goto yy373; - goto yy44; + if (yych == 'T') goto yy294; + if (yych != 't') goto yy151; yy294: YYDEBUG(294, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy374; - if (yych == 'e') goto yy374; - goto yy44; + if (yych == 'I') goto yy295; + if (yych != 'i') goto yy151; yy295: YYDEBUG(295, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy375; - if (yych == 'a') goto yy375; - goto yy44; + if (yych == 'O') goto yy296; + if (yych != 'o') goto yy151; yy296: YYDEBUG(296, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy376; - if (yych == 'r') goto yy376; - goto yy44; + if (yych == 'N') goto yy297; + if (yych != 'n') goto yy151; yy297: YYDEBUG(297, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy377; - if (yych == 'a') goto yy377; - goto yy82; -yy298: + if (yych != '_') goto yy151; YYDEBUG(298, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy378; - if (yych == 'a') goto yy378; - goto yy82; -yy299: + if (yych != '_') goto yy151; YYDEBUG(299, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy379; - if (yych == 'l') goto yy379; - goto yy82; -yy300: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(300, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy380; - if (yych == 'b') goto yy380; - goto yy82; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1907 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_FUNC_C); +} +#line 4360 "Zend/zend_language_scanner.c" yy301: YYDEBUG(301, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy381; - if (yych == 'a') goto yy381; - goto yy82; + if (yych == 'E') goto yy302; + if (yych != 'e') goto yy151; yy302: YYDEBUG(302, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy386; - if (yych == 'e') goto yy386; - goto yy383; -yy303: + if (yych != '_') goto yy151; YYDEBUG(303, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy387; - if (yych == 'e') goto yy387; - goto yy82; -yy304: + if (yych != '_') goto yy151; YYDEBUG(304, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy388; - if (yych == 'l') goto yy388; - goto yy82; -yy305: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(305, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy390; - if (yych == 'i') goto yy390; - goto yy82; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1919 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_FILE); +} +#line 4384 "Zend/zend_language_scanner.c" yy306: YYDEBUG(306, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy391; - if (yych == 'e') goto yy391; - goto yy82; + if (yych == 'A') goto yy307; + if (yych != 'a') goto yy151; yy307: YYDEBUG(307, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'I') goto yy308; + if (yych != 'i') goto yy151; +yy308: YYDEBUG(308, *YYCURSOR); - 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; - } + yych = *++YYCURSOR; + if (yych == 'T') goto yy309; + if (yych != 't') goto yy151; yy309: YYDEBUG(309, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '"') goto yy82; - if (yych <= '/') goto yy393; - if (yych <= '9') goto yy82; - goto yy393; -yy310: + if (yych != '_') goto yy151; YYDEBUG(310, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\'') goto yy82; - if (yych <= '/') goto yy395; - if (yych <= '9') goto yy82; - goto yy395; -yy311: + if (yych != '_') goto yy151; YYDEBUG(311, *YYCURSOR); ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; - YYDEBUG(312, *YYCURSOR); - 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; - } + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } + YYDEBUG(312, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1903 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_TRAIT_C); +} +#line 4418 "Zend/zend_language_scanner.c" yy313: YYDEBUG(313, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy399; - if (yych == 'r') goto yy399; - goto yy44; + if (yych == 'A') goto yy314; + if (yych != 'a') goto yy151; yy314: YYDEBUG(314, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy400; - if (yych == 'y') goto yy400; - goto yy44; + if (yych == 'S') goto yy315; + if (yych != 's') goto yy151; yy315: YYDEBUG(315, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'K') goto yy402; - if (yych == 'k') goto yy402; - goto yy44; + if (yych == 'S') goto yy316; + if (yych != 's') goto yy151; yy316: YYDEBUG(316, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy404; - if (yych == 'a') goto yy404; - goto yy44; -yy317: + if (yych != '_') goto yy151; YYDEBUG(317, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych != '_') goto yy151; YYDEBUG(318, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(319, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1377 "Zend/zend_language_scanner.l" +#line 1899 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_CASE); + RETURN_TOKEN(T_CLASS_C); } -#line 4129 "Zend/zend_language_scanner.c" -yy319: - YYDEBUG(319, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy405; - if (yych == 'h') goto yy405; - goto yy44; +#line 4452 "Zend/zend_language_scanner.c" yy320: YYDEBUG(320, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy407; - if (yych == 's') goto yy407; - goto yy44; + if (yych == 'L') goto yy321; + if (yych != 'l') goto yy151; yy321: YYDEBUG(321, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy409; - if (yych == 'e') goto yy409; - goto yy44; + if (yych == 'T') goto yy322; + if (yych != 't') goto yy151; yy322: YYDEBUG(322, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy411; - if (yych == 't') goto yy411; - goto yy44; -yy323: + if (yych != '_') goto yy151; YYDEBUG(323, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy413; - if (yych == 'i') goto yy413; - goto yy44; + if (yych == 'C') goto yy324; + if (yych != 'c') goto yy151; yy324: YYDEBUG(324, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy414; - if (yych == 'a') goto yy414; - goto yy44; + if (yych == 'O') goto yy325; + if (yych != 'o') goto yy151; yy325: YYDEBUG(325, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy415; - if (yych == 'u') goto yy415; - goto yy44; + if (yych == 'M') goto yy326; + if (yych != 'm') goto yy151; yy326: YYDEBUG(326, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'P') goto yy327; + if (yych != 'p') goto yy151; +yy327: YYDEBUG(327, *YYCURSOR); - 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 <= '^') { - 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); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1321 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ELSE); -} -#line 4212 "Zend/zend_language_scanner.c" + if (yych == 'I') goto yy328; + if (yych != 'i') goto yy151; +yy328: + YYDEBUG(328, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy329; + if (yych != 'l') goto yy151; +yy329: + YYDEBUG(329, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy330; + if (yych != 'e') goto yy151; yy330: YYDEBUG(330, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy417; - if (yych == 'y') goto yy417; - goto yy44; + if (yych == 'R') goto yy331; + if (yych != 'r') goto yy151; yy331: YYDEBUG(331, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy419; - if (yych == 'e') goto yy419; - goto yy44; -yy332: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(332, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy420; - if (yych == 'o') goto yy420; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1553 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_HALT_COMPILER); +} +#line 4518 "Zend/zend_language_scanner.c" yy333: YYDEBUG(333, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy421; - if (yych == 'f') goto yy421; - goto yy44; + if (yych == 'S') goto yy337; + if (yych == 's') goto yy337; + goto yy151; yy334: YYDEBUG(334, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'W') goto yy423; - if (yych == 'w') goto yy423; - goto yy44; + if (yych == 'E') goto yy335; + if (yych != 'e') goto yy151; yy335: YYDEBUG(335, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy424; - if (yych == 'h') goto yy424; - goto yy44; -yy336: - YYDEBUG(336, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - YYDEBUG(337, *YYCURSOR); + YYDEBUG(336, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1505 "Zend/zend_language_scanner.l" +#line 1529 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_EVAL); + RETURN_TOKEN(T_USE); } -#line 4261 "Zend/zend_language_scanner.c" +#line 4542 "Zend/zend_language_scanner.c" +yy337: + YYDEBUG(337, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy338; + if (yych != 'e') goto yy151; yy338: YYDEBUG(338, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'T') goto yy339; + if (yych != 't') goto yy151; +yy339: YYDEBUG(339, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(340, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1263 "Zend/zend_language_scanner.l" +#line 1581 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_EXIT); + RETURN_TOKEN(T_UNSET); } -#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; +#line 4565 "Zend/zend_language_scanner.c" yy341: YYDEBUG(341, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy426; - if (yych == 'l') goto yy426; - goto yy44; + ++YYCURSOR; + YYFILL(7); + yych = *YYCURSOR; yy342: YYDEBUG(342, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy428; - if (yych == 'a') goto yy428; - goto yy44; + if (yych <= 'S') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy341; + if (yych <= 0x1F) goto yy158; + goto yy341; + } else { + if (yych <= 'A') { + if (yych <= '@') goto yy158; + goto yy346; + } else { + if (yych <= 'B') goto yy344; + if (yych <= 'C') goto yy158; + goto yy349; + } + } + } else { + if (yych <= 'I') { + if (yych == 'F') goto yy350; + if (yych <= 'H') goto yy158; + goto yy351; + } else { + if (yych <= 'O') { + if (yych <= 'N') goto yy158; + goto yy345; + } else { + if (yych <= 'Q') goto yy158; + if (yych <= 'R') goto yy348; + goto yy347; + } + } + } + } else { + if (yych <= 'f') { + if (yych <= 'a') { + if (yych == 'U') goto yy343; + if (yych <= '`') goto yy158; + goto yy346; + } else { + if (yych <= 'c') { + if (yych <= 'b') goto yy344; + goto yy158; + } else { + if (yych <= 'd') goto yy349; + if (yych <= 'e') goto yy158; + goto yy350; + } + } + } else { + if (yych <= 'q') { + if (yych <= 'i') { + if (yych <= 'h') goto yy158; + goto yy351; + } else { + if (yych == 'o') goto yy345; + goto yy158; + } + } else { + if (yych <= 's') { + if (yych <= 'r') goto yy348; + goto yy347; + } else { + if (yych != 'u') goto yy158; + } + } + } + } yy343: YYDEBUG(343, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy429; - if (yych == 't') goto yy429; - goto yy44; + if (yych == 'N') goto yy410; + if (yych == 'n') goto yy410; + goto yy158; yy344: YYDEBUG(344, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy430; - if (yych == 'a') goto yy430; - goto yy44; + if (yych <= 'O') { + if (yych == 'I') goto yy397; + if (yych <= 'N') goto yy158; + goto yy398; + } else { + if (yych <= 'i') { + if (yych <= 'h') goto yy158; + goto yy397; + } else { + if (yych == 'o') goto yy398; + goto yy158; + } + } yy345: YYDEBUG(345, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'B') goto yy389; + if (yych == 'b') goto yy389; + goto yy158; +yy346: YYDEBUG(346, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1393 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_GOTO); -} -#line 4317 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'R') goto yy382; + if (yych == 'r') goto yy382; + goto yy158; yy347: YYDEBUG(347, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy431; - if (yych == 'e') goto yy431; - goto yy44; + if (yych == 'T') goto yy374; + if (yych == 't') goto yy374; + goto yy158; yy348: YYDEBUG(348, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy432; - if (yych == 'u') goto yy432; - goto yy44; + if (yych == 'E') goto yy372; + if (yych == 'e') goto yy372; + goto yy158; yy349: YYDEBUG(349, *YYCURSOR); yych = *++YYCURSOR; - 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; - } - } + if (yych == 'O') goto yy368; + if (yych == 'o') goto yy368; + goto yy158; yy350: YYDEBUG(350, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy435; - if (yych == 'r') goto yy435; - goto yy44; + if (yych == 'L') goto yy361; + if (yych == 'l') goto yy361; + goto yy158; yy351: YYDEBUG(351, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy436; - if (yych == 't') goto yy436; - goto yy44; + if (yych == 'N') goto yy352; + if (yych != 'n') goto yy158; yy352: YYDEBUG(352, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'T') goto yy353; + if (yych != 't') goto yy158; +yy353: YYDEBUG(353, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1585 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_LIST); -} -#line 4370 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'E') goto yy354; + if (yych != 'e') goto yy356; yy354: YYDEBUG(354, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy438; - if (yych == 's') goto yy438; - goto yy44; + if (yych == 'G') goto yy359; + if (yych == 'g') goto yy359; + goto yy158; yy355: YYDEBUG(355, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy439; - if (yych == 't') goto yy439; - goto yy44; + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; yy356: YYDEBUG(356, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy441; - if (yych == 'a') goto yy441; - goto yy44; -yy357: + if (yych <= 0x1F) { + if (yych == '\t') goto yy355; + goto yy158; + } else { + if (yych <= ' ') goto yy355; + if (yych != ')') goto yy158; + } YYDEBUG(357, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy442; - if (yych == 'e') goto yy442; - goto yy44; -yy358: + ++YYCURSOR; YYDEBUG(358, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy443; - if (yych == 'i') goto yy443; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1477 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INT_CAST); +} +#line 4741 "Zend/zend_language_scanner.c" yy359: YYDEBUG(359, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy444; - if (yych == 'i') goto yy444; - goto yy44; + if (yych == 'E') goto yy360; + if (yych != 'e') goto yy158; yy360: YYDEBUG(360, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy445; - if (yych == 'r') goto yy445; - goto yy44; + if (yych == 'R') goto yy355; + if (yych == 'r') goto yy355; + goto yy158; yy361: YYDEBUG(361, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy446; - if (yych == 'i') goto yy446; - goto yy44; + if (yych == 'O') goto yy362; + if (yych != 'o') goto yy158; yy362: YYDEBUG(362, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy447; - if (yych == 'c') goto yy447; - goto yy44; + if (yych == 'A') goto yy363; + if (yych != 'a') goto yy158; yy363: YYDEBUG(363, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'W') goto yy448; - if (yych == 'w') goto yy448; - goto yy44; + if (yych == 'T') goto yy364; + if (yych != 't') goto yy158; yy364: YYDEBUG(364, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy450; - if (yych == 't') goto yy450; - goto yy44; -yy365: + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(365, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy452; - if (yych == 't') goto yy452; - goto yy44; -yy366: + if (yych <= 0x1F) { + if (yych == '\t') goto yy364; + goto yy158; + } else { + if (yych <= ' ') goto yy364; + if (yych != ')') goto yy158; + } YYDEBUG(366, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy454; - if (yych == 'e') goto yy454; - goto yy44; -yy367: + ++YYCURSOR; YYDEBUG(367, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy456; - if (yych == 'd') goto yy456; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1481 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DOUBLE_CAST); +} +#line 4789 "Zend/zend_language_scanner.c" yy368: YYDEBUG(368, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy458; - if (yych == 'a') goto yy458; - goto yy44; + if (yych == 'U') goto yy369; + if (yych != 'u') goto yy158; yy369: YYDEBUG(369, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy459; - if (yych == 'r') goto yy459; - goto yy44; + if (yych == 'B') goto yy370; + if (yych != 'b') goto yy158; yy370: YYDEBUG(370, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy460; - if (yych == 'l') goto yy460; - goto yy44; + if (yych == 'L') goto yy371; + if (yych != 'l') goto yy158; yy371: YYDEBUG(371, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy461; - if (yych == 'n') goto yy461; - goto yy44; + if (yych == 'E') goto yy364; + if (yych == 'e') goto yy364; + goto yy158; yy372: YYDEBUG(372, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy462; - if (yych == 'l') goto yy462; - goto yy44; + if (yych == 'A') goto yy373; + if (yych != 'a') goto yy158; yy373: YYDEBUG(373, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy463; - if (yych == 'n') goto yy463; - goto yy44; + if (yych == 'L') goto yy364; + if (yych == 'l') goto yy364; + goto yy158; yy374: YYDEBUG(374, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy464; - if (yych == 't') goto yy464; - goto yy44; + if (yych == 'R') goto yy375; + if (yych != 'r') goto yy158; yy375: YYDEBUG(375, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy465; - if (yych == 'm') goto yy465; - goto yy44; + if (yych == 'I') goto yy376; + if (yych != 'i') goto yy158; yy376: YYDEBUG(376, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy466; - if (yych == 'a') goto yy466; - goto yy44; + if (yych == 'N') goto yy377; + if (yych != 'n') goto yy158; yy377: YYDEBUG(377, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy467; - if (yych == 'y') goto yy467; - goto yy82; + if (yych == 'G') goto yy378; + if (yych != 'g') goto yy158; yy378: YYDEBUG(378, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy469; - if (yych == 'r') goto yy469; - goto yy82; -yy379: - YYDEBUG(379, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy474; - if (yych == 'e') goto yy474; - goto yy471; -yy380: - YYDEBUG(380, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy475; - if (yych == 'l') goto yy475; - goto yy82; -yy381: - YYDEBUG(381, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy388; - if (yych == 't') goto yy388; - goto yy82; -yy382: - YYDEBUG(382, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy383: - YYDEBUG(383, *YYCURSOR); + YYDEBUG(379, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy382; - goto yy82; + if (yych == '\t') goto yy378; + goto yy158; } else { - if (yych <= ' ') goto yy382; - if (yych != ')') goto yy82; + if (yych <= ' ') goto yy378; + if (yych != ')') goto yy158; } - YYDEBUG(384, *YYCURSOR); + YYDEBUG(380, *YYCURSOR); ++YYCURSOR; - YYDEBUG(385, *YYCURSOR); + YYDEBUG(381, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1477 "Zend/zend_language_scanner.l" +#line 1485 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_INT_CAST); + RETURN_TOKEN(T_STRING_CAST); } -#line 4561 "Zend/zend_language_scanner.c" -yy386: - YYDEBUG(386, *YYCURSOR); +#line 4863 "Zend/zend_language_scanner.c" +yy382: + YYDEBUG(382, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy476; - if (yych == 'g') goto yy476; - goto yy82; -yy387: - YYDEBUG(387, *YYCURSOR); + if (yych == 'R') goto yy383; + if (yych != 'r') goto yy158; +yy383: + YYDEBUG(383, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy477; - if (yych == 'c') goto yy477; - goto yy82; -yy388: - YYDEBUG(388, *YYCURSOR); + if (yych == 'A') goto yy384; + if (yych != 'a') goto yy158; +yy384: + YYDEBUG(384, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy385; + if (yych != 'y') goto yy158; +yy385: + YYDEBUG(385, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(389, *YYCURSOR); + YYDEBUG(386, *YYCURSOR); 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 == '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(3); - yych = *YYCURSOR; -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; - } + if (yych == '\t') goto yy385; + goto yy158; } else { - if (yych <= '`') { - if (yych == '_') goto yy394; - goto yy82; - } else { - if (yych <= 'z') goto yy394; - if (yych <= 0x7F) goto yy82; - goto yy394; - } + if (yych <= ' ') goto yy385; + if (yych != ')') goto yy158; } -yy396: - YYDEBUG(396, *YYCURSOR); + YYDEBUG(387, *YYCURSOR); ++YYCURSOR; -yy397: - YYDEBUG(397, *YYCURSOR); + YYDEBUG(388, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2270 "Zend/zend_language_scanner.l" +#line 1489 "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; + RETURN_TOKEN(T_ARRAY_CAST); +} +#line 4900 "Zend/zend_language_scanner.c" +yy389: + YYDEBUG(389, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'J') goto yy390; + if (yych != 'j') goto yy158; +yy390: + YYDEBUG(390, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy391; + if (yych != 'e') goto yy158; +yy391: + YYDEBUG(391, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy392; + if (yych != 'c') goto yy158; +yy392: + YYDEBUG(392, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy393; + if (yych != 't') goto yy158; +yy393: + YYDEBUG(393, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(394, *YYCURSOR); + if (yych <= 0x1F) { + if (yych == '\t') goto yy393; + goto yy158; } else { - spacing |= HEREDOC_USING_SPACES; + if (yych <= ' ') goto yy393; + if (yych != ')') goto yy158; } + YYDEBUG(395, *YYCURSOR); ++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); + YYDEBUG(396, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1493 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_OBJECT_CAST); } -#line 4788 "Zend/zend_language_scanner.c" +#line 4942 "Zend/zend_language_scanner.c" +yy397: + YYDEBUG(397, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy407; + if (yych == 'n') goto yy407; + goto yy158; yy398: YYDEBUG(398, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy396; - goto yy397; + if (yych == 'O') goto yy399; + if (yych != 'o') goto yy158; yy399: YYDEBUG(399, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy484; - if (yych == 'a') goto yy484; - goto yy44; + if (yych == 'L') goto yy400; + if (yych != 'l') goto yy158; yy400: YYDEBUG(400, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'E') goto yy405; + if (yych == 'e') goto yy405; + goto yy402; +yy401: YYDEBUG(401, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1589 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ARRAY); -} -#line 4812 "Zend/zend_language_scanner.c" + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; yy402: YYDEBUG(402, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + if (yych <= 0x1F) { + if (yych == '\t') goto yy401; + goto yy158; + } else { + if (yych <= ' ') goto yy401; + if (yych != ')') goto yy158; } YYDEBUG(403, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(404, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1385 "Zend/zend_language_scanner.l" +#line 1497 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_BREAK); + RETURN_TOKEN(T_BOOL_CAST); } -#line 4825 "Zend/zend_language_scanner.c" -yy404: - YYDEBUG(404, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy485; - if (yych == 'b') goto yy485; - goto yy44; +#line 4987 "Zend/zend_language_scanner.c" yy405: YYDEBUG(405, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'A') goto yy406; + if (yych != 'a') goto yy158; +yy406: YYDEBUG(406, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1297 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CATCH); -} -#line 4844 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'N') goto yy401; + if (yych == 'n') goto yy401; + goto yy158; yy407: YYDEBUG(407, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'A') goto yy408; + if (yych != 'a') goto yy158; +yy408: YYDEBUG(408, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1405 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CLASS); -} -#line 4857 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'R') goto yy409; + if (yych != 'r') goto yy158; yy409: YYDEBUG(409, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'Y') goto yy378; + if (yych == 'y') goto yy378; + goto yy158; +yy410: YYDEBUG(410, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1469 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CLONE); -} -#line 4870 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'S') goto yy411; + if (yych != 's') goto yy158; yy411: YYDEBUG(411, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'E') goto yy412; + if (yych != 'e') goto yy158; +yy412: YYDEBUG(412, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1275 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CONST); -} -#line 4883 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'T') goto yy413; + if (yych != 't') goto yy158; yy413: YYDEBUG(413, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy486; - if (yych == 'n') goto yy486; - goto yy44; -yy414: + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(414, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy487; - if (yych == 'r') goto yy487; - goto yy44; -yy415: + if (yych <= 0x1F) { + if (yych == '\t') goto yy413; + goto yy158; + } else { + if (yych <= ' ') goto yy413; + if (yych != ')') goto yy158; + } YYDEBUG(415, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy488; - if (yych == 'l') goto yy488; - goto yy44; -yy416: + ++YYCURSOR; YYDEBUG(416, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy489; - if (yych == 'f') goto yy489; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1501 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_UNSET_CAST); +} +#line 5051 "Zend/zend_language_scanner.c" yy417: YYDEBUG(417, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'R') goto yy418; + if (yych != 'r') goto yy151; +yy418: YYDEBUG(418, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(419, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1545 "Zend/zend_language_scanner.l" +#line 1473 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_EMPTY); + RETURN_TOKEN(T_VAR); } -#line 4920 "Zend/zend_language_scanner.c" -yy419: - YYDEBUG(419, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy491; - if (yych == 'c') goto yy491; - goto yy44; +#line 5069 "Zend/zend_language_scanner.c" yy420: YYDEBUG(420, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy492; - if (yych == 'r') goto yy492; - goto yy44; + if (yych == 'M') goto yy424; + if (yych == 'm') goto yy424; + goto yy151; yy421: YYDEBUG(421, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'W') goto yy422; + if (yych != 'w') goto yy151; +yy422: YYDEBUG(422, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(423, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1317 "Zend/zend_language_scanner.l" +#line 1465 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_ENDIF); + RETURN_TOKEN(T_NEW); } -#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; +#line 5093 "Zend/zend_language_scanner.c" yy424: YYDEBUG(424, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy495; - if (yych == 'i') goto yy495; - goto yy44; + if (yych == 'E') goto yy425; + if (yych != 'e') goto yy151; yy425: YYDEBUG(425, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy496; - if (yych == 'd') goto yy496; - goto yy44; + if (yych == 'S') goto yy426; + if (yych != 's') goto yy151; yy426: YYDEBUG(426, *YYCURSOR); yych = *++YYCURSOR; - 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; - } - } + if (yych == 'P') goto yy427; + if (yych != 'p') goto yy151; yy427: YYDEBUG(427, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1561 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FINAL); -} -#line 4991 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'A') goto yy428; + if (yych != 'a') goto yy151; yy428: YYDEBUG(428, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy498; - if (yych == 'c') goto yy498; - goto yy44; + if (yych == 'C') goto yy429; + if (yych != 'c') goto yy151; yy429: YYDEBUG(429, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy499; - if (yych == 'i') goto yy499; - goto yy44; + if (yych == 'E') goto yy430; + if (yych != 'e') goto yy151; yy430: YYDEBUG(430, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy500; - if (yych == 'l') goto yy500; - goto yy44; -yy431: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(431, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy502; - if (yych == 'm') goto yy502; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1525 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_NAMESPACE); +} +#line 5136 "Zend/zend_language_scanner.c" yy432: YYDEBUG(432, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy503; - if (yych == 'd') goto yy503; - goto yy44; + ++YYCURSOR; + if ((yych = *YYCURSOR) == '\n') goto yy436; + if (yych == '\r') goto yy437; yy433: YYDEBUG(433, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy504; - if (yych == 'n') goto yy504; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 2126 "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 5156 "Zend/zend_language_scanner.c" yy434: YYDEBUG(434, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy505; - if (yych == 'a') goto yy505; - goto yy44; -yy435: + ++YYCURSOR; YYDEBUG(435, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy506; - if (yych == 'f') goto yy506; - goto yy44; -yy436: - YYDEBUG(436, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(437, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1541 "Zend/zend_language_scanner.l" +#line 1461 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_ISSET); + RETURN_TOKEN(T_COALESCE); } -#line 5052 "Zend/zend_language_scanner.c" +#line 5166 "Zend/zend_language_scanner.c" +yy436: + YYDEBUG(436, *YYCURSOR); + yych = *++YYCURSOR; + goto yy433; +yy437: + YYDEBUG(437, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy436; + goto yy433; yy438: YYDEBUG(438, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy507; - if (yych == 'p') goto yy507; - goto yy44; -yy439: + yyaccept = 3; + YYMARKER = ++YYCURSOR; + YYFILL(3); + yych = *YYCURSOR; YYDEBUG(439, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + if (yych <= 'D') { + if (yych <= '/') goto yy154; + if (yych <= '9') goto yy438; + goto yy154; + } else { + if (yych <= 'E') goto yy157; + if (yych == 'e') goto yy157; + goto yy154; } +yy440: YYDEBUG(440, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(441, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1401 "Zend/zend_language_scanner.l" +#line 1661 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_PRINT); + RETURN_TOKEN(T_CONCAT_EQUAL); } -#line 5071 "Zend/zend_language_scanner.c" -yy441: - YYDEBUG(441, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy508; - if (yych == 't') goto yy508; - goto yy44; +#line 5201 "Zend/zend_language_scanner.c" yy442: YYDEBUG(442, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy509; - if (yych == 'c') goto yy509; - goto yy44; -yy443: + if (yych != '.') goto yy158; YYDEBUG(443, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy510; - if (yych == 'c') goto yy510; - goto yy44; -yy444: + ++YYCURSOR; YYDEBUG(444, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy512; - if (yych == 'r') goto yy512; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1457 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ELLIPSIS); +} +#line 5214 "Zend/zend_language_scanner.c" yy445: YYDEBUG(445, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy513; - if (yych == 'n') goto yy513; - goto yy44; -yy446: + ++YYCURSOR; YYDEBUG(446, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy515; - if (yych == 'c') goto yy515; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1449 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM); +} +#line 5224 "Zend/zend_language_scanner.c" yy447: YYDEBUG(447, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy517; - if (yych == 'h') goto yy517; - goto yy44; + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; yy448: YYDEBUG(448, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + if (yych <= '\f') { + if (yych <= 0x08) goto yy105; + if (yych <= '\n') goto yy447; + goto yy105; + } else { + if (yych <= '\r') goto yy447; + if (yych == ' ') goto yy447; + goto yy105; } +yy449: YYDEBUG(449, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(450, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1305 "Zend/zend_language_scanner.l" +#line 1641 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_THROW); + RETURN_TOKEN(T_MINUS_EQUAL); } -#line 5126 "Zend/zend_language_scanner.c" -yy450: - YYDEBUG(450, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } +#line 5250 "Zend/zend_language_scanner.c" +yy451: YYDEBUG(451, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(452, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1413 "Zend/zend_language_scanner.l" +#line 1605 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_TRAIT); + RETURN_TOKEN(T_DEC); } -#line 5139 "Zend/zend_language_scanner.c" -yy452: - YYDEBUG(452, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } +#line 5260 "Zend/zend_language_scanner.c" +yy453: YYDEBUG(453, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(454, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1577 "Zend/zend_language_scanner.l" +#line 1425 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_UNSET); + yy_push_state(ST_LOOKING_FOR_PROPERTY); + RETURN_TOKEN(T_OBJECT_OPERATOR); } -#line 5152 "Zend/zend_language_scanner.c" -yy454: - YYDEBUG(454, *YYCURSOR); +#line 5271 "Zend/zend_language_scanner.c" +yy455: + YYDEBUG(455, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + if (yych <= 'O') { + if (yych == 'I') goto yy462; + if (yych <= 'N') goto yy151; + goto yy463; + } else { + if (yych <= 'i') { + if (yych <= 'h') goto yy151; + goto yy462; + } else { + if (yych == 'o') goto yy463; + goto yy151; + } } - YYDEBUG(455, *YYCURSOR); - 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); - 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; - } + yych = *++YYCURSOR; + if (yych == 'B') goto yy457; + if (yych != 'b') goto yy151; yy457: YYDEBUG(457, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1289 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_YIELD); -} -#line 5187 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'L') goto yy458; + if (yych != 'l') goto yy151; yy458: YYDEBUG(458, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy521; - if (yych == 's') goto yy521; - goto yy44; + if (yych == 'I') goto yy459; + if (yych != 'i') goto yy151; yy459: YYDEBUG(459, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy522; - goto yy44; + if (yych == 'C') goto yy460; + if (yych != 'c') goto yy151; yy460: YYDEBUG(460, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy523; - if (yych == 'e') goto yy523; - goto yy44; -yy461: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(461, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy524; - if (yych == 'c') goto yy524; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1577 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_PUBLIC); +} +#line 5320 "Zend/zend_language_scanner.c" yy462: YYDEBUG(462, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy525; - if (yych == 't') goto yy525; - goto yy44; + if (yych <= 'V') { + if (yych == 'N') goto yy471; + if (yych <= 'U') goto yy151; + goto yy472; + } else { + if (yych <= 'n') { + if (yych <= 'm') goto yy151; + goto yy471; + } else { + if (yych == 'v') goto yy472; + goto yy151; + } + } yy463: YYDEBUG(463, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy526; - if (yych == 'e') goto yy526; - goto yy44; + if (yych == 'T') goto yy464; + if (yych != 't') goto yy151; yy464: YYDEBUG(464, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy527; - if (yych == 'h') goto yy527; - goto yy44; + if (yych == 'E') goto yy465; + if (yych != 'e') goto yy151; yy465: YYDEBUG(465, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy528; - if (yych == 'e') goto yy528; - goto yy44; + if (yych == 'C') goto yy466; + if (yych != 'c') goto yy151; yy466: YYDEBUG(466, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy529; - if (yych == 'i') goto yy529; - goto yy44; + if (yych == 'T') goto yy467; + if (yych != 't') goto yy151; yy467: YYDEBUG(467, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'E') goto yy468; + if (yych != 'e') goto yy151; +yy468: YYDEBUG(468, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy467; - goto yy82; - } else { - if (yych <= ' ') goto yy467; - if (yych == ')') goto yy530; - goto yy82; - } + yych = *++YYCURSOR; + if (yych == 'D') goto yy469; + if (yych != 'd') goto yy151; yy469: YYDEBUG(469, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy532; - if (yych == 'y') goto yy532; - goto yy82; -yy470: - YYDEBUG(470, *YYCURSOR); ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy471: - YYDEBUG(471, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy470; - goto yy82; - } else { - if (yych <= ' ') goto yy470; - if (yych != ')') goto yy82; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - YYDEBUG(472, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(473, *YYCURSOR); + YYDEBUG(470, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1497 "Zend/zend_language_scanner.l" +#line 1573 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_BOOL_CAST); + RETURN_TOKEN(T_PROTECTED); } -#line 5283 "Zend/zend_language_scanner.c" +#line 5379 "Zend/zend_language_scanner.c" +yy471: + YYDEBUG(471, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy477; + if (yych == 't') goto yy477; + goto yy151; +yy472: + YYDEBUG(472, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy473; + if (yych != 'a') goto yy151; +yy473: + YYDEBUG(473, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy474; + if (yych != 't') goto yy151; yy474: YYDEBUG(474, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy534; - if (yych == 'a') goto yy534; - goto yy82; + if (yych == 'E') goto yy475; + if (yych != 'e') goto yy151; yy475: YYDEBUG(475, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy388; - if (yych == 'e') goto yy388; - goto yy82; -yy476: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(476, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy535; - if (yych == 'e') goto yy535; - goto yy82; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1569 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_PRIVATE); +} +#line 5413 "Zend/zend_language_scanner.c" yy477: YYDEBUG(477, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy536; - if (yych == 't') goto yy536; - goto yy82; -yy478: - YYDEBUG(478, *YYCURSOR); ++YYCURSOR; - YYDEBUG(479, *YYCURSOR); + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(478, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1481 "Zend/zend_language_scanner.l" +#line 1401 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_DOUBLE_CAST); + RETURN_TOKEN(T_PRINT); } -#line 5317 "Zend/zend_language_scanner.c" +#line 5426 "Zend/zend_language_scanner.c" +yy479: + YYDEBUG(479, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy484; + if (yych == 'o') goto yy484; + goto yy151; yy480: YYDEBUG(480, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy532; - if (yych == 'g') goto yy532; - goto yy82; + if (yych == 'T') goto yy481; + if (yych != 't') goto yy151; yy481: YYDEBUG(481, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'O') goto yy482; + if (yych != 'o') goto yy151; +yy482: YYDEBUG(482, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy481; - goto yy82; - } else { - if (yych <= ' ') goto yy481; - if (yych == ')') goto yy538; - goto yy82; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } -yy483: YYDEBUG(483, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy396; - if (yych == '\r') goto yy398; - goto yy82; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1393 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_GOTO); +} +#line 5455 "Zend/zend_language_scanner.c" yy484: YYDEBUG(484, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy540; - if (yych == 'c') goto yy540; - goto yy44; + if (yych == 'B') goto yy485; + if (yych != 'b') goto yy151; yy485: YYDEBUG(485, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy541; - if (yych == 'l') goto yy541; - goto yy44; + if (yych == 'A') goto yy486; + if (yych != 'a') goto yy151; yy486: YYDEBUG(486, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy542; - if (yych == 'u') goto yy542; - goto yy44; + if (yych == 'L') goto yy487; + if (yych != 'l') goto yy151; yy487: YYDEBUG(487, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy543; - if (yych == 'e') goto yy543; - goto yy44; -yy488: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(488, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy545; - if (yych == 't') goto yy545; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1541 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_GLOBAL); +} +#line 5483 "Zend/zend_language_scanner.c" yy489: YYDEBUG(489, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == '<') goto yy497; + goto yy158; +yy490: YYDEBUG(490, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1313 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ELSEIF); -} -#line 5386 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + goto yy145; yy491: YYDEBUG(491, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy547; - if (yych == 'l') goto yy547; - goto yy44; + goto yy143; yy492: YYDEBUG(492, *YYCURSOR); 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; - } - } + if (yych == 'E') goto yy493; + if (yych != 'e') goto yy151; yy493: YYDEBUG(493, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1341 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDFOR); -} -#line 5420 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'A') goto yy494; + if (yych != 'a') goto yy151; yy494: YYDEBUG(494, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy549; - if (yych == 't') goto yy549; - goto yy44; + if (yych == 'K') goto yy495; + if (yych != 'k') goto yy151; yy495: YYDEBUG(495, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy550; - if (yych == 'l') goto yy550; - goto yy44; -yy496: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(496, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy551; - if (yych == 's') goto yy551; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1385 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_BREAK); +} +#line 5524 "Zend/zend_language_scanner.c" yy497: YYDEBUG(497, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy553; - if (yych == 'y') goto yy553; - goto yy44; + if (yych == '<') goto yy220; + goto yy158; yy498: YYDEBUG(498, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy555; - if (yych == 'h') goto yy555; - goto yy44; + if (yych == 'A') goto yy505; + if (yych == 'a') goto yy505; + goto yy151; yy499: YYDEBUG(499, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy557; - if (yych == 'o') goto yy557; - goto yy44; + if (yych == 'I') goto yy500; + if (yych != 'i') goto yy151; yy500: YYDEBUG(500, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'T') goto yy501; + if (yych != 't') goto yy151; +yy501: YYDEBUG(501, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1537 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_GLOBAL); -} -#line 5469 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'C') goto yy502; + if (yych != 'c') goto yy151; yy502: YYDEBUG(502, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy558; - if (yych == 'e') goto yy558; - goto yy44; + if (yych == 'H') goto yy503; + if (yych != 'h') goto yy151; yy503: YYDEBUG(503, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy559; - if (yych == 'e') goto yy559; - goto yy44; -yy504: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(504, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy561; - if (yych == 'c') goto yy561; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1369 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_SWITCH); +} +#line 5568 "Zend/zend_language_scanner.c" yy505: YYDEBUG(505, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy562; - if (yych == 'd') goto yy562; - goto yy44; + if (yych == 'T') goto yy506; + if (yych != 't') goto yy151; yy506: YYDEBUG(506, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy563; - if (yych == 'a') goto yy563; - goto yy44; + if (yych == 'I') goto yy507; + if (yych != 'i') goto yy151; yy507: YYDEBUG(507, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy564; - if (yych == 'a') goto yy564; - goto yy44; -yy508: - YYDEBUG(508, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy565; - if (yych == 'e') goto yy565; - goto yy44; -yy509: - YYDEBUG(509, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy567; - if (yych == 't') goto yy567; - goto yy44; -yy510: - YYDEBUG(510, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + if (yych == 'C') goto yy508; + if (yych != 'c') goto yy151; +yy508: + YYDEBUG(508, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - YYDEBUG(511, *YYCURSOR); + YYDEBUG(509, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1573 "Zend/zend_language_scanner.l" +#line 1557 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_PUBLIC); + RETURN_TOKEN(T_STATIC); } -#line 5530 "Zend/zend_language_scanner.c" +#line 5596 "Zend/zend_language_scanner.c" +yy510: + YYDEBUG(510, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy521; + if (yych == 's') goto yy521; + goto yy151; +yy511: + YYDEBUG(511, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy519; + if (yych == 'd') goto yy519; + goto yy151; yy512: YYDEBUG(512, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy568; - if (yych == 'e') goto yy568; - goto yy44; + if (yych == 'R') goto yy515; + if (yych == 'r') goto yy515; + goto yy151; yy513: YYDEBUG(513, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } YYDEBUG(514, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1279 "Zend/zend_language_scanner.l" +#line 1365 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_RETURN); + RETURN_TOKEN(T_AS); } -#line 5549 "Zend/zend_language_scanner.c" +#line 5627 "Zend/zend_language_scanner.c" yy515: YYDEBUG(515, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'A') goto yy516; + if (yych != 'a') goto yy151; +yy516: YYDEBUG(516, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1553 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_STATIC); -} -#line 5562 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'Y') goto yy517; + if (yych != 'y') goto yy151; yy517: YYDEBUG(517, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } YYDEBUG(518, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1369 "Zend/zend_language_scanner.l" +#line 1593 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_SWITCH); + RETURN_TOKEN(T_ARRAY); } -#line 5575 "Zend/zend_language_scanner.c" +#line 5650 "Zend/zend_language_scanner.c" yy519: YYDEBUG(519, *YYCURSOR); ++YYCURSOR; - 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; - } + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } + YYDEBUG(520, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1701 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_LOGICAL_AND); +} +#line 5663 "Zend/zend_language_scanner.c" yy521: YYDEBUG(521, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy571; - if (yych == 's') goto yy571; - goto yy44; + if (yych == 'T') goto yy522; + if (yych != 't') goto yy151; yy522: YYDEBUG(522, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy572; - goto yy44; + if (yych == 'R') goto yy523; + if (yych != 'r') goto yy151; yy523: YYDEBUG(523, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy574; - goto yy44; + if (yych == 'A') goto yy524; + if (yych != 'a') goto yy151; yy524: YYDEBUG(524, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy575; - if (yych == 't') goto yy575; - goto yy44; + if (yych == 'C') goto yy525; + if (yych != 'c') goto yy151; yy525: YYDEBUG(525, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy576; - goto yy44; + if (yych == 'T') goto yy526; + if (yych != 't') goto yy151; yy526: YYDEBUG(526, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy577; - goto yy44; -yy527: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(527, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy578; - if (yych == 'o') goto yy578; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1561 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ABSTRACT); +} +#line 5701 "Zend/zend_language_scanner.c" yy528: YYDEBUG(528, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy579; - if (yych == 's') goto yy579; - goto yy44; + if (yych == 'I') goto yy529; + if (yych != 'i') goto yy151; yy529: YYDEBUG(529, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy580; - if (yych == 't') goto yy580; - goto yy44; + if (yych == 'L') goto yy530; + if (yych != 'l') goto yy151; yy530: YYDEBUG(530, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'E') goto yy531; + if (yych != 'e') goto yy151; +yy531: YYDEBUG(531, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(532, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1489 "Zend/zend_language_scanner.l" +#line 1325 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_ARRAY_CAST); + RETURN_TOKEN(T_WHILE); } -#line 5659 "Zend/zend_language_scanner.c" -yy532: - YYDEBUG(532, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; +#line 5729 "Zend/zend_language_scanner.c" +yy533: YYDEBUG(533, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy82; - } else { - if (yych <= ' ') goto yy532; - if (yych == ')') goto yy581; - goto yy82; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } -yy534: YYDEBUG(534, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy470; - if (yych == 'n') goto yy470; - goto yy82; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1309 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IF); +} +#line 5742 "Zend/zend_language_scanner.c" yy535: YYDEBUG(535, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy382; - if (yych == 'r') goto yy382; - goto yy82; + if (yych == 'P') goto yy577; + if (yych == 'p') goto yy577; + goto yy151; yy536: YYDEBUG(536, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(537, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy536; - goto yy82; + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= 'C') { + if (yych <= 'B') goto yy151; + goto yy544; + } else { + if (yych <= 'R') goto yy151; + if (yych <= 'S') goto yy542; + goto yy543; + } } else { - if (yych <= ' ') goto yy536; - if (yych == ')') goto yy583; - goto yy82; + if (yych <= 'r') { + if (yych == 'c') goto yy544; + goto yy151; + } else { + if (yych <= 's') goto yy542; + if (yych <= 't') goto yy543; + goto yy151; + } } +yy537: + YYDEBUG(537, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy538; + if (yych != 's') goto yy151; yy538: YYDEBUG(538, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'E') goto yy539; + if (yych != 'e') goto yy151; +yy539: YYDEBUG(539, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1501 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_UNSET_CAST); -} -#line 5709 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'T') goto yy540; + if (yych != 't') goto yy151; yy540: YYDEBUG(540, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy585; - if (yych == 't') goto yy585; - goto yy44; -yy541: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(541, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy587; - if (yych == 'e') goto yy587; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1545 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ISSET); +} +#line 5798 "Zend/zend_language_scanner.c" yy542: YYDEBUG(542, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy589; - if (yych == 'e') goto yy589; - goto yy44; + if (yych == 'T') goto yy563; + if (yych == 't') goto yy563; + goto yy151; yy543: YYDEBUG(543, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'E') goto yy556; + if (yych == 'e') goto yy556; + goto yy151; +yy544: YYDEBUG(544, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1353 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DECLARE); -} -#line 5740 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'L') goto yy545; + if (yych != 'l') goto yy151; yy545: YYDEBUG(545, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'U') goto yy546; + if (yych != 'u') goto yy151; +yy546: YYDEBUG(546, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1381 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DEFAULT); -} -#line 5753 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'D') goto yy547; + if (yych != 'd') goto yy151; yy547: YYDEBUG(547, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy591; - if (yych == 'a') goto yy591; - goto yy44; + if (yych == 'E') goto yy548; + if (yych != 'e') goto yy151; yy548: YYDEBUG(548, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy592; - if (yych == 'a') goto yy592; - goto yy44; + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '^') { + if (yych <= '9') { + if (yych >= '0') goto yy150; + } else { + if (yych <= '@') goto yy549; + if (yych <= 'Z') goto yy150; + } + } else { + if (yych <= '`') { + if (yych <= '_') goto yy550; + } else { + if (yych <= 'z') goto yy150; + if (yych >= 0x80) goto yy150; + } + } yy549: YYDEBUG(549, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy593; - if (yych == 'c') goto yy593; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1509 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INCLUDE); +} +#line 5856 "Zend/zend_language_scanner.c" yy550: YYDEBUG(550, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy594; - if (yych == 'e') goto yy594; - goto yy44; + if (yych == 'O') goto yy551; + if (yych != 'o') goto yy151; yy551: YYDEBUG(551, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'N') goto yy552; + if (yych != 'n') goto yy151; +yy552: 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" + yych = *++YYCURSOR; + if (yych == 'C') goto yy553; + if (yych != 'c') goto yy151; yy553: YYDEBUG(553, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'E') goto yy554; + if (yych != 'e') goto yy151; +yy554: YYDEBUG(554, *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); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - YYDEBUG(556, *YYCURSOR); + YYDEBUG(555, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1345 "Zend/zend_language_scanner.l" +#line 1513 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_FOREACH); + RETURN_TOKEN(T_INCLUDE_ONCE); } -#line 5816 "Zend/zend_language_scanner.c" +#line 5889 "Zend/zend_language_scanner.c" +yy556: + YYDEBUG(556, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy557; + if (yych != 'r') goto yy151; yy557: YYDEBUG(557, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy596; - if (yych == 'n') goto yy596; - goto yy44; + if (yych == 'F') goto yy558; + if (yych != 'f') goto yy151; yy558: YYDEBUG(558, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy598; - if (yych == 'n') goto yy598; - goto yy44; + if (yych == 'A') goto yy559; + if (yych != 'a') goto yy151; yy559: YYDEBUG(559, *YYCURSOR); yych = *++YYCURSOR; - 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; - } - } + if (yych == 'C') goto yy560; + if (yych != 'c') goto yy151; yy560: YYDEBUG(560, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1509 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INCLUDE); -} -#line 5854 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'E') goto yy561; + if (yych != 'e') goto yy151; yy561: YYDEBUG(561, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy600; - if (yych == 'e') goto yy600; - goto yy44; -yy562: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(562, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy601; - if (yych == 'o') goto yy601; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1409 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INTERFACE); +} +#line 5927 "Zend/zend_language_scanner.c" yy563: YYDEBUG(563, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy602; - if (yych == 'c') goto yy602; - goto yy44; + if (yych <= 'E') { + if (yych == 'A') goto yy564; + if (yych <= 'D') goto yy151; + goto yy565; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy151; + } else { + if (yych == 'e') goto yy565; + goto yy151; + } + } yy564: YYDEBUG(564, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy603; - if (yych == 'c') goto yy603; - goto yy44; + if (yych == 'N') goto yy571; + if (yych == 'n') goto yy571; + goto yy151; yy565: YYDEBUG(565, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'A') goto yy566; + if (yych != 'a') goto yy151; +yy566: 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" + yych = *++YYCURSOR; + if (yych == 'D') goto yy567; + if (yych != 'd') goto yy151; yy567: YYDEBUG(567, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy604; - if (yych == 'e') goto yy604; - goto yy44; + if (yych == 'O') goto yy568; + if (yych != 'o') goto yy151; yy568: YYDEBUG(568, *YYCURSOR); yych = *++YYCURSOR; - 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; - } - } + if (yych == 'F') goto yy569; + if (yych != 'f') goto yy151; yy569: YYDEBUG(569, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(570, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1517 "Zend/zend_language_scanner.l" +#line 1537 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_REQUIRE); + RETURN_TOKEN(T_INSTEADOF); } -#line 5923 "Zend/zend_language_scanner.c" -yy570: - YYDEBUG(570, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy606; - if (yych == 'r') goto yy606; - goto yy82; +#line 5981 "Zend/zend_language_scanner.c" yy571: YYDEBUG(571, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy607; - goto yy44; + if (yych == 'C') goto yy572; + if (yych != 'c') goto yy151; yy572: YYDEBUG(572, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'E') goto yy573; + if (yych != 'e') goto yy151; +yy573: YYDEBUG(573, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1919 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DIR); -} -#line 5947 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'O') goto yy574; + if (yych != 'o') goto yy151; yy574: YYDEBUG(574, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy608; - goto yy44; + if (yych == 'F') goto yy575; + if (yych != 'f') goto yy151; yy575: YYDEBUG(575, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy610; - if (yych == 'i') goto yy610; - goto yy44; -yy576: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(576, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy611; - if (yych == 'c') goto yy611; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1361 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INSTANCEOF); +} +#line 6014 "Zend/zend_language_scanner.c" yy577: YYDEBUG(577, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy612; - goto yy44; + if (yych == 'L') goto yy578; + if (yych != 'l') goto yy151; yy578: YYDEBUG(578, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy614; - if (yych == 'd') goto yy614; - goto yy44; + if (yych == 'E') goto yy579; + if (yych != 'e') goto yy151; yy579: YYDEBUG(579, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy615; - if (yych == 'p') goto yy615; - goto yy44; + if (yych == 'M') goto yy580; + if (yych != 'm') goto yy151; yy580: YYDEBUG(580, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy616; - goto yy44; + if (yych == 'E') goto yy581; + if (yych != 'e') goto yy151; yy581: YYDEBUG(581, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'N') goto yy582; + if (yych != 'n') goto yy151; +yy582: YYDEBUG(582, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1485 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_STRING_CAST); -} -#line 5996 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'T') goto yy583; + if (yych != 't') goto yy151; yy583: YYDEBUG(583, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(584, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1493 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_OBJECT_CAST); -} -#line 6006 "Zend/zend_language_scanner.c" -yy585: - YYDEBUG(585, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + if (yych == 'S') goto yy584; + if (yych != 's') goto yy151; +yy584: + YYDEBUG(584, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - YYDEBUG(586, *YYCURSOR); + YYDEBUG(585, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1557 "Zend/zend_language_scanner.l" +#line 1421 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_ABSTRACT); + RETURN_TOKEN(T_IMPLEMENTS); } -#line 6019 "Zend/zend_language_scanner.c" +#line 6062 "Zend/zend_language_scanner.c" +yy586: + YYDEBUG(586, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy594; + if (yych == 'r') goto yy594; + goto yy151; yy587: YYDEBUG(587, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + if (yych <= 'Y') { + if (yych == 'A') goto yy590; + if (yych <= 'X') goto yy151; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy151; + goto yy590; + } else { + if (yych != 'y') goto yy151; + } } YYDEBUG(588, *YYCURSOR); - 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 (yybm[0+yych] & 16) { - goto yy43; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - YYDEBUG(590, *YYCURSOR); + YYDEBUG(589, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1389 "Zend/zend_language_scanner.l" +#line 1293 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_CONTINUE); + RETURN_TOKEN(T_TRY); } -#line 6045 "Zend/zend_language_scanner.c" +#line 6094 "Zend/zend_language_scanner.c" +yy590: + YYDEBUG(590, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy591; + if (yych != 'i') goto yy151; yy591: YYDEBUG(591, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy617; - if (yych == 'r') goto yy617; - goto yy44; + if (yych == 'T') goto yy592; + if (yych != 't') goto yy151; yy592: YYDEBUG(592, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy618; - if (yych == 'c') goto yy618; - goto yy44; -yy593: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(593, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy619; - if (yych == 'h') goto yy619; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1413 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_TRAIT); +} +#line 6117 "Zend/zend_language_scanner.c" yy594: YYDEBUG(594, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'O') goto yy595; + if (yych != 'o') goto yy151; +yy595: YYDEBUG(595, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1329 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDWHILE); -} -#line 6076 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'W') goto yy596; + if (yych != 'w') goto yy151; yy596: YYDEBUG(596, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } YYDEBUG(597, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1271 "Zend/zend_language_scanner.l" +#line 1305 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_FUNCTION); + RETURN_TOKEN(T_THROW); } -#line 6089 "Zend/zend_language_scanner.c" +#line 6140 "Zend/zend_language_scanner.c" yy598: YYDEBUG(598, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy621; - if (yych == 't') goto yy621; - goto yy44; + if (yych == 'E') goto yy599; + if (yych != 'e') goto yy151; yy599: YYDEBUG(599, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy622; - if (yych == 'o') goto yy622; - goto yy44; + if (yych == 'L') goto yy600; + if (yych != 'l') goto yy151; yy600: YYDEBUG(600, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy623; - if (yych == 'o') goto yy623; - goto yy44; + if (yych == 'D') goto yy601; + if (yych != 'd') goto yy151; yy601: YYDEBUG(601, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy624; - if (yych == 'f') goto yy624; - goto yy44; + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy150; + } + if (yych <= '\f') { + if (yych <= 0x08) goto yy602; + if (yych <= '\n') goto yy603; + } else { + if (yych <= '\r') goto yy603; + if (yych == ' ') goto yy603; + } yy602: YYDEBUG(602, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy626; - if (yych == 'e') goto yy626; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1289 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_YIELD); +} +#line 6177 "Zend/zend_language_scanner.c" yy603: YYDEBUG(603, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy628; - if (yych == 'e') goto yy628; - goto yy44; -yy604: + ++YYCURSOR; + YYFILL(5); + yych = *YYCURSOR; YYDEBUG(604, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy630; - if (yych == 'd') goto yy630; - goto yy44; -yy605: + if (yych <= 0x1F) { + if (yych <= '\n') { + if (yych <= 0x08) goto yy158; + goto yy603; + } else { + if (yych == '\r') goto yy603; + goto yy158; + } + } else { + if (yych <= 'F') { + if (yych <= ' ') goto yy603; + if (yych <= 'E') goto yy158; + } else { + if (yych != 'f') goto yy158; + } + } YYDEBUG(605, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy632; - if (yych == 'o') goto yy632; - goto yy44; + if (yych == 'R') goto yy606; + if (yych != 'r') goto yy158; yy606: YYDEBUG(606, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy633; - if (yych == 'o') goto yy633; - goto yy82; + if (yych == 'O') goto yy607; + if (yych != 'o') goto yy158; yy607: YYDEBUG(607, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy634; - goto yy44; + if (yych == 'M') goto yy608; + if (yych != 'm') goto yy158; yy608: YYDEBUG(608, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + if (yych <= '^') { + if (yych <= '9') { + if (yych >= '0') goto yy158; + } else { + if (yych <= '@') goto yy609; + if (yych <= 'Z') goto yy158; + } + } else { + if (yych <= '`') { + if (yych <= '_') goto yy158; + } else { + if (yych <= 'z') goto yy158; + if (yych >= 0x80) goto yy158; + } } +yy609: YYDEBUG(609, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(610, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1915 "Zend/zend_language_scanner.l" +#line 1283 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_FILE); + yyless(yyleng - 1); + HANDLE_NEWLINES(yytext, yyleng); + RETURN_TOKEN(T_YIELD_FROM); } -#line 6161 "Zend/zend_language_scanner.c" -yy610: - YYDEBUG(610, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy636; - if (yych == 'o') goto yy636; - goto yy44; +#line 6243 "Zend/zend_language_scanner.c" yy611: YYDEBUG(611, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy637; - if (yych == 'o') goto yy637; - goto yy44; -yy612: + if (yych <= 'T') { + if (yych == 'Q') goto yy613; + if (yych <= 'S') goto yy151; + } else { + if (yych <= 'q') { + if (yych <= 'p') goto yy151; + goto yy613; + } else { + if (yych != 't') goto yy151; + } + } YYDEBUG(612, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'U') goto yy625; + if (yych == 'u') goto yy625; + goto yy151; +yy613: YYDEBUG(613, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1911 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_LINE); -} -#line 6186 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'U') goto yy614; + if (yych != 'u') goto yy151; yy614: YYDEBUG(614, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy638; - goto yy44; + if (yych == 'I') goto yy615; + if (yych != 'i') goto yy151; yy615: YYDEBUG(615, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy639; - if (yych == 'a') goto yy639; - goto yy44; + if (yych == 'R') goto yy616; + if (yych != 'r') goto yy151; yy616: YYDEBUG(616, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy640; - goto yy44; + if (yych == 'E') goto yy617; + if (yych != 'e') goto yy151; yy617: YYDEBUG(617, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy642; - if (yych == 'e') goto yy642; - goto yy44; + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '^') { + if (yych <= '9') { + if (yych >= '0') goto yy150; + } else { + if (yych <= '@') goto yy618; + if (yych <= 'Z') goto yy150; + } + } else { + if (yych <= '`') { + if (yych <= '_') goto yy619; + } else { + if (yych <= 'z') goto yy150; + if (yych >= 0x80) goto yy150; + } + } yy618: YYDEBUG(618, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy644; - if (yych == 'h') goto yy644; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1517 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_REQUIRE); +} +#line 6308 "Zend/zend_language_scanner.c" yy619: YYDEBUG(619, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'O') goto yy620; + if (yych != 'o') goto yy151; +yy620: YYDEBUG(620, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1373 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDSWITCH); -} -#line 6227 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'N') goto yy621; + if (yych != 'n') goto yy151; yy621: YYDEBUG(621, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy646; - if (yych == 's') goto yy646; - goto yy44; + if (yych == 'C') goto yy622; + if (yych != 'c') goto yy151; yy622: YYDEBUG(622, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy648; - if (yych == 'n') goto yy648; - goto yy44; + if (yych == 'E') goto yy623; + if (yych != 'e') goto yy151; yy623: YYDEBUG(623, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy649; - if (yych == 'f') goto yy649; - goto yy44; -yy624: - YYDEBUG(624, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - YYDEBUG(625, *YYCURSOR); + YYDEBUG(624, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1533 "Zend/zend_language_scanner.l" +#line 1521 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_INSTEADOF); + RETURN_TOKEN(T_REQUIRE_ONCE); } -#line 6258 "Zend/zend_language_scanner.c" +#line 6341 "Zend/zend_language_scanner.c" +yy625: + YYDEBUG(625, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy626; + if (yych != 'r') goto yy151; yy626: YYDEBUG(626, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'N') goto yy627; + if (yych != 'n') goto yy151; +yy627: YYDEBUG(627, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(628, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1409 "Zend/zend_language_scanner.l" +#line 1279 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_INTERFACE); + RETURN_TOKEN(T_RETURN); } -#line 6271 "Zend/zend_language_scanner.c" -yy628: - YYDEBUG(628, *YYCURSOR); +#line 6364 "Zend/zend_language_scanner.c" +yy629: + YYDEBUG(629, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + if (yych <= 'T') { + if (yych <= 'L') { + if (yych <= 'K') goto yy151; + goto yy652; + } else { + if (yych <= 'R') goto yy151; + if (yych <= 'S') goto yy651; + goto yy650; + } + } else { + if (yych <= 'r') { + if (yych == 'l') goto yy652; + goto yy151; + } else { + if (yych <= 's') goto yy651; + if (yych <= 't') goto yy650; + goto yy151; + } } - YYDEBUG(629, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1525 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_NAMESPACE); -} -#line 6284 "Zend/zend_language_scanner.c" yy630: YYDEBUG(630, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + if (yych <= 'O') { + if (yych == 'A') goto yy642; + if (yych <= 'N') goto yy151; + goto yy643; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy151; + goto yy642; + } else { + if (yych == 'o') goto yy643; + goto yy151; + } } +yy631: 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" + yych = *++YYCURSOR; + if (yych == 'N') goto yy632; + if (yych != 'n') goto yy151; yy632: YYDEBUG(632, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy651; - if (yych == 'n') goto yy651; - goto yy44; + if (yych <= 'T') { + if (yych <= 'R') goto yy151; + if (yych >= 'T') goto yy634; + } else { + if (yych <= 'r') goto yy151; + if (yych <= 's') goto yy633; + if (yych <= 't') goto yy634; + goto yy151; + } yy633: YYDEBUG(633, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy652; - if (yych == 'm') goto yy652; - goto yy82; + if (yych == 'T') goto yy640; + if (yych == 't') goto yy640; + goto yy151; yy634: YYDEBUG(634, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'I') goto yy635; + if (yych != 'i') goto yy151; +yy635: YYDEBUG(635, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1895 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CLASS_C); -} -#line 6322 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'N') goto yy636; + if (yych != 'n') goto yy151; yy636: YYDEBUG(636, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy653; - if (yych == 'n') goto yy653; - goto yy44; + if (yych == 'U') goto yy637; + if (yych != 'u') goto yy151; yy637: YYDEBUG(637, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy654; - if (yych == 'm') goto yy654; - goto yy44; + if (yych == 'E') goto yy638; + if (yych != 'e') goto yy151; yy638: YYDEBUG(638, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy655; - goto yy44; -yy639: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(639, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy657; - if (yych == 'c') goto yy657; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1389 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_CONTINUE); +} +#line 6458 "Zend/zend_language_scanner.c" yy640: YYDEBUG(640, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } YYDEBUG(641, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1899 "Zend/zend_language_scanner.l" +#line 1275 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_TRAIT_C); + RETURN_TOKEN(T_CONST); } -#line 6358 "Zend/zend_language_scanner.c" +#line 6471 "Zend/zend_language_scanner.c" yy642: YYDEBUG(642, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'S') goto yy647; + if (yych == 's') goto yy647; + goto yy151; +yy643: 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" + yych = *++YYCURSOR; + if (yych == 'N') goto yy644; + if (yych != 'n') goto yy151; yy644: YYDEBUG(644, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'E') goto yy645; + if (yych != 'e') goto yy151; +yy645: YYDEBUG(645, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1349 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDFOREACH); -} -#line 6384 "Zend/zend_language_scanner.c" -yy646: - YYDEBUG(646, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - YYDEBUG(647, *YYCURSOR); + YYDEBUG(646, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1421 "Zend/zend_language_scanner.l" +#line 1469 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_IMPLEMENTS); + RETURN_TOKEN(T_CLONE); } -#line 6397 "Zend/zend_language_scanner.c" +#line 6500 "Zend/zend_language_scanner.c" +yy647: + YYDEBUG(647, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy648; + if (yych != 's') goto yy151; yy648: YYDEBUG(648, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy658; - if (yych == 'c') goto yy658; - goto yy44; -yy649: - YYDEBUG(649, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - YYDEBUG(650, *YYCURSOR); + YYDEBUG(649, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1361 "Zend/zend_language_scanner.l" +#line 1405 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_INSTANCEOF); + RETURN_TOKEN(T_CLASS); } -#line 6416 "Zend/zend_language_scanner.c" +#line 6518 "Zend/zend_language_scanner.c" +yy650: + YYDEBUG(650, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy661; + if (yych == 'c') goto yy661; + goto yy151; yy651: YYDEBUG(651, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy659; - if (yych == 'c') goto yy659; - goto yy44; + if (yych == 'E') goto yy659; + if (yych == 'e') goto yy659; + goto yy151; yy652: YYDEBUG(652, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '^') { - if (yych <= '9') { - if (yych <= '/') goto yy660; - goto yy82; - } else { - if (yych <= '@') goto yy660; - if (yych <= 'Z') goto yy82; - goto yy660; - } - } else { - if (yych <= '`') { - if (yych <= '_') goto yy82; - goto yy660; - } else { - if (yych <= 'z') goto yy82; - if (yych <= 0x7F) goto yy660; - goto yy82; - } - } + if (yych == 'L') goto yy653; + if (yych != 'l') goto yy151; yy653: YYDEBUG(653, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy662; - goto yy44; + if (yych == 'A') goto yy654; + if (yych != 'a') goto yy151; yy654: YYDEBUG(654, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy663; - if (yych == 'p') goto yy663; - goto yy44; + if (yych == 'B') goto yy655; + if (yych != 'b') goto yy151; yy655: YYDEBUG(655, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'L') goto yy656; + if (yych != 'l') goto yy151; +yy656: YYDEBUG(656, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1907 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_METHOD_C); -} -#line 6468 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'E') goto yy657; + if (yych != 'e') goto yy151; yy657: YYDEBUG(657, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy664; - if (yych == 'e') goto yy664; - goto yy44; -yy658: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(658, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy665; - if (yych == 'e') goto yy665; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1597 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_CALLABLE); +} +#line 6568 "Zend/zend_language_scanner.c" yy659: YYDEBUG(659, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy667; - if (yych == 'e') goto yy667; - goto yy44; -yy660: - YYDEBUG(660, *YYCURSOR); ++YYCURSOR; - YYDEBUG(661, *YYCURSOR); + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(660, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1283 "Zend/zend_language_scanner.l" +#line 1377 "Zend/zend_language_scanner.l" { - yyless(yyleng - 1); - HANDLE_NEWLINES(yytext, yyleng); - RETURN_TOKEN(T_YIELD_FROM); + RETURN_TOKEN(T_CASE); } -#line 6498 "Zend/zend_language_scanner.c" +#line 6581 "Zend/zend_language_scanner.c" +yy661: + YYDEBUG(661, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy662; + if (yych != 'h') goto yy151; yy662: YYDEBUG(662, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy669; - goto yy44; -yy663: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(663, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy671; - if (yych == 'i') goto yy671; - goto yy44; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1297 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_CATCH); +} +#line 6599 "Zend/zend_language_scanner.c" yy664: YYDEBUG(664, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy672; - goto yy44; + if (yych == 'N') goto yy687; + if (yych == 'n') goto yy687; + goto yy151; yy665: YYDEBUG(665, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'R') goto yy680; + if (yych == 'r') goto yy680; + goto yy151; +yy666: YYDEBUG(666, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1513 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INCLUDE_ONCE); -} -#line 6527 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'I') goto yy675; + if (yych == 'i') goto yy675; + goto yy151; yy667: YYDEBUG(667, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'N') goto yy668; + if (yych != 'n') goto yy151; +yy668: YYDEBUG(668, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1521 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_REQUIRE_ONCE); -} -#line 6540 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'C') goto yy669; + if (yych != 'c') goto yy151; yy669: YYDEBUG(669, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'T') goto yy670; + if (yych != 't') goto yy151; +yy670: YYDEBUG(670, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1903 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FUNC_C); -} -#line 6553 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'I') goto yy671; + if (yych != 'i') goto yy151; yy671: YYDEBUG(671, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy673; - if (yych == 'l') goto yy673; - goto yy44; + if (yych == 'O') goto yy672; + if (yych != 'o') goto yy151; yy672: YYDEBUG(672, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '_') goto yy674; - goto yy44; + if (yych == 'N') goto yy673; + if (yych != 'n') goto yy151; yy673: YYDEBUG(673, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy676; - if (yych == 'e') goto yy676; - goto yy44; -yy674: - YYDEBUG(674, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - YYDEBUG(675, *YYCURSOR); + YYDEBUG(674, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1923 "Zend/zend_language_scanner.l" +#line 1271 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_NS_C); + RETURN_TOKEN(T_FUNCTION); } -#line 6583 "Zend/zend_language_scanner.c" +#line 6660 "Zend/zend_language_scanner.c" +yy675: + YYDEBUG(675, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy676; + if (yych != 'e') goto yy151; yy676: YYDEBUG(676, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy677; - if (yych != 'r') goto yy44; + if (yych == 'N') goto yy677; + if (yych != 'n') goto yy151; yy677: YYDEBUG(677, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } + if (yych == 'D') goto yy678; + if (yych != 'd') goto yy151; +yy678: YYDEBUG(678, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(679, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1549 "Zend/zend_language_scanner.l" +#line 1533 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_HALT_COMPILER); + RETURN_TOKEN(T_FRIEND); } -#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; +#line 6688 "Zend/zend_language_scanner.c" +yy680: + YYDEBUG(680, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '^') { + if (yych <= '@') { + if (yych <= '/') goto yy681; + if (yych <= '9') goto yy150; } else { - if (yych <= '@') goto yy681; - if (yych <= 'Z') goto yy687; + if (yych == 'E') goto yy682; + if (yych <= 'Z') goto yy150; } } else { - if (yych <= '`') { - if (yych <= '_') goto yy687; + if (yych <= 'd') { + if (yych != '`') goto yy150; } else { - if (yych <= 'z') goto yy687; - if (yych >= 0x80) goto yy687; + if (yych <= 'e') goto yy682; + if (yych <= 'z') goto yy150; + if (yych >= 0x80) goto yy150; } } yy681: YYDEBUG(681, *YYCURSOR); - ++YYCURSOR; -yy682: - YYDEBUG(682, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1443 "Zend/zend_language_scanner.l" +#line 1337 "Zend/zend_language_scanner.l" { - yyless(0); - yy_pop_state(); - goto restart; + RETURN_TOKEN(T_FOR); } -#line 6673 "Zend/zend_language_scanner.c" +#line 6716 "Zend/zend_language_scanner.c" +yy682: + YYDEBUG(682, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy683; + if (yych != 'a') goto yy151; yy683: YYDEBUG(683, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'C') goto yy684; + if (yych != 'c') goto yy151; +yy684: YYDEBUG(684, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy683; - } - YYDEBUG(685, *YYCURSOR); - 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 == '>') goto yy690; - goto yy682; -yy687: - YYDEBUG(687, *YYCURSOR); + if (yych == 'H') goto yy685; + if (yych != 'h') goto yy151; +yy685: + YYDEBUG(685, *YYCURSOR); ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(688, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy687; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - YYDEBUG(689, *YYCURSOR); - 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); - ++YYCURSOR; - YYDEBUG(691, *YYCURSOR); + YYDEBUG(686, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1434 "Zend/zend_language_scanner.l" +#line 1345 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_OBJECT_OPERATOR); + RETURN_TOKEN(T_FOREACH); } -#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; +#line 6744 "Zend/zend_language_scanner.c" +yy687: + YYDEBUG(687, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy688; + if (yych != 'a') goto yy151; +yy688: + YYDEBUG(688, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy689; + if (yych != 'l') goto yy151; +yy689: + YYDEBUG(689, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '^') { + if (yych <= '@') { + if (yych <= '/') goto yy690; + if (yych <= '9') goto yy150; + } else { + if (yych == 'L') goto yy691; + if (yych <= 'Z') goto yy150; + } } else { - if (yych <= '`') goto yy697; - if (yych == '{') goto yy699; + if (yych <= 'k') { + if (yych != '`') goto yy150; + } else { + if (yych <= 'l') goto yy691; + if (yych <= 'z') goto yy150; + if (yych >= 0x80) goto yy150; + } } - YYDEBUG(694, *YYCURSOR); - ++YYCURSOR; -yy695: - YYDEBUG(695, *YYCURSOR); +yy690: + YYDEBUG(690, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2493 "Zend/zend_language_scanner.l" +#line 1565 "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; + RETURN_TOKEN(T_FINAL); +} +#line 6782 "Zend/zend_language_scanner.c" +yy691: + YYDEBUG(691, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy692; + if (yych != 'y') goto yy151; +yy692: + YYDEBUG(692, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - - 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); - } + YYDEBUG(693, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1301 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_FINALLY); } -#line 6819 "Zend/zend_language_scanner.c" -yy696: - YYDEBUG(696, *YYCURSOR); +#line 6800 "Zend/zend_language_scanner.c" +yy694: + YYDEBUG(694, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy695; - if (yych <= 'Z') goto yy700; - if (yych <= '^') goto yy695; - goto yy700; + if (yych <= 'F') { + if (yych == 'C') goto yy700; + if (yych <= 'E') goto yy151; + goto yy701; } else { - if (yych <= 'z') { - if (yych <= '`') goto yy695; + if (yych <= 'c') { + if (yych <= 'b') goto yy151; goto yy700; } else { - if (yych <= '{') goto yy703; - if (yych <= 0x7F) goto yy695; - goto yy700; + if (yych == 'f') goto yy701; + goto yy151; } } -yy697: - YYDEBUG(697, *YYCURSOR); +yy695: + YYDEBUG(695, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy698; + if (yych == 'e') goto yy698; + goto yy151; +yy696: + YYDEBUG(696, *YYCURSOR); ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(697, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1333 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DO); +} +#line 6835 "Zend/zend_language_scanner.c" +yy698: YYDEBUG(698, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(699, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2433 "Zend/zend_language_scanner.l" +#line 1267 "Zend/zend_language_scanner.l" { - BEGIN(ST_IN_SCRIPTING); - RETURN_TOKEN('`'); + RETURN_TOKEN(T_EXIT); } #line 6848 "Zend/zend_language_scanner.c" -yy699: - YYDEBUG(699, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '$') goto yy705; - goto yy695; yy700: YYDEBUG(700, *YYCURSOR); - YYMARKER = ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'L') goto yy707; + if (yych == 'l') goto yy707; + goto yy151; +yy701: YYDEBUG(701, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy700; - } - if (yych == '-') goto yy707; - if (yych <= '@') goto yy702; - if (yych <= '[') goto yy709; + yych = *++YYCURSOR; + if (yych == 'A') goto yy702; + if (yych != 'a') goto yy151; yy702: YYDEBUG(702, *YYCURSOR); - 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" + yych = *++YYCURSOR; + if (yych == 'U') goto yy703; + if (yych != 'u') goto yy151; yy703: YYDEBUG(703, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'L') goto yy704; + if (yych != 'l') goto yy151; +yy704: YYDEBUG(704, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1724 "Zend/zend_language_scanner.l" - { - yy_push_state(ST_LOOKING_FOR_VARNAME); - RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); -} -#line 6884 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'T') goto yy705; + if (yych != 't') goto yy151; yy705: YYDEBUG(705, *YYCURSOR); ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(706, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2421 "Zend/zend_language_scanner.l" +#line 1381 "Zend/zend_language_scanner.l" { - yy_push_state(ST_IN_SCRIPTING); - yyless(1); - RETURN_TOKEN(T_CURLY_OPEN); + RETURN_TOKEN(T_DEFAULT); } -#line 6896 "Zend/zend_language_scanner.c" +#line 6887 "Zend/zend_language_scanner.c" yy707: YYDEBUG(707, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '>') goto yy711; -yy708: - YYDEBUG(708, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy702; -yy709: - YYDEBUG(709, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(710, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2018 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 1); - yy_push_state(ST_VAR_OFFSET); - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#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; - YYDEBUG(713, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2010 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 3); - yy_push_state(ST_LOOKING_FOR_PROPERTY); - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#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); - YYFILL(2); - yych = *YYCURSOR; - if (yych <= '#') { - if (yych == '"') goto yy718; - } else { - if (yych <= '$') goto yy720; - if (yych == '{') goto yy721; - } - YYDEBUG(716, *YYCURSOR); - ++YYCURSOR; -yy717: - YYDEBUG(717, *YYCURSOR); - 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); + yych = *++YYCURSOR; + if (yych == 'A') goto yy708; + if (yych != 'a') goto yy151; +yy708: + YYDEBUG(708, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy709; + if (yych != 'r') goto yy151; +yy709: + YYDEBUG(709, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy710; + if (yych != 'e') goto yy151; +yy710: + YYDEBUG(710, *YYCURSOR); ++YYCURSOR; - YYDEBUG(719, *YYCURSOR); + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(711, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2428 "Zend/zend_language_scanner.l" +#line 1353 "Zend/zend_language_scanner.l" { - BEGIN(ST_IN_SCRIPTING); - RETURN_TOKEN('"'); + RETURN_TOKEN(T_DECLARE); } -#line 7057 "Zend/zend_language_scanner.c" -yy720: - YYDEBUG(720, *YYCURSOR); +#line 6915 "Zend/zend_language_scanner.c" +yy712: + YYDEBUG(712, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy717; - if (yych <= 'Z') goto yy722; - if (yych <= '^') goto yy717; - goto yy722; + if (yych == 'H') goto yy774; + if (yych == 'h') goto yy774; + goto yy151; +yy713: + YYDEBUG(713, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy768; + if (yych == 's') goto yy768; + goto yy151; +yy714: + YYDEBUG(714, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy764; + if (yych == 'p') goto yy764; + goto yy151; +yy715: + YYDEBUG(715, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy730; + if (yych == 'd') goto yy730; + goto yy151; +yy716: + YYDEBUG(716, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy727; + if (yych == 'a') goto yy727; + goto yy151; +yy717: + YYDEBUG(717, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych == 'I') goto yy718; + if (yych <= 'S') goto yy151; + goto yy719; } else { - if (yych <= 'z') { - if (yych <= '`') goto yy717; - goto yy722; + if (yych <= 'i') { + if (yych <= 'h') goto yy151; } else { - if (yych <= '{') goto yy725; - if (yych <= 0x7F) goto yy717; - goto yy722; + if (yych == 't') goto yy719; + goto yy151; } } +yy718: + YYDEBUG(718, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy725; + if (yych == 't') goto yy725; + goto yy151; +yy719: + YYDEBUG(719, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy720; + if (yych != 'e') goto yy151; +yy720: + YYDEBUG(720, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy721; + if (yych != 'n') goto yy151; yy721: YYDEBUG(721, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '$') goto yy727; - goto yy717; + if (yych == 'D') goto yy722; + if (yych != 'd') goto yy151; yy722: YYDEBUG(722, *YYCURSOR); - YYMARKER = ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'S') goto yy723; + if (yych != 's') goto yy151; +yy723: YYDEBUG(723, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy722; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - if (yych == '-') goto yy729; - if (yych <= '@') goto yy724; - if (yych <= '[') goto yy731; -yy724: YYDEBUG(724, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2024 "Zend/zend_language_scanner.l" +#line 1417 "Zend/zend_language_scanner.l" { - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); + RETURN_TOKEN(T_EXTENDS); } -#line 7100 "Zend/zend_language_scanner.c" +#line 6999 "Zend/zend_language_scanner.c" yy725: YYDEBUG(725, *YYCURSOR); ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(726, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1724 "Zend/zend_language_scanner.l" +#line 1263 "Zend/zend_language_scanner.l" { - yy_push_state(ST_LOOKING_FOR_VARNAME); - RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); + RETURN_TOKEN(T_EXIT); } -#line 7111 "Zend/zend_language_scanner.c" +#line 7012 "Zend/zend_language_scanner.c" yy727: YYDEBUG(727, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(728, *YYCURSOR); - 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 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); + if (yych == 'L') goto yy728; + if (yych != 'l') goto yy151; +yy728: + YYDEBUG(728, *YYCURSOR); ++YYCURSOR; - YYDEBUG(732, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2018 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 1); - yy_push_state(ST_VAR_OFFSET); - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#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; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } -yy734: - YYDEBUG(734, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(735, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2010 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 3); - yy_push_state(ST_LOOKING_FOR_PROPERTY); - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#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; -yy739: - YYDEBUG(739, *YYCURSOR); + YYDEBUG(729, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2539 "Zend/zend_language_scanner.l" +#line 1505 "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); - } - - 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); - } - - zend_string_efree(copy); - } else { - HANDLE_NEWLINES(yytext, yyleng - newline); - } - - RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); + RETURN_TOKEN(T_EVAL); } -#line 7336 "Zend/zend_language_scanner.c" -yy740: - YYDEBUG(740, *YYCURSOR); +#line 7030 "Zend/zend_language_scanner.c" +yy730: + YYDEBUG(730, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy739; - if (yych <= 'Z') goto yy742; - if (yych <= '^') goto yy739; - goto yy742; - } else { - if (yych <= 'z') { - if (yych <= '`') goto yy739; - goto yy742; - } else { - if (yych <= '{') goto yy745; - if (yych <= 0x7F) goto yy739; - goto yy742; - } + YYDEBUG(-1, yych); + switch (yych) { + case 'D': + case 'd': goto yy731; + case 'F': + case 'f': goto yy732; + case 'I': + case 'i': goto yy733; + case 'S': + case 's': goto yy734; + case 'W': + case 'w': goto yy735; + default: goto yy151; + } +yy731: + YYDEBUG(731, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy757; + if (yych == 'e') goto yy757; + goto yy151; +yy732: + YYDEBUG(732, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy749; + if (yych == 'o') goto yy749; + goto yy151; +yy733: + YYDEBUG(733, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy747; + if (yych == 'f') goto yy747; + goto yy151; +yy734: + YYDEBUG(734, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'W') goto yy741; + if (yych == 'w') goto yy741; + goto yy151; +yy735: + YYDEBUG(735, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy736; + if (yych != 'h') goto yy151; +yy736: + YYDEBUG(736, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy737; + if (yych != 'i') goto yy151; +yy737: + YYDEBUG(737, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy738; + if (yych != 'l') goto yy151; +yy738: + YYDEBUG(738, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy739; + if (yych != 'e') goto yy151; +yy739: + YYDEBUG(739, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } + YYDEBUG(740, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1329 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ENDWHILE); +} +#line 7104 "Zend/zend_language_scanner.c" yy741: YYDEBUG(741, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '$') goto yy747; - goto yy739; + if (yych == 'I') goto yy742; + if (yych != 'i') goto yy151; yy742: YYDEBUG(742, *YYCURSOR); - YYMARKER = ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'T') goto yy743; + if (yych != 't') goto yy151; +yy743: YYDEBUG(743, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy742; - } - if (yych == '-') goto yy749; - if (yych <= '@') goto yy744; - if (yych <= '[') goto yy751; + yych = *++YYCURSOR; + if (yych == 'C') goto yy744; + if (yych != 'c') goto yy151; 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" + yych = *++YYCURSOR; + if (yych == 'H') goto yy745; + if (yych != 'h') goto yy151; yy745: YYDEBUG(745, *YYCURSOR); ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(746, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1724 "Zend/zend_language_scanner.l" +#line 1373 "Zend/zend_language_scanner.l" { - yy_push_state(ST_LOOKING_FOR_VARNAME); - RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); + RETURN_TOKEN(T_ENDSWITCH); } -#line 7390 "Zend/zend_language_scanner.c" +#line 7137 "Zend/zend_language_scanner.c" yy747: YYDEBUG(747, *YYCURSOR); ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(748, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2421 "Zend/zend_language_scanner.l" +#line 1317 "Zend/zend_language_scanner.l" { - yy_push_state(ST_IN_SCRIPTING); - yyless(1); - RETURN_TOKEN(T_CURLY_OPEN); + RETURN_TOKEN(T_ENDIF); } -#line 7402 "Zend/zend_language_scanner.c" +#line 7150 "Zend/zend_language_scanner.c" yy749: YYDEBUG(749, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '>') goto yy753; + if (yych == 'R') goto yy750; + if (yych != 'r') goto yy151; yy750: YYDEBUG(750, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy744; + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '^') { + if (yych <= '@') { + if (yych <= '/') goto yy751; + if (yych <= '9') goto yy150; + } else { + if (yych == 'E') goto yy752; + if (yych <= 'Z') goto yy150; + } + } else { + if (yych <= 'd') { + if (yych != '`') goto yy150; + } else { + if (yych <= 'e') goto yy752; + if (yych <= 'z') goto yy150; + if (yych >= 0x80) goto yy150; + } + } yy751: YYDEBUG(751, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(752, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2018 "Zend/zend_language_scanner.l" +#line 1341 "Zend/zend_language_scanner.l" { - yyless(yyleng - 1); - yy_push_state(ST_VAR_OFFSET); - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); + RETURN_TOKEN(T_ENDFOR); } -#line 7422 "Zend/zend_language_scanner.c" +#line 7183 "Zend/zend_language_scanner.c" +yy752: + YYDEBUG(752, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy753; + if (yych != 'a') goto yy151; 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; - } + if (yych == 'C') goto yy754; + if (yych != 'c') goto yy151; yy754: YYDEBUG(754, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'H') goto yy755; + if (yych != 'h') goto yy151; +yy755: YYDEBUG(755, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(756, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2010 "Zend/zend_language_scanner.l" +#line 1349 "Zend/zend_language_scanner.l" { - yyless(yyleng - 3); - yy_push_state(ST_LOOKING_FOR_PROPERTY); - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); + RETURN_TOKEN(T_ENDFOREACH); } -#line 7446 "Zend/zend_language_scanner.c" - } -/* *********************************** */ -yyc_ST_LOOKING_FOR_VARNAME: - { - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - }; - YYDEBUG(756, *YYCURSOR); - YYFILL(2); - yych = *YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy758; - if (yych <= 'Z') goto yy760; - if (yych >= '_') goto yy760; - } else { - if (yych <= '`') goto yy758; - if (yych <= 'z') goto yy760; - if (yych >= 0x80) goto yy760; - } +#line 7211 "Zend/zend_language_scanner.c" +yy757: + YYDEBUG(757, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy758; + if (yych != 'c') goto yy151; yy758: YYDEBUG(758, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'L') goto yy759; + if (yych != 'l') goto yy151; yy759: YYDEBUG(759, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1747 "Zend/zend_language_scanner.l" - { - yyless(0); - yy_pop_state(); - yy_push_state(ST_IN_SCRIPTING); - goto restart; -} -#line 7510 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'A') goto yy760; + if (yych != 'a') goto yy151; yy760: YYDEBUG(760, *YYCURSOR); - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '_') { - if (yych <= '@') { - if (yych <= '/') goto yy759; - if (yych <= '9') goto yy762; - goto yy759; - } else { - if (yych <= '[') goto yy762; - if (yych <= '^') goto yy759; - goto yy762; - } - } else { - if (yych <= '|') { - if (yych <= '`') goto yy759; - if (yych <= 'z') goto yy762; - goto yy759; - } else { - if (yych <= '}') goto yy762; - if (yych <= 0x7F) goto yy759; - goto yy762; - } - } + yych = *++YYCURSOR; + if (yych == 'R') goto yy761; + if (yych != 'r') goto yy151; yy761: YYDEBUG(761, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'E') goto yy762; + if (yych != 'e') goto yy151; yy762: YYDEBUG(762, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy761; + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } - if (yych <= '@') goto yy763; - if (yych <= '[') goto yy764; - if (yych == '}') goto yy764; -yy763: YYDEBUG(763, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy759; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1357 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ENDDECLARE); +} +#line 7249 "Zend/zend_language_scanner.c" yy764: YYDEBUG(764, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'T') goto yy765; + if (yych != 't') goto yy151; +yy765: YYDEBUG(765, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy766; + if (yych != 'y') goto yy151; +yy766: + YYDEBUG(766, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } + YYDEBUG(767, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1739 "Zend/zend_language_scanner.l" +#line 1549 "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); + RETURN_TOKEN(T_EMPTY); } -#line 7564 "Zend/zend_language_scanner.c" - } -/* *********************************** */ -yyc_ST_VAR_OFFSET: - { - 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, - 240, 240, 176, 176, 176, 176, 176, 176, - 176, 176, 0, 0, 0, 0, 0, 0, - 0, 160, 160, 160, 160, 160, 160, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 0, 0, 0, 0, 32, - 0, 160, 160, 160, 160, 160, 160, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 0, 0, 0, 0, 0, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - }; - YYDEBUG(766, *YYCURSOR); - YYFILL(3); - yych = *YYCURSOR; - if (yych <= '0') { - if (yych <= ' ') { - if (yych <= '\f') { - if (yych <= 0x08) goto yy768; - if (yych <= '\n') goto yy770; - } else { - if (yych <= '\r') goto yy770; - if (yych >= ' ') goto yy770; - } +#line 7272 "Zend/zend_language_scanner.c" +yy768: + YYDEBUG(768, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy769; + if (yych != 'e') goto yy151; +yy769: + YYDEBUG(769, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '^') { + if (yych <= '@') { + if (yych <= '/') goto yy770; + if (yych <= '9') goto yy150; } else { - if (yych <= '$') { - if (yych <= '"') goto yy772; - if (yych <= '#') goto yy770; - goto yy774; - } else { - if (yych == '\'') goto yy770; - if (yych <= '/') goto yy772; - goto yy775; - } + if (yych == 'I') goto yy771; + if (yych <= 'Z') goto yy150; } } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych <= '9') goto yy777; - if (yych <= '@') goto yy772; - goto yy779; - } else { - if (yych <= '[') goto yy772; - if (yych <= '\\') goto yy770; - goto yy782; - } + if (yych <= 'h') { + if (yych != '`') goto yy150; } else { - if (yych <= '`') { - if (yych == '_') goto yy779; - goto yy772; - } else { - if (yych <= 'z') goto yy779; - if (yych <= '~') goto yy772; - if (yych >= 0x80) goto yy779; - } + if (yych <= 'i') goto yy771; + if (yych <= 'z') goto yy150; + if (yych >= 0x80) goto yy150; } } -yy768: - YYDEBUG(768, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(769, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#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 7662 "Zend/zend_language_scanner.c" yy770: YYDEBUG(770, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(771, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2038 "Zend/zend_language_scanner.l" +#line 1321 "Zend/zend_language_scanner.l" { - /* Invalid rule to return a more explicit parse error with proper line number */ - yyless(0); - yy_pop_state(); - ZVAL_NULL(zendlval); - RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); + RETURN_TOKEN(T_ELSE); } -#line 7676 "Zend/zend_language_scanner.c" +#line 7305 "Zend/zend_language_scanner.c" +yy771: + YYDEBUG(771, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy772; + if (yych != 'f') goto yy151; yy772: YYDEBUG(772, *YYCURSOR); ++YYCURSOR; -yy773: + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; + } YYDEBUG(773, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#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 1313 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ELSEIF); } -#line 7688 "Zend/zend_language_scanner.c" +#line 7323 "Zend/zend_language_scanner.c" yy774: YYDEBUG(774, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy773; - if (yych <= 'Z') goto yy784; - if (yych <= '^') goto yy773; - goto yy784; - } else { - if (yych <= '`') goto yy773; - if (yych <= 'z') goto yy784; - if (yych <= 0x7F) goto yy773; - goto yy784; - } + if (yych == 'O') goto yy775; + if (yych != 'o') goto yy151; yy775: YYDEBUG(775, *YYCURSOR); - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= '9') { - if (yych >= '0') goto yy787; - } else { - if (yych == 'B') goto yy790; - } - } else { - if (yych <= 'b') { - if (yych <= 'X') goto yy792; - if (yych >= 'b') goto yy790; - } else { - if (yych == 'x') goto yy792; - } + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 4) { + goto yy150; } -yy776: YYDEBUG(776, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#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; - errno = 0; - ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 10)); - if (errno == ERANGE) { - goto string; - } - ZEND_ASSERT(end == yytext + yyleng); - } else { -string: - ZVAL_STRINGL(zendlval, yytext, yyleng); - } - RETURN_TOKEN_WITH_VAL(T_NUM_STRING); +#line 1397 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ECHO); } -#line 7739 "Zend/zend_language_scanner.c" -yy777: +#line 7341 "Zend/zend_language_scanner.c" + } +/* *********************************** */ +yyc_ST_LOOKING_FOR_PROPERTY: + { + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 128, 0, 0, 128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 0, 0, 0, 0, 0, 0, + 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 0, 0, 0, 0, 64, + 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 0, 0, 0, 0, 0, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + }; YYDEBUG(777, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); + YYFILL(2); yych = *YYCURSOR; - YYDEBUG(778, *YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy777; + if (yych <= '-') { + if (yych <= '\r') { + if (yych <= 0x08) goto yy785; + if (yych <= '\n') goto yy779; + if (yych <= '\f') goto yy785; + } else { + if (yych == ' ') goto yy779; + if (yych <= ',') goto yy785; + goto yy781; + } + } else { + if (yych <= '_') { + if (yych <= '@') goto yy785; + if (yych <= 'Z') goto yy783; + if (yych <= '^') goto yy785; + goto yy783; + } else { + if (yych <= '`') goto yy785; + if (yych <= 'z') goto yy783; + if (yych <= 0x7F) goto yy785; + goto yy783; + } } - goto yy776; yy779: YYDEBUG(779, *YYCURSOR); ++YYCURSOR; - YYFILL(1); yych = *YYCURSOR; + goto yy791; +yy780: YYDEBUG(780, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy779; - } - YYDEBUG(781, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2046 "Zend/zend_language_scanner.l" +#line 1430 "Zend/zend_language_scanner.l" { - RETURN_TOKEN_WITH_STR(T_STRING, 0); + goto return_whitespace; } -#line 7765 "Zend/zend_language_scanner.c" +#line 7418 "Zend/zend_language_scanner.c" +yy781: + YYDEBUG(781, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) == '>') goto yy788; yy782: YYDEBUG(782, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(783, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2028 "Zend/zend_language_scanner.l" +#line 1443 "Zend/zend_language_scanner.l" { + yyless(0); yy_pop_state(); - RETURN_TOKEN(']'); + goto restart; } -#line 7776 "Zend/zend_language_scanner.c" -yy784: - YYDEBUG(784, *YYCURSOR); +#line 7432 "Zend/zend_language_scanner.c" +yy783: + YYDEBUG(783, *YYCURSOR); ++YYCURSOR; - YYFILL(1); yych = *YYCURSOR; - YYDEBUG(785, *YYCURSOR); - if (yych <= '^') { - if (yych <= '9') { - if (yych >= '0') goto yy784; - } else { - if (yych <= '@') goto yy786; - if (yych <= 'Z') goto yy784; - } - } else { - if (yych <= '`') { - if (yych <= '_') goto yy784; - } else { - if (yych <= 'z') goto yy784; - if (yych >= 0x80) goto yy784; - } - } -yy786: - YYDEBUG(786, *YYCURSOR); + goto yy787; +yy784: + YYDEBUG(784, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2024 "Zend/zend_language_scanner.l" +#line 1438 "Zend/zend_language_scanner.l" { - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); + yy_pop_state(); + RETURN_TOKEN_WITH_STR(T_STRING, 0); } -#line 7805 "Zend/zend_language_scanner.c" -yy787: - YYDEBUG(787, *YYCURSOR); +#line 7446 "Zend/zend_language_scanner.c" +yy785: + YYDEBUG(785, *YYCURSOR); + yych = *++YYCURSOR; + goto yy782; +yy786: + YYDEBUG(786, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; +yy787: + YYDEBUG(787, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy786; + } + goto yy784; +yy788: YYDEBUG(788, *YYCURSOR); - if (yych <= '/') goto yy789; - if (yych <= '9') goto yy787; -yy789: + ++YYCURSOR; YYDEBUG(789, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#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))); - } else { - ZVAL_STRINGL(zendlval, yytext, yyleng); - } - RETURN_TOKEN_WITH_VAL(T_NUM_STRING); +#line 1434 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_OBJECT_OPERATOR); } -#line 7826 "Zend/zend_language_scanner.c" +#line 7471 "Zend/zend_language_scanner.c" yy790: YYDEBUG(790, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 64) { - goto yy793; - } -yy791: - YYDEBUG(791, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy776; -yy792: - YYDEBUG(792, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 128) { - goto yy795; - } - goto yy791; -yy793: - YYDEBUG(793, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(794, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy793; - } - goto yy789; -yy795: - YYDEBUG(795, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(796, *YYCURSOR); +yy791: + YYDEBUG(791, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy795; + goto yy790; } - goto yy789; + goto yy780; } /* *********************************** */ -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" +yyc_ST_LOOKING_FOR_VARNAME: { - 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; + 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(792, *YYCURSOR); + YYFILL(2); + yych = *YYCURSOR; + if (yych <= '_') { + if (yych <= '@') goto yy796; + if (yych <= 'Z') goto yy794; + if (yych <= '^') goto yy796; + } else { + if (yych <= '`') goto yy796; + if (yych <= 'z') goto yy794; + if (yych <= 0x7F) goto yy796; } - - if (*YYCURSOR == '?') { - if (CG(short_tags) || !strncasecmp((char*)YYCURSOR + 1, "php", 3) || (*(YYCURSOR + 1) == '=')) { /* Assume [ \t\n\r] follows "php" */ - - YYCURSOR--; - break; +yy794: + YYDEBUG(794, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '_') { + if (yych <= '@') { + if (yych <= '/') goto yy795; + if (yych <= '9') goto yy798; + } else { + if (yych <= '[') goto yy798; + if (yych >= '_') goto yy798; + } + } else { + if (yych <= '|') { + if (yych <= '`') goto yy795; + if (yych <= 'z') goto yy798; + } else { + if (yych <= '}') goto yy798; + if (yych >= 0x80) goto yy798; } } - } - - 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; - } +yy795: + YYDEBUG(795, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1751 "Zend/zend_language_scanner.l" + { + yyless(0); + yy_pop_state(); + yy_push_state(ST_IN_SCRIPTING); + goto restart; } -#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 7564 "Zend/zend_language_scanner.c" +yy796: + YYDEBUG(796, *YYCURSOR); + yych = *++YYCURSOR; + goto yy795; +yy797: + YYDEBUG(797, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy798: + YYDEBUG(798, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy797; + } + if (yych <= '@') goto yy799; + if (yych <= '[') goto yy800; + if (yych == '}') goto yy800; +yy799: + YYDEBUG(799, *YYCURSOR); + YYCURSOR = YYMARKER; + goto yy795; +yy800: + YYDEBUG(800, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(801, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1743 "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 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); +#line 7598 "Zend/zend_language_scanner.c" } - 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); + YYDEBUG(802, *YYCURSOR); YYFILL(1); yych = *YYCURSOR; - YYDEBUG(819, *YYCURSOR); + YYDEBUG(804, *YYCURSOR); ++YYCURSOR; - YYDEBUG(820, *YYCURSOR); + YYDEBUG(805, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2660 "Zend/zend_language_scanner.l" +#line 2664 "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; @@ -8126,9 +7692,322 @@ int start_line = CG(zend_lineno); HANDLE_NEWLINES(yytext, yyleng - newline); RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); } -#line 8130 "Zend/zend_language_scanner.c" +#line 7696 "Zend/zend_language_scanner.c" +/* *********************************** */ +yyc_ST_VAR_OFFSET: + { + 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, + 240, 240, 112, 112, 112, 112, 112, 112, + 112, 112, 0, 0, 0, 0, 0, 0, + 0, 80, 80, 80, 80, 80, 80, 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, 80, 80, 80, 80, 80, 80, 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(806, *YYCURSOR); + YYFILL(3); + yych = *YYCURSOR; + if (yych <= '0') { + if (yych <= ' ') { + if (yych <= '\f') { + if (yych <= 0x08) goto yy820; + if (yych <= '\n') goto yy816; + goto yy820; + } else { + if (yych <= '\r') goto yy816; + if (yych <= 0x1F) goto yy820; + goto yy816; + } + } else { + if (yych <= '$') { + if (yych <= '"') goto yy815; + if (yych <= '#') goto yy816; + goto yy811; + } else { + if (yych == '\'') goto yy816; + if (yych <= '/') goto yy815; + } + } + } else { + if (yych <= ']') { + if (yych <= 'Z') { + if (yych <= '9') goto yy810; + if (yych <= '@') goto yy815; + goto yy818; + } else { + if (yych <= '[') goto yy815; + if (yych <= '\\') goto yy816; + goto yy813; + } + } else { + if (yych <= '`') { + if (yych == '_') goto yy818; + goto yy815; + } else { + if (yych <= 'z') goto yy818; + if (yych <= '~') goto yy815; + if (yych <= 0x7F) goto yy820; + goto yy818; + } + } + } + YYDEBUG(808, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'W') { + if (yych <= '9') { + if (yych >= '0') goto yy832; + } else { + if (yych == 'B') goto yy829; + } + } else { + if (yych <= 'b') { + if (yych <= 'X') goto yy831; + if (yych >= 'b') goto yy829; + } else { + if (yych == 'x') goto yy831; + } + } +yy809: + YYDEBUG(809, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1865 "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; + errno = 0; + ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 10)); + if (errno == ERANGE) { + goto string; + } + ZEND_ASSERT(end == yytext + yyleng); + } else { +string: + ZVAL_STRINGL(zendlval, yytext, yyleng); + } + RETURN_TOKEN_WITH_VAL(T_NUM_STRING); +} +#line 7817 "Zend/zend_language_scanner.c" +yy810: + YYDEBUG(810, *YYCURSOR); + yych = *++YYCURSOR; + goto yy828; +yy811: + YYDEBUG(811, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '_') { + if (yych <= '@') goto yy812; + if (yych <= 'Z') goto yy824; + if (yych >= '_') goto yy824; + } else { + if (yych <= '`') goto yy812; + if (yych <= 'z') goto yy824; + if (yych >= 0x80) goto yy824; + } +yy812: + YYDEBUG(812, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2037 "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 7842 "Zend/zend_language_scanner.c" +yy813: + YYDEBUG(813, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(814, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2032 "Zend/zend_language_scanner.l" + { + yy_pop_state(); + RETURN_TOKEN(']'); +} +#line 7853 "Zend/zend_language_scanner.c" +yy815: + YYDEBUG(815, *YYCURSOR); + yych = *++YYCURSOR; + goto yy812; +yy816: + YYDEBUG(816, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(817, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2042 "Zend/zend_language_scanner.l" + { + /* Invalid rule to return a more explicit parse error with proper line number */ + yyless(0); + yy_pop_state(); + ZVAL_NULL(zendlval); + RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); +} +#line 7871 "Zend/zend_language_scanner.c" +yy818: + YYDEBUG(818, *YYCURSOR); + ++YYCURSOR; + yych = *YYCURSOR; + goto yy823; +yy819: + YYDEBUG(819, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2050 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN_WITH_STR(T_STRING, 0); +} +#line 7884 "Zend/zend_language_scanner.c" +yy820: + YYDEBUG(820, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(821, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2752 "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 7899 "Zend/zend_language_scanner.c" +yy822: + YYDEBUG(822, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy823: + YYDEBUG(823, *YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy822; + } + goto yy819; +yy824: + YYDEBUG(824, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(825, *YYCURSOR); + if (yych <= '^') { + if (yych <= '9') { + if (yych >= '0') goto yy824; + } else { + if (yych <= '@') goto yy826; + if (yych <= 'Z') goto yy824; + } + } else { + if (yych <= '`') { + if (yych <= '_') goto yy824; + } else { + if (yych <= 'z') goto yy824; + if (yych >= 0x80) goto yy824; + } + } +yy826: + YYDEBUG(826, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2028 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); +} +#line 7939 "Zend/zend_language_scanner.c" +yy827: + YYDEBUG(827, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy828: + YYDEBUG(828, *YYCURSOR); + if (yybm[0+yych] & 32) { + goto yy827; + } + goto yy809; +yy829: + YYDEBUG(829, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 128) { + goto yy837; + } +yy830: + YYDEBUG(830, *YYCURSOR); + YYCURSOR = YYMARKER; + goto yy809; +yy831: + YYDEBUG(831, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 64) { + goto yy835; + } + goto yy830; +yy832: + YYDEBUG(832, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(833, *YYCURSOR); + if (yych <= '/') goto yy834; + if (yych <= '9') goto yy832; +yy834: + YYDEBUG(834, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1881 "Zend/zend_language_scanner.l" + { /* Offset must be treated as a string */ + if (yyleng == 1) { + ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); + } else { + ZVAL_STRINGL(zendlval, yytext, yyleng); + } + RETURN_TOKEN_WITH_VAL(T_NUM_STRING); +} +#line 7988 "Zend/zend_language_scanner.c" +yy835: + YYDEBUG(835, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(836, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy835; + } + goto yy834; +yy837: + YYDEBUG(837, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(838, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy837; + } + goto yy834; + } } -#line 2757 "Zend/zend_language_scanner.l" +#line 2761 "Zend/zend_language_scanner.l" emit_token_with_str: diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 5005634dce1c2..e441b5c58ebd3 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1530,6 +1530,10 @@ NEWLINE ("\r"|"\n"|"\r\n") RETURN_TOKEN(T_USE); } +"friend" { + RETURN_TOKEN(T_FRIEND); +} + "insteadof" { RETURN_TOKEN(T_INSTEADOF); } diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h index 3c01b5bc76161..ceb3688c02ec5 100644 --- a/Zend/zend_language_scanner_defs.h +++ b/Zend/zend_language_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 1.0.1 */ +/* Generated by re2c 0.14.3 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE { diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c index fda969cd3008e..bd6b26763bdc3 100644 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@ -314,6 +314,20 @@ static void zend_std_call_issetter(zval *object, zval *member, zval *retval) /* } /* }}} */ +static zend_always_inline zend_bool is_friend_of(zend_class_entry *class, zend_class_entry *candidate) /* {{{ */ +{ + uint32_t i; + + for (i = 0; i < class->num_friends; i++) { + if (class->friends[i] == candidate) { + return 1; + } + } + + return 0; +} +/* }}} */ + static zend_always_inline int zend_verify_property_access(zend_property_info *property_info, zend_class_entry *ce) /* {{{ */ { zend_class_entry *scope; @@ -333,7 +347,7 @@ static zend_always_inline int zend_verify_property_access(zend_property_info *pr } else { scope = zend_get_executed_scope(); } - return zend_check_protected(property_info->ce, scope); + return (zend_check_protected(property_info->ce, scope) || is_friend_of(ce, scope)); } return 0; } diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index 90312423456c0..62f322f4d984f 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -278,6 +278,10 @@ ZEND_API void destroy_zend_class(zval *zv) _destroy_zend_class_traits_info(ce); + if (ce->num_friends > 0 && ce->friends) { + efree(ce->friends); + } + break; case ZEND_INTERNAL_CLASS: if (ce->default_properties_table) { diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index d85bf9974a423..021faa7f2b0c4 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -5140,6 +5140,30 @@ ZEND_VM_HANDLER(181, ZEND_FETCH_CLASS_CONSTANT, VAR|CONST|UNUSED|CLASS_FETCH, CO ZEND_VM_NEXT_OPCODE(); } +ZEND_VM_HANDLER(199, ZEND_ADD_FRIEND, ANY, CONST) +{ + USE_OPLINE + zend_class_entry *ce = Z_CE_P(EX_VAR(opline->op1.var)); + zend_class_entry *friend; + + SAVE_OPLINE(); + friend = Z_CACHE_SLOT_P(RT_CONSTANT(opline, opline->op2)); + + if (UNEXPECTED(friend == NULL)) { + friend = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op2)), + RT_CONSTANT(opline, opline->op2) + 1, + ZEND_FETCH_CLASS_DEFAULT); + + if (UNEXPECTED(friend == NULL)) { + ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); + } + } + + zend_do_implement_friend(ce, friend); + + ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); +} + ZEND_VM_HANDLER(72, ZEND_ADD_ARRAY_ELEMENT, CONST|TMP|VAR|CV, CONST|TMPVAR|UNUSED|NEXT|CV, REF) { USE_OPLINE diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index aa89f097eb821..778cf7832b1d5 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -2271,6 +2271,30 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RECV_INIT_SPEC_CON ZEND_VM_NEXT_OPCODE(); } +static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_FRIEND_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_class_entry *ce = Z_CE_P(EX_VAR(opline->op1.var)); + zend_class_entry *friend; + + SAVE_OPLINE(); + friend = Z_CACHE_SLOT_P(RT_CONSTANT(opline, opline->op2)); + + if (UNEXPECTED(friend == NULL)) { + friend = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op2)), + RT_CONSTANT(opline, opline->op2) + 1, + ZEND_FETCH_CLASS_DEFAULT); + + if (UNEXPECTED(friend == NULL)) { + ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); + } + } + + zend_do_implement_friend(ce, friend); + + ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); +} + static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_INTERFACE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -53522,6 +53546,7 @@ ZEND_API void execute_ex(zend_execute_data *ex) (void*)&&ZEND_FETCH_LIST_W_SPEC_CV_TMPVAR_LABEL, (void*)&&ZEND_NULL_LABEL, (void*)&&ZEND_FETCH_LIST_W_SPEC_CV_CV_LABEL, + (void*)&&ZEND_ADD_FRIEND_SPEC_CONST_LABEL, (void*)&&ZEND_JMP_FORWARD_SPEC_LABEL, (void*)&&ZEND_NULL_LABEL, (void*)&&ZEND_NULL_LABEL, @@ -54710,6 +54735,10 @@ ZEND_API void execute_ex(zend_execute_data *ex) VM_TRACE(ZEND_RECV_INIT_SPEC_CONST) ZEND_RECV_INIT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); HYBRID_BREAK(); + HYBRID_CASE(ZEND_ADD_FRIEND_SPEC_CONST): + VM_TRACE(ZEND_ADD_FRIEND_SPEC_CONST) + ZEND_ADD_FRIEND_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); + HYBRID_BREAK(); HYBRID_CASE(ZEND_ADD_INTERFACE_SPEC_CONST): VM_TRACE(ZEND_ADD_INTERFACE_SPEC_CONST) ZEND_ADD_INTERFACE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); @@ -63047,6 +63076,7 @@ void zend_vm_init(void) ZEND_FETCH_LIST_W_SPEC_CV_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_FETCH_LIST_W_SPEC_CV_CV_HANDLER, + ZEND_ADD_FRIEND_SPEC_CONST_HANDLER, ZEND_JMP_FORWARD_SPEC_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, @@ -64140,7 +64170,8 @@ void zend_vm_init(void) 3019, 3020 | SPEC_RULE_ISSET, 3022 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3938 + 3047, + 3939 }; #if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) zend_opcode_handler_funcs = labels; @@ -64341,7 +64372,7 @@ ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3048 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; + spec = 3049 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; if (op->op1_type < op->op2_type) { zend_swap_operands(op); } @@ -64349,7 +64380,7 @@ ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3073 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; + spec = 3074 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; if (op->op1_type < op->op2_type) { zend_swap_operands(op); } @@ -64357,7 +64388,7 @@ ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3098 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; + spec = 3099 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; if (op->op1_type < op->op2_type) { zend_swap_operands(op); } @@ -64368,17 +64399,17 @@ ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3123 | SPEC_RULE_OP1 | SPEC_RULE_OP2; + spec = 3124 | SPEC_RULE_OP1 | SPEC_RULE_OP2; } else if (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG) { if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3148 | SPEC_RULE_OP1 | SPEC_RULE_OP2; + spec = 3149 | SPEC_RULE_OP1 | SPEC_RULE_OP2; } else if (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE) { if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3173 | SPEC_RULE_OP1 | SPEC_RULE_OP2; + spec = 3174 | SPEC_RULE_OP1 | SPEC_RULE_OP2; } break; case ZEND_MUL: @@ -64389,17 +64420,17 @@ ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3198 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; + spec = 3199 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; } else if (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG) { if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3223 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; + spec = 3224 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; } else if (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE) { if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3248 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; + spec = 3249 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; } break; case ZEND_IS_EQUAL: @@ -64410,12 +64441,12 @@ ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3273 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH | SPEC_RULE_COMMUTATIVE; + spec = 3274 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH | SPEC_RULE_COMMUTATIVE; } else if (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE) { if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3348 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH | SPEC_RULE_COMMUTATIVE; + spec = 3349 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH | SPEC_RULE_COMMUTATIVE; } break; case ZEND_IS_NOT_EQUAL: @@ -64426,12 +64457,12 @@ ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3423 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH | SPEC_RULE_COMMUTATIVE; + spec = 3424 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH | SPEC_RULE_COMMUTATIVE; } else if (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE) { if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3498 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH | SPEC_RULE_COMMUTATIVE; + spec = 3499 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH | SPEC_RULE_COMMUTATIVE; } break; case ZEND_IS_SMALLER: @@ -64439,12 +64470,12 @@ ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3573 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; + spec = 3574 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; } else if (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE) { if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3648 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; + spec = 3649 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; } break; case ZEND_IS_SMALLER_OR_EQUAL: @@ -64452,70 +64483,70 @@ ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3723 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; + spec = 3724 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; } else if (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE) { if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3798 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; + spec = 3799 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; } break; case ZEND_QM_ASSIGN: if (op1_info == MAY_BE_DOUBLE) { - spec = 3891 | SPEC_RULE_OP1; + spec = 3892 | SPEC_RULE_OP1; } else if (!(op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)))) { - spec = 3896 | SPEC_RULE_OP1; + spec = 3897 | SPEC_RULE_OP1; } break; case ZEND_PRE_INC: if (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG) { - spec = 3873 | SPEC_RULE_RETVAL; + spec = 3874 | SPEC_RULE_RETVAL; } else if (op1_info == MAY_BE_LONG) { - spec = 3875 | SPEC_RULE_RETVAL; + spec = 3876 | SPEC_RULE_RETVAL; } else if (op1_info == (MAY_BE_LONG|MAY_BE_DOUBLE)) { - spec = 3877 | SPEC_RULE_RETVAL; + spec = 3878 | SPEC_RULE_RETVAL; } break; case ZEND_PRE_DEC: if (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG) { - spec = 3879 | SPEC_RULE_RETVAL; + spec = 3880 | SPEC_RULE_RETVAL; } else if (op1_info == MAY_BE_LONG) { - spec = 3881 | SPEC_RULE_RETVAL; + spec = 3882 | SPEC_RULE_RETVAL; } else if (op1_info == (MAY_BE_LONG|MAY_BE_DOUBLE)) { - spec = 3883 | SPEC_RULE_RETVAL; + spec = 3884 | SPEC_RULE_RETVAL; } break; case ZEND_POST_INC: if (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG) { - spec = 3885; - } else if (op1_info == MAY_BE_LONG) { spec = 3886; - } else if (op1_info == (MAY_BE_LONG|MAY_BE_DOUBLE)) { + } else if (op1_info == MAY_BE_LONG) { spec = 3887; + } else if (op1_info == (MAY_BE_LONG|MAY_BE_DOUBLE)) { + spec = 3888; } break; case ZEND_POST_DEC: if (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG) { - spec = 3888; - } else if (op1_info == MAY_BE_LONG) { spec = 3889; - } else if (op1_info == (MAY_BE_LONG|MAY_BE_DOUBLE)) { + } else if (op1_info == MAY_BE_LONG) { spec = 3890; + } else if (op1_info == (MAY_BE_LONG|MAY_BE_DOUBLE)) { + spec = 3891; } break; case ZEND_JMP: if (OP_JMP_ADDR(op, op->op1) > op) { - spec = 3047; + spec = 3048; } break; case ZEND_SEND_VAR_EX: if (op->op2.num <= MAX_ARG_FLAG_NUM && (op1_info & (MAY_BE_UNDEF|MAY_BE_REF)) == 0) { - spec = 3931 | SPEC_RULE_OP1; + spec = 3932 | SPEC_RULE_OP1; } break; case ZEND_FE_FETCH_R: if (op->op2_type == IS_CV && (op1_info & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_ARRAY) { - spec = 3936 | SPEC_RULE_RETVAL; + spec = 3937 | SPEC_RULE_RETVAL; } break; case ZEND_FETCH_DIM_R: @@ -64523,12 +64554,12 @@ ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3901 | SPEC_RULE_OP1 | SPEC_RULE_OP2; + spec = 3902 | SPEC_RULE_OP1 | SPEC_RULE_OP2; } break; case ZEND_SEND_VAR: if ((op1_info & (MAY_BE_UNDEF|MAY_BE_REF)) == 0) { - spec = 3926 | SPEC_RULE_OP1; + spec = 3927 | SPEC_RULE_OP1; } break; case ZEND_BW_OR: diff --git a/Zend/zend_vm_handlers.h b/Zend/zend_vm_handlers.h index c9eb031687f69..2b3327d74ba3b 100644 --- a/Zend/zend_vm_handlers.h +++ b/Zend/zend_vm_handlers.h @@ -1569,493 +1569,494 @@ _(3043, ZEND_FETCH_LIST_W_SPEC_CV_TMPVAR) \ _(3044, ZEND_FETCH_LIST_W_SPEC_CV_TMPVAR) \ _(3046, ZEND_FETCH_LIST_W_SPEC_CV_CV) \ - _(3047, ZEND_JMP_FORWARD_SPEC) \ - _(3053, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(3054, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3047, ZEND_ADD_FRIEND_SPEC_CONST) \ + _(3048, ZEND_JMP_FORWARD_SPEC) \ + _(3054, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ _(3055, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3057, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3058, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(3059, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3056, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3058, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3059, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ _(3060, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3062, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3068, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(3069, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3061, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3063, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3069, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ _(3070, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3072, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3078, ZEND_ADD_LONG_SPEC_TMPVARCV_CONST) \ - _(3079, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3071, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3073, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3079, ZEND_ADD_LONG_SPEC_TMPVARCV_CONST) \ _(3080, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3082, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3083, ZEND_ADD_LONG_SPEC_TMPVARCV_CONST) \ - _(3084, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3081, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3083, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3084, ZEND_ADD_LONG_SPEC_TMPVARCV_CONST) \ _(3085, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3087, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3093, ZEND_ADD_LONG_SPEC_TMPVARCV_CONST) \ - _(3094, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3086, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3088, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3094, ZEND_ADD_LONG_SPEC_TMPVARCV_CONST) \ _(3095, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3097, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3103, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3104, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3096, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3098, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3104, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST) \ _(3105, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3107, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3108, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3109, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3106, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3108, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3109, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST) \ _(3110, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3112, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3118, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3119, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3111, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3113, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3119, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST) \ _(3120, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3122, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3124, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV) \ + _(3121, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3123, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ _(3125, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV) \ - _(3127, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV) \ - _(3128, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(3129, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3126, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV) \ + _(3128, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV) \ + _(3129, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ _(3130, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3132, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3133, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(3134, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3131, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3133, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3134, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ _(3135, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3137, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3143, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(3144, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3136, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3138, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3144, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ _(3145, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3147, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3149, ZEND_SUB_LONG_SPEC_CONST_TMPVARCV) \ + _(3146, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3148, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ _(3150, ZEND_SUB_LONG_SPEC_CONST_TMPVARCV) \ - _(3152, ZEND_SUB_LONG_SPEC_CONST_TMPVARCV) \ - _(3153, ZEND_SUB_LONG_SPEC_TMPVARCV_CONST) \ - _(3154, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3151, ZEND_SUB_LONG_SPEC_CONST_TMPVARCV) \ + _(3153, ZEND_SUB_LONG_SPEC_CONST_TMPVARCV) \ + _(3154, ZEND_SUB_LONG_SPEC_TMPVARCV_CONST) \ _(3155, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3157, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3158, ZEND_SUB_LONG_SPEC_TMPVARCV_CONST) \ - _(3159, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3156, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3158, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3159, ZEND_SUB_LONG_SPEC_TMPVARCV_CONST) \ _(3160, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3162, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3168, ZEND_SUB_LONG_SPEC_TMPVARCV_CONST) \ - _(3169, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3161, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3163, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3169, ZEND_SUB_LONG_SPEC_TMPVARCV_CONST) \ _(3170, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3172, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3174, ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV) \ + _(3171, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3173, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ _(3175, ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(3177, ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(3178, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3179, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3176, ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV) \ + _(3178, ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV) \ + _(3179, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST) \ _(3180, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3182, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3183, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3184, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3181, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3183, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3184, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST) \ _(3185, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3187, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3193, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3194, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3186, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3188, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3194, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST) \ _(3195, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3197, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3203, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(3204, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3196, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3198, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3204, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ _(3205, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3207, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3208, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(3209, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3206, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3208, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3209, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ _(3210, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3212, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3218, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(3219, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3211, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3213, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3219, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ _(3220, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3222, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(3228, ZEND_MUL_LONG_SPEC_TMPVARCV_CONST) \ - _(3229, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3221, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3223, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ + _(3229, ZEND_MUL_LONG_SPEC_TMPVARCV_CONST) \ _(3230, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3232, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3233, ZEND_MUL_LONG_SPEC_TMPVARCV_CONST) \ - _(3234, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3231, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3233, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3234, ZEND_MUL_LONG_SPEC_TMPVARCV_CONST) \ _(3235, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3237, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3243, ZEND_MUL_LONG_SPEC_TMPVARCV_CONST) \ - _(3244, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3236, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3238, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3244, ZEND_MUL_LONG_SPEC_TMPVARCV_CONST) \ _(3245, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3247, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3253, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3254, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3246, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3248, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3254, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST) \ _(3255, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3257, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3258, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3259, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3256, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3258, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3259, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST) \ _(3260, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3262, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3268, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3269, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3261, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3263, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3269, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST) \ _(3270, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3272, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3288, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(3289, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3290, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3291, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3292, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3293, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3294, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3295, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3296, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3300, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3301, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3302, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3303, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(3304, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3305, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3306, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3307, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3308, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3309, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3310, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3311, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3315, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3316, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3317, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3333, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(3334, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3335, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3336, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3337, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3338, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3339, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3340, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3341, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3345, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3346, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3347, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3363, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3364, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3365, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3366, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3367, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3368, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3369, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3370, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3371, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3375, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3376, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3377, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3378, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3379, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3380, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3381, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3382, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3383, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3384, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3385, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3386, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3390, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3391, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3392, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3408, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3409, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3410, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3411, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3412, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3413, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3414, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3415, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3416, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3420, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3421, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3422, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3438, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(3439, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3440, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3441, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3442, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3443, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3444, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3445, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3446, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3450, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3451, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3452, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3453, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(3454, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3455, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3456, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3457, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3458, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3459, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3460, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3461, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3465, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3466, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3467, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3483, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(3484, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3485, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3486, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3487, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3488, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3489, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3490, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3491, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3495, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3496, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3497, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3513, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3514, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3515, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3516, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3517, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3518, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3519, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3520, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3521, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3525, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3526, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3527, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3528, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3529, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3530, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3531, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3532, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3533, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3534, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3535, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3536, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3540, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3541, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3542, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3558, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3559, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3560, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3561, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3562, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3563, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3564, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3565, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3566, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3570, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3571, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3572, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3576, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV) \ - _(3577, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3578, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3579, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV) \ - _(3580, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3581, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3585, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV) \ - _(3586, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3587, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3588, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST) \ - _(3589, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3590, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3591, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3592, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3593, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3594, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3595, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3596, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3600, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3601, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3602, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3603, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST) \ - _(3604, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3605, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3606, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3607, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3608, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3609, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3610, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3611, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3615, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3616, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3617, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3633, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST) \ - _(3634, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3635, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3636, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3637, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3638, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3639, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3640, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3641, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3645, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3646, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3647, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3651, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(3652, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3653, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3654, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(3655, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3656, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3660, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(3661, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3662, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3663, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3664, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3665, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3666, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3667, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3668, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3669, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3670, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3671, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3675, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3676, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3677, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3678, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3679, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3680, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3681, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3682, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3683, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3684, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3685, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3686, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3690, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3691, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3692, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3708, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3709, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3710, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3711, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3712, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3713, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3714, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3715, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3716, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3720, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3721, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3722, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3726, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV) \ - _(3727, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3728, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3729, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV) \ - _(3730, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3731, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3735, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV) \ - _(3736, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3737, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3738, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(3739, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3740, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3741, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3742, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3743, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3744, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3745, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3746, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3750, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3751, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3752, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3753, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(3754, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3755, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3756, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3757, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3758, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3759, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3760, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3761, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3765, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3766, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3767, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3783, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(3784, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3785, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3786, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3787, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3788, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3789, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3790, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3791, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3795, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3796, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3797, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3801, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(3802, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3803, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3804, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(3805, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3806, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3810, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(3811, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3812, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3813, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3814, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3815, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3816, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3817, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3818, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3819, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3820, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3821, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3825, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3826, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3827, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3828, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3829, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3830, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3831, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3832, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3833, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3834, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3835, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3836, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3840, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3841, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3842, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3858, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3859, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3860, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3861, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3862, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3863, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3864, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3865, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3866, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3870, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3871, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3872, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3873, ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_TMPVARCV_RETVAL_UNUSED) \ - _(3874, ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_TMPVARCV_RETVAL_USED) \ - _(3875, ZEND_PRE_INC_LONG_SPEC_TMPVARCV_RETVAL_UNUSED) \ - _(3876, ZEND_PRE_INC_LONG_SPEC_TMPVARCV_RETVAL_USED) \ - _(3877, ZEND_PRE_INC_LONG_OR_DOUBLE_SPEC_TMPVARCV_RETVAL_UNUSED) \ - _(3878, ZEND_PRE_INC_LONG_OR_DOUBLE_SPEC_TMPVARCV_RETVAL_USED) \ - _(3879, ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_TMPVARCV_RETVAL_UNUSED) \ - _(3880, ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_TMPVARCV_RETVAL_USED) \ - _(3881, ZEND_PRE_DEC_LONG_SPEC_TMPVARCV_RETVAL_UNUSED) \ - _(3882, ZEND_PRE_DEC_LONG_SPEC_TMPVARCV_RETVAL_USED) \ - _(3883, ZEND_PRE_DEC_LONG_OR_DOUBLE_SPEC_TMPVARCV_RETVAL_UNUSED) \ - _(3884, ZEND_PRE_DEC_LONG_OR_DOUBLE_SPEC_TMPVARCV_RETVAL_USED) \ - _(3885, ZEND_POST_INC_LONG_NO_OVERFLOW_SPEC_TMPVARCV) \ - _(3886, ZEND_POST_INC_LONG_SPEC_TMPVARCV) \ - _(3887, ZEND_POST_INC_LONG_OR_DOUBLE_SPEC_TMPVARCV) \ - _(3888, ZEND_POST_DEC_LONG_NO_OVERFLOW_SPEC_TMPVARCV) \ - _(3889, ZEND_POST_DEC_LONG_SPEC_TMPVARCV) \ - _(3890, ZEND_POST_DEC_LONG_OR_DOUBLE_SPEC_TMPVARCV) \ - _(3891, ZEND_QM_ASSIGN_DOUBLE_SPEC_CONST) \ - _(3892, ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV) \ + _(3271, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3273, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3289, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ + _(3290, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3291, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3292, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3293, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3294, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3295, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3296, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3297, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3301, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3302, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3303, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3304, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ + _(3305, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3306, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3307, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3308, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3309, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3310, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3311, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3312, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3316, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3317, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3318, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3334, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ + _(3335, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3336, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3337, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3338, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3339, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3340, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3341, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3342, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3346, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3347, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3348, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3364, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ + _(3365, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3366, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3367, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3368, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3369, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3370, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3371, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3372, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3376, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3377, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3378, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3379, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ + _(3380, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3381, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3382, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3383, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3384, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3385, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3386, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3387, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3391, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3392, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3393, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3409, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ + _(3410, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3411, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3412, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3413, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3414, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3415, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3416, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3417, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3421, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3422, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3423, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3439, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ + _(3440, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3441, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3442, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3443, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3444, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3445, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3446, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3447, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3451, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3452, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3453, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3454, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ + _(3455, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3456, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3457, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3458, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3459, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3460, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3461, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3462, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3466, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3467, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3468, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3484, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ + _(3485, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3486, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3487, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3488, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3489, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3490, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3491, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3492, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3496, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3497, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3498, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3514, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ + _(3515, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3516, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3517, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3518, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3519, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3520, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3521, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3522, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3526, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3527, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3528, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3529, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ + _(3530, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3531, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3532, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3533, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3534, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3535, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3536, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3537, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3541, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3542, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3543, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3559, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ + _(3560, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3561, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3562, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3563, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3564, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3565, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3566, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3567, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3571, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3572, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3573, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3577, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV) \ + _(3578, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ + _(3579, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ + _(3580, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV) \ + _(3581, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ + _(3582, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ + _(3586, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV) \ + _(3587, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ + _(3588, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ + _(3589, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST) \ + _(3590, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3591, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3592, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3593, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3594, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3595, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3596, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3597, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3601, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3602, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3603, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3604, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST) \ + _(3605, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3606, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3607, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3608, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3609, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3610, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3611, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3612, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3616, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3617, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3618, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3634, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST) \ + _(3635, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3636, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3637, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3638, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3639, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3640, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3641, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3642, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3646, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3647, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3648, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3652, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV) \ + _(3653, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ + _(3654, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ + _(3655, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV) \ + _(3656, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ + _(3657, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ + _(3661, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV) \ + _(3662, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ + _(3663, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ + _(3664, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST) \ + _(3665, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3666, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3667, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3668, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3669, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3670, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3671, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3672, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3676, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3677, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3678, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3679, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST) \ + _(3680, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3681, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3682, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3683, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3684, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3685, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3686, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3687, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3691, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3692, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3693, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3709, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST) \ + _(3710, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3711, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3712, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3713, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3714, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3715, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3716, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3717, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3721, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3722, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3723, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3727, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV) \ + _(3728, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ + _(3729, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ + _(3730, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV) \ + _(3731, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ + _(3732, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ + _(3736, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV) \ + _(3737, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ + _(3738, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ + _(3739, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ + _(3740, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3741, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3742, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3743, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3744, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3745, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3746, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3747, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3751, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3752, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3753, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3754, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ + _(3755, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3756, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3757, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3758, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3759, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3760, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3761, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3762, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3766, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3767, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3768, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3784, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ + _(3785, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3786, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3787, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3788, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3789, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3790, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3791, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3792, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3796, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ + _(3797, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3798, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3802, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV) \ + _(3803, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ + _(3804, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ + _(3805, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV) \ + _(3806, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ + _(3807, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ + _(3811, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV) \ + _(3812, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ + _(3813, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ + _(3814, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ + _(3815, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3816, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3817, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3818, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3819, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3820, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3821, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3822, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3826, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3827, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3828, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3829, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ + _(3830, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3831, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3832, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3833, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3834, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3835, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3836, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3837, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3841, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3842, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3843, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3859, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ + _(3860, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ + _(3861, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ + _(3862, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3863, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3864, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3865, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3866, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3867, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3871, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ + _(3872, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ + _(3873, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ + _(3874, ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_TMPVARCV_RETVAL_UNUSED) \ + _(3875, ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_TMPVARCV_RETVAL_USED) \ + _(3876, ZEND_PRE_INC_LONG_SPEC_TMPVARCV_RETVAL_UNUSED) \ + _(3877, ZEND_PRE_INC_LONG_SPEC_TMPVARCV_RETVAL_USED) \ + _(3878, ZEND_PRE_INC_LONG_OR_DOUBLE_SPEC_TMPVARCV_RETVAL_UNUSED) \ + _(3879, ZEND_PRE_INC_LONG_OR_DOUBLE_SPEC_TMPVARCV_RETVAL_USED) \ + _(3880, ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_TMPVARCV_RETVAL_UNUSED) \ + _(3881, ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_TMPVARCV_RETVAL_USED) \ + _(3882, ZEND_PRE_DEC_LONG_SPEC_TMPVARCV_RETVAL_UNUSED) \ + _(3883, ZEND_PRE_DEC_LONG_SPEC_TMPVARCV_RETVAL_USED) \ + _(3884, ZEND_PRE_DEC_LONG_OR_DOUBLE_SPEC_TMPVARCV_RETVAL_UNUSED) \ + _(3885, ZEND_PRE_DEC_LONG_OR_DOUBLE_SPEC_TMPVARCV_RETVAL_USED) \ + _(3886, ZEND_POST_INC_LONG_NO_OVERFLOW_SPEC_TMPVARCV) \ + _(3887, ZEND_POST_INC_LONG_SPEC_TMPVARCV) \ + _(3888, ZEND_POST_INC_LONG_OR_DOUBLE_SPEC_TMPVARCV) \ + _(3889, ZEND_POST_DEC_LONG_NO_OVERFLOW_SPEC_TMPVARCV) \ + _(3890, ZEND_POST_DEC_LONG_SPEC_TMPVARCV) \ + _(3891, ZEND_POST_DEC_LONG_OR_DOUBLE_SPEC_TMPVARCV) \ + _(3892, ZEND_QM_ASSIGN_DOUBLE_SPEC_CONST) \ _(3893, ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV) \ - _(3895, ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV) \ - _(3896, ZEND_QM_ASSIGN_NOREF_SPEC_CONST) \ - _(3897, ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV) \ + _(3894, ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV) \ + _(3896, ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV) \ + _(3897, ZEND_QM_ASSIGN_NOREF_SPEC_CONST) \ _(3898, ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV) \ - _(3900, ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV) \ - _(3902, ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV) \ + _(3899, ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV) \ + _(3901, ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV) \ _(3903, ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV) \ - _(3905, ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV) \ - _(3906, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_CONST) \ - _(3907, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ + _(3904, ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV) \ + _(3906, ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV) \ + _(3907, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_CONST) \ _(3908, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ - _(3910, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ - _(3911, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_CONST) \ - _(3912, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ + _(3909, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ + _(3911, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ + _(3912, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_CONST) \ _(3913, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ - _(3915, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ - _(3921, ZEND_FETCH_DIM_R_INDEX_SPEC_CV_CONST) \ - _(3922, ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV) \ + _(3914, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ + _(3916, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ + _(3922, ZEND_FETCH_DIM_R_INDEX_SPEC_CV_CONST) \ _(3923, ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV) \ - _(3925, ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV) \ - _(3928, ZEND_SEND_VAR_SIMPLE_SPEC_VAR) \ - _(3930, ZEND_SEND_VAR_SIMPLE_SPEC_CV) \ - _(3933, ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR) \ - _(3935, ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV) \ - _(3936, ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_UNUSED) \ - _(3937, ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_USED) \ - _(3937+1, ZEND_NULL) + _(3924, ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV) \ + _(3926, ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV) \ + _(3929, ZEND_SEND_VAR_SIMPLE_SPEC_VAR) \ + _(3931, ZEND_SEND_VAR_SIMPLE_SPEC_CV) \ + _(3934, ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR) \ + _(3936, ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV) \ + _(3937, ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_UNUSED) \ + _(3938, ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_USED) \ + _(3938+1, ZEND_NULL) diff --git a/Zend/zend_vm_opcodes.c b/Zend/zend_vm_opcodes.c index f09efd50d6170..9aa6fcb0ae713 100644 --- a/Zend/zend_vm_opcodes.c +++ b/Zend/zend_vm_opcodes.c @@ -22,7 +22,7 @@ #include #include -static const char *zend_vm_opcodes_names[199] = { +static const char *zend_vm_opcodes_names[200] = { "ZEND_NOP", "ZEND_ADD", "ZEND_SUB", @@ -222,9 +222,10 @@ static const char *zend_vm_opcodes_names[199] = { "ZEND_UNSET_CV", "ZEND_ISSET_ISEMPTY_CV", "ZEND_FETCH_LIST_W", + "ZEND_ADD_FRIEND", }; -static uint32_t zend_vm_opcodes_flags[199] = { +static uint32_t zend_vm_opcodes_flags[200] = { 0x00000000, 0x00000707, 0x00000707, @@ -424,6 +425,7 @@ static uint32_t zend_vm_opcodes_flags[199] = { 0x00000101, 0x00020101, 0x00000701, + 0x00000300, }; ZEND_API const char* ZEND_FASTCALL zend_get_opcode_name(zend_uchar opcode) { diff --git a/Zend/zend_vm_opcodes.h b/Zend/zend_vm_opcodes.h index b5c0a483d83f8..665b1007b014d 100644 --- a/Zend/zend_vm_opcodes.h +++ b/Zend/zend_vm_opcodes.h @@ -273,7 +273,8 @@ END_EXTERN_C() #define ZEND_UNSET_CV 196 #define ZEND_ISSET_ISEMPTY_CV 197 #define ZEND_FETCH_LIST_W 198 +#define ZEND_ADD_FRIEND 199 -#define ZEND_VM_LAST_OPCODE 198 +#define ZEND_VM_LAST_OPCODE 199 #endif diff --git a/ext/tokenizer/tokenizer_data.c b/ext/tokenizer/tokenizer_data.c index 6b36ab0e39f41..939fe99fd73e3 100644 --- a/ext/tokenizer/tokenizer_data.c +++ b/ext/tokenizer/tokenizer_data.c @@ -29,11 +29,11 @@ void tokenizer_register_constants(INIT_FUNC_ARGS) { - REGISTER_LONG_CONSTANT("T_REQUIRE_ONCE", T_REQUIRE_ONCE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_REQUIRE", T_REQUIRE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_EVAL", T_EVAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_INCLUDE_ONCE", T_INCLUDE_ONCE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_INCLUDE", T_INCLUDE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_INCLUDE_ONCE", T_INCLUDE_ONCE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_EVAL", T_EVAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_REQUIRE", T_REQUIRE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_REQUIRE_ONCE", T_REQUIRE_ONCE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_LOGICAL_OR", T_LOGICAL_OR, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_LOGICAL_XOR", T_LOGICAL_XOR, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_LOGICAL_AND", T_LOGICAL_AND, CONST_CS | CONST_PERSISTENT); @@ -41,52 +41,52 @@ void tokenizer_register_constants(INIT_FUNC_ARGS) { REGISTER_LONG_CONSTANT("T_YIELD", T_YIELD, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_DOUBLE_ARROW", T_DOUBLE_ARROW, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_YIELD_FROM", T_YIELD_FROM, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_POW_EQUAL", T_POW_EQUAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_SR_EQUAL", T_SR_EQUAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_SL_EQUAL", T_SL_EQUAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_XOR_EQUAL", T_XOR_EQUAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_OR_EQUAL", T_OR_EQUAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_AND_EQUAL", T_AND_EQUAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_MOD_EQUAL", T_MOD_EQUAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_CONCAT_EQUAL", T_CONCAT_EQUAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_DIV_EQUAL", T_DIV_EQUAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_MUL_EQUAL", T_MUL_EQUAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_MINUS_EQUAL", T_MINUS_EQUAL, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_PLUS_EQUAL", T_PLUS_EQUAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_MINUS_EQUAL", T_MINUS_EQUAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_MUL_EQUAL", T_MUL_EQUAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_DIV_EQUAL", T_DIV_EQUAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_CONCAT_EQUAL", T_CONCAT_EQUAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_MOD_EQUAL", T_MOD_EQUAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_AND_EQUAL", T_AND_EQUAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_OR_EQUAL", T_OR_EQUAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_XOR_EQUAL", T_XOR_EQUAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_SL_EQUAL", T_SL_EQUAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_SR_EQUAL", T_SR_EQUAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_POW_EQUAL", T_POW_EQUAL, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_COALESCE", T_COALESCE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_BOOLEAN_OR", T_BOOLEAN_OR, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_BOOLEAN_AND", T_BOOLEAN_AND, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_SPACESHIP", T_SPACESHIP, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_IS_NOT_IDENTICAL", T_IS_NOT_IDENTICAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_IS_IDENTICAL", T_IS_IDENTICAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_IS_NOT_EQUAL", T_IS_NOT_EQUAL, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_IS_EQUAL", T_IS_EQUAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_IS_GREATER_OR_EQUAL", T_IS_GREATER_OR_EQUAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_IS_NOT_EQUAL", T_IS_NOT_EQUAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_IS_IDENTICAL", T_IS_IDENTICAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_IS_NOT_IDENTICAL", T_IS_NOT_IDENTICAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_SPACESHIP", T_SPACESHIP, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_IS_SMALLER_OR_EQUAL", T_IS_SMALLER_OR_EQUAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_SR", T_SR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_IS_GREATER_OR_EQUAL", T_IS_GREATER_OR_EQUAL, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_SL", T_SL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_SR", T_SR, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_INSTANCEOF", T_INSTANCEOF, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_UNSET_CAST", T_UNSET_CAST, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_BOOL_CAST", T_BOOL_CAST, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_OBJECT_CAST", T_OBJECT_CAST, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_ARRAY_CAST", T_ARRAY_CAST, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_STRING_CAST", T_STRING_CAST, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_DOUBLE_CAST", T_DOUBLE_CAST, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_INT_CAST", T_INT_CAST, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_DEC", T_DEC, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_INC", T_INC, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_DEC", T_DEC, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_INT_CAST", T_INT_CAST, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_DOUBLE_CAST", T_DOUBLE_CAST, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_STRING_CAST", T_STRING_CAST, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_ARRAY_CAST", T_ARRAY_CAST, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_OBJECT_CAST", T_OBJECT_CAST, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_BOOL_CAST", T_BOOL_CAST, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_UNSET_CAST", T_UNSET_CAST, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_POW", T_POW, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_CLONE", T_CLONE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_NEW", T_NEW, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_CLONE", T_CLONE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_ELSEIF", T_ELSEIF, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_ELSE", T_ELSE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_ENDIF", T_ENDIF, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_PUBLIC", T_PUBLIC, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_PROTECTED", T_PROTECTED, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_PRIVATE", T_PRIVATE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_FINAL", T_FINAL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("T_ABSTRACT", T_ABSTRACT, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_STATIC", T_STATIC, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_ABSTRACT", T_ABSTRACT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_FINAL", T_FINAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_PRIVATE", T_PRIVATE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_PROTECTED", T_PROTECTED, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_PUBLIC", T_PUBLIC, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_LNUMBER", T_LNUMBER, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_DNUMBER", T_DNUMBER, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_STRING", T_STRING, CONST_CS | CONST_PERSISTENT); @@ -124,6 +124,7 @@ void tokenizer_register_constants(INIT_FUNC_ARGS) { REGISTER_LONG_CONSTANT("T_FINALLY", T_FINALLY, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_THROW", T_THROW, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_USE", T_USE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_FRIEND", T_FRIEND, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_INSTEADOF", T_INSTEADOF, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_GLOBAL", T_GLOBAL, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_VAR", T_VAR, CONST_CS | CONST_PERSISTENT); @@ -169,11 +170,11 @@ char *get_token_type_name(int token_type) { switch (token_type) { - case T_REQUIRE_ONCE: return "T_REQUIRE_ONCE"; - case T_REQUIRE: return "T_REQUIRE"; - case T_EVAL: return "T_EVAL"; - case T_INCLUDE_ONCE: return "T_INCLUDE_ONCE"; case T_INCLUDE: return "T_INCLUDE"; + case T_INCLUDE_ONCE: return "T_INCLUDE_ONCE"; + case T_EVAL: return "T_EVAL"; + case T_REQUIRE: return "T_REQUIRE"; + case T_REQUIRE_ONCE: return "T_REQUIRE_ONCE"; case T_LOGICAL_OR: return "T_LOGICAL_OR"; case T_LOGICAL_XOR: return "T_LOGICAL_XOR"; case T_LOGICAL_AND: return "T_LOGICAL_AND"; @@ -181,52 +182,52 @@ char *get_token_type_name(int token_type) case T_YIELD: return "T_YIELD"; case T_DOUBLE_ARROW: return "T_DOUBLE_ARROW"; case T_YIELD_FROM: return "T_YIELD_FROM"; - case T_POW_EQUAL: return "T_POW_EQUAL"; - case T_SR_EQUAL: return "T_SR_EQUAL"; - case T_SL_EQUAL: return "T_SL_EQUAL"; - case T_XOR_EQUAL: return "T_XOR_EQUAL"; - case T_OR_EQUAL: return "T_OR_EQUAL"; - case T_AND_EQUAL: return "T_AND_EQUAL"; - case T_MOD_EQUAL: return "T_MOD_EQUAL"; - case T_CONCAT_EQUAL: return "T_CONCAT_EQUAL"; - case T_DIV_EQUAL: return "T_DIV_EQUAL"; - case T_MUL_EQUAL: return "T_MUL_EQUAL"; - case T_MINUS_EQUAL: return "T_MINUS_EQUAL"; case T_PLUS_EQUAL: return "T_PLUS_EQUAL"; + case T_MINUS_EQUAL: return "T_MINUS_EQUAL"; + case T_MUL_EQUAL: return "T_MUL_EQUAL"; + case T_DIV_EQUAL: return "T_DIV_EQUAL"; + case T_CONCAT_EQUAL: return "T_CONCAT_EQUAL"; + case T_MOD_EQUAL: return "T_MOD_EQUAL"; + case T_AND_EQUAL: return "T_AND_EQUAL"; + case T_OR_EQUAL: return "T_OR_EQUAL"; + case T_XOR_EQUAL: return "T_XOR_EQUAL"; + case T_SL_EQUAL: return "T_SL_EQUAL"; + case T_SR_EQUAL: return "T_SR_EQUAL"; + case T_POW_EQUAL: return "T_POW_EQUAL"; case T_COALESCE: return "T_COALESCE"; case T_BOOLEAN_OR: return "T_BOOLEAN_OR"; case T_BOOLEAN_AND: return "T_BOOLEAN_AND"; - case T_SPACESHIP: return "T_SPACESHIP"; - case T_IS_NOT_IDENTICAL: return "T_IS_NOT_IDENTICAL"; - case T_IS_IDENTICAL: return "T_IS_IDENTICAL"; - case T_IS_NOT_EQUAL: return "T_IS_NOT_EQUAL"; case T_IS_EQUAL: return "T_IS_EQUAL"; - case T_IS_GREATER_OR_EQUAL: return "T_IS_GREATER_OR_EQUAL"; + case T_IS_NOT_EQUAL: return "T_IS_NOT_EQUAL"; + case T_IS_IDENTICAL: return "T_IS_IDENTICAL"; + case T_IS_NOT_IDENTICAL: return "T_IS_NOT_IDENTICAL"; + case T_SPACESHIP: return "T_SPACESHIP"; case T_IS_SMALLER_OR_EQUAL: return "T_IS_SMALLER_OR_EQUAL"; - case T_SR: return "T_SR"; + case T_IS_GREATER_OR_EQUAL: return "T_IS_GREATER_OR_EQUAL"; case T_SL: return "T_SL"; + case T_SR: return "T_SR"; case T_INSTANCEOF: return "T_INSTANCEOF"; - case T_UNSET_CAST: return "T_UNSET_CAST"; - case T_BOOL_CAST: return "T_BOOL_CAST"; - case T_OBJECT_CAST: return "T_OBJECT_CAST"; - case T_ARRAY_CAST: return "T_ARRAY_CAST"; - case T_STRING_CAST: return "T_STRING_CAST"; - case T_DOUBLE_CAST: return "T_DOUBLE_CAST"; - case T_INT_CAST: return "T_INT_CAST"; - case T_DEC: return "T_DEC"; case T_INC: return "T_INC"; + case T_DEC: return "T_DEC"; + case T_INT_CAST: return "T_INT_CAST"; + case T_DOUBLE_CAST: return "T_DOUBLE_CAST"; + case T_STRING_CAST: return "T_STRING_CAST"; + case T_ARRAY_CAST: return "T_ARRAY_CAST"; + case T_OBJECT_CAST: return "T_OBJECT_CAST"; + case T_BOOL_CAST: return "T_BOOL_CAST"; + case T_UNSET_CAST: return "T_UNSET_CAST"; case T_POW: return "T_POW"; - case T_CLONE: return "T_CLONE"; case T_NEW: return "T_NEW"; + case T_CLONE: return "T_CLONE"; case T_ELSEIF: return "T_ELSEIF"; case T_ELSE: return "T_ELSE"; case T_ENDIF: return "T_ENDIF"; - case T_PUBLIC: return "T_PUBLIC"; - case T_PROTECTED: return "T_PROTECTED"; - case T_PRIVATE: return "T_PRIVATE"; - case T_FINAL: return "T_FINAL"; - case T_ABSTRACT: return "T_ABSTRACT"; case T_STATIC: return "T_STATIC"; + case T_ABSTRACT: return "T_ABSTRACT"; + case T_FINAL: return "T_FINAL"; + case T_PRIVATE: return "T_PRIVATE"; + case T_PROTECTED: return "T_PROTECTED"; + case T_PUBLIC: return "T_PUBLIC"; case T_LNUMBER: return "T_LNUMBER"; case T_DNUMBER: return "T_DNUMBER"; case T_STRING: return "T_STRING"; @@ -264,6 +265,7 @@ char *get_token_type_name(int token_type) case T_FINALLY: return "T_FINALLY"; case T_THROW: return "T_THROW"; case T_USE: return "T_USE"; + case T_FRIEND: return "T_FRIEND"; case T_INSTEADOF: return "T_INSTEADOF"; case T_GLOBAL: return "T_GLOBAL"; case T_VAR: return "T_VAR";