]> granicus.if.org Git - php/commitdiff
Regenerate and bump re2c version to 0.16
authorJakub Zelenka <bukka@php.net>
Sun, 18 Jun 2017 17:26:48 +0000 (18:26 +0100)
committerJakub Zelenka <bukka@php.net>
Sun, 18 Jun 2017 17:26:48 +0000 (18:26 +0100)
It also matches the re2c version for Zend language scanner

ext/json/README
ext/json/json_scanner.c
ext/json/php_json_scanner_defs.h

index 4daa800ff33d899d6fcd1db41d4199ed89c1a2ad..491e62964d4c05d091c1fe22a8b7bf2bd357d5bf 100644 (file)
@@ -8,7 +8,7 @@ data-interchange format as specified in RFC 7159
 The parser is implemented using re2c and Bison. The used versions
 of both tools for generating files in the repository are following:
 
-re2c 0.14.3
+re2c 0.16
 Bison 3.0.4
 
 It is recommended to do all contributions to the JSON extension
index f9f2ad79197b1828f66d868deb0cb7568ed07ca8..7104c3ea61f1f66389e699f265eff799e43a60bb 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.14.3 */
+/* Generated by re2c 0.16 */
 /*
   +----------------------------------------------------------------------+
   | PHP Version 7                                                        |
@@ -115,13 +115,13 @@ yyc_JS:
                {
                        static const unsigned char yybm[] = {
                                  0,   0,   0,   0,   0,   0,   0,   0, 
-                                 0, 128,   0,   0,   0, 128,   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, 
-                               128,   0,   0,   0,   0,   0,   0,   0, 
+                                64,   0,   0,   0,   0,   0,   0,   0, 
                                  0,   0,   0,   0,   0,   0,   0,   0, 
-                                64,  64,  64,  64,  64,  64,  64,  64
-                                64,  64,   0,   0,   0,   0,   0,   0, 
+                               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, 
@@ -155,15 +155,15 @@ yyc_JS:
                                                        if (yych >= 0x01) goto yy5;
                                                } else {
                                                        if (yych <= '\t') goto yy7;
-                                                       if (yych <= '\n') goto yy9;
+                                                       if (yych <= '\n') goto yy10;
                                                        goto yy5;
                                                }
                                        } else {
                                                if (yych <= 0x1F) {
-                                                       if (yych <= '\r') goto yy10;
+                                                       if (yych <= '\r') goto yy11;
                                                        goto yy5;
                                                } else {
-                                                       if (yych <= ' ') goto yy11;
+                                                       if (yych <= ' ') goto yy7;
                                                        if (yych <= '!') goto yy12;
                                                        goto yy14;
                                                }
@@ -181,12 +181,12 @@ yyc_JS:
                                        } else {
                                                if (yych <= 'Z') {
                                                        if (yych <= '9') goto yy21;
-                                                       if (yych <= ':') goto yy22;
+                                                       if (yych <= ':') goto yy23;
                                                        goto yy12;
                                                } else {
-                                                       if (yych <= '[') goto yy24;
+                                                       if (yych <= '[') goto yy25;
                                                        if (yych <= '\\') goto yy12;
-                                                       goto yy26;
+                                                       goto yy27;
                                                }
                                        }
                                }
@@ -195,40 +195,40 @@ yyc_JS:
                                        if (yych <= 's') {
                                                if (yych <= 'f') {
                                                        if (yych <= 'e') goto yy12;
-                                                       goto yy28;
+                                                       goto yy29;
                                                } else {
-                                                       if (yych == 'n') goto yy29;
+                                                       if (yych == 'n') goto yy30;
                                                        goto yy12;
                                                }
                                        } else {
                                                if (yych <= 'z') {
-                                                       if (yych <= 't') goto yy30;
+                                                       if (yych <= 't') goto yy31;
                                                        goto yy12;
                                                } else {
-                                                       if (yych <= '{') goto yy31;
+                                                       if (yych <= '{') goto yy32;
                                                        if (yych <= '|') goto yy12;
-                                                       goto yy33;
+                                                       goto yy34;
                                                }
                                        }
                                } else {
                                        if (yych <= 0xEC) {
                                                if (yych <= 0xC1) {
                                                        if (yych <= 0x7F) goto yy12;
-                                                       goto yy35;
+                                                       goto yy36;
                                                } else {
-                                                       if (yych <= 0xDF) goto yy37;
-                                                       if (yych <= 0xE0) goto yy38;
-                                                       goto yy39;
+                                                       if (yych <= 0xDF) goto yy38;
+                                                       if (yych <= 0xE0) goto yy39;
+                                                       goto yy40;
                                                }
                                        } else {
                                                if (yych <= 0xF0) {
-                                                       if (yych <= 0xED) goto yy40;
-                                                       if (yych <= 0xEF) goto yy41;
+                                                       if (yych <= 0xED) goto yy41;
+                                                       if (yych <= 0xEF) goto yy40;
                                                        goto yy42;
                                                } else {
                                                        if (yych <= 0xF3) goto yy43;
                                                        if (yych <= 0xF4) goto yy44;
-                                                       goto yy35;
+                                                       goto yy36;
                                                }
                                        }
                                }
@@ -251,19 +251,19 @@ yy5:
 yy7:
                        ++YYCURSOR;
                        yych = *YYCURSOR;
-                       goto yy82;
 yy8:
-                       { goto std; }
+                       if (yybm[0+yych] & 64) {
+                               goto yy7;
+                       }
 yy9:
-                       yych = *++YYCURSOR;
-                       goto yy8;
+                       { goto std; }
 yy10:
                        yych = *++YYCURSOR;
-                       if (yych == '\n') goto yy83;
-                       goto yy82;
+                       goto yy9;
 yy11:
                        yych = *++YYCURSOR;
-                       goto yy82;
+                       if (yych == '\n') goto yy10;
+                       goto yy8;
 yy12:
                        ++YYCURSOR;
 yy13:
@@ -285,17 +285,17 @@ yy16:
 yy18:
                        yych = *++YYCURSOR;
                        if (yych <= '/') goto yy13;
-                       if (yych <= '0') goto yy80;
-                       if (yych <= '9') goto yy70;
+                       if (yych <= '0') goto yy19;
+                       if (yych <= '9') goto yy21;
                        goto yy13;
 yy19:
                        yyaccept = 0;
                        yych = *(YYMARKER = ++YYCURSOR);
                        if (yych <= 'D') {
-                               if (yych == '.') goto yy72;
+                               if (yych == '.') goto yy45;
                        } else {
-                               if (yych <= 'E') goto yy73;
-                               if (yych == 'e') goto yy73;
+                               if (yych <= 'E') goto yy47;
+                               if (yych == 'e') goto yy47;
                        }
 yy20:
                        {
@@ -324,94 +324,101 @@ yy20:
        }
 yy21:
                        yyaccept = 0;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       goto yy71;
-yy22:
+                       YYMARKER = ++YYCURSOR;
+                       yych = *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 ':'; }
-yy24:
+yy25:
                        ++YYCURSOR;
                        { return '['; }
-yy26:
+yy27:
                        ++YYCURSOR;
                        { return ']'; }
-yy28:
-                       yyaccept = 1;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych == 'a') goto yy65;
-                       goto yy13;
 yy29:
                        yyaccept = 1;
                        yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych == 'u') goto yy61;
+                       if (yych == 'a') goto yy48;
                        goto yy13;
 yy30:
                        yyaccept = 1;
                        yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych == 'r') goto yy57;
+                       if (yych == 'u') goto yy49;
                        goto yy13;
 yy31:
+                       yyaccept = 1;
+                       yych = *(YYMARKER = ++YYCURSOR);
+                       if (yych == 'r') goto yy50;
+                       goto yy13;
+yy32:
                        ++YYCURSOR;
                        { return '{'; }
-yy33:
+yy34:
                        ++YYCURSOR;
                        { return '}'; }
-yy35:
-                       ++YYCURSOR;
 yy36:
+                       ++YYCURSOR;
+yy37:
                        {
                s->errcode = PHP_JSON_ERROR_UTF8;
                return PHP_JSON_T_ERROR;
        }
-yy37:
-                       yych = *++YYCURSOR;
-                       if (yych <= 0x7F) goto yy36;
-                       if (yych <= 0xBF) goto yy48;
-                       goto yy36;
 yy38:
-                       yyaccept = 2;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 0x9F) goto yy36;
-                       if (yych <= 0xBF) goto yy56;
-                       goto yy36;
+                       yych = *++YYCURSOR;
+                       if (yych <= 0x7F) goto yy37;
+                       if (yych <= 0xBF) goto yy12;
+                       goto yy37;
 yy39:
                        yyaccept = 2;
                        yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 0x7F) goto yy36;
-                       if (yych <= 0xBF) goto yy55;
-                       goto yy36;
+                       if (yych <= 0x9F) goto yy37;
+                       if (yych <= 0xBF) goto yy51;
+                       goto yy37;
 yy40:
                        yyaccept = 2;
                        yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 0x7F) goto yy36;
-                       if (yych <= 0x9F) goto yy54;
-                       goto yy36;
+                       if (yych <= 0x7F) goto yy37;
+                       if (yych <= 0xBF) goto yy51;
+                       goto yy37;
 yy41:
                        yyaccept = 2;
                        yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 0x7F) goto yy36;
-                       if (yych <= 0xBF) goto yy53;
-                       goto yy36;
+                       if (yych <= 0x7F) goto yy37;
+                       if (yych <= 0x9F) goto yy51;
+                       goto yy37;
 yy42:
                        yyaccept = 2;
                        yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 0x8F) goto yy36;
-                       if (yych <= 0xBF) goto yy51;
-                       goto yy36;
+                       if (yych <= 0x8F) goto yy37;
+                       if (yych <= 0xBF) goto yy52;
+                       goto yy37;
 yy43:
                        yyaccept = 2;
                        yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 0x7F) goto yy36;
-                       if (yych <= 0xBF) goto yy49;
-                       goto yy36;
+                       if (yych <= 0x7F) goto yy37;
+                       if (yych <= 0xBF) goto yy52;
+                       goto yy37;
 yy44:
                        yyaccept = 2;
                        yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 0x7F) goto yy36;
-                       if (yych >= 0x90) goto yy36;
+                       if (yych <= 0x7F) goto yy37;
+                       if (yych <= 0x8F) goto yy52;
+                       goto yy37;
+yy45:
                        yych = *++YYCURSOR;
-                       if (yych <= 0x7F) goto yy46;
-                       if (yych <= 0xBF) goto yy47;
+                       if (yych <= '/') goto yy46;
+                       if (yych <= '9') goto yy53;
 yy46:
                        YYCURSOR = YYMARKER;
                        if (yyaccept <= 1) {
@@ -422,205 +429,141 @@ yy46:
                                }
                        } else {
                                if (yyaccept == 2) {
-                                       goto yy36;
+                                       goto yy37;
                                } else {
-                                       goto yy77;
+                                       goto yy55;
                                }
                        }
 yy47:
                        yych = *++YYCURSOR;
-                       if (yych <= 0x7F) goto yy46;
-                       if (yych >= 0xC0) goto yy46;
+                       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;
-                       goto yy13;
+                       if (yych == 'l') goto yy59;
+                       goto yy46;
 yy49:
                        yych = *++YYCURSOR;
-                       if (yych <= 0x7F) goto yy46;
-                       if (yych >= 0xC0) goto yy46;
-                       yych = *++YYCURSOR;
-                       if (yych <= 0x7F) goto yy46;
-                       if (yych <= 0xBF) goto yy48;
+                       if (yych == 'l') goto yy60;
                        goto yy46;
-yy51:
-                       yych = *++YYCURSOR;
-                       if (yych <= 0x7F) goto yy46;
-                       if (yych >= 0xC0) goto yy46;
+yy50:
                        yych = *++YYCURSOR;
-                       if (yych <= 0x7F) goto yy46;
-                       if (yych <= 0xBF) goto yy48;
+                       if (yych == 'u') goto yy61;
                        goto yy46;
-yy53:
+yy51:
                        yych = *++YYCURSOR;
                        if (yych <= 0x7F) goto yy46;
-                       if (yych <= 0xBF) goto yy48;
+                       if (yych <= 0xBF) goto yy12;
                        goto yy46;
-yy54:
+yy52:
                        yych = *++YYCURSOR;
                        if (yych <= 0x7F) goto yy46;
-                       if (yych <= 0xBF) goto yy48;
+                       if (yych <= 0xBF) goto yy51;
                        goto yy46;
+yy53:
+                       yyaccept = 3;
+                       YYMARKER = ++YYCURSOR;
+                       yych = *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:
-                       yych = *++YYCURSOR;
-                       if (yych <= 0x7F) goto yy46;
-                       if (yych <= 0xBF) goto yy48;
-                       goto yy46;
+                       {
+               ZVAL_DOUBLE(&s->value, zend_strtod((char *) s->token, NULL));
+               return PHP_JSON_T_DOUBLE;
+       }
 yy56:
                        yych = *++YYCURSOR;
-                       if (yych <= 0x7F) goto yy46;
-                       if (yych <= 0xBF) goto yy48;
-                       goto yy46;
+                       if (yych <= '/') goto yy46;
+                       if (yych >= ':') goto yy46;
 yy57:
+                       ++YYCURSOR;
+                       yych = *YYCURSOR;
+                       if (yych <= '/') goto yy55;
+                       if (yych <= '9') goto yy57;
+                       goto yy55;
+yy59:
                        yych = *++YYCURSOR;
-                       if (yych != 'u') goto yy46;
+                       if (yych == 's') goto yy62;
+                       goto yy46;
+yy60:
                        yych = *++YYCURSOR;
-                       if (yych != 'e') goto yy46;
-                       ++YYCURSOR;
-                       {
-               ZVAL_TRUE(&s->value);
-               return PHP_JSON_T_TRUE;
-       }
+                       if (yych == 'l') goto yy63;
+                       goto yy46;
 yy61:
                        yych = *++YYCURSOR;
-                       if (yych != 'l') goto yy46;
+                       if (yych == 'e') goto yy65;
+                       goto yy46;
+yy62:
                        yych = *++YYCURSOR;
-                       if (yych != 'l') goto yy46;
+                       if (yych == 'e') goto yy67;
+                       goto yy46;
+yy63:
                        ++YYCURSOR;
                        {
                ZVAL_NULL(&s->value);
                return PHP_JSON_T_NUL;
        }
 yy65:
-                       yych = *++YYCURSOR;
-                       if (yych != 'l') goto yy46;
-                       yych = *++YYCURSOR;
-                       if (yych != 's') goto yy46;
-                       yych = *++YYCURSOR;
-                       if (yych != 'e') goto yy46;
                        ++YYCURSOR;
                        {
-               ZVAL_FALSE(&s->value);
-               return PHP_JSON_T_FALSE;
+               ZVAL_TRUE(&s->value);
+               return PHP_JSON_T_TRUE;
        }
-yy70:
-                       yyaccept = 0;
-                       YYMARKER = ++YYCURSOR;
-                       yych = *YYCURSOR;
-yy71:
-                       if (yybm[0+yych] & 64) {
-                               goto yy70;
-                       }
-                       if (yych <= 'D') {
-                               if (yych != '.') goto yy20;
-                       } else {
-                               if (yych <= 'E') goto yy73;
-                               if (yych == 'e') goto yy73;
-                               goto yy20;
-                       }
-yy72:
-                       yych = *++YYCURSOR;
-                       if (yych <= '/') goto yy46;
-                       if (yych <= '9') goto yy78;
-                       goto yy46;
-yy73:
-                       yych = *++YYCURSOR;
-                       if (yych <= ',') {
-                               if (yych != '+') goto yy46;
-                       } else {
-                               if (yych <= '-') goto yy74;
-                               if (yych <= '/') goto yy46;
-                               if (yych <= '9') goto yy75;
-                               goto yy46;
-                       }
-yy74:
-                       yych = *++YYCURSOR;
-                       if (yych <= '/') goto yy46;
-                       if (yych >= ':') goto yy46;
-yy75:
+yy67:
                        ++YYCURSOR;
-                       yych = *YYCURSOR;
-                       if (yych <= '/') goto yy77;
-                       if (yych <= '9') goto yy75;
-yy77:
                        {
-               ZVAL_DOUBLE(&s->value, zend_strtod((char *) s->token, NULL));
-               return PHP_JSON_T_DOUBLE;
+               ZVAL_FALSE(&s->value);
+               return PHP_JSON_T_FALSE;
        }
-yy78:
-                       yyaccept = 3;
-                       YYMARKER = ++YYCURSOR;
-                       yych = *YYCURSOR;
-                       if (yych <= 'D') {
-                               if (yych <= '/') goto yy77;
-                               if (yych <= '9') goto yy78;
-                               goto yy77;
-                       } else {
-                               if (yych <= 'E') goto yy73;
-                               if (yych == 'e') goto yy73;
-                               goto yy77;
-                       }
-yy80:
-                       yyaccept = 0;
-                       yych = *(YYMARKER = ++YYCURSOR);
-                       if (yych <= 'D') {
-                               if (yych == '.') goto yy72;
-                               goto yy20;
-                       } else {
-                               if (yych <= 'E') goto yy73;
-                               if (yych == 'e') goto yy73;
-                               goto yy20;
-                       }
-yy81:
-                       ++YYCURSOR;
-                       yych = *YYCURSOR;
-yy82:
-                       if (yybm[0+yych] & 128) {
-                               goto yy81;
-                       }
-                       goto yy8;
-yy83:
-                       ++YYCURSOR;
-                       yych = *YYCURSOR;
-                       goto yy8;
                }
 /* *********************************** */
 yyc_STR_P1:
                yych = *YYCURSOR;
                if (yych <= 0xDF) {
                        if (yych <= '[') {
-                               if (yych <= 0x1F) goto yy86;
-                               if (yych == '"') goto yy90;
-                               goto yy88;
+                               if (yych <= 0x1F) goto yy71;
+                               if (yych == '"') goto yy75;
+                               goto yy73;
                        } else {
-                               if (yych <= '\\') goto yy92;
-                               if (yych <= 0x7F) goto yy88;
-                               if (yych <= 0xC1) goto yy94;
-                               goto yy96;
+                               if (yych <= '\\') goto yy77;
+                               if (yych <= 0x7F) goto yy73;
+                               if (yych <= 0xC1) goto yy79;
+                               goto yy81;
                        }
                } else {
                        if (yych <= 0xEF) {
-                               if (yych <= 0xE0) goto yy97;
-                               if (yych <= 0xEC) goto yy98;
-                               if (yych <= 0xED) goto yy99;
-                               goto yy100;
+                               if (yych <= 0xE0) goto yy82;
+                               if (yych == 0xED) goto yy84;
+                               goto yy83;
                        } else {
-                               if (yych <= 0xF0) goto yy101;
-                               if (yych <= 0xF3) goto yy102;
-                               if (yych <= 0xF4) goto yy103;
-                               goto yy94;
+                               if (yych <= 0xF0) goto yy85;
+                               if (yych <= 0xF3) goto yy86;
+                               if (yych <= 0xF4) goto yy87;
+                               goto yy79;
                        }
                }
