diff options
author | Aaron Piotrowski <aaron@trowski.com> | 2016-06-10 22:02:23 -0500 |
---|---|---|
committer | Aaron Piotrowski <aaron@trowski.com> | 2016-06-10 22:02:23 -0500 |
commit | e3c681aa5cc71122a8d2fae42e6513fc413ccac8 (patch) | |
tree | 5f1df62f7b666028edb0ee1adf083a52d63df45a /ext/json/json_scanner.c | |
parent | fb4e3085cbaa76eb8f28eebf848a81d1c0190067 (diff) | |
parent | 792e89385ca6fc722a03590722eb7745a2374720 (diff) | |
download | php-git-e3c681aa5cc71122a8d2fae42e6513fc413ccac8.tar.gz |
Merge branch 'master' into throw-error-in-extensions
Diffstat (limited to 'ext/json/json_scanner.c')
-rw-r--r-- | ext/json/json_scanner.c | 1097 |
1 files changed, 548 insertions, 549 deletions
diff --git a/ext/json/json_scanner.c b/ext/json/json_scanner.c index 7e8ee8b933..ee46a13198 100644 --- a/ext/json/json_scanner.c +++ b/ext/json/json_scanner.c @@ -1,9 +1,9 @@ -/* Generated by re2c 0.13.5 */ +/* Generated by re2c 0.14.3 */ /* +----------------------------------------------------------------------+ | PHP Version 7 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2015 The PHP Group | + | Copyright (c) 1997-2016 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 | @@ -147,47 +147,46 @@ yyc_JS: 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 yy4; + if (yych >= 0x01) goto yy5; } else { - if (yych <= '\t') goto yy6; - if (yych <= '\n') goto yy8; - goto yy4; + if (yych <= '\t') goto yy7; + if (yych <= '\n') goto yy9; + goto yy5; } } else { if (yych <= 0x1F) { - if (yych <= '\r') goto yy9; - goto yy4; + if (yych <= '\r') goto yy10; + goto yy5; } else { - if (yych <= ' ') goto yy10; - if (yych <= '!') goto yy11; - goto yy13; + if (yych <= ' ') goto yy11; + if (yych <= '!') goto yy12; + goto yy14; } } } else { if (yych <= '0') { if (yych <= ',') { - if (yych <= '+') goto yy11; - goto yy15; + if (yych <= '+') goto yy12; + goto yy16; } else { - if (yych <= '-') goto yy17; - if (yych <= '/') goto yy11; - goto yy18; + if (yych <= '-') goto yy18; + if (yych <= '/') goto yy12; + goto yy19; } } else { if (yych <= 'Z') { - if (yych <= '9') goto yy20; - if (yych <= ':') goto yy21; - goto yy11; + if (yych <= '9') goto yy21; + if (yych <= ':') goto yy22; + goto yy12; } else { - if (yych <= '[') goto yy23; - if (yych <= '\\') goto yy11; - goto yy25; + if (yych <= '[') goto yy24; + if (yych <= '\\') goto yy12; + goto yy26; } } } @@ -195,41 +194,41 @@ yyc_JS: if (yych <= '}') { if (yych <= 's') { if (yych <= 'f') { - if (yych <= 'e') goto yy11; - goto yy27; + if (yych <= 'e') goto yy12; + goto yy28; } else { - if (yych == 'n') goto yy28; - goto yy11; + if (yych == 'n') goto yy29; + goto yy12; } } else { if (yych <= 'z') { - if (yych <= 't') goto yy29; - goto yy11; + if (yych <= 't') goto yy30; + goto yy12; } else { - if (yych <= '{') goto yy30; - if (yych <= '|') goto yy11; - goto yy32; + if (yych <= '{') goto yy31; + if (yych <= '|') goto yy12; + goto yy33; } } } else { if (yych <= 0xEC) { if (yych <= 0xC1) { - if (yych <= 0x7F) goto yy11; - goto yy34; + if (yych <= 0x7F) goto yy12; + goto yy35; } else { - if (yych <= 0xDF) goto yy36; - if (yych <= 0xE0) goto yy37; - goto yy38; + if (yych <= 0xDF) goto yy37; + if (yych <= 0xE0) goto yy38; + goto yy39; } } else { if (yych <= 0xF0) { - if (yych <= 0xED) goto yy39; - if (yych <= 0xEF) goto yy40; - goto yy41; + if (yych <= 0xED) goto yy40; + if (yych <= 0xEF) goto yy41; + goto yy42; } else { - if (yych <= 0xF3) goto yy42; - if (yych <= 0xF4) goto yy43; - goto yy34; + if (yych <= 0xF3) goto yy43; + if (yych <= 0xF4) goto yy44; + goto yy35; } } } @@ -243,36 +242,36 @@ yyc_JS: return PHP_JSON_T_ERROR; } } -yy4: +yy5: ++YYCURSOR; { s->errcode = PHP_JSON_ERROR_CTRL_CHAR; return PHP_JSON_T_ERROR; } -yy6: +yy7: ++YYCURSOR; yych = *YYCURSOR; - goto yy81; -yy7: - { goto std; } + goto yy82; yy8: - yych = *++YYCURSOR; - goto yy7; + { goto std; } yy9: yych = *++YYCURSOR; - if (yych == '\n') goto yy82; - goto yy81; + goto yy8; yy10: yych = *++YYCURSOR; - goto yy81; + if (yych == '\n') goto yy83; + goto yy82; yy11: - ++YYCURSOR; + yych = *++YYCURSOR; + goto yy82; yy12: + ++YYCURSOR; +yy13: { s->errcode = PHP_JSON_ERROR_SYNTAX; return PHP_JSON_T_ERROR; } -yy13: +yy14: ++YYCURSOR; { s->str_start = s->cursor; @@ -280,25 +279,25 @@ yy13: PHP_JSON_CONDITION_SET(STR_P1); PHP_JSON_CONDITION_GOTO(STR_P1); } -yy15: +yy16: ++YYCURSOR; { return ','; } -yy17: - yych = *++YYCURSOR; - if (yych <= '/') goto yy12; - if (yych <= '0') goto yy79; - if (yych <= '9') goto yy69; - goto yy12; yy18: + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '0') goto yy80; + if (yych <= '9') goto yy70; + goto yy13; +yy19: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { - if (yych == '.') goto yy71; + if (yych == '.') goto yy72; } else { - if (yych <= 'E') goto yy72; - if (yych == 'e') goto yy72; + if (yych <= 'E') goto yy73; + if (yych == 'e') goto yy73; } -yy19: +yy20: { zend_bool bigint = 0, negative = s->token[0] == '-'; size_t digits = (size_t) (s->cursor - s->token - negative); @@ -323,305 +322,305 @@ yy19: return PHP_JSON_T_DOUBLE; } } -yy20: +yy21: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy70; -yy21: + goto yy71; +yy22: ++YYCURSOR; { return ':'; } -yy23: +yy24: ++YYCURSOR; { return '['; } -yy25: +yy26: ++YYCURSOR; { return ']'; } -yy27: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'a') goto yy64; - goto yy12; yy28: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'u') goto yy60; - goto yy12; + if (yych == 'a') goto yy65; + goto yy13; yy29: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'r') goto yy56; - goto yy12; + if (yych == 'u') goto yy61; + goto yy13; yy30: + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'r') goto yy57; + goto yy13; +yy31: ++YYCURSOR; { return '{'; } -yy32: +yy33: ++YYCURSOR; { return '}'; } -yy34: - ++YYCURSOR; yy35: + ++YYCURSOR; +yy36: { s->errcode = PHP_JSON_ERROR_UTF8; return PHP_JSON_T_ERROR; } -yy36: - yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy35; - if (yych <= 0xBF) goto yy47; - goto yy35; yy37: - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x9F) goto yy35; - if (yych <= 0xBF) goto yy55; - goto yy35; + yych = *++YYCURSOR; + if (yych <= 0x7F) goto yy36; + if (yych <= 0xBF) goto yy48; + goto yy36; yy38: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x7F) goto yy35; - if (yych <= 0xBF) goto yy54; - goto yy35; + if (yych <= 0x9F) goto yy36; + if (yych <= 0xBF) goto yy56; + goto yy36; yy39: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x7F) goto yy35; - if (yych <= 0x9F) goto yy53; - goto yy35; + if (yych <= 0x7F) goto yy36; + if (yych <= 0xBF) goto yy55; + goto yy36; yy40: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x7F) goto yy35; - if (yych <= 0xBF) goto yy52; - goto yy35; + if (yych <= 0x7F) goto yy36; + if (yych <= 0x9F) goto yy54; + goto yy36; yy41: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x8F) goto yy35; - if (yych <= 0xBF) goto yy50; - goto yy35; + if (yych <= 0x7F) goto yy36; + if (yych <= 0xBF) goto yy53; + goto yy36; yy42: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x7F) goto yy35; - if (yych <= 0xBF) goto yy48; - goto yy35; + if (yych <= 0x8F) goto yy36; + if (yych <= 0xBF) goto yy51; + goto yy36; yy43: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x7F) goto yy35; - if (yych >= 0x90) goto yy35; + if (yych <= 0x7F) goto yy36; + if (yych <= 0xBF) goto yy49; + goto yy36; +yy44: + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 0x7F) goto yy36; + if (yych >= 0x90) goto yy36; yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy45; - if (yych <= 0xBF) goto yy46; -yy45: + if (yych <= 0x7F) goto yy46; + if (yych <= 0xBF) goto yy47; +yy46: YYCURSOR = YYMARKER; if (yyaccept <= 1) { - if (yyaccept <= 0) { - goto yy19; + if (yyaccept == 0) { + goto yy20; } else { - goto yy12; + goto yy13; } } else { - if (yyaccept <= 2) { - goto yy35; + if (yyaccept == 2) { + goto yy36; } else { - goto yy76; + goto yy77; } } -yy46: - yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy45; - if (yych >= 0xC0) goto yy45; yy47: yych = *++YYCURSOR; - goto yy12; + if (yych <= 0x7F) goto yy46; + if (yych >= 0xC0) goto yy46; yy48: yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy45; - if (yych >= 0xC0) goto yy45; + goto yy13; +yy49: yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy45; - if (yych <= 0xBF) goto yy47; - goto yy45; -yy50: + if (yych <= 0x7F) goto yy46; + if (yych >= 0xC0) goto yy46; yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy45; - if (yych >= 0xC0) goto yy45; + if (yych <= 0x7F) goto yy46; + if (yych <= 0xBF) goto yy48; + goto yy46; +yy51: yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy45; - if (yych <= 0xBF) goto yy47; - goto yy45; -yy52: + if (yych <= 0x7F) goto yy46; + if (yych >= 0xC0) goto yy46; yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy45; - if (yych <= 0xBF) goto yy47; - goto yy45; + if (yych <= 0x7F) goto yy46; + if (yych <= 0xBF) goto yy48; + goto yy46; yy53: yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy45; - if (yych <= 0xBF) goto yy47; - goto yy45; + if (yych <= 0x7F) goto yy46; + if (yych <= 0xBF) goto yy48; + goto yy46; yy54: yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy45; - if (yych <= 0xBF) goto yy47; - goto yy45; + if (yych <= 0x7F) goto yy46; + if (yych <= 0xBF) goto yy48; + goto yy46; yy55: yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy45; - if (yych <= 0xBF) goto yy47; - goto yy45; + if (yych <= 0x7F) goto yy46; + if (yych <= 0xBF) goto yy48; + goto yy46; yy56: yych = *++YYCURSOR; - if (yych != 'u') goto yy45; + if (yych <= 0x7F) goto yy46; + if (yych <= 0xBF) goto yy48; + goto yy46; +yy57: yych = *++YYCURSOR; - if (yych != 'e') goto yy45; + if (yych != 'u') goto yy46; + yych = *++YYCURSOR; + if (yych != 'e') goto yy46; ++YYCURSOR; { ZVAL_TRUE(&s->value); return PHP_JSON_T_TRUE; } -yy60: +yy61: yych = *++YYCURSOR; - if (yych != 'l') goto yy45; + if (yych != 'l') goto yy46; yych = *++YYCURSOR; - if (yych != 'l') goto yy45; + if (yych != 'l') goto yy46; ++YYCURSOR; { ZVAL_NULL(&s->value); return PHP_JSON_T_NUL; } -yy64: +yy65: yych = *++YYCURSOR; - if (yych != 'l') goto yy45; + if (yych != 'l') goto yy46; yych = *++YYCURSOR; - if (yych != 's') goto yy45; + if (yych != 's') goto yy46; yych = *++YYCURSOR; - if (yych != 'e') goto yy45; + if (yych != 'e') goto yy46; ++YYCURSOR; { ZVAL_FALSE(&s->value); return PHP_JSON_T_FALSE; } -yy69: +yy70: yyaccept = 0; YYMARKER = ++YYCURSOR; yych = *YYCURSOR; -yy70: +yy71: if (yybm[0+yych] & 64) { - goto yy69; + goto yy70; } if (yych <= 'D') { - if (yych != '.') goto yy19; + if (yych != '.') goto yy20; } else { - if (yych <= 'E') goto yy72; - if (yych == 'e') goto yy72; - goto yy19; + if (yych <= 'E') goto yy73; + if (yych == 'e') goto yy73; + goto yy20; } -yy71: - yych = *++YYCURSOR; - if (yych <= '/') goto yy45; - if (yych <= '9') goto yy77; - goto yy45; yy72: yych = *++YYCURSOR; + if (yych <= '/') goto yy46; + if (yych <= '9') goto yy78; + goto yy46; +yy73: + yych = *++YYCURSOR; if (yych <= ',') { - if (yych != '+') goto yy45; + if (yych != '+') goto yy46; } else { - if (yych <= '-') goto yy73; - if (yych <= '/') goto yy45; - if (yych <= '9') goto yy74; - goto yy45; + if (yych <= '-') goto yy74; + if (yych <= '/') goto yy46; + if (yych <= '9') goto yy75; + goto yy46; } -yy73: - yych = *++YYCURSOR; - if (yych <= '/') goto yy45; - if (yych >= ':') goto yy45; yy74: + yych = *++YYCURSOR; + if (yych <= '/') goto yy46; + if (yych >= ':') goto yy46; +yy75: ++YYCURSOR; yych = *YYCURSOR; - if (yych <= '/') goto yy76; - if (yych <= '9') goto yy74; -yy76: + 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; } -yy77: +yy78: yyaccept = 3; YYMARKER = ++YYCURSOR; yych = *YYCURSOR; if (yych <= 'D') { - if (yych <= '/') goto yy76; - if (yych <= '9') goto yy77; - goto yy76; + if (yych <= '/') goto yy77; + if (yych <= '9') goto yy78; + goto yy77; } else { - if (yych <= 'E') goto yy72; - if (yych == 'e') goto yy72; - goto yy76; + if (yych <= 'E') goto yy73; + if (yych == 'e') goto yy73; + goto yy77; } -yy79: +yy80: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { - if (yych == '.') goto yy71; - goto yy19; + if (yych == '.') goto yy72; + goto yy20; } else { - if (yych <= 'E') goto yy72; - if (yych == 'e') goto yy72; - goto yy19; + if (yych <= 'E') goto yy73; + if (yych == 'e') goto yy73; + goto yy20; } -yy80: +yy81: ++YYCURSOR; yych = *YYCURSOR; -yy81: +yy82: if (yybm[0+yych] & 128) { - goto yy80; + goto yy81; } - goto yy7; -yy82: + goto yy8; +yy83: ++YYCURSOR; yych = *YYCURSOR; - goto yy7; + goto yy8; } /* *********************************** */ yyc_STR_P1: yych = *YYCURSOR; if (yych <= 0xDF) { if (yych <= '[') { - if (yych <= 0x1F) goto yy85; - if (yych == '"') goto yy89; - goto yy87; + if (yych <= 0x1F) goto yy86; + if (yych == '"') goto yy90; + goto yy88; } else { - if (yych <= '\\') goto yy91; - if (yych <= 0x7F) goto yy87; - if (yych <= 0xC1) goto yy93; - goto yy95; + if (yych <= '\\') goto yy92; + if (yych <= 0x7F) goto yy88; + if (yych <= 0xC1) goto yy94; + goto yy96; } } else { if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy96; - if (yych <= 0xEC) goto yy97; - if (yych <= 0xED) goto yy98; - goto yy99; + if (yych <= 0xE0) goto yy97; + if (yych <= 0xEC) goto yy98; + if (yych <= 0xED) goto yy99; + goto yy100; } else { - if (yych <= 0xF0) goto yy100; - if (yych <= 0xF3) goto yy101; - if (yych <= 0xF4) goto yy102; - goto yy93; + if (yych <= 0xF0) goto yy101; + if (yych <= 0xF3) goto yy102; + if (yych <= 0xF4) goto yy103; + goto yy94; } } -yy85: +yy86: ++YYCURSOR; { s->errcode = PHP_JSON_ERROR_CTRL_CHAR; return PHP_JSON_T_ERROR; } -yy87: - ++YYCURSOR; yy88: - { PHP_JSON_CONDITION_GOTO(STR_P1); } + ++YYCURSOR; yy89: + { PHP_JSON_CONDITION_GOTO(STR_P1); } +yy90: ++YYCURSOR; { zend_string *str; @@ -645,392 +644,392 @@ yy89: return PHP_JSON_T_STRING; } } -yy91: +yy92: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'e') { if (yych <= '/') { - if (yych == '"') goto yy115; - if (yych >= '/') goto yy115; + if (yych == '"') goto yy116; + if (yych >= '/') goto yy116; } else { if (yych <= '\\') { - if (yych >= '\\') goto yy115; + if (yych >= '\\') goto yy116; } else { - if (yych == 'b') goto yy115; + if (yych == 'b') goto yy116; } } } else { if (yych <= 'q') { - if (yych <= 'f') goto yy115; - if (yych == 'n') goto yy115; + if (yych <= 'f') goto yy116; + if (yych == 'n') goto yy116; } else { if (yych <= 's') { - if (yych <= 'r') goto yy115; + if (yych <= 'r') goto yy116; } else { - if (yych <= 't') goto yy115; - if (yych <= 'u') goto yy117; + if (yych <= 't') goto yy116; + if (yych <= 'u') goto yy118; } } } -yy92: +yy93: { s->errcode = PHP_JSON_ERROR_SYNTAX; return PHP_JSON_T_ERROR; } -yy93: - ++YYCURSOR; yy94: + ++YYCURSOR; +yy95: { s->errcode = PHP_JSON_ERROR_UTF8; return PHP_JSON_T_ERROR; } -yy95: - yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy94; - if (yych <= 0xBF) goto yy106; - goto yy94; yy96: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x9F) goto yy94; - if (yych <= 0xBF) goto yy114; - goto yy94; + yych = *++YYCURSOR; + if (yych <= 0x7F) goto yy95; + if (yych <= 0xBF) goto yy107; + goto yy95; yy97: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x7F) goto yy94; - if (yych <= 0xBF) goto yy113; - goto yy94; + if (yych <= 0x9F) goto yy95; + if (yych <= 0xBF) goto yy115; + goto yy95; yy98: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x7F) goto yy94; - if (yych <= 0x9F) goto yy112; - goto yy94; + if (yych <= 0x7F) goto yy95; + if (yych <= 0xBF) goto yy114; + goto yy95; yy99: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x7F) goto yy94; - if (yych <= 0xBF) goto yy111; - goto yy94; + if (yych <= 0x7F) goto yy95; + if (yych <= 0x9F) goto yy113; + goto yy95; yy100: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x8F) goto yy94; - if (yych <= 0xBF) goto yy109; - goto yy94; + if (yych <= 0x7F) goto yy95; + if (yych <= 0xBF) goto yy112; + goto yy95; yy101: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x7F) goto yy94; - if (yych <= 0xBF) goto yy107; - goto yy94; + if (yych <= 0x8F) goto yy95; + if (yych <= 0xBF) goto yy110; + goto yy95; yy102: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x7F) goto yy94; - if (yych >= 0x90) goto yy94; + if (yych <= 0x7F) goto yy95; + if (yych <= 0xBF) goto yy108; + goto yy95; +yy103: + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 0x7F) goto yy95; + if (yych >= 0x90) goto yy95; yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy104; - if (yych <= 0xBF) goto yy105; -yy104: + if (yych <= 0x7F) goto yy105; + if (yych <= 0xBF) goto yy106; +yy105: YYCURSOR = YYMARKER; if (yyaccept <= 1) { - if (yyaccept <= 0) { - goto yy92; + if (yyaccept == 0) { + goto yy93; } else { - goto yy94; + goto yy95; } } else { - goto yy126; + goto yy127; } -yy105: - yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy104; - if (yych >= 0xC0) goto yy104; yy106: yych = *++YYCURSOR; - goto yy88; + if (yych <= 0x7F) goto yy105; + if (yych >= 0xC0) goto yy105; yy107: yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy104; - if (yych >= 0xC0) goto yy104; + goto yy89; +yy108: yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy104; - if (yych <= 0xBF) goto yy106; - goto yy104; -yy109: + if (yych <= 0x7F) goto yy105; + if (yych >= 0xC0) goto yy105; yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy104; - if (yych >= 0xC0) goto yy104; + if (yych <= 0x7F) goto yy105; + if (yych <= 0xBF) goto yy107; + goto yy105; +yy110: yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy104; - if (yych <= 0xBF) goto yy106; - goto yy104; -yy111: + if (yych <= 0x7F) goto yy105; + if (yych >= 0xC0) goto yy105; yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy104; - if (yych <= 0xBF) goto yy106; - goto yy104; + if (yych <= 0x7F) goto yy105; + if (yych <= 0xBF) goto yy107; + goto yy105; yy112: yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy104; - if (yych <= 0xBF) goto yy106; - goto yy104; + if (yych <= 0x7F) goto yy105; + if (yych <= 0xBF) goto yy107; + goto yy105; yy113: yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy104; - if (yych <= 0xBF) goto yy106; - goto yy104; + if (yych <= 0x7F) goto yy105; + if (yych <= 0xBF) goto yy107; + goto yy105; yy114: yych = *++YYCURSOR; - if (yych <= 0x7F) goto yy104; - if (yych <= 0xBF) goto yy106; - goto yy104; + 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: ++YYCURSOR; { s->str_esc++; PHP_JSON_CONDITION_GOTO(STR_P1); } -yy117: +yy118: yych = *++YYCURSOR; if (yych <= 'D') { if (yych <= '9') { - if (yych <= '/') goto yy104; - if (yych >= '1') goto yy119; + if (yych <= '/') goto yy105; + if (yych >= '1') goto yy120; } else { - if (yych <= '@') goto yy104; - if (yych <= 'C') goto yy119; - goto yy120; + if (yych <= '@') goto yy105; + if (yych <= 'C') goto yy120; + goto yy121; } } else { if (yych <= 'c') { - if (yych <= 'F') goto yy119; - if (yych <= '`') goto yy104; - goto yy119; + if (yych <= 'F') goto yy120; + if (yych <= '`') goto yy105; + goto yy120; } else { - if (yych <= 'd') goto yy120; - if (yych <= 'f') goto yy119; - goto yy104; + if (yych <= 'd') goto yy121; + if (yych <= 'f') goto yy120; + goto yy105; } } yych = *++YYCURSOR; if (yych <= '9') { - if (yych <= '/') goto yy104; - if (yych <= '0') goto yy139; - if (yych <= '7') goto yy140; - goto yy121; + if (yych <= '/') goto yy105; + if (yych <= '0') goto yy140; + if (yych <= '7') goto yy141; + goto yy122; } else { if (yych <= 'F') { - if (yych <= '@') goto yy104; - goto yy121; + if (yych <= '@') goto yy105; + goto yy122; } else { - if (yych <= '`') goto yy104; - if (yych <= 'f') goto yy121; - goto yy104; + if (yych <= '`') goto yy105; + if (yych <= 'f') goto yy122; + goto yy105; } } -yy119: +yy120: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy104; - if (yych <= '9') goto yy121; - goto yy104; + if (yych <= '/') goto yy105; + if (yych <= '9') goto yy122; + goto yy105; } else { - if (yych <= 'F') goto yy121; - if (yych <= '`') goto yy104; - if (yych <= 'f') goto yy121; - goto yy104; + if (yych <= 'F') goto yy122; + if (yych <= '`') goto yy105; + if (yych <= 'f') goto yy122; + goto yy105; } -yy120: +yy121: yych = *++YYCURSOR; if (yych <= 'B') { if (yych <= '7') { - if (yych <= '/') goto yy104; + if (yych <= '/') goto yy105; } else { - if (yych <= '9') goto yy122; - if (yych <= '@') goto yy104; - goto yy122; + if (yych <= '9') goto yy123; + if (yych <= '@') goto yy105; + goto yy123; } } else { if (yych <= '`') { - if (yych <= 'F') goto yy123; - goto yy104; + if (yych <= 'F') goto yy124; + goto yy105; } else { - if (yych <= 'b') goto yy122; - if (yych <= 'f') goto yy123; - goto yy104; + if (yych <= 'b') goto yy123; + if (yych <= 'f') goto yy124; + goto yy105; } } -yy121: - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy104; - if (yych <= '9') goto yy136; - goto yy104; - } else { - if (yych <= 'F') goto yy136; - if (yych <= '`') goto yy104; - if (yych <= 'f') goto yy136; - goto yy104; - } yy122: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy104; - if (yych <= '9') goto yy127; - goto yy104; + if (yych <= '/') goto yy105; + if (yych <= '9') goto yy137; + goto yy105; } else { - if (yych <= 'F') goto yy127; - if (yych <= '`') goto yy104; - if (yych <= 'f') goto yy127; - goto yy104; + if (yych <= 'F') goto yy137; + if (yych <= '`') goto yy105; + if (yych <= 'f') goto yy137; + goto yy105; } yy123: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy104; - if (yych >= ':') goto yy104; + if (yych <= '/') goto yy105; + if (yych <= '9') goto yy128; + goto yy105; } else { - if (yych <= 'F') goto yy124; - if (yych <= '`') goto yy104; - if (yych >= 'g') goto yy104; + if (yych <= 'F') goto yy128; + if (yych <= '`') goto yy105; + if (yych <= 'f') goto yy128; + goto yy105; } yy124: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy104; - if (yych >= ':') goto yy104; + if (yych <= '/') goto yy105; + if (yych >= ':') goto yy105; } else { if (yych <= 'F') goto yy125; - if (yych <= '`') goto yy104; - if (yych >= 'g') goto yy104; + if (yych <= '`') goto yy105; + if (yych >= 'g') goto yy105; } yy125: - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych <= '/') goto yy105; + if (yych >= ':') goto yy105; + } else { + if (yych <= 'F') goto yy126; + if (yych <= '`') goto yy105; + if (yych >= 'g') goto yy105; + } yy126: + ++YYCURSOR; +yy127: { s->errcode = PHP_JSON_ERROR_UTF16; return PHP_JSON_T_ERROR; } -yy127: +yy128: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy104; - if (yych >= ':') goto yy104; + if (yych <= '/') goto yy105; + if (yych >= ':') goto yy105; } else { - if (yych <= 'F') goto yy128; - if (yych <= '`') goto yy104; - if (yych >= 'g') goto yy104; + if (yych <= 'F') goto yy129; + if (yych <= '`') goto yy105; + if (yych >= 'g') goto yy105; } -yy128: +yy129: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych != '\\') goto yy126; - yych = *++YYCURSOR; - if (yych != 'u') goto yy104; + if (yych != '\\') goto yy127; yych = *++YYCURSOR; - if (yych == 'D') goto yy131; - if (yych != 'd') goto yy104; -yy131: + if (yych != 'u') goto yy105; yych = *++YYCURSOR; - if (yych <= 'B') goto yy104; - if (yych <= 'F') goto yy132; - if (yych <= 'b') goto yy104; - if (yych >= 'g') goto yy104; + if (yych == 'D') goto yy132; + if (yych != 'd') goto yy105; yy132: yych = *++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy104; - if (yych >= ':') goto yy104; - } else { - if (yych <= 'F') goto yy133; - if (yych <= '`') goto yy104; - if (yych >= 'g') goto yy104; - } + if (yych <= 'B') goto yy105; + if (yych <= 'F') goto yy133; + if (yych <= 'b') goto yy105; + if (yych >= 'g') goto yy105; yy133: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy104; - if (yych >= ':') goto yy104; + if (yych <= '/') goto yy105; + if (yych >= ':') goto yy105; } else { if (yych <= 'F') goto yy134; - if (yych <= '`') goto yy104; - if (yych >= 'g') goto yy104; + if (yych <= '`') goto yy105; + if (yych >= 'g') goto yy105; } yy134: + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych <= '/') goto yy105; + if (yych >= ':') goto yy105; + } else { + if (yych <= 'F') goto yy135; + if (yych <= '`') goto yy105; + if (yych >= 'g') goto yy105; + } +yy135: ++YYCURSOR; { s->str_esc += 8; PHP_JSON_CONDITION_GOTO(STR_P1); } -yy136: +yy137: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy104; - if (yych >= ':') goto yy104; + if (yych <= '/') goto yy105; + if (yych >= ':') goto yy105; } else { - if (yych <= 'F') goto yy137; - if (yych <= '`') goto yy104; - if (yych >= 'g') goto yy104; + if (yych <= 'F') goto yy138; + if (yych <= '`') goto yy105; + if (yych >= 'g') goto yy105; } -yy137: +yy138: ++YYCURSOR; { s->str_esc += 3; PHP_JSON_CONDITION_GOTO(STR_P1); } -yy139: - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy104; - if (yych <= '7') goto yy144; - if (yych <= '9') goto yy141; - goto yy104; - } else { - if (yych <= 'F') goto yy141; - if (yych <= '`') goto yy104; - if (yych <= 'f') goto yy141; - goto yy104; - } yy140: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy104; - if (yych >= ':') goto yy104; + if (yych <= '/') goto yy105; + if (yych <= '7') goto yy145; + if (yych <= '9') goto yy142; + goto yy105; } else { - if (yych <= 'F') goto yy141; - if (yych <= '`') goto yy104; - if (yych >= 'g') goto yy104; + if (yych <= 'F') goto yy142; + if (yych <= '`') goto yy105; + if (yych <= 'f') goto yy142; + goto yy105; } yy141: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy104; - if (yych >= ':') goto yy104; + if (yych <= '/') goto yy105; + if (yych >= ':') goto yy105; } else { if (yych <= 'F') goto yy142; - if (yych <= '`') goto yy104; - if (yych >= 'g') goto yy104; + if (yych <= '`') goto yy105; + if (yych >= 'g') goto yy105; } yy142: + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych <= '/') goto yy105; + if (yych >= ':') goto yy105; + } else { + if (yych <= 'F') goto yy143; + if (yych <= '`') goto yy105; + if (yych >= 'g') goto yy105; + } +yy143: ++YYCURSOR; { s->str_esc += 4; PHP_JSON_CONDITION_GOTO(STR_P1); } -yy144: +yy145: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy104; - if (yych >= ':') goto yy104; + if (yych <= '/') goto yy105; + if (yych >= ':') goto yy105; } else { - if (yych <= 'F') goto yy145; - if (yych <= '`') goto yy104; - if (yych >= 'g') goto yy104; + if (yych <= 'F') goto yy146; + if (yych <= '`') goto yy105; + if (yych >= 'g') goto yy105; } -yy145: +yy146: ++YYCURSOR; { s->str_esc += 5; @@ -1039,22 +1038,22 @@ yy145: /* *********************************** */ yyc_STR_P2: yych = *YYCURSOR; - if (yych == '"') goto yy151; - if (yych == '\\') goto yy153; + if (yych == '"') goto yy152; + if (yych == '\\') goto yy154; ++YYCURSOR; { PHP_JSON_CONDITION_GOTO(STR_P2); } -yy151: +yy152: ++YYCURSOR; YYSETCONDITION(yycJS); { PHP_JSON_SCANNER_COPY_ESC(); return PHP_JSON_T_STRING; } -yy153: +yy154: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'u') goto yy155; -yy154: + if (yych == 'u') goto yy156; +yy155: { char esc; PHP_JSON_SCANNER_COPY_ESC(); @@ -1088,103 +1087,103 @@ yy154: s->str_start = s->cursor; PHP_JSON_CONDITION_GOTO(STR_P2); } -yy155: +yy156: yych = *++YYCURSOR; if (yych <= 'D') { if (yych <= '9') { - if (yych <= '/') goto yy156; - if (yych <= '0') goto yy157; - goto yy158; - } else { - if (yych <= '@') goto yy156; - if (yych <= 'C') goto yy158; + if (yych <= '/') goto yy157; + if (yych <= '0') goto yy158; goto yy159; + } else { + if (yych <= '@') goto yy157; + if (yych <= 'C') goto yy159; + goto yy160; } } else { if (yych <= 'c') { - if (yych <= 'F') goto yy158; - if (yych >= 'a') goto yy158; + if (yych <= 'F') goto yy159; + if (yych >= 'a') goto yy159; } else { - if (yych <= 'd') goto yy159; - if (yych <= 'f') goto yy158; + if (yych <= 'd') goto yy160; + if (yych <= 'f') goto yy159; } } -yy156: - YYCURSOR = YYMARKER; - goto yy154; yy157: + YYCURSOR = YYMARKER; + goto yy155; +yy158: yych = *++YYCURSOR; if (yych <= '9') { - if (yych <= '/') goto yy156; - if (yych <= '0') goto yy174; - if (yych <= '7') goto yy175; - goto yy161; + if (yych <= '/') goto yy157; + if (yych <= '0') goto yy175; + if (yych <= '7') goto yy176; + goto yy162; } else { if (yych <= 'F') { - if (yych <= '@') goto yy156; - goto yy161; + if (yych <= '@') goto yy157; + goto yy162; } else { - if (yych <= '`') goto yy156; - if (yych <= 'f') goto yy161; - goto yy156; + if (yych <= '`') goto yy157; + if (yych <= 'f') goto yy162; + goto yy157; } } -yy158: - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy156; - if (yych <= '9') goto yy161; - goto yy156; - } else { - if (yych <= 'F') goto yy161; - if (yych <= '`') goto yy156; - if (yych <= 'f') goto yy161; - goto yy156; - } yy159: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy156; - if (yych <= '7') goto yy161; - if (yych >= ':') goto yy156; + if (yych <= '/') goto yy157; + if (yych <= '9') goto yy162; + goto yy157; } else { - if (yych <= 'B') goto yy160; - if (yych <= '`') goto yy156; - if (yych >= 'c') goto yy156; + if (yych <= 'F') goto yy162; + if (yych <= '`') goto yy157; + if (yych <= 'f') goto yy162; + goto yy157; } yy160: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy156; - if (yych <= '9') goto yy165; - goto yy156; + if (yych <= '/') goto yy157; + if (yych <= '7') goto yy162; + if (yych >= ':') goto yy157; } else { - if (yych <= 'F') goto yy165; - if (yych <= '`') goto yy156; - if (yych <= 'f') goto yy165; - goto yy156; + if (yych <= 'B') goto yy161; + if (yych <= '`') goto yy157; + if (yych >= 'c') goto yy157; } yy161: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy156; - if (yych >= ':') goto yy156; + if (yych <= '/') goto yy157; + if (yych <= '9') goto yy166; + goto yy157; } else { - if (yych <= 'F') goto yy162; - if (yych <= '`') goto yy156; - if (yych >= 'g') goto yy156; + if (yych <= 'F') goto yy166; + if (yych <= '`') goto yy157; + if (yych <= 'f') goto yy166; + goto yy157; } yy162: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy156; - if (yych >= ':') goto yy156; + if (yych <= '/') goto yy157; + if (yych >= ':') goto yy157; } else { if (yych <= 'F') goto yy163; - if (yych <= '`') goto yy156; - if (yych >= 'g') goto yy156; + if (yych <= '`') goto yy157; + if (yych >= 'g') goto yy157; } yy163: + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych <= '/') goto yy157; + if (yych >= ':') goto yy157; + } else { + if (yych <= 'F') goto yy164; + if (yych <= '`') goto yy157; + if (yych >= 'g') goto yy157; + } +yy164: ++YYCURSOR; { int utf16 = php_json_ucs2_to_int(s, 4); @@ -1195,51 +1194,51 @@ yy163: s->str_start = s->cursor; PHP_JSON_CONDITION_GOTO(STR_P2); } -yy165: +yy166: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy156; - if (yych >= ':') goto yy156; + if (yych <= '/') goto yy157; + if (yych >= ':') goto yy157; } else { - if (yych <= 'F') goto yy166; - if (yych <= '`') goto yy156; - if (yych >= 'g') goto yy156; + if (yych <= 'F') goto yy167; + if (yych <= '`') goto yy157; + if (yych >= 'g') goto yy157; } -yy166: +yy167: yych = *++YYCURSOR; - if (yych != '\\') goto yy156; + if (yych != '\\') goto yy157; yych = *++YYCURSOR; - if (yych != 'u') goto yy156; + if (yych != 'u') goto yy157; yych = *++YYCURSOR; - if (yych == 'D') goto yy169; - if (yych != 'd') goto yy156; -yy169: - yych = *++YYCURSOR; - if (yych <= 'B') goto yy156; - if (yych <= 'F') goto yy170; - if (yych <= 'b') goto yy156; - if (yych >= 'g') goto yy156; + if (yych == 'D') goto yy170; + if (yych != 'd') goto yy157; yy170: yych = *++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy156; - if (yych >= ':') goto yy156; - } else { - if (yych <= 'F') goto yy171; - if (yych <= '`') goto yy156; - if (yych >= 'g') goto yy156; - } + if (yych <= 'B') goto yy157; + if (yych <= 'F') goto yy171; + if (yych <= 'b') goto yy157; + if (yych >= 'g') goto yy157; yy171: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy156; - if (yych >= ':') goto yy156; + if (yych <= '/') goto yy157; + if (yych >= ':') goto yy157; } else { if (yych <= 'F') goto yy172; - if (yych <= '`') goto yy156; - if (yych >= 'g') goto yy156; + if (yych <= '`') goto yy157; + if (yych >= 'g') goto yy157; } yy172: + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych <= '/') goto yy157; + if (yych >= ':') goto yy157; + } else { + if (yych <= 'F') goto yy173; + if (yych <= '`') goto yy157; + if (yych >= 'g') goto yy157; + } +yy173: ++YYCURSOR; { int utf32, utf16_hi, utf16_lo; @@ -1254,40 +1253,40 @@ yy172: s->str_start = s->cursor; PHP_JSON_CONDITION_GOTO(STR_P2); } -yy174: - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy156; - if (yych <= '7') goto yy179; - if (yych <= '9') goto yy176; - goto yy156; - } else { - if (yych <= 'F') goto yy176; - if (yych <= '`') goto yy156; - if (yych <= 'f') goto yy176; - goto yy156; - } yy175: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy156; - if (yych >= ':') goto yy156; + if (yych <= '/') goto yy157; + if (yych <= '7') goto yy180; + if (yych <= '9') goto yy177; + goto yy157; } else { - if (yych <= 'F') goto yy176; - if (yych <= '`') goto yy156; - if (yych >= 'g') goto yy156; + if (yych <= 'F') goto yy177; + if (yych <= '`') goto yy157; + if (yych <= 'f') goto yy177; + goto yy157; } yy176: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy156; - if (yych >= ':') goto yy156; + if (yych <= '/') goto yy157; + if (yych >= ':') goto yy157; } else { if (yych <= 'F') goto yy177; - if (yych <= '`') goto yy156; - if (yych >= 'g') goto yy156; + if (yych <= '`') goto yy157; + if (yych >= 'g') goto yy157; } yy177: + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych <= '/') goto yy157; + if (yych >= ':') goto yy157; + } else { + if (yych <= 'F') goto yy178; + if (yych <= '`') goto yy157; + if (yych >= 'g') goto yy157; + } +yy178: ++YYCURSOR; { int utf16 = php_json_ucs2_to_int(s, 3); @@ -1297,17 +1296,17 @@ yy177: s->str_start = s->cursor; PHP_JSON_CONDITION_GOTO(STR_P2); } -yy179: +yy180: yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy156; - if (yych >= ':') goto yy156; + if (yych <= '/') goto yy157; + if (yych >= ':') goto yy157; } else { - if (yych <= 'F') goto yy180; - if (yych <= '`') goto yy156; - if (yych >= 'g') goto yy156; + if (yych <= 'F') goto yy181; + if (yych <= '`') goto yy157; + if (yych >= 'g') goto yy157; } -yy180: +yy181: ++YYCURSOR; { int utf16 = php_json_ucs2_to_int(s, 2); |