]> granicus.if.org Git - php/commitdiff
Remove lexer files generated by RE2C
authorPeter Kokot <peterkokot@gmail.com>
Sat, 10 Nov 2018 01:47:26 +0000 (02:47 +0100)
committerPeter Kokot <peterkokot@gmail.com>
Sun, 11 Nov 2018 01:55:46 +0000 (02:55 +0100)
This patch removes generated lexer files by re2c during the build
process so they are not tracked by Git yet can be still shipped when
PHP is released. The genfiles script additionally provides generation
of these lexer files when creating a release of the PHP source code.

The genfiles script refactorings:
- added file header
- echoing steps instead of comments
- cleaning only lines starting with `#line`
- eval removed in favor of direct executed commands
- the debug mode `set -x` removed
- script can be called from any path
- improved comments

13 files changed:
.gitignore
Zend/zend_ini_scanner.c [deleted file]
Zend/zend_ini_scanner_defs.h [deleted file]
Zend/zend_language_scanner.c [deleted file]
Zend/zend_language_scanner_defs.h [deleted file]
ext/json/json_scanner.c [deleted file]
ext/json/php_json_scanner_defs.h [deleted file]
ext/pdo/pdo_sql_parser.c [deleted file]
ext/phar/phar_path_check.c [deleted file]
ext/standard/url_scanner_ex.c [deleted file]
ext/standard/var_unserializer.c [deleted file]
genfiles
sapi/phpdbg/phpdbg_lexer.c [deleted file]

index a43c15df3451f7869ee478db518899276f90ad35..c0e059714dd2f582180a50f65a01e4de7d2051c2 100644 (file)
@@ -153,6 +153,21 @@ config.h.in
 /scripts/phpize
 php
 
+# ------------------------------------------------------------------------------
+# Lexer files generated by re2c
+# ------------------------------------------------------------------------------
+/ext/json/json_scanner.c
+/ext/json/php_json_scanner_defs.h
+/ext/pdo/pdo_sql_parser.c
+/ext/phar/phar_path_check.c
+/ext/standard/url_scanner_ex.c
+/ext/standard/var_unserializer.c
+/sapi/phpdbg/phpdbg_lexer.c
+/Zend/zend_ini_scanner.c
+/Zend/zend_ini_scanner_defs.h
+/Zend/zend_language_scanner.c
+/Zend/zend_language_scanner_defs.h
+
 # ------------------------------------------------------------------------------
 # PHP parser files generated by bison during the build process
 # ------------------------------------------------------------------------------
diff --git a/Zend/zend_ini_scanner.c b/Zend/zend_ini_scanner.c
deleted file mode 100644 (file)
index b563ce2..0000000
+++ /dev/null
@@ -1,3882 +0,0 @@
-/* Generated by re2c 1.0.3 */
-#line 1 "Zend/zend_ini_scanner.l"
-/*
-   +----------------------------------------------------------------------+
-   | Zend Engine                                                          |
-   +----------------------------------------------------------------------+
-   | Copyright (c) 1998-2018 Zend Technologies Ltd. (http://www.zend.com) |
-   +----------------------------------------------------------------------+
-   | This source file is subject to version 2.00 of the Zend license,     |
-   | that is bundled with this package in the file LICENSE, and is        |
-   | available through the world-wide-web at the following url:           |
-   | http://www.zend.com/license/2_00.txt.                                |
-   | If you did not receive a copy of the Zend license and are unable to  |
-   | obtain it through the world-wide-web, please send a note to          |
-   | license@zend.com so we can mail you a copy immediately.              |
-   +----------------------------------------------------------------------+
-   | Authors: Zeev Suraski <zeev@php.net>                                 |
-   |          Jani Taskinen <jani@php.net>                                |
-   |          Marcus Boerger <helly@php.net>                              |
-   |          Nuno Lopes <nlopess@php.net>                                |
-   |          Scott MacVicar <scottmac@php.net>                           |
-   +----------------------------------------------------------------------+
-*/
-
-#include <errno.h>
-#include "zend.h"
-#include "zend_API.h"
-#include "zend_globals.h"
-#include <zend_ini_parser.h>
-#include "zend_ini_scanner.h"
-
-#ifdef YYDEBUG
-#undef YYDEBUG
-#endif
-
-#if 0
-# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
-#else
-# define YYDEBUG(s, c)
-#endif
-
-#include "zend_ini_scanner_defs.h"
-
-#define YYCTYPE   unsigned char
-/* allow the scanner to read one null byte after the end of the string (from ZEND_MMAP_AHEAD)
- * so that if will be able to terminate to match the current token (e.g. non-enclosed string) */
-#define YYFILL(n) { if (YYCURSOR > YYLIMIT) return 0; }
-#define YYCURSOR  SCNG(yy_cursor)
-#define YYLIMIT   SCNG(yy_limit)
-#define YYMARKER  SCNG(yy_marker)
-
-#define YYGETCONDITION()  SCNG(yy_state)
-#define YYSETCONDITION(s) SCNG(yy_state) = s
-
-#define STATE(name)  yyc##name
-
-/* emulate flex constructs */
-#define BEGIN(state) YYSETCONDITION(STATE(state))
-#define YYSTATE      YYGETCONDITION()
-#define yytext       ((char*)SCNG(yy_text))
-#define yyleng       SCNG(yy_leng)
-#define yyless(x)    do {      YYCURSOR = (unsigned char*)yytext + x; \
-                                                       yyleng   = (unsigned int)x; } while(0)
-
-/* #define yymore()     goto yymore_restart */
-
-/* perform sanity check. If this message is triggered you should
-   increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
-#define YYMAXFILL 6
-
-#if ZEND_MMAP_AHEAD < (YYMAXFILL + 1)
-# error ZEND_MMAP_AHEAD should be greater than YYMAXFILL
-#endif
-
-
-/* How it works (for the core ini directives):
- * ===========================================
- *
- * 1. Scanner scans file for tokens and passes them to parser.
- * 2. Parser parses the tokens and passes the name/value pairs to the callback
- *    function which stores them in the configuration hash table.
- * 3. Later REGISTER_INI_ENTRIES() is called which triggers the actual
- *    registering of ini entries and uses zend_get_configuration_directive()
- *    to fetch the previously stored name/value pair from configuration hash table
- *    and registers the static ini entries which match the name to the value
- *    into EG(ini_directives) hash table.
- * 4. PATH section entries are used per-request from down to top, each overriding
- *    previous if one exists. zend_alter_ini_entry() is called for each entry.
- *    Settings in PATH section are ZEND_INI_SYSTEM accessible and thus mimics the
- *    php_admin_* directives used within Apache httpd.conf when PHP is compiled as
- *    module for Apache.
- * 5. User defined ini files (like .htaccess for apache) are parsed for each request and
- *    stored in separate hash defined by SAPI.
- */
-
-/* TODO: (ordered by importance :-)
- * ===============================================================================
- *
- *  - Separate constant lookup totally from plain strings (using CONSTANT pattern)
- *  - Add #if .. #else .. #endif and ==, !=, <, > , <=, >= operators
- *  - Add #include "some.ini"
- *  - Allow variables to refer to options also when using parse_ini_file()
- *
- */
-
-/* Globals Macros */
-#define SCNG   INI_SCNG
-#ifdef ZTS
-ZEND_API ts_rsrc_id ini_scanner_globals_id;
-#else
-ZEND_API zend_ini_scanner_globals ini_scanner_globals;
-#endif
-
-#define ZEND_SYSTEM_INI CG(ini_parser_unbuffered_errors)
-
-/* Eat leading whitespace */
-#define EAT_LEADING_WHITESPACE()                     \
-       while (yyleng) {                                 \
-               if (yytext[0] == ' ' || yytext[0] == '\t') { \
-                       SCNG(yy_text)++;                         \
-                       yyleng--;                                \
-               } else {                                     \
-                       break;                                   \
-               }                                            \
-       }
-
-/* Eat trailing whitespace + extra char */
-#define EAT_TRAILING_WHITESPACE_EX(ch)              \
-       while (yyleng && (                              \
-               (ch != 'X' && yytext[yyleng - 1] ==  ch) || \
-               yytext[yyleng - 1] == '\n' ||               \
-               yytext[yyleng - 1] == '\r' ||               \
-               yytext[yyleng - 1] == '\t' ||               \
-               yytext[yyleng - 1] == ' ')                  \
-       ) {                                             \
-               yyleng--;                                   \
-       }
-
-/* Eat trailing whitespace */
-#define EAT_TRAILING_WHITESPACE()      EAT_TRAILING_WHITESPACE_EX('X')
-
-#define zend_ini_copy_value(retval, str, len)  \
-       ZVAL_NEW_STR(retval, zend_string_init(str, len, ZEND_SYSTEM_INI))
-
-
-#define RETURN_TOKEN(type, str, len) {                       \
-       if (SCNG(scanner_mode) == ZEND_INI_SCANNER_TYPED) {      \
-               zend_ini_copy_typed_value(ini_lval, type, str, len); \
-       } else {                                                 \
-               zend_ini_copy_value(ini_lval, str, len);             \
-       }                                                        \
-       return type;                                             \
-}
-
-static inline int convert_to_number(zval *retval, const char *str, const int str_len)
-{
-       zend_uchar type;
-       int overflow;
-       zend_long lval;
-       double dval;
-
-       if ((type = is_numeric_string_ex(str, str_len, &lval, &dval, 0, &overflow)) != 0) {
-               if (type == IS_LONG) {
-                       ZVAL_LONG(retval, lval);
-                       return SUCCESS;
-               } else if (type == IS_DOUBLE && !overflow) {
-                       ZVAL_DOUBLE(retval, dval);
-                       return SUCCESS;
-               }
-       }
-
-       return FAILURE;
-}
-
-static void zend_ini_copy_typed_value(zval *retval, const int type, const char *str, int len)
-{
-       switch (type) {
-               case BOOL_FALSE:
-               case BOOL_TRUE:
-                       ZVAL_BOOL(retval, type == BOOL_TRUE);
-                       break;
-
-               case NULL_NULL:
-                       ZVAL_NULL(retval);
-                       break;
-
-               case TC_NUMBER:
-                       if (convert_to_number(retval, str, len) == SUCCESS) {
-                               break;
-                       }
-                       /* intentional fall-through */
-               default:
-                       zend_ini_copy_value(retval, str, len);
-       }
-}
-
-static void _yy_push_state(int new_state)
-{
-       zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION());
-       YYSETCONDITION(new_state);
-}
-
-#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
-
-static void yy_pop_state(void)
-{
-       int *stack_state = zend_stack_top(&SCNG(state_stack));
-       YYSETCONDITION(*stack_state);
-       zend_stack_del_top(&SCNG(state_stack));
-}
-
-static void yy_scan_buffer(char *str, unsigned int len)
-{
-       YYCURSOR = (YYCTYPE*)str;
-       SCNG(yy_start) = YYCURSOR;
-       YYLIMIT  = YYCURSOR + len;
-}
-
-#define ini_filename SCNG(filename)
-
-/* {{{ init_ini_scanner()
-*/
-static int init_ini_scanner(int scanner_mode, zend_file_handle *fh)
-{
-       /* Sanity check */
-       if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW && scanner_mode != ZEND_INI_SCANNER_TYPED) {
-               zend_error(E_WARNING, "Invalid scanner mode");
-               return FAILURE;
-       }
-
-       SCNG(lineno) = 1;
-       SCNG(scanner_mode) = scanner_mode;
-       SCNG(yy_in) = fh;
-
-       if (fh != NULL) {
-               ini_filename = zend_strndup(fh->filename, strlen(fh->filename));
-       } else {
-               ini_filename = NULL;
-       }
-
-       zend_stack_init(&SCNG(state_stack), sizeof(int));
-       BEGIN(INITIAL);
-
-       return SUCCESS;
-}
-/* }}} */
-
-/* {{{ shutdown_ini_scanner()
-*/
-void shutdown_ini_scanner(void)
-{
-       zend_stack_destroy(&SCNG(state_stack));
-       if (ini_filename) {
-               free(ini_filename);
-       }
-}
-/* }}} */
-
-/* {{{ zend_ini_scanner_get_lineno()
-*/
-ZEND_COLD int zend_ini_scanner_get_lineno(void)
-{
-       return SCNG(lineno);
-}
-/* }}} */
-
-/* {{{ zend_ini_scanner_get_filename()
-*/
-ZEND_COLD char *zend_ini_scanner_get_filename(void)
-{
-       return ini_filename ? ini_filename : "Unknown";
-}
-/* }}} */
-
-/* {{{ zend_ini_open_file_for_scanning()
-*/
-int zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode)
-{
-       char *buf;
-       size_t size;
-
-       if (zend_stream_fixup(fh, &buf, &size) == FAILURE) {
-               return FAILURE;
-       }
-
-       if (init_ini_scanner(scanner_mode, fh) == FAILURE) {
-               zend_file_handle_dtor(fh);
-               return FAILURE;
-       }
-
-       yy_scan_buffer(buf, (unsigned int)size);
-
-       return SUCCESS;
-}
-/* }}} */
-
-/* {{{ zend_ini_prepare_string_for_scanning()
-*/
-int zend_ini_prepare_string_for_scanning(char *str, int scanner_mode)
-{
-       int len = (int)strlen(str);
-
-       if (init_ini_scanner(scanner_mode, NULL) == FAILURE) {
-               return FAILURE;
-       }
-
-       yy_scan_buffer(str, len);
-
-       return SUCCESS;
-}
-/* }}} */
-
-/* {{{ zend_ini_escape_string()
- */
-static void zend_ini_escape_string(zval *lval, char *str, int len, char quote_type)
-{
-       register char *s, *t;
-       char *end;
-
-       zend_ini_copy_value(lval, str, len);
-
-       /* convert escape sequences */
-       s = t = Z_STRVAL_P(lval);
-       end = s + Z_STRLEN_P(lval);
-
-       while (s < end) {
-               if (*s == '\\') {
-                       s++;
-                       if (s >= end) {
-                               *t++ = '\\';
-                               continue;
-                       }
-                       switch (*s) {
-                               case '"':
-                                       if (*s != quote_type) {
-                                               *t++ = '\\';
-                                               *t++ = *s;
-                                               break;
-                                       }
-                               case '\\':
-                               case '$':
-                                       *t++ = *s;
-                                       Z_STRLEN_P(lval)--;
-                                       break;
-                               default:
-                                       *t++ = '\\';
-                                       *t++ = *s;
-                                       break;
-                       }
-               } else {
-                       *t++ = *s;
-               }
-               if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
-                       SCNG(lineno)++;
-               }
-               s++;
-       }
-       *t = 0;
-}
-/* }}} */
-
-int ini_lex(zval *ini_lval)
-{
-restart:
-       SCNG(yy_text) = YYCURSOR;
-
-/* yymore_restart: */
-       /* detect EOF */
-       if (YYCURSOR >= YYLIMIT) {
-               if (YYSTATE == STATE(ST_VALUE) || YYSTATE == STATE(ST_RAW)) {
-                       BEGIN(INITIAL);
-                       return END_OF_LINE;
-               }
-               return 0;
-       }
-
-       /* Eat any UTF-8 BOM we find in the first 3 bytes */
-       if (YYCURSOR == SCNG(yy_start) && YYCURSOR + 3 < YYLIMIT) {
-               if (memcmp(YYCURSOR, "\xef\xbb\xbf", 3) == 0) {
-                       YYCURSOR += 3;
-                       goto restart;
-               }
-       }
-
-#line 386 "Zend/zend_ini_scanner.c"
-{
-       YYCTYPE yych;
-       unsigned int yyaccept = 0;
-       if (YYGETCONDITION() < 4) {
-               if (YYGETCONDITION() < 2) {
-                       if (YYGETCONDITION() < 1) {
-                               goto yyc_INITIAL;
-                       } else {
-                               goto yyc_ST_OFFSET;
-                       }
-               } else {
-                       if (YYGETCONDITION() < 3) {
-                               goto yyc_ST_SECTION_VALUE;
-                       } else {
-                               goto yyc_ST_VALUE;
-                       }
-               }
-       } else {
-               if (YYGETCONDITION() < 6) {
-                       if (YYGETCONDITION() < 5) {
-                               goto yyc_ST_SECTION_RAW;
-                       } else {
-                               goto yyc_ST_DOUBLE_QUOTES;
-                       }
-               } else {
-                       if (YYGETCONDITION() < 7) {
-                               goto yyc_ST_VARNAME;
-                       } else {
-                               goto yyc_ST_RAW;
-                       }
-               }
-       }
-/* *********************************** */
-yyc_INITIAL:
-       {
-               static const unsigned char yybm[] = {
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 160,   0, 144, 144,   0, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       240, 128, 128, 144, 128, 144, 128, 144, 
-                       128, 128, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 128, 144, 128, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 128, 144, 144, 128, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 128, 128, 128, 128, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-               };
-               YYDEBUG(1, *YYCURSOR);
-               YYFILL(5);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 64) {
-                       goto yy12;
-               }
-               switch (yych) {
-               case '\t':      goto yy6;
-               case '\n':      goto yy9;
-               case '\r':      goto yy11;
-               case ' ':
-               case '!':
-               case '"':
-               case '$':
-               case '&':
-               case '(':
-               case ')':
-               case '^':
-               case '{':
-               case '|':
-               case '}':
-               case '~':       goto yy14;
-               case ';':       goto yy16;
-               case '=':       goto yy18;
-               case 'F':
-               case 'f':       goto yy21;
-               case 'N':
-               case 'n':       goto yy22;
-               case 'O':
-               case 'o':       goto yy23;
-               case 'T':
-               case 't':       goto yy24;
-               case 'Y':
-               case 'y':       goto yy25;
-               case '[':       goto yy26;
-               default:        goto yy3;
-               }
-yy3:
-               YYDEBUG(3, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy4:
-               YYDEBUG(4, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy3;
-               }
-               if (yych <= '=') goto yy5;
-               if (yych <= '[') goto yy28;
-yy5:
-               YYDEBUG(5, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 481 "Zend/zend_ini_scanner.l"
-               { /* Get option name */
-       /* Eat leading whitespace */
-       EAT_LEADING_WHITESPACE();
-
-       /* Eat trailing whitespace */
-       EAT_TRAILING_WHITESPACE();
-
-       RETURN_TOKEN(TC_LABEL, yytext, yyleng);
-}
-#line 518 "Zend/zend_ini_scanner.c"
-yy6:
-               YYDEBUG(6, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-               YYDEBUG(7, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy6;
-               }
-               if (yych <= '\r') {
-                       if (yych <= 0x08) goto yy8;
-                       if (yych <= '\n') goto yy9;
-                       if (yych >= '\r') goto yy11;
-               } else {
-                       if (yych <= ';') {
-                               if (yych >= ';') goto yy16;
-                       } else {
-                               if (yych == '=') goto yy18;
-                       }
-               }
-yy8:
-               YYDEBUG(8, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 634 "Zend/zend_ini_scanner.l"
-               {
-       /* eat whitespace */
-       goto restart;
-}
-#line 547 "Zend/zend_ini_scanner.c"
-yy9:
-               YYDEBUG(9, *YYCURSOR);
-               ++YYCURSOR;
-yy10:
-               YYDEBUG(10, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 639 "Zend/zend_ini_scanner.l"
-               {
-       SCNG(lineno)++;
-       return END_OF_LINE;
-}
-#line 559 "Zend/zend_ini_scanner.c"
-yy11:
-               YYDEBUG(11, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy9;
-               goto yy10;
-yy12:
-               YYDEBUG(12, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-               YYDEBUG(13, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy12;
-               }
-               if (yych <= '\'') {
-                       if (yych <= 0x1F) {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x08) goto yy3;
-                                       if (yych <= '\t') goto yy6;
-                                       goto yy9;
-                               } else {
-                                       if (yych == '\r') goto yy11;
-                                       goto yy3;
-                               }
-                       } else {
-                               if (yych <= '$') {
-                                       if (yych == '#') goto yy3;
-                                       goto yy5;
-                               } else {
-                                       if (yych == '&') goto yy5;
-                                       goto yy3;
-                               }
-                       }
-               } else {
-                       if (yych <= 'Z') {
-                               if (yych <= ';') {
-                                       if (yych <= ')') goto yy5;
-                                       if (yych <= ':') goto yy3;
-                                       goto yy16;
-                               } else {
-                                       if (yych == '=') goto yy18;
-                                       goto yy3;
-                               }
-                       } else {
-                               if (yych <= '^') {
-                                       if (yych <= '[') goto yy28;
-                                       if (yych <= ']') goto yy3;
-                                       goto yy5;
-                               } else {
-                                       if (yych <= 'z') goto yy3;
-                                       if (yych <= '~') goto yy5;
-                                       goto yy3;
-                               }
-                       }
-               }
-yy14:
-               YYDEBUG(14, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(15, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 562 "Zend/zend_ini_scanner.l"
-               { /* Disallow these chars outside option values */
-       return yytext[0];
-}
-#line 624 "Zend/zend_ini_scanner.c"
-yy16:
-               YYDEBUG(16, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-               YYDEBUG(17, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy16;
-               }
-               if (yych <= '\n') goto yy31;
-               goto yy33;
-yy18:
-               YYDEBUG(18, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(19, *YYCURSOR);
-               if (yych == '\t') goto yy18;
-               if (yych == ' ') goto yy18;
-               YYDEBUG(20, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 491 "Zend/zend_ini_scanner.l"
-               { /* Start option value */
-       if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
-               BEGIN(ST_RAW);
-       } else {
-               BEGIN(ST_VALUE);
-       }
-       return '=';
-}
-#line 655 "Zend/zend_ini_scanner.c"
-yy21:
-               YYDEBUG(21, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy34;
-               if (yych == 'a') goto yy34;
-               goto yy4;
-yy22:
-               YYDEBUG(22, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'U') {
-                       if (yych == 'O') goto yy35;
-                       if (yych <= 'T') goto yy4;
-                       goto yy37;
-               } else {
-                       if (yych <= 'o') {
-                               if (yych <= 'n') goto yy4;
-                               goto yy35;
-                       } else {
-                               if (yych == 'u') goto yy37;
-                               goto yy4;
-                       }
-               }
-yy23:
-               YYDEBUG(23, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'N') {
-                       if (yych == 'F') goto yy38;
-                       if (yych <= 'M') goto yy4;
-                       goto yy39;
-               } else {
-                       if (yych <= 'f') {
-                               if (yych <= 'e') goto yy4;
-                               goto yy38;
-                       } else {
-                               if (yych == 'n') goto yy39;
-                               goto yy4;
-                       }
-               }
-yy24:
-               YYDEBUG(24, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy42;
-               if (yych == 'r') goto yy42;
-               goto yy4;
-yy25:
-               YYDEBUG(25, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy43;
-               if (yych == 'e') goto yy43;
-               goto yy4;
-yy26:
-               YYDEBUG(26, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(27, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 406 "Zend/zend_ini_scanner.l"
-               { /* Section start */
-       /* Enter section data lookup state */
-       if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
-               BEGIN(ST_SECTION_RAW);
-       } else {
-               BEGIN(ST_SECTION_VALUE);
-       }
-       return TC_SECTION;
-}
-#line 721 "Zend/zend_ini_scanner.c"
-yy28:
-               YYDEBUG(28, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(29, *YYCURSOR);
-               if (yych == '\t') goto yy28;
-               if (yych == ' ') goto yy28;
-               YYDEBUG(30, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 431 "Zend/zend_ini_scanner.l"
-               { /* Start of option with offset */
-       /* Eat leading whitespace */
-       EAT_LEADING_WHITESPACE();
-
-       /* Eat trailing whitespace and [ */
-       EAT_TRAILING_WHITESPACE_EX('[');
-
-       /* Enter offset lookup state */
-       BEGIN(ST_OFFSET);
-
-       RETURN_TOKEN(TC_OFFSET, yytext, yyleng);
-}
-#line 745 "Zend/zend_ini_scanner.c"
-yy31:
-               YYDEBUG(31, *YYCURSOR);
-               ++YYCURSOR;
-yy32:
-               YYDEBUG(32, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 644 "Zend/zend_ini_scanner.l"
-               { /* Comment */
-       BEGIN(INITIAL);
-       SCNG(lineno)++;
-       return END_OF_LINE;
-}
-#line 758 "Zend/zend_ini_scanner.c"
-yy33:
-               YYDEBUG(33, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy31;
-               goto yy32;
-yy34:
-               YYDEBUG(34, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy44;
-               if (yych == 'l') goto yy44;
-               goto yy4;
-yy35:
-               YYDEBUG(35, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '\'') {
-                       if (yych <= 0x1F) {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x08) goto yy4;
-                                       if (yych <= '\t') goto yy45;
-                               } else {
-                                       if (yych != '\r') goto yy4;
-                               }
-                       } else {
-                               if (yych <= '#') {
-                                       if (yych <= ' ') goto yy47;
-                                       if (yych >= '#') goto yy4;
-                               } else {
-                                       if (yych == '%') goto yy4;
-                                       if (yych >= '\'') goto yy4;
-                               }
-                       }
-               } else {
-                       if (yych <= 'N') {
-                               if (yych <= ';') {
-                                       if (yych <= ')') goto yy36;
-                                       if (yych <= ':') goto yy4;
-                               } else {
-                                       if (yych == '=') goto yy36;
-                                       if (yych <= 'M') goto yy4;
-                                       goto yy49;
-                               }
-                       } else {
-                               if (yych <= 'm') {
-                                       if (yych != '^') goto yy4;
-                               } else {
-                                       if (yych <= 'n') goto yy49;
-                                       if (yych <= 'z') goto yy4;
-                                       if (yych >= 0x7F) goto yy4;
-                               }
-                       }
-               }
-yy36:
-               YYDEBUG(36, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 473 "Zend/zend_ini_scanner.l"
-               { /* FALSE value (when used outside option value/offset this causes parse error!)*/
-       RETURN_TOKEN(BOOL_FALSE, "", 0);
-}
-#line 817 "Zend/zend_ini_scanner.c"
-yy37:
-               YYDEBUG(37, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy50;
-               if (yych == 'l') goto yy50;
-               goto yy4;
-yy38:
-               YYDEBUG(38, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'F') goto yy47;
-               if (yych == 'f') goto yy47;
-               goto yy4;
-yy39:
-               YYDEBUG(39, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(40, *YYCURSOR);
-               if (yych <= '&') {
-                       if (yych <= 0x1F) {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x08) goto yy3;
-                                       if (yych <= '\t') goto yy51;
-                               } else {
-                                       if (yych != '\r') goto yy3;
-                               }
-                       } else {
-                               if (yych <= '#') {
-                                       if (yych <= ' ') goto yy39;
-                                       if (yych >= '#') goto yy3;
-                               } else {
-                                       if (yych == '%') goto yy3;
-                               }
-                       }
-               } else {
-                       if (yych <= '=') {
-                               if (yych <= ':') {
-                                       if (yych <= '\'') goto yy3;
-                                       if (yych >= '*') goto yy3;
-                               } else {
-                                       if (yych == '<') goto yy3;
-                               }
-                       } else {
-                               if (yych <= ']') {
-                                       if (yych == '[') goto yy28;
-                                       goto yy3;
-                               } else {
-                                       if (yych <= '^') goto yy41;
-                                       if (yych <= 'z') goto yy3;
-                                       if (yych >= 0x7F) goto yy3;
-                               }
-                       }
-               }
-yy41:
-               YYDEBUG(41, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 469 "Zend/zend_ini_scanner.l"
-               { /* TRUE value (when used outside option value/offset this causes parse error!) */
-       RETURN_TOKEN(BOOL_TRUE, "1", 1);
-}
-#line 878 "Zend/zend_ini_scanner.c"
-yy42:
-               YYDEBUG(42, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy53;
-               if (yych == 'u') goto yy53;
-               goto yy4;
-yy43:
-               YYDEBUG(43, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy39;
-               if (yych == 's') goto yy39;
-               goto yy4;
-yy44:
-               YYDEBUG(44, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy49;
-               if (yych == 's') goto yy49;
-               goto yy4;
-yy45:
-               YYDEBUG(45, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(46, *YYCURSOR);
-               if (yych == '\t') goto yy45;
-               if (yych == ' ') goto yy45;
-               goto yy36;
-yy47:
-               YYDEBUG(47, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(48, *YYCURSOR);
-               if (yych <= '&') {
-                       if (yych <= 0x1F) {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x08) goto yy3;
-                                       if (yych <= '\t') goto yy45;
-                                       goto yy36;
-                               } else {
-                                       if (yych == '\r') goto yy36;
-                                       goto yy3;
-                               }
-                       } else {
-                               if (yych <= '#') {
-                                       if (yych <= ' ') goto yy47;
-                                       if (yych <= '"') goto yy36;
-                                       goto yy3;
-                               } else {
-                                       if (yych == '%') goto yy3;
-                                       goto yy36;
-                               }
-                       }
-               } else {
-                       if (yych <= '=') {
-                               if (yych <= ':') {
-                                       if (yych <= '\'') goto yy3;
-                                       if (yych <= ')') goto yy36;
-                                       goto yy3;
-                               } else {
-                                       if (yych == '<') goto yy3;
-                                       goto yy36;
-                               }
-                       } else {
-                               if (yych <= ']') {
-                                       if (yych == '[') goto yy28;
-                                       goto yy3;
-                               } else {
-                                       if (yych <= '^') goto yy36;
-                                       if (yych <= 'z') goto yy3;
-                                       if (yych <= '~') goto yy36;
-                                       goto yy3;
-                               }
-                       }
-               }
-yy49:
-               YYDEBUG(49, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy47;
-               if (yych == 'e') goto yy47;
-               goto yy4;
-yy50:
-               YYDEBUG(50, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy54;
-               if (yych == 'l') goto yy54;
-               goto yy4;
-yy51:
-               YYDEBUG(51, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(52, *YYCURSOR);
-               if (yych == '\t') goto yy51;
-               if (yych == ' ') goto yy51;
-               goto yy41;
-yy53:
-               YYDEBUG(53, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy39;
-               if (yych == 'e') goto yy39;
-               goto yy4;
-yy54:
-               YYDEBUG(54, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(55, *YYCURSOR);
-               if (yych <= '&') {
-                       if (yych <= 0x1F) {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x08) goto yy3;
-                                       if (yych <= '\t') goto yy57;
-                               } else {
-                                       if (yych != '\r') goto yy3;
-                               }
-                       } else {
-                               if (yych <= '#') {
-                                       if (yych <= ' ') goto yy54;
-                                       if (yych >= '#') goto yy3;
-                               } else {
-                                       if (yych == '%') goto yy3;
-                               }
-                       }
-               } else {
-                       if (yych <= '=') {
-                               if (yych <= ':') {
-                                       if (yych <= '\'') goto yy3;
-                                       if (yych >= '*') goto yy3;
-                               } else {
-                                       if (yych == '<') goto yy3;
-                               }
-                       } else {
-                               if (yych <= ']') {
-                                       if (yych == '[') goto yy28;
-                                       goto yy3;
-                               } else {
-                                       if (yych <= '^') goto yy56;
-                                       if (yych <= 'z') goto yy3;
-                                       if (yych >= 0x7F) goto yy3;
-                               }
-                       }
-               }
-yy56:
-               YYDEBUG(56, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 477 "Zend/zend_ini_scanner.l"
-               {
-       RETURN_TOKEN(NULL_NULL, "", 0);
-}
-#line 1029 "Zend/zend_ini_scanner.c"
-yy57:
-               YYDEBUG(57, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(58, *YYCURSOR);
-               if (yych == '\t') goto yy57;
-               if (yych == ' ') goto yy57;
-               goto yy56;
-       }
-/* *********************************** */
-yyc_ST_OFFSET:
-       {
-               static const unsigned char yybm[] = {
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 140, 128, 132, 132, 128, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       140, 132, 128, 132, 192, 132, 132,   0, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       180, 180, 180, 180, 180, 180, 180, 180, 
-                       180, 180, 132, 128, 132, 132, 132, 132, 
-                       132, 164, 164, 164, 164, 164, 164, 164, 
-                       164, 164, 164, 164, 164, 164, 164, 164, 
-                       164, 164, 164, 164, 164, 164, 164, 164, 
-                       164, 164, 164, 132, 192, 128, 132, 164, 
-                       132, 164, 164, 164, 164, 164, 164, 164, 
-                       164, 164, 164, 164, 164, 164, 164, 164, 
-                       164, 164, 164, 164, 164, 164, 164, 164, 
-                       164, 164, 164, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-               };
-               YYDEBUG(59, *YYCURSOR);
-               YYFILL(2);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 8) {
-                       goto yy64;
-               }
-               if (yych <= '/') {
-                       if (yych <= '"') {
-                               if (yych <= '\f') {
-                                       if (yych <= 0x08) goto yy61;
-                                       if (yych <= '\n') goto yy66;
-                               } else {
-                                       if (yych <= '\r') goto yy66;
-                                       if (yych >= '"') goto yy68;
-                               }
-                       } else {
-                               if (yych <= '&') {
-                                       if (yych == '$') goto yy70;
-                               } else {
-                                       if (yych <= '\'') goto yy71;
-                                       if (yych <= ',') goto yy61;
-                                       if (yych <= '.') goto yy72;
-                               }
-                       }
-               } else {
-                       if (yych <= '[') {
-                               if (yych <= ';') {
-                                       if (yych <= '9') goto yy73;
-                                       if (yych >= ';') goto yy66;
-                               } else {
-                                       if (yych <= '@') goto yy61;
-                                       if (yych <= 'Z') goto yy76;
-                               }
-                       } else {
-                               if (yych <= '^') {
-                                       if (yych <= '\\') goto yy79;
-                                       if (yych <= ']') goto yy80;
-                               } else {
-                                       if (yych == '`') goto yy61;
-                                       if (yych <= 'z') goto yy76;
-                               }
-                       }
-               }
-yy61:
-               YYDEBUG(61, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy62:
-               YYDEBUG(62, *YYCURSOR);
-               if (yybm[0+yych] & 4) {
-                       goto yy61;
-               }
-               if (yych <= '"') goto yy63;
-               if (yych <= '$') goto yy82;
-               if (yych <= ';') goto yy63;
-               if (yych <= '\\') goto yy79;
-yy63:
-               YYDEBUG(63, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 580 "Zend/zend_ini_scanner.l"
-               { /* Get rest as section/offset value */
-       RETURN_TOKEN(TC_STRING, yytext, yyleng);
-}
-#line 1142 "Zend/zend_ini_scanner.c"
-yy64:
-               YYDEBUG(64, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(65, *YYCURSOR);
-               if (yybm[0+yych] & 8) {
-                       goto yy64;
-               }
-               if (yych <= '$') {
-                       if (yych <= '\r') {
-                               if (yych <= 0x08) goto yy61;
-                               if (yych <= '\n') goto yy63;
-                               if (yych <= '\f') goto yy61;
-                               goto yy63;
-                       } else {
-                               if (yych == '"') goto yy68;
-                               if (yych <= '#') goto yy61;
-                               goto yy82;
-                       }
-               } else {
-                       if (yych <= ';') {
-                               if (yych == '\'') goto yy63;
-                               if (yych <= ':') goto yy61;
-                               goto yy63;
-                       } else {
-                               if (yych <= '[') goto yy61;
-                               if (yych <= '\\') goto yy79;
-                               if (yych <= ']') goto yy80;
-                               goto yy61;
-                       }
-               }
-yy66:
-               YYDEBUG(66, *YYCURSOR);
-               ++YYCURSOR;
-yy67:
-               YYDEBUG(67, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 655 "Zend/zend_ini_scanner.l"
-               {
-       return 0;
-}
-#line 1186 "Zend/zend_ini_scanner.c"
-yy68:
-               YYDEBUG(68, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(69, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 584 "Zend/zend_ini_scanner.l"
-               { /* Double quoted '"' string start */
-       yy_push_state(ST_DOUBLE_QUOTES);
-       return '"';
-}
-#line 1197 "Zend/zend_ini_scanner.c"
-yy70:
-               YYDEBUG(70, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '\\') {
-                       if (yych <= 0x00) goto yy67;
-                       if (yych <= '[') goto yy61;
-                       goto yy84;
-               } else {
-                       if (yych == '{') goto yy86;
-                       goto yy61;
-               }
-yy71:
-               YYDEBUG(71, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 128) {
-                       goto yy88;
-               }
-               goto yy67;
-yy72:
-               YYDEBUG(72, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '/') goto yy62;
-               if (yych <= '9') goto yy90;
-               goto yy62;
-yy73:
-               YYDEBUG(73, *YYCURSOR);
-               yyaccept = 1;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(74, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy73;
-               }
-               if (yych <= '&') {
-                       if (yych <= '\r') {
-                               if (yych == '\n') goto yy75;
-                               if (yych <= '\f') goto yy61;
-                       } else {
-                               if (yych <= '"') {
-                                       if (yych <= '!') goto yy61;
-                               } else {
-                                       if (yych == '$') goto yy82;
-                                       goto yy61;
-                               }
-                       }
-               } else {
-                       if (yych <= ':') {
-                               if (yych <= '\'') goto yy75;
-                               if (yych == '.') goto yy90;
-                               goto yy61;
-                       } else {
-                               if (yych <= '[') {
-                                       if (yych >= '<') goto yy61;
-                               } else {
-                                       if (yych <= '\\') goto yy79;
-                                       if (yych >= '^') goto yy61;
-                               }
-                       }
-               }
-yy75:
-               YYDEBUG(75, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 558 "Zend/zend_ini_scanner.l"
-               { /* Get number option value as string */
-       RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
-}
-#line 1266 "Zend/zend_ini_scanner.c"
-yy76:
-               YYDEBUG(76, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(77, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy76;
-               }
-               if (yych <= '$') {
-                       if (yych <= '\r') {
-                               if (yych == '\n') goto yy78;
-                               if (yych <= '\f') goto yy61;
-                       } else {
-                               if (yych == '"') goto yy78;
-                               if (yych <= '#') goto yy61;
-                               goto yy82;
-                       }
-               } else {
-                       if (yych <= ';') {
-                               if (yych == '\'') goto yy78;
-                               if (yych <= ':') goto yy61;
-                       } else {
-                               if (yych <= '[') goto yy61;
-                               if (yych <= '\\') goto yy79;
-                               if (yych >= '^') goto yy61;
-                       }
-               }
-yy78:
-               YYDEBUG(78, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 554 "Zend/zend_ini_scanner.l"
-               { /* Get constant option value */
-       RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
-}
-#line 1303 "Zend/zend_ini_scanner.c"
-yy79:
-               YYDEBUG(79, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               goto yy61;
-yy80:
-               YYDEBUG(80, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(81, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 444 "Zend/zend_ini_scanner.l"
-               { /* End of section or an option offset */
-       BEGIN(INITIAL);
-       return ']';
-}
-#line 1320 "Zend/zend_ini_scanner.c"
-yy82:
-               YYDEBUG(82, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= '\\') {
-                       if (yych <= 0x00) goto yy83;
-                       if (yych <= '[') goto yy61;
-                       goto yy84;
-               } else {
-                       if (yych != '{') goto yy61;
-               }
-yy83:
-               YYDEBUG(83, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               if (yyaccept <= 1) {
-                       if (yyaccept == 0) {
-                               goto yy63;
-                       } else {
-                               goto yy75;
-                       }
-               } else {
-                       goto yy78;
-               }
-yy84:
-               YYDEBUG(84, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(85, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy84;
-               }
-               goto yy61;
-yy86:
-               YYDEBUG(86, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(87, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 449 "Zend/zend_ini_scanner.l"
-               { /* Variable start */
-       yy_push_state(ST_VARNAME);
-       return TC_DOLLAR_CURLY;
-}
-#line 1365 "Zend/zend_ini_scanner.c"
-yy88:
-               YYDEBUG(88, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(89, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy88;
-               }
-               goto yy92;
-yy90:
-               YYDEBUG(90, *YYCURSOR);
-               yyaccept = 1;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(91, *YYCURSOR);
-               if (yych <= '&') {
-                       if (yych <= '\r') {
-                               if (yych == '\n') goto yy75;
-                               if (yych <= '\f') goto yy61;
-                               goto yy75;
-                       } else {
-                               if (yych <= '"') {
-                                       if (yych <= '!') goto yy61;
-                                       goto yy75;
-                               } else {
-                                       if (yych == '$') goto yy82;
-                                       goto yy61;
-                               }
-                       }
-               } else {
-                       if (yych <= ':') {
-                               if (yych <= '\'') goto yy75;
-                               if (yych <= '/') goto yy61;
-                               if (yych <= '9') goto yy90;
-                               goto yy61;
-                       } else {
-                               if (yych <= '[') {
-                                       if (yych <= ';') goto yy75;
-                                       goto yy61;
-                               } else {
-                                       if (yych <= '\\') goto yy79;
-                                       if (yych <= ']') goto yy75;
-                                       goto yy61;
-                               }
-                       }
-               }
-yy92:
-               YYDEBUG(92, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(93, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 416 "Zend/zend_ini_scanner.l"
-               { /* Raw string */
-       /* Eat leading and trailing single quotes */
-       if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
-               SCNG(yy_text)++;
-               yyleng = yyleng - 2;
-       }
-       RETURN_TOKEN(TC_RAW, yytext, yyleng);
-}
-#line 1428 "Zend/zend_ini_scanner.c"
-       }
-/* *********************************** */
-yyc_ST_SECTION_VALUE:
-       {
-               static const unsigned char yybm[] = {
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 140, 128, 132, 132, 128, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       140, 132, 128, 132, 192, 132, 132,   0, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       180, 180, 180, 180, 180, 180, 180, 180, 
-                       180, 180, 132, 128, 132, 132, 132, 132, 
-                       132, 164, 164, 164, 164, 164, 164, 164, 
-                       164, 164, 164, 164, 164, 164, 164, 164, 
-                       164, 164, 164, 164, 164, 164, 164, 164, 
-                       164, 164, 164, 132, 192, 128, 132, 164, 
-                       132, 164, 164, 164, 164, 164, 164, 164, 
-                       164, 164, 164, 164, 164, 164, 164, 164, 
-                       164, 164, 164, 164, 164, 164, 164, 164, 
-                       164, 164, 164, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-                       132, 132, 132, 132, 132, 132, 132, 132, 
-               };
-               YYDEBUG(94, *YYCURSOR);
-               YYFILL(2);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 8) {
-                       goto yy99;
-               }
-               if (yych <= '/') {
-                       if (yych <= '"') {
-                               if (yych <= '\f') {
-                                       if (yych <= 0x08) goto yy96;
-                                       if (yych <= '\n') goto yy101;
-                               } else {
-                                       if (yych <= '\r') goto yy101;
-                                       if (yych >= '"') goto yy103;
-                               }
-                       } else {
-                               if (yych <= '&') {
-                                       if (yych == '$') goto yy105;
-                               } else {
-                                       if (yych <= '\'') goto yy106;
-                                       if (yych <= ',') goto yy96;
-                                       if (yych <= '.') goto yy107;
-                               }
-                       }
-               } else {
-                       if (yych <= '[') {
-                               if (yych <= ';') {
-                                       if (yych <= '9') goto yy108;
-                                       if (yych >= ';') goto yy101;
-                               } else {
-                                       if (yych <= '@') goto yy96;
-                                       if (yych <= 'Z') goto yy111;
-                               }
-                       } else {
-                               if (yych <= '^') {
-                                       if (yych <= '\\') goto yy114;
-                                       if (yych <= ']') goto yy115;
-                               } else {
-                                       if (yych == '`') goto yy96;
-                                       if (yych <= 'z') goto yy111;
-                               }
-                       }
-               }
-yy96:
-               YYDEBUG(96, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy97:
-               YYDEBUG(97, *YYCURSOR);
-               if (yybm[0+yych] & 4) {
-                       goto yy96;
-               }
-               if (yych <= '"') goto yy98;
-               if (yych <= '$') goto yy118;
-               if (yych <= ';') goto yy98;
-               if (yych <= '\\') goto yy114;
-yy98:
-               YYDEBUG(98, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 580 "Zend/zend_ini_scanner.l"
-               { /* Get rest as section/offset value */
-       RETURN_TOKEN(TC_STRING, yytext, yyleng);
-}
-#line 1532 "Zend/zend_ini_scanner.c"
-yy99:
-               YYDEBUG(99, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(100, *YYCURSOR);
-               if (yybm[0+yych] & 8) {
-                       goto yy99;
-               }
-               if (yych <= '$') {
-                       if (yych <= '\r') {
-                               if (yych <= 0x08) goto yy96;
-                               if (yych <= '\n') goto yy98;
-                               if (yych <= '\f') goto yy96;
-                               goto yy98;
-                       } else {
-                               if (yych == '"') goto yy103;
-                               if (yych <= '#') goto yy96;
-                               goto yy118;
-                       }
-               } else {
-                       if (yych <= ';') {
-                               if (yych == '\'') goto yy98;
-                               if (yych <= ':') goto yy96;
-                               goto yy98;
-                       } else {
-                               if (yych <= '[') goto yy96;
-                               if (yych <= '\\') goto yy114;
-                               if (yych <= ']') goto yy98;
-                               goto yy96;
-                       }
-               }
-yy101:
-               YYDEBUG(101, *YYCURSOR);
-               ++YYCURSOR;
-yy102:
-               YYDEBUG(102, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 655 "Zend/zend_ini_scanner.l"
-               {
-       return 0;
-}
-#line 1576 "Zend/zend_ini_scanner.c"
-yy103:
-               YYDEBUG(103, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(104, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 584 "Zend/zend_ini_scanner.l"
-               { /* Double quoted '"' string start */
-       yy_push_state(ST_DOUBLE_QUOTES);
-       return '"';
-}
-#line 1587 "Zend/zend_ini_scanner.c"
-yy105:
-               YYDEBUG(105, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '\\') {
-                       if (yych <= 0x00) goto yy102;
-                       if (yych <= '[') goto yy96;
-                       goto yy120;
-               } else {
-                       if (yych == '{') goto yy122;
-                       goto yy96;
-               }
-yy106:
-               YYDEBUG(106, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 128) {
-                       goto yy124;
-               }
-               goto yy102;
-yy107:
-               YYDEBUG(107, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '/') goto yy97;
-               if (yych <= '9') goto yy126;
-               goto yy97;
-yy108:
-               YYDEBUG(108, *YYCURSOR);
-               yyaccept = 1;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(109, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy108;
-               }
-               if (yych <= '&') {
-                       if (yych <= '\r') {
-                               if (yych == '\n') goto yy110;
-                               if (yych <= '\f') goto yy96;
-                       } else {
-                               if (yych <= '"') {
-                                       if (yych <= '!') goto yy96;
-                               } else {
-                                       if (yych == '$') goto yy118;
-                                       goto yy96;
-                               }
-                       }
-               } else {
-                       if (yych <= ':') {
-                               if (yych <= '\'') goto yy110;
-                               if (yych == '.') goto yy126;
-                               goto yy96;
-                       } else {
-                               if (yych <= '[') {
-                                       if (yych >= '<') goto yy96;
-                               } else {
-                                       if (yych <= '\\') goto yy114;
-                                       if (yych >= '^') goto yy96;
-                               }
-                       }
-               }
-yy110:
-               YYDEBUG(110, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 558 "Zend/zend_ini_scanner.l"
-               { /* Get number option value as string */
-       RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
-}
-#line 1656 "Zend/zend_ini_scanner.c"
-yy111:
-               YYDEBUG(111, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(112, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy111;
-               }
-               if (yych <= '$') {
-                       if (yych <= '\r') {
-                               if (yych == '\n') goto yy113;
-                               if (yych <= '\f') goto yy96;
-                       } else {
-                               if (yych == '"') goto yy113;
-                               if (yych <= '#') goto yy96;
-                               goto yy118;
-                       }
-               } else {
-                       if (yych <= ';') {
-                               if (yych == '\'') goto yy113;
-                               if (yych <= ':') goto yy96;
-                       } else {
-                               if (yych <= '[') goto yy96;
-                               if (yych <= '\\') goto yy114;
-                               if (yych >= '^') goto yy96;
-                       }
-               }
-yy113:
-               YYDEBUG(113, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 554 "Zend/zend_ini_scanner.l"
-               { /* Get constant option value */
-       RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
-}
-#line 1693 "Zend/zend_ini_scanner.c"
-yy114:
-               YYDEBUG(114, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               goto yy96;
-yy115:
-               YYDEBUG(115, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-               YYDEBUG(116, *YYCURSOR);
-               if (yych <= '\f') {
-                       if (yych <= 0x08) goto yy117;
-                       if (yych <= '\t') goto yy115;
-                       if (yych <= '\n') goto yy128;
-               } else {
-                       if (yych <= '\r') goto yy129;
-                       if (yych == ' ') goto yy115;
-               }
-yy117:
-               YYDEBUG(117, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 425 "Zend/zend_ini_scanner.l"
-               { /* End of section */
-       BEGIN(INITIAL);
-       SCNG(lineno)++;
-       return ']';
-}
-#line 1723 "Zend/zend_ini_scanner.c"
-yy118:
-               YYDEBUG(118, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= '\\') {
-                       if (yych <= 0x00) goto yy119;
-                       if (yych <= '[') goto yy96;
-                       goto yy120;
-               } else {
-                       if (yych != '{') goto yy96;
-               }
-yy119:
-               YYDEBUG(119, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               if (yyaccept <= 1) {
-                       if (yyaccept == 0) {
-                               goto yy98;
-                       } else {
-                               goto yy110;
-                       }
-               } else {
-                       goto yy113;
-               }
-yy120:
-               YYDEBUG(120, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(121, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy120;
-               }
-               goto yy96;
-yy122:
-               YYDEBUG(122, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(123, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 449 "Zend/zend_ini_scanner.l"
-               { /* Variable start */
-       yy_push_state(ST_VARNAME);
-       return TC_DOLLAR_CURLY;
-}
-#line 1768 "Zend/zend_ini_scanner.c"
-yy124:
-               YYDEBUG(124, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(125, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy124;
-               }
-               goto yy130;
-yy126:
-               YYDEBUG(126, *YYCURSOR);
-               yyaccept = 1;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(127, *YYCURSOR);
-               if (yych <= '&') {
-                       if (yych <= '\r') {
-                               if (yych == '\n') goto yy110;
-                               if (yych <= '\f') goto yy96;
-                               goto yy110;
-                       } else {
-                               if (yych <= '"') {
-                                       if (yych <= '!') goto yy96;
-                                       goto yy110;
-                               } else {
-                                       if (yych == '$') goto yy118;
-                                       goto yy96;
-                               }
-                       }
-               } else {
-                       if (yych <= ':') {
-                               if (yych <= '\'') goto yy110;
-                               if (yych <= '/') goto yy96;
-                               if (yych <= '9') goto yy126;
-                               goto yy96;
-                       } else {
-                               if (yych <= '[') {
-                                       if (yych <= ';') goto yy110;
-                                       goto yy96;
-                               } else {
-                                       if (yych <= '\\') goto yy114;
-                                       if (yych <= ']') goto yy110;
-                                       goto yy96;
-                               }
-                       }
-               }
-yy128:
-               YYDEBUG(128, *YYCURSOR);
-               ++YYCURSOR;
-               goto yy117;
-yy129:
-               YYDEBUG(129, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy128;
-               goto yy117;
-yy130:
-               YYDEBUG(130, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(131, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 416 "Zend/zend_ini_scanner.l"
-               { /* Raw string */
-       /* Eat leading and trailing single quotes */
-       if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
-               SCNG(yy_text)++;
-               yyleng = yyleng - 2;
-       }
-       RETURN_TOKEN(TC_RAW, yytext, yyleng);
-}
-#line 1840 "Zend/zend_ini_scanner.c"
-       }
-/* *********************************** */
-yyc_ST_VALUE:
-       {
-               static const unsigned char yybm[] = {
-                        80,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  84,  64,  82,  82,  64,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        84,  80,  80,  82, 208,  82,  80,  16, 
-                        80,  80,  82,  82,  82,  82,  82,  82, 
-                       122, 122, 122, 122, 122, 122, 122, 122, 
-                       122, 122,  82,  80,  82,  80,  82,  82, 
-                        82, 114, 114, 114, 114, 114, 114, 114, 
-                       114, 114, 114, 114, 114, 114, 114, 114, 
-                       114, 114, 114, 114, 114, 114, 114, 114, 
-                       114, 114, 114,  82,  82,  82,  80, 114, 
-                        82, 114, 114, 114, 114, 114, 114, 114, 
-                       114, 114, 114, 114, 114, 114, 114, 114, 
-                       114, 114, 114, 114, 114, 114, 114, 114, 
-                       114, 114, 114,  82,  80,  82,  80,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-                        82,  82,  82,  82,  82,  82,  82,  82, 
-               };
-               YYDEBUG(132, *YYCURSOR);
-               YYFILL(6);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 4) {
-                       goto yy139;
-               }
-               switch (yych) {
-               case 0x00:      goto yy134;
-               case '\t':
-               case '\n':      goto yy142;
-               case '\r':      goto yy144;
-               case ' ':
-               case '!':
-               case '&':
-               case '(':
-               case ')':
-               case '^':
-               case '|':
-               case '~':       goto yy145;
-               case '"':       goto yy148;
-               case '$':       goto yy150;
-               case '\'':      goto yy151;
-               case '-':
-               case '.':       goto yy152;
-               case '0':
-               case '1':
-               case '2':
-               case '3':
-               case '4':
-               case '5':
-               case '6':
-               case '7':
-               case '8':
-               case '9':       goto yy153;
-               case ';':       goto yy156;
-               case '=':       goto yy158;
-               case 'A':
-               case 'B':
-               case 'C':
-               case 'D':
-               case 'E':
-               case 'G':
-               case 'H':
-               case 'I':
-               case 'J':
-               case 'K':
-               case 'L':
-               case 'M':
-               case 'P':
-               case 'Q':
-               case 'R':
-               case 'S':
-               case 'U':
-               case 'V':
-               case 'W':
-               case 'X':
-               case 'Z':
-               case '_':
-               case 'a':
-               case 'b':
-               case 'c':
-               case 'd':
-               case 'e':
-               case 'g':
-               case 'h':
-               case 'i':
-               case 'j':
-               case 'k':
-               case 'l':
-               case 'm':
-               case 'p':
-               case 'q':
-               case 'r':
-               case 's':
-               case 'u':
-               case 'v':
-               case 'w':
-               case 'x':
-               case 'z':       goto yy160;
-               case 'F':
-               case 'f':       goto yy163;
-               case 'N':
-               case 'n':       goto yy164;
-               case 'O':
-               case 'o':       goto yy165;
-               case 'T':
-               case 't':       goto yy166;
-               case 'Y':
-               case 'y':       goto yy167;
-               default:        goto yy136;
-               }
-yy134:
-               YYDEBUG(134, *YYCURSOR);
-               ++YYCURSOR;
-yy135:
-               YYDEBUG(135, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 650 "Zend/zend_ini_scanner.l"
-               { /* End of option value (if EOF is reached before EOL */
-       BEGIN(INITIAL);
-       return END_OF_LINE;
-}
-#line 1981 "Zend/zend_ini_scanner.c"
-yy136:
-               YYDEBUG(136, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy137:
-               YYDEBUG(137, *YYCURSOR);
-               if (yybm[0+yych] & 2) {
-                       goto yy136;
-               }
-               if (yych <= '"') goto yy138;
-               if (yych <= '$') goto yy168;
-yy138:
-               YYDEBUG(138, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 576 "Zend/zend_ini_scanner.l"
-               { /* Get everything else as option/offset value */
-       RETURN_TOKEN(TC_STRING, yytext, yyleng);
-}
-#line 2002 "Zend/zend_ini_scanner.c"
-yy139:
-               YYDEBUG(139, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-               YYDEBUG(140, *YYCURSOR);
-               if (yybm[0+yych] & 4) {
-                       goto yy139;
-               }
-               if (yych <= '\r') {
-                       if (yych <= 0x08) goto yy141;
-                       if (yych <= '\n') goto yy142;
-                       if (yych >= '\r') goto yy144;
-               } else {
-                       if (yych <= '"') {
-                               if (yych >= '"') goto yy148;
-                       } else {
-                               if (yych == ';') goto yy156;
-                       }
-               }
-yy141:
-               YYDEBUG(141, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 630 "Zend/zend_ini_scanner.l"
-               {
-       RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);
-}
-#line 2030 "Zend/zend_ini_scanner.c"
-yy142:
-               YYDEBUG(142, *YYCURSOR);
-               ++YYCURSOR;
-yy143:
-               YYDEBUG(143, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 548 "Zend/zend_ini_scanner.l"
-               { /* End of option value */
-       BEGIN(INITIAL);
-       SCNG(lineno)++;
-       return END_OF_LINE;
-}
-#line 2043 "Zend/zend_ini_scanner.c"
-yy144:
-               YYDEBUG(144, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy142;
-               goto yy143;
-yy145:
-               YYDEBUG(145, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(146, *YYCURSOR);
-               if (yych == '\t') goto yy145;
-               if (yych == ' ') goto yy145;
-               YYDEBUG(147, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 566 "Zend/zend_ini_scanner.l"
-               { /* Boolean operators */
-       return yytext[0];
-}
-#line 2063 "Zend/zend_ini_scanner.c"
-yy148:
-               YYDEBUG(148, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(149, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 584 "Zend/zend_ini_scanner.l"
-               { /* Double quoted '"' string start */
-       yy_push_state(ST_DOUBLE_QUOTES);
-       return '"';
-}
-#line 2074 "Zend/zend_ini_scanner.c"
-yy150:
-               YYDEBUG(150, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '\\') {
-                       if (yych <= 0x00) goto yy135;
-                       if (yych <= '[') goto yy136;
-                       goto yy170;
-               } else {
-                       if (yych == '{') goto yy171;
-                       goto yy136;
-               }
-yy151:
-               YYDEBUG(151, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 64) {
-                       goto yy173;
-               }
-               goto yy135;
-yy152:
-               YYDEBUG(152, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '/') goto yy137;
-               if (yych <= '9') goto yy175;
-               goto yy137;
-yy153:
-               YYDEBUG(153, *YYCURSOR);
-               yyaccept = 1;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(154, *YYCURSOR);
-               if (yybm[0+yych] & 8) {
-                       goto yy153;
-               }
-               if (yych <= '-') {
-                       if (yych <= 0x1F) {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy155;
-                                       if (yych <= 0x08) goto yy136;
-                               } else {
-                                       if (yych != '\r') goto yy136;
-                               }
-                       } else {
-                               if (yych <= '$') {
-                                       if (yych <= '"') goto yy155;
-                                       if (yych <= '#') goto yy136;
-                                       goto yy168;
-                               } else {
-                                       if (yych <= '%') goto yy136;
-                                       if (yych >= '*') goto yy136;
-                               }
-                       }
-               } else {
-                       if (yych <= ']') {
-                               if (yych <= ';') {
-                                       if (yych <= '.') goto yy175;
-                                       if (yych <= ':') goto yy136;
-                               } else {
-                                       if (yych != '=') goto yy136;
-                               }
-                       } else {
-                               if (yych <= '|') {
-                                       if (yych <= '^') goto yy155;
-                                       if (yych <= '{') goto yy136;
-                               } else {
-                                       if (yych != '~') goto yy136;
-                               }
-                       }
-               }
-yy155:
-               YYDEBUG(155, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 558 "Zend/zend_ini_scanner.l"
-               { /* Get number option value as string */
-       RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
-}
-#line 2152 "Zend/zend_ini_scanner.c"
-yy156:
-               YYDEBUG(156, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-               YYDEBUG(157, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy156;
-               }
-               if (yych <= '\n') goto yy177;
-               goto yy179;
-yy158:
-               YYDEBUG(158, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(159, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 570 "Zend/zend_ini_scanner.l"
-               { /* Make = used in option value to trigger error */
-       yyless(0);
-       BEGIN(INITIAL);
-       return END_OF_LINE;
-}
-#line 2175 "Zend/zend_ini_scanner.c"
-yy160:
-               YYDEBUG(160, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(161, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy160;
-               }
-               if (yych <= ')') {
-                       if (yych <= '\r') {
-                               if (yych <= 0x08) {
-                                       if (yych >= 0x01) goto yy136;
-                               } else {
-                                       if (yych <= '\n') goto yy162;
-                                       if (yych <= '\f') goto yy136;
-                               }
-                       } else {
-                               if (yych <= '#') {
-                                       if (yych <= 0x1F) goto yy136;
-                                       if (yych >= '#') goto yy136;
-                               } else {
-                                       if (yych <= '$') goto yy168;
-                                       if (yych <= '%') goto yy136;
-                               }
-                       }
-               } else {
-                       if (yych <= ']') {
-                               if (yych <= ';') {
-                                       if (yych <= ':') goto yy136;
-                               } else {
-                                       if (yych != '=') goto yy136;
-                               }
-                       } else {
-                               if (yych <= '|') {
-                                       if (yych <= '^') goto yy162;
-                                       if (yych <= '{') goto yy136;
-                               } else {
-                                       if (yych != '~') goto yy136;
-                               }
-                       }
-               }
-yy162:
-               YYDEBUG(162, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 554 "Zend/zend_ini_scanner.l"
-               { /* Get constant option value */
-       RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
-}
-#line 2226 "Zend/zend_ini_scanner.c"
-yy163:
-               YYDEBUG(163, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '<') {
-                       if (yych <= '"') {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy162;
-                                       if (yych <= 0x08) goto yy137;
-                                       goto yy162;
-                               } else {
-                                       if (yych == '\r') goto yy162;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy162;
-                               }
-                       } else {
-                               if (yych <= '/') {
-                                       if (yych <= '%') goto yy137;
-                                       if (yych <= ')') goto yy162;
-                                       goto yy137;
-                               } else {
-                                       if (yych <= '9') goto yy160;
-                                       if (yych == ';') goto yy162;
-                                       goto yy137;
-                               }
-                       }
-               } else {
-                       if (yych <= '_') {
-                               if (yych <= 'A') {
-                                       if (yych <= '=') goto yy162;
-                                       if (yych <= '@') goto yy137;
-                                       goto yy180;
-                               } else {
-                                       if (yych <= 'Z') goto yy160;
-                                       if (yych <= ']') goto yy137;
-                                       if (yych <= '^') goto yy162;
-                                       goto yy160;
-                               }
-                       } else {
-                               if (yych <= '{') {
-                                       if (yych <= '`') goto yy137;
-                                       if (yych <= 'a') goto yy180;
-                                       if (yych <= 'z') goto yy160;
-                                       goto yy137;
-                               } else {
-                                       if (yych == '}') goto yy137;
-                                       if (yych <= '~') goto yy162;
-                                       goto yy137;
-                               }
-                       }
-               }
-yy164:
-               YYDEBUG(164, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 'N') {
-                       if (yych <= '%') {
-                               if (yych <= '\f') {
-                                       if (yych <= 0x00) goto yy162;
-                                       if (yych <= 0x08) goto yy137;
-                                       if (yych <= '\n') goto yy162;
-                                       goto yy137;
-                               } else {
-                                       if (yych <= '\r') goto yy162;
-                                       if (yych <= 0x1F) goto yy137;
-                                       if (yych <= '"') goto yy162;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= ':') {
-                                       if (yych <= ')') goto yy162;
-                                       if (yych <= '/') goto yy137;
-                                       if (yych <= '9') goto yy160;
-                                       goto yy137;
-                               } else {
-                                       if (yych <= '<') {
-                                               if (yych <= ';') goto yy162;
-                                               goto yy137;
-                                       } else {
-                                               if (yych <= '=') goto yy162;
-                                               if (yych <= '@') goto yy137;
-                                               goto yy160;
-                                       }
-                               }
-                       }
-               } else {
-                       if (yych <= 'n') {
-                               if (yych <= 'Z') {
-                                       if (yych <= 'O') goto yy181;
-                                       if (yych == 'U') goto yy183;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= '^') {
-                                               if (yych <= ']') goto yy137;
-                                               goto yy162;
-                                       } else {
-                                               if (yych == '`') goto yy137;
-                                               goto yy160;
-                                       }
-                               }
-                       } else {
-                               if (yych <= 'z') {
-                                       if (yych <= 'o') goto yy181;
-                                       if (yych == 'u') goto yy183;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= '|') {
-                                               if (yych <= '{') goto yy137;
-                                               goto yy162;
-                                       } else {
-                                               if (yych == '~') goto yy162;
-                                               goto yy137;
-                                       }
-                               }
-                       }
-               }
-yy165:
-               YYDEBUG(165, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 'E') {
-                       if (yych <= '%') {
-                               if (yych <= '\f') {
-                                       if (yych <= 0x00) goto yy162;
-                                       if (yych <= 0x08) goto yy137;
-                                       if (yych <= '\n') goto yy162;
-                                       goto yy137;
-                               } else {
-                                       if (yych <= '\r') goto yy162;
-                                       if (yych <= 0x1F) goto yy137;
-                                       if (yych <= '"') goto yy162;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= ':') {
-                                       if (yych <= ')') goto yy162;
-                                       if (yych <= '/') goto yy137;
-                                       if (yych <= '9') goto yy160;
-                                       goto yy137;
-                               } else {
-                                       if (yych <= '<') {
-                                               if (yych <= ';') goto yy162;
-                                               goto yy137;
-                                       } else {
-                                               if (yych <= '=') goto yy162;
-                                               if (yych <= '@') goto yy137;
-                                               goto yy160;
-                                       }
-                               }
-                       }
-               } else {
-                       if (yych <= 'e') {
-                               if (yych <= 'Z') {
-                                       if (yych <= 'F') goto yy184;
-                                       if (yych == 'N') goto yy185;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= '^') {
-                                               if (yych <= ']') goto yy137;
-                                               goto yy162;
-                                       } else {
-                                               if (yych == '`') goto yy137;
-                                               goto yy160;
-                                       }
-                               }
-                       } else {
-                               if (yych <= 'z') {
-                                       if (yych <= 'f') goto yy184;
-                                       if (yych == 'n') goto yy185;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= '|') {
-                                               if (yych <= '{') goto yy137;
-                                               goto yy162;
-                                       } else {
-                                               if (yych == '~') goto yy162;
-                                               goto yy137;
-                                       }
-                               }
-                       }
-               }
-yy166:
-               YYDEBUG(166, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '=') {
-                       if (yych <= '"') {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy162;
-                                       if (yych <= 0x08) goto yy137;
-                                       goto yy162;
-                               } else {
-                                       if (yych == '\r') goto yy162;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy162;
-                               }
-                       } else {
-                               if (yych <= '9') {
-                                       if (yych <= '%') goto yy137;
-                                       if (yych <= ')') goto yy162;
-                                       if (yych <= '/') goto yy137;
-                                       goto yy160;
-                               } else {
-                                       if (yych == ';') goto yy162;
-                                       if (yych <= '<') goto yy137;
-                                       goto yy162;
-                               }
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= 'Z') {
-                                       if (yych <= '@') goto yy137;
-                                       if (yych == 'R') goto yy187;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= ']') goto yy137;
-                                       if (yych <= '^') goto yy162;
-                                       if (yych <= '_') goto yy160;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= '{') {
-                                       if (yych == 'r') goto yy187;
-                                       if (yych <= 'z') goto yy160;
-                                       goto yy137;
-                               } else {
-                                       if (yych == '}') goto yy137;
-                                       if (yych <= '~') goto yy162;
-                                       goto yy137;
-                               }
-                       }
-               }
-yy167:
-               YYDEBUG(167, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '=') {
-                       if (yych <= '"') {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy162;
-                                       if (yych <= 0x08) goto yy137;
-                                       goto yy162;
-                               } else {
-                                       if (yych == '\r') goto yy162;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy162;
-                               }
-                       } else {
-                               if (yych <= '9') {
-                                       if (yych <= '%') goto yy137;
-                                       if (yych <= ')') goto yy162;
-                                       if (yych <= '/') goto yy137;
-                                       goto yy160;
-                               } else {
-                                       if (yych == ';') goto yy162;
-                                       if (yych <= '<') goto yy137;
-                                       goto yy162;
-                               }
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= 'Z') {
-                                       if (yych <= '@') goto yy137;
-                                       if (yych == 'E') goto yy188;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= ']') goto yy137;
-                                       if (yych <= '^') goto yy162;
-                                       if (yych <= '_') goto yy160;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= '{') {
-                                       if (yych == 'e') goto yy188;
-                                       if (yych <= 'z') goto yy160;
-                                       goto yy137;
-                               } else {
-                                       if (yych == '}') goto yy137;
-                                       if (yych <= '~') goto yy162;
-                                       goto yy137;
-                               }
-                       }
-               }
-yy168:
-               YYDEBUG(168, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= '\\') {
-                       if (yych <= 0x00) goto yy169;
-                       if (yych <= '[') goto yy136;
-                       goto yy170;
-               } else {
-                       if (yych != '{') goto yy136;
-               }
-yy169:
-               YYDEBUG(169, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               if (yyaccept <= 2) {
-                       if (yyaccept <= 1) {
-                               if (yyaccept == 0) {
-                                       goto yy138;
-                               } else {
-                                       goto yy155;
-                               }
-                       } else {
-                               goto yy162;
-                       }
-               } else {
-                       if (yyaccept <= 4) {
-                               if (yyaccept == 3) {
-                                       goto yy182;
-                               } else {
-                                       goto yy186;
-                               }
-                       } else {
-                               goto yy203;
-                       }
-               }
-yy170:
-               YYDEBUG(170, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 128) {
-                       goto yy189;
-               }
-               goto yy136;
-yy171:
-               YYDEBUG(171, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(172, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 449 "Zend/zend_ini_scanner.l"
-               { /* Variable start */
-       yy_push_state(ST_VARNAME);
-       return TC_DOLLAR_CURLY;
-}
-#line 2565 "Zend/zend_ini_scanner.c"
-yy173:
-               YYDEBUG(173, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(174, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy173;
-               }
-               goto yy191;
-yy175:
-               YYDEBUG(175, *YYCURSOR);
-               yyaccept = 1;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(176, *YYCURSOR);
-               if (yych <= '/') {
-                       if (yych <= 0x1F) {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy155;
-                                       if (yych <= 0x08) goto yy136;
-                                       goto yy155;
-                               } else {
-                                       if (yych == '\r') goto yy155;
-                                       goto yy136;
-                               }
-                       } else {
-                               if (yych <= '$') {
-                                       if (yych <= '"') goto yy155;
-                                       if (yych <= '#') goto yy136;
-                                       goto yy168;
-                               } else {
-                                       if (yych <= '%') goto yy136;
-                                       if (yych <= ')') goto yy155;
-                                       goto yy136;
-                               }
-                       }
-               } else {
-                       if (yych <= ']') {
-                               if (yych <= ';') {
-                                       if (yych <= '9') goto yy175;
-                                       if (yych <= ':') goto yy136;
-                                       goto yy155;
-                               } else {
-                                       if (yych == '=') goto yy155;
-                                       goto yy136;
-                               }
-                       } else {
-                               if (yych <= '|') {
-                                       if (yych <= '^') goto yy155;
-                                       if (yych <= '{') goto yy136;
-                                       goto yy155;
-                               } else {
-                                       if (yych == '~') goto yy155;
-                                       goto yy136;
-                               }
-                       }
-               }
-yy177:
-               YYDEBUG(177, *YYCURSOR);
-               ++YYCURSOR;
-yy178:
-               YYDEBUG(178, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 644 "Zend/zend_ini_scanner.l"
-               { /* Comment */
-       BEGIN(INITIAL);
-       SCNG(lineno)++;
-       return END_OF_LINE;
-}
-#line 2637 "Zend/zend_ini_scanner.c"
-yy179:
-               YYDEBUG(179, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy177;
-               goto yy178;
-yy180:
-               YYDEBUG(180, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '=') {
-                       if (yych <= '"') {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy162;
-                                       if (yych <= 0x08) goto yy137;
-                                       goto yy162;
-                               } else {
-                                       if (yych == '\r') goto yy162;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy162;
-                               }
-                       } else {
-                               if (yych <= '9') {
-                                       if (yych <= '%') goto yy137;
-                                       if (yych <= ')') goto yy162;
-                                       if (yych <= '/') goto yy137;
-                                       goto yy160;
-                               } else {
-                                       if (yych == ';') goto yy162;
-                                       if (yych <= '<') goto yy137;
-                                       goto yy162;
-                               }
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= 'Z') {
-                                       if (yych <= '@') goto yy137;
-                                       if (yych == 'L') goto yy193;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= ']') goto yy137;
-                                       if (yych <= '^') goto yy162;
-                                       if (yych <= '_') goto yy160;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= '{') {
-                                       if (yych == 'l') goto yy193;
-                                       if (yych <= 'z') goto yy160;
-                                       goto yy137;
-                               } else {
-                                       if (yych == '}') goto yy137;
-                                       if (yych <= '~') goto yy162;
-                                       goto yy137;
-                               }
-                       }
-               }
-yy181:
-               YYDEBUG(181, *YYCURSOR);
-               yyaccept = 3;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '<') {
-                       if (yych <= ' ') {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy182;
-                                       if (yych <= 0x08) goto yy137;
-                                       if (yych <= '\t') goto yy194;
-                               } else {
-                                       if (yych == '\r') goto yy182;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy194;
-                               }
-                       } else {
-                               if (yych <= '/') {
-                                       if (yych <= '"') goto yy182;
-                                       if (yych <= '%') goto yy137;
-                                       if (yych >= '*') goto yy137;
-                               } else {
-                                       if (yych <= '9') goto yy160;
-                                       if (yych != ';') goto yy137;
-                               }
-                       }
-               } else {
-                       if (yych <= '_') {
-                               if (yych <= 'N') {
-                                       if (yych <= '=') goto yy182;
-                                       if (yych <= '@') goto yy137;
-                                       if (yych <= 'M') goto yy160;
-                                       goto yy196;
-                               } else {
-                                       if (yych <= 'Z') goto yy160;
-                                       if (yych <= ']') goto yy137;
-                                       if (yych >= '_') goto yy160;
-                               }
-                       } else {
-                               if (yych <= 'z') {
-                                       if (yych <= '`') goto yy137;
-                                       if (yych == 'n') goto yy196;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= '|') {
-                                               if (yych <= '{') goto yy137;
-                                       } else {
-                                               if (yych != '~') goto yy137;
-                                       }
-                               }
-                       }
-               }
-yy182:
-               YYDEBUG(182, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 473 "Zend/zend_ini_scanner.l"
-               { /* FALSE value (when used outside option value/offset this causes parse error!)*/
-       RETURN_TOKEN(BOOL_FALSE, "", 0);
-}
-#line 2752 "Zend/zend_ini_scanner.c"
-yy183:
-               YYDEBUG(183, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '=') {
-                       if (yych <= '"') {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy162;
-                                       if (yych <= 0x08) goto yy137;
-                                       goto yy162;
-                               } else {
-                                       if (yych == '\r') goto yy162;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy162;
-                               }
-                       } else {
-                               if (yych <= '9') {
-                                       if (yych <= '%') goto yy137;
-                                       if (yych <= ')') goto yy162;
-                                       if (yych <= '/') goto yy137;
-                                       goto yy160;
-                               } else {
-                                       if (yych == ';') goto yy162;
-                                       if (yych <= '<') goto yy137;
-                                       goto yy162;
-                               }
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= 'Z') {
-                                       if (yych <= '@') goto yy137;
-                                       if (yych == 'L') goto yy197;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= ']') goto yy137;
-                                       if (yych <= '^') goto yy162;
-                                       if (yych <= '_') goto yy160;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= '{') {
-                                       if (yych == 'l') goto yy197;
-                                       if (yych <= 'z') goto yy160;
-                                       goto yy137;
-                               } else {
-                                       if (yych == '}') goto yy137;
-                                       if (yych <= '~') goto yy162;
-                                       goto yy137;
-                               }
-                       }
-               }
-yy184:
-               YYDEBUG(184, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '=') {
-                       if (yych <= '"') {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy162;
-                                       if (yych <= 0x08) goto yy137;
-                                       goto yy162;
-                               } else {
-                                       if (yych == '\r') goto yy162;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy162;
-                               }
-                       } else {
-                               if (yych <= '9') {
-                                       if (yych <= '%') goto yy137;
-                                       if (yych <= ')') goto yy162;
-                                       if (yych <= '/') goto yy137;
-                                       goto yy160;
-                               } else {
-                                       if (yych == ';') goto yy162;
-                                       if (yych <= '<') goto yy137;
-                                       goto yy162;
-                               }
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= 'Z') {
-                                       if (yych <= '@') goto yy137;
-                                       if (yych == 'F') goto yy198;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= ']') goto yy137;
-                                       if (yych <= '^') goto yy162;
-                                       if (yych <= '_') goto yy160;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= '{') {
-                                       if (yych == 'f') goto yy198;
-                                       if (yych <= 'z') goto yy160;
-                                       goto yy137;
-                               } else {
-                                       if (yych == '}') goto yy137;
-                                       if (yych <= '~') goto yy162;
-                                       goto yy137;
-                               }
-                       }
-               }
-yy185:
-               YYDEBUG(185, *YYCURSOR);
-               yyaccept = 4;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy160;
-               }
-               if (yych <= ')') {
-                       if (yych <= '\f') {
-                               if (yych <= 0x08) {
-                                       if (yych >= 0x01) goto yy137;
-                               } else {
-                                       if (yych <= '\t') goto yy199;
-                                       if (yych >= '\v') goto yy137;
-                               }
-                       } else {
-                               if (yych <= ' ') {
-                                       if (yych <= '\r') goto yy186;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy199;
-                               } else {
-                                       if (yych <= '"') goto yy186;
-                                       if (yych <= '%') goto yy137;
-                               }
-                       }
-               } else {
-                       if (yych <= ']') {
-                               if (yych <= ';') {
-                                       if (yych <= ':') goto yy137;
-                               } else {
-                                       if (yych != '=') goto yy137;
-                               }
-                       } else {
-                               if (yych <= '|') {
-                                       if (yych <= '^') goto yy186;
-                                       if (yych <= '{') goto yy137;
-                               } else {
-                                       if (yych != '~') goto yy137;
-                               }
-                       }
-               }
-yy186:
-               YYDEBUG(186, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 469 "Zend/zend_ini_scanner.l"
-               { /* TRUE value (when used outside option value/offset this causes parse error!) */
-       RETURN_TOKEN(BOOL_TRUE, "1", 1);
-}
-#line 2903 "Zend/zend_ini_scanner.c"
-yy187:
-               YYDEBUG(187, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '=') {
-                       if (yych <= '"') {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy162;
-                                       if (yych <= 0x08) goto yy137;
-                                       goto yy162;
-                               } else {
-                                       if (yych == '\r') goto yy162;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy162;
-                               }
-                       } else {
-                               if (yych <= '9') {
-                                       if (yych <= '%') goto yy137;
-                                       if (yych <= ')') goto yy162;
-                                       if (yych <= '/') goto yy137;
-                                       goto yy160;
-                               } else {
-                                       if (yych == ';') goto yy162;
-                                       if (yych <= '<') goto yy137;
-                                       goto yy162;
-                               }
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= 'Z') {
-                                       if (yych <= '@') goto yy137;
-                                       if (yych == 'U') goto yy201;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= ']') goto yy137;
-                                       if (yych <= '^') goto yy162;
-                                       if (yych <= '_') goto yy160;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= '{') {
-                                       if (yych == 'u') goto yy201;
-                                       if (yych <= 'z') goto yy160;
-                                       goto yy137;
-                               } else {
-                                       if (yych == '}') goto yy137;
-                                       if (yych <= '~') goto yy162;
-                                       goto yy137;
-                               }
-                       }
-               }
-yy188:
-               YYDEBUG(188, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '=') {
-                       if (yych <= '"') {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy162;
-                                       if (yych <= 0x08) goto yy137;
-                                       goto yy162;
-                               } else {
-                                       if (yych == '\r') goto yy162;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy162;
-                               }
-                       } else {
-                               if (yych <= '9') {
-                                       if (yych <= '%') goto yy137;
-                                       if (yych <= ')') goto yy162;
-                                       if (yych <= '/') goto yy137;
-                                       goto yy160;
-                               } else {
-                                       if (yych == ';') goto yy162;
-                                       if (yych <= '<') goto yy137;
-                                       goto yy162;
-                               }
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= 'Z') {
-                                       if (yych <= '@') goto yy137;
-                                       if (yych == 'S') goto yy185;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= ']') goto yy137;
-                                       if (yych <= '^') goto yy162;
-                                       if (yych <= '_') goto yy160;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= '{') {
-                                       if (yych == 's') goto yy185;
-                                       if (yych <= 'z') goto yy160;
-                                       goto yy137;
-                               } else {
-                                       if (yych == '}') goto yy137;
-                                       if (yych <= '~') goto yy162;
-                                       goto yy137;
-                               }
-                       }
-               }
-yy189:
-               YYDEBUG(189, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(190, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy189;
-               }
-               if (yych <= 0x00) goto yy138;
-               if (yych == '\\') goto yy170;
-               goto yy136;
-yy191:
-               YYDEBUG(191, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(192, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 416 "Zend/zend_ini_scanner.l"
-               { /* Raw string */
-       /* Eat leading and trailing single quotes */
-       if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
-               SCNG(yy_text)++;
-               yyleng = yyleng - 2;
-       }
-       RETURN_TOKEN(TC_RAW, yytext, yyleng);
-}
-#line 3032 "Zend/zend_ini_scanner.c"
-yy193:
-               YYDEBUG(193, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '=') {
-                       if (yych <= '"') {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy162;
-                                       if (yych <= 0x08) goto yy137;
-                                       goto yy162;
-                               } else {
-                                       if (yych == '\r') goto yy162;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy162;
-                               }
-                       } else {
-                               if (yych <= '9') {
-                                       if (yych <= '%') goto yy137;
-                                       if (yych <= ')') goto yy162;
-                                       if (yych <= '/') goto yy137;
-                                       goto yy160;
-                               } else {
-                                       if (yych == ';') goto yy162;
-                                       if (yych <= '<') goto yy137;
-                                       goto yy162;
-                               }
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= 'Z') {
-                                       if (yych <= '@') goto yy137;
-                                       if (yych == 'S') goto yy196;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= ']') goto yy137;
-                                       if (yych <= '^') goto yy162;
-                                       if (yych <= '_') goto yy160;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= '{') {
-                                       if (yych == 's') goto yy196;
-                                       if (yych <= 'z') goto yy160;
-                                       goto yy137;
-                               } else {
-                                       if (yych == '}') goto yy137;
-                                       if (yych <= '~') goto yy162;
-                                       goto yy137;
-                               }
-                       }
-               }
-yy194:
-               YYDEBUG(194, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(195, *YYCURSOR);
-               if (yych == '\t') goto yy194;
-               if (yych == ' ') goto yy194;
-               goto yy182;
-yy196:
-               YYDEBUG(196, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '=') {
-                       if (yych <= '"') {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy162;
-                                       if (yych <= 0x08) goto yy137;
-                                       goto yy162;
-                               } else {
-                                       if (yych == '\r') goto yy162;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy162;
-                               }
-                       } else {
-                               if (yych <= '9') {
-                                       if (yych <= '%') goto yy137;
-                                       if (yych <= ')') goto yy162;
-                                       if (yych <= '/') goto yy137;
-                                       goto yy160;
-                               } else {
-                                       if (yych == ';') goto yy162;
-                                       if (yych <= '<') goto yy137;
-                                       goto yy162;
-                               }
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= 'Z') {
-                                       if (yych <= '@') goto yy137;
-                                       if (yych == 'E') goto yy198;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= ']') goto yy137;
-                                       if (yych <= '^') goto yy162;
-                                       if (yych <= '_') goto yy160;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= '{') {
-                                       if (yych == 'e') goto yy198;
-                                       if (yych <= 'z') goto yy160;
-                                       goto yy137;
-                               } else {
-                                       if (yych == '}') goto yy137;
-                                       if (yych <= '~') goto yy162;
-                                       goto yy137;
-                               }
-                       }
-               }
-yy197:
-               YYDEBUG(197, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '=') {
-                       if (yych <= '"') {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy162;
-                                       if (yych <= 0x08) goto yy137;
-                                       goto yy162;
-                               } else {
-                                       if (yych == '\r') goto yy162;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy162;
-                               }
-                       } else {
-                               if (yych <= '9') {
-                                       if (yych <= '%') goto yy137;
-                                       if (yych <= ')') goto yy162;
-                                       if (yych <= '/') goto yy137;
-                                       goto yy160;
-                               } else {
-                                       if (yych == ';') goto yy162;
-                                       if (yych <= '<') goto yy137;
-                                       goto yy162;
-                               }
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= 'Z') {
-                                       if (yych <= '@') goto yy137;
-                                       if (yych == 'L') goto yy202;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= ']') goto yy137;
-                                       if (yych <= '^') goto yy162;
-                                       if (yych <= '_') goto yy160;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= '{') {
-                                       if (yych == 'l') goto yy202;
-                                       if (yych <= 'z') goto yy160;
-                                       goto yy137;
-                               } else {
-                                       if (yych == '}') goto yy137;
-                                       if (yych <= '~') goto yy162;
-                                       goto yy137;
-                               }
-                       }
-               }
-yy198:
-               YYDEBUG(198, *YYCURSOR);
-               yyaccept = 3;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy160;
-               }
-               if (yych <= ')') {
-                       if (yych <= '\f') {
-                               if (yych <= 0x08) {
-                                       if (yych <= 0x00) goto yy182;
-                                       goto yy137;
-                               } else {
-                                       if (yych <= '\t') goto yy194;
-                                       if (yych <= '\n') goto yy182;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= ' ') {
-                                       if (yych <= '\r') goto yy182;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy194;
-                               } else {
-                                       if (yych <= '"') goto yy182;
-                                       if (yych <= '%') goto yy137;
-                                       goto yy182;
-                               }
-                       }
-               } else {
-                       if (yych <= ']') {
-                               if (yych <= ';') {
-                                       if (yych <= ':') goto yy137;
-                                       goto yy182;
-                               } else {
-                                       if (yych == '=') goto yy182;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= '|') {
-                                       if (yych <= '^') goto yy182;
-                                       if (yych <= '{') goto yy137;
-                                       goto yy182;
-                               } else {
-                                       if (yych == '~') goto yy182;
-                                       goto yy137;
-                               }
-                       }
-               }
-yy199:
-               YYDEBUG(199, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(200, *YYCURSOR);
-               if (yych == '\t') goto yy199;
-               if (yych == ' ') goto yy199;
-               goto yy186;
-yy201:
-               YYDEBUG(201, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '=') {
-                       if (yych <= '"') {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy162;
-                                       if (yych <= 0x08) goto yy137;
-                                       goto yy162;
-                               } else {
-                                       if (yych == '\r') goto yy162;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy162;
-                               }
-                       } else {
-                               if (yych <= '9') {
-                                       if (yych <= '%') goto yy137;
-                                       if (yych <= ')') goto yy162;
-                                       if (yych <= '/') goto yy137;
-                                       goto yy160;
-                               } else {
-                                       if (yych == ';') goto yy162;
-                                       if (yych <= '<') goto yy137;
-                                       goto yy162;
-                               }
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= 'Z') {
-                                       if (yych <= '@') goto yy137;
-                                       if (yych == 'E') goto yy185;
-                                       goto yy160;
-                               } else {
-                                       if (yych <= ']') goto yy137;
-                                       if (yych <= '^') goto yy162;
-                                       if (yych <= '_') goto yy160;
-                                       goto yy137;
-                               }
-                       } else {
-                               if (yych <= '{') {
-                                       if (yych == 'e') goto yy185;
-                                       if (yych <= 'z') goto yy160;
-                                       goto yy137;
-                               } else {
-                                       if (yych == '}') goto yy137;
-                                       if (yych <= '~') goto yy162;
-                                       goto yy137;
-                               }
-                       }
-               }
-yy202:
-               YYDEBUG(202, *YYCURSOR);
-               yyaccept = 5;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy160;
-               }
-               if (yych <= ')') {
-                       if (yych <= '\f') {
-                               if (yych <= 0x08) {
-                                       if (yych >= 0x01) goto yy137;
-                               } else {
-                                       if (yych <= '\t') goto yy204;
-                                       if (yych >= '\v') goto yy137;
-                               }
-                       } else {
-                               if (yych <= ' ') {
-                                       if (yych <= '\r') goto yy203;
-                                       if (yych <= 0x1F) goto yy137;
-                                       goto yy204;
-                               } else {
-                                       if (yych <= '"') goto yy203;
-                                       if (yych <= '%') goto yy137;
-                               }
-                       }
-               } else {
-                       if (yych <= ']') {
-                               if (yych <= ';') {
-                                       if (yych <= ':') goto yy137;
-                               } else {
-                                       if (yych != '=') goto yy137;
-                               }
-                       } else {
-                               if (yych <= '|') {
-                                       if (yych <= '^') goto yy203;
-                                       if (yych <= '{') goto yy137;
-                               } else {
-                                       if (yych != '~') goto yy137;
-                               }
-                       }
-               }
-yy203:
-               YYDEBUG(203, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 477 "Zend/zend_ini_scanner.l"
-               {
-       RETURN_TOKEN(NULL_NULL, "", 0);
-}
-#line 3351 "Zend/zend_ini_scanner.c"
-yy204:
-               YYDEBUG(204, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(205, *YYCURSOR);
-               if (yych == '\t') goto yy204;
-               if (yych == ' ') goto yy204;
-               goto yy203;
-       }
-/* *********************************** */
-yyc_ST_SECTION_RAW:
-       {
-               static const unsigned char yybm[] = {
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64, 192,   0,  64,  64,   0,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                       192,  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,   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,  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(206, *YYCURSOR);
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 64) {
-                       goto yy208;
-               }
-               if (yych <= '\r') goto yy211;
-               goto yy213;
-yy208:
-               YYDEBUG(208, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(209, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy208;
-               }
-               YYDEBUG(210, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 544 "Zend/zend_ini_scanner.l"
-               { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
-       RETURN_TOKEN(TC_RAW, yytext, yyleng);
-}
-#line 3422 "Zend/zend_ini_scanner.c"
-yy211:
-               YYDEBUG(211, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(212, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 655 "Zend/zend_ini_scanner.l"
-               {
-       return 0;
-}
-#line 3432 "Zend/zend_ini_scanner.c"
-yy213:
-               YYDEBUG(213, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-               YYDEBUG(214, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy213;
-               }
-               if (yych <= 0x08) goto yy215;
-               if (yych <= '\n') goto yy216;
-               if (yych == '\r') goto yy217;
-yy215:
-               YYDEBUG(215, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 425 "Zend/zend_ini_scanner.l"
-               { /* End of section */
-       BEGIN(INITIAL);
-       SCNG(lineno)++;
-       return ']';
-}
-#line 3454 "Zend/zend_ini_scanner.c"
-yy216:
-               YYDEBUG(216, *YYCURSOR);
-               ++YYCURSOR;
-               goto yy215;
-yy217:
-               YYDEBUG(217, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy216;
-               goto yy215;
-       }
-/* *********************************** */
-yyc_ST_DOUBLE_QUOTES:
-       {
-               static const unsigned char yybm[] = {
-                         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,   0,   0,   0,   0,   0,   0,   0, 
-                       128,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-               };
-               YYDEBUG(218, *YYCURSOR);
-               YYFILL(2);
-               yych = *YYCURSOR;
-               if (yych == '"') goto yy222;
-               if (yych == '$') goto yy225;
-               YYDEBUG(220, *YYCURSOR);
-               ++YYCURSOR;
-yy221:
-               YYDEBUG(221, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 594 "Zend/zend_ini_scanner.l"
-               { /* Escape double quoted string contents */
-       if (YYCURSOR > YYLIMIT) {
-               return 0;
-       }
-
-       while (YYCURSOR < YYLIMIT) {
-               switch (*YYCURSOR++) {
-                       case '"':
-                               if (YYCURSOR < YYLIMIT && YYCURSOR[-2] == '\\' && *YYCURSOR != '\r' && *YYCURSOR != '\n') {
-                                       continue;
-                               }
-                               break;
-                       case '$':
-                               if (*YYCURSOR == '{') {
-                                       break;
-                               }
-                               continue;
-                       case '\\':
-                               if (YYCURSOR < YYLIMIT && *YYCURSOR != '"') {
-                                       YYCURSOR++;
-                               }
-                               /* fall through */
-                       default:
-                               continue;
-               }
-
-               YYCURSOR--;
-               break;
-       }
-
-       yyleng = YYCURSOR - SCNG(yy_text);
-
-       zend_ini_escape_string(ini_lval, yytext, yyleng, '"');
-       return TC_QUOTED_STRING;
-}
-#line 3548 "Zend/zend_ini_scanner.c"
-yy222:
-               YYDEBUG(222, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(223, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy222;
-               }
-               YYDEBUG(224, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 589 "Zend/zend_ini_scanner.l"
-               { /* Double quoted '"' string ends */
-       yy_pop_state();
-       return '"';
-}
-#line 3565 "Zend/zend_ini_scanner.c"
-yy225:
-               YYDEBUG(225, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '{') goto yy221;
-               YYDEBUG(226, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(227, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 449 "Zend/zend_ini_scanner.l"
-               { /* Variable start */
-       yy_push_state(ST_VARNAME);
-       return TC_DOLLAR_CURLY;
-}
-#line 3579 "Zend/zend_ini_scanner.c"
-       }
-/* *********************************** */
-yyc_ST_VARNAME:
-       {
-               static const unsigned char yybm[] = {
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128,   0,   0, 128, 128,   0, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128,   0,   0, 128,   0, 128,   0, 128, 
-                         0,   0, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128,   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, 
-                       128, 128, 128,   0, 128, 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, 128, 128,   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, 128, 
-               };
-               YYDEBUG(228, *YYCURSOR);
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 128) {
-                       goto yy230;
-               }
-               if (yych == '}') goto yy235;
-               goto yy233;
-yy230:
-               YYDEBUG(230, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(231, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy230;
-               }
-               YYDEBUG(232, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 454 "Zend/zend_ini_scanner.l"
-               { /* Variable name */
-       /* Eat leading whitespace */
-       EAT_LEADING_WHITESPACE();
-
-       /* Eat trailing whitespace */
-       EAT_TRAILING_WHITESPACE();
-
-       RETURN_TOKEN(TC_VARNAME, yytext, yyleng);
-}
-#line 3647 "Zend/zend_ini_scanner.c"
-yy233:
-               YYDEBUG(233, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(234, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 655 "Zend/zend_ini_scanner.l"
-               {
-       return 0;
-}
-#line 3657 "Zend/zend_ini_scanner.c"
-yy235:
-               YYDEBUG(235, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(236, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 464 "Zend/zend_ini_scanner.l"
-               { /* Variable end */
-       yy_pop_state();
-       return '}';
-}
-#line 3668 "Zend/zend_ini_scanner.c"
-       }
-/* *********************************** */
-yyc_ST_RAW:
-       {
-               static const unsigned char yybm[] = {
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64, 192,   0,  64,  64,   0,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                       192,  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,  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(237, *YYCURSOR);
-               YYFILL(3);
-               yych = *YYCURSOR;
-               if (yych <= '\f') {
-                       if (yych <= 0x08) {
-                               if (yych >= 0x01) goto yy241;
-                       } else {
-                               if (yych <= '\t') goto yy243;
-                               if (yych <= '\n') goto yy244;
-                               goto yy241;
-                       }
-               } else {
-                       if (yych <= ' ') {
-                               if (yych <= '\r') goto yy246;
-                               if (yych <= 0x1F) goto yy241;
-                               goto yy243;
-                       } else {
-                               if (yych == ';') goto yy247;
-                               goto yy241;
-                       }
-               }
-               YYDEBUG(239, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(240, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 650 "Zend/zend_ini_scanner.l"
-               { /* End of option value (if EOF is reached before EOL */
-       BEGIN(INITIAL);
-       return END_OF_LINE;
-}
-#line 3737 "Zend/zend_ini_scanner.c"
-yy241:
-               YYDEBUG(241, *YYCURSOR);
-               ++YYCURSOR;
-yy242:
-               YYDEBUG(242, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 500 "Zend/zend_ini_scanner.l"
-               { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
-       unsigned char *sc = NULL;
-       EAT_LEADING_WHITESPACE();
-       while (YYCURSOR < YYLIMIT) {
-               switch (*YYCURSOR) {
-                       case '\n':
-                       case '\r':
-                               goto end_raw_value_chars;
-                               break;
-                       case ';':
-                               if (sc == NULL) {
-                                       sc = YYCURSOR;
-                               }
-                               YYCURSOR++;
-                               break;
-                       case '"':
-                               if (yytext[0] == '"') {
-                                       sc = NULL;
-                               }
-                               YYCURSOR++;
-                               break;
-                       default:
-                               YYCURSOR++;
-                               break;
-               }
-       }
-end_raw_value_chars:
-       if (sc) {
-               yyleng = sc - SCNG(yy_text);
-       } else {
-               yyleng = YYCURSOR - SCNG(yy_text);
-       }
-
-       EAT_TRAILING_WHITESPACE();
-
-       /* Eat leading and trailing double quotes */
-       if (yyleng > 1 && yytext[0] == '"' && yytext[yyleng - 1] == '"') {
-               SCNG(yy_text)++;
-               yyleng = yyleng - 2;
-       }
-
-       RETURN_TOKEN(TC_RAW, yytext, yyleng);
-}
-#line 3788 "Zend/zend_ini_scanner.c"
-yy243:
-               YYDEBUG(243, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '\r') {
-                       if (yych <= 0x08) goto yy242;
-                       if (yych <= '\n') goto yy250;
-                       if (yych <= '\f') goto yy242;
-                       goto yy250;
-               } else {
-                       if (yych <= ' ') {
-                               if (yych <= 0x1F) goto yy242;
-                               goto yy250;
-                       } else {
-                               if (yych == ';') goto yy250;
-                               goto yy242;
-                       }
-               }
-yy244:
-               YYDEBUG(244, *YYCURSOR);
-               ++YYCURSOR;
-yy245:
-               YYDEBUG(245, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 548 "Zend/zend_ini_scanner.l"
-               { /* End of option value */
-       BEGIN(INITIAL);
-       SCNG(lineno)++;
-       return END_OF_LINE;
-}
-#line 3818 "Zend/zend_ini_scanner.c"
-yy246:
-               YYDEBUG(246, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy244;
-               goto yy245;
-yy247:
-               YYDEBUG(247, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-               YYDEBUG(248, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy247;
-               }
-               if (yych <= '\n') goto yy252;
-               goto yy254;
-yy249:
-               YYDEBUG(249, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-yy250:
-               YYDEBUG(250, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy249;
-               }
-               if (yych <= '\f') {
-                       if (yych <= 0x08) goto yy251;
-                       if (yych <= '\n') goto yy244;
-               } else {
-                       if (yych <= '\r') goto yy246;
-                       if (yych == ';') goto yy247;
-               }
-yy251:
-               YYDEBUG(251, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 634 "Zend/zend_ini_scanner.l"
-               {
-       /* eat whitespace */
-       goto restart;
-}
-#line 3860 "Zend/zend_ini_scanner.c"
-yy252:
-               YYDEBUG(252, *YYCURSOR);
-               ++YYCURSOR;
-yy253:
-               YYDEBUG(253, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 644 "Zend/zend_ini_scanner.l"
-               { /* Comment */
-       BEGIN(INITIAL);
-       SCNG(lineno)++;
-       return END_OF_LINE;
-}
-#line 3873 "Zend/zend_ini_scanner.c"
-yy254:
-               YYDEBUG(254, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy252;
-               goto yy253;
-       }
-}
-#line 659 "Zend/zend_ini_scanner.l"
-
-}
diff --git a/Zend/zend_ini_scanner_defs.h b/Zend/zend_ini_scanner_defs.h
deleted file mode 100644 (file)
index e446d7a..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Generated by re2c 1.0.3 */
-#line 3 "Zend/zend_ini_scanner_defs.h"
-
-enum YYCONDTYPE {
-       yycINITIAL,
-       yycST_OFFSET,
-       yycST_SECTION_VALUE,
-       yycST_VALUE,
-       yycST_SECTION_RAW,
-       yycST_DOUBLE_QUOTES,
-       yycST_VARNAME,
-       yycST_RAW,
-};
diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c
deleted file mode 100644 (file)
index e0a3802..0000000
+++ /dev/null
@@ -1,8168 +0,0 @@
-/* Generated by re2c 1.0.1 */
-#line 1 "Zend/zend_language_scanner.l"
-/*
-   +----------------------------------------------------------------------+
-   | Zend Engine                                                          |
-   +----------------------------------------------------------------------+
-   | Copyright (c) 1998-2018 Zend Technologies Ltd. (http://www.zend.com) |
-   +----------------------------------------------------------------------+
-   | This source file is subject to version 2.00 of the Zend license,     |
-   | that is bundled with this package in the file LICENSE, and is        |
-   | available through the world-wide-web at the following url:           |
-   | http://www.zend.com/license/2_00.txt.                                |
-   | If you did not receive a copy of the Zend license and are unable to  |
-   | obtain it through the world-wide-web, please send a note to          |
-   | license@zend.com so we can mail you a copy immediately.              |
-   +----------------------------------------------------------------------+
-   | Authors: Marcus Boerger <helly@php.net>                              |
-   |          Nuno Lopes <nlopess@php.net>                                |
-   |          Scott MacVicar <scottmac@php.net>                           |
-   | Flex version authors:                                                |
-   |          Andi Gutmans <andi@php.net>                                 |
-   |          Zeev Suraski <zeev@php.net>                                 |
-   +----------------------------------------------------------------------+
-*/
-
-#if 0
-# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
-#else
-# define YYDEBUG(s, c)
-#endif
-
-#include "zend_language_scanner_defs.h"
-
-#include <errno.h>
-#include "zend.h"
-#ifdef ZEND_WIN32
-# include <Winuser.h>
-#endif
-#include "zend_alloc.h"
-#include <zend_language_parser.h>
-#include "zend_compile.h"
-#include "zend_language_scanner.h"
-#include "zend_highlight.h"
-#include "zend_constants.h"
-#include "zend_variables.h"
-#include "zend_operators.h"
-#include "zend_API.h"
-#include "zend_strtod.h"
-#include "zend_exceptions.h"
-#include "zend_virtual_cwd.h"
-#include "tsrm_config_common.h"
-
-#define YYCTYPE   unsigned char
-#define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }
-#define YYCURSOR  SCNG(yy_cursor)
-#define YYLIMIT   SCNG(yy_limit)
-#define YYMARKER  SCNG(yy_marker)
-
-#define YYGETCONDITION()  SCNG(yy_state)
-#define YYSETCONDITION(s) SCNG(yy_state) = s
-
-#define STATE(name)  yyc##name
-
-/* emulate flex constructs */
-#define BEGIN(state) YYSETCONDITION(STATE(state))
-#define YYSTATE      YYGETCONDITION()
-#define yytext       ((char*)SCNG(yy_text))
-#define yyleng       SCNG(yy_leng)
-#define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \
-                          yyleng   = (unsigned int)x; } while(0)
-#define yymore()     goto yymore_restart
-
-/* 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
-
-#include <stdarg.h>
-
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-/* Globals Macros */
-#define SCNG   LANG_SCNG
-#ifdef ZTS
-ZEND_API ts_rsrc_id language_scanner_globals_id;
-#else
-ZEND_API zend_php_scanner_globals language_scanner_globals;
-#endif
-
-#define HANDLE_NEWLINES(s, l)                                                                                                  \
-do {                                                                                                                                                   \
-       char *p = (s), *boundary = p+(l);                                                                                       \
-                                                                                                                                                               \
-       while (p<boundary) {                                                                                                            \
-               if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {                                   \
-                       CG(zend_lineno)++;                                                                                                      \
-               }                                                                                                                                               \
-               p++;                                                                                                                                    \
-       }                                                                                                                                                       \
-} while (0)
-
-#define HANDLE_NEWLINE(c) \
-{ \
-       if (c == '\n' || c == '\r') { \
-               CG(zend_lineno)++; \
-       } \
-}
-
-/* To save initial string length after scanning to first variable */
-#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) SCNG(scanned_string_len) = (len)
-#define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    SCNG(scanned_string_len)
-
-#define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x80)
-
-#define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
-#define ZEND_IS_HEX(c)  (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F'))
-
-BEGIN_EXTERN_C()
-
-static size_t encoding_filter_script_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
-{
-       const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
-       ZEND_ASSERT(internal_encoding);
-       return zend_multibyte_encoding_converter(to, to_length, from, from_length, internal_encoding, LANG_SCNG(script_encoding));
-}
-
-static size_t encoding_filter_script_to_intermediate(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
-{
-       return zend_multibyte_encoding_converter(to, to_length, from, from_length, zend_multibyte_encoding_utf8, LANG_SCNG(script_encoding));
-}
-
-static size_t encoding_filter_intermediate_to_script(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
-{
-       return zend_multibyte_encoding_converter(to, to_length, from, from_length,
-LANG_SCNG(script_encoding), zend_multibyte_encoding_utf8);
-}
-
-static size_t encoding_filter_intermediate_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
-{
-       const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
-       ZEND_ASSERT(internal_encoding);
-       return zend_multibyte_encoding_converter(to, to_length, from, from_length,
-internal_encoding, zend_multibyte_encoding_utf8);
-}
-
-
-static void _yy_push_state(int new_state)
-{
-       zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION());
-       YYSETCONDITION(new_state);
-}
-
-#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
-
-static void yy_pop_state(void)
-{
-       int *stack_state = zend_stack_top(&SCNG(state_stack));
-       YYSETCONDITION(*stack_state);
-       zend_stack_del_top(&SCNG(state_stack));
-}
-
-static void yy_scan_buffer(char *str, unsigned int len)
-{
-       YYCURSOR       = (YYCTYPE*)str;
-       YYLIMIT        = YYCURSOR + len;
-       if (!SCNG(yy_start)) {
-               SCNG(yy_start) = YYCURSOR;
-       }
-}
-
-void startup_scanner(void)
-{
-       CG(parse_error) = 0;
-       CG(doc_comment) = NULL;
-       CG(extra_fn_flags) = 0;
-       zend_stack_init(&SCNG(state_stack), sizeof(int));
-       zend_ptr_stack_init(&SCNG(heredoc_label_stack));
-       SCNG(heredoc_scan_ahead) = 0;
-}
-
-static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {
-    efree(heredoc_label->label);
-}
-
-void shutdown_scanner(void)
-{
-       CG(parse_error) = 0;
-       RESET_DOC_COMMENT();
-       zend_stack_destroy(&SCNG(state_stack));
-       zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
-       zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
-       SCNG(heredoc_scan_ahead) = 0;
-       SCNG(on_event) = NULL;
-}
-
-ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state)
-{
-       lex_state->yy_leng   = SCNG(yy_leng);
-       lex_state->yy_start  = SCNG(yy_start);
-       lex_state->yy_text   = SCNG(yy_text);
-       lex_state->yy_cursor = SCNG(yy_cursor);
-       lex_state->yy_marker = SCNG(yy_marker);
-       lex_state->yy_limit  = SCNG(yy_limit);
-
-       lex_state->state_stack = SCNG(state_stack);
-       zend_stack_init(&SCNG(state_stack), sizeof(int));
-
-       lex_state->heredoc_label_stack = SCNG(heredoc_label_stack);
-       zend_ptr_stack_init(&SCNG(heredoc_label_stack));
-
-       lex_state->in = SCNG(yy_in);
-       lex_state->yy_state = YYSTATE;
-       lex_state->filename = zend_get_compiled_filename();
-       lex_state->lineno = CG(zend_lineno);
-
-       lex_state->script_org = SCNG(script_org);
-       lex_state->script_org_size = SCNG(script_org_size);
-       lex_state->script_filtered = SCNG(script_filtered);
-       lex_state->script_filtered_size = SCNG(script_filtered_size);
-       lex_state->input_filter = SCNG(input_filter);
-       lex_state->output_filter = SCNG(output_filter);
-       lex_state->script_encoding = SCNG(script_encoding);
-
-       lex_state->on_event = SCNG(on_event);
-       lex_state->on_event_context = SCNG(on_event_context);
-
-       lex_state->ast = CG(ast);
-       lex_state->ast_arena = CG(ast_arena);
-}
-
-ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state)
-{
-       SCNG(yy_leng)   = lex_state->yy_leng;
-       SCNG(yy_start)  = lex_state->yy_start;
-       SCNG(yy_text)   = lex_state->yy_text;
-       SCNG(yy_cursor) = lex_state->yy_cursor;
-       SCNG(yy_marker) = lex_state->yy_marker;
-       SCNG(yy_limit)  = lex_state->yy_limit;
-
-       zend_stack_destroy(&SCNG(state_stack));
-       SCNG(state_stack) = lex_state->state_stack;
-
-       zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
-       zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
-       SCNG(heredoc_label_stack) = lex_state->heredoc_label_stack;
-
-       SCNG(yy_in) = lex_state->in;
-       YYSETCONDITION(lex_state->yy_state);
-       CG(zend_lineno) = lex_state->lineno;
-       zend_restore_compiled_filename(lex_state->filename);
-
-       if (SCNG(script_filtered)) {
-               efree(SCNG(script_filtered));
-               SCNG(script_filtered) = NULL;
-       }
-       SCNG(script_org) = lex_state->script_org;
-       SCNG(script_org_size) = lex_state->script_org_size;
-       SCNG(script_filtered) = lex_state->script_filtered;
-       SCNG(script_filtered_size) = lex_state->script_filtered_size;
-       SCNG(input_filter) = lex_state->input_filter;
-       SCNG(output_filter) = lex_state->output_filter;
-       SCNG(script_encoding) = lex_state->script_encoding;
-
-       SCNG(on_event) = lex_state->on_event;
-       SCNG(on_event_context) = lex_state->on_event_context;
-
-       CG(ast) = lex_state->ast;
-       CG(ast_arena) = lex_state->ast_arena;
-
-       RESET_DOC_COMMENT();
-}
-
-ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle)
-{
-       zend_llist_del_element(&CG(open_files), file_handle, (int (*)(void *, void *)) zend_compare_file_handles);
-       /* zend_file_handle_dtor() operates on the copy, so we have to NULLify the original here */
-       file_handle->opened_path = NULL;
-       if (file_handle->free_filename) {
-               file_handle->filename = NULL;
-       }
-}
-
-ZEND_API void zend_lex_tstring(zval *zv)
-{
-       if (SCNG(on_event)) {
-               SCNG(on_event)(ON_FEEDBACK, T_STRING, 0, SCNG(on_event_context));
-       }
-
-       ZVAL_STRINGL(zv, (char*)SCNG(yy_text), SCNG(yy_leng));
-}
-
-#define BOM_UTF32_BE   "\x00\x00\xfe\xff"
-#define        BOM_UTF32_LE    "\xff\xfe\x00\x00"
-#define        BOM_UTF16_BE    "\xfe\xff"
-#define        BOM_UTF16_LE    "\xff\xfe"
-#define        BOM_UTF8                "\xef\xbb\xbf"
-
-static const zend_encoding *zend_multibyte_detect_utf_encoding(const unsigned char *script, size_t script_size)
-{
-       const unsigned char *p;
-       int wchar_size = 2;
-       int le = 0;
-
-       /* utf-16 or utf-32? */
-       p = script;
-       assert(p >= script);
-       while ((size_t)(p-script) < script_size) {
-               p = memchr(p, 0, script_size-(p-script)-2);
-               if (!p) {
-                       break;
-               }
-               if (*(p+1) == '\0' && *(p+2) == '\0') {
-                       wchar_size = 4;
-                       break;
-               }
-
-               /* searching for UTF-32 specific byte orders, so this will do */
-               p += 4;
-       }
-
-       /* BE or LE? */
-       p = script;
-       assert(p >= script);
-       while ((size_t)(p-script) < script_size) {
-               if (*p == '\0' && *(p+wchar_size-1) != '\0') {
-                       /* BE */
-                       le = 0;
-                       break;
-               } else if (*p != '\0' && *(p+wchar_size-1) == '\0') {
-                       /* LE* */
-                       le = 1;
-                       break;
-               }
-               p += wchar_size;
-       }
-
-       if (wchar_size == 2) {
-               return le ? zend_multibyte_encoding_utf16le : zend_multibyte_encoding_utf16be;
-       } else {
-               return le ? zend_multibyte_encoding_utf32le : zend_multibyte_encoding_utf32be;
-       }
-
-       return NULL;
-}
-
-static const zend_encoding* zend_multibyte_detect_unicode(void)
-{
-       const zend_encoding *script_encoding = NULL;
-       int bom_size;
-       unsigned char *pos1, *pos2;
-
-       if (LANG_SCNG(script_org_size) < sizeof(BOM_UTF32_LE)-1) {
-               return NULL;
-       }
-
-       /* check out BOM */
-       if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_BE, sizeof(BOM_UTF32_BE)-1)) {
-               script_encoding = zend_multibyte_encoding_utf32be;
-               bom_size = sizeof(BOM_UTF32_BE)-1;
-       } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_LE, sizeof(BOM_UTF32_LE)-1)) {
-               script_encoding = zend_multibyte_encoding_utf32le;
-               bom_size = sizeof(BOM_UTF32_LE)-1;
-       } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_BE, sizeof(BOM_UTF16_BE)-1)) {
-               script_encoding = zend_multibyte_encoding_utf16be;
-               bom_size = sizeof(BOM_UTF16_BE)-1;
-       } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_LE, sizeof(BOM_UTF16_LE)-1)) {
-               script_encoding = zend_multibyte_encoding_utf16le;
-               bom_size = sizeof(BOM_UTF16_LE)-1;
-       } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF8, sizeof(BOM_UTF8)-1)) {
-               script_encoding = zend_multibyte_encoding_utf8;
-               bom_size = sizeof(BOM_UTF8)-1;
-       }
-
-       if (script_encoding) {
-               /* remove BOM */
-               LANG_SCNG(script_org) += bom_size;
-               LANG_SCNG(script_org_size) -= bom_size;
-
-               return script_encoding;
-       }
-
-       /* script contains NULL bytes -> auto-detection */
-       if ((pos1 = memchr(LANG_SCNG(script_org), 0, LANG_SCNG(script_org_size)))) {
-               /* check if the NULL byte is after the __HALT_COMPILER(); */
-               pos2 = LANG_SCNG(script_org);
-
-               while ((size_t)(pos1 - pos2) >= sizeof("__HALT_COMPILER();")-1) {
-                       pos2 = memchr(pos2, '_', pos1 - pos2);
-                       if (!pos2) break;
-                       pos2++;
-                       if (strncasecmp((char*)pos2, "_HALT_COMPILER", sizeof("_HALT_COMPILER")-1) == 0) {
-                               pos2 += sizeof("_HALT_COMPILER")-1;
-                               while (*pos2 == ' '  ||
-                                          *pos2 == '\t' ||
-                                          *pos2 == '\r' ||
-                                          *pos2 == '\n') {
-                                       pos2++;
-                               }
-                               if (*pos2 == '(') {
-                                       pos2++;
-                                       while (*pos2 == ' '  ||
-                                                  *pos2 == '\t' ||
-                                                  *pos2 == '\r' ||
-                                                  *pos2 == '\n') {
-                                               pos2++;
-                                       }
-                                       if (*pos2 == ')') {
-                                               pos2++;
-                                               while (*pos2 == ' '  ||
-                                                          *pos2 == '\t' ||
-                                                          *pos2 == '\r' ||
-                                                          *pos2 == '\n') {
-                                                       pos2++;
-                                               }
-                                               if (*pos2 == ';') {
-                                                       return NULL;
-                                               }
-                                       }
-                               }
-                       }
-               }
-               /* make best effort if BOM is missing */
-               return zend_multibyte_detect_utf_encoding(LANG_SCNG(script_org), LANG_SCNG(script_org_size));
-       }
-
-       return NULL;
-}
-
-static const zend_encoding* zend_multibyte_find_script_encoding(void)
-{
-       const zend_encoding *script_encoding;
-
-       if (CG(detect_unicode)) {
-               /* check out bom(byte order mark) and see if containing wchars */
-               script_encoding = zend_multibyte_detect_unicode();
-               if (script_encoding != NULL) {
-                       /* bom or wchar detection is prior to 'script_encoding' option */
-                       return script_encoding;
-               }
-       }
-
-       /* if no script_encoding specified, just leave alone */
-       if (!CG(script_encoding_list) || !CG(script_encoding_list_size)) {
-               return NULL;
-       }
-
-       /* if multiple encodings specified, detect automagically */
-       if (CG(script_encoding_list_size) > 1) {
-               return zend_multibyte_encoding_detector(LANG_SCNG(script_org), LANG_SCNG(script_org_size), CG(script_encoding_list), CG(script_encoding_list_size));
-       }
-
-       return CG(script_encoding_list)[0];
-}
-
-ZEND_API int zend_multibyte_set_filter(const zend_encoding *onetime_encoding)
-{
-       const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
-       const zend_encoding *script_encoding = onetime_encoding ? onetime_encoding: zend_multibyte_find_script_encoding();
-
-       if (!script_encoding) {
-               return FAILURE;
-       }
-
-       /* judge input/output filter */
-       LANG_SCNG(script_encoding) = script_encoding;
-       LANG_SCNG(input_filter) = NULL;
-       LANG_SCNG(output_filter) = NULL;
-
-       if (!internal_encoding || LANG_SCNG(script_encoding) == internal_encoding) {
-               if (!zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
-                       /* and if not, work around w/ script_encoding -> utf-8 -> script_encoding conversion */
-                       LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
-                       LANG_SCNG(output_filter) = encoding_filter_intermediate_to_script;
-               } else {
-                       LANG_SCNG(input_filter) = NULL;
-                       LANG_SCNG(output_filter) = NULL;
-               }
-               return SUCCESS;
-       }
-
-       if (zend_multibyte_check_lexer_compatibility(internal_encoding)) {
-               LANG_SCNG(input_filter) = encoding_filter_script_to_internal;
-               LANG_SCNG(output_filter) = NULL;
-       } else if (zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
-               LANG_SCNG(input_filter) = NULL;
-               LANG_SCNG(output_filter) = encoding_filter_script_to_internal;
-       } else {
-               /* both script and internal encodings are incompatible w/ flex */
-               LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
-               LANG_SCNG(output_filter) = encoding_filter_intermediate_to_internal;
-       }
-
-       return 0;
-}
-
-ZEND_API int open_file_for_scanning(zend_file_handle *file_handle)
-{
-       char *buf;
-       size_t size, offset = 0;
-       zend_string *compiled_filename;
-
-       /* The shebang line was read, get the current position to obtain the buffer start */
-       if (CG(start_lineno) == 2 && file_handle->type == ZEND_HANDLE_FP && file_handle->handle.fp) {
-               if ((offset = ftell(file_handle->handle.fp)) == (size_t)-1) {
-                       offset = 0;
-               }
-       }
-
-       if (zend_stream_fixup(file_handle, &buf, &size) == FAILURE) {
-               return FAILURE;
-       }
-
-       zend_llist_add_element(&CG(open_files), file_handle);
-       if (file_handle->handle.stream.handle >= (void*)file_handle && file_handle->handle.stream.handle <= (void*)(file_handle+1)) {
-               zend_file_handle *fh = (zend_file_handle*)zend_llist_get_last(&CG(open_files));
-               size_t diff = (char*)file_handle->handle.stream.handle - (char*)file_handle;
-               fh->handle.stream.handle = (void*)(((char*)fh) + diff);
-               file_handle->handle.stream.handle = fh->handle.stream.handle;
-       }
-
-       /* Reset the scanner for scanning the new file */
-       SCNG(yy_in) = file_handle;
-       SCNG(yy_start) = NULL;
-
-       if (size != (size_t)-1) {
-               if (CG(multibyte)) {
-                       SCNG(script_org) = (unsigned char*)buf;
-                       SCNG(script_org_size) = size;
-                       SCNG(script_filtered) = NULL;
-
-                       zend_multibyte_set_filter(NULL);
-
-                       if (SCNG(input_filter)) {
-                               if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size))) {
-                                       zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
-                                                       "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
-                               }
-                               buf = (char*)SCNG(script_filtered);
-                               size = SCNG(script_filtered_size);
-                       }
-               }
-               SCNG(yy_start) = (unsigned char *)buf - offset;
-               yy_scan_buffer(buf, (unsigned int)size);
-       } else {
-               zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
-       }
-
-       BEGIN(INITIAL);
-
-       if (file_handle->opened_path) {
-               compiled_filename = zend_string_copy(file_handle->opened_path);
-       } else {
-               compiled_filename = zend_string_init(file_handle->filename, strlen(file_handle->filename), 0);
-       }
-
-       zend_set_compiled_filename(compiled_filename);
-       zend_string_release_ex(compiled_filename, 0);
-
-       if (CG(start_lineno)) {
-               CG(zend_lineno) = CG(start_lineno);
-               CG(start_lineno) = 0;
-       } else {
-               CG(zend_lineno) = 1;
-       }
-
-       RESET_DOC_COMMENT();
-       CG(increment_lineno) = 0;
-       return SUCCESS;
-}
-END_EXTERN_C()
-
-static zend_op_array *zend_compile(int type)
-{
-       zend_op_array *op_array = NULL;
-       zend_bool original_in_compilation = CG(in_compilation);
-
-       CG(in_compilation) = 1;
-       CG(ast) = NULL;
-       CG(ast_arena) = zend_arena_create(1024 * 32);
-
-       if (!zendparse()) {
-               int last_lineno = CG(zend_lineno);
-               zend_file_context original_file_context;
-               zend_oparray_context original_oparray_context;
-               zend_op_array *original_active_op_array = CG(active_op_array);
-
-               op_array = emalloc(sizeof(zend_op_array));
-               init_op_array(op_array, type, INITIAL_OP_ARRAY_SIZE);
-               CG(active_op_array) = op_array;
-
-               /* Use heap to not waste arena memory */
-               op_array->fn_flags |= ZEND_ACC_HEAP_RT_CACHE;
-
-               if (zend_ast_process) {
-                       zend_ast_process(CG(ast));
-               }
-
-               zend_file_context_begin(&original_file_context);
-               zend_oparray_context_begin(&original_oparray_context);
-               zend_compile_top_stmt(CG(ast));
-               CG(zend_lineno) = last_lineno;
-               zend_emit_final_return(type == ZEND_USER_FUNCTION);
-               op_array->line_start = 1;
-               op_array->line_end = last_lineno;
-               pass_two(op_array);
-               zend_oparray_context_end(&original_oparray_context);
-               zend_file_context_end(&original_file_context);
-
-               CG(active_op_array) = original_active_op_array;
-       }
-
-       zend_ast_destroy(CG(ast));
-       zend_arena_destroy(CG(ast_arena));
-
-       CG(in_compilation) = original_in_compilation;
-
-       return op_array;
-}
-
-ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type)
-{
-       zend_lex_state original_lex_state;
-       zend_op_array *op_array = NULL;
-       zend_save_lexical_state(&original_lex_state);
-
-       if (open_file_for_scanning(file_handle)==FAILURE) {
-               if (type==ZEND_REQUIRE) {
-                       zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename);
-                       zend_bailout();
-               } else {
-                       zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename);
-               }
-       } else {
-               op_array = zend_compile(ZEND_USER_FUNCTION);
-       }
-
-       zend_restore_lexical_state(&original_lex_state);
-       return op_array;
-}
-
-
-zend_op_array *compile_filename(int type, zval *filename)
-{
-       zend_file_handle file_handle;
-       zval tmp;
-       zend_op_array *retval;
-       zend_string *opened_path = NULL;
-
-       if (Z_TYPE_P(filename) != IS_STRING) {
-               ZVAL_STR(&tmp, zval_get_string(filename));
-               filename = &tmp;
-       }
-       file_handle.filename = Z_STRVAL_P(filename);
-       file_handle.free_filename = 0;
-       file_handle.type = ZEND_HANDLE_FILENAME;
-       file_handle.opened_path = NULL;
-       file_handle.handle.fp = NULL;
-
-       retval = zend_compile_file(&file_handle, type);
-       if (retval && file_handle.handle.stream.handle) {
-               if (!file_handle.opened_path) {
-                       file_handle.opened_path = opened_path = zend_string_copy(Z_STR_P(filename));
-               }
-
-               zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path);
-
-               if (opened_path) {
-                       zend_string_release_ex(opened_path, 0);
-               }
-       }
-       zend_destroy_file_handle(&file_handle);
-
-       if (UNEXPECTED(filename == &tmp)) {
-               zval_ptr_dtor(&tmp);
-       }
-       return retval;
-}
-
-ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename)
-{
-       char *buf;
-       size_t size, old_len;
-       zend_string *new_compiled_filename;
-
-       /* enforce ZEND_MMAP_AHEAD trailing NULLs for flex... */
-       old_len = Z_STRLEN_P(str);
-       Z_STR_P(str) = zend_string_extend(Z_STR_P(str), old_len + ZEND_MMAP_AHEAD, 0);
-       Z_TYPE_INFO_P(str) = IS_STRING_EX;
-       memset(Z_STRVAL_P(str) + old_len, 0, ZEND_MMAP_AHEAD + 1);
-
-       SCNG(yy_in) = NULL;
-       SCNG(yy_start) = NULL;
-
-       buf = Z_STRVAL_P(str);
-       size = old_len;
-
-       if (CG(multibyte)) {
-               SCNG(script_org) = (unsigned char*)buf;
-               SCNG(script_org_size) = size;
-               SCNG(script_filtered) = NULL;
-
-               zend_multibyte_set_filter(zend_multibyte_get_internal_encoding());
-
-               if (SCNG(input_filter)) {
-                       if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size))) {
-                               zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
-                                               "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
-                       }
-                       buf = (char*)SCNG(script_filtered);
-                       size = SCNG(script_filtered_size);
-               }
-       }
-
-       yy_scan_buffer(buf, (unsigned int)size);
-
-       new_compiled_filename = zend_string_init(filename, strlen(filename), 0);
-       zend_set_compiled_filename(new_compiled_filename);
-       zend_string_release_ex(new_compiled_filename, 0);
-       CG(zend_lineno) = 1;
-       CG(increment_lineno) = 0;
-       RESET_DOC_COMMENT();
-       return SUCCESS;
-}
-
-
-ZEND_API size_t zend_get_scanned_file_offset(void)
-{
-       size_t offset = SCNG(yy_cursor) - SCNG(yy_start);
-       if (SCNG(input_filter)) {
-               size_t original_offset = offset, length = 0;
-               do {
-                       unsigned char *p = NULL;
-                       if ((size_t)-1 == SCNG(input_filter)(&p, &length, SCNG(script_org), offset)) {
-                               return (size_t)-1;
-                       }
-                       efree(p);
-                       if (length > original_offset) {
-                               offset--;
-                       } else if (length < original_offset) {
-                               offset++;
-                       }
-               } while (original_offset != length);
-       }
-       return offset;
-}
-
-zend_op_array *compile_string(zval *source_string, char *filename)
-{
-       zend_lex_state original_lex_state;
-       zend_op_array *op_array = NULL;
-       zval tmp;
-
-       if (UNEXPECTED(Z_TYPE_P(source_string) != IS_STRING)) {
-               ZVAL_STR(&tmp, zval_get_string_func(source_string));
-       } else {
-               ZVAL_COPY(&tmp, source_string);
-       }
-
-       if (Z_STRLEN(tmp)==0) {
-               zval_ptr_dtor(&tmp);
-               return NULL;
-       }
-
-       zend_save_lexical_state(&original_lex_state);
-       if (zend_prepare_string_for_scanning(&tmp, filename) == SUCCESS) {
-               BEGIN(ST_IN_SCRIPTING);
-               op_array = zend_compile(ZEND_EVAL_CODE);
-       }
-
-       zend_restore_lexical_state(&original_lex_state);
-       zval_ptr_dtor(&tmp);
-
-       return op_array;
-}
-
-
-BEGIN_EXTERN_C()
-int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini)
-{
-       zend_lex_state original_lex_state;
-       zend_file_handle file_handle;
-
-       file_handle.type = ZEND_HANDLE_FILENAME;
-       file_handle.filename = filename;
-       file_handle.free_filename = 0;
-       file_handle.opened_path = NULL;
-       zend_save_lexical_state(&original_lex_state);
-       if (open_file_for_scanning(&file_handle)==FAILURE) {
-               zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename);
-               zend_restore_lexical_state(&original_lex_state);
-               return FAILURE;
-       }
-       zend_highlight(syntax_highlighter_ini);
-       if (SCNG(script_filtered)) {
-               efree(SCNG(script_filtered));
-               SCNG(script_filtered) = NULL;
-       }
-       zend_destroy_file_handle(&file_handle);
-       zend_restore_lexical_state(&original_lex_state);
-       return SUCCESS;
-}
-
-int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, char *str_name)
-{
-       zend_lex_state original_lex_state;
-       zval tmp;
-
-       if (UNEXPECTED(Z_TYPE_P(str) != IS_STRING)) {
-               ZVAL_STR(&tmp, zval_get_string_func(str));
-               str = &tmp;
-       }
-       zend_save_lexical_state(&original_lex_state);
-       if (zend_prepare_string_for_scanning(str, str_name)==FAILURE) {
-               zend_restore_lexical_state(&original_lex_state);
-               if (UNEXPECTED(str == &tmp)) {
-                       zval_ptr_dtor(&tmp);
-               }
-               return FAILURE;
-       }
-       BEGIN(INITIAL);
-       zend_highlight(syntax_highlighter_ini);
-       if (SCNG(script_filtered)) {
-               efree(SCNG(script_filtered));
-               SCNG(script_filtered) = NULL;
-       }
-       zend_restore_lexical_state(&original_lex_state);
-       if (UNEXPECTED(str == &tmp)) {
-               zval_ptr_dtor(&tmp);
-       }
-       return SUCCESS;
-}
-
-ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding)
-{
-       size_t length;
-       unsigned char *new_yy_start;
-
-       /* convert and set */
-       if (!SCNG(input_filter)) {
-               if (SCNG(script_filtered)) {
-                       efree(SCNG(script_filtered));
-                       SCNG(script_filtered) = NULL;
-               }
-               SCNG(script_filtered_size) = 0;
-               length = SCNG(script_org_size);
-               new_yy_start = SCNG(script_org);
-       } else {
-               if ((size_t)-1 == SCNG(input_filter)(&new_yy_start, &length, SCNG(script_org), SCNG(script_org_size))) {
-                       zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
-                                       "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
-               }
-               if (SCNG(script_filtered)) {
-                       efree(SCNG(script_filtered));
-               }
-               SCNG(script_filtered) = new_yy_start;
-               SCNG(script_filtered_size) = length;
-       }
-
-       SCNG(yy_cursor) = new_yy_start + (SCNG(yy_cursor) - SCNG(yy_start));
-       SCNG(yy_marker) = new_yy_start + (SCNG(yy_marker) - SCNG(yy_start));
-       SCNG(yy_text) = new_yy_start + (SCNG(yy_text) - SCNG(yy_start));
-       SCNG(yy_limit) = new_yy_start + length;
-
-       SCNG(yy_start) = new_yy_start;
-}
-
-
-// TODO: avoid reallocation ???
-# define zend_copy_value(zendlval, yytext, yyleng) \
-       if (SCNG(output_filter)) { \
-               size_t sz = 0; \
-               char *s = NULL; \
-               SCNG(output_filter)((unsigned char **)&s, &sz, (unsigned char *)yytext, (size_t)yyleng); \
-               ZVAL_STRINGL(zendlval, s, sz); \
-               efree(s); \
-       } else if (yyleng == 1) { \
-               ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); \
-       } else { \
-               ZVAL_STRINGL(zendlval, yytext, yyleng); \
-       }
-
-static int zend_scan_escape_string(zval *zendlval, char *str, int len, char quote_type)
-{
-       register char *s, *t;
-       char *end;
-
-       if (len <= 1) {
-               if (len < 1) {
-                       ZVAL_EMPTY_STRING(zendlval);
-               } else {
-                       zend_uchar c = (zend_uchar)*str;
-                       if (c == '\n' || c == '\r') {
-                               CG(zend_lineno)++;
-                       }
-                       ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
-               }
-               goto skip_escape_conversion;
-       }
-
-       ZVAL_STRINGL(zendlval, str, len);
-
-       /* convert escape sequences */
-       s = Z_STRVAL_P(zendlval);
-       end = s+Z_STRLEN_P(zendlval);
-       while (1) {
-               if (UNEXPECTED(*s=='\\')) {
-                       break;
-               }
-               if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
-                       CG(zend_lineno)++;
-               }
-               s++;
-               if (s == end) {
-                       goto skip_escape_conversion;
-               }
-       }
-
-       t = s;
-       while (s<end) {
-               if (*s=='\\') {
-                       s++;
-                       if (s >= end) {
-                               *t++ = '\\';
-                               break;
-                       }
-
-                       switch(*s) {
-                               case 'n':
-                                       *t++ = '\n';
-                                       break;
-                               case 'r':
-                                       *t++ = '\r';
-                                       break;
-                               case 't':
-                                       *t++ = '\t';
-                                       break;
-                               case 'f':
-                                       *t++ = '\f';
-                                       break;
-                               case 'v':
-                                       *t++ = '\v';
-                                       break;
-                               case 'e':
-#ifdef ZEND_WIN32
-                                       *t++ = VK_ESCAPE;
-#else
-                                       *t++ = '\e';
-#endif
-                                       break;
-                               case '"':
-                               case '`':
-                                       if (*s != quote_type) {
-                                               *t++ = '\\';
-                                               *t++ = *s;
-                                               break;
-                                       }
-                               case '\\':
-                               case '$':
-                                       *t++ = *s;
-                                       break;
-                               case 'x':
-                               case 'X':
-                                       if (ZEND_IS_HEX(*(s+1))) {
-                                               char hex_buf[3] = { 0, 0, 0 };
-
-                                               hex_buf[0] = *(++s);
-                                               if (ZEND_IS_HEX(*(s+1))) {
-                                                       hex_buf[1] = *(++s);
-                                               }
-                                               *t++ = (char) ZEND_STRTOL(hex_buf, NULL, 16);
-                                       } else {
-                                               *t++ = '\\';
-                                               *t++ = *s;
-                                       }
-                                       break;
-                               /* UTF-8 codepoint escape, format: /\\u\{\x+\}/ */
-                               case 'u':
-                                       {
-                                               /* cache where we started so we can parse after validating */
-                                               char *start = s + 1;
-                                               size_t len = 0;
-                                               zend_bool valid = 1;
-                                               unsigned long codepoint;
-
-                                               if (*start != '{') {
-                                                       /* we silently let this pass to avoid breaking code
-                                                        * with JSON in string literals (e.g. "\"\u202e\""
-                                                        */
-                                                       *t++ = '\\';
-                                                       *t++ = 'u';
-                                                       break;
-                                               } else {
-                                                       /* on the other hand, invalid \u{blah} errors */
-                                                       s++;
-                                                       len++;
-                                                       s++;
-                                                       while (*s != '}') {
-                                                               if (!ZEND_IS_HEX(*s)) {
-                                                                       valid = 0;
-                                                                       break;
-                                                               } else {
-                                                                       len++;
-                                                               }
-                                                               s++;
-                                                       }
-                                                       if (*s == '}') {
-                                                               valid = 1;
-                                                               len++;
-                                                       }
-                                               }
-
-                                               /* \u{} is invalid */
-                                               if (len <= 2) {
-                                                       valid = 0;
-                                               }
-
-                                               if (!valid) {
-                                                       zend_throw_exception(zend_ce_parse_error,
-                                                               "Invalid UTF-8 codepoint escape sequence", 0);
-                                                       zval_ptr_dtor(zendlval);
-                                                       ZVAL_UNDEF(zendlval);
-                                                       return FAILURE;
-                                               }
-
-                                               errno = 0;
-                                               codepoint = strtoul(start + 1, NULL, 16);
-
-                                               /* per RFC 3629, UTF-8 can only represent 21 bits */
-                                               if (codepoint > 0x10FFFF || errno) {
-                                                       zend_throw_exception(zend_ce_parse_error,
-                                                               "Invalid UTF-8 codepoint escape sequence: Codepoint too large", 0);
-                                                       zval_ptr_dtor(zendlval);
-                                                       ZVAL_UNDEF(zendlval);
-                                                       return FAILURE;
-                                               }
-
-                                               /* based on https://en.wikipedia.org/wiki/UTF-8#Sample_code */
-                                               if (codepoint < 0x80) {
-                                                       *t++ = codepoint;
-                                               } else if (codepoint <= 0x7FF) {
-                                                       *t++ = (codepoint >> 6) + 0xC0;
-                                                       *t++ = (codepoint & 0x3F) + 0x80;
-                                               } else if (codepoint <= 0xFFFF) {
-                                                       *t++ = (codepoint >> 12) + 0xE0;
-                                                       *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
-                                                       *t++ = (codepoint & 0x3F) + 0x80;
-                                               } else if (codepoint <= 0x10FFFF) {
-                                                       *t++ = (codepoint >> 18) + 0xF0;
-                                                       *t++ = ((codepoint >> 12) & 0x3F) + 0x80;
-                                                       *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
-                                                       *t++ = (codepoint & 0x3F) + 0x80;
-                                               }
-                                       }
-                                       break;
-                               default:
-                                       /* check for an octal */
-                                       if (ZEND_IS_OCT(*s)) {
-                                               char octal_buf[4] = { 0, 0, 0, 0 };
-
-                                               octal_buf[0] = *s;
-                                               if (ZEND_IS_OCT(*(s+1))) {
-                                                       octal_buf[1] = *(++s);
-                                                       if (ZEND_IS_OCT(*(s+1))) {
-                                                               octal_buf[2] = *(++s);
-                                                       }
-                                               }
-                                               if (octal_buf[2] &&
-                                                   (octal_buf[0] > '3')) {
-                                                       /* 3 octit values must not overflow 0xFF (\377) */
-                                                       zend_error(E_COMPILE_WARNING, "Octal escape sequence overflow \\%s is greater than \\377", octal_buf);
-                                               }
-
-                                               *t++ = (char) ZEND_STRTOL(octal_buf, NULL, 8);
-                                       } else {
-                                               *t++ = '\\';
-                                               *t++ = *s;
-                                       }
-                                       break;
-                       }
-               } else {
-                       *t++ = *s;
-               }
-
-               if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
-                       CG(zend_lineno)++;
-               }
-               s++;
-       }
-       *t = 0;
-       Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
-
-skip_escape_conversion:
-       if (SCNG(output_filter)) {
-               size_t sz = 0;
-               unsigned char *str;
-               // TODO: avoid realocation ???
-               s = Z_STRVAL_P(zendlval);
-               SCNG(output_filter)(&str, &sz, (unsigned char *)s, (size_t)Z_STRLEN_P(zendlval));
-               zval_ptr_dtor(zendlval);
-               ZVAL_STRINGL(zendlval, (char *) str, sz);
-               efree(str);
-       }
-       return SUCCESS;
-}
-
-#define HEREDOC_USING_SPACES 1
-#define HEREDOC_USING_TABS 2
-
-static const char *next_newline(const char *str, const char *end, size_t *newline_len) {
-       for (; str < end; str++) {
-               if (*str == '\r') {
-                       *newline_len = str + 1 < end && *(str + 1) == '\n' ? 2 : 1;
-               } else if (*str == '\n') {
-                       *newline_len = 1;
-                       return str;
-               }
-       }
-       *newline_len = 0;
-       return NULL;
-}
-
-static zend_bool strip_multiline_string_indentation(
-       zval *zendlval, int indentation, zend_bool using_spaces,
-       zend_bool newline_at_start, zend_bool newline_at_end)
-{
-       const char *str = Z_STRVAL_P(zendlval), *end = str + Z_STRLEN_P(zendlval);
-       char *copy = Z_STRVAL_P(zendlval);
-
-       int newline_count = 0;
-       size_t newline_len;
-       const char *nl;
-
-       if (!newline_at_start) {
-               nl = next_newline(str, end, &newline_len);
-               if (!nl) {
-                       return 1;
-               }
-
-               str = nl + newline_len;
-               copy = (char *) nl + newline_len;
-               newline_count++;
-       } else {
-               nl = str;
-       }
-
-       /* <= intentional */
-       while (str <= end && nl) {
-               size_t skip;
-               nl = next_newline(str, end, &newline_len);
-               if (!nl && newline_at_end) {
-                       nl = end;
-               }
-
-               /* Try to skip indentation */
-               for (skip = 0; skip < indentation; skip++, str++) {
-                       if (str == nl) {
-                               /* Don't require full indentation on whitespace-only lines */
-                               break;
-                       }
-
-                       if (str == end || (*str != ' ' && *str != '\t')) {
-                               CG(zend_lineno) += newline_count;
-                               zend_throw_exception_ex(zend_ce_parse_error, 0,
-                                       "Invalid body indentation level (expecting an indentation level of at least %d)", indentation);
-                               goto error;
-                       }
-
-                       if ((!using_spaces && *str == ' ') || (using_spaces && *str == '\t')) {
-                               CG(zend_lineno) += newline_count;
-                               zend_throw_exception(zend_ce_parse_error,
-                                       "Invalid indentation - tabs and spaces cannot be mixed", 0);
-                               goto error;
-                       }
-               }
-
-               if (str == end) {
-                       break;
-               }
-
-               size_t len = nl ? (nl - str + newline_len) : (end - str);
-               memmove(copy, str, len);
-               str += len;
-               copy += len;
-               newline_count++;
-       }
-
-       *copy = '\0';
-       Z_STRLEN_P(zendlval) = copy - Z_STRVAL_P(zendlval);
-       return 1;
-
-error:
-       zval_ptr_dtor_str(zendlval);
-       ZVAL_UNDEF(zendlval);
-
-       return 0;
-}
-
-static void copy_heredoc_label_stack(void *void_heredoc_label)
-{
-       zend_heredoc_label *heredoc_label = void_heredoc_label;
-       zend_heredoc_label *new_heredoc_label = emalloc(sizeof(zend_heredoc_label));
-
-       *new_heredoc_label = *heredoc_label;
-       new_heredoc_label->label = estrndup(heredoc_label->label, heredoc_label->length);
-
-       zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) new_heredoc_label);
-}
-
-#define PARSER_MODE() \
-       EXPECTED(elem != NULL)
-
-#define RETURN_TOKEN(_token) do { \
-               token = _token; \
-               goto emit_token; \
-       } while (0)
-
-#define RETURN_TOKEN_WITH_VAL(_token) do { \
-               token = _token; \
-               goto emit_token_with_val; \
-       } while (0)
-
-#define RETURN_TOKEN_WITH_STR(_token, _offset) do { \
-               token = _token; \
-               offset = _offset; \
-               goto emit_token_with_str; \
-       } while (0)
-
-#define SKIP_TOKEN(_token) do { \
-               token = _token; \
-               goto skip_token; \
-       } while (0)
-
-int ZEND_FASTCALL lex_scan(zval *zendlval, zend_parser_stack_elem *elem)
-{
-int token;
-int offset;
-int start_line = CG(zend_lineno);
-
-       ZVAL_UNDEF(zendlval);
-restart:
-       SCNG(yy_text) = YYCURSOR;
-
-
-#line 1250 "Zend/zend_language_scanner.c"
-{
-       YYCTYPE yych;
-       unsigned int yyaccept = 0;
-       if (YYGETCONDITION() < 5) {
-               if (YYGETCONDITION() < 2) {
-                       if (YYGETCONDITION() < 1) {
-                               goto yyc_ST_IN_SCRIPTING;
-                       } else {
-                               goto yyc_ST_LOOKING_FOR_PROPERTY;
-                       }
-               } else {
-                       if (YYGETCONDITION() < 3) {
-                               goto yyc_ST_BACKQUOTE;
-                       } else {
-                               if (YYGETCONDITION() < 4) {
-                                       goto yyc_ST_DOUBLE_QUOTES;
-                               } else {
-                                       goto yyc_ST_HEREDOC;
-                               }
-                       }
-               }
-       } else {
-               if (YYGETCONDITION() < 7) {
-                       if (YYGETCONDITION() < 6) {
-                               goto yyc_ST_LOOKING_FOR_VARNAME;
-                       } else {
-                               goto yyc_ST_VAR_OFFSET;
-                       }
-               } else {
-                       if (YYGETCONDITION() < 8) {
-                               goto yyc_INITIAL;
-                       } else {
-                               if (YYGETCONDITION() < 9) {
-                                       goto yyc_ST_END_HEREDOC;
-                               } else {
-                                       goto yyc_ST_NOWDOC;
-                               }
-                       }
-               }
-       }
-/* *********************************** */
-yyc_ST_IN_SCRIPTING:
-       {
-               static const unsigned char yybm[] = {
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,  36,   4,   0,   0,   4,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                        36,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                       216, 216, 152, 152, 152, 152, 152, 152, 
-                       152, 152,   0,   0,   0,   0,   0,   0, 
-                         0, 144, 144, 144, 144, 144, 144,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,   0,   0,   0,   0,  16, 
-                         0, 144, 144, 144, 144, 144, 144,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,   0,   0,   0,   0,   0, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-               };
-               YYDEBUG(1, *YYCURSOR);
-               YYFILL(16);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 4) {
-                       goto yy5;
-               }
-               switch (yych) {
-               case 0x00:
-               case 0x01:
-               case 0x02:
-               case 0x03:
-               case 0x04:
-               case 0x05:
-               case 0x06:
-               case 0x07:
-               case 0x08:
-               case '\t':
-               case '\n':
-               case '\v':
-               case '\f':
-               case '\r':
-               case 0x0E:
-               case 0x0F:
-               case 0x10:
-               case 0x11:
-               case 0x12:
-               case 0x13:
-               case 0x14:
-               case 0x15:
-               case 0x16:
-               case 0x17:
-               case 0x18:
-               case 0x19:
-               case 0x1A:
-               case 0x1B:
-               case 0x1C:
-               case 0x1D:
-               case 0x1E:
-               case 0x1F:
-               case 0x7F:      goto yy3;
-               case ' ':
-               case '!':       goto yy8;
-               case '"':       goto yy10;
-               case '#':       goto yy12;
-               case '$':       goto yy14;
-               case '%':       goto yy15;
-               case '&':       goto yy16;
-               case '\'':      goto yy17;
-               case '(':       goto yy19;
-               case ')':
-               case ',':
-               case ';':
-               case '@':
-               case '[':
-               case ']':
-               case '~':       goto yy20;
-               case '*':       goto yy21;
-               case '+':       goto yy22;
-               case '-':       goto yy23;
-               case '.':       goto yy24;
-               case '/':       goto yy25;
-               case '0':       goto yy26;
-               case '1':
-               case '2':
-               case '3':
-               case '4':
-               case '5':
-               case '6':
-               case '7':
-               case '8':
-               case '9':       goto yy28;
-               case ':':       goto yy30;
-               case '<':       goto yy31;
-               case '=':       goto yy32;
-               case '>':       goto yy33;
-               case '?':       goto yy34;
-               case 'A':
-               case 'a':       goto yy35;
-               case 'B':
-               case 'b':       goto yy37;
-               case 'C':
-               case 'c':       goto yy38;
-               case 'D':
-               case 'd':       goto yy39;
-               case 'E':
-               case 'e':       goto yy40;
-               case 'F':
-               case 'f':       goto yy41;
-               case 'G':
-               case 'g':       goto yy42;
-               case 'I':
-               case 'i':       goto yy45;
-               case 'L':
-               case 'l':       goto yy46;
-               case 'N':
-               case 'n':       goto yy47;
-               case 'O':
-               case 'o':       goto yy48;
-               case 'P':
-               case 'p':       goto yy49;
-               case 'R':
-               case 'r':       goto yy50;
-               case 'S':
-               case 's':       goto yy51;
-               case 'T':
-               case 't':       goto yy52;
-               case 'U':
-               case 'u':       goto yy53;
-               case 'V':
-               case 'v':       goto yy54;
-               case 'W':
-               case 'w':       goto yy55;
-               case 'X':
-               case 'x':       goto yy56;
-               case 'Y':
-               case 'y':       goto yy57;
-               case '\\':      goto yy58;
-               case '^':       goto yy60;
-               case '_':       goto yy61;
-               case '`':       goto yy62;
-               case '{':       goto yy64;
-               case '|':       goto yy66;
-               case '}':       goto yy67;
-               default:        goto yy43;
-               }
-yy3:
-               YYDEBUG(3, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(4, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2749 "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 1467 "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 1429 "Zend/zend_language_scanner.l"
-               {
-       goto return_whitespace;
-}
-#line 1483 "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 1712 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(yytext[0]);
-}
-#line 1495 "Zend/zend_language_scanner.c"
-yy10:
-               YYDEBUG(10, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(11, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2223 "Zend/zend_language_scanner.l"
-               {
-       int bprefix = (yytext[0] != '"') ? 1 : 0;
-
-       while (YYCURSOR < YYLIMIT) {
-               switch (*YYCURSOR++) {
-                       case '"':
-                               yyleng = YYCURSOR - SCNG(yy_text);
-                               if (EXPECTED(zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == SUCCESS)
-                                || !PARSER_MODE()) {
-                                       RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
-                               } else {
-                                       RETURN_TOKEN(T_ERROR);
-                               }
-                       case '$':
-                               if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
-                                       break;
-                               }
-                               continue;
-                       case '{':
-                               if (*YYCURSOR == '$') {
-                                       break;
-                               }
-                               continue;
-                       case '\\':
-                               if (YYCURSOR < YYLIMIT) {
-                                       YYCURSOR++;
-                               }
-                               /* fall through */
-                       default:
-                               continue;
-               }
-
-               YYCURSOR--;
-               break;
-       }
-
-       /* Remember how much was scanned to save rescanning */
-       SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
-
-       YYCURSOR = SCNG(yy_text) + yyleng;
-
-       BEGIN(ST_DOUBLE_QUOTES);
-       RETURN_TOKEN('"');
-}
-#line 1546 "Zend/zend_language_scanner.c"
-yy12:
-               YYDEBUG(12, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(13, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2050 "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 1584 "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;
-               }
-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 2133 "Zend/zend_language_scanner.l"
-               {
-       register char *s, *t;
-       char *end;
-       int bprefix = (yytext[0] != '\'') ? 1 : 0;
-
-       while (1) {
-               if (YYCURSOR < YYLIMIT) {
-                       if (*YYCURSOR == '\'') {
-                               YYCURSOR++;
-                               yyleng = YYCURSOR - SCNG(yy_text);
-
-                               break;
-                       } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
-                               YYCURSOR++;
-                       }
-               } else {
-                       yyleng = YYLIMIT - SCNG(yy_text);
-
-                       /* Unclosed single quotes; treat similar to double quotes, but without a separate token
-                        * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..."
-                        * rule, which continued in ST_IN_SCRIPTING state after the quote */
-                       ZVAL_NULL(zendlval);
-                       RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
-               }
-       }
-
-       if (yyleng-bprefix-2 <= 1) {
-               if (yyleng-bprefix-2 < 1) {
-                       ZVAL_EMPTY_STRING(zendlval);
-               } else {
-                       zend_uchar c = (zend_uchar)*(yytext+bprefix+1);
-                       if (c == '\n' || c == '\r') {
-                               CG(zend_lineno)++;
-                       }
-                       ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
-               }
-               goto skip_escape_conversion;
-       }
-       ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
-
-       /* convert escape sequences */
-       s = Z_STRVAL_P(zendlval);
-       end = s+Z_STRLEN_P(zendlval);
-       while (1) {
-               if (UNEXPECTED(*s=='\\')) {
-                       break;
-               }
-               if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
-                       CG(zend_lineno)++;
-               }
-               s++;
-               if (s == end) {
-                       goto skip_escape_conversion;
-               }
-       }
-
-       t = s;
-       while (s<end) {
-               if (*s=='\\') {
-                       s++;
-                       if (*s == '\\' || *s == '\'') {
-                               *t++ = *s;
-                       } else {
-                               *t++ = '\\';
-                               *t++ = *s;
-                       }
-               } else {
-                       *t++ = *s;
-               }
-               if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
-                       CG(zend_lineno)++;
-               }
-               s++;
-       }
-       *t = 0;
-       Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
-
-skip_escape_conversion:
-       if (SCNG(output_filter)) {
-               size_t sz = 0;
-               char *str = NULL;
-               s = Z_STRVAL_P(zendlval);
-               // TODO: avoid reallocation ???
-               SCNG(output_filter)((unsigned char **)&str, &sz, (unsigned char *)s, (size_t)Z_STRLEN_P(zendlval));
-               ZVAL_STRINGL(zendlval, str, sz);
-       }
-       RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
-}
-#line 1704 "Zend/zend_language_scanner.c"
-yy19:
-               YYDEBUG(19, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 'S') {
-                       if (yych <= 'D') {
-                               if (yych <= ' ') {
-                                       if (yych == '\t') goto yy81;
-                                       if (yych <= 0x1F) goto yy9;
-                                       goto yy81;
-                               } else {
-                                       if (yych <= '@') goto yy9;
-                                       if (yych == 'C') goto yy9;
-                                       goto yy81;
-                               }
-                       } else {
-                               if (yych <= 'I') {
-                                       if (yych == 'F') goto yy81;
-                                       if (yych <= 'H') goto yy9;
-                                       goto yy81;
-                               } else {
-                                       if (yych == 'O') goto yy81;
-                                       if (yych <= 'Q') goto yy9;
-                                       goto yy81;
-                               }
-                       }
-               } else {
-                       if (yych <= 'f') {
-                               if (yych <= 'b') {
-                                       if (yych == 'U') goto yy81;
-                                       if (yych <= '`') goto yy9;
-                                       goto yy81;
-                               } else {
-                                       if (yych == 'd') goto yy81;
-                                       if (yych <= 'e') goto yy9;
-                                       goto yy81;
-                               }
-                       } else {
-                               if (yych <= 'o') {
-                                       if (yych == 'i') goto yy81;
-                                       if (yych <= 'n') goto yy9;
-                                       goto yy81;
-                               } else {
-                                       if (yych <= 's') {
-                                               if (yych <= 'q') goto yy9;
-                                               goto yy81;
-                                       } else {
-                                               if (yych == 'u') goto yy81;
-                                               goto yy9;
-                                       }
-                               }
-                       }
-               }
-yy20:
-               YYDEBUG(20, *YYCURSOR);
-               ++YYCURSOR;
-               goto yy9;
-yy21:
-               YYDEBUG(21, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '*') goto yy92;
-               if (yych == '=') goto yy94;
-               goto yy9;
-yy22:
-               YYDEBUG(22, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '+') goto yy96;
-               if (yych == '=') goto yy98;
-               goto yy9;
-yy23:
-               YYDEBUG(23, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '<') {
-                       if (yych == '-') goto yy100;
-                       goto yy9;
-               } else {
-                       if (yych <= '=') goto yy102;
-                       if (yych <= '>') goto yy104;
-                       goto yy9;
-               }
-yy24:
-               YYDEBUG(24, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '/') {
-                       if (yych == '.') goto yy106;
-                       goto yy9;
-               } else {
-                       if (yych <= '9') goto yy107;
-                       if (yych == '=') goto yy110;
-                       goto yy9;
-               }
-yy25:
-               YYDEBUG(25, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '.') {
-                       if (yych == '*') goto yy112;
-                       goto yy9;
-               } else {
-                       if (yych <= '/') goto yy12;
-                       if (yych == '=') goto yy114;
-                       goto yy9;
-               }
-yy26:
-               YYDEBUG(26, *YYCURSOR);
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 'X') {
-                       if (yych == 'B') goto yy116;
-                       if (yych <= 'W') goto yy29;
-                       goto yy118;
-               } else {
-                       if (yych <= 'b') {
-                               if (yych <= 'a') goto yy29;
-                               goto yy116;
-                       } else {
-                               if (yych == 'x') goto yy118;
-                               goto yy29;
-                       }
-               }
-yy27:
-               YYDEBUG(27, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1781 "Zend/zend_language_scanner.l"
-               {
-       char *end;
-       if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
-               errno = 0;
-               ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0));
-               /* This isn't an assert, we need to ensure 019 isn't valid octal
-                * Because the lexing itself doesn't do that for us
-                */
-               if (end != yytext + yyleng) {
-                       zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
-                       ZVAL_UNDEF(zendlval);
-                       if (PARSER_MODE()) {
-                               RETURN_TOKEN(T_ERROR);
-                       }
-                       RETURN_TOKEN_WITH_VAL(T_LNUMBER);
-               }
-       } else {
-               errno = 0;
-               ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0));
-               if (errno == ERANGE) { /* Overflow */
-                       errno = 0;
-                       if (yytext[0] == '0') { /* octal overflow */
-                               ZVAL_DOUBLE(zendlval, zend_oct_strtod(yytext, (const char **)&end));
-                       } else {
-                               ZVAL_DOUBLE(zendlval, zend_strtod(yytext, (const char **)&end));
-                       }
-                       /* Also not an assert for the same reason */
-                       if (end != yytext + yyleng) {
-                               zend_throw_exception(zend_ce_parse_error,
-                                       "Invalid numeric literal", 0);
-                               ZVAL_UNDEF(zendlval);
-                               if (PARSER_MODE()) {
-                                       RETURN_TOKEN(T_ERROR);
-                               }
-                       }
-                       RETURN_TOKEN_WITH_VAL(T_DNUMBER);
-               }
-               /* Also not an assert for the same reason */
-               if (end != yytext + yyleng) {
-                       zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
-                       ZVAL_UNDEF(zendlval);
-                       if (PARSER_MODE()) {
-                               RETURN_TOKEN(T_ERROR);
-                       }
-                       RETURN_TOKEN_WITH_VAL(T_DNUMBER);
-               }
-       }
-       ZEND_ASSERT(!errno);
-       RETURN_TOKEN_WITH_VAL(T_LNUMBER);
-}
-#line 1879 "Zend/zend_language_scanner.c"
-yy28:
-               YYDEBUG(28, *YYCURSOR);
-               yyaccept = 1;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-yy29:
-               YYDEBUG(29, *YYCURSOR);
-               if (yybm[0+yych] & 8) {
-                       goto yy28;
-               }
-               if (yych <= 'D') {
-                       if (yych == '.') goto yy107;
-                       goto yy27;
-               } else {
-                       if (yych <= 'E') goto yy117;
-                       if (yych == 'e') goto yy117;
-                       goto yy27;
-               }
-yy30:
-               YYDEBUG(30, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == ':') goto yy119;
-               goto yy9;
-yy31:
-               YYDEBUG(31, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= ';') goto yy9;
-               if (yych <= '<') goto yy121;
-               if (yych <= '=') goto yy123;
-               if (yych <= '>') goto yy125;
-               goto yy9;
-yy32:
-               YYDEBUG(32, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '<') goto yy9;
-               if (yych <= '=') goto yy126;
-               if (yych <= '>') goto yy128;
-               goto yy9;
-yy33:
-               YYDEBUG(33, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '<') goto yy9;
-               if (yych <= '=') goto yy130;
-               if (yych <= '>') goto yy132;
-               goto yy9;
-yy34:
-               YYDEBUG(34, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '=') goto yy9;
-               if (yych <= '>') goto yy134;
-               if (yych <= '?') goto yy136;
-               goto yy9;
-yy35:
-               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 2045 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN_WITH_STR(T_STRING, 0);
-}
-#line 1965 "Zend/zend_language_scanner.c"
-yy37:
-               YYDEBUG(37, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= ';') {
-                       if (yych <= '"') {
-                               if (yych <= '!') goto yy44;
-                               goto yy10;
-                       } else {
-                               if (yych == '\'') goto yy17;
-                               goto yy44;
-                       }
-               } else {
-                       if (yych <= 'R') {
-                               if (yych <= '<') goto yy143;
-                               if (yych <= 'Q') goto yy44;
-                               goto yy144;
-                       } else {
-                               if (yych == 'r') goto yy144;
-                               goto yy44;
-                       }
-               }
-yy38:
-               YYDEBUG(38, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'O') {
-                       if (yych <= 'K') {
-                               if (yych == 'A') goto yy145;
-                               goto yy44;
-                       } else {
-                               if (yych <= 'L') goto yy146;
-                               if (yych <= 'N') goto yy44;
-                               goto yy147;
-                       }
-               } else {
-                       if (yych <= 'k') {
-                               if (yych == 'a') goto yy145;
-                               goto yy44;
-                       } else {
-                               if (yych <= 'l') goto yy146;
-                               if (yych == 'o') goto yy147;
-                               goto yy44;
-                       }
-               }
-yy39:
-               YYDEBUG(39, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'O') {
-                       if (yych <= 'H') {
-                               if (yych == 'E') goto yy148;
-                               goto yy44;
-                       } else {
-                               if (yych <= 'I') goto yy149;
-                               if (yych <= 'N') goto yy44;
-                               goto yy150;
-                       }
-               } else {
-                       if (yych <= 'h') {
-                               if (yych == 'e') goto yy148;
-                               goto yy44;
-                       } else {
-                               if (yych <= 'i') goto yy149;
-                               if (yych == 'o') goto yy150;
-                               goto yy44;
-                       }
-               }
-yy40:
-               YYDEBUG(40, *YYCURSOR);
-               yych = *++YYCURSOR;
-               switch (yych) {
-               case 'C':
-               case 'c':       goto yy152;
-               case 'L':
-               case 'l':       goto yy153;
-               case 'M':
-               case 'm':       goto yy154;
-               case 'N':
-               case 'n':       goto yy155;
-               case 'V':
-               case 'v':       goto yy156;
-               case 'X':
-               case 'x':       goto yy157;
-               default:        goto yy44;
-               }
-yy41:
-               YYDEBUG(41, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'U') {
-                       if (yych <= 'N') {
-                               if (yych == 'I') goto yy158;
-                               goto yy44;
-                       } else {
-                               if (yych <= 'O') goto yy159;
-                               if (yych <= 'T') goto yy44;
-                               goto yy160;
-                       }
-               } else {
-                       if (yych <= 'n') {
-                               if (yych == 'i') goto yy158;
-                               goto yy44;
-                       } else {
-                               if (yych <= 'o') goto yy159;
-                               if (yych == 'u') goto yy160;
-                               goto yy44;
-                       }
-               }
-yy42:
-               YYDEBUG(42, *YYCURSOR);
-               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;
-                       }
-               }
-yy43:
-               YYDEBUG(43, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy44:
-               YYDEBUG(44, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               goto yy36;
-yy45:
-               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;
-                       }
-               }
-yy46:
-               YYDEBUG(46, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy168;
-               if (yych == 'i') goto yy168;
-               goto yy44;
-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:
-               YYDEBUG(48, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy171;
-               if (yych == 'r') goto yy171;
-               goto yy44;
-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:
-               YYDEBUG(50, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy175;
-               if (yych == 'e') goto yy175;
-               goto yy44;
-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;
-                       }
-               }
-yy52:
-               YYDEBUG(52, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'R') {
-                       if (yych == 'H') goto yy178;
-                       if (yych <= 'Q') goto yy44;
-                       goto yy179;
-               } else {
-                       if (yych <= 'h') {
-                               if (yych <= 'g') goto yy44;
-                               goto yy178;
-                       } else {
-                               if (yych == 'r') goto yy179;
-                               goto yy44;
-                       }
-               }
-yy53:
-               YYDEBUG(53, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'S') {
-                       if (yych == 'N') goto yy180;
-                       if (yych <= 'R') goto yy44;
-                       goto yy181;
-               } else {
-                       if (yych <= 'n') {
-                               if (yych <= 'm') goto yy44;
-                               goto yy180;
-                       } else {
-                               if (yych == 's') goto yy181;
-                               goto yy44;
-                       }
-               }
-yy54:
-               YYDEBUG(54, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '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 1452 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_NS_SEPARATOR);
-}
-#line 2254 "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 2402 "Zend/zend_language_scanner.l"
-               {
-       BEGIN(ST_BACKQUOTE);
-       RETURN_TOKEN('`');
-}
-#line 2275 "Zend/zend_language_scanner.c"
-yy64:
-               YYDEBUG(64, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(65, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1717 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_IN_SCRIPTING);
-       RETURN_TOKEN('{');
-}
-#line 2286 "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 1729 "Zend/zend_language_scanner.l"
-               {
-       RESET_DOC_COMMENT();
-       if (!zend_stack_is_empty(&SCNG(state_stack))) {
-               yy_pop_state();
-       }
-       RETURN_TOKEN('}');
-}
-#line 2306 "Zend/zend_language_scanner.c"
-yy69:
-               YYDEBUG(69, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '=') goto yy193;
-yy70:
-               YYDEBUG(70, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1616 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_IS_NOT_EQUAL);
-}
-#line 2318 "Zend/zend_language_scanner.c"
-yy71:
-               YYDEBUG(71, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(72, *YYCURSOR);
-               if (yych <= '^') {
-                       if (yych <= '9') {
-                               if (yych >= '0') goto yy71;
-                       } else {
-                               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 2023 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 2347 "Zend/zend_language_scanner.c"
-yy74:
-               YYDEBUG(74, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(75, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1660 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_MOD_EQUAL);
-}
-#line 2357 "Zend/zend_language_scanner.c"
-yy76:
-               YYDEBUG(76, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(77, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1688 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_BOOLEAN_AND);
-}
-#line 2367 "Zend/zend_language_scanner.c"
-yy78:
-               YYDEBUG(78, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(79, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1672 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_AND_EQUAL);
-}
-#line 2377 "Zend/zend_language_scanner.c"
-yy80:
-               YYDEBUG(80, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(7);
-               yych = *YYCURSOR;
-yy81:
-               YYDEBUG(81, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy80;
-               }
-               switch (yych) {
-               case 'A':
-               case 'a':       goto yy83;
-               case 'B':
-               case 'b':       goto yy84;
-               case 'D':
-               case 'd':       goto yy85;
-               case 'F':
-               case 'f':       goto yy86;
-               case 'I':
-               case 'i':       goto yy87;
-               case 'O':
-               case 'o':       goto yy88;
-               case 'R':
-               case 'r':       goto yy89;
-               case 'S':
-               case 's':       goto yy90;
-               case 'U':
-               case 'u':       goto yy91;
-               default:        goto yy82;
-               }
-yy82:
-               YYDEBUG(82, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               if (yyaccept <= 3) {
-                       if (yyaccept <= 1) {
-                               if (yyaccept == 0) {
-                                       goto yy9;
-                               } else {
-                                       goto yy27;
-                               }
-                       } else {
-                               if (yyaccept == 2) {
-                                       goto yy36;
-                               } else {
-                                       goto yy109;
-                               }
-                       }
-               } else {
-                       if (yyaccept <= 5) {
-                               if (yyaccept == 4) {
-                                       goto yy113;
-                               } else {
-                                       goto yy122;
-                               }
-                       } else {
-                               goto yy457;
-                       }
-               }
-yy83:
-               YYDEBUG(83, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy195;
-               if (yych == 'r') goto yy195;
-               goto yy82;
-yy84:
-               YYDEBUG(84, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'O') {
-                       if (yych == 'I') goto yy196;
-                       if (yych <= 'N') goto yy82;
-                       goto yy197;
-               } else {
-                       if (yych <= 'i') {
-                               if (yych <= 'h') goto yy82;
-                               goto yy196;
-                       } else {
-                               if (yych == 'o') goto yy197;
-                               goto yy82;
-                       }
-               }
-yy85:
-               YYDEBUG(85, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy198;
-               if (yych == 'o') goto yy198;
-               goto yy82;
-yy86:
-               YYDEBUG(86, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy199;
-               if (yych == 'l') goto yy199;
-               goto yy82;
-yy87:
-               YYDEBUG(87, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy200;
-               if (yych == 'n') goto yy200;
-               goto yy82;
-yy88:
-               YYDEBUG(88, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy201;
-               if (yych == 'b') goto yy201;
-               goto yy82;
-yy89:
-               YYDEBUG(89, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy202;
-               if (yych == 'e') goto yy202;
-               goto yy82;
-yy90:
-               YYDEBUG(90, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy203;
-               if (yych == 't') goto yy203;
-               goto yy82;
-yy91:
-               YYDEBUG(91, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy204;
-               if (yych == 'n') goto yy204;
-               goto yy82;
-yy92:
-               YYDEBUG(92, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '=') goto yy205;
-               YYDEBUG(93, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1644 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_POW);
-}
-#line 2511 "Zend/zend_language_scanner.c"
-yy94:
-               YYDEBUG(94, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(95, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1640 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_MUL_EQUAL);
-}
-#line 2521 "Zend/zend_language_scanner.c"
-yy96:
-               YYDEBUG(96, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(97, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1596 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_INC);
-}
-#line 2531 "Zend/zend_language_scanner.c"
-yy98:
-               YYDEBUG(98, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(99, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1632 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_PLUS_EQUAL);
-}
-#line 2541 "Zend/zend_language_scanner.c"
-yy100:
-               YYDEBUG(100, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(101, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1600 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_DEC);
-}
-#line 2551 "Zend/zend_language_scanner.c"
-yy102:
-               YYDEBUG(102, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(103, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1636 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_MINUS_EQUAL);
-}
-#line 2561 "Zend/zend_language_scanner.c"
-yy104:
-               YYDEBUG(104, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(105, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1424 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_LOOKING_FOR_PROPERTY);
-       RETURN_TOKEN(T_OBJECT_OPERATOR);
-}
-#line 2572 "Zend/zend_language_scanner.c"
-yy106:
-               YYDEBUG(106, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '.') goto yy207;
-               goto yy82;
-yy107:
-               YYDEBUG(107, *YYCURSOR);
-               yyaccept = 3;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               YYDEBUG(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 1885 "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 2604 "Zend/zend_language_scanner.c"
-yy110:
-               YYDEBUG(110, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(111, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1656 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_CONCAT_EQUAL);
-}
-#line 2614 "Zend/zend_language_scanner.c"
-yy112:
-               YYDEBUG(112, *YYCURSOR);
-               yyaccept = 4;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == '*') goto yy209;
-yy113:
-               YYDEBUG(113, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2082 "Zend/zend_language_scanner.l"
-               {
-       int doc_com;
-
-       if (yyleng > 2) {
-               doc_com = 1;
-               RESET_DOC_COMMENT();
-       } else {
-               doc_com = 0;
-       }
-
-       while (YYCURSOR < YYLIMIT) {
-               if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
-                       break;
-               }
-       }
-
-       if (YYCURSOR < YYLIMIT) {
-               YYCURSOR++;
-       } else {
-               zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno));
-       }
-
-       yyleng = YYCURSOR - SCNG(yy_text);
-       HANDLE_NEWLINES(yytext, yyleng);
-
-       if (doc_com) {
-               CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
-               if (PARSER_MODE()) {
-                       SKIP_TOKEN(T_DOC_COMMENT);
-               }
-               RETURN_TOKEN(T_DOC_COMMENT);
-       }
-
-       if (PARSER_MODE()) {
-               SKIP_TOKEN(T_COMMENT);
-       }
-       RETURN_TOKEN(T_COMMENT);
-}
-#line 2662 "Zend/zend_language_scanner.c"
-yy114:
-               YYDEBUG(114, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(115, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1652 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_DIV_EQUAL);
-}
-#line 2672 "Zend/zend_language_scanner.c"
-yy116:
-               YYDEBUG(116, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 64) {
-                       goto yy210;
-               }
-               goto yy82;
-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;
-               }
-yy118:
-               YYDEBUG(118, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 128) {
-                       goto yy216;
-               }
-               goto yy82;
-yy119:
-               YYDEBUG(119, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(120, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1448 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
-}
-#line 2708 "Zend/zend_language_scanner.c"
-yy121:
-               YYDEBUG(121, *YYCURSOR);
-               yyaccept = 5;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= ';') goto yy122;
-               if (yych <= '<') goto yy219;
-               if (yych <= '=') goto yy221;
-yy122:
-               YYDEBUG(122, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1704 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_SL);
-}
-#line 2723 "Zend/zend_language_scanner.c"
-yy123:
-               YYDEBUG(123, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '>') goto yy223;
-               YYDEBUG(124, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1624 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
-}
-#line 2734 "Zend/zend_language_scanner.c"
-yy125:
-               YYDEBUG(125, *YYCURSOR);
-               ++YYCURSOR;
-               goto yy70;
-yy126:
-               YYDEBUG(126, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '=') goto yy225;
-               YYDEBUG(127, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1612 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_IS_EQUAL);
-}
-#line 2749 "Zend/zend_language_scanner.c"
-yy128:
-               YYDEBUG(128, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(129, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1580 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_DOUBLE_ARROW);
-}
-#line 2759 "Zend/zend_language_scanner.c"
-yy130:
-               YYDEBUG(130, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(131, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1628 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
-}
-#line 2769 "Zend/zend_language_scanner.c"
-yy132:
-               YYDEBUG(132, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '=') goto yy227;
-               YYDEBUG(133, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1708 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_SR);
-}
-#line 2780 "Zend/zend_language_scanner.c"
-yy134:
-               YYDEBUG(134, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy229;
-               if (yych == '\r') goto yy230;
-yy135:
-               YYDEBUG(135, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2121 "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 2800 "Zend/zend_language_scanner.c"
-yy136:
-               YYDEBUG(136, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(137, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1460 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_COALESCE);
-}
-#line 2810 "Zend/zend_language_scanner.c"
-yy138:
-               YYDEBUG(138, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy231;
-               if (yych == 's') goto yy231;
-               goto yy44;
-yy139:
-               YYDEBUG(139, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy232;
-               if (yych == 'd') goto yy232;
-               goto yy44;
-yy140:
-               YYDEBUG(140, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy234;
-               if (yych == 'r') goto yy234;
-               goto yy44;
-yy141:
-               YYDEBUG(141, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(142, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1364 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_AS);
-}
-#line 2841 "Zend/zend_language_scanner.c"
-yy143:
-               YYDEBUG(143, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '<') goto yy235;
-               goto yy82;
-yy144:
-               YYDEBUG(144, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy236;
-               if (yych == 'e') goto yy236;
-               goto yy44;
-yy145:
-               YYDEBUG(145, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'T') {
-                       if (yych <= 'L') {
-                               if (yych <= 'K') goto yy44;
-                               goto yy237;
-                       } else {
-                               if (yych <= 'R') goto yy44;
-                               if (yych <= 'S') goto yy238;
-                               goto yy239;
-                       }
-               } else {
-                       if (yych <= 'r') {
-                               if (yych == 'l') goto yy237;
-                               goto yy44;
-                       } else {
-                               if (yych <= 's') goto yy238;
-                               if (yych <= 't') goto yy239;
-                               goto yy44;
-                       }
-               }
-yy146:
-               YYDEBUG(146, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'O') {
-                       if (yych == 'A') goto yy240;
-                       if (yych <= 'N') goto yy44;
-                       goto yy241;
-               } else {
-                       if (yych <= 'a') {
-                               if (yych <= '`') goto yy44;
-                               goto yy240;
-                       } else {
-                               if (yych == 'o') goto yy241;
-                               goto yy44;
-                       }
-               }
-yy147:
-               YYDEBUG(147, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy242;
-               if (yych == 'n') goto yy242;
-               goto yy44;
-yy148:
-               YYDEBUG(148, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'F') {
-                       if (yych == 'C') goto yy243;
-                       if (yych <= 'E') goto yy44;
-                       goto yy244;
-               } else {
-                       if (yych <= 'c') {
-                               if (yych <= 'b') goto yy44;
-                               goto yy243;
-                       } else {
-                               if (yych == 'f') goto yy244;
-                               goto yy44;
-                       }
-               }
-yy149:
-               YYDEBUG(149, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy245;
-               if (yych == 'e') goto yy245;
-               goto yy44;
-yy150:
-               YYDEBUG(150, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(151, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1332 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_DO);
-}
-#line 2931 "Zend/zend_language_scanner.c"
-yy152:
-               YYDEBUG(152, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy247;
-               if (yych == 'h') goto yy247;
-               goto yy44;
-yy153:
-               YYDEBUG(153, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy248;
-               if (yych == 's') goto yy248;
-               goto yy44;
-yy154:
-               YYDEBUG(154, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy249;
-               if (yych == 'p') goto yy249;
-               goto yy44;
-yy155:
-               YYDEBUG(155, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy250;
-               if (yych == 'd') goto yy250;
-               goto yy44;
-yy156:
-               YYDEBUG(156, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy251;
-               if (yych == 'a') goto yy251;
-               goto yy44;
-yy157:
-               YYDEBUG(157, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'T') {
-                       if (yych == 'I') goto yy252;
-                       if (yych <= 'S') goto yy44;
-                       goto yy253;
-               } else {
-                       if (yych <= 'i') {
-                               if (yych <= 'h') goto yy44;
-                               goto yy252;
-                       } else {
-                               if (yych == 't') goto yy253;
-                               goto yy44;
-                       }
-               }
-yy158:
-               YYDEBUG(158, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy254;
-               if (yych == 'n') goto yy254;
-               goto yy44;
-yy159:
-               YYDEBUG(159, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy255;
-               if (yych == 'r') goto yy255;
-               goto yy44;
-yy160:
-               YYDEBUG(160, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy257;
-               if (yych == 'n') goto yy257;
-               goto yy44;
-yy161:
-               YYDEBUG(161, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy258;
-               if (yych == 'o') goto yy258;
-               goto yy44;
-yy162:
-               YYDEBUG(162, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy259;
-               if (yych == 't') goto yy259;
-               goto yy44;
-yy163:
-               YYDEBUG(163, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(164, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1308 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_IF);
-}
-#line 3020 "Zend/zend_language_scanner.c"
-yy165:
-               YYDEBUG(165, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy260;
-               if (yych == 'p') goto yy260;
-               goto yy44;
-yy166:
-               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;
-                       }
-               } else {
-                       if (yych <= 'r') {
-                               if (yych == 'c') goto yy261;
-                               goto yy44;
-                       } else {
-                               if (yych <= 's') goto yy262;
-                               if (yych <= 't') goto yy263;
-                               goto yy44;
-                       }
-               }
-yy167:
-               YYDEBUG(167, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy264;
-               if (yych == 's') goto yy264;
-               goto yy44;
-yy168:
-               YYDEBUG(168, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy265;
-               if (yych == 's') goto yy265;
-               goto yy44;
-yy169:
-               YYDEBUG(169, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'M') goto yy266;
-               if (yych == 'm') goto yy266;
-               goto yy44;
-yy170:
-               YYDEBUG(170, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'W') goto yy267;
-               if (yych == 'w') goto yy267;
-               goto yy44;
-yy171:
-               YYDEBUG(171, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(172, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1692 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_LOGICAL_OR);
-}
-#line 3085 "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;
-                       }
-               }
-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;
-                       }
-               }
-yy176:
-               YYDEBUG(176, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy274;
-               if (yych == 'a') goto yy274;
-               goto yy44;
-yy177:
-               YYDEBUG(177, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy275;
-               if (yych == 'i') goto yy275;
-               goto yy44;
-yy178:
-               YYDEBUG(178, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy276;
-               if (yych == 'r') goto yy276;
-               goto yy44;
-yy179:
-               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;
-                       }
-               }
-yy180:
-               YYDEBUG(180, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy280;
-               if (yych == 's') goto yy280;
-               goto yy44;
-yy181:
-               YYDEBUG(181, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy281;
-               if (yych == 'e') goto yy281;
-               goto yy44;
-yy182:
-               YYDEBUG(182, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy283;
-               if (yych == 'r') goto yy283;
-               goto yy44;
-yy183:
-               YYDEBUG(183, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy285;
-               if (yych == 'i') goto yy285;
-               goto yy44;
-yy184:
-               YYDEBUG(184, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy286;
-               if (yych == 'r') goto yy286;
-               goto yy44;
-yy185:
-               YYDEBUG(185, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy288;
-               if (yych == 'e') goto yy288;
-               goto yy44;
-yy186:
-               YYDEBUG(186, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(187, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1680 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_XOR_EQUAL);
-}
-#line 3203 "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);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1676 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_OR_EQUAL);
-}
-#line 3235 "Zend/zend_language_scanner.c"
-yy191:
-               YYDEBUG(191, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(192, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1684 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_BOOLEAN_OR);
-}
-#line 3245 "Zend/zend_language_scanner.c"
-yy193:
-               YYDEBUG(193, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(194, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1608 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_IS_NOT_IDENTICAL);
-}
-#line 3255 "Zend/zend_language_scanner.c"
-yy195:
-               YYDEBUG(195, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy297;
-               if (yych == 'r') goto yy297;
-               goto yy82;
-yy196:
-               YYDEBUG(196, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy298;
-               if (yych == 'n') goto yy298;
-               goto yy82;
-yy197:
-               YYDEBUG(197, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy299;
-               if (yych == 'o') goto yy299;
-               goto yy82;
-yy198:
-               YYDEBUG(198, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy300;
-               if (yych == 'u') goto yy300;
-               goto yy82;
-yy199:
-               YYDEBUG(199, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy301;
-               if (yych == 'o') goto yy301;
-               goto yy82;
-yy200:
-               YYDEBUG(200, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy302;
-               if (yych == 't') goto yy302;
-               goto yy82;
-yy201:
-               YYDEBUG(201, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'J') goto yy303;
-               if (yych == 'j') goto yy303;
-               goto yy82;
-yy202:
-               YYDEBUG(202, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy304;
-               if (yych == 'a') goto yy304;
-               goto yy82;
-yy203:
-               YYDEBUG(203, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy305;
-               if (yych == 'r') goto yy305;
-               goto yy82;
-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);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1648 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_POW_EQUAL);
-}
-#line 3325 "Zend/zend_language_scanner.c"
-yy207:
-               YYDEBUG(207, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(208, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1456 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_ELLIPSIS);
-}
-#line 3335 "Zend/zend_language_scanner.c"
-yy209:
-               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;
-               }
-yy210:
-               YYDEBUG(210, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(211, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy210;
-               }
-               YYDEBUG(212, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1753 "Zend/zend_language_scanner.l"
-               {
-       char *bin = yytext + 2; /* Skip "0b" */
-       int len = yyleng - 2;
-       char *end;
-
-       /* Skip any leading 0s */
-       while (*bin == '0') {
-               ++bin;
-               --len;
-       }
-
-       if (len < SIZEOF_ZEND_LONG * 8) {
-               if (len == 0) {
-                       ZVAL_LONG(zendlval, 0);
-               } else {
-                       errno = 0;
-                       ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2));
-                       ZEND_ASSERT(!errno && end == yytext + yyleng);
-               }
-               RETURN_TOKEN_WITH_VAL(T_LNUMBER);
-       } else {
-               ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end));
-               /* errno isn't checked since we allow HUGE_VAL/INF overflow */
-               ZEND_ASSERT(end == yytext + yyleng);
-               RETURN_TOKEN_WITH_VAL(T_DNUMBER);
-       }
-}
-#line 3387 "Zend/zend_language_scanner.c"
-yy213:
-               YYDEBUG(213, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '/') goto yy82;
-               if (yych >= ':') goto yy82;
-yy214:
-               YYDEBUG(214, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(215, *YYCURSOR);
-               if (yych <= '/') goto yy109;
-               if (yych <= '9') goto yy214;
-               goto yy109;
-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 1832 "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 3441 "Zend/zend_language_scanner.c"
-yy219:
-               YYDEBUG(219, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-               YYDEBUG(220, *YYCURSOR);
-               if (yych <= '\'') {
-                       if (yych <= ' ') {
-                               if (yych == '\t') goto yy219;
-                               if (yych <= 0x1F) goto yy82;
-                               goto yy219;
-                       } else {
-                               if (yych == '"') goto yy309;
-                               if (yych <= '&') goto yy82;
-                               goto yy310;
-                       }
-               } else {
-                       if (yych <= '_') {
-                               if (yych <= '@') goto yy82;
-                               if (yych <= 'Z') goto yy311;
-                               if (yych <= '^') goto yy82;
-                               goto yy311;
-                       } else {
-                               if (yych <= '`') goto yy82;
-                               if (yych <= 'z') goto yy311;
-                               if (yych <= 0x7F) goto yy82;
-                               goto yy311;
-                       }
-               }
-yy221:
-               YYDEBUG(221, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(222, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1664 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_SL_EQUAL);
-}
-#line 3480 "Zend/zend_language_scanner.c"
-yy223:
-               YYDEBUG(223, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(224, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1620 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_SPACESHIP);
-}
-#line 3490 "Zend/zend_language_scanner.c"
-yy225:
-               YYDEBUG(225, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(226, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1604 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_IS_IDENTICAL);
-}
-#line 3500 "Zend/zend_language_scanner.c"
-yy227:
-               YYDEBUG(227, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(228, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1668 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_SR_EQUAL);
-}
-#line 3510 "Zend/zend_language_scanner.c"
-yy229:
-               YYDEBUG(229, *YYCURSOR);
-               ++YYCURSOR;
-               goto yy135;
-yy230:
-               YYDEBUG(230, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy229;
-               goto yy135;
-yy231:
-               YYDEBUG(231, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy313;
-               if (yych == 't') goto yy313;
-               goto yy44;
-yy232:
-               YYDEBUG(232, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(233, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1696 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_LOGICAL_AND);
-}
-#line 3538 "Zend/zend_language_scanner.c"
-yy234:
-               YYDEBUG(234, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy314;
-               if (yych == 'a') goto yy314;
-               goto yy44;
-yy235:
-               YYDEBUG(235, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '<') goto yy219;
-               goto yy82;
-yy236:
-               YYDEBUG(236, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy315;
-               if (yych == 'a') goto yy315;
-               goto yy44;
-yy237:
-               YYDEBUG(237, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy316;
-               if (yych == 'l') goto yy316;
-               goto yy44;
-yy238:
-               YYDEBUG(238, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy317;
-               if (yych == 'e') goto yy317;
-               goto yy44;
-yy239:
-               YYDEBUG(239, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy319;
-               if (yych == 'c') goto yy319;
-               goto yy44;
-yy240:
-               YYDEBUG(240, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy320;
-               if (yych == 's') goto yy320;
-               goto yy44;
-yy241:
-               YYDEBUG(241, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy321;
-               if (yych == 'n') goto yy321;
-               goto yy44;
-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;
-               }
-yy243:
-               YYDEBUG(243, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy324;
-               if (yych == 'l') goto yy324;
-               goto yy44;
-yy244:
-               YYDEBUG(244, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy325;
-               if (yych == 'a') goto yy325;
-               goto yy44;
-yy245:
-               YYDEBUG(245, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(246, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1266 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_EXIT);
-}
-#line 3623 "Zend/zend_language_scanner.c"
-yy247:
-               YYDEBUG(247, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy326;
-               if (yych == 'o') goto yy326;
-               goto yy44;
-yy248:
-               YYDEBUG(248, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy328;
-               if (yych == 'e') goto yy328;
-               goto yy44;
-yy249:
-               YYDEBUG(249, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy330;
-               if (yych == 't') goto yy330;
-               goto yy44;
-yy250:
-               YYDEBUG(250, *YYCURSOR);
-               yych = *++YYCURSOR;
-               switch (yych) {
-               case 'D':
-               case 'd':       goto yy331;
-               case 'F':
-               case 'f':       goto yy332;
-               case 'I':
-               case 'i':       goto yy333;
-               case 'S':
-               case 's':       goto yy334;
-               case 'W':
-               case 'w':       goto yy335;
-               default:        goto yy44;
-               }
-yy251:
-               YYDEBUG(251, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '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;
-yy253:
-               YYDEBUG(253, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy340;
-               if (yych == 'e') goto yy340;
-               goto yy44;
-yy254:
-               YYDEBUG(254, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy341;
-               if (yych == 'a') goto yy341;
-               goto yy44;
-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;
-                       }
-               } else {
-                       if (yych <= 'd') {
-                               if (yych != '`') goto yy43;
-                       } else {
-                               if (yych <= 'e') goto yy342;
-                               if (yych <= 'z') goto yy43;
-                               if (yych >= 0x80) goto yy43;
-                       }
-               }
-yy256:
-               YYDEBUG(256, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1336 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_FOR);
-}
-#line 3709 "Zend/zend_language_scanner.c"
-yy257:
-               YYDEBUG(257, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy343;
-               if (yych == 'c') goto yy343;
-               goto yy44;
-yy258:
-               YYDEBUG(258, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy344;
-               if (yych == 'b') goto yy344;
-               goto yy44;
-yy259:
-               YYDEBUG(259, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy345;
-               if (yych == 'o') goto yy345;
-               goto yy44;
-yy260:
-               YYDEBUG(260, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy347;
-               if (yych == 'l') goto yy347;
-               goto yy44;
-yy261:
-               YYDEBUG(261, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy348;
-               if (yych == 'l') goto yy348;
-               goto yy44;
-yy262:
-               YYDEBUG(262, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy349;
-               if (yych == 't') goto yy349;
-               goto yy44;
-yy263:
-               YYDEBUG(263, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy350;
-               if (yych == 'e') goto yy350;
-               goto yy44;
-yy264:
-               YYDEBUG(264, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy351;
-               if (yych == 'e') goto yy351;
-               goto yy44;
-yy265:
-               YYDEBUG(265, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy352;
-               if (yych == 't') goto yy352;
-               goto yy44;
-yy266:
-               YYDEBUG(266, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy354;
-               if (yych == 'e') goto yy354;
-               goto yy44;
-yy267:
-               YYDEBUG(267, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(268, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1464 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_NEW);
-}
-#line 3782 "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;
-                       }
-               }
-yy270:
-               YYDEBUG(270, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy357;
-               if (yych == 't') goto yy357;
-               goto yy44;
-yy271:
-               YYDEBUG(271, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy358;
-               if (yych == 'l') goto yy358;
-               goto yy44;
-yy272:
-               YYDEBUG(272, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy359;
-               if (yych == 'u') goto yy359;
-               goto yy44;
-yy273:
-               YYDEBUG(273, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy360;
-               if (yych == 'u') goto yy360;
-               goto yy44;
-yy274:
-               YYDEBUG(274, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy361;
-               if (yych == 't') goto yy361;
-               goto yy44;
-yy275:
-               YYDEBUG(275, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy362;
-               if (yych == 't') goto yy362;
-               goto yy44;
-yy276:
-               YYDEBUG(276, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy363;
-               if (yych == 'o') goto yy363;
-               goto yy44;
-yy277:
-               YYDEBUG(277, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy364;
-               if (yych == 'i') goto yy364;
-               goto yy44;
-yy278:
-               YYDEBUG(278, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(279, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1292 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_TRY);
-}
-#line 3859 "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;
-               }
-               YYDEBUG(282, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1528 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_USE);
-}
-#line 3878 "Zend/zend_language_scanner.c"
-yy283:
-               YYDEBUG(283, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(284, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1472 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_VAR);
-}
-#line 3891 "Zend/zend_language_scanner.c"
-yy285:
-               YYDEBUG(285, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy366;
-               if (yych == 'l') goto yy366;
-               goto yy44;
-yy286:
-               YYDEBUG(286, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(287, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1700 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_LOGICAL_XOR);
-}
-#line 3910 "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;
-yy290:
-               YYDEBUG(290, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy369;
-               if (yych == 'i') goto yy369;
-               goto yy44;
-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;
-                       }
-               }
-yy292:
-               YYDEBUG(292, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy372;
-               if (yych == 'a') goto yy372;
-               goto yy44;
-yy293:
-               YYDEBUG(293, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy373;
-               if (yych == 'i') goto yy373;
-               goto yy44;
-yy294:
-               YYDEBUG(294, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy374;
-               if (yych == 'e') goto yy374;
-               goto yy44;
-yy295:
-               YYDEBUG(295, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy375;
-               if (yych == 'a') goto yy375;
-               goto yy44;
-yy296:
-               YYDEBUG(296, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy376;
-               if (yych == 'r') goto yy376;
-               goto yy44;
-yy297:
-               YYDEBUG(297, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy377;
-               if (yych == 'a') goto yy377;
-               goto yy82;
-yy298:
-               YYDEBUG(298, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy378;
-               if (yych == 'a') goto yy378;
-               goto yy82;
-yy299:
-               YYDEBUG(299, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy379;
-               if (yych == 'l') goto yy379;
-               goto yy82;
-yy300:
-               YYDEBUG(300, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy380;
-               if (yych == 'b') goto yy380;
-               goto yy82;
-yy301:
-               YYDEBUG(301, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy381;
-               if (yych == 'a') goto yy381;
-               goto yy82;
-yy302:
-               YYDEBUG(302, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy386;
-               if (yych == 'e') goto yy386;
-               goto yy383;
-yy303:
-               YYDEBUG(303, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy387;
-               if (yych == 'e') goto yy387;
-               goto yy82;
-yy304:
-               YYDEBUG(304, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy388;
-               if (yych == 'l') goto yy388;
-               goto yy82;
-yy305:
-               YYDEBUG(305, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy390;
-               if (yych == 'i') goto yy390;
-               goto yy82;
-yy306:
-               YYDEBUG(306, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy391;
-               if (yych == 'e') goto yy391;
-               goto yy82;
-yy307:
-               YYDEBUG(307, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(308, *YYCURSOR);
-               if (yych <= '\f') {
-                       if (yych <= 0x08) goto yy113;
-                       if (yych <= '\n') goto yy307;
-                       goto yy113;
-               } else {
-                       if (yych <= '\r') goto yy307;
-                       if (yych == ' ') goto yy307;
-                       goto yy113;
-               }
-yy309:
-               YYDEBUG(309, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '"') goto yy82;
-               if (yych <= '/') goto yy393;
-               if (yych <= '9') goto yy82;
-               goto yy393;
-yy310:
-               YYDEBUG(310, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\'') goto yy82;
-               if (yych <= '/') goto yy395;
-               if (yych <= '9') goto yy82;
-               goto yy395;
-yy311:
-               YYDEBUG(311, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-               YYDEBUG(312, *YYCURSOR);
-               if (yych <= '@') {
-                       if (yych <= '\f') {
-                               if (yych == '\n') goto yy396;
-                               goto yy82;
-                       } else {
-                               if (yych <= '\r') goto yy398;
-                               if (yych <= '/') goto yy82;
-                               if (yych <= '9') goto yy311;
-                               goto yy82;
-                       }
-               } else {
-                       if (yych <= '_') {
-                               if (yych <= 'Z') goto yy311;
-                               if (yych <= '^') goto yy82;
-                               goto yy311;
-                       } else {
-                               if (yych <= '`') goto yy82;
-                               if (yych <= 'z') goto yy311;
-                               if (yych <= 0x7F) goto yy82;
-                               goto yy311;
-                       }
-               }
-yy313:
-               YYDEBUG(313, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy399;
-               if (yych == 'r') goto yy399;
-               goto yy44;
-yy314:
-               YYDEBUG(314, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy400;
-               if (yych == 'y') goto yy400;
-               goto yy44;
-yy315:
-               YYDEBUG(315, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'K') goto yy402;
-               if (yych == 'k') goto yy402;
-               goto yy44;
-yy316:
-               YYDEBUG(316, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy404;
-               if (yych == 'a') goto yy404;
-               goto yy44;
-yy317:
-               YYDEBUG(317, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(318, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1376 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_CASE);
-}
-#line 4128 "Zend/zend_language_scanner.c"
-yy319:
-               YYDEBUG(319, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy405;
-               if (yych == 'h') goto yy405;
-               goto yy44;
-yy320:
-               YYDEBUG(320, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy407;
-               if (yych == 's') goto yy407;
-               goto yy44;
-yy321:
-               YYDEBUG(321, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy409;
-               if (yych == 'e') goto yy409;
-               goto yy44;
-yy322:
-               YYDEBUG(322, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy411;
-               if (yych == 't') goto yy411;
-               goto yy44;
-yy323:
-               YYDEBUG(323, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy413;
-               if (yych == 'i') goto yy413;
-               goto yy44;
-yy324:
-               YYDEBUG(324, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy414;
-               if (yych == 'a') goto yy414;
-               goto yy44;
-yy325:
-               YYDEBUG(325, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy415;
-               if (yych == 'u') goto yy415;
-               goto yy44;
-yy326:
-               YYDEBUG(326, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(327, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1396 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_ECHO);
-}
-#line 4183 "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 1320 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_ELSE);
-}
-#line 4211 "Zend/zend_language_scanner.c"
-yy330:
-               YYDEBUG(330, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy417;
-               if (yych == 'y') goto yy417;
-               goto yy44;
-yy331:
-               YYDEBUG(331, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy419;
-               if (yych == 'e') goto yy419;
-               goto yy44;
-yy332:
-               YYDEBUG(332, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy420;
-               if (yych == 'o') goto yy420;
-               goto yy44;
-yy333:
-               YYDEBUG(333, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'F') goto yy421;
-               if (yych == 'f') goto yy421;
-               goto yy44;
-yy334:
-               YYDEBUG(334, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'W') goto yy423;
-               if (yych == 'w') goto yy423;
-               goto yy44;
-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;
-               }
-               YYDEBUG(337, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1504 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_EVAL);
-}
-#line 4260 "Zend/zend_language_scanner.c"
-yy338:
-               YYDEBUG(338, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(339, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1262 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_EXIT);
-}
-#line 4273 "Zend/zend_language_scanner.c"
-yy340:
-               YYDEBUG(340, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy425;
-               if (yych == 'n') goto yy425;
-               goto yy44;
-yy341:
-               YYDEBUG(341, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy426;
-               if (yych == 'l') goto yy426;
-               goto yy44;
-yy342:
-               YYDEBUG(342, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy428;
-               if (yych == 'a') goto yy428;
-               goto yy44;
-yy343:
-               YYDEBUG(343, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy429;
-               if (yych == 't') goto yy429;
-               goto yy44;
-yy344:
-               YYDEBUG(344, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy430;
-               if (yych == 'a') goto yy430;
-               goto yy44;
-yy345:
-               YYDEBUG(345, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(346, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1392 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_GOTO);
-}
-#line 4316 "Zend/zend_language_scanner.c"
-yy347:
-               YYDEBUG(347, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy431;
-               if (yych == 'e') goto yy431;
-               goto yy44;
-yy348:
-               YYDEBUG(348, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy432;
-               if (yych == 'u') goto yy432;
-               goto yy44;
-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;
-                       }
-               }
-yy350:
-               YYDEBUG(350, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy435;
-               if (yych == 'r') goto yy435;
-               goto yy44;
-yy351:
-               YYDEBUG(351, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy436;
-               if (yych == 't') goto yy436;
-               goto yy44;
-yy352:
-               YYDEBUG(352, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(353, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1584 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_LIST);
-}
-#line 4369 "Zend/zend_language_scanner.c"
-yy354:
-               YYDEBUG(354, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy438;
-               if (yych == 's') goto yy438;
-               goto yy44;
-yy355:
-               YYDEBUG(355, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy439;
-               if (yych == 't') goto yy439;
-               goto yy44;
-yy356:
-               YYDEBUG(356, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy441;
-               if (yych == 'a') goto yy441;
-               goto yy44;
-yy357:
-               YYDEBUG(357, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy442;
-               if (yych == 'e') goto yy442;
-               goto yy44;
-yy358:
-               YYDEBUG(358, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy443;
-               if (yych == 'i') goto yy443;
-               goto yy44;
-yy359:
-               YYDEBUG(359, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy444;
-               if (yych == 'i') goto yy444;
-               goto yy44;
-yy360:
-               YYDEBUG(360, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy445;
-               if (yych == 'r') goto yy445;
-               goto yy44;
-yy361:
-               YYDEBUG(361, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy446;
-               if (yych == 'i') goto yy446;
-               goto yy44;
-yy362:
-               YYDEBUG(362, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy447;
-               if (yych == 'c') goto yy447;
-               goto yy44;
-yy363:
-               YYDEBUG(363, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'W') goto yy448;
-               if (yych == 'w') goto yy448;
-               goto yy44;
-yy364:
-               YYDEBUG(364, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy450;
-               if (yych == 't') goto yy450;
-               goto yy44;
-yy365:
-               YYDEBUG(365, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy452;
-               if (yych == 't') goto yy452;
-               goto yy44;
-yy366:
-               YYDEBUG(366, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy454;
-               if (yych == 'e') goto yy454;
-               goto yy44;
-yy367:
-               YYDEBUG(367, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy456;
-               if (yych == 'd') goto yy456;
-               goto yy44;
-yy368:
-               YYDEBUG(368, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy458;
-               if (yych == 'a') goto yy458;
-               goto yy44;
-yy369:
-               YYDEBUG(369, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy459;
-               if (yych == 'r') goto yy459;
-               goto yy44;
-yy370:
-               YYDEBUG(370, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy460;
-               if (yych == 'l') goto yy460;
-               goto yy44;
-yy371:
-               YYDEBUG(371, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy461;
-               if (yych == 'n') goto yy461;
-               goto yy44;
-yy372:
-               YYDEBUG(372, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy462;
-               if (yych == 'l') goto yy462;
-               goto yy44;
-yy373:
-               YYDEBUG(373, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy463;
-               if (yych == 'n') goto yy463;
-               goto yy44;
-yy374:
-               YYDEBUG(374, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy464;
-               if (yych == 't') goto yy464;
-               goto yy44;
-yy375:
-               YYDEBUG(375, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'M') goto yy465;
-               if (yych == 'm') goto yy465;
-               goto yy44;
-yy376:
-               YYDEBUG(376, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy466;
-               if (yych == 'a') goto yy466;
-               goto yy44;
-yy377:
-               YYDEBUG(377, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy467;
-               if (yych == 'y') goto yy467;
-               goto yy82;
-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);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy382;
-                       goto yy82;
-               } else {
-                       if (yych <= ' ') goto yy382;
-                       if (yych != ')') goto yy82;
-               }
-               YYDEBUG(384, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(385, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1476 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_INT_CAST);
-}
-#line 4560 "Zend/zend_language_scanner.c"
-yy386:
-               YYDEBUG(386, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'G') goto yy476;
-               if (yych == 'g') goto yy476;
-               goto yy82;
-yy387:
-               YYDEBUG(387, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy477;
-               if (yych == 'c') goto yy477;
-               goto yy82;
-yy388:
-               YYDEBUG(388, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(389, *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;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych == '_') goto yy394;
-                               goto yy82;
-                       } else {
-                               if (yych <= 'z') goto yy394;
-                               if (yych <= 0x7F) goto yy82;
-                               goto yy394;
-                       }
-               }
-yy396:
-               YYDEBUG(396, *YYCURSOR);
-               ++YYCURSOR;
-yy397:
-               YYDEBUG(397, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2269 "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(&current_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(&current_state.heredoc_label_stack, copy_heredoc_label_stack);
-
-               zend_exception_save();
-               while (heredoc_nesting_level) {
-                       zval zv;
-                       int retval;
-
-                       ZVAL_UNDEF(&zv);
-                       retval = lex_scan(&zv, NULL);
-                       zval_ptr_dtor_nogc(&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;
-                       }
-               }
-               zend_exception_restore();
-
-               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(&current_state);
-               SCNG(heredoc_scan_ahead) = 0;
-               CG(increment_lineno) = 0;
-       }
-
-       RETURN_TOKEN(T_START_HEREDOC);
-}
-#line 4789 "Zend/zend_language_scanner.c"
-yy398:
-               YYDEBUG(398, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy396;
-               goto yy397;
-yy399:
-               YYDEBUG(399, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy484;
-               if (yych == 'a') goto yy484;
-               goto yy44;
-yy400:
-               YYDEBUG(400, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(401, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1588 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_ARRAY);
-}
-#line 4813 "Zend/zend_language_scanner.c"
-yy402:
-               YYDEBUG(402, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(403, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1384 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_BREAK);
-}
-#line 4826 "Zend/zend_language_scanner.c"
-yy404:
-               YYDEBUG(404, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy485;
-               if (yych == 'b') goto yy485;
-               goto yy44;
-yy405:
-               YYDEBUG(405, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(406, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1296 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_CATCH);
-}
-#line 4845 "Zend/zend_language_scanner.c"
-yy407:
-               YYDEBUG(407, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(408, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1404 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_CLASS);
-}
-#line 4858 "Zend/zend_language_scanner.c"
-yy409:
-               YYDEBUG(409, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(410, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1468 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_CLONE);
-}
-#line 4871 "Zend/zend_language_scanner.c"
-yy411:
-               YYDEBUG(411, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(412, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1274 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_CONST);
-}
-#line 4884 "Zend/zend_language_scanner.c"
-yy413:
-               YYDEBUG(413, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy486;
-               if (yych == 'n') goto yy486;
-               goto yy44;
-yy414:
-               YYDEBUG(414, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy487;
-               if (yych == 'r') goto yy487;
-               goto yy44;
-yy415:
-               YYDEBUG(415, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy488;
-               if (yych == 'l') goto yy488;
-               goto yy44;
-yy416:
-               YYDEBUG(416, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'F') goto yy489;
-               if (yych == 'f') goto yy489;
-               goto yy44;
-yy417:
-               YYDEBUG(417, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(418, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1544 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_EMPTY);
-}
-#line 4921 "Zend/zend_language_scanner.c"
-yy419:
-               YYDEBUG(419, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy491;
-               if (yych == 'c') goto yy491;
-               goto yy44;
-yy420:
-               YYDEBUG(420, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy492;
-               if (yych == 'r') goto yy492;
-               goto yy44;
-yy421:
-               YYDEBUG(421, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(422, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1316 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_ENDIF);
-}
-#line 4946 "Zend/zend_language_scanner.c"
-yy423:
-               YYDEBUG(423, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy494;
-               if (yych == 'i') goto yy494;
-               goto yy44;
-yy424:
-               YYDEBUG(424, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy495;
-               if (yych == 'i') goto yy495;
-               goto yy44;
-yy425:
-               YYDEBUG(425, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy496;
-               if (yych == 'd') goto yy496;
-               goto yy44;
-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;
-                       }
-               }
-yy427:
-               YYDEBUG(427, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1560 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_FINAL);
-}
-#line 4992 "Zend/zend_language_scanner.c"
-yy428:
-               YYDEBUG(428, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy498;
-               if (yych == 'c') goto yy498;
-               goto yy44;
-yy429:
-               YYDEBUG(429, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy499;
-               if (yych == 'i') goto yy499;
-               goto yy44;
-yy430:
-               YYDEBUG(430, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy500;
-               if (yych == 'l') goto yy500;
-               goto yy44;
-yy431:
-               YYDEBUG(431, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'M') goto yy502;
-               if (yych == 'm') goto yy502;
-               goto yy44;
-yy432:
-               YYDEBUG(432, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy503;
-               if (yych == 'd') goto yy503;
-               goto yy44;
-yy433:
-               YYDEBUG(433, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy504;
-               if (yych == 'n') goto yy504;
-               goto yy44;
-yy434:
-               YYDEBUG(434, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy505;
-               if (yych == 'a') goto yy505;
-               goto yy44;
-yy435:
-               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 1540 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_ISSET);
-}
-#line 5053 "Zend/zend_language_scanner.c"
-yy438:
-               YYDEBUG(438, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy507;
-               if (yych == 'p') goto yy507;
-               goto yy44;
-yy439:
-               YYDEBUG(439, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(440, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1400 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_PRINT);
-}
-#line 5072 "Zend/zend_language_scanner.c"
-yy441:
-               YYDEBUG(441, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy508;
-               if (yych == 't') goto yy508;
-               goto yy44;
-yy442:
-               YYDEBUG(442, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy509;
-               if (yych == 'c') goto yy509;
-               goto yy44;
-yy443:
-               YYDEBUG(443, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy510;
-               if (yych == 'c') goto yy510;
-               goto yy44;
-yy444:
-               YYDEBUG(444, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy512;
-               if (yych == 'r') goto yy512;
-               goto yy44;
-yy445:
-               YYDEBUG(445, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy513;
-               if (yych == 'n') goto yy513;
-               goto yy44;
-yy446:
-               YYDEBUG(446, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy515;
-               if (yych == 'c') goto yy515;
-               goto yy44;
-yy447:
-               YYDEBUG(447, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy517;
-               if (yych == 'h') goto yy517;
-               goto yy44;
-yy448:
-               YYDEBUG(448, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(449, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1304 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_THROW);
-}
-#line 5127 "Zend/zend_language_scanner.c"
-yy450:
-               YYDEBUG(450, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(451, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1412 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_TRAIT);
-}
-#line 5140 "Zend/zend_language_scanner.c"
-yy452:
-               YYDEBUG(452, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(453, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1576 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_UNSET);
-}
-#line 5153 "Zend/zend_language_scanner.c"
-yy454:
-               YYDEBUG(454, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(455, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1324 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_WHILE);
-}
-#line 5166 "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;
-               }
-yy457:
-               YYDEBUG(457, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1288 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_YIELD);
-}
-#line 5188 "Zend/zend_language_scanner.c"
-yy458:
-               YYDEBUG(458, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy521;
-               if (yych == 's') goto yy521;
-               goto yy44;
-yy459:
-               YYDEBUG(459, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy522;
-               goto yy44;
-yy460:
-               YYDEBUG(460, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy523;
-               if (yych == 'e') goto yy523;
-               goto yy44;
-yy461:
-               YYDEBUG(461, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy524;
-               if (yych == 'c') goto yy524;
-               goto yy44;
-yy462:
-               YYDEBUG(462, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy525;
-               if (yych == 't') goto yy525;
-               goto yy44;
-yy463:
-               YYDEBUG(463, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy526;
-               if (yych == 'e') goto yy526;
-               goto yy44;
-yy464:
-               YYDEBUG(464, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy527;
-               if (yych == 'h') goto yy527;
-               goto yy44;
-yy465:
-               YYDEBUG(465, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy528;
-               if (yych == 'e') goto yy528;
-               goto yy44;
-yy466:
-               YYDEBUG(466, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy529;
-               if (yych == 'i') goto yy529;
-               goto yy44;
-yy467:
-               YYDEBUG(467, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(468, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy467;
-                       goto yy82;
-               } else {
-                       if (yych <= ' ') goto yy467;
-                       if (yych == ')') goto yy530;
-                       goto yy82;
-               }
-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;
-               }
-               YYDEBUG(472, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(473, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1496 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_BOOL_CAST);
-}
-#line 5284 "Zend/zend_language_scanner.c"
-yy474:
-               YYDEBUG(474, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy534;
-               if (yych == 'a') goto yy534;
-               goto yy82;
-yy475:
-               YYDEBUG(475, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy388;
-               if (yych == 'e') goto yy388;
-               goto yy82;
-yy476:
-               YYDEBUG(476, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy535;
-               if (yych == 'e') goto yy535;
-               goto yy82;
-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);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1480 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_DOUBLE_CAST);
-}
-#line 5318 "Zend/zend_language_scanner.c"
-yy480:
-               YYDEBUG(480, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'G') goto yy532;
-               if (yych == 'g') goto yy532;
-               goto yy82;
-yy481:
-               YYDEBUG(481, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(482, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy481;
-                       goto yy82;
-               } else {
-                       if (yych <= ' ') goto yy481;
-                       if (yych == ')') goto yy538;
-                       goto yy82;
-               }
-yy483:
-               YYDEBUG(483, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy396;
-               if (yych == '\r') goto yy398;
-               goto yy82;
-yy484:
-               YYDEBUG(484, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy540;
-               if (yych == 'c') goto yy540;
-               goto yy44;
-yy485:
-               YYDEBUG(485, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy541;
-               if (yych == 'l') goto yy541;
-               goto yy44;
-yy486:
-               YYDEBUG(486, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy542;
-               if (yych == 'u') goto yy542;
-               goto yy44;
-yy487:
-               YYDEBUG(487, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy543;
-               if (yych == 'e') goto yy543;
-               goto yy44;
-yy488:
-               YYDEBUG(488, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy545;
-               if (yych == 't') goto yy545;
-               goto yy44;
-yy489:
-               YYDEBUG(489, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(490, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1312 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_ELSEIF);
-}
-#line 5387 "Zend/zend_language_scanner.c"
-yy491:
-               YYDEBUG(491, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy547;
-               if (yych == 'l') goto yy547;
-               goto yy44;
-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;
-                       }
-               }
-yy493:
-               YYDEBUG(493, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1340 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_ENDFOR);
-}
-#line 5421 "Zend/zend_language_scanner.c"
-yy494:
-               YYDEBUG(494, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy549;
-               if (yych == 't') goto yy549;
-               goto yy44;
-yy495:
-               YYDEBUG(495, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy550;
-               if (yych == 'l') goto yy550;
-               goto yy44;
-yy496:
-               YYDEBUG(496, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy551;
-               if (yych == 's') goto yy551;
-               goto yy44;
-yy497:
-               YYDEBUG(497, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy553;
-               if (yych == 'y') goto yy553;
-               goto yy44;
-yy498:
-               YYDEBUG(498, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy555;
-               if (yych == 'h') goto yy555;
-               goto yy44;
-yy499:
-               YYDEBUG(499, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy557;
-               if (yych == 'o') goto yy557;
-               goto yy44;
-yy500:
-               YYDEBUG(500, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(501, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1536 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_GLOBAL);
-}
-#line 5470 "Zend/zend_language_scanner.c"
-yy502:
-               YYDEBUG(502, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy558;
-               if (yych == 'e') goto yy558;
-               goto yy44;
-yy503:
-               YYDEBUG(503, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy559;
-               if (yych == 'e') goto yy559;
-               goto yy44;
-yy504:
-               YYDEBUG(504, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy561;
-               if (yych == 'c') goto yy561;
-               goto yy44;
-yy505:
-               YYDEBUG(505, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy562;
-               if (yych == 'd') goto yy562;
-               goto yy44;
-yy506:
-               YYDEBUG(506, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy563;
-               if (yych == 'a') goto yy563;
-               goto yy44;
-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;
-               }
-               YYDEBUG(511, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1572 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_PUBLIC);
-}
-#line 5531 "Zend/zend_language_scanner.c"
-yy512:
-               YYDEBUG(512, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy568;
-               if (yych == 'e') goto yy568;
-               goto yy44;
-yy513:
-               YYDEBUG(513, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(514, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1278 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_RETURN);
-}
-#line 5550 "Zend/zend_language_scanner.c"
-yy515:
-               YYDEBUG(515, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(516, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1552 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_STATIC);
-}
-#line 5563 "Zend/zend_language_scanner.c"
-yy517:
-               YYDEBUG(517, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(518, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1368 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_SWITCH);
-}
-#line 5576 "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;
-                       }
-               }
-yy521:
-               YYDEBUG(521, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy571;
-               if (yych == 's') goto yy571;
-               goto yy44;
-yy522:
-               YYDEBUG(522, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy572;
-               goto yy44;
-yy523:
-               YYDEBUG(523, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy574;
-               goto yy44;
-yy524:
-               YYDEBUG(524, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy575;
-               if (yych == 't') goto yy575;
-               goto yy44;
-yy525:
-               YYDEBUG(525, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy576;
-               goto yy44;
-yy526:
-               YYDEBUG(526, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy577;
-               goto yy44;
-yy527:
-               YYDEBUG(527, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy578;
-               if (yych == 'o') goto yy578;
-               goto yy44;
-yy528:
-               YYDEBUG(528, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy579;
-               if (yych == 's') goto yy579;
-               goto yy44;
-yy529:
-               YYDEBUG(529, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy580;
-               if (yych == 't') goto yy580;
-               goto yy44;
-yy530:
-               YYDEBUG(530, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(531, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1488 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_ARRAY_CAST);
-}
-#line 5660 "Zend/zend_language_scanner.c"
-yy532:
-               YYDEBUG(532, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(533, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy532;
-                       goto yy82;
-               } else {
-                       if (yych <= ' ') goto yy532;
-                       if (yych == ')') goto yy581;
-                       goto yy82;
-               }
-yy534:
-               YYDEBUG(534, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy470;
-               if (yych == 'n') goto yy470;
-               goto yy82;
-yy535:
-               YYDEBUG(535, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy382;
-               if (yych == 'r') goto yy382;
-               goto yy82;
-yy536:
-               YYDEBUG(536, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(537, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy536;
-                       goto yy82;
-               } else {
-                       if (yych <= ' ') goto yy536;
-                       if (yych == ')') goto yy583;
-                       goto yy82;
-               }
-yy538:
-               YYDEBUG(538, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(539, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1500 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_UNSET_CAST);
-}
-#line 5710 "Zend/zend_language_scanner.c"
-yy540:
-               YYDEBUG(540, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy585;
-               if (yych == 't') goto yy585;
-               goto yy44;
-yy541:
-               YYDEBUG(541, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy587;
-               if (yych == 'e') goto yy587;
-               goto yy44;
-yy542:
-               YYDEBUG(542, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy589;
-               if (yych == 'e') goto yy589;
-               goto yy44;
-yy543:
-               YYDEBUG(543, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(544, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1352 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_DECLARE);
-}
-#line 5741 "Zend/zend_language_scanner.c"
-yy545:
-               YYDEBUG(545, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(546, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1380 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_DEFAULT);
-}
-#line 5754 "Zend/zend_language_scanner.c"
-yy547:
-               YYDEBUG(547, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy591;
-               if (yych == 'a') goto yy591;
-               goto yy44;
-yy548:
-               YYDEBUG(548, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy592;
-               if (yych == 'a') goto yy592;
-               goto yy44;
-yy549:
-               YYDEBUG(549, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy593;
-               if (yych == 'c') goto yy593;
-               goto yy44;
-yy550:
-               YYDEBUG(550, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy594;
-               if (yych == 'e') goto yy594;
-               goto yy44;
-yy551:
-               YYDEBUG(551, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(552, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1416 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_EXTENDS);
-}
-#line 5791 "Zend/zend_language_scanner.c"
-yy553:
-               YYDEBUG(553, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(554, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1300 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_FINALLY);
-}
-#line 5804 "Zend/zend_language_scanner.c"
-yy555:
-               YYDEBUG(555, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(556, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1344 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_FOREACH);
-}
-#line 5817 "Zend/zend_language_scanner.c"
-yy557:
-               YYDEBUG(557, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy596;
-               if (yych == 'n') goto yy596;
-               goto yy44;
-yy558:
-               YYDEBUG(558, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy598;
-               if (yych == 'n') goto yy598;
-               goto yy44;
-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;
-                       }
-               }
-yy560:
-               YYDEBUG(560, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1508 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_INCLUDE);
-}
-#line 5855 "Zend/zend_language_scanner.c"
-yy561:
-               YYDEBUG(561, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy600;
-               if (yych == 'e') goto yy600;
-               goto yy44;
-yy562:
-               YYDEBUG(562, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy601;
-               if (yych == 'o') goto yy601;
-               goto yy44;
-yy563:
-               YYDEBUG(563, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy602;
-               if (yych == 'c') goto yy602;
-               goto yy44;
-yy564:
-               YYDEBUG(564, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy603;
-               if (yych == 'c') goto yy603;
-               goto yy44;
-yy565:
-               YYDEBUG(565, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(566, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1564 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_PRIVATE);
-}
-#line 5892 "Zend/zend_language_scanner.c"
-yy567:
-               YYDEBUG(567, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy604;
-               if (yych == 'e') goto yy604;
-               goto yy44;
-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;
-                       }
-               }
-yy569:
-               YYDEBUG(569, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1516 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_REQUIRE);
-}
-#line 5924 "Zend/zend_language_scanner.c"
-yy570:
-               YYDEBUG(570, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy606;
-               if (yych == 'r') goto yy606;
-               goto yy82;
-yy571:
-               YYDEBUG(571, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy607;
-               goto yy44;
-yy572:
-               YYDEBUG(572, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(573, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1918 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_DIR);
-}
-#line 5948 "Zend/zend_language_scanner.c"
-yy574:
-               YYDEBUG(574, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy608;
-               goto yy44;
-yy575:
-               YYDEBUG(575, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy610;
-               if (yych == 'i') goto yy610;
-               goto yy44;
-yy576:
-               YYDEBUG(576, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy611;
-               if (yych == 'c') goto yy611;
-               goto yy44;
-yy577:
-               YYDEBUG(577, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy612;
-               goto yy44;
-yy578:
-               YYDEBUG(578, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy614;
-               if (yych == 'd') goto yy614;
-               goto yy44;
-yy579:
-               YYDEBUG(579, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy615;
-               if (yych == 'p') goto yy615;
-               goto yy44;
-yy580:
-               YYDEBUG(580, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy616;
-               goto yy44;
-yy581:
-               YYDEBUG(581, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(582, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1484 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_STRING_CAST);
-}
-#line 5997 "Zend/zend_language_scanner.c"
-yy583:
-               YYDEBUG(583, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(584, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1492 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_OBJECT_CAST);
-}
-#line 6007 "Zend/zend_language_scanner.c"
-yy585:
-               YYDEBUG(585, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(586, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1556 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_ABSTRACT);
-}
-#line 6020 "Zend/zend_language_scanner.c"
-yy587:
-               YYDEBUG(587, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(588, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1592 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_CALLABLE);
-}
-#line 6033 "Zend/zend_language_scanner.c"
-yy589:
-               YYDEBUG(589, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(590, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1388 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_CONTINUE);
-}
-#line 6046 "Zend/zend_language_scanner.c"
-yy591:
-               YYDEBUG(591, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy617;
-               if (yych == 'r') goto yy617;
-               goto yy44;
-yy592:
-               YYDEBUG(592, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy618;
-               if (yych == 'c') goto yy618;
-               goto yy44;
-yy593:
-               YYDEBUG(593, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy619;
-               if (yych == 'h') goto yy619;
-               goto yy44;
-yy594:
-               YYDEBUG(594, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(595, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1328 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_ENDWHILE);
-}
-#line 6077 "Zend/zend_language_scanner.c"
-yy596:
-               YYDEBUG(596, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(597, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1270 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_FUNCTION);
-}
-#line 6090 "Zend/zend_language_scanner.c"
-yy598:
-               YYDEBUG(598, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy621;
-               if (yych == 't') goto yy621;
-               goto yy44;
-yy599:
-               YYDEBUG(599, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy622;
-               if (yych == 'o') goto yy622;
-               goto yy44;
-yy600:
-               YYDEBUG(600, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy623;
-               if (yych == 'o') goto yy623;
-               goto yy44;
-yy601:
-               YYDEBUG(601, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'F') goto yy624;
-               if (yych == 'f') goto yy624;
-               goto yy44;
-yy602:
-               YYDEBUG(602, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy626;
-               if (yych == 'e') goto yy626;
-               goto yy44;
-yy603:
-               YYDEBUG(603, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy628;
-               if (yych == 'e') goto yy628;
-               goto yy44;
-yy604:
-               YYDEBUG(604, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy630;
-               if (yych == 'd') goto yy630;
-               goto yy44;
-yy605:
-               YYDEBUG(605, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy632;
-               if (yych == 'o') goto yy632;
-               goto yy44;
-yy606:
-               YYDEBUG(606, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy633;
-               if (yych == 'o') goto yy633;
-               goto yy82;
-yy607:
-               YYDEBUG(607, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy634;
-               goto yy44;
-yy608:
-               YYDEBUG(608, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(609, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1914 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_FILE);
-}
-#line 6162 "Zend/zend_language_scanner.c"
-yy610:
-               YYDEBUG(610, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy636;
-               if (yych == 'o') goto yy636;
-               goto yy44;
-yy611:
-               YYDEBUG(611, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy637;
-               if (yych == 'o') goto yy637;
-               goto yy44;
-yy612:
-               YYDEBUG(612, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(613, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1910 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_LINE);
-}
-#line 6187 "Zend/zend_language_scanner.c"
-yy614:
-               YYDEBUG(614, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy638;
-               goto yy44;
-yy615:
-               YYDEBUG(615, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy639;
-               if (yych == 'a') goto yy639;
-               goto yy44;
-yy616:
-               YYDEBUG(616, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy640;
-               goto yy44;
-yy617:
-               YYDEBUG(617, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy642;
-               if (yych == 'e') goto yy642;
-               goto yy44;
-yy618:
-               YYDEBUG(618, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy644;
-               if (yych == 'h') goto yy644;
-               goto yy44;
-yy619:
-               YYDEBUG(619, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(620, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1372 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_ENDSWITCH);
-}
-#line 6228 "Zend/zend_language_scanner.c"
-yy621:
-               YYDEBUG(621, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy646;
-               if (yych == 's') goto yy646;
-               goto yy44;
-yy622:
-               YYDEBUG(622, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy648;
-               if (yych == 'n') goto yy648;
-               goto yy44;
-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;
-               }
-               YYDEBUG(625, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1532 "Zend/zend_language_scanner.l"
-               {
-    RETURN_TOKEN(T_INSTEADOF);
-}
-#line 6259 "Zend/zend_language_scanner.c"
-yy626:
-               YYDEBUG(626, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(627, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1408 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_INTERFACE);
-}
-#line 6272 "Zend/zend_language_scanner.c"
-yy628:
-               YYDEBUG(628, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(629, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1524 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_NAMESPACE);
-}
-#line 6285 "Zend/zend_language_scanner.c"
-yy630:
-               YYDEBUG(630, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(631, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1568 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_PROTECTED);
-}
-#line 6298 "Zend/zend_language_scanner.c"
-yy632:
-               YYDEBUG(632, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy651;
-               if (yych == 'n') goto yy651;
-               goto yy44;
-yy633:
-               YYDEBUG(633, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'M') goto yy652;
-               if (yych == 'm') goto yy652;
-               goto yy82;
-yy634:
-               YYDEBUG(634, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(635, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1894 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_CLASS_C);
-}
-#line 6323 "Zend/zend_language_scanner.c"
-yy636:
-               YYDEBUG(636, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy653;
-               if (yych == 'n') goto yy653;
-               goto yy44;
-yy637:
-               YYDEBUG(637, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'M') goto yy654;
-               if (yych == 'm') goto yy654;
-               goto yy44;
-yy638:
-               YYDEBUG(638, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy655;
-               goto yy44;
-yy639:
-               YYDEBUG(639, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy657;
-               if (yych == 'c') goto yy657;
-               goto yy44;
-yy640:
-               YYDEBUG(640, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(641, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1898 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_TRAIT_C);
-}
-#line 6359 "Zend/zend_language_scanner.c"
-yy642:
-               YYDEBUG(642, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(643, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1356 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_ENDDECLARE);
-}
-#line 6372 "Zend/zend_language_scanner.c"
-yy644:
-               YYDEBUG(644, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(645, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1348 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_ENDFOREACH);
-}
-#line 6385 "Zend/zend_language_scanner.c"
-yy646:
-               YYDEBUG(646, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(647, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1420 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_IMPLEMENTS);
-}
-#line 6398 "Zend/zend_language_scanner.c"
-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;
-               }
-               YYDEBUG(650, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1360 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_INSTANCEOF);
-}
-#line 6417 "Zend/zend_language_scanner.c"
-yy651:
-               YYDEBUG(651, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy659;
-               if (yych == 'c') goto yy659;
-               goto yy44;
-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;
-                       }
-               }
-yy653:
-               YYDEBUG(653, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy662;
-               goto yy44;
-yy654:
-               YYDEBUG(654, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy663;
-               if (yych == 'p') goto yy663;
-               goto yy44;
-yy655:
-               YYDEBUG(655, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(656, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1906 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_METHOD_C);
-}
-#line 6469 "Zend/zend_language_scanner.c"
-yy657:
-               YYDEBUG(657, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy664;
-               if (yych == 'e') goto yy664;
-               goto yy44;
-yy658:
-               YYDEBUG(658, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy665;
-               if (yych == 'e') goto yy665;
-               goto yy44;
-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);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1282 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 1);
-       HANDLE_NEWLINES(yytext, yyleng);
-       RETURN_TOKEN(T_YIELD_FROM);
-}
-#line 6499 "Zend/zend_language_scanner.c"
-yy662:
-               YYDEBUG(662, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy669;
-               goto yy44;
-yy663:
-               YYDEBUG(663, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy671;
-               if (yych == 'i') goto yy671;
-               goto yy44;
-yy664:
-               YYDEBUG(664, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy672;
-               goto yy44;
-yy665:
-               YYDEBUG(665, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(666, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1512 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_INCLUDE_ONCE);
-}
-#line 6528 "Zend/zend_language_scanner.c"
-yy667:
-               YYDEBUG(667, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(668, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1520 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_REQUIRE_ONCE);
-}
-#line 6541 "Zend/zend_language_scanner.c"
-yy669:
-               YYDEBUG(669, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(670, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1902 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_FUNC_C);
-}
-#line 6554 "Zend/zend_language_scanner.c"
-yy671:
-               YYDEBUG(671, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy673;
-               if (yych == 'l') goto yy673;
-               goto yy44;
-yy672:
-               YYDEBUG(672, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy674;
-               goto yy44;
-yy673:
-               YYDEBUG(673, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy676;
-               if (yych == 'e') goto yy676;
-               goto yy44;
-yy674:
-               YYDEBUG(674, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(675, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1922 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_NS_C);
-}
-#line 6584 "Zend/zend_language_scanner.c"
-yy676:
-               YYDEBUG(676, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy677;
-               if (yych != 'r') goto yy44;
-yy677:
-               YYDEBUG(677, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy43;
-               }
-               YYDEBUG(678, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1548 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_HALT_COMPILER);
-}
-#line 6602 "Zend/zend_language_scanner.c"
-       }
-/* *********************************** */
-yyc_ST_LOOKING_FOR_PROPERTY:
-       {
-               static const unsigned char yybm[] = {
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,  64,  64,   0,   0,  64,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                        64,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128,   0,   0,   0,   0,   0,   0, 
-                         0, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128,   0,   0,   0,   0, 128, 
-                         0, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128,   0,   0,   0,   0,   0, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-               };
-               YYDEBUG(679, *YYCURSOR);
-               YYFILL(2);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 64) {
-                       goto yy683;
-               }
-               if (yych <= '^') {
-                       if (yych <= '-') {
-                               if (yych >= '-') goto yy686;
-                       } else {
-                               if (yych <= '@') goto yy681;
-                               if (yych <= 'Z') goto yy687;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= '_') goto yy687;
-                       } else {
-                               if (yych <= 'z') goto yy687;
-                               if (yych >= 0x80) goto yy687;
-                       }
-               }
-yy681:
-               YYDEBUG(681, *YYCURSOR);
-               ++YYCURSOR;
-yy682:
-               YYDEBUG(682, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1442 "Zend/zend_language_scanner.l"
-               {
-       yyless(0);
-       yy_pop_state();
-       goto restart;
-}
-#line 6674 "Zend/zend_language_scanner.c"
-yy683:
-               YYDEBUG(683, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(684, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy683;
-               }
-               YYDEBUG(685, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1429 "Zend/zend_language_scanner.l"
-               {
-       goto return_whitespace;
-}
-#line 6690 "Zend/zend_language_scanner.c"
-yy686:
-               YYDEBUG(686, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '>') goto yy690;
-               goto yy682;
-yy687:
-               YYDEBUG(687, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(688, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy687;
-               }
-               YYDEBUG(689, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1437 "Zend/zend_language_scanner.l"
-               {
-       yy_pop_state();
-       RETURN_TOKEN_WITH_STR(T_STRING, 0);
-}
-#line 6712 "Zend/zend_language_scanner.c"
-yy690:
-               YYDEBUG(690, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(691, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1433 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN(T_OBJECT_OPERATOR);
-}
-#line 6722 "Zend/zend_language_scanner.c"
-       }
-/* *********************************** */
-yyc_ST_BACKQUOTE:
-       {
-               static const unsigned char yybm[] = {
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128,   0,   0,   0,   0,   0,   0, 
-                         0, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128,   0,   0,   0,   0, 128, 
-                         0, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128,   0,   0,   0,   0,   0, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-               };
-               YYDEBUG(692, *YYCURSOR);
-               YYFILL(2);
-               yych = *YYCURSOR;
-               if (yych <= '_') {
-                       if (yych == '$') goto yy696;
-               } else {
-                       if (yych <= '`') goto yy697;
-                       if (yych == '{') goto yy699;
-               }
-               YYDEBUG(694, *YYCURSOR);
-               ++YYCURSOR;
-yy695:
-               YYDEBUG(695, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2494 "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;
-               }
-
-               YYCURSOR--;
-               break;
-       }
-
-       yyleng = YYCURSOR - SCNG(yy_text);
-
-       if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '`') == SUCCESS)
-        || !PARSER_MODE()) {
-               RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
-       } else {
-               RETURN_TOKEN(T_ERROR);
-       }
-}
-#line 6820 "Zend/zend_language_scanner.c"
-yy696:
-               YYDEBUG(696, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '_') {
-                       if (yych <= '@') goto yy695;
-                       if (yych <= 'Z') goto yy700;
-                       if (yych <= '^') goto yy695;
-                       goto yy700;
-               } else {
-                       if (yych <= 'z') {
-                               if (yych <= '`') goto yy695;
-                               goto yy700;
-                       } else {
-                               if (yych <= '{') goto yy703;
-                               if (yych <= 0x7F) goto yy695;
-                               goto yy700;
-                       }
-               }
-yy697:
-               YYDEBUG(697, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(698, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2434 "Zend/zend_language_scanner.l"
-               {
-       BEGIN(ST_IN_SCRIPTING);
-       RETURN_TOKEN('`');
-}
-#line 6849 "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;
-               YYDEBUG(701, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy700;
-               }
-               if (yych == '-') goto yy707;
-               if (yych <= '@') goto yy702;
-               if (yych <= '[') goto yy709;
-yy702:
-               YYDEBUG(702, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2023 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 6874 "Zend/zend_language_scanner.c"
-yy703:
-               YYDEBUG(703, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(704, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1723 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_LOOKING_FOR_VARNAME);
-       RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
-}
-#line 6885 "Zend/zend_language_scanner.c"
-yy705:
-               YYDEBUG(705, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(706, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2422 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_IN_SCRIPTING);
-       yyless(1);
-       RETURN_TOKEN(T_CURLY_OPEN);
-}
-#line 6897 "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 2017 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 1);
-       yy_push_state(ST_VAR_OFFSET);
-       RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 6917 "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 2009 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 3);
-       yy_push_state(ST_LOOKING_FOR_PROPERTY);
-       RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 6941 "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 2440 "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 7047 "Zend/zend_language_scanner.c"
-yy718:
-               YYDEBUG(718, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(719, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2429 "Zend/zend_language_scanner.l"
-               {
-       BEGIN(ST_IN_SCRIPTING);
-       RETURN_TOKEN('"');
-}
-#line 7058 "Zend/zend_language_scanner.c"
-yy720:
-               YYDEBUG(720, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '_') {
-                       if (yych <= '@') goto yy717;
-                       if (yych <= 'Z') goto yy722;
-                       if (yych <= '^') goto yy717;
-                       goto yy722;
-               } else {
-                       if (yych <= 'z') {
-                               if (yych <= '`') goto yy717;
-                               goto yy722;
-                       } else {
-                               if (yych <= '{') goto yy725;
-                               if (yych <= 0x7F) goto yy717;
-                               goto yy722;
-                       }
-               }
-yy721:
-               YYDEBUG(721, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '$') goto yy727;
-               goto yy717;
-yy722:
-               YYDEBUG(722, *YYCURSOR);
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               YYDEBUG(723, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy722;
-               }
-               if (yych == '-') goto yy729;
-               if (yych <= '@') goto yy724;
-               if (yych <= '[') goto yy731;
-yy724:
-               YYDEBUG(724, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2023 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 7101 "Zend/zend_language_scanner.c"
-yy725:
-               YYDEBUG(725, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(726, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1723 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_LOOKING_FOR_VARNAME);
-       RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
-}
-#line 7112 "Zend/zend_language_scanner.c"
-yy727:
-               YYDEBUG(727, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(728, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2422 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_IN_SCRIPTING);
-       yyless(1);
-       RETURN_TOKEN(T_CURLY_OPEN);
-}
-#line 7124 "Zend/zend_language_scanner.c"
-yy729:
-               YYDEBUG(729, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '>') goto yy733;
-yy730:
-               YYDEBUG(730, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               goto yy724;
-yy731:
-               YYDEBUG(731, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(732, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2017 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 1);
-       yy_push_state(ST_VAR_OFFSET);
-       RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 7144 "Zend/zend_language_scanner.c"
-yy733:
-               YYDEBUG(733, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '_') {
-                       if (yych <= '@') goto yy730;
-                       if (yych <= 'Z') goto yy734;
-                       if (yych <= '^') goto yy730;
-               } else {
-                       if (yych <= '`') goto yy730;
-                       if (yych <= 'z') goto yy734;
-                       if (yych <= 0x7F) goto yy730;
-               }
-yy734:
-               YYDEBUG(734, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(735, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2009 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 3);
-       yy_push_state(ST_LOOKING_FOR_PROPERTY);
-       RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 7168 "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);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2540 "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);
-}
-#line 7337 "Zend/zend_language_scanner.c"
-yy740:
-               YYDEBUG(740, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '_') {
-                       if (yych <= '@') goto yy739;
-                       if (yych <= 'Z') goto yy742;
-                       if (yych <= '^') goto yy739;
-                       goto yy742;
-               } else {
-                       if (yych <= 'z') {
-                               if (yych <= '`') goto yy739;
-                               goto yy742;
-                       } else {
-                               if (yych <= '{') goto yy745;
-                               if (yych <= 0x7F) goto yy739;
-                               goto yy742;
-                       }
-               }
-yy741:
-               YYDEBUG(741, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '$') goto yy747;
-               goto yy739;
-yy742:
-               YYDEBUG(742, *YYCURSOR);
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               YYDEBUG(743, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy742;
-               }
-               if (yych == '-') goto yy749;
-               if (yych <= '@') goto yy744;
-               if (yych <= '[') goto yy751;
-yy744:
-               YYDEBUG(744, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2023 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 7380 "Zend/zend_language_scanner.c"
-yy745:
-               YYDEBUG(745, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(746, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1723 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_LOOKING_FOR_VARNAME);
-       RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
-}
-#line 7391 "Zend/zend_language_scanner.c"
-yy747:
-               YYDEBUG(747, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(748, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2422 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_IN_SCRIPTING);
-       yyless(1);
-       RETURN_TOKEN(T_CURLY_OPEN);
-}
-#line 7403 "Zend/zend_language_scanner.c"
-yy749:
-               YYDEBUG(749, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '>') goto yy753;
-yy750:
-               YYDEBUG(750, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               goto yy744;
-yy751:
-               YYDEBUG(751, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(752, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2017 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 1);
-       yy_push_state(ST_VAR_OFFSET);
-       RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 7423 "Zend/zend_language_scanner.c"
-yy753:
-               YYDEBUG(753, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '_') {
-                       if (yych <= '@') goto yy750;
-                       if (yych <= 'Z') goto yy754;
-                       if (yych <= '^') goto yy750;
-               } else {
-                       if (yych <= '`') goto yy750;
-                       if (yych <= 'z') goto yy754;
-                       if (yych <= 0x7F) goto yy750;
-               }
-yy754:
-               YYDEBUG(754, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(755, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2009 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 3);
-       yy_push_state(ST_LOOKING_FOR_PROPERTY);
-       RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 7447 "Zend/zend_language_scanner.c"
-       }
-/* *********************************** */
-yyc_ST_LOOKING_FOR_VARNAME:
-       {
-               static const unsigned char yybm[] = {
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128,   0,   0,   0,   0,   0,   0, 
-                         0, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128,   0,   0,   0,   0, 128, 
-                         0, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128,   0,   0,   0,   0,   0, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-               };
-               YYDEBUG(756, *YYCURSOR);
-               YYFILL(2);
-               yych = *YYCURSOR;
-               if (yych <= '_') {
-                       if (yych <= '@') goto yy758;
-                       if (yych <= 'Z') goto yy760;
-                       if (yych >= '_') goto yy760;
-               } else {
-                       if (yych <= '`') goto yy758;
-                       if (yych <= 'z') goto yy760;
-                       if (yych >= 0x80) goto yy760;
-               }
-yy758:
-               YYDEBUG(758, *YYCURSOR);
-               ++YYCURSOR;
-yy759:
-               YYDEBUG(759, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1746 "Zend/zend_language_scanner.l"
-               {
-       yyless(0);
-       yy_pop_state();
-       yy_push_state(ST_IN_SCRIPTING);
-       goto restart;
-}
-#line 7511 "Zend/zend_language_scanner.c"
-yy760:
-               YYDEBUG(760, *YYCURSOR);
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '_') {
-                       if (yych <= '@') {
-                               if (yych <= '/') goto yy759;
-                               if (yych <= '9') goto yy762;
-                               goto yy759;
-                       } else {
-                               if (yych <= '[') goto yy762;
-                               if (yych <= '^') goto yy759;
-                               goto yy762;
-                       }
-               } else {
-                       if (yych <= '|') {
-                               if (yych <= '`') goto yy759;
-                               if (yych <= 'z') goto yy762;
-                               goto yy759;
-                       } else {
-                               if (yych <= '}') goto yy762;
-                               if (yych <= 0x7F) goto yy759;
-                               goto yy762;
-                       }
-               }
-yy761:
-               YYDEBUG(761, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy762:
-               YYDEBUG(762, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy761;
-               }
-               if (yych <= '@') goto yy763;
-               if (yych <= '[') goto yy764;
-               if (yych == '}') goto yy764;
-yy763:
-               YYDEBUG(763, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               goto yy759;
-yy764:
-               YYDEBUG(764, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(765, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1738 "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 7565 "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;
-                               }
-                       } else {
-                               if (yych <= '$') {
-                                       if (yych <= '"') goto yy772;
-                                       if (yych <= '#') goto yy770;
-                                       goto yy774;
-                               } else {
-                                       if (yych == '\'') goto yy770;
-                                       if (yych <= '/') goto yy772;
-                                       goto yy775;
-                               }
-                       }
-               } 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;
-                               }
-                       } else {
-                               if (yych <= '`') {
-                                       if (yych == '_') goto yy779;
-                                       goto yy772;
-                               } else {
-                                       if (yych <= 'z') goto yy779;
-                                       if (yych <= '~') goto yy772;
-                                       if (yych >= 0x80) goto yy779;
-                               }
-                       }
-               }
-yy768:
-               YYDEBUG(768, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(769, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2749 "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 7663 "Zend/zend_language_scanner.c"
-yy770:
-               YYDEBUG(770, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(771, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2037 "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 7677 "Zend/zend_language_scanner.c"
-yy772:
-               YYDEBUG(772, *YYCURSOR);
-               ++YYCURSOR;
-yy773:
-               YYDEBUG(773, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2032 "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 7689 "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;
-               }
-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;
-                       }
-               }
-yy776:
-               YYDEBUG(776, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1860 "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 7740 "Zend/zend_language_scanner.c"
-yy777:
-               YYDEBUG(777, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(778, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy777;
-               }
-               goto yy776;
-yy779:
-               YYDEBUG(779, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(780, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy779;
-               }
-               YYDEBUG(781, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2045 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN_WITH_STR(T_STRING, 0);
-}
-#line 7766 "Zend/zend_language_scanner.c"
-yy782:
-               YYDEBUG(782, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(783, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2027 "Zend/zend_language_scanner.l"
-               {
-       yy_pop_state();
-       RETURN_TOKEN(']');
-}
-#line 7777 "Zend/zend_language_scanner.c"
-yy784:
-               YYDEBUG(784, *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);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2023 "Zend/zend_language_scanner.l"
-               {
-       RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
-}
-#line 7806 "Zend/zend_language_scanner.c"
-yy787:
-               YYDEBUG(787, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(788, *YYCURSOR);
-               if (yych <= '/') goto yy789;
-               if (yych <= '9') goto yy787;
-yy789:
-               YYDEBUG(789, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1876 "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 7827 "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);
-               if (yybm[0+yych] & 128) {
-                       goto yy795;
-               }
-               goto yy789;
-       }
-/* *********************************** */
-yyc_INITIAL:
-       YYDEBUG(797, *YYCURSOR);
-       YYFILL(7);
-       yych = *YYCURSOR;
-       if (yych == '<') goto yy801;
-       YYDEBUG(799, *YYCURSOR);
-       ++YYCURSOR;
-yy800:
-       YYDEBUG(800, *YYCURSOR);
-       yyleng = YYCURSOR - SCNG(yy_text);
-#line 1958 "Zend/zend_language_scanner.l"
-       {
-       if (YYCURSOR > YYLIMIT) {
-               RETURN_TOKEN(END);
-       }
-
-inline_char_handler:
-
-       while (1) {
-               YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);
-
-               YYCURSOR = ptr ? ptr + 1 : YYLIMIT;
-
-               if (YYCURSOR >= YYLIMIT) {
-                       break;
-               }
-
-               if (*YYCURSOR == '?') {
-                       if (CG(short_tags) || !strncasecmp((char*)YYCURSOR + 1, "php", 3) || (*(YYCURSOR + 1) == '=')) { /* Assume [ \t\n\r] follows "php" */
-
-                               YYCURSOR--;
-                               break;
-                       }
-               }
-       }
-
-       yyleng = YYCURSOR - SCNG(yy_text);
-
-       if (SCNG(output_filter)) {
-               size_t readsize;
-               char *s = NULL;
-               size_t sz = 0;
-               // TODO: avoid reallocation ???
-               readsize = SCNG(output_filter)((unsigned char **)&s, &sz, (unsigned char *)yytext, (size_t)yyleng);
-               ZVAL_STRINGL(zendlval, s, sz);
-               efree(s);
-               if (readsize < yyleng) {
-                       yyless(readsize);
-               }
-       } else if (yyleng == 1) {
-               ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*yytext));
-       } else {
-               ZVAL_STRINGL(zendlval, yytext, yyleng);
-       }
-       HANDLE_NEWLINES(yytext, yyleng);
-       RETURN_TOKEN_WITH_VAL(T_INLINE_HTML);
-}
-#line 7924 "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 1946 "Zend/zend_language_scanner.l"
-       {
-       if (CG(short_tags)) {
-               BEGIN(ST_IN_SCRIPTING);
-               if (PARSER_MODE()) {
-                       SKIP_TOKEN(T_OPEN_TAG);
-               }
-               RETURN_TOKEN(T_OPEN_TAG);
-       } else {
-               goto inline_char_handler;
-       }
-}
-#line 7952 "Zend/zend_language_scanner.c"
-yy804:
-       YYDEBUG(804, *YYCURSOR);
-       ++YYCURSOR;
-       YYDEBUG(805, *YYCURSOR);
-       yyleng = YYCURSOR - SCNG(yy_text);
-#line 1927 "Zend/zend_language_scanner.l"
-       {
-       BEGIN(ST_IN_SCRIPTING);
-       if (PARSER_MODE()) {
-               RETURN_TOKEN(T_ECHO);
-       }
-       RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO);
-}
-#line 7966 "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 1936 "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 8006 "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 2408 "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 8034 "Zend/zend_language_scanner.c"
-/* *********************************** */
-yyc_ST_NOWDOC:
-       YYDEBUG(817, *YYCURSOR);
-       YYFILL(1);
-       yych = *YYCURSOR;
-       YYDEBUG(819, *YYCURSOR);
-       ++YYCURSOR;
-       YYDEBUG(820, *YYCURSOR);
-       yyleng = YYCURSOR - SCNG(yy_text);
-#line 2661 "Zend/zend_language_scanner.l"
-       {
-       zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
-       int newline = 0, indentation = 0, spacing = -1;
-
-       if (YYCURSOR > YYLIMIT) {
-               RETURN_TOKEN(END);
-       }
-
-       YYCURSOR--;
-
-       while (YYCURSOR < YYLIMIT) {
-               switch (*YYCURSOR++) {
-                       case '\r':
-                               if (*YYCURSOR == '\n') {
-                                       YYCURSOR++;
-                               }
-                               /* fall through */
-                       case '\n':
-                               indentation = spacing = 0;
-
-                               while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
-                                       if (*YYCURSOR == '\t') {
-                                               spacing |= HEREDOC_USING_TABS;
-                                       } else {
-                                               spacing |= HEREDOC_USING_SPACES;
-                                       }
-                                       ++YYCURSOR;
-                                       ++indentation;
-                               }
-
-                               if (YYCURSOR == YYLIMIT) {
-                                       yyleng = YYCURSOR - SCNG(yy_text);
-                                       HANDLE_NEWLINES(yytext, yyleng);
-                                       ZVAL_NULL(zendlval);
-                                       RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
-                               }
-
-                               /* Check for ending label on the next line */
-                               if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
-                                       if (IS_LABEL_START(YYCURSOR[heredoc_label->length])) {
-                                               continue;
-                                       }
-
-                                       if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
-                                               zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
-                                       }
-
-                                       /* newline before label will be subtracted from returned text, but
-                                        * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
-                                       if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
-                                               newline = 2; /* Windows newline */
-                                       } else {
-                                               newline = 1;
-                                       }
-
-                                       CG(increment_lineno) = 1; /* For newline before label */
-
-                                       YYCURSOR -= indentation;
-                                       heredoc_label->indentation = indentation;
-
-                                       BEGIN(ST_END_HEREDOC);
-
-                                       goto nowdoc_scan_done;
-                               }
-                               /* fall through */
-                       default:
-                               continue;
-               }
-       }
-
-nowdoc_scan_done:
-       yyleng = YYCURSOR - SCNG(yy_text);
-       ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
-
-       if (!EG(exception) && spacing != -1 && PARSER_MODE()) {
-               zend_bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
-               if (!strip_multiline_string_indentation(
-                               zendlval, indentation, spacing == HEREDOC_USING_SPACES,
-                               newline_at_start, newline != 0)) {
-                       RETURN_TOKEN(T_ERROR);
-               }
-       }
-
-       HANDLE_NEWLINES(yytext, yyleng - newline);
-       RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
-}
-#line 8131 "Zend/zend_language_scanner.c"
-}
-#line 2758 "Zend/zend_language_scanner.l"
-
-
-emit_token_with_str:
-       zend_copy_value(zendlval, (yytext + offset), (yyleng - offset));
-
-emit_token_with_val:
-       if (PARSER_MODE()) {
-               ZEND_ASSERT(Z_TYPE_P(zendlval) != IS_UNDEF);
-               elem->ast = zend_ast_create_zval_with_lineno(zendlval, start_line);
-       }
-
-emit_token:
-       if (SCNG(on_event)) {
-               SCNG(on_event)(ON_TOKEN, token, start_line, SCNG(on_event_context));
-       }
-       return token;
-
-return_whitespace:
-       HANDLE_NEWLINES(yytext, yyleng);
-       if (SCNG(on_event)) {
-               SCNG(on_event)(ON_TOKEN, T_WHITESPACE, start_line, SCNG(on_event_context));
-       }
-       if (PARSER_MODE()) {
-               start_line = CG(zend_lineno);
-               goto restart;
-       } else {
-               return T_WHITESPACE;
-       }
-
-skip_token:
-       if (SCNG(on_event)) {
-               SCNG(on_event)(ON_TOKEN, token, start_line, SCNG(on_event_context));
-       }
-       start_line = CG(zend_lineno);
-       goto restart;
-}
diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h
deleted file mode 100644 (file)
index 3c01b5b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Generated by re2c 1.0.1 */
-#line 3 "Zend/zend_language_scanner_defs.h"
-
-enum YYCONDTYPE {
-       yycST_IN_SCRIPTING,
-       yycST_LOOKING_FOR_PROPERTY,
-       yycST_BACKQUOTE,
-       yycST_DOUBLE_QUOTES,
-       yycST_HEREDOC,
-       yycST_LOOKING_FOR_VARNAME,
-       yycST_VAR_OFFSET,
-       yycINITIAL,
-       yycST_END_HEREDOC,
-       yycST_NOWDOC,
-};
diff --git a/ext/json/json_scanner.c b/ext/json/json_scanner.c
deleted file mode 100644 (file)
index 32930fa..0000000
+++ /dev/null
@@ -1,1661 +0,0 @@
-/* Generated by re2c 1.0.3 */
-/*
-  +----------------------------------------------------------------------+
-  | PHP Version 7                                                        |
-  +----------------------------------------------------------------------+
-  | Copyright (c) 1997-2018 The PHP Group                                |
-  +----------------------------------------------------------------------+
-  | This source file is subject to version 3.01 of the PHP license,      |
-  | that is bundled with this package in the file LICENSE, and is        |
-  | available through the world-wide-web at the following url:           |
-  | http://www.php.net/license/3_01.txt                                  |
-  | If you did not receive a copy of the PHP license and are unable to   |
-  | obtain it through the world-wide-web, please send a note to          |
-  | license@php.net so we can mail you a copy immediately.               |
-  +----------------------------------------------------------------------+
-  | Author: Jakub Zelenka <bukka@php.net>                                |
-  +----------------------------------------------------------------------+
-*/
-
-#include "php.h"
-#include "php_json_scanner.h"
-#include "php_json_scanner_defs.h"
-#include "php_json_parser.h"
-#include "json_parser.tab.h"
-
-#define        YYCTYPE     php_json_ctype
-#define        YYCURSOR    s->cursor
-#define        YYLIMIT     s->limit
-#define        YYMARKER    s->marker
-#define        YYCTXMARKER s->ctxmarker
-
-#define YYGETCONDITION()        s->state
-#define YYSETCONDITION(yystate) s->state = yystate
-
-#define        YYFILL(n)
-
-#define PHP_JSON_CONDITION_SET(condition) YYSETCONDITION(yyc##condition)
-#define PHP_JSON_CONDITION_GOTO(condition) goto yyc_##condition
-#define PHP_JSON_CONDITION_SET_AND_GOTO(condition) \
-       PHP_JSON_CONDITION_SET(condition); \
-       PHP_JSON_CONDITION_GOTO(condition)
-#define PHP_JSON_CONDITION_GOTO_STR_P2() \
-       do { \
-               if (s->utf8_invalid) { \
-                       PHP_JSON_CONDITION_GOTO(STR_P2_BIN); \
-               } else { \
-                       PHP_JSON_CONDITION_GOTO(STR_P2_UTF); \
-               } \
-       } while(0)
-
-
-#define PHP_JSON_SCANNER_COPY_ESC() php_json_scanner_copy_string(s, 0)
-#define PHP_JSON_SCANNER_COPY_UTF() php_json_scanner_copy_string(s, 5)
-#define PHP_JSON_SCANNER_COPY_UTF_SP() php_json_scanner_copy_string(s, 11)
-
-#define PHP_JSON_INT_MAX_LENGTH (MAX_LENGTH_OF_LONG - 1)
-
-
-static void php_json_scanner_copy_string(php_json_scanner *s, int esc_size)
-{
-       size_t len = s->cursor - s->str_start - esc_size - 1;
-       if (len) {
-               memcpy(s->pstr, s->str_start, len);
-               s->pstr += len;
-       }
-}
-
-static int php_json_hex_to_int(char code)
-{
-       if (code >= '0' && code <= '9') {
-               return code - '0';
-       } else if (code >= 'A' && code <= 'F') {
-               return code - ('A' - 10);
-       } else if (code >= 'a' && code <= 'f') {
-               return code - ('a' - 10);
-       } else {
-               /* this should never happened (just to suppress compiler warning) */
-               return -1;
-       }
-}
-
-static int php_json_ucs2_to_int_ex(php_json_scanner *s, int size, int start)
-{
-       int i, code = 0;
-       php_json_ctype *pc = s->cursor - start;
-       for (i = 0; i < size; i++) {
-               code |= php_json_hex_to_int(*(pc--)) << (i * 4);
-       }
-       return code;
-}
-
-static int php_json_ucs2_to_int(php_json_scanner *s, int size)
-{
-       return php_json_ucs2_to_int_ex(s, size, 1);
-}
-
-void php_json_scanner_init(php_json_scanner *s, char *str, size_t str_len, int options)
-{
-       s->cursor = (php_json_ctype *) str;
-       s->limit = (php_json_ctype *) str + str_len;
-       s->options = options;
-       PHP_JSON_CONDITION_SET(JS);
-}
-
-int php_json_scan(php_json_scanner *s)
-{
-       ZVAL_NULL(&s->value);
-       
-std:
-       s->token = s->cursor;
-
-
-       {
-               YYCTYPE yych;
-               unsigned int yyaccept = 0;
-               if (YYGETCONDITION() < 2) {
-                       if (YYGETCONDITION() < 1) {
-                               goto yyc_JS;
-                       } else {
-                               goto yyc_STR_P1;
-                       }
-               } else {
-                       if (YYGETCONDITION() < 3) {
-                               goto yyc_STR_P2_BIN;
-                       } else {
-                               goto yyc_STR_P2_UTF;
-                       }
-               }
-/* *********************************** */
-yyc_JS:
-               {
-                       static const unsigned char yybm[] = {
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,  64,   0,   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,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0,   0,   0,   0,   0,   0,   0,   0, 
-                       };
-                       yych = *YYCURSOR;
-                       if (yych <= ']') {
-                               if (yych <= '"') {
-                                       if (yych <= '\f') {
-                                               if (yych <= 0x08) {
-                                                       if (yych >= 0x01) goto yy5;
-                                               } else {
-                                                       if (yych <= '\t') goto yy7;
-                                                       if (yych <= '\n') goto yy10;
-                                                       goto yy5;
-                                               }
-                                       } else {
-                                               if (yych <= 0x1F) {
-                                                       if (yych <= '\r') goto yy11;
-                                                       goto yy5;
-                                               } else {
-                                                       if (yych <= ' ') goto yy7;
-                                                       if (yych <= '!') goto yy12;
-                                                       goto yy14;
-                                               }
-                                       }
-                               } else {
-                                       if (yych <= '0') {
-                                               if (yych <= ',') {
-                                                       if (yych <= '+') goto yy12;
-                                                       goto yy16;
-                                               } else {
-                                                       if (yych <= '-') goto yy18;
-                                                       if (yych <= '/') goto yy12;
-                                                       goto yy19;
-                                               }
-                                       } else {
-                                               if (yych <= 'Z') {
-                                                       if (yych <= '9') goto yy21;
-                                                       if (yych <= ':') goto yy23;
-                                                       goto yy12;
-                                               } else {
-                                                       if (yych <= '[') goto yy25;
-                                                       if (yych <= '\\') goto yy12;
-                                                       goto yy27;
-                                               }
-                                       }
-                               }
-                       } else {
-                               if (yych <= '}') {
-                                       if (yych <= 's') {
-                                               if (yych <= 'f') {
-                                                       if (yych <= 'e') goto yy12;
-                                                       goto yy29;
-                                               } else {
-                                                       if (yych == 'n') goto yy30;
-                                                       goto yy12;
-                                               }
-                                       } else {
-                                               if (yych <= 'z') {
-                                                       if (yych <= 't') goto yy31;
-                                                       goto yy12;
-                                               } else {
-                                                       if (yych <= '{') goto yy32;
-                                                       if (yych <= '|') goto yy12;
-                                                       goto yy34;
-                                               }
-                                       }
-                               } else {
-                                       if (yych <= 0xEC) {
-                                               if (yych <= 0xC1) {
-                                                       if (yych <= 0x7F) goto yy12;
-                                                       goto yy36;
-                                               } else {
-                                                       if (yych <= 0xDF) goto yy38;
-                                                       if (yych <= 0xE0) goto yy39;
-                                                       goto yy40;
-                                               }
-                                       } else {
-                                               if (yych <= 0xF0) {
-                                                       if (yych <= 0xED) goto yy41;
-                                                       if (yych <= 0xEF) goto yy40;
-                                                       goto yy42;
-                                               } else {
-                                                       if (yych <= 0xF3) goto yy43;
-                                                       if (yych <= 0xF4) goto yy44;
-                                                       goto yy36;
-                                               }
-                                       }
-                               }
-                       }
-                       ++YYCURSOR;
-                       {
-               if (s->limit < s->cursor) {
-                       return PHP_JSON_T_EOI;
-               } else {
-                       s->errcode = PHP_JSON_ERROR_CTRL_CHAR;
-                       return PHP_JSON_T_ERROR;
-               }
-       }
-yy5:
-                       ++YYCURSOR;
-                       {
-               s->errcode = PHP_JSON_ERROR_CTRL_CHAR;
-               return PHP_JSON_T_ERROR;
-       }
-yy7:
-                       yych = *++YYCURSOR;
-yy8:
-                       if (yybm[0+yych] & 64) {
-                               goto yy7;
-                       }
-yy9:
-                       { goto std; }
-yy10:
-                       ++YYCURSOR;
-                       goto yy9;
-yy11:
-                       yych = *++YYCURSOR;
-                       if (yych == '\n') goto yy10;
-                       goto yy8;
-yy12:
-                       ++YYCURSOR;
-yy13:
-                       {
-               s->errcode = PHP_JSON_ERROR_SYNTAX;
-               return PHP_JSON_T_ERROR;
-       }
-yy14:
-                       ++YYCURSOR;
-                       {
-               s->str_start = s->cursor;
-               s->str_esc = 0;
-               s->utf8_invalid = 0;
-               s->utf8_invalid_count = 0;
-               PHP_JSON_CONDITION_SET_AND_GOTO(STR_P1);
-       }
-yy16:
-                       ++YYCURSOR;
-                       { return ','; }
-yy18:
-                       yych = *++YYCURSOR;
-                       if (yych <= '/') goto yy13;
-                       if (yych <= '0') goto yy19;
-                       if (yych <= '9') goto yy21;
-                       goto yy13;
-yy19:
-                       yyaccept = 0;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 'D') {
-                               if (yych == '.') goto yy45;
-                       } else {
-                               if (yych <= 'E') goto yy47;
-                               if (yych == 'e') goto yy47;
-                       }
-yy20:
-                       {
-               zend_bool bigint = 0, negative = s->token[0] == '-';
-               size_t digits = (size_t) (s->cursor - s->token - negative);
-               if (digits >= PHP_JSON_INT_MAX_LENGTH) {
-                       if (digits == PHP_JSON_INT_MAX_LENGTH) {
-                               int cmp = strncmp((char *) (s->token + negative), LONG_MIN_DIGITS, PHP_JSON_INT_MAX_LENGTH);
-                               if (!(cmp < 0 || (cmp == 0 && negative))) {
-                                       bigint = 1;
-                               }
-                       } else {
-                               bigint = 1;
-                       }
-               }
-               if (!bigint) {
-                       ZVAL_LONG(&s->value, ZEND_STRTOL((char *) s->token, NULL, 10));
-                       return PHP_JSON_T_INT;
-               } else if (s->options & PHP_JSON_BIGINT_AS_STRING) {
-                       ZVAL_STRINGL(&s->value, (char *) s->token, s->cursor - s->token);
-                       return PHP_JSON_T_STRING;
-               } else {
-                       ZVAL_DOUBLE(&s->value, zend_strtod((char *) s->token, NULL));
-                       return PHP_JSON_T_DOUBLE;
-               }
-       }
-yy21:
-                       yyaccept = 0;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yybm[0+yych] & 128) {
-                               goto yy21;
-                       }
-                       if (yych <= 'D') {
-                               if (yych == '.') goto yy45;
-                               goto yy20;
-                       } else {
-                               if (yych <= 'E') goto yy47;
-                               if (yych == 'e') goto yy47;
-                               goto yy20;
-                       }
-yy23:
-                       ++YYCURSOR;
-                       { return ':'; }
-yy25:
-                       ++YYCURSOR;
-                       { return '['; }
-yy27:
-                       ++YYCURSOR;
-                       { return ']'; }
-yy29:
-                       yyaccept = 1;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych == 'a') goto yy48;
-                       goto yy13;
-yy30:
-                       yyaccept = 1;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych == 'u') goto yy49;
-                       goto yy13;
-yy31:
-                       yyaccept = 1;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych == 'r') goto yy50;
-                       goto yy13;
-yy32:
-                       ++YYCURSOR;
-                       { return '{'; }
-yy34:
-                       ++YYCURSOR;
-                       { return '}'; }
-yy36:
-                       ++YYCURSOR;
-yy37:
-                       {
-               s->errcode = PHP_JSON_ERROR_UTF8;
-               return PHP_JSON_T_ERROR;
-       }
-yy38:
-                       yych = *++YYCURSOR;
-                       if (yych <= 0x7F) goto yy37;
-                       if (yych <= 0xBF) goto yy12;
-                       goto yy37;
-yy39:
-                       yyaccept = 2;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 0x9F) goto yy37;
-                       if (yych <= 0xBF) goto yy51;
-                       goto yy37;
-yy40:
-                       yyaccept = 2;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 0x7F) goto yy37;
-                       if (yych <= 0xBF) goto yy51;
-                       goto yy37;
-yy41:
-                       yyaccept = 2;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 0x7F) goto yy37;
-                       if (yych <= 0x9F) goto yy51;
-                       goto yy37;
-yy42:
-                       yyaccept = 2;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 0x8F) goto yy37;
-                       if (yych <= 0xBF) goto yy52;
-                       goto yy37;
-yy43:
-                       yyaccept = 2;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 0x7F) goto yy37;
-                       if (yych <= 0xBF) goto yy52;
-                       goto yy37;
-yy44:
-                       yyaccept = 2;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 0x7F) goto yy37;
-                       if (yych <= 0x8F) goto yy52;
-                       goto yy37;
-yy45:
-                       yych = *++YYCURSOR;
-                       if (yych <= '/') goto yy46;
-                       if (yych <= '9') goto yy53;
-yy46:
-                       YYCURSOR = YYMARKER;
-                       if (yyaccept <= 1) {
-                               if (yyaccept == 0) {
-                                       goto yy20;
-                               } else {
-                                       goto yy13;
-                               }
-                       } else {
-                               if (yyaccept == 2) {
-                                       goto yy37;
-                               } else {
-                                       goto yy55;
-                               }
-                       }
-yy47:
-                       yych = *++YYCURSOR;
-                       if (yych <= ',') {
-                               if (yych == '+') goto yy56;
-                               goto yy46;
-                       } else {
-                               if (yych <= '-') goto yy56;
-                               if (yych <= '/') goto yy46;
-                               if (yych <= '9') goto yy57;
-                               goto yy46;
-                       }
-yy48:
-                       yych = *++YYCURSOR;
-                       if (yych == 'l') goto yy59;
-                       goto yy46;
-yy49:
-                       yych = *++YYCURSOR;
-                       if (yych == 'l') goto yy60;
-                       goto yy46;
-yy50:
-                       yych = *++YYCURSOR;
-                       if (yych == 'u') goto yy61;
-                       goto yy46;
-yy51:
-                       yych = *++YYCURSOR;
-                       if (yych <= 0x7F) goto yy46;
-                       if (yych <= 0xBF) goto yy12;
-                       goto yy46;
-yy52:
-                       yych = *++YYCURSOR;
-                       if (yych <= 0x7F) goto yy46;
-                       if (yych <= 0xBF) goto yy51;
-                       goto yy46;
-yy53:
-                       yyaccept = 3;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 'D') {
-                               if (yych <= '/') goto yy55;
-                               if (yych <= '9') goto yy53;
-                       } else {
-                               if (yych <= 'E') goto yy47;
-                               if (yych == 'e') goto yy47;
-                       }
-yy55:
-                       {
-               ZVAL_DOUBLE(&s->value, zend_strtod((char *) s->token, NULL));
-               return PHP_JSON_T_DOUBLE;
-       }
-yy56:
-                       yych = *++YYCURSOR;
-                       if (yych <= '/') goto yy46;
-                       if (yych >= ':') goto yy46;
-yy57:
-                       yych = *++YYCURSOR;
-                       if (yych <= '/') goto yy55;
-                       if (yych <= '9') goto yy57;
-                       goto yy55;
-yy59:
-                       yych = *++YYCURSOR;
-                       if (yych == 's') goto yy62;
-                       goto yy46;
-yy60:
-                       yych = *++YYCURSOR;
-                       if (yych == 'l') goto yy63;
-                       goto yy46;
-yy61:
-                       yych = *++YYCURSOR;
-                       if (yych == 'e') goto yy65;
-                       goto yy46;
-yy62:
-                       yych = *++YYCURSOR;
-                       if (yych == 'e') goto yy67;
-                       goto yy46;
-yy63:
-                       ++YYCURSOR;
-                       {
-               ZVAL_NULL(&s->value);
-               return PHP_JSON_T_NUL;
-       }
-yy65:
-                       ++YYCURSOR;
-                       {
-               ZVAL_TRUE(&s->value);
-               return PHP_JSON_T_TRUE;
-       }
-yy67:
-                       ++YYCURSOR;
-                       {
-               ZVAL_FALSE(&s->value);
-               return PHP_JSON_T_FALSE;
-       }
-               }
-/* *********************************** */
-yyc_STR_P1:
-               yych = *YYCURSOR;
-               if (yych <= 0xDF) {
-                       if (yych <= '[') {
-                               if (yych <= 0x1F) goto yy71;
-                               if (yych == '"') goto yy75;
-                               goto yy73;
-                       } else {
-                               if (yych <= '\\') goto yy77;
-                               if (yych <= 0x7F) goto yy73;
-                               if (yych <= 0xC1) goto yy79;
-                               goto yy81;
-                       }
-               } else {
-                       if (yych <= 0xEF) {
-                               if (yych <= 0xE0) goto yy82;
-                               if (yych == 0xED) goto yy84;
-                               goto yy83;
-                       } else {
-                               if (yych <= 0xF0) goto yy85;
-                               if (yych <= 0xF3) goto yy86;
-                               if (yych <= 0xF4) goto yy87;
-                               goto yy79;
-                       }
-               }
-yy71:
-               ++YYCURSOR;
-               {
-               s->errcode = PHP_JSON_ERROR_CTRL_CHAR;
-               return PHP_JSON_T_ERROR;
-       }
-yy73:
-               ++YYCURSOR;
-               { PHP_JSON_CONDITION_GOTO(STR_P1); }
-yy75:
-               ++YYCURSOR;
-               {
-               zend_string *str;
-               size_t len = s->cursor - s->str_start - s->str_esc - 1 + s->utf8_invalid_count;
-               if (len == 0) {
-                       PHP_JSON_CONDITION_SET(JS);
-                       ZVAL_EMPTY_STRING(&s->value);
-                       return PHP_JSON_T_ESTRING;
-               }
-               str = zend_string_alloc(len, 0);
-               ZSTR_VAL(str)[len] = '\0';
-               ZVAL_STR(&s->value, str);
-               if (s->str_esc || s->utf8_invalid) {
-                       s->pstr = (php_json_ctype *) Z_STRVAL(s->value);
-                       s->cursor = s->str_start;
-                       PHP_JSON_CONDITION_GOTO_STR_P2();
-               } else {
-                       memcpy(Z_STRVAL(s->value), s->str_start, len);
-                       PHP_JSON_CONDITION_SET(JS);
-                       return PHP_JSON_T_STRING;
-               }
-       }
-yy77:
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 'e') {
-                       if (yych <= '/') {
-                               if (yych == '"') goto yy88;
-                               if (yych >= '/') goto yy88;
-                       } else {
-                               if (yych <= '\\') {
-                                       if (yych >= '\\') goto yy88;
-                               } else {
-                                       if (yych == 'b') goto yy88;
-                               }
-                       }
-               } else {
-                       if (yych <= 'q') {
-                               if (yych <= 'f') goto yy88;
-                               if (yych == 'n') goto yy88;
-                       } else {
-                               if (yych <= 's') {
-                                       if (yych <= 'r') goto yy88;
-                               } else {
-                                       if (yych <= 't') goto yy88;
-                                       if (yych <= 'u') goto yy90;
-                               }
-                       }
-               }
-yy78:
-               {
-               s->errcode = PHP_JSON_ERROR_SYNTAX;
-               return PHP_JSON_T_ERROR;
-       }
-yy79:
-               ++YYCURSOR;
-yy80:
-               {
-               if (s->options & (PHP_JSON_INVALID_UTF8_IGNORE | PHP_JSON_INVALID_UTF8_SUBSTITUTE)) {
-                       if (s->options & PHP_JSON_INVALID_UTF8_SUBSTITUTE) {
-                               if (s->utf8_invalid_count > INT_MAX - 2) {
-                                       s->errcode = PHP_JSON_ERROR_UTF8;
-                                       return PHP_JSON_T_ERROR;
-                               }
-                               s->utf8_invalid_count += 2;
-                       } else {
-                               s->utf8_invalid_count--;
-                       }
-                       s->utf8_invalid = 1;
-                       PHP_JSON_CONDITION_GOTO(STR_P1);
-               }
-               s->errcode = PHP_JSON_ERROR_UTF8;
-               return PHP_JSON_T_ERROR;
-       }
-yy81:
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy80;
-               if (yych <= 0xBF) goto yy73;
-               goto yy80;
-yy82:
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x9F) goto yy80;
-               if (yych <= 0xBF) goto yy92;
-               goto yy80;
-yy83:
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x7F) goto yy80;
-               if (yych <= 0xBF) goto yy92;
-               goto yy80;
-yy84:
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x7F) goto yy80;
-               if (yych <= 0x9F) goto yy92;
-               goto yy80;
-yy85:
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x8F) goto yy80;
-               if (yych <= 0xBF) goto yy93;
-               goto yy80;
-yy86:
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x7F) goto yy80;
-               if (yych <= 0xBF) goto yy93;
-               goto yy80;
-yy87:
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x7F) goto yy80;
-               if (yych <= 0x8F) goto yy93;
-               goto yy80;
-yy88:
-               ++YYCURSOR;
-               {
-               s->str_esc++;
-               PHP_JSON_CONDITION_GOTO(STR_P1);
-       }
-yy90:
-               yych = *++YYCURSOR;
-               if (yych <= 'D') {
-                       if (yych <= '9') {
-                               if (yych <= '/') goto yy91;
-                               if (yych <= '0') goto yy94;
-                               goto yy95;
-                       } else {
-                               if (yych <= '@') goto yy91;
-                               if (yych <= 'C') goto yy95;
-                               goto yy96;
-                       }
-               } else {
-                       if (yych <= 'c') {
-                               if (yych <= 'F') goto yy95;
-                               if (yych >= 'a') goto yy95;
-                       } else {
-                               if (yych <= 'd') goto yy96;
-                               if (yych <= 'f') goto yy95;
-                       }
-               }
-yy91:
-               YYCURSOR = YYMARKER;
-               if (yyaccept <= 1) {
-                       if (yyaccept == 0) {
-                               goto yy78;
-                       } else {
-                               goto yy80;
-                       }
-               } else {
-                       goto yy114;
-               }
-yy92:
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy91;
-               if (yych <= 0xBF) goto yy73;
-               goto yy91;
-yy93:
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy91;
-               if (yych <= 0xBF) goto yy92;
-               goto yy91;
-yy94:
-               yych = *++YYCURSOR;
-               if (yych <= '9') {
-                       if (yych <= '/') goto yy91;
-                       if (yych <= '0') goto yy97;
-                       if (yych <= '7') goto yy98;
-                       goto yy99;
-               } else {
-                       if (yych <= 'F') {
-                               if (yych <= '@') goto yy91;
-                               goto yy99;
-                       } else {
-                               if (yych <= '`') goto yy91;
-                               if (yych <= 'f') goto yy99;
-                               goto yy91;
-                       }
-               }
-yy95:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy91;
-                       if (yych <= '9') goto yy99;
-                       goto yy91;
-               } else {
-                       if (yych <= 'F') goto yy99;
-                       if (yych <= '`') goto yy91;
-                       if (yych <= 'f') goto yy99;
-                       goto yy91;
-               }
-yy96:
-               yych = *++YYCURSOR;
-               if (yych <= 'B') {
-                       if (yych <= '7') {
-                               if (yych <= '/') goto yy91;
-                               goto yy99;
-                       } else {
-                               if (yych <= '9') goto yy100;
-                               if (yych <= '@') goto yy91;
-                               goto yy100;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= 'F') goto yy101;
-                               goto yy91;
-                       } else {
-                               if (yych <= 'b') goto yy100;
-                               if (yych <= 'f') goto yy101;
-                               goto yy91;
-                       }
-               }
-yy97:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy91;
-                       if (yych <= '7') goto yy102;
-                       if (yych <= '9') goto yy103;
-                       goto yy91;
-               } else {
-                       if (yych <= 'F') goto yy103;
-                       if (yych <= '`') goto yy91;
-                       if (yych <= 'f') goto yy103;
-                       goto yy91;
-               }
-yy98:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy91;
-                       if (yych <= '9') goto yy103;
-                       goto yy91;
-               } else {
-                       if (yych <= 'F') goto yy103;
-                       if (yych <= '`') goto yy91;
-                       if (yych <= 'f') goto yy103;
-                       goto yy91;
-               }
-yy99:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy91;
-                       if (yych <= '9') goto yy104;
-                       goto yy91;
-               } else {
-                       if (yych <= 'F') goto yy104;
-                       if (yych <= '`') goto yy91;
-                       if (yych <= 'f') goto yy104;
-                       goto yy91;
-               }
-yy100:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy91;
-                       if (yych <= '9') goto yy105;
-                       goto yy91;
-               } else {
-                       if (yych <= 'F') goto yy105;
-                       if (yych <= '`') goto yy91;
-                       if (yych <= 'f') goto yy105;
-                       goto yy91;
-               }
-yy101:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy91;
-                       if (yych <= '9') goto yy106;
-                       goto yy91;
-               } else {
-                       if (yych <= 'F') goto yy106;
-                       if (yych <= '`') goto yy91;
-                       if (yych <= 'f') goto yy106;
-                       goto yy91;
-               }
-yy102:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy91;
-                       if (yych <= '9') goto yy107;
-                       goto yy91;
-               } else {
-                       if (yych <= 'F') goto yy107;
-                       if (yych <= '`') goto yy91;
-                       if (yych <= 'f') goto yy107;
-                       goto yy91;
-               }
-yy103:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy91;
-                       if (yych <= '9') goto yy109;
-                       goto yy91;
-               } else {
-                       if (yych <= 'F') goto yy109;
-                       if (yych <= '`') goto yy91;
-                       if (yych <= 'f') goto yy109;
-                       goto yy91;
-               }
-yy104:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy91;
-                       if (yych <= '9') goto yy111;
-                       goto yy91;
-               } else {
-                       if (yych <= 'F') goto yy111;
-                       if (yych <= '`') goto yy91;
-                       if (yych <= 'f') goto yy111;
-                       goto yy91;
-               }
-yy105:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy91;
-                       if (yych <= '9') goto yy113;
-                       goto yy91;
-               } else {
-                       if (yych <= 'F') goto yy113;
-                       if (yych <= '`') goto yy91;
-                       if (yych <= 'f') goto yy113;
-                       goto yy91;
-               }
-yy106:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy91;
-                       if (yych <= '9') goto yy115;
-                       goto yy91;
-               } else {
-                       if (yych <= 'F') goto yy115;
-                       if (yych <= '`') goto yy91;
-                       if (yych <= 'f') goto yy115;
-                       goto yy91;
-               }
-yy107:
-               ++YYCURSOR;
-               {
-               s->str_esc += 5;
-               PHP_JSON_CONDITION_GOTO(STR_P1);
-       }
-yy109:
-               ++YYCURSOR;
-               {
-               s->str_esc += 4;
-               PHP_JSON_CONDITION_GOTO(STR_P1);
-       }
-yy111:
-               ++YYCURSOR;
-               {
-               s->str_esc += 3;
-               PHP_JSON_CONDITION_GOTO(STR_P1);
-       }
-yy113:
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == '\\') goto yy116;
-yy114:
-               {
-               s->errcode = PHP_JSON_ERROR_UTF16;
-               return PHP_JSON_T_ERROR;
-       }
-yy115:
-               ++YYCURSOR;
-               goto yy114;
-yy116:
-               yych = *++YYCURSOR;
-               if (yych != 'u') goto yy91;
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy118;
-               if (yych != 'd') goto yy91;
-yy118:
-               yych = *++YYCURSOR;
-               if (yych <= 'B') goto yy91;
-               if (yych <= 'F') goto yy119;
-               if (yych <= 'b') goto yy91;
-               if (yych >= 'g') goto yy91;
-yy119:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy91;
-                       if (yych >= ':') goto yy91;
-               } else {
-                       if (yych <= 'F') goto yy120;
-                       if (yych <= '`') goto yy91;
-                       if (yych >= 'g') goto yy91;
-               }
-yy120:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy91;
-                       if (yych >= ':') goto yy91;
-               } else {
-                       if (yych <= 'F') goto yy121;
-                       if (yych <= '`') goto yy91;
-                       if (yych >= 'g') goto yy91;
-               }
-yy121:
-               ++YYCURSOR;
-               {
-               s->str_esc += 8;
-               PHP_JSON_CONDITION_GOTO(STR_P1);
-       }
-/* *********************************** */
-yyc_STR_P2_BIN:
-               yych = *YYCURSOR;
-               if (yych <= 0xDF) {
-                       if (yych <= '[') {
-                               if (yych == '"') goto yy127;
-                       } else {
-                               if (yych <= '\\') goto yy129;
-                               if (yych <= 0x7F) goto yy125;
-                               if (yych <= 0xC1) goto yy131;
-                               goto yy133;
-                       }
-               } else {
-                       if (yych <= 0xEF) {
-                               if (yych <= 0xE0) goto yy134;
-                               if (yych == 0xED) goto yy136;
-                               goto yy135;
-                       } else {
-                               if (yych <= 0xF0) goto yy137;
-                               if (yych <= 0xF3) goto yy138;
-                               if (yych <= 0xF4) goto yy139;
-                               goto yy131;
-                       }
-               }
-yy125:
-               ++YYCURSOR;
-               { PHP_JSON_CONDITION_GOTO(STR_P2_BIN); }
-yy127:
-               ++YYCURSOR;
-               YYSETCONDITION(yycJS);
-               {
-               PHP_JSON_SCANNER_COPY_ESC();
-               return PHP_JSON_T_STRING;
-       }
-yy129:
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'u') goto yy140;
-yy130:
-               {
-               char esc;
-               PHP_JSON_SCANNER_COPY_ESC();
-               switch (*s->cursor) {
-                       case 'b':
-                               esc = '\b';
-                               break;
-                       case 'f':
-                               esc = '\f';                             break;
-                       case 'n':
-                               esc = '\n';
-                               break;
-                       case 'r':
-                               esc = '\r';
-                               break;
-                       case 't':
-                               esc = '\t';
-                               break;
-                       case '\\':
-                       case '/':
-                       case '"':
-                               esc = *s->cursor;
-                               break;
-                       default:
-                               s->errcode = PHP_JSON_ERROR_SYNTAX;
-                               return PHP_JSON_T_ERROR;
-               }
-               *(s->pstr++) = esc;
-               ++YYCURSOR;
-               s->str_start = s->cursor;
-               PHP_JSON_CONDITION_GOTO_STR_P2();
-       }
-yy131:
-               ++YYCURSOR;
-yy132:
-               {
-               if (s->utf8_invalid) {
-                       PHP_JSON_SCANNER_COPY_ESC();
-                       if (s->options & PHP_JSON_INVALID_UTF8_SUBSTITUTE) {
-                               *(s->pstr++) = (char) (0xe0 | (0xfffd >> 12));
-                               *(s->pstr++) = (char) (0x80 | ((0xfffd >> 6) & 0x3f));
-                               *(s->pstr++) = (char) (0x80 | (0xfffd & 0x3f));
-                       }
-                       s->str_start = s->cursor;
-               }
-               PHP_JSON_CONDITION_GOTO(STR_P2_BIN);
-       }
-yy133:
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy132;
-               if (yych <= 0xBF) goto yy125;
-               goto yy132;
-yy134:
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x9F) goto yy132;
-               if (yych <= 0xBF) goto yy142;
-               goto yy132;
-yy135:
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x7F) goto yy132;
-               if (yych <= 0xBF) goto yy142;
-               goto yy132;
-yy136:
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x7F) goto yy132;
-               if (yych <= 0x9F) goto yy142;
-               goto yy132;
-yy137:
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x8F) goto yy132;
-               if (yych <= 0xBF) goto yy143;
-               goto yy132;
-yy138:
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x7F) goto yy132;
-               if (yych <= 0xBF) goto yy143;
-               goto yy132;
-yy139:
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x7F) goto yy132;
-               if (yych <= 0x8F) goto yy143;
-               goto yy132;
-yy140:
-               yych = *++YYCURSOR;
-               if (yych <= 'D') {
-                       if (yych <= '9') {
-                               if (yych <= '/') goto yy141;
-                               if (yych <= '0') goto yy144;
-                               goto yy145;
-                       } else {
-                               if (yych <= '@') goto yy141;
-                               if (yych <= 'C') goto yy145;
-                               goto yy146;
-                       }
-               } else {
-                       if (yych <= 'c') {
-                               if (yych <= 'F') goto yy145;
-                               if (yych >= 'a') goto yy145;
-                       } else {
-                               if (yych <= 'd') goto yy146;
-                               if (yych <= 'f') goto yy145;
-                       }
-               }
-yy141:
-               YYCURSOR = YYMARKER;
-               if (yyaccept == 0) {
-                       goto yy130;
-               } else {
-                       goto yy132;
-               }
-yy142:
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy141;
-               if (yych <= 0xBF) goto yy125;
-               goto yy141;
-yy143:
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy141;
-               if (yych <= 0xBF) goto yy142;
-               goto yy141;
-yy144:
-               yych = *++YYCURSOR;
-               if (yych <= '9') {
-                       if (yych <= '/') goto yy141;
-                       if (yych <= '0') goto yy147;
-                       if (yych <= '7') goto yy148;
-                       goto yy149;
-               } else {
-                       if (yych <= 'F') {
-                               if (yych <= '@') goto yy141;
-                               goto yy149;
-                       } else {
-                               if (yych <= '`') goto yy141;
-                               if (yych <= 'f') goto yy149;
-                               goto yy141;
-                       }
-               }
-yy145:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy141;
-                       if (yych <= '9') goto yy149;
-                       goto yy141;
-               } else {
-                       if (yych <= 'F') goto yy149;
-                       if (yych <= '`') goto yy141;
-                       if (yych <= 'f') goto yy149;
-                       goto yy141;
-               }
-yy146:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy141;
-                       if (yych <= '7') goto yy149;
-                       if (yych <= '9') goto yy150;
-                       goto yy141;
-               } else {
-                       if (yych <= 'B') goto yy150;
-                       if (yych <= '`') goto yy141;
-                       if (yych <= 'b') goto yy150;
-                       goto yy141;
-               }
-yy147:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy141;
-                       if (yych <= '7') goto yy151;
-                       if (yych <= '9') goto yy152;
-                       goto yy141;
-               } else {
-                       if (yych <= 'F') goto yy152;
-                       if (yych <= '`') goto yy141;
-                       if (yych <= 'f') goto yy152;
-                       goto yy141;
-               }
-yy148:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy141;
-                       if (yych <= '9') goto yy152;
-                       goto yy141;
-               } else {
-                       if (yych <= 'F') goto yy152;
-                       if (yych <= '`') goto yy141;
-                       if (yych <= 'f') goto yy152;
-                       goto yy141;
-               }
-yy149:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy141;
-                       if (yych <= '9') goto yy153;
-                       goto yy141;
-               } else {
-                       if (yych <= 'F') goto yy153;
-                       if (yych <= '`') goto yy141;
-                       if (yych <= 'f') goto yy153;
-                       goto yy141;
-               }
-yy150:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy141;
-                       if (yych <= '9') goto yy154;
-                       goto yy141;
-               } else {
-                       if (yych <= 'F') goto yy154;
-                       if (yych <= '`') goto yy141;
-                       if (yych <= 'f') goto yy154;
-                       goto yy141;
-               }
-yy151:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy141;
-                       if (yych <= '9') goto yy155;
-                       goto yy141;
-               } else {
-                       if (yych <= 'F') goto yy155;
-                       if (yych <= '`') goto yy141;
-                       if (yych <= 'f') goto yy155;
-                       goto yy141;
-               }
-yy152:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy141;
-                       if (yych <= '9') goto yy157;
-                       goto yy141;
-               } else {
-                       if (yych <= 'F') goto yy157;
-                       if (yych <= '`') goto yy141;
-                       if (yych <= 'f') goto yy157;
-                       goto yy141;
-               }
-yy153:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy141;
-                       if (yych <= '9') goto yy159;
-                       goto yy141;
-               } else {
-                       if (yych <= 'F') goto yy159;
-                       if (yych <= '`') goto yy141;
-                       if (yych <= 'f') goto yy159;
-                       goto yy141;
-               }
-yy154:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy141;
-                       if (yych <= '9') goto yy161;
-                       goto yy141;
-               } else {
-                       if (yych <= 'F') goto yy161;
-                       if (yych <= '`') goto yy141;
-                       if (yych <= 'f') goto yy161;
-                       goto yy141;
-               }
-yy155:
-               ++YYCURSOR;
-               {
-               int utf16 = php_json_ucs2_to_int(s, 2);
-               PHP_JSON_SCANNER_COPY_UTF();
-               *(s->pstr++) = (char) utf16;
-               s->str_start = s->cursor;
-               PHP_JSON_CONDITION_GOTO_STR_P2();
-       }
-yy157:
-               ++YYCURSOR;
-               {
-               int utf16 = php_json_ucs2_to_int(s, 3);
-               PHP_JSON_SCANNER_COPY_UTF();
-               *(s->pstr++) = (char) (0xc0 | (utf16 >> 6));
-               *(s->pstr++) = (char) (0x80 | (utf16 & 0x3f));
-               s->str_start = s->cursor;
-               PHP_JSON_CONDITION_GOTO_STR_P2();
-       }
-yy159:
-               ++YYCURSOR;
-               {
-               int utf16 = php_json_ucs2_to_int(s, 4);
-               PHP_JSON_SCANNER_COPY_UTF();
-               *(s->pstr++) = (char) (0xe0 | (utf16 >> 12));
-               *(s->pstr++) = (char) (0x80 | ((utf16 >> 6) & 0x3f));
-               *(s->pstr++) = (char) (0x80 | (utf16 & 0x3f));
-               s->str_start = s->cursor;
-               PHP_JSON_CONDITION_GOTO_STR_P2();
-       }
-yy161:
-               yych = *++YYCURSOR;
-               if (yych != '\\') goto yy141;
-               yych = *++YYCURSOR;
-               if (yych != 'u') goto yy141;
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy164;
-               if (yych != 'd') goto yy141;
-yy164:
-               yych = *++YYCURSOR;
-               if (yych <= 'B') goto yy141;
-               if (yych <= 'F') goto yy165;
-               if (yych <= 'b') goto yy141;
-               if (yych >= 'g') goto yy141;
-yy165:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy141;
-                       if (yych >= ':') goto yy141;
-               } else {
-                       if (yych <= 'F') goto yy166;
-                       if (yych <= '`') goto yy141;
-                       if (yych >= 'g') goto yy141;
-               }
-yy166:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy141;
-                       if (yych >= ':') goto yy141;
-               } else {
-                       if (yych <= 'F') goto yy167;
-                       if (yych <= '`') goto yy141;
-                       if (yych >= 'g') goto yy141;
-               }
-yy167:
-               ++YYCURSOR;
-               {
-               int utf32, utf16_hi, utf16_lo;
-               utf16_hi = php_json_ucs2_to_int(s, 4);
-               utf16_lo = php_json_ucs2_to_int_ex(s, 4, 7);
-               utf32 = ((utf16_lo & 0x3FF) << 10) + (utf16_hi & 0x3FF) + 0x10000;
-               PHP_JSON_SCANNER_COPY_UTF_SP();
-               *(s->pstr++) = (char) (0xf0 | (utf32 >> 18));
-               *(s->pstr++) = (char) (0x80 | ((utf32 >> 12) & 0x3f));
-               *(s->pstr++) = (char) (0x80 | ((utf32 >> 6) & 0x3f));
-               *(s->pstr++) = (char) (0x80 | (utf32 & 0x3f));
-               s->str_start = s->cursor;
-               PHP_JSON_CONDITION_GOTO_STR_P2();
-       }
-/* *********************************** */
-yyc_STR_P2_UTF:
-               yych = *YYCURSOR;
-               if (yych == '"') goto yy173;
-               if (yych == '\\') goto yy175;
-               ++YYCURSOR;
-               { PHP_JSON_CONDITION_GOTO(STR_P2_UTF); }
-yy173:
-               ++YYCURSOR;
-               YYSETCONDITION(yycJS);
-               {
-               PHP_JSON_SCANNER_COPY_ESC();
-               return PHP_JSON_T_STRING;
-       }
-yy175:
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'u') goto yy177;
-yy176:
-               {
-               char esc;
-               PHP_JSON_SCANNER_COPY_ESC();
-               switch (*s->cursor) {
-                       case 'b':
-                               esc = '\b';
-                               break;
-                       case 'f':
-                               esc = '\f';                             break;
-                       case 'n':
-                               esc = '\n';
-                               break;
-                       case 'r':
-                               esc = '\r';
-                               break;
-                       case 't':
-                               esc = '\t';
-                               break;
-                       case '\\':
-                       case '/':
-                       case '"':
-                               esc = *s->cursor;
-                               break;
-                       default:
-                               s->errcode = PHP_JSON_ERROR_SYNTAX;
-                               return PHP_JSON_T_ERROR;
-               }
-               *(s->pstr++) = esc;
-               ++YYCURSOR;
-               s->str_start = s->cursor;
-               PHP_JSON_CONDITION_GOTO_STR_P2();
-       }
-yy177:
-               yych = *++YYCURSOR;
-               if (yych <= 'D') {
-                       if (yych <= '9') {
-                               if (yych <= '/') goto yy178;
-                               if (yych <= '0') goto yy179;
-                               goto yy180;
-                       } else {
-                               if (yych <= '@') goto yy178;
-                               if (yych <= 'C') goto yy180;
-                               goto yy181;
-                       }
-               } else {
-                       if (yych <= 'c') {
-                               if (yych <= 'F') goto yy180;
-                               if (yych >= 'a') goto yy180;
-                       } else {
-                               if (yych <= 'd') goto yy181;
-                               if (yych <= 'f') goto yy180;
-                       }
-               }
-yy178:
-               YYCURSOR = YYMARKER;
-               goto yy176;
-yy179:
-               yych = *++YYCURSOR;
-               if (yych <= '9') {
-                       if (yych <= '/') goto yy178;
-                       if (yych <= '0') goto yy182;
-                       if (yych <= '7') goto yy183;
-                       goto yy184;
-               } else {
-                       if (yych <= 'F') {
-                               if (yych <= '@') goto yy178;
-                               goto yy184;
-                       } else {
-                               if (yych <= '`') goto yy178;
-                               if (yych <= 'f') goto yy184;
-                               goto yy178;
-                       }
-               }
-yy180:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy178;
-                       if (yych <= '9') goto yy184;
-                       goto yy178;
-               } else {
-                       if (yych <= 'F') goto yy184;
-                       if (yych <= '`') goto yy178;
-                       if (yych <= 'f') goto yy184;
-                       goto yy178;
-               }
-yy181:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy178;
-                       if (yych <= '7') goto yy184;
-                       if (yych <= '9') goto yy185;
-                       goto yy178;
-               } else {
-                       if (yych <= 'B') goto yy185;
-                       if (yych <= '`') goto yy178;
-                       if (yych <= 'b') goto yy185;
-                       goto yy178;
-               }
-yy182:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy178;
-                       if (yych <= '7') goto yy186;
-                       if (yych <= '9') goto yy187;
-                       goto yy178;
-               } else {
-                       if (yych <= 'F') goto yy187;
-                       if (yych <= '`') goto yy178;
-                       if (yych <= 'f') goto yy187;
-                       goto yy178;
-               }
-yy183:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy178;
-                       if (yych <= '9') goto yy187;
-                       goto yy178;
-               } else {
-                       if (yych <= 'F') goto yy187;
-                       if (yych <= '`') goto yy178;
-                       if (yych <= 'f') goto yy187;
-                       goto yy178;
-               }
-yy184:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy178;
-                       if (yych <= '9') goto yy188;
-                       goto yy178;
-               } else {
-                       if (yych <= 'F') goto yy188;
-                       if (yych <= '`') goto yy178;
-                       if (yych <= 'f') goto yy188;
-                       goto yy178;
-               }
-yy185:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy178;
-                       if (yych <= '9') goto yy189;
-                       goto yy178;
-               } else {
-                       if (yych <= 'F') goto yy189;
-                       if (yych <= '`') goto yy178;
-                       if (yych <= 'f') goto yy189;
-                       goto yy178;
-               }
-yy186:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy178;
-                       if (yych <= '9') goto yy190;
-                       goto yy178;
-               } else {
-                       if (yych <= 'F') goto yy190;
-                       if (yych <= '`') goto yy178;
-                       if (yych <= 'f') goto yy190;
-                       goto yy178;
-               }
-yy187:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy178;
-                       if (yych <= '9') goto yy192;
-                       goto yy178;
-               } else {
-                       if (yych <= 'F') goto yy192;
-                       if (yych <= '`') goto yy178;
-                       if (yych <= 'f') goto yy192;
-                       goto yy178;
-               }
-yy188:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy178;
-                       if (yych <= '9') goto yy194;
-                       goto yy178;
-               } else {
-                       if (yych <= 'F') goto yy194;
-                       if (yych <= '`') goto yy178;
-                       if (yych <= 'f') goto yy194;
-                       goto yy178;
-               }
-yy189:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy178;
-                       if (yych <= '9') goto yy196;
-                       goto yy178;
-               } else {
-                       if (yych <= 'F') goto yy196;
-                       if (yych <= '`') goto yy178;
-                       if (yych <= 'f') goto yy196;
-                       goto yy178;
-               }
-yy190:
-               ++YYCURSOR;
-               {
-               int utf16 = php_json_ucs2_to_int(s, 2);
-               PHP_JSON_SCANNER_COPY_UTF();
-               *(s->pstr++) = (char) utf16;
-               s->str_start = s->cursor;
-               PHP_JSON_CONDITION_GOTO_STR_P2();
-       }
-yy192:
-               ++YYCURSOR;
-               {
-               int utf16 = php_json_ucs2_to_int(s, 3);
-               PHP_JSON_SCANNER_COPY_UTF();
-               *(s->pstr++) = (char) (0xc0 | (utf16 >> 6));
-               *(s->pstr++) = (char) (0x80 | (utf16 & 0x3f));
-               s->str_start = s->cursor;
-               PHP_JSON_CONDITION_GOTO_STR_P2();
-       }
-yy194:
-               ++YYCURSOR;
-               {
-               int utf16 = php_json_ucs2_to_int(s, 4);
-               PHP_JSON_SCANNER_COPY_UTF();
-               *(s->pstr++) = (char) (0xe0 | (utf16 >> 12));
-               *(s->pstr++) = (char) (0x80 | ((utf16 >> 6) & 0x3f));
-               *(s->pstr++) = (char) (0x80 | (utf16 & 0x3f));
-               s->str_start = s->cursor;
-               PHP_JSON_CONDITION_GOTO_STR_P2();
-       }
-yy196:
-               yych = *++YYCURSOR;
-               if (yych != '\\') goto yy178;
-               yych = *++YYCURSOR;
-               if (yych != 'u') goto yy178;
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy199;
-               if (yych != 'd') goto yy178;
-yy199:
-               yych = *++YYCURSOR;
-               if (yych <= 'B') goto yy178;
-               if (yych <= 'F') goto yy200;
-               if (yych <= 'b') goto yy178;
-               if (yych >= 'g') goto yy178;
-yy200:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy178;
-                       if (yych >= ':') goto yy178;
-               } else {
-                       if (yych <= 'F') goto yy201;
-                       if (yych <= '`') goto yy178;
-                       if (yych >= 'g') goto yy178;
-               }
-yy201:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy178;
-                       if (yych >= ':') goto yy178;
-               } else {
-                       if (yych <= 'F') goto yy202;
-                       if (yych <= '`') goto yy178;
-                       if (yych >= 'g') goto yy178;
-               }
-yy202:
-               ++YYCURSOR;
-               {
-               int utf32, utf16_hi, utf16_lo;
-               utf16_hi = php_json_ucs2_to_int(s, 4);
-               utf16_lo = php_json_ucs2_to_int_ex(s, 4, 7);
-               utf32 = ((utf16_lo & 0x3FF) << 10) + (utf16_hi & 0x3FF) + 0x10000;
-               PHP_JSON_SCANNER_COPY_UTF_SP();
-               *(s->pstr++) = (char) (0xf0 | (utf32 >> 18));
-               *(s->pstr++) = (char) (0x80 | ((utf32 >> 12) & 0x3f));
-               *(s->pstr++) = (char) (0x80 | ((utf32 >> 6) & 0x3f));
-               *(s->pstr++) = (char) (0x80 | (utf32 & 0x3f));
-               s->str_start = s->cursor;
-               PHP_JSON_CONDITION_GOTO_STR_P2();
-       }
-       }
-
-
-}
-
diff --git a/ext/json/php_json_scanner_defs.h b/ext/json/php_json_scanner_defs.h
deleted file mode 100644 (file)
index 97ad762..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Generated by re2c 1.0.3 */
-
-enum YYCONDTYPE {
-       yycJS,
-       yycSTR_P1,
-       yycSTR_P2_BIN,
-       yycSTR_P2_UTF,
-};
diff --git a/ext/pdo/pdo_sql_parser.c b/ext/pdo/pdo_sql_parser.c
deleted file mode 100644 (file)
index 779a702..0000000
+++ /dev/null
@@ -1,739 +0,0 @@
-/* Generated by re2c 1.0.3 */
-#line 1 "ext/pdo/pdo_sql_parser.re"
-/*
-  +----------------------------------------------------------------------+
-  | PHP Version 7                                                        |
-  +----------------------------------------------------------------------+
-  | Copyright (c) 1997-2018 The PHP Group                                |
-  +----------------------------------------------------------------------+
-  | This source file is subject to version 3.01 of the PHP license,      |
-  | that is bundled with this package in the file LICENSE, and is        |
-  | available through the world-wide-web at the following url:           |
-  | http://www.php.net/license/3_01.txt                                  |
-  | If you did not receive a copy of the PHP license and are unable to   |
-  | obtain it through the world-wide-web, please send a note to          |
-  | license@php.net so we can mail you a copy immediately.               |
-  +----------------------------------------------------------------------+
-  | Author: George Schlossnagle <george@omniti.com>                      |
-  +----------------------------------------------------------------------+
-*/
-
-#include "php.h"
-#include "php_pdo_driver.h"
-#include "php_pdo_int.h"
-
-#define PDO_PARSER_TEXT 1
-#define PDO_PARSER_BIND 2
-#define PDO_PARSER_BIND_POS 3
-#define PDO_PARSER_EOI 4
-
-#define RET(i) {s->cur = cursor; return i; }
-#define SKIP_ONE(i) {s->cur = s->tok + 1; return i; }
-
-#define YYCTYPE         unsigned char
-#define YYCURSOR        cursor
-#define YYLIMIT         s->end
-#define YYMARKER        s->ptr
-#define YYFILL(n)              { RET(PDO_PARSER_EOI); }
-
-typedef struct Scanner {
-       char    *ptr, *cur, *tok, *end;
-} Scanner;
-
-static int scan(Scanner *s)
-{
-       char *cursor = s->cur;
-
-       s->tok = cursor;
-       #line 53 "ext/pdo/pdo_sql_parser.re"
-
-
-       
-#line 53 "ext/pdo/pdo_sql_parser.c"
-{
-       YYCTYPE yych;
-       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy2;
-       case '"':       goto yy6;
-       case '\'':      goto yy8;
-       case '(':
-       case ')':
-       case '*':
-       case '+':
-       case ',':
-       case '.':       goto yy9;
-       case '-':       goto yy10;
-       case '/':       goto yy11;
-       case ':':       goto yy12;
-       case '?':       goto yy13;
-       default:        goto yy3;
-       }
-yy2:
-       YYCURSOR = YYMARKER;
-       goto yy7;
-yy3:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       switch (yych) {
-       case 0x00:
-       case '"':
-       case '\'':
-       case '(':
-       case ')':
-       case '*':
-       case '+':
-       case ',':
-       case '-':
-       case '.':
-       case '/':
-       case ':':
-       case '?':       goto yy5;
-       default:        goto yy3;
-       }
-yy5:
-#line 63 "ext/pdo/pdo_sql_parser.re"
-       { RET(PDO_PARSER_TEXT); }
-#line 100 "ext/pdo/pdo_sql_parser.c"
-yy6:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych >= 0x01) goto yy16;
-yy7:
-#line 61 "ext/pdo/pdo_sql_parser.re"
-       { SKIP_ONE(PDO_PARSER_TEXT); }
-#line 107 "ext/pdo/pdo_sql_parser.c"
-yy8:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 0x00) goto yy7;
-       goto yy21;
-yy9:
-       ++YYCURSOR;
-       goto yy7;
-yy10:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '-':       goto yy25;
-       default:        goto yy7;
-       }
-yy11:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '*':       goto yy28;
-       default:        goto yy7;
-       }
-yy12:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':
-       case 'A':
-       case 'B':
-       case 'C':
-       case 'D':
-       case 'E':
-       case 'F':
-       case 'G':
-       case 'H':
-       case 'I':
-       case 'J':
-       case 'K':
-       case 'L':
-       case 'M':
-       case 'N':
-       case 'O':
-       case 'P':
-       case 'Q':
-       case 'R':
-       case 'S':
-       case 'T':
-       case 'U':
-       case 'V':
-       case 'W':
-       case 'X':
-       case 'Y':
-       case 'Z':
-       case '_':
-       case 'a':
-       case 'b':
-       case 'c':
-       case 'd':
-       case 'e':
-       case 'f':
-       case 'g':
-       case 'h':
-       case 'i':
-       case 'j':
-       case 'k':
-       case 'l':
-       case 'm':
-       case 'n':
-       case 'o':
-       case 'p':
-       case 'q':
-       case 'r':
-       case 's':
-       case 't':
-       case 'u':
-       case 'v':
-       case 'w':
-       case 'x':
-       case 'y':
-       case 'z':       goto yy30;
-       case ':':       goto yy33;
-       default:        goto yy7;
-       }
-yy13:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '?':       goto yy36;
-       default:        goto yy14;
-       }
-yy14:
-#line 60 "ext/pdo/pdo_sql_parser.re"
-       { RET(PDO_PARSER_BIND_POS); }
-#line 205 "ext/pdo/pdo_sql_parser.c"
-yy15:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy16:
-       switch (yych) {
-       case 0x00:      goto yy2;
-       case '"':       goto yy17;
-       case '\\':      goto yy19;
-       default:        goto yy15;
-       }
-yy17:
-       ++YYCURSOR;
-#line 56 "ext/pdo/pdo_sql_parser.re"
-       { RET(PDO_PARSER_TEXT); }
-#line 221 "ext/pdo/pdo_sql_parser.c"
-yy19:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yych <= 0x00) goto yy2;
-       goto yy15;
-yy20:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy21:
-       switch (yych) {
-       case 0x00:      goto yy2;
-       case '\'':      goto yy22;
-       case '\\':      goto yy24;
-       default:        goto yy20;
-       }
-yy22:
-       ++YYCURSOR;
-#line 57 "ext/pdo/pdo_sql_parser.re"
-       { RET(PDO_PARSER_TEXT); }
-#line 243 "ext/pdo/pdo_sql_parser.c"
-yy24:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yych <= 0x00) goto yy2;
-       goto yy20;
-yy25:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       switch (yych) {
-       case '\n':
-       case '\r':      goto yy27;
-       default:        goto yy25;
-       }
-yy27:
-#line 62 "ext/pdo/pdo_sql_parser.re"
-       { RET(PDO_PARSER_TEXT); }
-#line 262 "ext/pdo/pdo_sql_parser.c"
-yy28:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       switch (yych) {
-       case '*':       goto yy38;
-       default:        goto yy28;
-       }
-yy30:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       switch (yych) {
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':
-       case 'A':
-       case 'B':
-       case 'C':
-       case 'D':
-       case 'E':
-       case 'F':
-       case 'G':
-       case 'H':
-       case 'I':
-       case 'J':
-       case 'K':
-       case 'L':
-       case 'M':
-       case 'N':
-       case 'O':
-       case 'P':
-       case 'Q':
-       case 'R':
-       case 'S':
-       case 'T':
-       case 'U':
-       case 'V':
-       case 'W':
-       case 'X':
-       case 'Y':
-       case 'Z':
-       case '_':
-       case 'a':
-       case 'b':
-       case 'c':
-       case 'd':
-       case 'e':
-       case 'f':
-       case 'g':
-       case 'h':
-       case 'i':
-       case 'j':
-       case 'k':
-       case 'l':
-       case 'm':
-       case 'n':
-       case 'o':
-       case 'p':
-       case 'q':
-       case 'r':
-       case 's':
-       case 't':
-       case 'u':
-       case 'v':
-       case 'w':
-       case 'x':
-       case 'y':
-       case 'z':       goto yy30;
-       default:        goto yy32;
-       }
-yy32:
-#line 59 "ext/pdo/pdo_sql_parser.re"
-       { RET(PDO_PARSER_BIND); }
-#line 344 "ext/pdo/pdo_sql_parser.c"
-yy33:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       switch (yych) {
-       case ':':       goto yy33;
-       default:        goto yy35;
-       }
-yy35:
-#line 58 "ext/pdo/pdo_sql_parser.re"
-       { RET(PDO_PARSER_TEXT); }
-#line 356 "ext/pdo/pdo_sql_parser.c"
-yy36:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       switch (yych) {
-       case '?':       goto yy36;
-       default:        goto yy35;
-       }
-yy38:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       switch (yych) {
-       case '*':       goto yy38;
-       case '/':       goto yy40;
-       default:        goto yy28;
-       }
-yy40:
-       ++YYCURSOR;
-       goto yy27;
-}
-#line 64 "ext/pdo/pdo_sql_parser.re"
-
-}
-
-struct placeholder {
-       char *pos;
-       size_t len;
-       size_t qlen;            /* quoted length of value */
-       char *quoted;   /* quoted value */
-       int freeq;
-       int bindno;
-       struct placeholder *next;
-};
-
-static void free_param_name(zval *el) {
-       efree(Z_PTR_P(el));
-}
-
-PDO_API int pdo_parse_params(pdo_stmt_t *stmt, char *inquery, size_t inquery_len,
-       char **outquery, size_t *outquery_len)
-{
-       Scanner s;
-       char *ptr, *newbuffer;
-       ptrdiff_t t;
-       uint32_t bindno = 0;
-       int ret = 0;
-       size_t newbuffer_len;
-       HashTable *params;
-       struct pdo_bound_param_data *param;
-       int query_type = PDO_PLACEHOLDER_NONE;
-       struct placeholder *placeholders = NULL, *placetail = NULL, *plc = NULL;
-
-       ptr = *outquery;
-       s.cur = inquery;
-       s.end = inquery + inquery_len + 1;
-
-       /* phase 1: look for args */
-       while((t = scan(&s)) != PDO_PARSER_EOI) {
-               if (t == PDO_PARSER_BIND || t == PDO_PARSER_BIND_POS) {
-                       if (t == PDO_PARSER_BIND) {
-                               ptrdiff_t len = s.cur - s.tok;
-                               if ((inquery < (s.cur - len)) && isalnum(*(s.cur - len - 1))) {
-                                       continue;
-                               }
-                               query_type |= PDO_PLACEHOLDER_NAMED;
-                       } else {
-                               query_type |= PDO_PLACEHOLDER_POSITIONAL;
-                       }
-
-                       plc = emalloc(sizeof(*plc));
-                       memset(plc, 0, sizeof(*plc));
-                       plc->next = NULL;
-                       plc->pos = s.tok;
-                       plc->len = s.cur - s.tok;
-                       plc->bindno = bindno++;
-
-                       if (placetail) {
-                               placetail->next = plc;
-                       } else {
-                               placeholders = plc;
-                       }
-                       placetail = plc;
-               }
-       }
-
-       if (bindno == 0) {
-               /* nothing to do; good! */
-               return 0;
-       }
-
-       /* did the query make sense to me? */
-       if (query_type == (PDO_PLACEHOLDER_NAMED|PDO_PLACEHOLDER_POSITIONAL)) {
-               /* they mixed both types; punt */
-               pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "mixed named and positional parameters");
-               ret = -1;
-               goto clean_up;
-       }
-
-       if (stmt->supports_placeholders == query_type && !stmt->named_rewrite_template) {
-               /* query matches native syntax */
-               ret = 0;
-               goto clean_up;
-       }
-
-       if (stmt->named_rewrite_template) {
-               /* magic/hack.
-                * We we pretend that the query was positional even if
-                * it was named so that we fall into the
-                * named rewrite case below.  Not too pretty,
-                * but it works. */
-               query_type = PDO_PLACEHOLDER_POSITIONAL;
-       }
-
-       params = stmt->bound_params;
-
-       /* Do we have placeholders but no bound params */
-       if (bindno && !params && stmt->supports_placeholders == PDO_PLACEHOLDER_NONE) {
-               pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "no parameters were bound");
-               ret = -1;
-               goto clean_up;
-       }
-
-       if (params && bindno != zend_hash_num_elements(params) && stmt->supports_placeholders == PDO_PLACEHOLDER_NONE) {
-               /* extra bit of validation for instances when same params are bound more than once */
-               if (query_type != PDO_PLACEHOLDER_POSITIONAL && bindno > zend_hash_num_elements(params)) {
-                       int ok = 1;
-                       for (plc = placeholders; plc; plc = plc->next) {
-                               if ((param = zend_hash_str_find_ptr(params, plc->pos, plc->len)) == NULL) {
-                                       ok = 0;
-                                       break;
-                               }
-                       }
-                       if (ok) {
-                               goto safe;
-                       }
-               }
-               pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "number of bound variables does not match number of tokens");
-               ret = -1;
-               goto clean_up;
-       }
-safe:
-       /* what are we going to do ? */
-       if (stmt->supports_placeholders == PDO_PLACEHOLDER_NONE) {
-               /* query generation */
-
-               newbuffer_len = inquery_len;
-
-               /* let's quote all the values */
-               for (plc = placeholders; plc; plc = plc->next) {
-                       if (query_type == PDO_PLACEHOLDER_POSITIONAL) {
-                               param = zend_hash_index_find_ptr(params, plc->bindno);
-                       } else {
-                               param = zend_hash_str_find_ptr(params, plc->pos, plc->len);
-                       }
-                       if (param == NULL) {
-                               /* parameter was not defined */
-                               ret = -1;
-                               pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "parameter was not defined");
-                               goto clean_up;
-                       }
-                       if (stmt->dbh->methods->quoter) {
-                               zval *parameter;
-                               if (Z_ISREF(param->parameter)) {
-                                       parameter = Z_REFVAL(param->parameter);
-                               } else {
-                                       parameter = &param->parameter;
-                               }
-                               if (param->param_type == PDO_PARAM_LOB && Z_TYPE_P(parameter) == IS_RESOURCE) {
-                                       php_stream *stm;
-
-                                       php_stream_from_zval_no_verify(stm, parameter);
-                                       if (stm) {
-                                               zend_string *buf;
-
-                                               buf = php_stream_copy_to_mem(stm, PHP_STREAM_COPY_ALL, 0);
-                                               if (!buf) {
-                                                       buf = ZSTR_EMPTY_ALLOC();
-                                               }
-                                               if (!stmt->dbh->methods->quoter(stmt->dbh, ZSTR_VAL(buf), ZSTR_LEN(buf), &plc->quoted, &plc->qlen,
-                                                               param->param_type)) {
-                                                       /* bork */
-                                                       ret = -1;
-                                                       strncpy(stmt->error_code, stmt->dbh->error_code, 6);
-                                                       if (buf) {
-                                                               zend_string_release_ex(buf, 0);
-                                                       }
-                                                       goto clean_up;
-                                               }
-                                               if (buf) {
-                                                       zend_string_release_ex(buf, 0);
-                                               }
-                                       } else {
-                                               pdo_raise_impl_error(stmt->dbh, stmt, "HY105", "Expected a stream resource");
-                                               ret = -1;
-                                               goto clean_up;
-                                       }
-                                       plc->freeq = 1;
-                               } else {
-                                       enum pdo_param_type param_type = param->param_type;
-                                       zend_string *buf = NULL;
-
-                                       /* assume all types are nullable */
-                                       if (Z_TYPE_P(parameter) == IS_NULL) {
-                                               param_type = PDO_PARAM_NULL;
-                                       }
-
-                                       switch (param_type) {
-                                               case PDO_PARAM_BOOL:
-                                                       plc->quoted = zend_is_true(parameter) ? "1" : "0";
-                                                       plc->qlen = sizeof("1")-1;
-                                                       plc->freeq = 0;
-                                                       break;
-
-                                               case PDO_PARAM_INT:
-                                                       buf = zend_long_to_str(zval_get_long(parameter));
-
-                                                       plc->qlen = ZSTR_LEN(buf);
-                                                       plc->quoted = estrdup(ZSTR_VAL(buf));
-                                                       plc->freeq = 1;
-                                                       break;
-
-                                               case PDO_PARAM_NULL:
-                                                       plc->quoted = "NULL";
-                                                       plc->qlen = sizeof("NULL")-1;
-                                                       plc->freeq = 0;
-                                                       break;
-
-                                               default:
-                                                       buf = zval_get_string(parameter);
-                                                       if (!stmt->dbh->methods->quoter(stmt->dbh, ZSTR_VAL(buf),
-                                                                       ZSTR_LEN(buf), &plc->quoted, &plc->qlen,
-                                                                       param_type)) {
-                                                               /* bork */
-                                                               ret = -1;
-                                                               strncpy(stmt->error_code, stmt->dbh->error_code, 6);
-                                                               if (buf) {
-                                                                       zend_string_release_ex(buf, 0);
-                                                               }
-                                                               goto clean_up;
-                                                       }
-                                                       plc->freeq = 1;
-                                       }
-
-                                       if (buf) {
-                                               zend_string_release_ex(buf, 0);
-                                       }
-                               }
-                       } else {
-                               zval *parameter;
-                               if (Z_ISREF(param->parameter)) {
-                                       parameter = Z_REFVAL(param->parameter);
-                               } else {
-                                       parameter = &param->parameter;
-                               }
-                               plc->quoted = Z_STRVAL_P(parameter);
-                               plc->qlen = Z_STRLEN_P(parameter);
-                       }
-                       newbuffer_len += plc->qlen;
-               }
-
-rewrite:
-               /* allocate output buffer */
-               newbuffer = emalloc(newbuffer_len + 1);
-               *outquery = newbuffer;
-
-               /* and build the query */
-               plc = placeholders;
-               ptr = inquery;
-
-               do {
-                       t = plc->pos - ptr;
-                       if (t) {
-                               memcpy(newbuffer, ptr, t);
-                               newbuffer += t;
-                       }
-                       memcpy(newbuffer, plc->quoted, plc->qlen);
-                       newbuffer += plc->qlen;
-                       ptr = plc->pos + plc->len;
-
-                       plc = plc->next;
-               } while (plc);
-
-               t = (inquery + inquery_len) - ptr;
-               if (t) {
-                       memcpy(newbuffer, ptr, t);
-                       newbuffer += t;
-               }
-               *newbuffer = '\0';
-               *outquery_len = newbuffer - *outquery;
-
-               ret = 1;
-               goto clean_up;
-
-       } else if (query_type == PDO_PLACEHOLDER_POSITIONAL) {
-               /* rewrite ? to :pdoX */
-               char *name, *idxbuf;
-               const char *tmpl = stmt->named_rewrite_template ? stmt->named_rewrite_template : ":pdo%d";
-               int bind_no = 1;
-
-               newbuffer_len = inquery_len;
-
-               if (stmt->bound_param_map == NULL) {
-                       ALLOC_HASHTABLE(stmt->bound_param_map);
-                       zend_hash_init(stmt->bound_param_map, 13, NULL, free_param_name, 0);
-               }
-
-               for (plc = placeholders; plc; plc = plc->next) {
-                       int skip_map = 0;
-                       char *p;
-                       name = estrndup(plc->pos, plc->len);
-
-                       /* check if bound parameter is already available */
-                       if (!strcmp(name, "?") || (p = zend_hash_str_find_ptr(stmt->bound_param_map, name, plc->len)) == NULL) {
-                               spprintf(&idxbuf, 0, tmpl, bind_no++);
-                       } else {
-                               idxbuf = estrdup(p);
-                               skip_map = 1;
-                       }
-
-                       plc->quoted = idxbuf;
-                       plc->qlen = strlen(plc->quoted);
-                       plc->freeq = 1;
-                       newbuffer_len += plc->qlen;
-
-                       if (!skip_map && stmt->named_rewrite_template) {
-                               /* create a mapping */
-                               zend_hash_str_update_mem(stmt->bound_param_map, name, plc->len, idxbuf, plc->qlen + 1);
-                       }
-
-                       /* map number to name */
-                       zend_hash_index_update_mem(stmt->bound_param_map, plc->bindno, idxbuf, plc->qlen + 1);
-
-                       efree(name);
-               }
-
-               goto rewrite;
-
-       } else {
-               /* rewrite :name to ? */
-
-               newbuffer_len = inquery_len;
-
-               if (stmt->bound_param_map == NULL) {
-                       ALLOC_HASHTABLE(stmt->bound_param_map);
-                       zend_hash_init(stmt->bound_param_map, 13, NULL, free_param_name, 0);
-               }
-
-               for (plc = placeholders; plc; plc = plc->next) {
-                       char *name;
-                       name = estrndup(plc->pos, plc->len);
-                       zend_hash_index_update_mem(stmt->bound_param_map, plc->bindno, name, plc->len + 1);
-                       efree(name);
-                       plc->quoted = "?";
-                       plc->qlen = 1;
-               }
-
-               goto rewrite;
-       }
-
-clean_up:
-
-       while (placeholders) {
-               plc = placeholders;
-               placeholders = plc->next;
-
-               if (plc->freeq) {
-                       efree(plc->quoted);
-               }
-
-               efree(plc);
-       }
-
-       return ret;
-}
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * End:
- * vim600: noet sw=4 ts=4 fdm=marker ft=c
- * vim<600: noet sw=4 ts=4
- */
diff --git a/ext/phar/phar_path_check.c b/ext/phar/phar_path_check.c
deleted file mode 100644 (file)
index 3b9aa06..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-/* Generated by re2c 1.0.3 */
-#line 1 "ext/phar/phar_path_check.re"
-/*
-  +----------------------------------------------------------------------+
-  | phar php single-file executable PHP extension                        |
-  +----------------------------------------------------------------------+
-  | Copyright (c) 2007-2018 The PHP Group                                |
-  +----------------------------------------------------------------------+
-  | This source file is subject to version 3.01 of the PHP license,      |
-  | that is bundled with this package in the file LICENSE, and is        |
-  | available through the world-wide-web at the following url:           |
-  | http://www.php.net/license/3_01.txt.                                 |
-  | If you did not receive a copy of the PHP license and are unable to   |
-  | obtain it through the world-wide-web, please send a note to          |
-  | license@php.net so we can mail you a copy immediately.               |
-  +----------------------------------------------------------------------+
-  | Authors: Marcus Boerger <helly@php.net>                              |
-  +----------------------------------------------------------------------+
-*/
-
-#include "phar_internal.h"
-
-phar_path_check_result phar_path_check(char **s, size_t *len, const char **error)
-{
-       const unsigned char *p = (const unsigned char*)*s;
-       const unsigned char *m;
-
-       if (*len == 1 && *p == '.') {
-               *error = "current directory reference";
-               return pcr_err_curr_dir;
-       } else if (*len == 2 && p[0] == '.' && p[1] == '.') {
-               *error = "upper directory reference";
-               return pcr_err_up_dir;
-       }
-
-#define YYCTYPE         unsigned char
-#define YYCURSOR        p
-#define YYLIMIT         p+*len
-#define YYMARKER        m
-#define YYFILL(n)
-
-loop:
-
-#line 47 "ext/phar/phar_path_check.c"
-{
-       YYCTYPE yych;
-       unsigned int yyaccept = 0;
-       if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
-       yych = *YYCURSOR;
-       if (yych <= '[') {
-               if (yych <= ')') {
-                       if (yych <= '\f') {
-                               if (yych >= 0x01) goto yy4;
-                       } else {
-                               if (yych <= '\r') goto yy6;
-                               if (yych <= 0x19) goto yy4;
-                               goto yy7;
-                       }
-               } else {
-                       if (yych <= '/') {
-                               if (yych <= '*') goto yy9;
-                               if (yych <= '.') goto yy7;
-                               goto yy11;
-                       } else {
-                               if (yych == '?') goto yy12;
-                               goto yy7;
-                       }
-               }
-       } else {
-               if (yych <= 0xEC) {
-                       if (yych <= 0xC1) {
-                               if (yych <= '\\') goto yy14;
-                               if (yych <= 0x7F) goto yy7;
-                               goto yy4;
-                       } else {
-                               if (yych <= 0xDF) goto yy16;
-                               if (yych <= 0xE0) goto yy17;
-                               goto yy18;
-                       }
-               } else {
-                       if (yych <= 0xF0) {
-                               if (yych <= 0xED) goto yy19;
-                               if (yych <= 0xEF) goto yy18;
-                               goto yy20;
-                       } else {
-                               if (yych <= 0xF3) goto yy21;
-                               if (yych <= 0xF4) goto yy22;
-                               goto yy4;
-                       }
-               }
-       }
-       ++YYCURSOR;
-#line 93 "ext/phar/phar_path_check.re"
-       {
-                       if (**s == '/') {
-                               (*s)++;
-                               (*len)--;
-                       }
-                       if ((p - (const unsigned char*)*s) - 1 != *len)
-                       {
-                               *error ="illegal character";
-                               return pcr_err_illegal_char;
-                       }
-                       *error = NULL;
-                       return pcr_is_ok;
-               }
-#line 110 "ext/phar/phar_path_check.c"
-yy4:
-       ++YYCURSOR;
-yy5:
-#line 106 "ext/phar/phar_path_check.re"
-       {
-                       *error ="illegal character";
-                       return pcr_err_illegal_char;
-               }
-#line 119 "ext/phar/phar_path_check.c"
-yy6:
-       yych = *++YYCURSOR;
-       if (yych == '\n') goto yy4;
-       goto yy5;
-yy7:
-       ++YYCURSOR;
-yy8:
-#line 90 "ext/phar/phar_path_check.re"
-       {
-                       goto loop;
-               }
-#line 131 "ext/phar/phar_path_check.c"
-yy9:
-       ++YYCURSOR;
-#line 78 "ext/phar/phar_path_check.re"
-       {
-                       *error = "star";
-                       return pcr_err_star;
-               }
-#line 139 "ext/phar/phar_path_check.c"
-yy11:
-       yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= '-') goto yy8;
-       if (yych <= '.') goto yy23;
-       if (yych <= '/') goto yy25;
-       goto yy8;
-yy12:
-       ++YYCURSOR;
-#line 82 "ext/phar/phar_path_check.re"
-       {
-                       if (**s == '/') {
-                               (*s)++;
-                       }
-                       *len = (p - (const unsigned char*)*s) -1;
-                       *error = NULL;
-                       return pcr_use_query;
-               }
-#line 158 "ext/phar/phar_path_check.c"
-yy14:
-       ++YYCURSOR;
-#line 74 "ext/phar/phar_path_check.re"
-       {
-                       *error = "back-slash";
-                       return pcr_err_back_slash;
-               }
-#line 166 "ext/phar/phar_path_check.c"
-yy16:
-       yych = *++YYCURSOR;
-       if (yych <= 0x7F) goto yy5;
-       if (yych <= 0xBF) goto yy7;
-       goto yy5;
-yy17:
-       yyaccept = 1;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 0x9F) goto yy5;
-       if (yych <= 0xBF) goto yy27;
-       goto yy5;
-yy18:
-       yyaccept = 1;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 0x7F) goto yy5;
-       if (yych <= 0xBF) goto yy27;
-       goto yy5;
-yy19:
-       yyaccept = 1;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 0x7F) goto yy5;
-       if (yych <= 0x9F) goto yy27;
-       goto yy5;
-yy20:
-       yyaccept = 1;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 0x8F) goto yy5;
-       if (yych <= 0xBF) goto yy28;
-       goto yy5;
-yy21:
-       yyaccept = 1;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 0x7F) goto yy5;
-       if (yych <= 0xBF) goto yy28;
-       goto yy5;
-yy22:
-       yyaccept = 1;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 0x7F) goto yy5;
-       if (yych <= 0x8F) goto yy28;
-       goto yy5;
-yy23:
-       yych = *++YYCURSOR;
-       if (yych <= 0x00) goto yy29;
-       if (yych <= '-') goto yy24;
-       if (yych <= '.') goto yy31;
-       if (yych <= '/') goto yy29;
-yy24:
-       YYCURSOR = YYMARKER;
-       if (yyaccept == 0) {
-               goto yy8;
-       } else {
-               goto yy5;
-       }
-yy25:
-       ++YYCURSOR;
-#line 62 "ext/phar/phar_path_check.re"
-       {
-                       *error = "double slash";
-                       return pcr_err_double_slash;
-               }
-#line 228 "ext/phar/phar_path_check.c"
-yy27:
-       yych = *++YYCURSOR;
-       if (yych <= 0x7F) goto yy24;
-       if (yych <= 0xBF) goto yy7;
-       goto yy24;
-yy28:
-       yych = *++YYCURSOR;
-       if (yych <= 0x7F) goto yy24;
-       if (yych <= 0xBF) goto yy27;
-       goto yy24;
-yy29:
-       ++YYCURSOR;
-#line 70 "ext/phar/phar_path_check.re"
-       {
-                       *error = "current directory reference";
-                       return pcr_err_curr_dir;
-               }
-#line 246 "ext/phar/phar_path_check.c"
-yy31:
-       yych = *++YYCURSOR;
-       if (yych <= 0x00) goto yy32;
-       if (yych != '/') goto yy24;
-yy32:
-       ++YYCURSOR;
-#line 66 "ext/phar/phar_path_check.re"
-       {
-                       *error = "upper directory reference";
-                       return pcr_err_up_dir;
-               }
-#line 258 "ext/phar/phar_path_check.c"
-}
-#line 110 "ext/phar/phar_path_check.re"
-
-}
diff --git a/ext/standard/url_scanner_ex.c b/ext/standard/url_scanner_ex.c
deleted file mode 100644 (file)
index fb4a55d..0000000
+++ /dev/null
@@ -1,1431 +0,0 @@
-/* Generated by re2c 1.0.3 */
-#line 1 "ext/standard/url_scanner_ex.re"
-/*
-  +----------------------------------------------------------------------+
-  | PHP Version 7                                                        |
-  +----------------------------------------------------------------------+
-  | Copyright (c) 1997-2018 The PHP Group                                |
-  +----------------------------------------------------------------------+
-  | This source file is subject to version 3.01 of the PHP license,      |
-  | that is bundled with this package in the file LICENSE, and is        |
-  | available through the world-wide-web at the following url:           |
-  | http://www.php.net/license/3_01.txt                                  |
-  | If you did not receive a copy of the PHP license and are unable to   |
-  | obtain it through the world-wide-web, please send a note to          |
-  | license@php.net so we can mail you a copy immediately.               |
-  +----------------------------------------------------------------------+
-  | Author: Sascha Schumann <sascha@schumann.cx>                         |
-  |         Yasuo Ohgaki <yohgaki@ohgaki.net>                            |
-  +----------------------------------------------------------------------+
-*/
-
-#include "php.h"
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "SAPI.h"
-#include "php_ini.h"
-#include "php_globals.h"
-#include "php_string.h"
-#define STATE_TAG SOME_OTHER_STATE_TAG
-#include "basic_functions.h"
-#include "url.h"
-#include "html.h"
-#undef STATE_TAG
-
-#define url_scanner url_scanner_ex
-
-#include "zend_smart_str.h"
-
-static void tag_dtor(zval *zv)
-{
-       free(Z_PTR_P(zv));
-}
-
-static int php_ini_on_update_tags(zend_ini_entry *entry, zend_string *new_value, void *mh_arg1, void *mh_arg2, void *mh_arg3, int stage, int type)
-{
-       url_adapt_state_ex_t *ctx;
-       char *key;
-       char *tmp;
-       char *lasts = NULL;
-
-       if (type) {
-               ctx = &BG(url_adapt_session_ex);
-       } else {
-               ctx = &BG(url_adapt_output_ex);
-       }
-
-       tmp = estrndup(ZSTR_VAL(new_value), ZSTR_LEN(new_value));
-
-       if (ctx->tags)
-               zend_hash_destroy(ctx->tags);
-       else {
-               ctx->tags = malloc(sizeof(HashTable));
-               if (!ctx->tags) {
-                       efree(tmp);
-                       return FAILURE;
-               }
-       }
-
-       zend_hash_init(ctx->tags, 0, NULL, tag_dtor, 1);
-
-       for (key = php_strtok_r(tmp, ",", &lasts);
-                key;
-                key = php_strtok_r(NULL, ",", &lasts)) {
-               char *val;
-
-               val = strchr(key, '=');
-               if (val) {
-                       char *q;
-                       size_t keylen;
-                       zend_string *str;
-
-                       *val++ = '\0';
-                       for (q = key; *q; q++) {
-                               *q = tolower(*q);
-                       }
-                       keylen = q - key;
-                       str = zend_string_init(key, keylen, 1);
-                       GC_MAKE_PERSISTENT_LOCAL(str);
-                       zend_hash_add_mem(ctx->tags, str, val, strlen(val)+1);
-                       zend_string_release_ex(str, 1);
-               }
-       }
-
-       efree(tmp);
-
-       return SUCCESS;
-}
-
-static PHP_INI_MH(OnUpdateSessionTags)
-{
-       return php_ini_on_update_tags(entry, new_value, mh_arg1, mh_arg2, mh_arg3, stage, 1);
-}
-
-static PHP_INI_MH(OnUpdateOutputTags)
-{
-       return php_ini_on_update_tags(entry, new_value, mh_arg1, mh_arg2, mh_arg3, stage, 0);
-}
-
-static int php_ini_on_update_hosts(zend_ini_entry *entry, zend_string *new_value, void *mh_arg1, void *mh_arg2, void *mh_arg3, int stage, int type)
-{
-       HashTable *hosts;
-       char *key;
-       char *tmp;
-       char *lasts = NULL;
-
-       if (type) {
-               hosts = &BG(url_adapt_session_hosts_ht);
-       } else {
-               hosts = &BG(url_adapt_output_hosts_ht);
-       }
-       zend_hash_clean(hosts);
-
-       /* Use user supplied host whitelist */
-       tmp = estrndup(ZSTR_VAL(new_value), ZSTR_LEN(new_value));
-       for (key = php_strtok_r(tmp, ",", &lasts);
-                key;
-                key = php_strtok_r(NULL, ",", &lasts)) {
-               size_t keylen;
-               zend_string *tmp_key;
-               char *q;
-
-               for (q = key; *q; q++) {
-                       *q = tolower(*q);
-               }
-               keylen = q - key;
-               if (keylen > 0) {
-                       tmp_key = zend_string_init(key, keylen, 0);
-                       zend_hash_add_empty_element(hosts, tmp_key);
-                       zend_string_release_ex(tmp_key, 0);
-               }
-       }
-       efree(tmp);
-
-       return SUCCESS;
-}
-
-static PHP_INI_MH(OnUpdateSessionHosts)
-{
-       return php_ini_on_update_hosts(entry, new_value, mh_arg1, mh_arg2, mh_arg3, stage, 1);
-}
-
-static PHP_INI_MH(OnUpdateOutputHosts)
-{
-       return php_ini_on_update_hosts(entry, new_value, mh_arg1, mh_arg2, mh_arg3, stage, 0);
-}
-
-/* FIXME: OnUpdate*Hosts cannot set default to $_SERVER['HTTP_HOST'] at startup */
-PHP_INI_BEGIN()
-       STD_PHP_INI_ENTRY("session.trans_sid_tags", "a=href,area=href,frame=src,form=", PHP_INI_ALL, OnUpdateSessionTags, url_adapt_session_ex, php_basic_globals, basic_globals)
-       STD_PHP_INI_ENTRY("session.trans_sid_hosts", "", PHP_INI_ALL, OnUpdateSessionHosts, url_adapt_session_hosts_ht, php_basic_globals, basic_globals)
-       STD_PHP_INI_ENTRY("url_rewriter.tags", "form=", PHP_INI_ALL, OnUpdateOutputTags, url_adapt_session_ex, php_basic_globals, basic_globals)
-       STD_PHP_INI_ENTRY("url_rewriter.hosts", "", PHP_INI_ALL, OnUpdateOutputHosts, url_adapt_session_hosts_ht, php_basic_globals, basic_globals)
-PHP_INI_END()
-
-#line 179 "ext/standard/url_scanner_ex.re"
-
-
-#define YYFILL(n) goto done
-#define YYCTYPE unsigned char
-#define YYCURSOR p
-#define YYLIMIT q
-#define YYMARKER r
-
-static inline void append_modified_url(smart_str *url, smart_str *dest, smart_str *url_app, const char *separator)
-{
-       php_url *url_parts;
-
-       smart_str_0(url); /* FIXME: Bug #70480 php_url_parse_ex() crashes by processing chars exceed len */
-       url_parts = php_url_parse_ex(ZSTR_VAL(url->s), ZSTR_LEN(url->s));
-
-       /* Ignore malformed URLs */
-       if (!url_parts) {
-               smart_str_append_smart_str(dest, url);
-               return;
-       }
-
-       /* Don't modify URLs of the format "#mark" */
-       if (url_parts->fragment && '#' == ZSTR_VAL(url->s)[0]) {
-               smart_str_append_smart_str(dest, url);
-               php_url_free(url_parts);
-               return;
-       }
-
-       /* Check protocol. Only http/https is allowed. */
-       if (url_parts->scheme
-               && !zend_string_equals_literal_ci(url_parts->scheme, "http")
-               && !zend_string_equals_literal_ci(url_parts->scheme, "https")) {
-               smart_str_append_smart_str(dest, url);
-               php_url_free(url_parts);
-               return;
-       }
-
-       /* Check host whitelist. If it's not listed, do nothing. */
-       if (url_parts->host) {
-               zend_string *tmp = zend_string_tolower(url_parts->host);
-               if (!zend_hash_exists(&BG(url_adapt_session_hosts_ht), tmp)) {
-                       zend_string_release_ex(tmp, 0);
-                       smart_str_append_smart_str(dest, url);
-                       php_url_free(url_parts);
-                       return;
-               }
-               zend_string_release_ex(tmp, 0);
-       }
-
-       /*
-        * When URL does not have path and query string add "/?".
-        * i.e. If URL is only "?foo=bar", should not add "/?".
-        */
-       if (!url_parts->path && !url_parts->query && !url_parts->fragment) {
-               /* URL is http://php.net or like */
-               smart_str_append_smart_str(dest, url);
-               smart_str_appendc(dest, '/');
-               smart_str_appendc(dest, '?');
-               smart_str_append_smart_str(dest, url_app);
-               php_url_free(url_parts);
-               return;
-       }
-
-       if (url_parts->scheme) {
-               smart_str_appends(dest, ZSTR_VAL(url_parts->scheme));
-               smart_str_appends(dest, "://");
-       } else if (*(ZSTR_VAL(url->s)) == '/' && *(ZSTR_VAL(url->s)+1) == '/') {
-               smart_str_appends(dest, "//");
-       }
-       if (url_parts->user) {
-               smart_str_appends(dest, ZSTR_VAL(url_parts->user));
-               if (url_parts->pass) {
-                       smart_str_appends(dest, ZSTR_VAL(url_parts->pass));
-                       smart_str_appendc(dest, ':');
-               }
-               smart_str_appendc(dest, '@');
-       }
-       if (url_parts->host) {
-               smart_str_appends(dest, ZSTR_VAL(url_parts->host));
-       }
-       if (url_parts->port) {
-               smart_str_appendc(dest, ':');
-               smart_str_append_unsigned(dest, (long)url_parts->port);
-       }
-       if (url_parts->path) {
-               smart_str_appends(dest, ZSTR_VAL(url_parts->path));
-       }
-       smart_str_appendc(dest, '?');
-       if (url_parts->query) {
-               smart_str_appends(dest, ZSTR_VAL(url_parts->query));
-               smart_str_appends(dest, separator);
-               smart_str_append_smart_str(dest, url_app);
-       } else {
-               smart_str_append_smart_str(dest, url_app);
-       }
-       if (url_parts->fragment) {
-               smart_str_appendc(dest, '#');
-               smart_str_appends(dest, ZSTR_VAL(url_parts->fragment));
-       }
-       php_url_free(url_parts);
-}
-
-enum {
-       TAG_NORMAL = 0,
-       TAG_FORM
-};
-
-enum {
-       ATTR_NORMAL = 0,
-       ATTR_ACTION
-};
-
-#undef YYFILL
-#undef YYCTYPE
-#undef YYCURSOR
-#undef YYLIMIT
-#undef YYMARKER
-
-static inline void tag_arg(url_adapt_state_ex_t *ctx, char quotes, char type)
-{
-       char f = 0;
-
-       /* arg.s is string WITHOUT NUL.
-          To avoid partial match, NUL is added here */
-       ZSTR_VAL(ctx->arg.s)[ZSTR_LEN(ctx->arg.s)] = '\0';
-       if (!strcasecmp(ZSTR_VAL(ctx->arg.s), ctx->lookup_data)) {
-               f = 1;
-       }
-
-       if (quotes) {
-               smart_str_appendc(&ctx->result, type);
-       }
-       if (f) {
-               append_modified_url(&ctx->val, &ctx->result, &ctx->url_app, PG(arg_separator).output);
-       } else {
-               smart_str_append_smart_str(&ctx->result, &ctx->val);
-       }
-       if (quotes) {
-               smart_str_appendc(&ctx->result, type);
-       }
-}
-
-enum {
-       STATE_PLAIN = 0,
-       STATE_TAG,
-       STATE_NEXT_ARG,
-       STATE_ARG,
-       STATE_BEFORE_VAL,
-       STATE_VAL
-};
-
-#define YYFILL(n) goto stop
-#define YYCTYPE unsigned char
-#define YYCURSOR xp
-#define YYLIMIT end
-#define YYMARKER q
-#define STATE ctx->state
-
-#define STD_PARA url_adapt_state_ex_t *ctx, char *start, char *YYCURSOR
-#define STD_ARGS ctx, start, xp
-
-#if SCANNER_DEBUG
-#define scdebug(x) printf x
-#else
-#define scdebug(x)
-#endif
-
-static inline void passthru(STD_PARA)
-{
-       scdebug(("appending %d chars, starting with %c\n", YYCURSOR-start, *start));
-       smart_str_appendl(&ctx->result, start, YYCURSOR - start);
-}
-
-
-static int check_http_host(char *target)
-{
-       zval *host, *tmp;
-       zend_string *host_tmp;
-       char *colon;
-
-       if ((tmp  = zend_hash_str_find(&EG(symbol_table), ZEND_STRL("_SERVER"))) &&
-               Z_TYPE_P(tmp) == IS_ARRAY &&
-               (host = zend_hash_str_find(Z_ARRVAL_P(tmp), ZEND_STRL("HTTP_HOST"))) &&
-               Z_TYPE_P(host) == IS_STRING) {
-               host_tmp = zend_string_init(Z_STRVAL_P(host), Z_STRLEN_P(host), 0);
-               /* HTTP_HOST could be 'localhost:8888' etc. */
-               colon = strchr(ZSTR_VAL(host_tmp), ':');
-               if (colon) {
-                       ZSTR_LEN(host_tmp) = colon - ZSTR_VAL(host_tmp);
-                       ZSTR_VAL(host_tmp)[ZSTR_LEN(host_tmp)] = '\0';
-               }
-               if (!strcasecmp(ZSTR_VAL(host_tmp), target)) {
-                       zend_string_release_ex(host_tmp, 0);
-                       return SUCCESS;
-               }
-               zend_string_release_ex(host_tmp, 0);
-       }
-       return FAILURE;
-}
-
-static int check_host_whitelist(url_adapt_state_ex_t *ctx)
-{
-       php_url *url_parts = NULL;
-       HashTable *allowed_hosts = ctx->type ? &BG(url_adapt_session_hosts_ht) : &BG(url_adapt_output_hosts_ht);
-
-       ZEND_ASSERT(ctx->tag_type == TAG_FORM);
-
-       if (ctx->attr_val.s && ZSTR_LEN(ctx->attr_val.s)) {
-               url_parts = php_url_parse_ex(ZSTR_VAL(ctx->attr_val.s), ZSTR_LEN(ctx->attr_val.s));
-       } else {
-               return SUCCESS; /* empty URL is valid */
-       }
-
-       if (!url_parts) {
-               return FAILURE;
-       }
-       if (url_parts->scheme) {
-               /* Only http/https should be handled.
-                  A bit hacky check this here, but saves a URL parse. */
-               if (!zend_string_equals_literal_ci(url_parts->scheme, "http") &&
-                       !zend_string_equals_literal_ci(url_parts->scheme, "https")) {
-               php_url_free(url_parts);
-               return FAILURE;
-               }
-       }
-       if (!url_parts->host) {
-               php_url_free(url_parts);
-               return SUCCESS;
-       }
-       if (!zend_hash_num_elements(allowed_hosts) &&
-               check_http_host(ZSTR_VAL(url_parts->host)) == SUCCESS) {
-               php_url_free(url_parts);
-               return SUCCESS;
-       }
-       if (!zend_hash_find(allowed_hosts, url_parts->host)) {
-               php_url_free(url_parts);
-               return FAILURE;
-       }
-       php_url_free(url_parts);
-       return SUCCESS;
-}
-
-/*
- * This function appends a hidden input field after a <form>.
- */
-static void handle_form(STD_PARA)
-{
-       int doit = 0;
-
-       if (ZSTR_LEN(ctx->form_app.s) > 0) {
-               switch (ZSTR_LEN(ctx->tag.s)) {
-                       case sizeof("form") - 1:
-                               if (!strncasecmp(ZSTR_VAL(ctx->tag.s), "form", ZSTR_LEN(ctx->tag.s))
-                                       && check_host_whitelist(ctx) == SUCCESS) {
-                                       doit = 1;
-                               }
-                               break;
-               }
-       }
-
-       if (doit) {
-               smart_str_append_smart_str(&ctx->result, &ctx->form_app);
-       }
-}
-
-/*
- *  HANDLE_TAG copies the HTML Tag and checks whether we
- *  have that tag in our table. If we might modify it,
- *  we continue to scan the tag, otherwise we simply copy the complete
- *  HTML stuff to the result buffer.
- */
-
-static inline void handle_tag(STD_PARA)
-{
-       int ok = 0;
-       unsigned int i;
-
-       if (ctx->tag.s) {
-               ZSTR_LEN(ctx->tag.s) = 0;
-       }
-       smart_str_appendl(&ctx->tag, start, YYCURSOR - start);
-       for (i = 0; i < ZSTR_LEN(ctx->tag.s); i++)
-               ZSTR_VAL(ctx->tag.s)[i] = tolower((int)(unsigned char)ZSTR_VAL(ctx->tag.s)[i]);
-    /* intentionally using str_find here, in case the hash value is set, but the string val is changed later */
-       if ((ctx->lookup_data = zend_hash_str_find_ptr(ctx->tags, ZSTR_VAL(ctx->tag.s), ZSTR_LEN(ctx->tag.s))) != NULL) {
-               ok = 1;
-               if (ZSTR_LEN(ctx->tag.s) == sizeof("form")-1
-                       && !strncasecmp(ZSTR_VAL(ctx->tag.s), "form", ZSTR_LEN(ctx->tag.s))) {
-                       ctx->tag_type = TAG_FORM;
-               } else {
-                       ctx->tag_type = TAG_NORMAL;
-               }
-       }
-       STATE = ok ? STATE_NEXT_ARG : STATE_PLAIN;
-}
-
-static inline void handle_arg(STD_PARA)
-{
-       if (ctx->arg.s) {
-               ZSTR_LEN(ctx->arg.s) = 0;
-       }
-       smart_str_appendl(&ctx->arg, start, YYCURSOR - start);
-       if (ctx->tag_type == TAG_FORM &&
-               strncasecmp(ZSTR_VAL(ctx->arg.s), "action", ZSTR_LEN(ctx->arg.s)) == 0) {
-               ctx->attr_type = ATTR_ACTION;
-       } else {
-               ctx->attr_type = ATTR_NORMAL;
-       }
-}
-
-static inline void handle_val(STD_PARA, char quotes, char type)
-{
-       smart_str_setl(&ctx->val, start + quotes, YYCURSOR - start - quotes * 2);
-       if (ctx->tag_type == TAG_FORM && ctx->attr_type == ATTR_ACTION) {
-               smart_str_setl(&ctx->attr_val, start + quotes, YYCURSOR - start - quotes * 2);
-       }
-       tag_arg(ctx, quotes, type);
-}
-
-static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, size_t newlen)
-{
-       char *end, *q;
-       char *xp;
-       char *start;
-       size_t rest;
-
-       smart_str_appendl(&ctx->buf, newdata, newlen);
-
-       YYCURSOR = ZSTR_VAL(ctx->buf.s);
-       YYLIMIT = ZSTR_VAL(ctx->buf.s) + ZSTR_LEN(ctx->buf.s);
-
-       switch (STATE) {
-               case STATE_PLAIN: goto state_plain;
-               case STATE_TAG: goto state_tag;
-               case STATE_NEXT_ARG: goto state_next_arg;
-               case STATE_ARG: goto state_arg;
-               case STATE_BEFORE_VAL: goto state_before_val;
-               case STATE_VAL: goto state_val;
-       }
-
-
-state_plain_begin:
-       STATE = STATE_PLAIN;
-
-state_plain:
-       start = YYCURSOR;
-
-#line 524 "ext/standard/url_scanner_ex.c"
-{
-       YYCTYPE yych;
-       static const unsigned char yybm[] = {
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 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, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-       };
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yybm[0+yych] & 128) {
-               goto yy2;
-       }
-       goto yy5;
-yy2:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yybm[0+yych] & 128) {
-               goto yy2;
-       }
-#line 527 "ext/standard/url_scanner_ex.re"
-       { passthru(STD_ARGS); goto state_plain; }
-#line 576 "ext/standard/url_scanner_ex.c"
-yy5:
-       ++YYCURSOR;
-#line 526 "ext/standard/url_scanner_ex.re"
-       { passthru(STD_ARGS); STATE = STATE_TAG; goto state_tag; }
-#line 581 "ext/standard/url_scanner_ex.c"
-}
-#line 528 "ext/standard/url_scanner_ex.re"
-
-
-state_tag:
-       start = YYCURSOR;
-
-#line 589 "ext/standard/url_scanner_ex.c"
-{
-       YYCTYPE yych;
-       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, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0, 128,   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,   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,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-       };
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yybm[0+yych] & 128) {
-               goto yy11;
-       }
-       ++YYCURSOR;
-#line 534 "ext/standard/url_scanner_ex.re"
-       { passthru(STD_ARGS); goto state_plain_begin; }
-#line 634 "ext/standard/url_scanner_ex.c"
-yy11:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yybm[0+yych] & 128) {
-               goto yy11;
-       }
-#line 533 "ext/standard/url_scanner_ex.re"
-       { handle_tag(STD_ARGS); /* Sets STATE */; passthru(STD_ARGS); if (STATE == STATE_PLAIN) goto state_plain; else goto state_next_arg; }
-#line 644 "ext/standard/url_scanner_ex.c"
-}
-#line 535 "ext/standard/url_scanner_ex.re"
-
-
-state_next_arg_begin:
-       STATE = STATE_NEXT_ARG;
-
-state_next_arg:
-       start = YYCURSOR;
-
-#line 655 "ext/standard/url_scanner_ex.c"
-{
-       YYCTYPE yych;
-       static const unsigned char yybm[] = {
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0, 128, 128, 128,   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, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-       };
-       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       if (yybm[0+yych] & 128) {
-               goto yy18;
-       }
-       if (yych <= '>') {
-               if (yych == '/') goto yy21;
-               if (yych >= '>') goto yy22;
-       } else {
-               if (yych <= 'Z') {
-                       if (yych >= 'A') goto yy24;
-               } else {
-                       if (yych <= '`') goto yy16;
-                       if (yych <= 'z') goto yy24;
-               }
-       }
-yy16:
-       ++YYCURSOR;
-yy17:
-#line 546 "ext/standard/url_scanner_ex.re"
-       { passthru(STD_ARGS); goto state_plain_begin; }
-#line 713 "ext/standard/url_scanner_ex.c"
-yy18:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yybm[0+yych] & 128) {
-               goto yy18;
-       }
-#line 544 "ext/standard/url_scanner_ex.re"
-       { passthru(STD_ARGS); goto state_next_arg; }
-#line 723 "ext/standard/url_scanner_ex.c"
-yy21:
-       yych = *++YYCURSOR;
-       if (yych != '>') goto yy17;
-yy22:
-       ++YYCURSOR;
-#line 543 "ext/standard/url_scanner_ex.re"
-       { passthru(STD_ARGS); handle_form(STD_ARGS); goto state_plain_begin; }
-#line 731 "ext/standard/url_scanner_ex.c"
-yy24:
-       ++YYCURSOR;
-#line 545 "ext/standard/url_scanner_ex.re"
-       { --YYCURSOR; STATE = STATE_ARG; goto state_arg; }
-#line 736 "ext/standard/url_scanner_ex.c"
-}
-#line 547 "ext/standard/url_scanner_ex.re"
-
-
-state_arg:
-       start = YYCURSOR;
-
-#line 744 "ext/standard/url_scanner_ex.c"
-{
-       YYCTYPE yych;
-       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, 128,   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, 128, 128, 128, 128, 128, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128, 128,   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,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-       };
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yych <= '@') goto yy28;
-       if (yych <= 'Z') goto yy30;
-       if (yych <= '`') goto yy28;
-       if (yych <= 'z') goto yy30;
-yy28:
-       ++YYCURSOR;
-#line 553 "ext/standard/url_scanner_ex.re"
-       { passthru(STD_ARGS); STATE = STATE_NEXT_ARG; goto state_next_arg; }
-#line 791 "ext/standard/url_scanner_ex.c"
-yy30:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yybm[0+yych] & 128) {
-               goto yy30;
-       }
-#line 552 "ext/standard/url_scanner_ex.re"
-       { passthru(STD_ARGS); handle_arg(STD_ARGS); STATE = STATE_BEFORE_VAL; goto state_before_val; }
-#line 801 "ext/standard/url_scanner_ex.c"
-}
-#line 554 "ext/standard/url_scanner_ex.re"
-
-
-state_before_val:
-       start = YYCURSOR;
-
-#line 809 "ext/standard/url_scanner_ex.c"
-{
-       YYCTYPE yych;
-       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, 
-               128,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-       };
-       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       if (yych == ' ') goto yy37;
-       if (yych == '=') goto yy38;
-       ++YYCURSOR;
-yy36:
-#line 560 "ext/standard/url_scanner_ex.re"
-       { --YYCURSOR; goto state_next_arg_begin; }
-#line 854 "ext/standard/url_scanner_ex.c"
-yy37:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == ' ') goto yy41;
-       if (yych != '=') goto yy36;
-yy38:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yybm[0+yych] & 128) {
-               goto yy38;
-       }
-#line 559 "ext/standard/url_scanner_ex.re"
-       { passthru(STD_ARGS); STATE = STATE_VAL; goto state_val; }
-#line 868 "ext/standard/url_scanner_ex.c"
-yy41:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yych == ' ') goto yy41;
-       if (yych == '=') goto yy38;
-       YYCURSOR = YYMARKER;
-       goto yy36;
-}
-#line 561 "ext/standard/url_scanner_ex.re"
-
-
-
-state_val:
-       start = YYCURSOR;
-
-#line 885 "ext/standard/url_scanner_ex.c"
-{
-       YYCTYPE yych;
-       static const unsigned char yybm[] = {
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 192, 192, 224, 224, 192, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               192, 224, 128, 224, 224, 224, 224,  64, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224,   0, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-               224, 224, 224, 224, 224, 224, 224, 224, 
-       };
-       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       if (yybm[0+yych] & 32) {
-               goto yy46;
-       }
-       if (yych <= ' ') goto yy49;
-       if (yych <= '"') goto yy51;
-       if (yych <= '\'') goto yy52;
-       goto yy49;
-yy46:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yybm[0+yych] & 32) {
-               goto yy46;
-       }
-#line 569 "ext/standard/url_scanner_ex.re"
-       { handle_val(STD_ARGS, 0, ' '); goto state_next_arg_begin; }
-#line 940 "ext/standard/url_scanner_ex.c"
-yy49:
-       ++YYCURSOR;
-yy50:
-#line 570 "ext/standard/url_scanner_ex.re"
-       { passthru(STD_ARGS); goto state_next_arg_begin; }
-#line 946 "ext/standard/url_scanner_ex.c"
-yy51:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '>') goto yy50;
-       goto yy54;
-yy52:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '>') goto yy50;
-       goto yy59;
-yy53:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy54:
-       if (yybm[0+yych] & 64) {
-               goto yy53;
-       }
-       if (yych <= '"') goto yy56;
-yy55:
-       YYCURSOR = YYMARKER;
-       goto yy50;
-yy56:
-       ++YYCURSOR;
-#line 567 "ext/standard/url_scanner_ex.re"
-       { handle_val(STD_ARGS, 1, '"'); goto state_next_arg_begin; }
-#line 971 "ext/standard/url_scanner_ex.c"
-yy58:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-yy59:
-       if (yybm[0+yych] & 128) {
-               goto yy58;
-       }
-       if (yych >= '(') goto yy55;
-       ++YYCURSOR;
-#line 568 "ext/standard/url_scanner_ex.re"
-       { handle_val(STD_ARGS, 1, '\''); goto state_next_arg_begin; }
-#line 984 "ext/standard/url_scanner_ex.c"
-}
-#line 571 "ext/standard/url_scanner_ex.re"
-
-
-stop:
-       if (YYLIMIT < start) {
-               /* XXX: Crash avoidance. Need to work with reporter to figure out what goes wrong */
-               rest = 0;
-       } else {
-               rest = YYLIMIT - start;
-               scdebug(("stopped in state %d at pos %d (%d:%c) %d\n", STATE, YYCURSOR - ctx->buf.c, *YYCURSOR, *YYCURSOR, rest));
-       }
-
-       if (rest) memmove(ZSTR_VAL(ctx->buf.s), start, rest);
-       ZSTR_LEN(ctx->buf.s) = rest;
-}
-
-
-PHPAPI char *php_url_scanner_adapt_single_url(const char *url, size_t urllen, const char *name, const char *value, size_t *newlen, int encode)
-{
-       char *result;
-       smart_str surl = {0};
-       smart_str buf = {0};
-       smart_str url_app = {0};
-       zend_string *encoded;
-
-       smart_str_appendl(&surl, url, urllen);
-
-       if (encode) {
-               encoded = php_raw_url_encode(name, strlen(name));
-               smart_str_appendl(&url_app, ZSTR_VAL(encoded), ZSTR_LEN(encoded));
-               zend_string_free(encoded);
-       } else {
-               smart_str_appends(&url_app, name);
-       }
-       smart_str_appendc(&url_app, '=');
-       if (encode) {
-               encoded = php_raw_url_encode(value, strlen(value));
-               smart_str_appendl(&url_app, ZSTR_VAL(encoded), ZSTR_LEN(encoded));
-               zend_string_free(encoded);
-       } else {
-               smart_str_appends(&url_app, value);
-       }
-
-       append_modified_url(&surl, &buf, &url_app, PG(arg_separator).output);
-
-       smart_str_0(&buf);
-       if (newlen) *newlen = ZSTR_LEN(buf.s);
-       result = estrndup(ZSTR_VAL(buf.s), ZSTR_LEN(buf.s));
-
-       smart_str_free(&url_app);
-       smart_str_free(&buf);
-
-       return result;
-}
-
-
-static char *url_adapt_ext(const char *src, size_t srclen, size_t *newlen, zend_bool do_flush, url_adapt_state_ex_t *ctx)
-{
-       char *retval;
-
-       xx_mainloop(ctx, src, srclen);
-
-       if (!ctx->result.s) {
-               smart_str_appendl(&ctx->result, "", 0);
-               *newlen = 0;
-       } else {
-               *newlen = ZSTR_LEN(ctx->result.s);
-       }
-       smart_str_0(&ctx->result);
-       if (do_flush) {
-               smart_str_append(&ctx->result, ctx->buf.s);
-               *newlen += ZSTR_LEN(ctx->buf.s);
-               smart_str_free(&ctx->buf);
-               smart_str_free(&ctx->val);
-               smart_str_free(&ctx->attr_val);
-       }
-       retval = estrndup(ZSTR_VAL(ctx->result.s), ZSTR_LEN(ctx->result.s));
-       smart_str_free(&ctx->result);
-       return retval;
-}
-
-static int php_url_scanner_ex_activate(int type)
-{
-       url_adapt_state_ex_t *ctx;
-
-       if (type) {
-               ctx = &BG(url_adapt_session_ex);
-       } else {
-               ctx = &BG(url_adapt_output_ex);
-       }
-
-       memset(ctx, 0, ((size_t) &((url_adapt_state_ex_t *)0)->tags));
-
-       return SUCCESS;
-}
-
-static int php_url_scanner_ex_deactivate(int type)
-{
-       url_adapt_state_ex_t *ctx;
-
-       if (type) {
-               ctx = &BG(url_adapt_session_ex);
-       } else {
-               ctx = &BG(url_adapt_output_ex);
-       }
-
-       smart_str_free(&ctx->result);
-       smart_str_free(&ctx->buf);
-       smart_str_free(&ctx->tag);
-       smart_str_free(&ctx->arg);
-       smart_str_free(&ctx->attr_val);
-
-       return SUCCESS;
-}
-
-static inline void php_url_scanner_session_handler_impl(char *output, size_t output_len, char **handled_output, size_t *handled_output_len, int mode, int type)
-{
-       size_t len;
-       url_adapt_state_ex_t *url_state;
-
-       if (type) {
-               url_state = &BG(url_adapt_session_ex);
-       } else {
-               url_state = &BG(url_adapt_output_ex);
-       }
-
-       if (ZSTR_LEN(url_state->url_app.s) != 0) {
-               *handled_output = url_adapt_ext(output, output_len, &len, (zend_bool) (mode & (PHP_OUTPUT_HANDLER_END | PHP_OUTPUT_HANDLER_CONT | PHP_OUTPUT_HANDLER_FLUSH | PHP_OUTPUT_HANDLER_FINAL) ? 1 : 0), url_state);
-               if (sizeof(uint) < sizeof(size_t)) {
-                       if (len > UINT_MAX)
-                               len = UINT_MAX;
-               }
-               *handled_output_len = len;
-       } else if (ZSTR_LEN(url_state->url_app.s) == 0) {
-               url_adapt_state_ex_t *ctx = url_state;
-               if (ctx->buf.s && ZSTR_LEN(ctx->buf.s)) {
-                       smart_str_append(&ctx->result, ctx->buf.s);
-                       smart_str_appendl(&ctx->result, output, output_len);
-
-                       *handled_output = estrndup(ZSTR_VAL(ctx->result.s), ZSTR_LEN(ctx->result.s));
-                       *handled_output_len = ZSTR_LEN(ctx->buf.s) + output_len;
-
-                       smart_str_free(&ctx->buf);
-                       smart_str_free(&ctx->result);
-               } else {
-                       *handled_output = estrndup(output, *handled_output_len = output_len);
-               }
-       } else {
-               *handled_output = NULL;
-       }
-}
-
-static void php_url_scanner_session_handler(char *output, size_t output_len, char **handled_output, size_t *handled_output_len, int mode)
-{
-       php_url_scanner_session_handler_impl(output, output_len, handled_output, handled_output_len, mode, 1);
-}
-
-static void php_url_scanner_output_handler(char *output, size_t output_len, char **handled_output, size_t *handled_output_len, int mode)
-{
-       php_url_scanner_session_handler_impl(output, output_len, handled_output, handled_output_len, mode, 0);
-}
-
-static inline int php_url_scanner_add_var_impl(char *name, size_t name_len, char *value, size_t value_len, int encode, int type)
-{
-       smart_str sname = {0};
-       smart_str svalue = {0};
-       smart_str hname = {0};
-       smart_str hvalue = {0};
-       zend_string *encoded;
-       url_adapt_state_ex_t *url_state;
-       php_output_handler_func_t handler;
-
-       if (type) {
-               url_state = &BG(url_adapt_session_ex);
-               handler = php_url_scanner_session_handler;
-       } else {
-               url_state = &BG(url_adapt_output_ex);
-               handler = php_url_scanner_output_handler;
-       }
-
-       if (!url_state->active) {
-               php_url_scanner_ex_activate(type);
-               php_output_start_internal(ZEND_STRL("URL-Rewriter"), handler, 0, PHP_OUTPUT_HANDLER_STDFLAGS);
-               url_state->active = 1;
-       }
-
-       if (url_state->url_app.s && ZSTR_LEN(url_state->url_app.s) != 0) {
-               smart_str_appends(&url_state->url_app, PG(arg_separator).output);
-       }
-
-       if (encode) {
-               encoded = php_raw_url_encode(name, name_len);
-               smart_str_appendl(&sname, ZSTR_VAL(encoded), ZSTR_LEN(encoded)); zend_string_free(encoded);
-               encoded = php_raw_url_encode(value, value_len);
-               smart_str_appendl(&svalue, ZSTR_VAL(encoded), ZSTR_LEN(encoded)); zend_string_free(encoded);
-               encoded = php_escape_html_entities_ex((unsigned char*)name, name_len, 0, ENT_QUOTES|ENT_SUBSTITUTE, SG(default_charset), 0);
-               smart_str_appendl(&hname, ZSTR_VAL(encoded), ZSTR_LEN(encoded)); zend_string_free(encoded);
-               encoded = php_escape_html_entities_ex((unsigned char*)value, value_len, 0, ENT_QUOTES|ENT_SUBSTITUTE, SG(default_charset), 0);
-               smart_str_appendl(&hvalue, ZSTR_VAL(encoded), ZSTR_LEN(encoded)); zend_string_free(encoded);
-       } else {
-               smart_str_appendl(&sname, name, name_len);
-               smart_str_appendl(&svalue, value, value_len);
-               smart_str_appendl(&hname, name, name_len);
-               smart_str_appendl(&hvalue, value, value_len);
-       }
-
-       smart_str_append_smart_str(&url_state->url_app, &sname);
-       smart_str_appendc(&url_state->url_app, '=');
-       smart_str_append_smart_str(&url_state->url_app, &svalue);
-
-       smart_str_appends(&url_state->form_app, "<input type=\"hidden\" name=\"");
-       smart_str_append_smart_str(&url_state->form_app, &hname);
-       smart_str_appends(&url_state->form_app, "\" value=\"");
-       smart_str_append_smart_str(&url_state->form_app, &hvalue);
-       smart_str_appends(&url_state->form_app, "\" />");
-
-       smart_str_free(&sname);
-       smart_str_free(&svalue);
-       smart_str_free(&hname);
-       smart_str_free(&hvalue);
-
-       return SUCCESS;
-}
-
-
-PHPAPI int php_url_scanner_add_session_var(char *name, size_t name_len, char *value, size_t value_len, int encode)
-{
-       return php_url_scanner_add_var_impl(name, name_len, value, value_len, encode, 1);
-}
-
-
-PHPAPI int php_url_scanner_add_var(char *name, size_t name_len, char *value, size_t value_len, int encode)
-{
-       return php_url_scanner_add_var_impl(name, name_len, value, value_len, encode, 0);
-}
-
-
-static inline void php_url_scanner_reset_vars_impl(int type) {
-       url_adapt_state_ex_t *url_state;
-
-       if (type) {
-               url_state = &BG(url_adapt_session_ex);
-       } else {
-               url_state = &BG(url_adapt_output_ex);
-       }
-
-       if (url_state->form_app.s) {
-               ZSTR_LEN(url_state->form_app.s) = 0;
-       }
-       if (url_state->url_app.s) {
-               ZSTR_LEN(url_state->url_app.s) = 0;
-       }
-}
-
-
-PHPAPI int php_url_scanner_reset_session_vars(void)
-{
-       php_url_scanner_reset_vars_impl(1);
-       return SUCCESS;
-}
-
-
-PHPAPI int php_url_scanner_reset_vars(void)
-{
-       php_url_scanner_reset_vars_impl(0);
-       return SUCCESS;
-}
-
-
-static inline int php_url_scanner_reset_var_impl(zend_string *name, int encode, int type)
-{
-       char *start, *end, *limit;
-       size_t separator_len;
-       smart_str sname = {0};
-       smart_str hname = {0};
-       smart_str url_app = {0};
-       smart_str form_app = {0};
-       zend_string *encoded;
-       int ret = SUCCESS;
-       zend_bool sep_removed = 0;
-       url_adapt_state_ex_t *url_state;
-
-       if (type) {
-               url_state = &BG(url_adapt_session_ex);
-       } else {
-               url_state = &BG(url_adapt_output_ex);
-       }
-
-       /* Short circuit check. Only check url_app. */
-       if (!url_state->url_app.s || !ZSTR_LEN(url_state->url_app.s)) {
-               return SUCCESS;
-       }
-
-       if (encode) {
-               encoded = php_raw_url_encode(ZSTR_VAL(name), ZSTR_LEN(name));
-               smart_str_appendl(&sname, ZSTR_VAL(encoded), ZSTR_LEN(encoded));
-               zend_string_free(encoded);
-               encoded = php_escape_html_entities_ex((unsigned char *)ZSTR_VAL(name), ZSTR_LEN(name), 0, ENT_QUOTES|ENT_SUBSTITUTE, SG(default_charset), 0);
-               smart_str_appendl(&hname, ZSTR_VAL(encoded), ZSTR_LEN(encoded));
-               zend_string_free(encoded);
-       } else {
-               smart_str_appendl(&sname, ZSTR_VAL(name), ZSTR_LEN(name));
-               smart_str_appendl(&hname, ZSTR_VAL(name), ZSTR_LEN(name));
-       }
-       smart_str_0(&sname);
-       smart_str_0(&hname);
-
-       smart_str_append_smart_str(&url_app, &sname);
-       smart_str_appendc(&url_app, '=');
-       smart_str_0(&url_app);
-
-       smart_str_appends(&form_app, "<input type=\"hidden\" name=\"");
-       smart_str_append_smart_str(&form_app, &hname);
-       smart_str_appends(&form_app, "\" value=\"");
-       smart_str_0(&form_app);
-
-       /* Short circuit check. Only check url_app. */
-       start = (char *) php_memnstr(ZSTR_VAL(url_state->url_app.s),
-                                                                ZSTR_VAL(url_app.s), ZSTR_LEN(url_app.s),
-                                                                ZSTR_VAL(url_state->url_app.s) + ZSTR_LEN(url_state->url_app.s));
-       if (!start) {
-               ret = FAILURE;
-               goto finish;
-       }
-
-       /* Get end of url var */
-       limit = ZSTR_VAL(url_state->url_app.s) + ZSTR_LEN(url_state->url_app.s);
-       end = start + ZSTR_LEN(url_app.s);
-       separator_len = strlen(PG(arg_separator).output);
-       while (end < limit) {
-               if (!memcmp(end, PG(arg_separator).output, separator_len)) {
-                       end += separator_len;
-                       sep_removed = 1;
-                       break;
-               }
-               end++;
-       }
-       /* Remove all when this is the only rewrite var */
-       if (ZSTR_LEN(url_state->url_app.s) == end - start) {
-               php_url_scanner_reset_vars_impl(type);
-               goto finish;
-       }
-       /* Check preceding separator */
-       if (!sep_removed
-               && (size_t)(start - PG(arg_separator).output) >= separator_len
-               && !memcmp(start - separator_len, PG(arg_separator).output, separator_len)) {
-               start -= separator_len;
-       }
-       /* Remove partially */
-       memmove(start, end,
-                       ZSTR_LEN(url_state->url_app.s) - (end - ZSTR_VAL(url_state->url_app.s)));
-       ZSTR_LEN(url_state->url_app.s) -= end - start;
-       ZSTR_VAL(url_state->url_app.s)[ZSTR_LEN(url_state->url_app.s)] = '\0';
-
-       /* Remove form var */
-       start = (char *) php_memnstr(ZSTR_VAL(url_state->form_app.s),
-                                               ZSTR_VAL(form_app.s), ZSTR_LEN(form_app.s),
-                                               ZSTR_VAL(url_state->form_app.s) + ZSTR_LEN(url_state->form_app.s));
-       if (!start) {
-               /* Should not happen */
-               ret = FAILURE;
-               php_url_scanner_reset_vars_impl(type);
-               goto finish;
-       }
-       /* Get end of form var */
-       limit = ZSTR_VAL(url_state->form_app.s) + ZSTR_LEN(url_state->form_app.s);
-       end = start + ZSTR_LEN(form_app.s);
-       while (end < limit) {
-               if (*end == '>') {
-                       end += 1;
-                       break;
-               }
-               end++;
-       }
-       /* Remove partially */
-       memmove(start, end,
-                       ZSTR_LEN(url_state->form_app.s) - (end - ZSTR_VAL(url_state->form_app.s)));
-       ZSTR_LEN(url_state->form_app.s) -= end - start;
-       ZSTR_VAL(url_state->form_app.s)[ZSTR_LEN(url_state->form_app.s)] = '\0';
-
-finish:
-       smart_str_free(&url_app);
-       smart_str_free(&form_app);
-       smart_str_free(&sname);
-       smart_str_free(&hname);
-       return ret;
-}
-
-
-PHPAPI int php_url_scanner_reset_session_var(zend_string *name, int encode)
-{
-       return php_url_scanner_reset_var_impl(name, encode, 1);
-}
-
-
-PHPAPI int php_url_scanner_reset_var(zend_string *name, int encode)
-{
-       return php_url_scanner_reset_var_impl(name, encode, 0);
-}
-
-
-PHP_MINIT_FUNCTION(url_scanner)
-{
-       REGISTER_INI_ENTRIES();
-       return SUCCESS;
-}
-
-PHP_MSHUTDOWN_FUNCTION(url_scanner)
-{
-       UNREGISTER_INI_ENTRIES();
-
-       return SUCCESS;
-}
-
-PHP_RINIT_FUNCTION(url_scanner)
-{
-       BG(url_adapt_session_ex).active    = 0;
-       BG(url_adapt_session_ex).tag_type  = 0;
-       BG(url_adapt_session_ex).attr_type = 0;
-       BG(url_adapt_output_ex).active    = 0;
-       BG(url_adapt_output_ex).tag_type  = 0;
-       BG(url_adapt_output_ex).attr_type = 0;
-       return SUCCESS;
-}
-
-PHP_RSHUTDOWN_FUNCTION(url_scanner)
-{
-       if (BG(url_adapt_session_ex).active) {
-               php_url_scanner_ex_deactivate(1);
-               BG(url_adapt_session_ex).active    = 0;
-               BG(url_adapt_session_ex).tag_type  = 0;
-               BG(url_adapt_session_ex).attr_type = 0;
-       }
-       smart_str_free(&BG(url_adapt_session_ex).form_app);
-       smart_str_free(&BG(url_adapt_session_ex).url_app);
-
-       if (BG(url_adapt_output_ex).active) {
-               php_url_scanner_ex_deactivate(0);
-               BG(url_adapt_output_ex).active    = 0;
-               BG(url_adapt_output_ex).tag_type  = 0;
-               BG(url_adapt_output_ex).attr_type = 0;
-       }
-       smart_str_free(&BG(url_adapt_output_ex).form_app);
-       smart_str_free(&BG(url_adapt_output_ex).url_app);
-
-       return SUCCESS;
-}
diff --git a/ext/standard/var_unserializer.c b/ext/standard/var_unserializer.c
deleted file mode 100644 (file)
index 3c1c18a..0000000
+++ /dev/null
@@ -1,1500 +0,0 @@
-/* Generated by re2c 1.0.3 */
-#line 1 "ext/standard/var_unserializer.re"
-/*
-  +----------------------------------------------------------------------+
-  | PHP Version 7                                                        |
-  +----------------------------------------------------------------------+
-  | Copyright (c) 1997-2018 The PHP Group                                |
-  +----------------------------------------------------------------------+
-  | This source file is subject to version 3.01 of the PHP license,      |
-  | that is bundled with this package in the file LICENSE, and is        |
-  | available through the world-wide-web at the following url:           |
-  | http://www.php.net/license/3_01.txt                                  |
-  | If you did not receive a copy of the PHP license and are unable to   |
-  | obtain it through the world-wide-web, please send a note to          |
-  | license@php.net so we can mail you a copy immediately.               |
-  +----------------------------------------------------------------------+
-  | Author: Sascha Schumann <sascha@schumann.cx>                         |
-  +----------------------------------------------------------------------+
-*/
-
-#include "php.h"
-#include "ext/standard/php_var.h"
-#include "php_incomplete_class.h"
-#include "zend_portability.h"
-
-struct php_unserialize_data {
-       void *first;
-       void *last;
-       void *first_dtor;
-       void *last_dtor;
-       HashTable *allowed_classes;
-};
-
-PHPAPI php_unserialize_data_t php_var_unserialize_init() {
-       php_unserialize_data_t d;
-       /* fprintf(stderr, "UNSERIALIZE_INIT    == lock: %u, level: %u\n", BG(serialize_lock), BG(unserialize).level); */
-       if (BG(serialize_lock) || !BG(unserialize).level) {
-               d = ecalloc(1, sizeof(struct php_unserialize_data));
-               if (!BG(serialize_lock)) {
-                       BG(unserialize).data = d;
-                       BG(unserialize).level = 1;
-               }
-       } else {
-               d = BG(unserialize).data;
-               ++BG(unserialize).level;
-       }
-       return d;
-}
-
-PHPAPI void php_var_unserialize_destroy(php_unserialize_data_t d) {
-       /* fprintf(stderr, "UNSERIALIZE_DESTROY == lock: %u, level: %u\n", BG(serialize_lock), BG(unserialize).level); */
-       if (BG(serialize_lock) || BG(unserialize).level == 1) {
-               var_destroy(&d);
-               efree(d);
-       }
-       if (!BG(serialize_lock) && !--BG(unserialize).level) {
-               BG(unserialize).data = NULL;
-       }
-}
-
-PHPAPI HashTable *php_var_unserialize_get_allowed_classes(php_unserialize_data_t d) {
-       return d->allowed_classes;
-}
-PHPAPI void php_var_unserialize_set_allowed_classes(php_unserialize_data_t d, HashTable *classes) {
-       d->allowed_classes = classes;
-}
-
-
-/* {{{ reference-handling for unserializer: var_* */
-#define VAR_ENTRIES_MAX 1024
-#define VAR_ENTRIES_DBG 0
-
-/* VAR_FLAG used in var_dtor entries to signify an entry on which __wakeup should be called */
-#define VAR_WAKEUP_FLAG 1
-
-typedef struct {
-       zval *data[VAR_ENTRIES_MAX];
-       zend_long used_slots;
-       void *next;
-} var_entries;
-
-typedef struct {
-       zval data[VAR_ENTRIES_MAX];
-       zend_long used_slots;
-       void *next;
-} var_dtor_entries;
-
-static inline void var_push(php_unserialize_data_t *var_hashx, zval *rval)
-{
-       var_entries *var_hash = (*var_hashx)->last;
-#if VAR_ENTRIES_DBG
-       fprintf(stderr, "var_push(%ld): %d\n", var_hash?var_hash->used_slots:-1L, Z_TYPE_P(rval));
-#endif
-
-       if (!var_hash || var_hash->used_slots == VAR_ENTRIES_MAX) {
-               var_hash = emalloc(sizeof(var_entries));
-               var_hash->used_slots = 0;
-               var_hash->next = 0;
-
-               if (!(*var_hashx)->first) {
-                       (*var_hashx)->first = var_hash;
-               } else {
-                       ((var_entries *) (*var_hashx)->last)->next = var_hash;
-               }
-
-               (*var_hashx)->last = var_hash;
-       }
-
-       var_hash->data[var_hash->used_slots++] = rval;
-}
-
-PHPAPI void var_push_dtor(php_unserialize_data_t *var_hashx, zval *rval)
-{
-       zval *tmp_var = var_tmp_var(var_hashx);
-    if (!tmp_var) {
-        return;
-    }
-       ZVAL_COPY(tmp_var, rval);
-}
-
-PHPAPI zval *var_tmp_var(php_unserialize_data_t *var_hashx)
-{
-    var_dtor_entries *var_hash;
-
-    if (!var_hashx || !*var_hashx) {
-        return NULL;
-    }
-
-    var_hash = (*var_hashx)->last_dtor;
-    if (!var_hash || var_hash->used_slots == VAR_ENTRIES_MAX) {
-        var_hash = emalloc(sizeof(var_dtor_entries));
-        var_hash->used_slots = 0;
-        var_hash->next = 0;
-
-        if (!(*var_hashx)->first_dtor) {
-            (*var_hashx)->first_dtor = var_hash;
-        } else {
-            ((var_dtor_entries *) (*var_hashx)->last_dtor)->next = var_hash;
-        }
-
-        (*var_hashx)->last_dtor = var_hash;
-    }
-    ZVAL_UNDEF(&var_hash->data[var_hash->used_slots]);
-       Z_EXTRA(var_hash->data[var_hash->used_slots]) = 0;
-    return &var_hash->data[var_hash->used_slots++];
-}
-
-PHPAPI void var_replace(php_unserialize_data_t *var_hashx, zval *ozval, zval *nzval)
-{
-       zend_long i;
-       var_entries *var_hash = (*var_hashx)->first;
-#if VAR_ENTRIES_DBG
-       fprintf(stderr, "var_replace(%ld): %d\n", var_hash?var_hash->used_slots:-1L, Z_TYPE_P(nzval));
-#endif
-
-       while (var_hash) {
-               for (i = 0; i < var_hash->used_slots; i++) {
-                       if (var_hash->data[i] == ozval) {
-                               var_hash->data[i] = nzval;
-                               /* do not break here */
-                       }
-               }
-               var_hash = var_hash->next;
-       }
-}
-
-static zval *var_access(php_unserialize_data_t *var_hashx, zend_long id)
-{
-       var_entries *var_hash = (*var_hashx)->first;
-#if VAR_ENTRIES_DBG
-       fprintf(stderr, "var_access(%ld): %ld\n", var_hash?var_hash->used_slots:-1L, id);
-#endif
-
-       while (id >= VAR_ENTRIES_MAX && var_hash && var_hash->used_slots == VAR_ENTRIES_MAX) {
-               var_hash = var_hash->next;
-               id -= VAR_ENTRIES_MAX;
-       }
-
-       if (!var_hash) return NULL;
-
-       if (id < 0 || id >= var_hash->used_slots) return NULL;
-
-       return var_hash->data[id];
-}
-
-PHPAPI void var_destroy(php_unserialize_data_t *var_hashx)
-{
-       void *next;
-       zend_long i;
-       var_entries *var_hash = (*var_hashx)->first;
-       var_dtor_entries *var_dtor_hash = (*var_hashx)->first_dtor;
-       zend_bool wakeup_failed = 0;
-       zval wakeup_name;
-       ZVAL_UNDEF(&wakeup_name);
-
-#if VAR_ENTRIES_DBG
-       fprintf(stderr, "var_destroy(%ld)\n", var_hash?var_hash->used_slots:-1L);
-#endif
-
-       while (var_hash) {
-               next = var_hash->next;
-               efree_size(var_hash, sizeof(var_entries));
-               var_hash = next;
-       }
-
-       while (var_dtor_hash) {
-               for (i = 0; i < var_dtor_hash->used_slots; i++) {
-                       zval *zv = &var_dtor_hash->data[i];
-#if VAR_ENTRIES_DBG
-                       fprintf(stderr, "var_destroy dtor(%p, %ld)\n", var_dtor_hash->data[i], Z_REFCOUNT_P(var_dtor_hash->data[i]));
-#endif
-
-                       /* Perform delayed __wakeup calls */
-                       if (Z_EXTRA_P(zv) == VAR_WAKEUP_FLAG) {
-                               if (!wakeup_failed) {
-                                       zval retval;
-                                       if (Z_ISUNDEF(wakeup_name)) {
-                                               ZVAL_STRINGL(&wakeup_name, "__wakeup", sizeof("__wakeup") - 1);
-                                       }
-
-                                       BG(serialize_lock)++;
-                                       if (call_user_function(CG(function_table), zv, &wakeup_name, &retval, 0, 0) == FAILURE || Z_ISUNDEF(retval)) {
-                                               wakeup_failed = 1;
-                                               GC_ADD_FLAGS(Z_OBJ_P(zv), IS_OBJ_DESTRUCTOR_CALLED);
-                                       }
-                                       BG(serialize_lock)--;
-
-                                       zval_ptr_dtor(&retval);
-                               } else {
-                                       GC_ADD_FLAGS(Z_OBJ_P(zv), IS_OBJ_DESTRUCTOR_CALLED);
-                               }
-                       }
-
-                       i_zval_ptr_dtor(zv);
-               }
-               next = var_dtor_hash->next;
-               efree_size(var_dtor_hash, sizeof(var_dtor_entries));
-               var_dtor_hash = next;
-       }
-
-       zval_ptr_dtor_nogc(&wakeup_name);
-}
-
-/* }}} */
-
-static zend_string *unserialize_str(const unsigned char **p, size_t len, size_t maxlen)
-{
-       size_t i, j;
-       zend_string *str = zend_string_safe_alloc(1, len, 0, 0);
-       unsigned char *end = *(unsigned char **)p+maxlen;
-
-       if (end < *p) {
-               zend_string_efree(str);
-               return NULL;
-       }
-
-       for (i = 0; i < len; i++) {
-               if (*p >= end) {
-                       zend_string_efree(str);
-                       return NULL;
-               }
-               if (**p != '\\') {
-                       ZSTR_VAL(str)[i] = (char)**p;
-               } else {
-                       unsigned char ch = 0;
-
-                       for (j = 0; j < 2; j++) {
-                               (*p)++;
-                               if (**p >= '0' && **p <= '9') {
-                                       ch = (ch << 4) + (**p -'0');
-                               } else if (**p >= 'a' && **p <= 'f') {
-                                       ch = (ch << 4) + (**p -'a'+10);
-                               } else if (**p >= 'A' && **p <= 'F') {
-                                       ch = (ch << 4) + (**p -'A'+10);
-                               } else {
-                                       zend_string_efree(str);
-                                       return NULL;
-                               }
-                       }
-                       ZSTR_VAL(str)[i] = (char)ch;
-               }
-               (*p)++;
-       }
-       ZSTR_VAL(str)[i] = 0;
-       ZSTR_LEN(str) = i;
-       return str;
-}
-
-static inline int unserialize_allowed_class(
-               zend_string *class_name, php_unserialize_data_t *var_hashx)
-{
-       HashTable *classes = (*var_hashx)->allowed_classes;
-       zend_string *lcname;
-       int res;
-       ALLOCA_FLAG(use_heap)
-
-       if(classes == NULL) {
-               return 1;
-       }
-       if(!zend_hash_num_elements(classes)) {
-               return 0;
-       }
-
-       ZSTR_ALLOCA_ALLOC(lcname, ZSTR_LEN(class_name), use_heap);
-       zend_str_tolower_copy(ZSTR_VAL(lcname), ZSTR_VAL(class_name), ZSTR_LEN(class_name));
-       res = zend_hash_exists(classes, lcname);
-       ZSTR_ALLOCA_FREE(lcname, use_heap);
-       return res;
-}
-
-#define YYFILL(n) do { } while (0)
-#define YYCTYPE unsigned char
-#define YYCURSOR cursor
-#define YYLIMIT limit
-#define YYMARKER marker
-
-
-#line 323 "ext/standard/var_unserializer.re"
-
-
-
-
-static inline zend_long parse_iv2(const unsigned char *p, const unsigned char **q)
-{
-       zend_ulong result = 0;
-       zend_ulong neg = 0;
-       const unsigned char *start;
-
-       if (*p == '-') {
-               neg = 1;
-               p++;
-       } else if (UNEXPECTED(*p == '+')) {
-               p++;
-       }
-
-       while (UNEXPECTED(*p == '0')) {
-               p++;
-       }
-
-       start = p;
-
-       while (*p >= '0' && *p <= '9') {
-               result = result * 10 + ((zend_ulong)(*p) - '0');
-               p++;
-       }
-
-       if (q) {
-               *q = p;
-       }
-
-       /* number too long or overflow */
-       if (UNEXPECTED(p - start > MAX_LENGTH_OF_LONG - 1)
-        || (SIZEOF_ZEND_LONG == 4
-               && UNEXPECTED(p - start == MAX_LENGTH_OF_LONG - 1)
-               && UNEXPECTED(*start > '2'))
-        || UNEXPECTED(result - neg > ZEND_LONG_MAX)) {
-               php_error_docref(NULL, E_WARNING, "Numerical result out of range");
-               return (!neg) ? ZEND_LONG_MAX : ZEND_LONG_MIN;
-       }
-
-       return (!neg) ? (zend_long)result : -(zend_long)result;
-}
-
-static inline zend_long parse_iv(const unsigned char *p)
-{
-       return parse_iv2(p, NULL);
-}
-
-/* no need to check for length - re2c already did */
-static inline size_t parse_uiv(const unsigned char *p)
-{
-       unsigned char cursor;
-       size_t result = 0;
-
-       while (1) {
-               cursor = *p;
-               if (cursor >= '0' && cursor <= '9') {
-                       result = result * 10 + (size_t)(cursor - (unsigned char)'0');
-               } else {
-                       break;
-               }
-               p++;
-       }
-       return result;
-}
-
-#define UNSERIALIZE_PARAMETER zval *rval, const unsigned char **p, const unsigned char *max, php_unserialize_data_t *var_hash
-#define UNSERIALIZE_PASSTHRU rval, p, max, var_hash
-
-static int php_var_unserialize_internal(UNSERIALIZE_PARAMETER, int as_key);
-
-static zend_always_inline int process_nested_data(UNSERIALIZE_PARAMETER, HashTable *ht, zend_long elements, int objprops)
-{
-       while (elements-- > 0) {
-               zval key, *data, d, *old_data;
-               zend_ulong idx;
-
-               ZVAL_UNDEF(&key);
-
-               if (!php_var_unserialize_internal(&key, p, max, NULL, 1)) {
-                       zval_ptr_dtor(&key);
-                       return 0;
-               }
-
-               data = NULL;
-               ZVAL_UNDEF(&d);
-
-               if (!objprops) {
-                       if (Z_TYPE(key) == IS_LONG) {
-                               idx = Z_LVAL(key);
-numeric_key:
-                               if (UNEXPECTED((old_data = zend_hash_index_find(ht, idx)) != NULL)) {
-                                       //??? update hash
-                                       var_push_dtor(var_hash, old_data);
-                                       data = zend_hash_index_update(ht, idx, &d);
-                               } else {
-                                       data = zend_hash_index_add_new(ht, idx, &d);
-                               }
-                       } else if (Z_TYPE(key) == IS_STRING) {
-                               if (UNEXPECTED(ZEND_HANDLE_NUMERIC(Z_STR(key), idx))) {
-                                       goto numeric_key;
-                               }
-                               if (UNEXPECTED((old_data = zend_hash_find(ht, Z_STR(key))) != NULL)) {
-                                       //??? update hash
-                                       var_push_dtor(var_hash, old_data);
-                                       data = zend_hash_update(ht, Z_STR(key), &d);
-                               } else {
-                                       data = zend_hash_add_new(ht, Z_STR(key), &d);
-                               }
-                       } else {
-                               zval_ptr_dtor(&key);
-                               return 0;
-                       }
-               } else {
-                       if (EXPECTED(Z_TYPE(key) == IS_STRING)) {
-string_key:
-                               if (Z_TYPE_P(rval) == IS_OBJECT
-                                               && zend_hash_num_elements(&Z_OBJCE_P(rval)->properties_info) > 0) {
-                                       zend_property_info *existing_propinfo;
-                                       zend_string *new_key;
-                                       const char *unmangled_class = NULL;
-                                       const char *unmangled_prop;
-                                       size_t unmangled_prop_len;
-                                       zend_string *unmangled;
-
-                                       if (UNEXPECTED(zend_unmangle_property_name_ex(Z_STR(key), &unmangled_class, &unmangled_prop, &unmangled_prop_len) == FAILURE)) {
-                                               zval_ptr_dtor(&key);
-                                               return 0;
-                                       }
-
-                                       unmangled = zend_string_init(unmangled_prop, unmangled_prop_len, 0);
-
-                                       existing_propinfo = zend_hash_find_ptr(&Z_OBJCE_P(rval)->properties_info, unmangled);
-                    if ((unmangled_class == NULL || !strcmp(unmangled_class, "*") || !strcasecmp(unmangled_class, ZSTR_VAL(Z_OBJCE_P(rval)->name)))
-                            && (existing_propinfo != NULL)
-                                                       && (existing_propinfo->flags & ZEND_ACC_PPP_MASK)) {
-                                               if (existing_propinfo->flags & ZEND_ACC_PROTECTED) {
-                                                       new_key = zend_mangle_property_name(
-                                                               "*", 1, ZSTR_VAL(unmangled), ZSTR_LEN(unmangled), 0);
-                                                       zend_string_release_ex(unmangled, 0);
-                                               } else if (existing_propinfo->flags & ZEND_ACC_PRIVATE) {
-                                                       if (unmangled_class != NULL && strcmp(unmangled_class, "*") != 0) {
-                                                               new_key = zend_mangle_property_name(
-                                                                       unmangled_class, strlen(unmangled_class),
-                                                                               ZSTR_VAL(unmangled), ZSTR_LEN(unmangled),
-                                                                               0);
-                                                       } else {
-                                                               new_key = zend_mangle_property_name(
-                                                                       ZSTR_VAL(existing_propinfo->ce->name), ZSTR_LEN(existing_propinfo->ce->name),
-                                                                       ZSTR_VAL(unmangled), ZSTR_LEN(unmangled),
-                                                                       0);
-                                                       }
-                                                       zend_string_release_ex(unmangled, 0);
-                                               } else {
-                                                       ZEND_ASSERT(existing_propinfo->flags & ZEND_ACC_PUBLIC);
-                                                       new_key = unmangled;
-                                               }
-                                               zval_ptr_dtor_str(&key);
-                                               ZVAL_STR(&key, new_key);
-                                       } else {
-                                               zend_string_release_ex(unmangled, 0);
-                                       }
-                               }
-
-                               if ((old_data = zend_hash_find(ht, Z_STR(key))) != NULL) {
-                                       if (Z_TYPE_P(old_data) == IS_INDIRECT) {
-                                               old_data = Z_INDIRECT_P(old_data);
-                                       }
-                                       var_push_dtor(var_hash, old_data);
-                                       data = zend_hash_update_ind(ht, Z_STR(key), &d);
-                               } else {
-                                       data = zend_hash_add_new(ht, Z_STR(key), &d);
-                               }
-                       } else if (Z_TYPE(key) == IS_LONG) {
-                               /* object properties should include no integers */
-                               convert_to_string(&key);
-                               goto string_key;
-                       } else {
-                               zval_ptr_dtor(&key);
-                               return 0;
-                       }
-               }
-
-               if (!php_var_unserialize_internal(data, p, max, var_hash, 0)) {
-                       zval_ptr_dtor(&key);
-                       return 0;
-               }
-
-               var_push_dtor(var_hash, data);
-               zval_ptr_dtor_str(&key);
-
-               if (elements && *(*p-1) != ';' && *(*p-1) != '}') {
-                       (*p)--;
-                       return 0;
-               }
-       }
-
-       return 1;
-}
-
-static inline int finish_nested_data(UNSERIALIZE_PARAMETER)
-{
-       if (*p >= max || **p != '}') {
-               return 0;
-       }
-
-       (*p)++;
-       return 1;
-}
-
-static inline int object_custom(UNSERIALIZE_PARAMETER, zend_class_entry *ce)
-{
-       zend_long datalen;
-
-       datalen = parse_iv2((*p) + 2, p);
-
-       (*p) += 2;
-
-       if (datalen < 0 || (max - (*p)) <= datalen) {
-               zend_error(E_WARNING, "Insufficient data for unserializing - " ZEND_LONG_FMT " required, " ZEND_LONG_FMT " present", datalen, (zend_long)(max - (*p)));
-               return 0;
-       }
-
-       /* Check that '}' is present before calling ce->unserialize() to mitigate issues
-        * with unserialize reading past the end of the passed buffer if the string is not
-        * appropriately terminated (usually NUL terminated, but '}' is also sufficient.) */
-       if ((*p)[datalen] != '}') {
-               return 0;
-       }
-
-       if (ce->unserialize == NULL) {
-               zend_error(E_WARNING, "Class %s has no unserializer", ZSTR_VAL(ce->name));
-               object_init_ex(rval, ce);
-       } else if (ce->unserialize(rval, ce, (const unsigned char*)*p, datalen, (zend_unserialize_data *)var_hash) != SUCCESS) {
-               return 0;
-       }
-
-       (*p) += datalen + 1; /* +1 for '}' */
-       return 1;
-}
-
-static inline zend_long object_common1(UNSERIALIZE_PARAMETER, zend_class_entry *ce)
-{
-       zend_long elements;
-
-       if( *p >= max - 2) {
-               zend_error(E_WARNING, "Bad unserialize data");
-               return -1;
-       }
-
-       elements = parse_iv2((*p) + 2, p);
-
-       (*p) += 2;
-
-       if (ce->serialize == NULL) {
-               object_init_ex(rval, ce);
-       } else {
-               /* If this class implements Serializable, it should not land here but in object_custom(). The passed string
-               obviously doesn't descend from the regular serializer. */
-               zend_error(E_WARNING, "Erroneous data format for unserializing '%s'", ZSTR_VAL(ce->name));
-               return -1;
-       }
-
-       return elements;
-}
-
-#ifdef PHP_WIN32
-# pragma optimize("", off)
-#endif
-static inline int object_common2(UNSERIALIZE_PARAMETER, zend_long elements)
-{
-       HashTable *ht;
-       zend_bool has_wakeup;
-
-       if (Z_TYPE_P(rval) != IS_OBJECT) {
-               return 0;
-       }
-
-       has_wakeup = Z_OBJCE_P(rval) != PHP_IC_ENTRY
-               && zend_hash_str_exists(&Z_OBJCE_P(rval)->function_table, "__wakeup", sizeof("__wakeup")-1);
-
-       ht = Z_OBJPROP_P(rval);
-       if (elements >= (zend_long)(HT_MAX_SIZE - zend_hash_num_elements(ht))) {
-               return 0;
-       }
-
-       zend_hash_extend(ht, zend_hash_num_elements(ht) + elements, HT_FLAGS(ht) & HASH_FLAG_PACKED);
-       if (!process_nested_data(UNSERIALIZE_PASSTHRU, ht, elements, 1)) {
-               if (has_wakeup) {
-                       ZVAL_DEREF(rval);
-                       GC_ADD_FLAGS(Z_OBJ_P(rval), IS_OBJ_DESTRUCTOR_CALLED);
-               }
-               return 0;
-       }
-
-       ZVAL_DEREF(rval);
-       if (has_wakeup) {
-               /* Delay __wakeup call until end of serialization */
-               zval *wakeup_var = var_tmp_var(var_hash);
-               ZVAL_COPY(wakeup_var, rval);
-               Z_EXTRA_P(wakeup_var) = VAR_WAKEUP_FLAG;
-       }
-
-       return finish_nested_data(UNSERIALIZE_PASSTHRU);
-}
-#ifdef PHP_WIN32
-# pragma optimize("", on)
-#endif
-
-PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
-{
-       var_entries *orig_var_entries = (*var_hash)->last;
-       zend_long orig_used_slots = orig_var_entries ? orig_var_entries->used_slots : 0;
-       int result;
-
-       result = php_var_unserialize_internal(UNSERIALIZE_PASSTHRU, 0);
-
-       if (!result) {
-               /* If the unserialization failed, mark all elements that have been added to var_hash
-                * as NULL. This will forbid their use by other unserialize() calls in the same
-                * unserialization context. */
-               var_entries *e = orig_var_entries;
-               zend_long s = orig_used_slots;
-               while (e) {
-                       for (; s < e->used_slots; s++) {
-                               e->data[s] = NULL;
-                       }
-
-                       e = e->next;
-                       s = 0;
-               }
-       }
-
-       return result;
-}
-
-static int php_var_unserialize_internal(UNSERIALIZE_PARAMETER, int as_key)
-{
-       const unsigned char *cursor, *limit, *marker, *start;
-       zval *rval_ref;
-
-       limit = max;
-       cursor = *p;
-
-       if (YYCURSOR >= YYLIMIT) {
-               return 0;
-       }
-
-       if (var_hash && (*p)[0] != 'R') {
-               var_push(var_hash, rval);
-       }
-
-       start = cursor;
-
-
-#line 677 "ext/standard/var_unserializer.c"
-{
-       YYCTYPE yych;
-       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,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-       };
-       if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
-       yych = *YYCURSOR;
-       switch (yych) {
-       case 'C':
-       case 'O':       goto yy4;
-       case 'N':       goto yy5;
-       case 'R':       goto yy6;
-       case 'S':       goto yy7;
-       case 'a':       goto yy8;
-       case 'b':       goto yy9;
-       case 'd':       goto yy10;
-       case 'i':       goto yy11;
-       case 'o':       goto yy12;
-       case 'r':       goto yy13;
-       case 's':       goto yy14;
-       case '}':       goto yy15;
-       default:        goto yy2;
-       }
-yy2:
-       ++YYCURSOR;
-yy3:
-#line 1076 "ext/standard/var_unserializer.re"
-       { return 0; }
-#line 737 "ext/standard/var_unserializer.c"
-yy4:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == ':') goto yy17;
-       goto yy3;
-yy5:
-       yych = *++YYCURSOR;
-       if (yych == ';') goto yy19;
-       goto yy3;
-yy6:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == ':') goto yy21;
-       goto yy3;
-yy7:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == ':') goto yy22;
-       goto yy3;
-yy8:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == ':') goto yy23;
-       goto yy3;
-yy9:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == ':') goto yy24;
-       goto yy3;
-yy10:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == ':') goto yy25;
-       goto yy3;
-yy11:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == ':') goto yy26;
-       goto yy3;
-yy12:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == ':') goto yy27;
-       goto yy3;
-yy13:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == ':') goto yy28;
-       goto yy3;
-yy14:
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == ':') goto yy29;
-       goto yy3;
-yy15:
-       ++YYCURSOR;
-#line 1070 "ext/standard/var_unserializer.re"
-       {
-       /* this is the case where we have less data than planned */
-       php_error_docref(NULL, E_NOTICE, "Unexpected end of serialized data");
-       return 0; /* not sure if it should be 0 or 1 here? */
-}
-#line 790 "ext/standard/var_unserializer.c"
-yy17:
-       yych = *++YYCURSOR;
-       if (yybm[0+yych] & 128) {
-               goto yy30;
-       }
-yy18:
-       YYCURSOR = YYMARKER;
-       goto yy3;
-yy19:
-       ++YYCURSOR;
-#line 731 "ext/standard/var_unserializer.re"
-       {
-       *p = YYCURSOR;
-       ZVAL_NULL(rval);
-       return 1;
-}
-#line 807 "ext/standard/var_unserializer.c"
-yy21:
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy32;
-       goto yy18;
-yy22:
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy34;
-       goto yy18;
-yy23:
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy36;
-       goto yy18;
-yy24:
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '0') goto yy38;
-       if (yych <= '1') goto yy39;
-       goto yy18;
-yy25:
-       yych = *++YYCURSOR;
-       if (yych <= '/') {
-               if (yych <= ',') {
-                       if (yych == '+') goto yy40;
-                       goto yy18;
-               } else {
-                       if (yych <= '-') goto yy41;
-                       if (yych <= '.') goto yy42;
-                       goto yy18;
-               }
-       } else {
-               if (yych <= 'I') {
-                       if (yych <= '9') goto yy43;
-                       if (yych <= 'H') goto yy18;
-                       goto yy45;
-               } else {
-                       if (yych == 'N') goto yy46;
-                       goto yy18;
-               }
-       }
-yy26:
-       yych = *++YYCURSOR;
-       if (yych <= ',') {
-               if (yych == '+') goto yy47;
-               goto yy18;
-       } else {
-               if (yych <= '-') goto yy47;
-               if (yych <= '/') goto yy18;
-               if (yych <= '9') goto yy48;
-               goto yy18;
-       }
-yy27:
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy50;
-       goto yy18;
-yy28:
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy52;
-       goto yy18;
-yy29:
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy54;
-       goto yy18;
-yy30:
-       ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       if (yybm[0+yych] & 128) {
-               goto yy30;
-       }
-       if (yych <= '/') goto yy18;
-       if (yych <= ':') goto yy56;
-       goto yy18;
-yy32:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy32;
-       if (yych == ';') goto yy57;
-       goto yy18;
-yy34:
-       ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy34;
-       if (yych <= ':') goto yy59;
-       goto yy18;
-yy36:
-       ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy36;
-       if (yych <= ':') goto yy60;
-       goto yy18;
-yy38:
-       yych = *++YYCURSOR;
-       if (yych == ';') goto yy61;
-       goto yy18;
-yy39:
-       yych = *++YYCURSOR;
-       if (yych == ';') goto yy63;
-       goto yy18;
-yy40:
-       yych = *++YYCURSOR;
-       if (yych == '.') goto yy42;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy43;
-       goto yy18;
-yy41:
-       yych = *++YYCURSOR;
-       if (yych <= '/') {
-               if (yych != '.') goto yy18;
-       } else {
-               if (yych <= '9') goto yy43;
-               if (yych == 'I') goto yy45;
-               goto yy18;
-       }
-yy42:
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy65;
-       goto yy18;
-yy43:
-       ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
-       yych = *YYCURSOR;
-       if (yych <= ':') {
-               if (yych <= '.') {
-                       if (yych <= '-') goto yy18;
-                       goto yy65;
-               } else {
-                       if (yych <= '/') goto yy18;
-                       if (yych <= '9') goto yy43;
-                       goto yy18;
-               }
-       } else {
-               if (yych <= 'E') {
-                       if (yych <= ';') goto yy67;
-                       if (yych <= 'D') goto yy18;
-                       goto yy69;
-               } else {
-                       if (yych == 'e') goto yy69;
-                       goto yy18;
-               }
-       }
-yy45:
-       yych = *++YYCURSOR;
-       if (yych == 'N') goto yy70;
-       goto yy18;
-yy46:
-       yych = *++YYCURSOR;
-       if (yych == 'A') goto yy71;
-       goto yy18;
-yy47:
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych >= ':') goto yy18;
-yy48:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy48;
-       if (yych == ';') goto yy72;
-       goto yy18;
-yy50:
-       ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy50;
-       if (yych <= ':') goto yy74;
-       goto yy18;
-yy52:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy52;
-       if (yych == ';') goto yy75;
-       goto yy18;
-yy54:
-       ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy54;
-       if (yych <= ':') goto yy77;
-       goto yy18;
-yy56:
-       yych = *++YYCURSOR;
-       if (yych == '"') goto yy78;
-       goto yy18;
-yy57:
-       ++YYCURSOR;
-#line 681 "ext/standard/var_unserializer.re"
-       {
-       zend_long id;
-
-       *p = YYCURSOR;
-       if (!var_hash) return 0;
-
-       id = parse_uiv(start + 2) - 1;
-       if (id == -1 || (rval_ref = var_access(var_hash, id)) == NULL) {
-               return 0;
-       }
-
-       if (Z_ISUNDEF_P(rval_ref) || (Z_ISREF_P(rval_ref) && Z_ISUNDEF_P(Z_REFVAL_P(rval_ref)))) {
-               return 0;
-       }
-
-       if (Z_ISREF_P(rval_ref)) {
-               ZVAL_COPY(rval, rval_ref);
-       } else {
-               ZVAL_NEW_REF(rval_ref, rval_ref);
-               ZVAL_COPY(rval, rval_ref);
-       }
-
-       return 1;
-}
-#line 1036 "ext/standard/var_unserializer.c"
-yy59:
-       yych = *++YYCURSOR;
-       if (yych == '"') goto yy80;
-       goto yy18;
-yy60:
-       yych = *++YYCURSOR;
-       if (yych == '{') goto yy82;
-       goto yy18;
-yy61:
-       ++YYCURSOR;
-#line 737 "ext/standard/var_unserializer.re"
-       {
-       *p = YYCURSOR;
-       ZVAL_FALSE(rval);
-       return 1;
-}
-#line 1053 "ext/standard/var_unserializer.c"
-yy63:
-       ++YYCURSOR;
-#line 743 "ext/standard/var_unserializer.re"
-       {
-       *p = YYCURSOR;
-       ZVAL_TRUE(rval);
-       return 1;
-}
-#line 1062 "ext/standard/var_unserializer.c"
-yy65:
-       ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
-       yych = *YYCURSOR;
-       if (yych <= ';') {
-               if (yych <= '/') goto yy18;
-               if (yych <= '9') goto yy65;
-               if (yych <= ':') goto yy18;
-       } else {
-               if (yych <= 'E') {
-                       if (yych <= 'D') goto yy18;
-                       goto yy69;
-               } else {
-                       if (yych == 'e') goto yy69;
-                       goto yy18;
-               }
-       }
-yy67:
-       ++YYCURSOR;
-#line 791 "ext/standard/var_unserializer.re"
-       {
-#if SIZEOF_ZEND_LONG == 4
-use_double:
-#endif
-       *p = YYCURSOR;
-       ZVAL_DOUBLE(rval, zend_strtod((const char *)start + 2, NULL));
-       return 1;
-}
-#line 1091 "ext/standard/var_unserializer.c"
-yy69:
-       yych = *++YYCURSOR;
-       if (yych <= ',') {
-               if (yych == '+') goto yy84;
-               goto yy18;
-       } else {
-               if (yych <= '-') goto yy84;
-               if (yych <= '/') goto yy18;
-               if (yych <= '9') goto yy85;
-               goto yy18;
-       }
-yy70:
-       yych = *++YYCURSOR;
-       if (yych == 'F') goto yy87;
-       goto yy18;
-yy71:
-       yych = *++YYCURSOR;
-       if (yych == 'N') goto yy87;
-       goto yy18;
-yy72:
-       ++YYCURSOR;
-#line 749 "ext/standard/var_unserializer.re"
-       {
-#if SIZEOF_ZEND_LONG == 4
-       int digits = YYCURSOR - start - 3;
-
-       if (start[2] == '-' || start[2] == '+') {
-               digits--;
-       }
-
-       /* Use double for large zend_long values that were serialized on a 64-bit system */
-       if (digits >= MAX_LENGTH_OF_LONG - 1) {
-               if (digits == MAX_LENGTH_OF_LONG - 1) {
-                       int cmp = strncmp((char*)YYCURSOR - MAX_LENGTH_OF_LONG, long_min_digits, MAX_LENGTH_OF_LONG - 1);
-
-                       if (!(cmp < 0 || (cmp == 0 && start[2] == '-'))) {
-                               goto use_double;
-                       }
-               } else {
-                       goto use_double;
-               }
-       }
-#endif
-       *p = YYCURSOR;
-       ZVAL_LONG(rval, parse_iv(start + 2));
-       return 1;
-}
-#line 1139 "ext/standard/var_unserializer.c"
-yy74:
-       yych = *++YYCURSOR;
-       if (yych == '"') goto yy88;
-       goto yy18;
-yy75:
-       ++YYCURSOR;
-#line 706 "ext/standard/var_unserializer.re"
-       {
-       zend_long id;
-
-       *p = YYCURSOR;
-       if (!var_hash) return 0;
-
-       id = parse_uiv(start + 2) - 1;
-       if (id == -1 || (rval_ref = var_access(var_hash, id)) == NULL) {
-               return 0;
-       }
-
-       if (rval_ref == rval) {
-               return 0;
-       }
-
-       ZVAL_DEREF(rval_ref);
-       if (Z_TYPE_P(rval_ref) != IS_OBJECT) {
-               return 0;
-       }
-
-       ZVAL_COPY(rval, rval_ref);
-
-       return 1;
-}
-#line 1171 "ext/standard/var_unserializer.c"
-yy77:
-       yych = *++YYCURSOR;
-       if (yych == '"') goto yy90;
-       goto yy18;
-yy78:
-       ++YYCURSOR;
-#line 918 "ext/standard/var_unserializer.re"
-       {
-       size_t len, len2, len3, maxlen;
-       zend_long elements;
-       char *str;
-       zend_string *class_name;
-       zend_class_entry *ce;
-       int incomplete_class = 0;
-
-       int custom_object = 0;
-
-       zval user_func;
-       zval retval;
-       zval args[1];
-
-    if (!var_hash) return 0;
-       if (*start == 'C') {
-               custom_object = 1;
-       }
-
-       len2 = len = parse_uiv(start + 2);
-       maxlen = max - YYCURSOR;
-       if (maxlen < len || len == 0) {
-               *p = start + 2;
-               return 0;
-       }
-
-       str = (char*)YYCURSOR;
-
-       YYCURSOR += len;
-
-       if (*(YYCURSOR) != '"') {
-               *p = YYCURSOR;
-               return 0;
-       }
-       if (*(YYCURSOR+1) != ':') {
-               *p = YYCURSOR+1;
-               return 0;
-       }
-
-       len3 = strspn(str, "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377\\");
-       if (len3 != len)
-       {
-               *p = YYCURSOR + len3 - len;
-               return 0;
-       }
-
-       class_name = zend_string_init(str, len, 0);
-
-       do {
-               if(!unserialize_allowed_class(class_name, var_hash)) {
-                       incomplete_class = 1;
-                       ce = PHP_IC_ENTRY;
-                       break;
-               }
-
-               /* Try to find class directly */
-               BG(serialize_lock)++;
-               ce = zend_lookup_class(class_name);
-               if (ce) {
-                       BG(serialize_lock)--;
-                       if (EG(exception)) {
-                               zend_string_release_ex(class_name, 0);
-                               return 0;
-                       }
-                       break;
-               }
-               BG(serialize_lock)--;
-
-               if (EG(exception)) {
-                       zend_string_release_ex(class_name, 0);
-                       return 0;
-               }
-
-               /* Check for unserialize callback */
-               if ((PG(unserialize_callback_func) == NULL) || (PG(unserialize_callback_func)[0] == '\0')) {
-                       incomplete_class = 1;
-                       ce = PHP_IC_ENTRY;
-                       break;
-               }
-
-               /* Call unserialize callback */
-               ZVAL_STRING(&user_func, PG(unserialize_callback_func));
-
-               ZVAL_STR_COPY(&args[0], class_name);
-               BG(serialize_lock)++;
-               if (call_user_function_ex(CG(function_table), NULL, &user_func, &retval, 1, args, 0, NULL) != SUCCESS) {
-                       BG(serialize_lock)--;
-                       if (EG(exception)) {
-                               zend_string_release_ex(class_name, 0);
-                               zval_ptr_dtor(&user_func);
-                               zval_ptr_dtor(&args[0]);
-                               return 0;
-                       }
-                       php_error_docref(NULL, E_WARNING, "defined (%s) but not found", Z_STRVAL(user_func));
-                       incomplete_class = 1;
-                       ce = PHP_IC_ENTRY;
-                       zval_ptr_dtor(&user_func);
-                       zval_ptr_dtor(&args[0]);
-                       break;
-               }
-               BG(serialize_lock)--;
-               zval_ptr_dtor(&retval);
-               if (EG(exception)) {
-                       zend_string_release_ex(class_name, 0);
-                       zval_ptr_dtor(&user_func);
-                       zval_ptr_dtor(&args[0]);
-                       return 0;
-               }
-
-               /* The callback function may have defined the class */
-               BG(serialize_lock)++;
-               if ((ce = zend_lookup_class(class_name)) == NULL) {
-                       php_error_docref(NULL, E_WARNING, "Function %s() hasn't defined the class it was called for", Z_STRVAL(user_func));
-                       incomplete_class = 1;
-                       ce = PHP_IC_ENTRY;
-               }
-               BG(serialize_lock)--;
-
-               zval_ptr_dtor(&user_func);
-               zval_ptr_dtor(&args[0]);
-               break;
-       } while (1);
-
-       *p = YYCURSOR;
-
-       if (custom_object) {
-               int ret;
-
-               ret = object_custom(UNSERIALIZE_PASSTHRU, ce);
-
-               if (ret && incomplete_class) {
-                       php_store_class_name(rval, ZSTR_VAL(class_name), len2);
-               }
-               zend_string_release_ex(class_name, 0);
-               return ret;
-       }
-
-       elements = object_common1(UNSERIALIZE_PASSTHRU, ce);
-
-       if (elements < 0) {
-          zend_string_release_ex(class_name, 0);
-          return 0;
-       }
-
-       if (incomplete_class) {
-               php_store_class_name(rval, ZSTR_VAL(class_name), len2);
-       }
-       zend_string_release_ex(class_name, 0);
-
-       return object_common2(UNSERIALIZE_PASSTHRU, elements);
-}
-#line 1330 "ext/standard/var_unserializer.c"
-yy80:
-       ++YYCURSOR;
-#line 840 "ext/standard/var_unserializer.re"
-       {
-       size_t len, maxlen;
-       zend_string *str;
-
-       len = parse_uiv(start + 2);
-       maxlen = max - YYCURSOR;
-       if (maxlen < len) {
-               *p = start + 2;
-               return 0;
-       }
-
-       if ((str = unserialize_str(&YYCURSOR, len, maxlen)) == NULL) {
-               return 0;
-       }
-
-       if (*(YYCURSOR) != '"') {
-               zend_string_efree(str);
-               *p = YYCURSOR;
-               return 0;
-       }
-
-       if (*(YYCURSOR + 1) != ';') {
-               efree(str);
-               *p = YYCURSOR + 1;
-               return 0;
-       }
-
-       YYCURSOR += 2;
-       *p = YYCURSOR;
-
-       ZVAL_STR(rval, str);
-       return 1;
-}
-#line 1367 "ext/standard/var_unserializer.c"
-yy82:
-       ++YYCURSOR;
-#line 874 "ext/standard/var_unserializer.re"
-       {
-       zend_long elements = parse_iv(start + 2);
-       /* use iv() not uiv() in order to check data range */
-       *p = YYCURSOR;
-    if (!var_hash) return 0;
-
-       if (elements < 0 || elements >= HT_MAX_SIZE) {
-               return 0;
-       }
-
-       if (elements) {
-               array_init_size(rval, elements);
-               /* we can't convert from packed to hash during unserialization, because
-                  reference to some zvals might be keept in var_hash (to support references) */
-               zend_hash_real_init_mixed(Z_ARRVAL_P(rval));
-       } else {
-               ZVAL_EMPTY_ARRAY(rval);
-               return finish_nested_data(UNSERIALIZE_PASSTHRU);
-       }
-
-       /* The array may contain references to itself, in which case we'll be modifying an
-        * rc>1 array. This is okay, since the array is, ostensibly, only visible to
-        * unserialize (in practice unserialization handlers also see it). Ideally we should
-        * prohibit "r:" references to non-objects, as we only generate them for objects. */
-       HT_ALLOW_COW_VIOLATION(Z_ARRVAL_P(rval));
-
-       if (!process_nested_data(UNSERIALIZE_PASSTHRU, Z_ARRVAL_P(rval), elements, 0)) {
-               return 0;
-       }
-
-       return finish_nested_data(UNSERIALIZE_PASSTHRU);
-}
-#line 1403 "ext/standard/var_unserializer.c"
-yy84:
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych >= ':') goto yy18;
-yy85:
-       ++YYCURSOR;
-       if (YYLIMIT <= YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       if (yych <= '/') goto yy18;
-       if (yych <= '9') goto yy85;
-       if (yych == ';') goto yy67;
-       goto yy18;
-yy87:
-       yych = *++YYCURSOR;
-       if (yych == ';') goto yy92;
-       goto yy18;
-yy88:
-       ++YYCURSOR;
-#line 907 "ext/standard/var_unserializer.re"
-       {
-       zend_long elements;
-    if (!var_hash) return 0;
-
-       elements = object_common1(UNSERIALIZE_PASSTHRU, ZEND_STANDARD_CLASS_DEF_PTR);
-       if (elements < 0 || elements >= HT_MAX_SIZE) {
-               return 0;
-       }
-       return object_common2(UNSERIALIZE_PASSTHRU, elements);
-}
-#line 1433 "ext/standard/var_unserializer.c"
-yy90:
-       ++YYCURSOR;
-#line 800 "ext/standard/var_unserializer.re"
-       {
-       size_t len, maxlen;
-       char *str;
-
-       len = parse_uiv(start + 2);
-       maxlen = max - YYCURSOR;
-       if (maxlen < len) {
-               *p = start + 2;
-               return 0;
-       }
-
-       str = (char*)YYCURSOR;
-
-       YYCURSOR += len;
-
-       if (*(YYCURSOR) != '"') {
-               *p = YYCURSOR;
-               return 0;
-       }
-
-       if (*(YYCURSOR + 1) != ';') {
-               *p = YYCURSOR + 1;
-               return 0;
-       }
-
-       YYCURSOR += 2;
-       *p = YYCURSOR;
-
-       if (len == 0) {
-               ZVAL_EMPTY_STRING(rval);
-       } else if (len == 1) {
-               ZVAL_INTERNED_STR(rval, ZSTR_CHAR((zend_uchar)*str));
-       } else if (as_key) {
-               ZVAL_STR(rval, zend_string_init_interned(str, len, 0));
-       } else {
-               ZVAL_STRINGL(rval, str, len);
-       }
-       return 1;
-}
-#line 1476 "ext/standard/var_unserializer.c"
-yy92:
-       ++YYCURSOR;
-#line 775 "ext/standard/var_unserializer.re"
-       {
-       *p = YYCURSOR;
-
-       if (!strncmp((char*)start + 2, "NAN", 3)) {
-               ZVAL_DOUBLE(rval, ZEND_NAN);
-       } else if (!strncmp((char*)start + 2, "INF", 3)) {
-               ZVAL_DOUBLE(rval, ZEND_INFINITY);
-       } else if (!strncmp((char*)start + 2, "-INF", 4)) {
-               ZVAL_DOUBLE(rval, -ZEND_INFINITY);
-       } else {
-               ZVAL_NULL(rval);
-       }
-
-       return 1;
-}
-#line 1495 "ext/standard/var_unserializer.c"
-}
-#line 1078 "ext/standard/var_unserializer.re"
-
-
-       return 0;
-}
index be44af70d6cd9480ebc139cb2165f8134f722404..9d0eaed5f43453ecfd52bd6bce921eed27f89348 100755 (executable)
--- a/genfiles
+++ b/genfiles
-#! /bin/sh
+#!/bin/sh
+#
+#  +----------------------------------------------------------------------+
+#  | PHP Version 7                                                        |
+#  +----------------------------------------------------------------------+
+#  | Copyright (c) 1997-2018 The PHP Group                                |
+#  +----------------------------------------------------------------------+
+#  | This source file is subject to version 3.01 of the PHP license,      |
+#  | that is bundled with this package in the file LICENSE, and is        |
+#  | available through the world-wide-web at the following url:           |
+#  | https://php.net/license/3_01.txt                                     |
+#  | If you did not receive a copy of the PHP license and are unable to   |
+#  | obtain it through the world-wide-web, please send a note to          |
+#  | license@php.net so we can mail you a copy immediately.               |
+#  +----------------------------------------------------------------------+
+#  | Authors: Sascha Schumann <sascha@schumann.cx>                        |
+#  +----------------------------------------------------------------------+
+#
+# This script generates PHP lexer and parser files required to build PHP. The
+# generated files are ignored in the Git repository and packaged during the PHP
+# release process into the release installation archive download. This way the
+# bison and re2c dependencies are not required to build PHP when downloading
+# release archive.
+#
+# Usage: genfiles
+#
+# Environment:
+#   The following environment variables can override default generators paths.
+#
+#     YACC    Parser generator program, default bison
+#     RE2C    Lexer generator program, default re2c
+#
+#   For example:
+#     YACC=/path/to/bison ./genfiles
 
-if [ -z $YACC ]; then
-  YACC="bison"
-fi
+# Parser generator
+YACC=${YACC:-bison}
 YACC="$YACC -y -l"
 
-if [ -z $RE2C ]; then
-  RE2C="re2c"
-fi
+# Lexer generator
+RE2C=${RE2C:-re2c}
+RE2C_FLAGS="-i"
 
-# Generate Zend parser and lexer files
-STD="make -f Zend/Makefile.frag RE2C='$RE2C' RE2C_FLAGS='-i' YACC='$YACC' srcdir=Zend builddir=Zend top_srcdir=."
-(eval "$STD Zend/zend_language_parser.c Zend/zend_language_scanner.c Zend/zend_ini_parser.c Zend/zend_ini_scanner.c")
+# Current path to return to it later. This enables running script from any path.
+original_path=`pwd`
 
-# Generate phpdbg parser and lexer files
-STD="make -f sapi/phpdbg/Makefile.frag RE2C='$RE2C' RE2C_FLAGS='-i' YACC='$YACC' srcdir=sapi/phpdbg builddir=sapi/phpdbg top_srcdir=."
-(eval "$STD sapi/phpdbg/phpdbg_parser.c sapi/phpdbg/phpdbg_lexer.c")
+# Project root directory
+project_root=`CDPATH= cd -- "$(dirname -- "$0")" && pwd -P`
+cd $project_root
 
-# Generate json parser and lexer files
-STD="make -f ext/json/Makefile.frag RE2C='$RE2C' RE2C_FLAGS='-i' YACC='$YACC' srcdir=ext/json builddir=ext/json top_srcdir=."
-(eval "$STD ext/json/json_parser.tab.c ext/json/json_scanner.c")
+echo "Generating Zend parser and lexer files"
+make RE2C="$RE2C" RE2C_FLAGS="$RE2C_FLAGS" YACC="$YACC" srcdir=Zend builddir=Zend top_srcdir=. \
+  -f Zend/Makefile.frag \
+  Zend/zend_language_parser.c \
+  Zend/zend_language_scanner.c \
+  Zend/zend_ini_parser.c \
+  Zend/zend_ini_scanner.c
 
-set -x
+echo "Generating phpdbg parser and lexer files"
+make RE2C="$RE2C" RE2C_FLAGS="$RE2C_FLAGS" YACC="$YACC" srcdir=sapi/phpdbg builddir=sapi/phpdbg top_srcdir=. \
+  -f sapi/phpdbg/Makefile.frag \
+  sapi/phpdbg/phpdbg_parser.c \
+  sapi/phpdbg/phpdbg_lexer.c
 
-CLEANUP_FILES=" \
-  ext/pdo/pdo_sql_parser.c \
-  ext/date/lib/parse_date.c \
-  ext/standard/url_scanner_ex.c \
+echo "Generating json extension parser and lexer files"
+make RE2C="$RE2C" RE2C_FLAGS="$RE2C_FLAGS" YACC="$YACC" srcdir=ext/json builddir=ext/json top_srcdir=. \
+  -f ext/json/Makefile.frag \
+  ext/json/json_parser.tab.c \
+  ext/json/json_scanner.c
+
+echo "Generating PDO lexer file"
+make RE2C="$RE2C" RE2C_FLAGS="$RE2C_FLAGS" srcdir=ext/pdo builddir=ext/pdo top_srcdir=. \
+  -f ext/pdo/Makefile.frag \
+  ext/pdo/pdo_sql_parser.c
+
+echo "Generating standard extension lexer files"
+make RE2C="$RE2C" RE2C_FLAGS="$RE2C_FLAGS" srcdir=ext/standard builddir=ext/standard top_srcdir=. \
+  -f ext/standard/Makefile.frag \
   ext/standard/var_unserializer.c \
+  ext/standard/url_scanner_ex.c
+
+echo "Generating phar extension lexer file"
+make RE2C="$RE2C" RE2C_FLAGS="$RE2C_FLAGS" srcdir=ext/phar builddir=ext/phar top_srcdir=. \
+  -f ext/phar/Makefile.frag \
+  ext/phar/phar_path_check.c
+
+# Clean debug #line XY info from the bundled lexer files.
+cleanup_files=" \
+  ext/date/lib/parse_date.c \
+  ext/date/lib/parse_iso_intervals.c \
 "
 
-for f in $CLEANUP_FILES; do
+for f in $cleanup_files; do
+  echo "Cleaning file $f"
   cp $f $f.orig
-  grep -v '#line ' $f.orig > $f
+  grep -v '^#line ' $f.orig > $f
+  rm -f $f.orig
 done
+
+# Return to the original directory.
+cd $original_path
diff --git a/sapi/phpdbg/phpdbg_lexer.c b/sapi/phpdbg/phpdbg_lexer.c
deleted file mode 100644 (file)
index 2ab0b5a..0000000
+++ /dev/null
@@ -1,2085 +0,0 @@
-/* Generated by re2c 1.0.3 */
-#line 1 "sapi/phpdbg/phpdbg_lexer.l"
-/*
- * phpdbg_lexer.l
- */
-
-#include "phpdbg.h"
-#include "phpdbg_cmd.h"
-
-#include "phpdbg_parser.h"
-
-#define LEX(v) (PHPDBG_G(lexer).v)
-
-#define YYCTYPE unsigned char
-#define YYSETCONDITION(x) LEX(state) = x;
-#define YYGETCONDITION() LEX(state)
-#define YYCURSOR LEX(cursor)
-#define YYMARKER LEX(marker)
-#define YYCTXMARKER LEX(ctxmarker)
-#define yyleng LEX(len)
-#define yytext ((char*) LEX(text))
-#undef YYDEBUG
-#define YYDEBUG(a, b)
-#define YYFILL(n)
-
-#define NORMAL 0
-#define PRE_RAW 1
-#define RAW 2
-#define INITIAL 3
-
-ZEND_EXTERN_MODULE_GLOBALS(phpdbg)
-
-void phpdbg_init_lexer (phpdbg_param_t *stack, char *input) {
-       PHPDBG_G(parser_stack) = stack;
-
-       YYSETCONDITION(INITIAL);
-
-       LEX(text) = YYCURSOR = (unsigned char *) input;
-       LEX(len) = strlen(input);
-}
-
-static int unescape_string(char *s) {
-       switch (*s) {
-               case '\'':
-               case '\"': {
-                       char start = *s;
-                       size_t off = 1;
-                       do {
-                               if (s[off] == '\\') {
-                                       off++;
-                               }
-                               *s = s[off];
-                       } while ((++s)[off] != start);
-                       return off + 1;
-               }
-       }
-
-       return 0;
-}
-
-int phpdbg_lex (phpdbg_param_t* yylval) {
-
-restart:
-       LEX(text) = YYCURSOR;
-
-
-#line 68 "sapi/phpdbg/phpdbg_lexer.c"
-{
-       YYCTYPE yych;
-       unsigned int yyaccept = 0;
-       if (YYGETCONDITION() < 2) {
-               if (YYGETCONDITION() < 1) {
-                       goto yyc_NORMAL;
-               } else {
-                       goto yyc_PRE_RAW;
-               }
-       } else {
-               if (YYGETCONDITION() < 3) {
-                       goto yyc_RAW;
-               } else {
-                       goto yyc_INITIAL;
-               }
-       }
-/* *********************************** */
-yyc_NORMAL:
-       {
-               static const unsigned char yybm[] = {
-                       /* table 1 .. 8: 0 */
-                         0,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  40,   0,  62,  62,  40,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        40,  62,  50,  40,  62,  62,  62,  14, 
-                        62,  62,  62,  62,  62,  62,  63,  62, 
-                       127, 127, 127, 127, 127, 127, 127, 127, 
-                       127, 127,  40,  62,  62,  62,  62,  62, 
-                        62, 254, 254, 254, 254, 254, 254, 190, 
-                       190, 190, 190, 190, 190, 190, 190, 190, 
-                       190, 190, 190, 190, 190, 190, 190, 190, 
-                       190, 190, 190,  62,   2,  62,  62,  62, 
-                        62, 254, 254, 254, 254, 254, 254, 190, 
-                       190, 190, 190, 190, 190, 190, 190, 190, 
-                       190, 190, 190, 190, 190, 190, 190, 190, 
-                       190, 190, 190,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                        62,  62,  62,  62,  62,  62,  62,  62, 
-                       /* table 9 .. 10: 256 */
-                         0,  64,  64,  64,  64,  64,  64,  64, 
-                        64, 128,   0,  64,  64, 128,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                       128,  64,   0,   0,  64,  64,  64,   0, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  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,  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,  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(1, *YYCURSOR);
-               YYFILL(11);
-               yych = *YYCURSOR;
-               if (yybm[256+yych] & 128) {
-                       goto yy8;
-               }
-               switch (yych) {
-               case 0x00:
-               case '\t':
-               case '\n':      goto yy3;
-               case '"':       goto yy11;
-               case '#':       goto yy13;
-               case '\'':      goto yy15;
-               case '-':       goto yy16;
-               case '.':
-               case '1':
-               case '2':
-               case '3':
-               case '4':
-               case '5':
-               case '6':
-               case '7':
-               case '8':
-               case '9':       goto yy17;
-               case '0':       goto yy20;
-               case ':':       goto yy21;
-               case 'D':
-               case 'd':       goto yy22;
-               case 'E':
-               case 'e':       goto yy23;
-               case 'F':
-               case 'f':       goto yy24;
-               case 'I':
-               case 'i':       goto yy25;
-               case 'N':
-               case 'n':       goto yy26;
-               case 'O':
-               case 'o':       goto yy27;
-               case 'T':
-               case 't':       goto yy28;
-               case 'Y':
-               case 'y':       goto yy29;
-               case 'Z':       goto yy30;
-               case 'z':       goto yy31;
-               default:        goto yy5;
-               }
-yy3:
-               YYDEBUG(3, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(4, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 89 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       return 0;
-}
-#line 211 "sapi/phpdbg/phpdbg_lexer.c"
-yy5:
-               YYDEBUG(5, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-yy6:
-               YYDEBUG(6, *YYCURSOR);
-               if (yybm[256+yych] & 64) {
-                       goto yy5;
-               }
-               if (yych <= ' ') goto yy7;
-               if (yych == '#') goto yy7;
-               if (yych <= '\'') goto yy32;
-               goto yy34;
-yy7:
-               YYDEBUG(7, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 161 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       phpdbg_init_param(yylval, STR_PARAM);
-       yylval->str = estrndup(yytext, yyleng - unescape_string(yytext));
-       yylval->len = yyleng;
-       return T_ID;
-}
-#line 237 "sapi/phpdbg/phpdbg_lexer.c"
-yy8:
-               YYDEBUG(8, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(9, *YYCURSOR);
-               if (yybm[256+yych] & 128) {
-                       goto yy8;
-               }
-               YYDEBUG(10, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 175 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       /* ignore whitespace */
-
-       goto restart;
-}
-#line 255 "sapi/phpdbg/phpdbg_lexer.c"
-yy11:
-               YYDEBUG(11, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '"') goto yy32;
-               goto yy36;
-yy12:
-               YYDEBUG(12, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               if (yyaccept <= 3) {
-                       if (yyaccept <= 1) {
-                               if (yyaccept == 0) {
-                                       goto yy7;
-                               } else {
-                                       goto yy14;
-                               }
-                       } else {
-                               if (yyaccept == 2) {
-                                       goto yy19;
-                               } else {
-                                       goto yy83;
-                               }
-                       }
-               } else {
-                       if (yyaccept <= 5) {
-                               if (yyaccept == 4) {
-                                       goto yy86;
-                               } else {
-                                       goto yy102;
-                               }
-                       } else {
-                               goto yy119;
-                       }
-               }
-yy13:
-               YYDEBUG(13, *YYCURSOR);
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '.') {
-                       if (yych <= ',') goto yy14;
-                       if (yych <= '-') {
-                               YYCTXMARKER = YYCURSOR;
-                               goto yy41;
-                       }
-                       YYCTXMARKER = YYCURSOR;
-                       goto yy42;
-               } else {
-                       if (yych <= '/') goto yy14;
-                       if (yych <= '9') {
-                               YYCTXMARKER = YYCURSOR;
-                               goto yy42;
-                       }
-               }
-yy14:
-               YYDEBUG(14, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 110 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       YYSETCONDITION(INITIAL);
-       return T_SEPARATOR;
-}
-#line 316 "sapi/phpdbg/phpdbg_lexer.c"
-yy15:
-               YYDEBUG(15, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\'') goto yy32;
-               goto yy46;
-yy16:
-               YYDEBUG(16, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yybm[0+yych] & 1) {
-                       goto yy17;
-               }
-               if (yych == 'r') goto yy51;
-               goto yy6;
-yy17:
-               YYDEBUG(17, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               YYDEBUG(18, *YYCURSOR);
-               if (yybm[0+yych] & 1) {
-                       goto yy17;
-               }
-               if (yych <= ' ') {
-                       if (yych <= '\n') {
-                               if (yych <= 0x00) goto yy19;
-                               if (yych <= 0x08) goto yy5;
-                       } else {
-                               if (yych == '\r') goto yy19;
-                               if (yych <= 0x1F) goto yy5;
-                       }
-               } else {
-                       if (yych <= '&') {
-                               if (yych <= '!') goto yy5;
-                               if (yych <= '"') goto yy32;
-                               if (yych >= '$') goto yy5;
-                       } else {
-                               if (yych <= '\'') goto yy32;
-                               if (yych <= '/') goto yy5;
-                               if (yych <= ':') goto yy34;
-                               goto yy5;
-                       }
-               }
-yy19:
-               YYDEBUG(19, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 142 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       phpdbg_init_param(yylval, NUMERIC_PARAM);
-       yylval->num = atoi(yytext);
-       return T_DIGITS;
-}
-#line 370 "sapi/phpdbg/phpdbg_lexer.c"
-yy20:
-               YYDEBUG(20, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yybm[0+yych] & 1) {
-                       goto yy17;
-               }
-               if (yych <= 0x1F) {
-                       if (yych <= '\n') {
-                               if (yych <= 0x00) goto yy19;
-                               if (yych <= 0x08) goto yy6;
-                               goto yy19;
-                       } else {
-                               if (yych == '\r') goto yy19;
-                               goto yy6;
-                       }
-               } else {
-                       if (yych <= '#') {
-                               if (yych <= ' ') goto yy19;
-                               if (yych <= '"') goto yy6;
-                               goto yy19;
-                       } else {
-                               if (yych == 'x') goto yy52;
-                               goto yy6;
-                       }
-               }
-yy21:
-               YYDEBUG(21, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == ':') goto yy55;
-               if (yych == '\\') goto yy57;
-               goto yy53;
-yy22:
-               YYDEBUG(22, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'I') goto yy59;
-               if (yych == 'i') goto yy59;
-               goto yy6;
-yy23:
-               YYDEBUG(23, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'N') goto yy60;
-               if (yych == 'n') goto yy60;
-               goto yy6;
-yy24:
-               YYDEBUG(24, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'A') goto yy61;
-               if (yych == 'a') goto yy61;
-               goto yy6;
-yy25:
-               YYDEBUG(25, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'F') goto yy62;
-               if (yych == 'f') goto yy62;
-               goto yy6;
-yy26:
-               YYDEBUG(26, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'O') goto yy63;
-               if (yych == 'o') goto yy63;
-               goto yy6;
-yy27:
-               YYDEBUG(27, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 'N') {
-                       if (yych == 'F') goto yy64;
-                       if (yych <= 'M') goto yy6;
-                       goto yy65;
-               } else {
-                       if (yych <= 'f') {
-                               if (yych <= 'e') goto yy6;
-                               goto yy64;
-                       } else {
-                               if (yych == 'n') goto yy65;
-                               goto yy6;
-                       }
-               }
-yy28:
-               YYDEBUG(28, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'R') goto yy66;
-               if (yych == 'r') goto yy66;
-               goto yy6;
-yy29:
-               YYDEBUG(29, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'E') goto yy67;
-               if (yych == 'e') goto yy67;
-               goto yy6;
-yy30:
-               YYDEBUG(30, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'E') goto yy68;
-               goto yy6;
-yy31:
-               YYDEBUG(31, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'e') goto yy69;
-               goto yy6;
-yy32:
-               YYDEBUG(32, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-yy33:
-               YYDEBUG(33, *YYCURSOR);
-               if (yybm[0+yych] & 2) {
-                       goto yy32;
-               }
-               if (yych <= '#') goto yy12;
-               goto yy70;
-yy34:
-               YYDEBUG(34, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '/') goto yy71;
-               if (yych == '\\') goto yy57;
-               goto yy12;
-yy35:
-               YYDEBUG(35, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(4);
-               yych = *YYCURSOR;
-yy36:
-               YYDEBUG(36, *YYCURSOR);
-               if (yybm[0+yych] & 4) {
-                       goto yy35;
-               }
-               if (yych <= ' ') {
-                       if (yych <= 0x00) goto yy12;
-                       if (yych == '\n') goto yy12;
-               } else {
-                       if (yych <= '"') goto yy72;
-                       if (yych <= '#') goto yy37;
-                       if (yych <= ':') goto yy39;
-                       goto yy40;
-               }
-yy37:
-               YYDEBUG(37, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy38:
-               YYDEBUG(38, *YYCURSOR);
-               if (yybm[0+yych] & 8) {
-                       goto yy37;
-               }
-               if (yych <= '\n') goto yy12;
-               if (yych <= '"') goto yy73;
-               goto yy74;
-yy39:
-               YYDEBUG(39, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '/') goto yy75;
-               goto yy38;
-yy40:
-               YYDEBUG(40, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               if (yych <= ' ') {
-                       if (yych <= '\n') {
-                               if (yych <= 0x00) goto yy12;
-                               if (yych <= 0x08) goto yy32;
-                               goto yy12;
-                       } else {
-                               if (yych == '\r') goto yy12;
-                               if (yych <= 0x1F) goto yy32;
-                               goto yy12;
-                       }
-               } else {
-                       if (yych <= '9') {
-                               if (yych <= '!') goto yy32;
-                               if (yych <= '"') goto yy35;
-                               if (yych <= '#') goto yy12;
-                               goto yy32;
-                       } else {
-                               if (yych <= ':') goto yy70;
-                               if (yych == '\\') goto yy35;
-                               goto yy32;
-                       }
-               }
-yy41:
-               YYDEBUG(41, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '.') goto yy42;
-               if (yych <= '/') goto yy12;
-               if (yych >= ':') goto yy12;
-yy42:
-               YYDEBUG(42, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(43, *YYCURSOR);
-               if (yych == '.') goto yy42;
-               if (yych <= '/') goto yy44;
-               if (yych <= '9') goto yy42;
-yy44:
-               YYDEBUG(44, *YYCURSOR);
-               YYCURSOR = YYCTXMARKER;
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 106 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       return T_POUND;
-}
-#line 586 "sapi/phpdbg/phpdbg_lexer.c"
-yy45:
-               YYDEBUG(45, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(4);
-               yych = *YYCURSOR;
-yy46:
-               YYDEBUG(46, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy45;
-               }
-               if (yych <= '\n') {
-                       if (yych <= 0x00) goto yy12;
-                       if (yych >= '\n') goto yy12;
-               } else {
-                       if (yych <= '#') goto yy47;
-                       if (yych <= '\'') goto yy72;
-                       if (yych <= ':') goto yy49;
-                       goto yy50;
-               }
-yy47:
-               YYDEBUG(47, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy48:
-               YYDEBUG(48, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy47;
-               }
-               if (yych <= '\n') goto yy12;
-               if (yych <= '\'') goto yy73;
-               goto yy76;
-yy49:
-               YYDEBUG(49, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '/') goto yy77;
-               goto yy48;
-yy50:
-               YYDEBUG(50, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               if (yych <= '"') {
-                       if (yych <= '\f') {
-                               if (yych <= 0x00) goto yy12;
-                               if (yych <= 0x08) goto yy32;
-                               if (yych <= '\n') goto yy12;
-                               goto yy32;
-                       } else {
-                               if (yych <= '\r') goto yy12;
-                               if (yych == ' ') goto yy12;
-                               goto yy32;
-                       }
-               } else {
-                       if (yych <= '9') {
-                               if (yych <= '#') goto yy12;
-                               if (yych == '\'') goto yy45;
-                               goto yy32;
-                       } else {
-                               if (yych <= ':') goto yy70;
-                               if (yych == '\\') goto yy45;
-                               goto yy32;
-                       }
-               }
-yy51:
-               YYDEBUG(51, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= ' ') {
-                       if (yych <= '\f') {
-                               if (yych == '\t') goto yy78;
-                               goto yy6;
-                       } else {
-                               if (yych <= '\r') goto yy78;
-                               if (yych <= 0x1F) goto yy6;
-                               goto yy78;
-                       }
-               } else {
-                       if (yych <= '.') {
-                               if (yych <= ',') goto yy6;
-                               if (yych <= '-') goto yy80;
-                               goto yy81;
-                       } else {
-                               if (yych <= '/') goto yy6;
-                               if (yych <= '9') goto yy81;
-                               goto yy6;
-                       }
-               }
-yy52:
-               YYDEBUG(52, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy84;
-               }
-               goto yy6;
-yy53:
-               YYDEBUG(53, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(54, *YYCURSOR);
-               YYCURSOR -= 1;
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 119 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       return T_COLON;
-}
-#line 693 "sapi/phpdbg/phpdbg_lexer.c"
-yy55:
-               YYDEBUG(55, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(56, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 115 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       return T_DCOLON;
-}
-#line 703 "sapi/phpdbg/phpdbg_lexer.c"
-yy57:
-               YYDEBUG(57, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(58, *YYCURSOR);
-               if (yych <= ' ') {
-                       if (yych <= '\n') {
-                               if (yych <= 0x00) goto yy7;
-                               if (yych <= 0x08) goto yy57;
-                               goto yy7;
-                       } else {
-                               if (yych == '\r') goto yy7;
-                               if (yych <= 0x1F) goto yy57;
-                               goto yy7;
-                       }
-               } else {
-                       if (yych <= '&') {
-                               if (yych <= '!') goto yy57;
-                               if (yych <= '#') goto yy7;
-                               goto yy57;
-                       } else {
-                               if (yych <= '\'') goto yy7;
-                               if (yych == ':') goto yy87;
-                               goto yy57;
-                       }
-               }
-yy59:
-               YYDEBUG(59, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'S') goto yy88;
-               if (yych == 's') goto yy88;
-               goto yy6;
-yy60:
-               YYDEBUG(60, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'A') goto yy89;
-               if (yych == 'a') goto yy89;
-               goto yy6;
-yy61:
-               YYDEBUG(61, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'L') goto yy90;
-               if (yych == 'l') goto yy90;
-               goto yy6;
-yy62:
-               YYDEBUG(62, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '\f') {
-                       if (yych == '\t') goto yy91;
-                       goto yy6;
-               } else {
-                       if (yych <= '\r') goto yy91;
-                       if (yych == ' ') goto yy91;
-                       goto yy6;
-               }
-yy63:
-               YYDEBUG(63, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '\f') {
-                       if (yych <= 0x00) goto yy94;
-                       if (yych <= 0x08) goto yy6;
-                       if (yych <= '\n') goto yy94;
-                       goto yy6;
-               } else {
-                       if (yych <= '\r') goto yy94;
-                       if (yych == ' ') goto yy94;
-                       goto yy6;
-               }
-yy64:
-               YYDEBUG(64, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'F') goto yy63;
-               if (yych == 'f') goto yy63;
-               goto yy6;
-yy65:
-               YYDEBUG(65, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '\f') {
-                       if (yych <= 0x00) goto yy96;
-                       if (yych <= 0x08) goto yy6;
-                       if (yych <= '\n') goto yy96;
-                       goto yy6;
-               } else {
-                       if (yych <= '\r') goto yy96;
-                       if (yych == ' ') goto yy96;
-                       goto yy6;
-               }
-yy66:
-               YYDEBUG(66, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'U') goto yy98;
-               if (yych == 'u') goto yy98;
-               goto yy6;
-yy67:
-               YYDEBUG(67, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'S') goto yy65;
-               if (yych == 's') goto yy65;
-               goto yy6;
-yy68:
-               YYDEBUG(68, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'N') goto yy99;
-               goto yy6;
-yy69:
-               YYDEBUG(69, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'n') goto yy100;
-               goto yy6;
-yy70:
-               YYDEBUG(70, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '/') goto yy12;
-yy71:
-               YYDEBUG(71, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '/') goto yy101;
-               goto yy12;
-yy72:
-               YYDEBUG(72, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '\r') {
-                       if (yych <= 0x08) {
-                               if (yych <= 0x00) goto yy7;
-                               goto yy33;
-                       } else {
-                               if (yych <= '\n') goto yy7;
-                               if (yych <= '\f') goto yy33;
-                               goto yy7;
-                       }
-               } else {
-                       if (yych <= ' ') {
-                               if (yych <= 0x1F) goto yy33;
-                               goto yy7;
-                       } else {
-                               if (yych == '#') goto yy7;
-                               goto yy33;
-                       }
-               }
-yy73:
-               YYDEBUG(73, *YYCURSOR);
-               ++YYCURSOR;
-               goto yy7;
-yy74:
-               YYDEBUG(74, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych == '"') goto yy37;
-               if (yych == '\\') goto yy37;
-               goto yy12;
-yy75:
-               YYDEBUG(75, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '/') goto yy103;
-               goto yy38;
-yy76:
-               YYDEBUG(76, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych == '\'') goto yy47;
-               if (yych == '\\') goto yy47;
-               goto yy12;
-yy77:
-               YYDEBUG(77, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '/') goto yy104;
-               goto yy48;
-yy78:
-               YYDEBUG(78, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-               YYDEBUG(79, *YYCURSOR);
-               if (yych <= ' ') {
-                       if (yych <= '\f') {
-                               if (yych == '\t') goto yy78;
-                               goto yy12;
-                       } else {
-                               if (yych <= '\r') goto yy78;
-                               if (yych <= 0x1F) goto yy12;
-                               goto yy78;
-                       }
-               } else {
-                       if (yych <= '.') {
-                               if (yych <= ',') goto yy12;
-                               if (yych <= '-') goto yy105;
-                               goto yy106;
-                       } else {
-                               if (yych <= '/') goto yy12;
-                               if (yych <= '9') goto yy106;
-                               goto yy12;
-                       }
-               }
-yy80:
-               YYDEBUG(80, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == '.') goto yy81;
-               if (yych <= '/') goto yy6;
-               if (yych >= ':') goto yy6;
-yy81:
-               YYDEBUG(81, *YYCURSOR);
-               yyaccept = 3;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               YYDEBUG(82, *YYCURSOR);
-               if (yych <= '"') {
-                       if (yych <= '\f') {
-                               if (yych <= 0x00) goto yy83;
-                               if (yych <= 0x08) goto yy5;
-                               if (yych >= '\v') goto yy5;
-                       } else {
-                               if (yych <= 0x1F) {
-                                       if (yych >= 0x0E) goto yy5;
-                               } else {
-                                       if (yych <= ' ') goto yy83;
-                                       if (yych <= '!') goto yy5;
-                                       goto yy32;
-                               }
-                       }
-               } else {
-                       if (yych <= '-') {
-                               if (yych <= '#') goto yy83;
-                               if (yych == '\'') goto yy32;
-                               goto yy5;
-                       } else {
-                               if (yych <= '/') {
-                                       if (yych <= '.') goto yy81;
-                                       goto yy5;
-                               } else {
-                                       if (yych <= '9') goto yy81;
-                                       if (yych <= ':') goto yy34;
-                                       goto yy5;
-                               }
-                       }
-               }
-yy83:
-               YYDEBUG(83, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 93 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       char *text = yytext + 2;
-       while (*++text < '0');
-       yylval->num = atoi(text);
-       return T_REQ_ID;
-}
-#line 967 "sapi/phpdbg/phpdbg_lexer.c"
-yy84:
-               YYDEBUG(84, *YYCURSOR);
-               yyaccept = 4;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               YYDEBUG(85, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy84;
-               }
-               if (yych <= ' ') {
-                       if (yych <= '\n') {
-                               if (yych <= 0x00) goto yy86;
-                               if (yych <= 0x08) goto yy5;
-                       } else {
-                               if (yych == '\r') goto yy86;
-                               if (yych <= 0x1F) goto yy5;
-                       }
-               } else {
-                       if (yych <= '&') {
-                               if (yych <= '!') goto yy5;
-                               if (yych <= '"') goto yy32;
-                               if (yych >= '$') goto yy5;
-                       } else {
-                               if (yych <= '\'') goto yy32;
-                               if (yych <= '/') goto yy5;
-                               if (yych <= ':') goto yy34;
-                               goto yy5;
-                       }
-               }
-yy86:
-               YYDEBUG(86, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 148 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       phpdbg_init_param(yylval, ADDR_PARAM);
-       yylval->addr = strtoul(yytext, 0, 16);
-       return T_ADDR;
-}
-#line 1007 "sapi/phpdbg/phpdbg_lexer.c"
-yy87:
-               YYDEBUG(87, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych == '\\') goto yy57;
-               goto yy12;
-yy88:
-               YYDEBUG(88, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'A') goto yy108;
-               if (yych == 'a') goto yy108;
-               goto yy6;
-yy89:
-               YYDEBUG(89, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'B') goto yy109;
-               if (yych == 'b') goto yy109;
-               goto yy6;
-yy90:
-               YYDEBUG(90, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'S') goto yy110;
-               if (yych == 's') goto yy110;
-               goto yy6;
-yy91:
-               YYDEBUG(91, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(92, *YYCURSOR);
-               if (yych <= '\f') {
-                       if (yych == '\t') goto yy91;
-               } else {
-                       if (yych <= '\r') goto yy91;
-                       if (yych == ' ') goto yy91;
-               }
-               YYDEBUG(93, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 100 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       YYSETCONDITION(RAW);
-       phpdbg_init_param(yylval, EMPTY_PARAM);
-       return T_IF;
-}
-#line 1056 "sapi/phpdbg/phpdbg_lexer.c"
-yy94:
-               YYDEBUG(94, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(95, *YYCURSOR);
-               YYCURSOR -= 1;
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 136 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       phpdbg_init_param(yylval, NUMERIC_PARAM);
-       yylval->num = 0;
-       return T_FALSY;
-}
-#line 1069 "sapi/phpdbg/phpdbg_lexer.c"
-yy96:
-               YYDEBUG(96, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(97, *YYCURSOR);
-               YYCURSOR -= 1;
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 130 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       phpdbg_init_param(yylval, NUMERIC_PARAM);
-       yylval->num = 1;
-       return T_TRUTHY;
-}
-#line 1082 "sapi/phpdbg/phpdbg_lexer.c"
-yy98:
-               YYDEBUG(98, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'E') goto yy65;
-               if (yych == 'e') goto yy65;
-               goto yy6;
-yy99:
-               YYDEBUG(99, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'D') goto yy111;
-               goto yy6;
-yy100:
-               YYDEBUG(100, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'd') goto yy111;
-               goto yy6;
-yy101:
-               YYDEBUG(101, *YYCURSOR);
-               ++YYCURSOR;
-yy102:
-               YYDEBUG(102, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 123 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       phpdbg_init_param(yylval, STR_PARAM);
-       yylval->str = estrndup(yytext, yyleng);
-       yylval->len = yyleng;
-       return T_PROTO;
-}
-#line 1115 "sapi/phpdbg/phpdbg_lexer.c"
-yy103:
-               YYDEBUG(103, *YYCURSOR);
-               yyaccept = 5;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x00) goto yy102;
-               if (yych == '\n') goto yy102;
-               goto yy38;
-yy104:
-               YYDEBUG(104, *YYCURSOR);
-               yyaccept = 5;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x00) goto yy102;
-               if (yych == '\n') goto yy102;
-               goto yy48;
-yy105:
-               YYDEBUG(105, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '.') goto yy106;
-               if (yych <= '/') goto yy12;
-               if (yych >= ':') goto yy12;
-yy106:
-               YYDEBUG(106, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(107, *YYCURSOR);
-               if (yych == '.') goto yy106;
-               if (yych <= '/') goto yy83;
-               if (yych <= '9') goto yy106;
-               goto yy83;
-yy108:
-               YYDEBUG(108, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'B') goto yy112;
-               if (yych == 'b') goto yy112;
-               goto yy6;
-yy109:
-               YYDEBUG(109, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'L') goto yy113;
-               if (yych == 'l') goto yy113;
-               goto yy6;
-yy110:
-               YYDEBUG(110, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'E') goto yy63;
-               if (yych == 'e') goto yy63;
-               goto yy6;
-yy111:
-               YYDEBUG(111, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == '_') goto yy114;
-               goto yy6;
-yy112:
-               YYDEBUG(112, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'L') goto yy115;
-               if (yych == 'l') goto yy115;
-               goto yy6;
-yy113:
-               YYDEBUG(113, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'E') goto yy116;
-               if (yych == 'e') goto yy116;
-               goto yy6;
-yy114:
-               YYDEBUG(114, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy117;
-               }
-               goto yy6;
-yy115:
-               YYDEBUG(115, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'E') goto yy120;
-               if (yych == 'e') goto yy120;
-               goto yy6;
-yy116:
-               YYDEBUG(116, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'D') goto yy65;
-               if (yych == 'd') goto yy65;
-               goto yy6;
-yy117:
-               YYDEBUG(117, *YYCURSOR);
-               yyaccept = 6;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               YYDEBUG(118, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy117;
-               }
-               if (yych <= ' ') {
-                       if (yych <= '\n') {
-                               if (yych <= 0x00) goto yy119;
-                               if (yych <= 0x08) goto yy5;
-                       } else {
-                               if (yych == '\r') goto yy119;
-                               if (yych <= 0x1F) goto yy5;
-                       }
-               } else {
-                       if (yych <= '&') {
-                               if (yych <= '!') goto yy5;
-                               if (yych <= '"') goto yy32;
-                               if (yych >= '$') goto yy5;
-                       } else {
-                               if (yych <= '\'') goto yy32;
-                               if (yych == ':') goto yy34;
-                               goto yy5;
-                       }
-               }
-yy119:
-               YYDEBUG(119, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 154 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       phpdbg_init_param(yylval, OP_PARAM);
-       yylval->str = estrndup(yytext, yyleng);
-       yylval->len = yyleng;
-       return T_OPCODE;
-}
-#line 1248 "sapi/phpdbg/phpdbg_lexer.c"
-yy120:
-               YYDEBUG(120, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'D') goto yy63;
-               if (yych == 'd') goto yy63;
-               goto yy6;
-       }
-/* *********************************** */
-yyc_PRE_RAW:
-       {
-               static const unsigned char yybm[] = {
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,  64,   0,   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, 128,   0, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-               };
-               YYDEBUG(121, *YYCURSOR);
-               YYFILL(2);
-               yych = *YYCURSOR;
-               if (yych <= '\r') {
-                       if (yych == '\t') goto yy125;
-                       if (yych >= '\r') goto yy125;
-               } else {
-                       if (yych <= ' ') {
-                               if (yych >= ' ') goto yy126;
-                       } else {
-                               if (yych == '-') goto yy129;
-                       }
-               }
-               YYDEBUG(123, *YYCURSOR);
-               ++YYCURSOR;
-yy124:
-               YYDEBUG(124, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 199 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       YYSETCONDITION(RAW);
-
-       YYCURSOR = LEX(text);
-       goto restart;
-}
-#line 1319 "sapi/phpdbg/phpdbg_lexer.c"
-yy125:
-               YYDEBUG(125, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 64) {
-                       goto yy126;
-               }
-               goto yy124;
-yy126:
-               YYDEBUG(126, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(127, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy126;
-               }
-               YYDEBUG(128, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 175 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       /* ignore whitespace */
-
-       goto restart;
-}
-#line 1344 "sapi/phpdbg/phpdbg_lexer.c"
-yy129:
-               YYDEBUG(129, *YYCURSOR);
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych != 'r') goto yy124;
-yy130:
-               YYDEBUG(130, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-               YYDEBUG(131, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy134;
-               }
-               if (yych <= '\r') {
-                       if (yych == '\t') goto yy130;
-                       if (yych >= '\r') goto yy130;
-               } else {
-                       if (yych <= ' ') {
-                               if (yych >= ' ') goto yy130;
-                       } else {
-                               if (yych == '-') goto yy133;
-                       }
-               }
-yy132:
-               YYDEBUG(132, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               goto yy124;
-yy133:
-               YYDEBUG(133, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 128) {
-                       goto yy134;
-               }
-               goto yy132;
-yy134:
-               YYDEBUG(134, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(135, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy134;
-               }
-               YYDEBUG(136, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 93 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       char *text = yytext + 2;
-       while (*++text < '0');
-       yylval->num = atoi(text);
-       return T_REQ_ID;
-}
-#line 1397 "sapi/phpdbg/phpdbg_lexer.c"
-       }
-/* *********************************** */
-yyc_RAW:
-       {
-               static const unsigned char yybm[] = {
-                         0, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232,   0, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232,  64, 224, 232, 232, 232,  32, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232,  16, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-                       232, 232, 232, 232, 232, 232, 232, 232, 
-               };
-               YYDEBUG(137, *YYCURSOR);
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 8) {
-                       goto yy141;
-               }
-               if (yych <= '\n') goto yy139;
-               if (yych <= '"') goto yy144;
-               if (yych <= '#') goto yy146;
-               if (yych <= '\'') goto yy148;
-               goto yy149;
-yy139:
-               YYDEBUG(139, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(140, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 89 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       return 0;
-}
-#line 1456 "sapi/phpdbg/phpdbg_lexer.c"
-yy141:
-               YYDEBUG(141, *YYCURSOR);
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(142, *YYCURSOR);
-               if (yybm[0+yych] & 8) {
-                       goto yy141;
-               }
-               if (yych <= '\n') goto yy143;
-               if (yych <= '"') goto yy144;
-               if (yych <= '#') goto yy143;
-               if (yych <= '\'') goto yy148;
-               goto yy149;
-yy143:
-               YYDEBUG(143, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 168 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       phpdbg_init_param(yylval, STR_PARAM);
-       yylval->str = estrdup(yytext);
-       yylval->len = yyleng;
-       return T_INPUT;
-}
-#line 1481 "sapi/phpdbg/phpdbg_lexer.c"
-yy144:
-               YYDEBUG(144, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 32) {
-                       goto yy151;
-               }
-               if (yych >= '#') goto yy153;
-yy145:
-               YYDEBUG(145, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               goto yy143;
-yy146:
-               YYDEBUG(146, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(147, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 110 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       YYSETCONDITION(INITIAL);
-       return T_SEPARATOR;
-}
-#line 1505 "sapi/phpdbg/phpdbg_lexer.c"
-yy148:
-               YYDEBUG(148, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 64) {
-                       goto yy155;
-               }
-               if (yych <= '\'') goto yy145;
-               goto yy157;
-yy149:
-               YYDEBUG(149, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(150, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy149;
-               }
-               if (yych <= '!') {
-                       if (yych <= 0x00) goto yy143;
-                       if (yych == '\n') goto yy143;
-                       goto yy141;
-               } else {
-                       if (yych <= '"') goto yy159;
-                       if (yych == '\'') goto yy160;
-                       goto yy141;
-               }
-yy151:
-               YYDEBUG(151, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(152, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy151;
-               }
-               if (yych <= '\n') goto yy145;
-               if (yych <= '"') goto yy141;
-yy153:
-               YYDEBUG(153, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(154, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy151;
-               }
-               if (yych <= '\n') goto yy145;
-               if (yych <= '"') goto yy161;
-               goto yy153;
-yy155:
-               YYDEBUG(155, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(156, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy155;
-               }
-               if (yych <= '\n') goto yy145;
-               if (yych <= '\'') goto yy141;
-yy157:
-               YYDEBUG(157, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(158, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy155;
-               }
-               if (yych <= '\n') goto yy145;
-               if (yych <= '\'') goto yy163;
-               goto yy157;
-yy159:
-               YYDEBUG(159, *YYCURSOR);
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= '"') {
-                       if (yych <= '\t') {
-                               if (yych <= 0x00) goto yy143;
-                               goto yy161;
-                       } else {
-                               if (yych <= '\n') goto yy143;
-                               if (yych <= '!') goto yy161;
-                               goto yy144;
-                       }
-               } else {
-                       if (yych <= '\'') {
-                               if (yych <= '#') goto yy151;
-                               if (yych <= '&') goto yy161;
-                               goto yy165;
-                       } else {
-                               if (yych == '\\') goto yy166;
-                               goto yy161;
-                       }
-               }
-yy160:
-               YYDEBUG(160, *YYCURSOR);
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= '"') {
-                       if (yych <= '\t') {
-                               if (yych <= 0x00) goto yy143;
-                               goto yy163;
-                       } else {
-                               if (yych <= '\n') goto yy143;
-                               if (yych <= '!') goto yy163;
-                               goto yy168;
-                       }
-               } else {
-                       if (yych <= '\'') {
-                               if (yych <= '#') goto yy155;
-                               if (yych <= '&') goto yy163;
-                               goto yy148;
-                       } else {
-                               if (yych == '\\') goto yy169;
-                               goto yy163;
-                       }
-               }
-yy161:
-               YYDEBUG(161, *YYCURSOR);
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(162, *YYCURSOR);
-               if (yych <= '"') {
-                       if (yych <= '\t') {
-                               if (yych <= 0x00) goto yy143;
-                               goto yy161;
-                       } else {
-                               if (yych <= '\n') goto yy143;
-                               if (yych <= '!') goto yy161;
-                               goto yy159;
-                       }
-               } else {
-                       if (yych <= '\'') {
-                               if (yych <= '#') goto yy151;
-                               if (yych <= '&') goto yy161;
-                               goto yy165;
-                       } else {
-                               if (yych == '\\') goto yy166;
-                               goto yy161;
-                       }
-               }
-yy163:
-               YYDEBUG(163, *YYCURSOR);
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(164, *YYCURSOR);
-               if (yych <= '"') {
-                       if (yych <= '\t') {
-                               if (yych <= 0x00) goto yy143;
-                               goto yy163;
-                       } else {
-                               if (yych <= '\n') goto yy143;
-                               if (yych <= '!') goto yy163;
-                               goto yy168;
-                       }
-               } else {
-                       if (yych <= '\'') {
-                               if (yych <= '#') goto yy155;
-                               if (yych <= '&') goto yy163;
-                               goto yy160;
-                       } else {
-                               if (yych == '\\') goto yy169;
-                               goto yy163;
-                       }
-               }
-yy165:
-               YYDEBUG(165, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 128) {
-                       goto yy171;
-               }
-               if (yych <= '\n') goto yy145;
-               if (yych <= '"') goto yy163;
-               if (yych <= '\'') goto yy151;
-               goto yy173;
-yy166:
-               YYDEBUG(166, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(167, *YYCURSOR);
-               if (yych <= '&') {
-                       if (yych <= 0x00) goto yy143;
-                       if (yych == '\n') goto yy143;
-                       goto yy161;
-               } else {
-                       if (yych <= '\'') goto yy175;
-                       if (yych == '\\') goto yy166;
-                       goto yy161;
-               }
-yy168:
-               YYDEBUG(168, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 128) {
-                       goto yy171;
-               }
-               if (yych <= '\n') goto yy145;
-               if (yych <= '"') goto yy155;
-               if (yych <= '\'') goto yy161;
-               goto yy173;
-yy169:
-               YYDEBUG(169, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(170, *YYCURSOR);
-               if (yych <= '!') {
-                       if (yych <= 0x00) goto yy143;
-                       if (yych == '\n') goto yy143;
-                       goto yy163;
-               } else {
-                       if (yych <= '"') goto yy176;
-                       if (yych == '\\') goto yy169;
-                       goto yy163;
-               }
-yy171:
-               YYDEBUG(171, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(172, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy171;
-               }
-               if (yych <= '\n') goto yy145;
-               if (yych <= '"') goto yy163;
-               if (yych <= '\'') goto yy161;
-yy173:
-               YYDEBUG(173, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(174, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy171;
-               }
-               if (yych <= '\n') goto yy145;
-               if (yych <= '\'') goto yy177;
-               goto yy173;
-yy175:
-               YYDEBUG(175, *YYCURSOR);
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= '"') {
-                       if (yych <= '\t') {
-                               if (yych <= 0x00) goto yy143;
-                               goto yy177;
-                       } else {
-                               if (yych <= '\n') goto yy143;
-                               if (yych <= '!') goto yy177;
-                       }
-               } else {
-                       if (yych <= '\'') {
-                               if (yych <= '#') goto yy171;
-                               if (yych <= '&') goto yy177;
-                               goto yy165;
-                       } else {
-                               if (yych == '\\') goto yy179;
-                               goto yy177;
-                       }
-               }
-yy176:
-               YYDEBUG(176, *YYCURSOR);
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= '"') {
-                       if (yych <= '\t') {
-                               if (yych <= 0x00) goto yy143;
-                       } else {
-                               if (yych <= '\n') goto yy143;
-                               if (yych >= '"') goto yy168;
-                       }
-               } else {
-                       if (yych <= '\'') {
-                               if (yych <= '#') goto yy171;
-                               if (yych >= '\'') goto yy175;
-                       } else {
-                               if (yych == '\\') goto yy179;
-                       }
-               }
-yy177:
-               YYDEBUG(177, *YYCURSOR);
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(178, *YYCURSOR);
-               if (yych <= '"') {
-                       if (yych <= '\t') {
-                               if (yych <= 0x00) goto yy143;
-                               goto yy177;
-                       } else {
-                               if (yych <= '\n') goto yy143;
-                               if (yych <= '!') goto yy177;
-                               goto yy176;
-                       }
-               } else {
-                       if (yych <= '\'') {
-                               if (yych <= '#') goto yy171;
-                               if (yych <= '&') goto yy177;
-                               goto yy175;
-                       } else {
-                               if (yych != '\\') goto yy177;
-                       }
-               }
-yy179:
-               YYDEBUG(179, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(180, *YYCURSOR);
-               if (yych <= '\n') {
-                       if (yych <= 0x00) goto yy143;
-                       if (yych <= '\t') goto yy177;
-                       goto yy143;
-               } else {
-                       if (yych == '\\') goto yy179;
-                       goto yy177;
-               }
-       }
-/* *********************************** */
-yyc_INITIAL:
-       {
-               static const unsigned char yybm[] = {
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0, 128,   0,   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, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-               };
-               YYDEBUG(181, *YYCURSOR);
-               YYFILL(4);
-               yych = *YYCURSOR;
-               if (yych <= 'E') {
-                       if (yych <= '\r') {
-                               if (yych == '\t') goto yy185;
-                               if (yych >= '\r') goto yy185;
-                       } else {
-                               if (yych == ' ') goto yy186;
-                               if (yych >= 'E') goto yy189;
-                       }
-               } else {
-                       if (yych <= 'd') {
-                               if (yych <= 'Q') goto yy183;
-                               if (yych <= 'R') goto yy190;
-                               if (yych <= 'S') goto yy191;
-                       } else {
-                               if (yych <= 'q') {
-                                       if (yych <= 'e') goto yy189;
-                               } else {
-                                       if (yych <= 'r') goto yy192;
-                                       if (yych <= 's') goto yy191;
-                               }
-                       }
-               }
-yy183:
-               YYDEBUG(183, *YYCURSOR);
-               ++YYCURSOR;
-yy184:
-               YYDEBUG(184, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 206 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       YYSETCONDITION(NORMAL);
-
-       YYCURSOR = LEX(text);
-       goto restart;
-}
-#line 1913 "sapi/phpdbg/phpdbg_lexer.c"
-yy185:
-               YYDEBUG(185, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 128) {
-                       goto yy186;
-               }
-               goto yy184;
-yy186:
-               YYDEBUG(186, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(187, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy186;
-               }
-               YYDEBUG(188, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 175 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       /* ignore whitespace */
-
-       goto restart;
-}
-#line 1938 "sapi/phpdbg/phpdbg_lexer.c"
-yy189:
-               YYDEBUG(189, *YYCURSOR);
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'V') goto yy193;
-               if (yych == 'v') goto yy193;
-               goto yy184;
-yy190:
-               YYDEBUG(190, *YYCURSOR);
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'U') goto yy195;
-               if (yych == 'u') goto yy195;
-               goto yy184;
-yy191:
-               YYDEBUG(191, *YYCURSOR);
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'H') goto yy196;
-               if (yych == 'h') goto yy196;
-               goto yy184;
-yy192:
-               YYDEBUG(192, *YYCURSOR);
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy184;
-                               goto yy197;
-                       } else {
-                               if (yych == '\r') goto yy197;
-                               goto yy184;
-                       }
-               } else {
-                       if (yych <= 'U') {
-                               if (yych <= ' ') goto yy197;
-                               if (yych <= 'T') goto yy184;
-                               goto yy195;
-                       } else {
-                               if (yych == 'u') goto yy195;
-                               goto yy184;
-                       }
-               }
-yy193:
-               YYDEBUG(193, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '\f') {
-                       if (yych == '\t') goto yy200;
-               } else {
-                       if (yych <= '\r') goto yy200;
-                       if (yych == ' ') goto yy200;
-               }
-yy194:
-               YYDEBUG(194, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               goto yy184;
-yy195:
-               YYDEBUG(195, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy203;
-               if (yych == 'n') goto yy203;
-               goto yy194;
-yy196:
-               YYDEBUG(196, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '\f') {
-                       if (yych == '\t') goto yy204;
-                       goto yy194;
-               } else {
-                       if (yych <= '\r') goto yy204;
-                       if (yych == ' ') goto yy204;
-                       goto yy194;
-               }
-yy197:
-               YYDEBUG(197, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(198, *YYCURSOR);
-               if (yych <= '\f') {
-                       if (yych == '\t') goto yy197;
-               } else {
-                       if (yych <= '\r') goto yy197;
-                       if (yych == ' ') goto yy197;
-               }
-               YYDEBUG(199, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 193 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       YYSETCONDITION(PRE_RAW);
-       phpdbg_init_param(yylval, EMPTY_PARAM);
-       return T_RUN;
-}
-#line 2028 "sapi/phpdbg/phpdbg_lexer.c"
-yy200:
-               YYDEBUG(200, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(201, *YYCURSOR);
-               if (yych <= '\f') {
-                       if (yych == '\t') goto yy200;
-               } else {
-                       if (yych <= '\r') goto yy200;
-                       if (yych == ' ') goto yy200;
-               }
-               YYDEBUG(202, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 181 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       YYSETCONDITION(PRE_RAW);
-       phpdbg_init_param(yylval, EMPTY_PARAM);
-       return T_EVAL;
-}
-#line 2049 "sapi/phpdbg/phpdbg_lexer.c"
-yy203:
-               YYDEBUG(203, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '\f') {
-                       if (yych == '\t') goto yy197;
-                       goto yy194;
-               } else {
-                       if (yych <= '\r') goto yy197;
-                       if (yych == ' ') goto yy197;
-                       goto yy194;
-               }
-yy204:
-               YYDEBUG(204, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(205, *YYCURSOR);
-               if (yych <= '\f') {
-                       if (yych == '\t') goto yy204;
-               } else {
-                       if (yych <= '\r') goto yy204;
-                       if (yych == ' ') goto yy204;
-               }
-               YYDEBUG(206, *YYCURSOR);
-               yyleng = (size_t) YYCURSOR - (size_t) yytext;
-#line 187 "sapi/phpdbg/phpdbg_lexer.l"
-               {
-       YYSETCONDITION(PRE_RAW);
-       phpdbg_init_param(yylval, EMPTY_PARAM);
-       return T_SHELL;
-}
-#line 2081 "sapi/phpdbg/phpdbg_lexer.c"
-       }
-}
-#line 213 "sapi/phpdbg/phpdbg_lexer.l"
-
-}