-yy86:
+yy71:
                ++YYCURSOR;
                {
                s->errcode = PHP_JSON_ERROR_CTRL_CHAR;
                return PHP_JSON_T_ERROR;
        }
-yy88:
+yy73:
                ++YYCURSOR;
-yy89:
                { PHP_JSON_CONDITION_GOTO(STR_P1); }
-yy90:
+yy75:
                ++YYCURSOR;
                {
                zend_string *str;
@@ -644,416 +587,391 @@ yy90:
                        return PHP_JSON_T_STRING;
                }
        }
-yy92:
+yy77:
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'e') {
                        if (yych <= '/') {
-                               if (yych == '"') goto yy116;
-                               if (yych >= '/') goto yy116;
+                               if (yych == '"') goto yy88;
+                               if (yych >= '/') goto yy88;
                        } else {
                                if (yych <= '\\') {
-                                       if (yych >= '\\') goto yy116;
+                                       if (yych >= '\\') goto yy88;
                                } else {
-                                       if (yych == 'b') goto yy116;
+                                       if (yych == 'b') goto yy88;
                                }
                        }
                } else {
                        if (yych <= 'q') {
-                               if (yych <= 'f') goto yy116;
-                               if (yych == 'n') goto yy116;
+                               if (yych <= 'f') goto yy88;
+                               if (yych == 'n') goto yy88;
                        } else {
                                if (yych <= 's') {
-                                       if (yych <= 'r') goto yy116;
+                                       if (yych <= 'r') goto yy88;
                                } else {
-                                       if (yych <= 't') goto yy116;
-                                       if (yych <= 'u') goto yy118;
+                                       if (yych <= 't') goto yy88;
+                                       if (yych <= 'u') goto yy90;
                                }
                        }
                }
-yy93:
+yy78:
                {
                s->errcode = PHP_JSON_ERROR_SYNTAX;
                return PHP_JSON_T_ERROR;
        }
-yy94:
+yy79:
                ++YYCURSOR;
-yy95:
+yy80:
                {
                s->errcode = PHP_JSON_ERROR_UTF8;
                return PHP_JSON_T_ERROR;
        }
-yy96:
+yy81:
                yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy95;
-               if (yych <= 0xBF) goto yy107;
-               goto yy95;
-yy97:
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x9F) goto yy95;
-               if (yych <= 0xBF) goto yy115;
-               goto yy95;
-yy98:
+               if (yych <= 0x7F) goto yy80;
+               if (yych <= 0xBF) goto yy73;
+               goto yy80;
+yy82:
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x7F) goto yy95;
-               if (yych <= 0xBF) goto yy114;
-               goto yy95;
-yy99:
+               if (yych <= 0x9F) goto yy80;
+               if (yych <= 0xBF) goto yy92;
+               goto yy80;
+yy83:
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x7F) goto yy95;
-               if (yych <= 0x9F) goto yy113;
-               goto yy95;
-yy100:
+               if (yych <= 0x7F) goto yy80;
+               if (yych <= 0xBF) goto yy92;
+               goto yy80;
+yy84:
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x7F) goto yy95;
-               if (yych <= 0xBF) goto yy112;
-               goto yy95;
-yy101:
+               if (yych <= 0x7F) goto yy80;
+               if (yych <= 0x9F) goto yy92;
+               goto yy80;
+yy85:
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x8F) goto yy95;
-               if (yych <= 0xBF) goto yy110;
-               goto yy95;
-yy102:
+               if (yych <= 0x8F) goto yy80;
+               if (yych <= 0xBF) goto yy93;
+               goto yy80;
+yy86:
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x7F) goto yy95;
-               if (yych <= 0xBF) goto yy108;
-               goto yy95;
-yy103:
+               if (yych <= 0x7F) goto yy80;
+               if (yych <= 0xBF) goto yy93;
+               goto yy80;
+yy87:
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 0x7F) goto yy95;
-               if (yych >= 0x90) goto yy95;
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy105;
-               if (yych <= 0xBF) goto yy106;
-yy105:
-               YYCURSOR = YYMARKER;
-               if (yyaccept <= 1) {
-                       if (yyaccept == 0) {
-                               goto yy93;
-                       } else {
-                               goto yy95;
-                       }
-               } else {
-                       goto yy127;
-               }
-yy106:
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy105;
-               if (yych >= 0xC0) goto yy105;
-yy107:
-               yych = *++YYCURSOR;
-               goto yy89;
-yy108:
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy105;
-               if (yych >= 0xC0) goto yy105;
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy105;
-               if (yych <= 0xBF) goto yy107;
-               goto yy105;
-yy110:
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy105;
-               if (yych >= 0xC0) goto yy105;
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy105;
-               if (yych <= 0xBF) goto yy107;
-               goto yy105;
-yy112:
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy105;
-               if (yych <= 0xBF) goto yy107;
-               goto yy105;
-yy113:
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy105;
-               if (yych <= 0xBF) goto yy107;
-               goto yy105;
-yy114:
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy105;
-               if (yych <= 0xBF) goto yy107;
-               goto yy105;
-yy115:
-               yych = *++YYCURSOR;
-               if (yych <= 0x7F) goto yy105;
-               if (yych <= 0xBF) goto yy107;
-               goto yy105;
-yy116:
+               if (yych <= 0x7F) goto yy80;
+               if (yych <= 0x8F) goto yy93;
+               goto yy80;
+yy88:
                ++YYCURSOR;
                {
                s->str_esc++;
                PHP_JSON_CONDITION_GOTO(STR_P1);
        }
-yy118:
+yy90:
                yych = *++YYCURSOR;
                if (yych <= 'D') {
                        if (yych <= '9') {
-                               if (yych <= '/') goto yy105;
-                               if (yych >= '1') goto yy120;
+                               if (yych <= '/') goto yy91;
+                               if (yych <= '0') goto yy94;
+                               goto yy95;
                        } else {
-                               if (yych <= '@') goto yy105;
-                               if (yych <= 'C') goto yy120;
-                               goto yy121;
+                               if (yych <= '@') goto yy91;
+                               if (yych <= 'C') goto yy95;
+                               goto yy96;
                        }
                } else {
                        if (yych <= 'c') {
-                               if (yych <= 'F') goto yy120;
-                               if (yych <= '`') goto yy105;
-                               goto yy120;
+                               if (yych <= 'F') goto yy95;
+                               if (yych >= 'a') goto yy95;
                        } else {
-                               if (yych <= 'd') goto yy121;
-                               if (yych <= 'f') goto yy120;
-                               goto yy105;
+                               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 yy105;
-                       if (yych <= '0') goto yy140;
-                       if (yych <= '7') goto yy141;
-                       goto yy122;
+                       if (yych <= '/') goto yy91;
+                       if (yych <= '0') goto yy97;
+                       if (yych <= '7') goto yy98;
+                       goto yy99;
                } else {
                        if (yych <= 'F') {
-                               if (yych <= '@') goto yy105;
-                               goto yy122;
+                               if (yych <= '@') goto yy91;
+                               goto yy99;
                        } else {
-                               if (yych <= '`') goto yy105;
-                               if (yych <= 'f') goto yy122;
-                               goto yy105;
+                               if (yych <= '`') goto yy91;
+                               if (yych <= 'f') goto yy99;
+                               goto yy91;
                        }
                }
-yy120:
+yy95:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy105;
-                       if (yych <= '9') goto yy122;
-                       goto yy105;
+                       if (yych <= '/') goto yy91;
+                       if (yych <= '9') goto yy99;
+                       goto yy91;
                } else {
-                       if (yych <= 'F') goto yy122;
-                       if (yych <= '`') goto yy105;
-                       if (yych <= 'f') goto yy122;
-                       goto yy105;
+                       if (yych <= 'F') goto yy99;
+                       if (yych <= '`') goto yy91;
+                       if (yych <= 'f') goto yy99;
+                       goto yy91;
                }
-yy121:
+yy96:
                yych = *++YYCURSOR;
                if (yych <= 'B') {
                        if (yych <= '7') {
-                               if (yych <= '/') goto yy105;
+                               if (yych <= '/') goto yy91;
+                               goto yy99;
                        } else {
-                               if (yych <= '9') goto yy123;
-                               if (yych <= '@') goto yy105;
-                               goto yy123;
+                               if (yych <= '9') goto yy100;
+                               if (yych <= '@') goto yy91;
+                               goto yy100;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= 'F') goto yy124;
-                               goto yy105;
+                               if (yych <= 'F') goto yy101;
+                               goto yy91;
                        } else {
-                               if (yych <= 'b') goto yy123;
-                               if (yych <= 'f') goto yy124;
-                               goto yy105;
+                               if (yych <= 'b') goto yy100;
+                               if (yych <= 'f') goto yy101;
+                               goto yy91;
                        }
                }
-yy122:
+yy97:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy105;
-                       if (yych <= '9') goto yy137;
-                       goto yy105;
+                       if (yych <= '/') goto yy91;
+                       if (yych <= '7') goto yy102;
+                       if (yych <= '9') goto yy103;
+                       goto yy91;
                } else {
-                       if (yych <= 'F') goto yy137;
-                       if (yych <= '`') goto yy105;
-                       if (yych <= 'f') goto yy137;
-                       goto yy105;
+                       if (yych <= 'F') goto yy103;
+                       if (yych <= '`') goto yy91;
+                       if (yych <= 'f') goto yy103;
+                       goto yy91;
                }
-yy123:
+yy98:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy105;
-                       if (yych <= '9') goto yy128;
-                       goto yy105;
+                       if (yych <= '/') goto yy91;
+                       if (yych <= '9') goto yy103;
+                       goto yy91;
                } else {
-                       if (yych <= 'F') goto yy128;
-                       if (yych <= '`') goto yy105;
-                       if (yych <= 'f') goto yy128;
-                       goto yy105;
+                       if (yych <= 'F') goto yy103;
+                       if (yych <= '`') goto yy91;
+                       if (yych <= 'f') goto yy103;
+                       goto yy91;
                }
-yy124:
+yy99:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy105;
-                       if (yych >= ':') goto yy105;
+                       if (yych <= '/') goto yy91;
+                       if (yych <= '9') goto yy104;
+                       goto yy91;
                } else {
-                       if (yych <= 'F') goto yy125;
-                       if (yych <= '`') goto yy105;
-                       if (yych >= 'g') goto yy105;
+                       if (yych <= 'F') goto yy104;
+                       if (yych <= '`') goto yy91;
+                       if (yych <= 'f') goto yy104;
+                       goto yy91;
                }
-yy125:
+yy100:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy105;
-                       if (yych >= ':') goto yy105;
+                       if (yych <= '/') goto yy91;
+                       if (yych <= '9') goto yy105;
+                       goto yy91;
                } else {
-                       if (yych <= 'F') goto yy126;
-                       if (yych <= '`') goto yy105;
-                       if (yych >= 'g') goto yy105;
+                       if (yych <= 'F') goto yy105;
+                       if (yych <= '`') goto yy91;
+                       if (yych <= 'f') goto yy105;
+                       goto yy91;
                }
-yy126:
-               ++YYCURSOR;
-yy127:
-               {
-               s->errcode = PHP_JSON_ERROR_UTF16;
-               return PHP_JSON_T_ERROR;
-       }
-yy128:
+yy101:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy105;
-                       if (yych >= ':') goto yy105;
+                       if (yych <= '/') goto yy91;
+                       if (yych <= '9') goto yy106;
+                       goto yy91;
                } else {
-                       if (yych <= 'F') goto yy129;
-                       if (yych <= '`') goto yy105;
-                       if (yych >= 'g') goto yy105;
+                       if (yych <= 'F') goto yy106;
+                       if (yych <= '`') goto yy91;
+                       if (yych <= 'f') goto yy106;
+                       goto yy91;
                }
-yy129:
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych != '\\') goto yy127;
+yy102:
                yych = *++YYCURSOR;
-               if (yych != 'u') goto yy105;
+               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 == 'D') goto yy132;
-               if (yych != 'd') goto yy105;
-yy132:
+               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 <= 'B') goto yy105;
-               if (yych <= 'F') goto yy133;
-               if (yych <= 'b') goto yy105;
-               if (yych >= 'g') goto yy105;
-yy133:
+               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 yy105;
-                       if (yych >= ':') goto yy105;
+                       if (yych <= '/') goto yy91;
+                       if (yych <= '9') goto yy113;
+                       goto yy91;
                } else {
-                       if (yych <= 'F') goto yy134;
-                       if (yych <= '`') goto yy105;
-                       if (yych >= 'g') goto yy105;
+                       if (yych <= 'F') goto yy113;
+                       if (yych <= '`') goto yy91;
+                       if (yych <= 'f') goto yy113;
+                       goto yy91;
                }
-yy134:
+yy106:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy105;
-                       if (yych >= ':') goto yy105;
+                       if (yych <= '/') goto yy91;
+                       if (yych <= '9') goto yy115;
+                       goto yy91;
                } else {
-                       if (yych <= 'F') goto yy135;
-                       if (yych <= '`') goto yy105;
-                       if (yych >= 'g') goto yy105;
+                       if (yych <= 'F') goto yy115;
+                       if (yych <= '`') goto yy91;
+                       if (yych <= 'f') goto yy115;
+                       goto yy91;
                }
-yy135:
+yy107:
                ++YYCURSOR;
                {
-               s->str_esc += 8;
+               s->str_esc += 5;
                PHP_JSON_CONDITION_GOTO(STR_P1);
        }
-yy137:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy105;
-                       if (yych >= ':') goto yy105;
-               } else {
-                       if (yych <= 'F') goto yy138;
-                       if (yych <= '`') goto yy105;
-                       if (yych >= 'g') goto yy105;
-               }
-yy138:
+yy109:
+               ++YYCURSOR;
+               {
+               s->str_esc += 4;
+               PHP_JSON_CONDITION_GOTO(STR_P1);
+       }
+yy111:
                ++YYCURSOR;
                {
                s->str_esc += 3;
                PHP_JSON_CONDITION_GOTO(STR_P1);
        }
-yy140:
+yy113:
+               yyaccept = 2;
+               yych = *(YYMARKER = ++YYCURSOR);
+               if (yych == '\\') goto yy116;
+yy114:
+               {
+               s->errcode = PHP_JSON_ERROR_UTF16;
+               return PHP_JSON_T_ERROR;
+       }
+yy115:
                yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy105;
-                       if (yych <= '7') goto yy145;
-                       if (yych <= '9') goto yy142;
-                       goto yy105;
-               } else {
-                       if (yych <= 'F') goto yy142;
-                       if (yych <= '`') goto yy105;
-                       if (yych <= 'f') goto yy142;
-                       goto yy105;
-               }
-yy141:
+               goto yy114;
+yy116:
                yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy105;
-                       if (yych >= ':') goto yy105;
-               } else {
-                       if (yych <= 'F') goto yy142;
-                       if (yych <= '`') goto yy105;
-                       if (yych >= 'g') goto yy105;
-               }
-yy142:
+               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 yy105;
-                       if (yych >= ':') goto yy105;
+                       if (yych <= '/') goto yy91;
+                       if (yych >= ':') goto yy91;
                } else {
-                       if (yych <= 'F') goto yy143;
-                       if (yych <= '`') goto yy105;
-                       if (yych >= 'g') goto yy105;
+                       if (yych <= 'F') goto yy120;
+                       if (yych <= '`') goto yy91;
+                       if (yych >= 'g') goto yy91;
                }
-yy143:
-               ++YYCURSOR;
-               {
-               s->str_esc += 4;
-               PHP_JSON_CONDITION_GOTO(STR_P1);
-       }
-yy145:
+yy120:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy105;
-                       if (yych >= ':') goto yy105;
+                       if (yych <= '/') goto yy91;
+                       if (yych >= ':') goto yy91;
                } else {
-                       if (yych <= 'F') goto yy146;
-                       if (yych <= '`') goto yy105;
-                       if (yych >= 'g') goto yy105;
+                       if (yych <= 'F') goto yy121;
+                       if (yych <= '`') goto yy91;
+                       if (yych >= 'g') goto yy91;
                }
-yy146:
+yy121:
                ++YYCURSOR;
                {
-               s->str_esc += 5;
+               s->str_esc += 8;
                PHP_JSON_CONDITION_GOTO(STR_P1);
        }
 /* *********************************** */
 yyc_STR_P2:
                yych = *YYCURSOR;
-               if (yych == '"') goto yy152;
-               if (yych == '\\') goto yy154;
+               if (yych == '"') goto yy127;
+               if (yych == '\\') goto yy129;
                ++YYCURSOR;
                { PHP_JSON_CONDITION_GOTO(STR_P2); }
-yy152:
+yy127:
                ++YYCURSOR;
                YYSETCONDITION(yycJS);
                {
                PHP_JSON_SCANNER_COPY_ESC();
                return PHP_JSON_T_STRING;
        }
-yy154:
-               yyaccept = 0;
+yy129:
                yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == 'u') goto yy156;
-yy155:
+               if (yych == 'u') goto yy131;
+yy130:
                {
                char esc;
                PHP_JSON_SCANNER_COPY_ESC();
@@ -1087,206 +1005,179 @@ yy155:
                s->str_start = s->cursor;
                PHP_JSON_CONDITION_GOTO(STR_P2);
        }
-yy156:
+yy131:
                yych = *++YYCURSOR;
                if (yych <= 'D') {
                        if (yych <= '9') {
-                               if (yych <= '/') goto yy157;
-                               if (yych <= '0') goto yy158;
-                               goto yy159;
+                               if (yych <= '/') goto yy132;
+                               if (yych <= '0') goto yy133;
+                               goto yy134;
                        } else {
-                               if (yych <= '@') goto yy157;
-                               if (yych <= 'C') goto yy159;
-                               goto yy160;
+                               if (yych <= '@') goto yy132;
+                               if (yych <= 'C') goto yy134;
+                               goto yy135;
                        }
                } else {
                        if (yych <= 'c') {
-                               if (yych <= 'F') goto yy159;
-                               if (yych >= 'a') goto yy159;
+                               if (yych <= 'F') goto yy134;
+                               if (yych >= 'a') goto yy134;
                        } else {
-                               if (yych <= 'd') goto yy160;
-                               if (yych <= 'f') goto yy159;
+                               if (yych <= 'd') goto yy135;
+                               if (yych <= 'f') goto yy134;
                        }
                }
-yy157:
+yy132:
                YYCURSOR = YYMARKER;
-               goto yy155;
-yy158:
+               goto yy130;
+yy133:
                yych = *++YYCURSOR;
                if (yych <= '9') {
-                       if (yych <= '/') goto yy157;
-                       if (yych <= '0') goto yy175;
-                       if (yych <= '7') goto yy176;
-                       goto yy162;
+                       if (yych <= '/') goto yy132;
+                       if (yych <= '0') goto yy136;
+                       if (yych <= '7') goto yy137;
+                       goto yy138;
                } else {
                        if (yych <= 'F') {
-                               if (yych <= '@') goto yy157;
-                               goto yy162;
+                               if (yych <= '@') goto yy132;
+                               goto yy138;
                        } else {
-                               if (yych <= '`') goto yy157;
-                               if (yych <= 'f') goto yy162;
-                               goto yy157;
+                               if (yych <= '`') goto yy132;
+                               if (yych <= 'f') goto yy138;
+                               goto yy132;
                        }
                }
-yy159:
-               yych = *++YYCURSOR;
-               if (yych <= '@') {
-                       if (yych <= '/') goto yy157;
-                       if (yych <= '9') goto yy162;
-                       goto yy157;
-               } else {
-                       if (yych <= 'F') goto yy162;
-                       if (yych <= '`') goto yy157;
-                       if (yych <= 'f') goto yy162;
-                       goto yy157;
-               }
-yy160:
+yy134:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy157;
-                       if (yych <= '7') goto yy162;
-                       if (yych >= ':') goto yy157;
+                       if (yych <= '/') goto yy132;
+                       if (yych <= '9') goto yy138;
+                       goto yy132;
                } else {
-                       if (yych <= 'B') goto yy161;
-                       if (yych <= '`') goto yy157;
-                       if (yych >= 'c') goto yy157;
+                       if (yych <= 'F') goto yy138;
+                       if (yych <= '`') goto yy132;
+                       if (yych <= 'f') goto yy138;
+                       goto yy132;
                }
-yy161:
+yy135:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy157;
-                       if (yych <= '9') goto yy166;
-                       goto yy157;
+                       if (yych <= '/') goto yy132;
+                       if (yych <= '7') goto yy138;
+                       if (yych <= '9') goto yy139;
+                       goto yy132;
                } else {
-                       if (yych <= 'F') goto yy166;
-                       if (yych <= '`') goto yy157;
-                       if (yych <= 'f') goto yy166;
-                       goto yy157;
+                       if (yych <= 'B') goto yy139;
+                       if (yych <= '`') goto yy132;
+                       if (yych <= 'b') goto yy139;
+                       goto yy132;
                }
-yy162:
+yy136:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy157;
-                       if (yych >= ':') goto yy157;
+                       if (yych <= '/') goto yy132;
+                       if (yych <= '7') goto yy140;
+                       if (yych <= '9') goto yy141;
+                       goto yy132;
                } else {
-                       if (yych <= 'F') goto yy163;
-                       if (yych <= '`') goto yy157;
-                       if (yych >= 'g') goto yy157;
+                       if (yych <= 'F') goto yy141;
+                       if (yych <= '`') goto yy132;
+                       if (yych <= 'f') goto yy141;
+                       goto yy132;
                }
-yy163:
+yy137:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy157;
-                       if (yych >= ':') goto yy157;
+                       if (yych <= '/') goto yy132;
+                       if (yych <= '9') goto yy141;
+                       goto yy132;
                } else {
-                       if (yych <= 'F') goto yy164;
-                       if (yych <= '`') goto yy157;
-                       if (yych >= 'g') goto yy157;
+                       if (yych <= 'F') goto yy141;
+                       if (yych <= '`') goto yy132;
+                       if (yych <= 'f') goto yy141;
+                       goto yy132;
                }
-yy164:
-               ++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);
-       }
-yy166:
+yy138:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy157;
-                       if (yych >= ':') goto yy157;
+                       if (yych <= '/') goto yy132;
+                       if (yych <= '9') goto yy142;
+                       goto yy132;
                } else {
-                       if (yych <= 'F') goto yy167;
-                       if (yych <= '`') goto yy157;
-                       if (yych >= 'g') goto yy157;
+                       if (yych <= 'F') goto yy142;
+                       if (yych <= '`') goto yy132;
+                       if (yych <= 'f') goto yy142;
+                       goto yy132;
                }
-yy167:
-               yych = *++YYCURSOR;
-               if (yych != '\\') goto yy157;
-               yych = *++YYCURSOR;
-               if (yych != 'u') goto yy157;
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy170;
-               if (yych != 'd') goto yy157;
-yy170:
-               yych = *++YYCURSOR;
-               if (yych <= 'B') goto yy157;
-               if (yych <= 'F') goto yy171;
-               if (yych <= 'b') goto yy157;
-               if (yych >= 'g') goto yy157;
-yy171:
+yy139:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy157;
-                       if (yych >= ':') goto yy157;
+                       if (yych <= '/') goto yy132;
+                       if (yych <= '9') goto yy143;
+                       goto yy132;
                } else {
-                       if (yych <= 'F') goto yy172;
-                       if (yych <= '`') goto yy157;
-                       if (yych >= 'g') goto yy157;
+                       if (yych <= 'F') goto yy143;
+                       if (yych <= '`') goto yy132;
+                       if (yych <= 'f') goto yy143;
+                       goto yy132;
                }
-yy172:
+yy140:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy157;
-                       if (yych >= ':') goto yy157;
+                       if (yych <= '/') goto yy132;
+                       if (yych <= '9') goto yy144;
+                       goto yy132;
                } else {
-                       if (yych <= 'F') goto yy173;
-                       if (yych <= '`') goto yy157;
-                       if (yych >= 'g') goto yy157;
+                       if (yych <= 'F') goto yy144;
+                       if (yych <= '`') goto yy132;
+                       if (yych <= 'f') goto yy144;
+                       goto yy132;
                }
-yy173:
-               ++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);
-       }
-yy175:
+yy141:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy157;
-                       if (yych <= '7') goto yy180;
-                       if (yych <= '9') goto yy177;
-                       goto yy157;
+                       if (yych <= '/') goto yy132;
+                       if (yych <= '9') goto yy146;
+                       goto yy132;
                } else {
-                       if (yych <= 'F') goto yy177;
-                       if (yych <= '`') goto yy157;
-                       if (yych <= 'f') goto yy177;
-                       goto yy157;
+                       if (yych <= 'F') goto yy146;
+                       if (yych <= '`') goto yy132;
+                       if (yych <= 'f') goto yy146;
+                       goto yy132;
                }
-yy176:
+yy142:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy157;
-                       if (yych >= ':') goto yy157;
+                       if (yych <= '/') goto yy132;
+                       if (yych <= '9') goto yy148;
+                       goto yy132;
                } else {
-                       if (yych <= 'F') goto yy177;
-                       if (yych <= '`') goto yy157;
-                       if (yych >= 'g') goto yy157;
+                       if (yych <= 'F') goto yy148;
+                       if (yych <= '`') goto yy132;
+                       if (yych <= 'f') goto yy148;
+                       goto yy132;
                }
-yy177:
+yy143:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy157;
-                       if (yych >= ':') goto yy157;
+                       if (yych <= '/') goto yy132;
+                       if (yych <= '9') goto yy150;
+                       goto yy132;
                } else {
-                       if (yych <= 'F') goto yy178;
-                       if (yych <= '`') goto yy157;
-                       if (yych >= 'g') goto yy157;
+                       if (yych <= 'F') goto yy150;
+                       if (yych <= '`') goto yy132;
+                       if (yych <= 'f') goto yy150;
+                       goto yy132;
                }
-yy178:
+yy144:
+               ++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);
+       }
+yy146:
                ++YYCURSOR;
                {
                int utf16 = php_json_ucs2_to_int(s, 3);
@@ -1296,22 +1187,63 @@ yy178:
                s->str_start = s->cursor;
                PHP_JSON_CONDITION_GOTO(STR_P2);
        }
-yy180:
+yy148:
+               ++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);
+       }
+yy150:
+               yych = *++YYCURSOR;
+               if (yych != '\\') goto yy132;
+               yych = *++YYCURSOR;
+               if (yych != 'u') goto yy132;
+               yych = *++YYCURSOR;
+               if (yych == 'D') goto yy153;
+               if (yych != 'd') goto yy132;
+yy153:
+               yych = *++YYCURSOR;
+               if (yych <= 'B') goto yy132;
+               if (yych <= 'F') goto yy154;
+               if (yych <= 'b') goto yy132;
+               if (yych >= 'g') goto yy132;
+yy154:
                yych = *++YYCURSOR;
                if (yych <= '@') {
-                       if (yych <= '/') goto yy157;
-                       if (yych >= ':') goto yy157;
+                       if (yych <= '/') goto yy132;
+                       if (yych >= ':') goto yy132;
                } else {
-                       if (yych <= 'F') goto yy181;
-                       if (yych <= '`') goto yy157;
-                       if (yych >= 'g') goto yy157;
+                       if (yych <= 'F') goto yy155;
+                       if (yych <= '`') goto yy132;
+                       if (yych >= 'g') goto yy132;
                }
-yy181:
+yy155:
+               yych = *++YYCURSOR;
+               if (yych <= '@') {
+                       if (yych <= '/') goto yy132;
+                       if (yych >= ':') goto yy132;
+               } else {
+                       if (yych <= 'F') goto yy156;
+                       if (yych <= '`') goto yy132;
+                       if (yych >= 'g') goto yy132;
+               }
+yy156:
                ++YYCURSOR;
                {
-               int utf16 = php_json_ucs2_to_int(s, 2);
-               PHP_JSON_SCANNER_COPY_UTF();
-               *(s->pstr++) = (char) utf16;
+               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);
        }
index a75e766a65a3f84053e45b43ee742832a336e0b3..d62dd9137af8610f557871605b0fdd8362ebb29e 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.14.3 */
+/* Generated by re2c 0.16 */
 
 enum YYCONDTYPE {
        yycJS,