]> granicus.if.org Git - php/commitdiff
Regenerate bison and re2c files in json
authorJakub Zelenka <bukka@php.net>
Sat, 18 Jul 2015 16:41:17 +0000 (17:41 +0100)
committerJakub Zelenka <bukka@php.net>
Sat, 18 Jul 2015 16:41:17 +0000 (17:41 +0100)
ext/json/json_parser.tab.c
ext/json/json_parser.tab.h
ext/json/json_scanner.c
ext/json/php_json_scanner_defs.h

index ad19e4fa109040ea243bc6d3b7b4516a03623099..14ccd77d4e4d2f6f047b1e7dbc4b917e6e39e75b 100644 (file)
@@ -1,19 +1,19 @@
-/* A Bison parser, made by GNU Bison 2.6.5.  */
+/* A Bison parser, made by GNU Bison 3.0.4.  */
 
 /* Bison implementation for Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
-   
+
+   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
@@ -26,7 +26,7 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-   
+
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
@@ -44,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.6.5"
+#define YYBISON_VERSION "3.0.4"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -101,25 +101,23 @@ int json_yydebug = 1;
 
 
 
-
 /* Substitute the variable and function names.  */
 #define yyparse         php_json_yyparse
 #define yylex           php_json_yylex
 #define yyerror         php_json_yyerror
-#define yylval          php_json_yylval
-#define yychar          php_json_yychar
 #define yydebug         php_json_yydebug
 #define yynerrs         php_json_yynerrs
 
+
 /* Copy the first part of user declarations.  */
 
 
 
-# ifndef YY_NULL
+# ifndef YY_NULLPTR
 #  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULL nullptr
+#   define YY_NULLPTR nullptr
 #  else
-#   define YY_NULL 0
+#   define YY_NULLPTR 0
 #  endif
 # endif
 
@@ -133,9 +131,9 @@ int json_yydebug = 1;
 
 /* In a future release of Bison, this section will be replaced
    by #include "json_parser.tab.h".  */
-#ifndef YY_PHP_JSON_YY_HOME_DMITRY_PHP_PHP_MASTER_EXT_JSON_JSON_PARSER_TAB_H_INCLUDED
-# define YY_PHP_JSON_YY_HOME_DMITRY_PHP_PHP_MASTER_EXT_JSON_JSON_PARSER_TAB_H_INCLUDED
-/* Enabling traces.  */
+#ifndef YY_PHP_JSON_YY_HOME_JAKUB_PROG_PHP_MASTER_EXT_JSON_JSON_PARSER_TAB_H_INCLUDED
+# define YY_PHP_JSON_YY_HOME_JAKUB_PROG_PHP_MASTER_EXT_JSON_JSON_PARSER_TAB_H_INCLUDED
+/* Debug traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 0
 #endif
@@ -143,22 +141,21 @@ int json_yydebug = 1;
 extern int php_json_yydebug;
 #endif
 
-/* Tokens.  */
+/* Token type.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     PHP_JSON_T_NUL = 258,
-     PHP_JSON_T_TRUE = 259,
-     PHP_JSON_T_FALSE = 260,
-     PHP_JSON_T_INT = 261,
-     PHP_JSON_T_DOUBLE = 262,
-     PHP_JSON_T_STRING = 263,
-     PHP_JSON_T_ESTRING = 264,
-     PHP_JSON_T_EOI = 265,
-     PHP_JSON_T_ERROR = 266
-   };
+  enum yytokentype
+  {
+    PHP_JSON_T_NUL = 258,
+    PHP_JSON_T_TRUE = 259,
+    PHP_JSON_T_FALSE = 260,
+    PHP_JSON_T_INT = 261,
+    PHP_JSON_T_DOUBLE = 262,
+    PHP_JSON_T_STRING = 263,
+    PHP_JSON_T_ESTRING = 264,
+    PHP_JSON_T_EOI = 265,
+    PHP_JSON_T_ERROR = 266
+  };
 #endif
 /* Tokens.  */
 #define PHP_JSON_T_NUL 258
@@ -171,10 +168,10 @@ extern int php_json_yydebug;
 #define PHP_JSON_T_EOI 265
 #define PHP_JSON_T_ERROR 266
 
-
-
+/* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
+
+union YYSTYPE
 {
 
 
@@ -185,29 +182,18 @@ typedef union YYSTYPE
        } pair;
 
 
+};
 
-} YYSTYPE;
+typedef union YYSTYPE YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 #endif
 
 
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int php_json_yyparse (void *YYPARSE_PARAM);
-#else
-int php_json_yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
+
 int php_json_yyparse (php_json_parser *parser);
-#else
-int php_json_yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
 
-#endif /* !YY_PHP_JSON_YY_HOME_DMITRY_PHP_PHP_MASTER_EXT_JSON_JSON_PARSER_TAB_H_INCLUDED  */
+#endif /* !YY_PHP_JSON_YY_HOME_JAKUB_PROG_PHP_MASTER_EXT_JSON_JSON_PARSER_TAB_H_INCLUDED  */
 
 /* Copy the second part of user declarations.  */
 
@@ -232,7 +218,6 @@ void php_json_parser_array_append(zval *array, zval *zvalue);
 
 
 
-
 #ifdef short
 # undef short
 #endif
@@ -245,11 +230,8 @@ typedef unsigned char yytype_uint8;
 
 #ifdef YYTYPE_INT8
 typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
 #else
-typedef short int yytype_int8;
+typedef signed char yytype_int8;
 #endif
 
 #ifdef YYTYPE_UINT16
@@ -269,8 +251,7 @@ typedef short int yytype_int16;
 #  define YYSIZE_T __SIZE_TYPE__
 # elif defined size_t
 #  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+# elif ! defined YYSIZE_T
 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
 #  define YYSIZE_T size_t
 # else
@@ -292,6 +273,33 @@ typedef short int yytype_int16;
 # endif
 #endif
 
+#ifndef YY_ATTRIBUTE
+# if (defined __GNUC__                                               \
+      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
+     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
+#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
+# else
+#  define YY_ATTRIBUTE(Spec) /* empty */
+# endif
+#endif
+
+#ifndef YY_ATTRIBUTE_PURE
+# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
+#endif
+
+#ifndef YY_ATTRIBUTE_UNUSED
+# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
+#endif
+
+#if !defined _Noreturn \
+     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
+# if defined _MSC_VER && 1200 <= _MSC_VER
+#  define _Noreturn __declspec (noreturn)
+# else
+#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
+# endif
+#endif
+
 /* Suppress unused-variable warnings by "using" E.  */
 #if ! defined lint || defined __GNUC__
 # define YYUSE(E) ((void) (E))
@@ -299,24 +307,26 @@ typedef short int yytype_int16;
 # define YYUSE(E) /* empty */
 #endif
 
-/* Identity function, used to suppress warnings about constant conditions.  */
-#ifndef lint
-# define YYID(N) (N)
-#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int yyi)
+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+    _Pragma ("GCC diagnostic push") \
+    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
+    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
+    _Pragma ("GCC diagnostic pop")
 #else
-static int
-YYID (yyi)
-    int yyi;
+# define YY_INITIAL_VALUE(Value) Value
 #endif
-{
-  return yyi;
-}
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
+#endif
+#ifndef YY_INITIAL_VALUE
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
 #endif
 
+
 #if ! defined yyoverflow || YYERROR_VERBOSE
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
@@ -334,8 +344,7 @@ YYID (yyi)
 #    define alloca _alloca
 #   else
 #    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
 #     ifndef EXIT_SUCCESS
@@ -347,8 +356,8 @@ YYID (yyi)
 # endif
 
 # ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+   /* Pacify GCC's 'empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
 #  ifndef YYSTACK_ALLOC_MAXIMUM
     /* The OS might guarantee only one guard page at the bottom of the stack,
        and a page size can be as small as 4096 bytes.  So we cannot safely
@@ -364,7 +373,7 @@ YYID (yyi)
 #  endif
 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
        && ! ((defined YYMALLOC || defined malloc) \
-            && (defined YYFREE || defined free)))
+             && (defined YYFREE || defined free)))
 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 #   ifndef EXIT_SUCCESS
 #    define EXIT_SUCCESS 0
@@ -372,15 +381,13 @@ YYID (yyi)
 #  endif
 #  ifndef YYMALLOC
 #   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+#   if ! defined malloc && ! defined EXIT_SUCCESS
 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 #  ifndef YYFREE
 #   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+#   if ! defined free && ! defined EXIT_SUCCESS
 void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
@@ -390,7 +397,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
 
 #if (! defined yyoverflow \
      && (! defined __cplusplus \
-        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
 
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
@@ -415,16 +422,16 @@ union yyalloc
    elements in the stack, and YYPTR gives the new location of the
    stack.  Advance YYPTR to a properly aligned location for the next
    stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)                          \
-    do                                                                 \
-      {                                                                        \
-       YYSIZE_T yynewbytes;                                            \
-       YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
-       Stack = &yyptr->Stack_alloc;                                    \
-       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-       yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                        \
-    while (YYID (0))
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
+    do                                                                  \
+      {                                                                 \
+        YYSIZE_T yynewbytes;                                            \
+        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
+        Stack = &yyptr->Stack_alloc;                                    \
+        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+        yyptr += yynewbytes / sizeof (*yyptr);                          \
+      }                                                                 \
+    while (0)
 
 #endif
 
@@ -443,7 +450,7 @@ union yyalloc
           for (yyi = 0; yyi < (Count); yyi++)   \
             (Dst)[yyi] = (Src)[yyi];            \
         }                                       \
-      while (YYID (0))
+      while (0)
 #  endif
 # endif
 #endif /* !YYCOPY_NEEDED */
@@ -459,17 +466,19 @@ union yyalloc
 #define YYNNTS  16
 /* YYNRULES -- Number of rules.  */
 #define YYNRULES  36
-/* YYNRULES -- Number of states.  */
+/* YYNSTATES -- Number of states.  */
 #define YYNSTATES  45
 
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
+   by yylex, with out-of-bounds checking.  */
 #define YYUNDEFTOK  2
 #define YYMAXUTOK   266
 
-#define YYTRANSLATE(YYX)                                               \
+#define YYTRANSLATE(YYX)                                                \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
+   as returned by yylex, without out-of-bounds checking.  */
 static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -502,31 +511,7 @@ static const yytype_uint8 yytranslate[] =
 };
 
 #if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-   YYRHS.  */
-static const yytype_uint8 yyprhs[] =
-{
-       0,     0,     3,     6,     9,    10,    15,    17,    19,    20,
-      22,    24,    28,    31,    35,    38,    39,    44,    46,    48,
-      49,    51,    53,    57,    60,    62,    64,    66,    68,    70,
-      72,    74,    76,    78,    80,    82,    84
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
-static const yytype_int8 yyrhs[] =
-{
-      19,     0,    -1,    32,    10,    -1,    32,    33,    -1,    -1,
-      12,    21,    23,    22,    -1,    13,    -1,    14,    -1,    -1,
-      24,    -1,    25,    -1,    24,    15,    25,    -1,    24,    33,
-      -1,    31,    16,    32,    -1,    31,    33,    -1,    -1,    17,
-      27,    29,    28,    -1,    14,    -1,    13,    -1,    -1,    30,
-      -1,    32,    -1,    30,    15,    32,    -1,    30,    33,    -1,
-       8,    -1,     9,    -1,    20,    -1,    26,    -1,     8,    -1,
-       9,    -1,     6,    -1,     7,    -1,     3,    -1,     4,    -1,
-       5,    -1,    33,    -1,    11,    -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint8 yyrline[] =
 {
        0,    92,    92,    98,   105,   105,   113,   114,   123,   126,
@@ -547,13 +532,13 @@ static const char *const yytname[] =
   "PHP_JSON_T_ERROR", "'{'", "'}'", "']'", "','", "':'", "'['", "$accept",
   "start", "object", "$@1", "object_end", "members", "member", "pair",
   "array", "$@2", "array_end", "elements", "element", "key", "value",
-  "errlex", YY_NULL
+  "errlex", YY_NULLPTR
 };
 #endif
 
 # ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-   token YYLEX-NUM.  */
+/* YYTOKNUM[NUM] -- (External) token number corresponding to the
+   (internal) symbol number NUM (which must be that of a token).  */
 static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
@@ -561,46 +546,18 @@ static const yytype_uint16 yytoknum[] =
 };
 # endif
 
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint8 yyr1[] =
-{
-       0,    18,    19,    19,    21,    20,    22,    22,    23,    23,
-      24,    24,    24,    25,    25,    27,    26,    28,    28,    29,
-      29,    30,    30,    30,    31,    31,    32,    32,    32,    32,
-      32,    32,    32,    32,    32,    32,    33
-};
+#define YYPACT_NINF -18
 
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
-{
-       0,     2,     2,     2,     0,     4,     1,     1,     0,     1,
-       1,     3,     2,     3,     2,     0,     4,     1,     1,     0,
-       1,     1,     3,     2,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1
-};
+#define yypact_value_is_default(Yystate) \
+  (!!((Yystate) == (-18)))
 
-/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
-   Performed when YYTABLE doesn't specify something else to do.  Zero
-   means the default is an error.  */
-static const yytype_uint8 yydefact[] =
-{
-       0,    32,    33,    34,    30,    31,    28,    29,    36,     4,
-      15,     0,    26,    27,     0,    35,     8,    19,     1,     2,
-       3,    24,    25,     0,     9,    10,     0,     0,    20,    21,
-       6,     7,     5,     0,    12,     0,    14,    18,    17,    16,
-       0,    23,    11,    13,    22
-};
+#define YYTABLE_NINF -1
 
-/* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int8 yydefgoto[] =
-{
-      -1,    11,    12,    16,    32,    23,    24,    25,    13,    17,
-      39,    27,    28,    26,    14,    15
-};
+#define yytable_value_is_error(Yytable_value) \
+  0
 
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-#define YYPACT_NINF -18
+  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+     STATE-NUM.  */
 static const yytype_int8 yypact[] =
 {
       -2,   -18,   -18,   -18,   -18,   -18,   -18,   -18,   -18,   -18,
@@ -610,17 +567,35 @@ static const yytype_int8 yypact[] =
       -2,   -18,   -18,   -18,   -18
 };
 
-/* YYPGOTO[NTERM-NUM].  */
+  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+     Performed when YYTABLE does not specify something else to do.  Zero
+     means the default is an error.  */
+static const yytype_uint8 yydefact[] =
+{
+       0,    32,    33,    34,    30,    31,    28,    29,    36,     4,
+      15,     0,    26,    27,     0,    35,     8,    19,     1,     2,
+       3,    24,    25,     0,     9,    10,     0,     0,    20,    21,
+       6,     7,     5,     0,    12,     0,    14,    18,    17,    16,
+       0,    23,    11,    13,    22
+};
+
+  /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int8 yypgoto[] =
 {
      -18,   -18,   -18,   -18,   -18,   -18,   -18,   -11,   -18,   -18,
      -18,   -18,   -18,   -18,   -17,     0
 };
 
-/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
-   positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -1
+  /* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_int8 yydefgoto[] =
+{
+      -1,    11,    12,    16,    32,    23,    24,    25,    13,    17,
+      39,    27,    28,    26,    14,    15
+};
+
+  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
+     positive, shift that token.  If negative, reduce the rule whose
+     number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_uint8 yytable[] =
 {
       29,     1,     2,     3,     4,     5,     6,     7,     8,     8,
@@ -629,12 +604,6 @@ static const yytype_uint8 yytable[] =
       22,    30,    31,    37,    38
 };
 
-#define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-18)))
-
-#define yytable_value_is_error(Yytable_value) \
-  YYID (0)
-
 static const yytype_int8 yycheck[] =
 {
       17,     3,     4,     5,     6,     7,     8,     9,    11,    11,
@@ -643,8 +612,8 @@ static const yytype_int8 yycheck[] =
        9,    13,    14,    13,    14
 };
 
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-   symbol of state STATE-NUM.  */
+  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+     symbol of state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
        0,     3,     4,     5,     6,     7,     8,     9,    11,    12,
@@ -654,30 +623,34 @@ static const yytype_uint8 yystos[] =
       15,    33,    25,    32,    32
 };
 
-#define yyerrok                (yyerrstatus = 0)
-#define yyclearin      (yychar = YYEMPTY)
-#define YYEMPTY                (-2)
-#define YYEOF          0
-
-#define YYACCEPT       goto yyacceptlab
-#define YYABORT                goto yyabortlab
-#define YYERROR                goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror.  This remains here temporarily
-   to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  However,
-   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
-   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
-   discussed.  */
-
-#define YYFAIL         goto yyerrlab
-#if defined YYFAIL
-  /* This is here to suppress warnings from the GCC cpp's
-     -Wunused-macros.  Normally we don't worry about that warning, but
-     some users do, and we want to make it easy for users to remove
-     YYFAIL uses, which will produce warnings from Bison 2.5.  */
-#endif
+  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const yytype_uint8 yyr1[] =
+{
+       0,    18,    19,    19,    21,    20,    22,    22,    23,    23,
+      24,    24,    24,    25,    25,    27,    26,    28,    28,    29,
+      29,    30,    30,    30,    31,    31,    32,    32,    32,    32,
+      32,    32,    32,    32,    32,    32,    33
+};
+
+  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
+static const yytype_uint8 yyr2[] =
+{
+       0,     2,     2,     2,     0,     4,     1,     1,     0,     1,
+       1,     3,     2,     3,     2,     0,     4,     1,     1,     0,
+       1,     1,     3,     2,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1
+};
+
+
+#define yyerrok         (yyerrstatus = 0)
+#define yyclearin       (yychar = YYEMPTY)
+#define YYEMPTY         (-2)
+#define YYEOF           0
+
+#define YYACCEPT        goto yyacceptlab
+#define YYABORT         goto yyabortlab
+#define YYERROR         goto yyerrorlab
+
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
@@ -694,28 +667,16 @@ do                                                              \
   else                                                          \
     {                                                           \
       yyerror (parser, YY_("syntax error: cannot back up")); \
-      YYERROR;                                                 \
-    }                                                          \
-while (YYID (0))
+      YYERROR;                                                  \
+    }                                                           \
+while (0)
 
 /* Error token number */
-#define YYTERROR       1
-#define YYERRCODE      256
-
+#define YYTERROR        1
+#define YYERRCODE       256
 
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
 
 
-/* YYLEX -- calling `yylex' with the right arguments.  */
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (&yylval, YYLEX_PARAM)
-#else
-# define YYLEX yylex (&yylval, parser)
-#endif
-
 /* Enable debugging if requested.  */
 #if YYDEBUG
 
@@ -724,58 +685,47 @@ while (YYID (0))
 #  define YYFPRINTF fprintf
 # endif
 
-# define YYDPRINTF(Args)                       \
-do {                                           \
-  if (yydebug)                                 \
-    YYFPRINTF Args;                            \
-} while (YYID (0))
+# define YYDPRINTF(Args)                        \
+do {                                            \
+  if (yydebug)                                  \
+    YYFPRINTF Args;                             \
+} while (0)
 
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                   \
-do {                                                                     \
-  if (yydebug)                                                           \
-    {                                                                    \
-      YYFPRINTF (stderr, "%s ", Title);                                          \
-      yy_symbol_print (stderr,                                           \
-                 Type, Value, parser); \
-      YYFPRINTF (stderr, "\n");                                                  \
-    }                                                                    \
-} while (YYID (0))
+/* This macro is provided for backward compatibility. */
+#ifndef YY_LOCATION_PRINT
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+#endif
 
 
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
+do {                                                                      \
+  if (yydebug)                                                            \
+    {                                                                     \
+      YYFPRINTF (stderr, "%s ", Title);                                   \
+      yy_symbol_print (stderr,                                            \
+                  Type, Value, parser); \
+      YYFPRINTF (stderr, "\n");                                           \
+    }                                                                     \
+} while (0)
+
+
+/*----------------------------------------.
+| Print this symbol's value on YYOUTPUT.  |
+`----------------------------------------*/
 
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, php_json_parser *parser)
-#else
-static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep, parser)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-    php_json_parser *parser;
-#endif
 {
   FILE *yyo = yyoutput;
   YYUSE (yyo);
+  YYUSE (parser);
   if (!yyvaluep)
     return;
-  YYUSE (parser);
 # ifdef YYPRINT
   if (yytype < YYNTOKENS)
     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
-  YYUSE (yyoutput);
 # endif
-  switch (yytype)
-    {
-      default:
-       break;
-    }
+  YYUSE (yytype);
 }
 
 
@@ -783,23 +733,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, parser)
 | Print this symbol on YYOUTPUT.  |
 `--------------------------------*/
 
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, php_json_parser *parser)
-#else
-static void
-yy_symbol_print (yyoutput, yytype, yyvaluep, parser)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-    php_json_parser *parser;
-#endif
 {
-  if (yytype < YYNTOKENS)
-    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+  YYFPRINTF (yyoutput, "%s %s (",
+             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
 
   yy_symbol_value_print (yyoutput, yytype, yyvaluep, parser);
   YYFPRINTF (yyoutput, ")");
@@ -810,16 +748,8 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, parser)
 | TOP (included).                                                   |
 `------------------------------------------------------------------*/
 
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
-#else
-static void
-yy_stack_print (yybottom, yytop)
-    yytype_int16 *yybottom;
-    yytype_int16 *yytop;
-#endif
 {
   YYFPRINTF (stderr, "Stack now");
   for (; yybottom <= yytop; yybottom++)
@@ -830,50 +760,42 @@ yy_stack_print (yybottom, yytop)
   YYFPRINTF (stderr, "\n");
 }
 
-# define YY_STACK_PRINT(Bottom, Top)                           \
-do {                                                           \
-  if (yydebug)                                                 \
-    yy_stack_print ((Bottom), (Top));                          \
-} while (YYID (0))
+# define YY_STACK_PRINT(Bottom, Top)                            \
+do {                                                            \
+  if (yydebug)                                                  \
+    yy_stack_print ((Bottom), (Top));                           \
+} while (0)
 
 
 /*------------------------------------------------.
 | Report that the YYRULE is going to be reduced.  |
 `------------------------------------------------*/
 
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
-yy_reduce_print (YYSTYPE *yyvsp, int yyrule, php_json_parser *parser)
-#else
-static void
-yy_reduce_print (yyvsp, yyrule, parser)
-    YYSTYPE *yyvsp;
-    int yyrule;
-    php_json_parser *parser;
-#endif
+yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, php_json_parser *parser)
 {
+  unsigned long int yylno = yyrline[yyrule];
   int yynrhs = yyr2[yyrule];
   int yyi;
-  unsigned long int yylno = yyrline[yyrule];
   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-            yyrule - 1, yylno);
+             yyrule - 1, yylno);
   /* The symbols being reduced.  */
   for (yyi = 0; yyi < yynrhs; yyi++)
     {
       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-                      &(yyvsp[(yyi + 1) - (yynrhs)])
-                                      , parser);
+      yy_symbol_print (stderr,
+                       yystos[yyssp[yyi + 1 - yynrhs]],
+                       &(yyvsp[(yyi + 1) - (yynrhs)])
+                                              , parser);
       YYFPRINTF (stderr, "\n");
     }
 }
 
-# define YY_REDUCE_PRINT(Rule)         \
-do {                                   \
-  if (yydebug)                         \
-    yy_reduce_print (yyvsp, Rule, parser); \
-} while (YYID (0))
+# define YY_REDUCE_PRINT(Rule)          \
+do {                                    \
+  if (yydebug)                          \
+    yy_reduce_print (yyssp, yyvsp, Rule, parser); \
+} while (0)
 
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
@@ -887,7 +809,7 @@ int yydebug;
 
 
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef        YYINITDEPTH
+#ifndef YYINITDEPTH
 # define YYINITDEPTH 200
 #endif
 
@@ -910,15 +832,8 @@ int yydebug;
 #   define yystrlen strlen
 #  else
 /* Return the length of YYSTR.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static YYSIZE_T
 yystrlen (const char *yystr)
-#else
-static YYSIZE_T
-yystrlen (yystr)
-    const char *yystr;
-#endif
 {
   YYSIZE_T yylen;
   for (yylen = 0; yystr[yylen]; yylen++)
@@ -934,16 +849,8 @@ yystrlen (yystr)
 #  else
 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    YYDEST.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static char *
 yystpcpy (char *yydest, const char *yysrc)
-#else
-static char *
-yystpcpy (yydest, yysrc)
-    char *yydest;
-    const char *yysrc;
-#endif
 {
   char *yyd = yydest;
   const char *yys = yysrc;
@@ -973,27 +880,27 @@ yytnamerr (char *yyres, const char *yystr)
       char const *yyp = yystr;
 
       for (;;)
-       switch (*++yyp)
-         {
-         case '\'':
-         case ',':
-           goto do_not_strip_quotes;
-
-         case '\\':
-           if (*++yyp != '\\')
-             goto do_not_strip_quotes;
-           /* Fall through.  */
-         default:
-           if (yyres)
-             yyres[yyn] = *yyp;
-           yyn++;
-           break;
-
-         case '"':
-           if (yyres)
-             yyres[yyn] = '\0';
-           return yyn;
-         }
+        switch (*++yyp)
+          {
+          case '\'':
+          case ',':
+            goto do_not_strip_quotes;
+
+          case '\\':
+            if (*++yyp != '\\')
+              goto do_not_strip_quotes;
+            /* Fall through.  */
+          default:
+            if (yyres)
+              yyres[yyn] = *yyp;
+            yyn++;
+            break;
+
+          case '"':
+            if (yyres)
+              yyres[yyn] = '\0';
+            return yyn;
+          }
     do_not_strip_quotes: ;
     }
 
@@ -1016,12 +923,11 @@ static int
 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                 yytype_int16 *yyssp, int yytoken)
 {
-  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
+  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
   YYSIZE_T yysize = yysize0;
-  YYSIZE_T yysize1;
   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
   /* Internationalized format string. */
-  const char *yyformat = YY_NULL;
+  const char *yyformat = YY_NULLPTR;
   /* Arguments of yyformat. */
   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
   /* Number of reported tokens (one for the "unexpected", one per
@@ -1029,10 +935,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
   int yycount = 0;
 
   /* There are many possibilities here to consider:
-     - Assume YYFAIL is not used.  It's too flawed to consider.  See
-       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
-       for details.  YYERROR is fine as it does not invoke this
-       function.
      - If this state is a consistent state with a default action, then
        the only way this function was invoked is if the default action
        is an error action.  In that case, don't check for expected
@@ -1081,11 +983,13 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                     break;
                   }
                 yyarg[yycount++] = yytname[yyx];
-                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
-                if (! (yysize <= yysize1
-                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-                  return 2;
-                yysize = yysize1;
+                {
+                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
+                  if (! (yysize <= yysize1
+                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+                    return 2;
+                  yysize = yysize1;
+                }
               }
         }
     }
@@ -1105,10 +1009,12 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
 # undef YYCASE_
     }
 
-  yysize1 = yysize + yystrlen (yyformat);
-  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-    return 2;
-  yysize = yysize1;
+  {
+    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
+    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+      return 2;
+    yysize = yysize1;
+  }
 
   if (*yymsg_alloc < yysize)
     {
@@ -1145,133 +1051,143 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
 | Release the memory associated to this symbol.  |
 `-----------------------------------------------*/
 
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, php_json_parser *parser)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep, parser)
-    const char *yymsg;
-    int yytype;
-    YYSTYPE *yyvaluep;
-    php_json_parser *parser;
-#endif
 {
   YYUSE (yyvaluep);
   YYUSE (parser);
-
   if (!yymsg)
     yymsg = "Deleting";
   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   switch (yytype)
     {
-      case 3: /* PHP_JSON_T_NUL */
+          case 3: /* PHP_JSON_T_NUL  */
+
+      { zval_dtor(&((*yyvaluep).value)); }
+
+        break;
+
+    case 4: /* PHP_JSON_T_TRUE  */
+
+      { zval_dtor(&((*yyvaluep).value)); }
+
+        break;
+
+    case 5: /* PHP_JSON_T_FALSE  */
+
+      { zval_dtor(&((*yyvaluep).value)); }
+
+        break;
+
+    case 6: /* PHP_JSON_T_INT  */
+
+      { zval_dtor(&((*yyvaluep).value)); }
+
+        break;
+
+    case 7: /* PHP_JSON_T_DOUBLE  */
+
+      { zval_dtor(&((*yyvaluep).value)); }
 
-       { zval_dtor(&((*yyvaluep).value)); };
+        break;
 
-       break;
-      case 4: /* PHP_JSON_T_TRUE */
+    case 8: /* PHP_JSON_T_STRING  */
 
-       { zval_dtor(&((*yyvaluep).value)); };
+      { zval_dtor(&((*yyvaluep).value)); }
 
-       break;
-      case 5: /* PHP_JSON_T_FALSE */
+        break;
 
-       { zval_dtor(&((*yyvaluep).value)); };
+    case 9: /* PHP_JSON_T_ESTRING  */
 
-       break;
-      case 6: /* PHP_JSON_T_INT */
+      { zval_dtor(&((*yyvaluep).value)); }
 
-       { zval_dtor(&((*yyvaluep).value)); };
+        break;
 
-       break;
-      case 7: /* PHP_JSON_T_DOUBLE */
+    case 10: /* PHP_JSON_T_EOI  */
 
-       { zval_dtor(&((*yyvaluep).value)); };
+      { zval_dtor(&((*yyvaluep).value)); }
 
-       break;
-      case 8: /* PHP_JSON_T_STRING */
+        break;
 
-       { zval_dtor(&((*yyvaluep).value)); };
+    case 11: /* PHP_JSON_T_ERROR  */
 
-       break;
-      case 9: /* PHP_JSON_T_ESTRING */
+      { zval_dtor(&((*yyvaluep).value)); }
 
-       { zval_dtor(&((*yyvaluep).value)); };
+        break;
 
-       break;
-      case 10: /* PHP_JSON_T_EOI */
+    case 19: /* start  */
 
-       { zval_dtor(&((*yyvaluep).value)); };
+      { zval_dtor(&((*yyvaluep).value)); }
 
-       break;
-      case 11: /* PHP_JSON_T_ERROR */
+        break;
 
-       { zval_dtor(&((*yyvaluep).value)); };
+    case 20: /* object  */
 
-       break;
-      case 19: /* start */
+      { zval_dtor(&((*yyvaluep).value)); }
 
-       { zval_dtor(&((*yyvaluep).value)); };
+        break;
 
-       break;
-      case 20: /* object */
+    case 23: /* members  */
 
-       { zval_dtor(&((*yyvaluep).value)); };
+      { zval_dtor(&((*yyvaluep).value)); }
 
-       break;
-      case 23: /* members */
+        break;
 
-       { zval_dtor(&((*yyvaluep).value)); };
+    case 24: /* member  */
 
-       break;
-      case 24: /* member */
+      { zval_dtor(&((*yyvaluep).value)); }
 
-       { zval_dtor(&((*yyvaluep).value)); };
+        break;
 
-       break;
-      case 25: /* pair */
+    case 25: /* pair  */
 
-       { zend_string_release(((*yyvaluep).pair).key); zval_dtor(&((*yyvaluep).pair).val); };
+      { zend_string_release(((*yyvaluep).pair).key); zval_dtor(&((*yyvaluep).pair).val); }
 
-       break;
-      case 26: /* array */
+        break;
 
-       { zval_dtor(&((*yyvaluep).value)); };
+    case 26: /* array  */
 
-       break;
-      case 29: /* elements */
+      { zval_dtor(&((*yyvaluep).value)); }
 
-       { zval_dtor(&((*yyvaluep).value)); };
+        break;
 
-       break;
-      case 30: /* element */
+    case 29: /* elements  */
 
-       { zval_dtor(&((*yyvaluep).value)); };
+      { zval_dtor(&((*yyvaluep).value)); }
 
-       break;
-      case 31: /* key */
+        break;
 
-       { zval_dtor(&((*yyvaluep).value)); };
+    case 30: /* element  */
 
-       break;
-      case 32: /* value */
+      { zval_dtor(&((*yyvaluep).value)); }
 
-       { zval_dtor(&((*yyvaluep).value)); };
+        break;
 
-       break;
-      case 33: /* errlex */
+    case 31: /* key  */
 
-       { zval_dtor(&((*yyvaluep).value)); };
+      { zval_dtor(&((*yyvaluep).value)); }
+
+        break;
+
+    case 32: /* value  */
+
+      { zval_dtor(&((*yyvaluep).value)); }
+
+        break;
+
+    case 33: /* errlex  */
+
+      { zval_dtor(&((*yyvaluep).value)); }
+
+        break;
 
-       break;
 
       default:
-       break;
+        break;
     }
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
 
 
@@ -1281,56 +1197,18 @@ yydestruct (yymsg, yytype, yyvaluep, parser)
 | yyparse.  |
 `----------*/
 
-#ifdef YYPARSE_PARAM
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void *YYPARSE_PARAM)
-#else
-int
-yyparse (YYPARSE_PARAM)
-    void *YYPARSE_PARAM;
-#endif
-#else /* ! YYPARSE_PARAM */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 int
 yyparse (php_json_parser *parser)
-#else
-int
-yyparse (parser)
-    php_json_parser *parser;
-#endif
-#endif
 {
 /* The lookahead symbol.  */
 int yychar;
 
 
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
-    _Pragma ("GCC diagnostic push") \
-    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
-    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
-    _Pragma ("GCC diagnostic pop")
-#else
+/* The semantic value of the lookahead symbol.  */
 /* Default value used for initialization, for pacifying older GCCs
    or non-GCC compilers.  */
-static YYSTYPE yyval_default;
-# define YY_INITIAL_VALUE(Value) = Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
-/* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
+YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
+YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
 
     /* Number of syntax errors so far.  */
     int yynerrs;
@@ -1340,8 +1218,8 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
     int yyerrstatus;
 
     /* The stacks and their tools:
-       `yyss': related to states.
-       `yyvs': related to semantic values.
+       'yyss': related to states.
+       'yyvs': related to semantic values.
 
        Refer to the stacks through separate pointers, to allow yyoverflow
        to reallocate them elsewhere.  */
@@ -1409,23 +1287,23 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
 
 #ifdef yyoverflow
       {
-       /* Give user a chance to reallocate the stack.  Use copies of
-          these so that the &'s don't force the real ones into
-          memory.  */
-       YYSTYPE *yyvs1 = yyvs;
-       yytype_int16 *yyss1 = yyss;
-
-       /* Each stack pointer address is followed by the size of the
-          data in use in that stack, in bytes.  This used to be a
-          conditional around just the two extra args, but that might
-          be undefined if yyoverflow is a macro.  */
-       yyoverflow (YY_("memory exhausted"),
-                   &yyss1, yysize * sizeof (*yyssp),
-                   &yyvs1, yysize * sizeof (*yyvsp),
-                   &yystacksize);
-
-       yyss = yyss1;
-       yyvs = yyvs1;
+        /* Give user a chance to reallocate the stack.  Use copies of
+           these so that the &'s don't force the real ones into
+           memory.  */
+        YYSTYPE *yyvs1 = yyvs;
+        yytype_int16 *yyss1 = yyss;
+
+        /* Each stack pointer address is followed by the size of the
+           data in use in that stack, in bytes.  This used to be a
+           conditional around just the two extra args, but that might
+           be undefined if yyoverflow is a macro.  */
+        yyoverflow (YY_("memory exhausted"),
+                    &yyss1, yysize * sizeof (*yyssp),
+                    &yyvs1, yysize * sizeof (*yyvsp),
+                    &yystacksize);
+
+        yyss = yyss1;
+        yyvs = yyvs1;
       }
 #else /* no yyoverflow */
 # ifndef YYSTACK_RELOCATE
@@ -1433,22 +1311,22 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
 # else
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
-       goto yyexhaustedlab;
+        goto yyexhaustedlab;
       yystacksize *= 2;
       if (YYMAXDEPTH < yystacksize)
-       yystacksize = YYMAXDEPTH;
+        yystacksize = YYMAXDEPTH;
 
       {
-       yytype_int16 *yyss1 = yyss;
-       union yyalloc *yyptr =
-         (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-       if (! yyptr)
-         goto yyexhaustedlab;
-       YYSTACK_RELOCATE (yyss_alloc, yyss);
-       YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+        yytype_int16 *yyss1 = yyss;
+        union yyalloc *yyptr =
+          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+        if (! yyptr)
+          goto yyexhaustedlab;
+        YYSTACK_RELOCATE (yyss_alloc, yyss);
+        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 #  undef YYSTACK_RELOCATE
-       if (yyss1 != yyssa)
-         YYSTACK_FREE (yyss1);
+        if (yyss1 != yyssa)
+          YYSTACK_FREE (yyss1);
       }
 # endif
 #endif /* no yyoverflow */
@@ -1457,10 +1335,10 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
       yyvsp = yyvs + yysize - 1;
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-                 (unsigned long int) yystacksize));
+                  (unsigned long int) yystacksize));
 
       if (yyss + yystacksize - 1 <= yyssp)
-       YYABORT;
+        YYABORT;
     }
 
   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
@@ -1489,7 +1367,7 @@ yybackup:
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = YYLEX;
+      yychar = yylex (&yylval, parser);
     }
 
   if (yychar <= YYEOF)
@@ -1554,7 +1432,7 @@ yyreduce:
   yylen = yyr2[yyn];
 
   /* If YYLEN is nonzero, implement the default value of the action:
-     `$$ = $1'.
+     '$$ = $1'.
 
      Otherwise, the following line sets YYVAL to garbage.
      This behavior is undocumented and Bison
@@ -1570,30 +1448,34 @@ yyreduce:
         case 2:
 
     {
-                               ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[(1) - (2)].value));
-                               ZVAL_COPY_VALUE(parser->return_value, &(yyvsp[(1) - (2)].value));
-                               PHP_JSON_USE((yyvsp[(2) - (2)].value)); YYACCEPT;
+                               ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-1].value));
+                               ZVAL_COPY_VALUE(parser->return_value, &(yyvsp[-1].value));
+                               PHP_JSON_USE((yyvsp[0].value)); YYACCEPT;
                        }
+
     break;
 
   case 3:
 
     {
-                               PHP_JSON_USE_2((yyval.value), (yyvsp[(1) - (2)].value), (yyvsp[(2) - (2)].value));
+                               PHP_JSON_USE_2((yyval.value), (yyvsp[-1].value), (yyvsp[0].value));
                        }
+
     break;
 
   case 4:
 
     { PHP_JSON_DEPTH_INC; }
+
     break;
 
   case 5:
 
     {
                                PHP_JSON_DEPTH_DEC;
-                               (yyval.value) = (yyvsp[(3) - (4)].value);
+                               (yyval.value) = (yyvsp[-1].value);
                        }
+
     break;
 
   case 7:
@@ -1602,6 +1484,7 @@ yyreduce:
                                parser->scanner.errcode = PHP_JSON_ERROR_STATE_MISMATCH;
                                YYERROR;
                        }
+
     break;
 
   case 8:
@@ -1609,59 +1492,67 @@ yyreduce:
     {
                                php_json_parser_object_init(parser, &(yyval.value));
                        }
+
     break;
 
   case 10:
 
     {
                                php_json_parser_object_init(parser, &(yyval.value));
-                               if (php_json_parser_object_update(parser, &(yyval.value), (yyvsp[(1) - (1)].pair).key, &(yyvsp[(1) - (1)].pair).val) == FAILURE)
+                               if (php_json_parser_object_update(parser, &(yyval.value), (yyvsp[0].pair).key, &(yyvsp[0].pair).val) == FAILURE)
                                        YYERROR;
                        }
+
     break;
 
   case 11:
 
     {
-                               if (php_json_parser_object_update(parser, &(yyvsp[(1) - (3)].value), (yyvsp[(3) - (3)].pair).key, &(yyvsp[(3) - (3)].pair).val) == FAILURE)
+                               if (php_json_parser_object_update(parser, &(yyvsp[-2].value), (yyvsp[0].pair).key, &(yyvsp[0].pair).val) == FAILURE)
                                        YYERROR;
-                               ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[(1) - (3)].value));
+                               ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-2].value));
                        }
+
     break;
 
   case 12:
 
     {
-                               PHP_JSON_USE_2((yyval.value), (yyvsp[(1) - (2)].value), (yyvsp[(2) - (2)].value));
+                               PHP_JSON_USE_2((yyval.value), (yyvsp[-1].value), (yyvsp[0].value));
                        }
+
     break;
 
   case 13:
 
     {
-                               (yyval.pair).key = Z_STR((yyvsp[(1) - (3)].value));
-                               ZVAL_COPY_VALUE(&(yyval.pair).val, &(yyvsp[(3) - (3)].value));
+                               (yyval.pair).key = Z_STR((yyvsp[-2].value));
+                               ZVAL_COPY_VALUE(&(yyval.pair).val, &(yyvsp[0].value));
                        }
+
     break;
 
   case 14:
 
     {
-                               PHP_JSON_USE_2((yyval.pair), (yyvsp[(1) - (2)].value), (yyvsp[(2) - (2)].value));
+                               PHP_JSON_USE_2((yyval.pair), (yyvsp[-1].value), (yyvsp[0].value));
                        }
+
     break;
 
   case 15:
 
     { PHP_JSON_DEPTH_INC; }
+
     break;
 
   case 16:
 
     {
                                PHP_JSON_DEPTH_DEC;
-                               ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[(3) - (4)].value));
+                               ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-1].value));
                        }
+
     break;
 
   case 18:
@@ -1670,6 +1561,7 @@ yyreduce:
                                parser->scanner.errcode = PHP_JSON_ERROR_STATE_MISMATCH;
                                YYERROR;
                        }
+
     break;
 
   case 19:
@@ -1677,37 +1569,42 @@ yyreduce:
     {
                                php_json_parser_array_init(&(yyval.value));
                        }
+
     break;
 
   case 21:
 
     {
                                php_json_parser_array_init(&(yyval.value));
-                               php_json_parser_array_append(&(yyval.value), &(yyvsp[(1) - (1)].value));
+                               php_json_parser_array_append(&(yyval.value), &(yyvsp[0].value));
                        }
+
     break;
 
   case 22:
 
     {
-                               php_json_parser_array_append(&(yyvsp[(1) - (3)].value), &(yyvsp[(3) - (3)].value));
-                               ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[(1) - (3)].value));
+                               php_json_parser_array_append(&(yyvsp[-2].value), &(yyvsp[0].value));
+                               ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-2].value));
                        }
+
     break;
 
   case 23:
 
     {
-                               PHP_JSON_USE_2((yyval.value), (yyvsp[(1) - (2)].value), (yyvsp[(2) - (2)].value));
+                               PHP_JSON_USE_2((yyval.value), (yyvsp[-1].value), (yyvsp[0].value));
                        }
+
     break;
 
   case 36:
 
     {
-                               PHP_JSON_USE_1((yyval.value), (yyvsp[(1) - (1)].value));
+                               PHP_JSON_USE_1((yyval.value), (yyvsp[0].value));
                                YYERROR;
                        }
+
     break;
 
 
@@ -1733,7 +1630,7 @@ yyreduce:
 
   *++yyvsp = yyval;
 
-  /* Now `shift' the result of the reduction.  Determine what state
+  /* Now 'shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
      number reduced by.  */
 
@@ -1748,9 +1645,9 @@ yyreduce:
   goto yynewstate;
 
 
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
+/*--------------------------------------.
+| yyerrlab -- here on detecting error |
+`--------------------------------------*/
 yyerrlab:
   /* Make sure we have latest lookahead translation.  See comments at
      user semantic actions for why this is necessary.  */
@@ -1801,20 +1698,20 @@ yyerrlab:
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
-        error, discard it.  */
+         error, discard it.  */
 
       if (yychar <= YYEOF)
-       {
-         /* Return failure if at end of input.  */
-         if (yychar == YYEOF)
-           YYABORT;
-       }
+        {
+          /* Return failure if at end of input.  */
+          if (yychar == YYEOF)
+            YYABORT;
+        }
       else
-       {
-         yydestruct ("Error: discarding",
-                     yytoken, &yylval, parser);
-         yychar = YYEMPTY;
-       }
+        {
+          yydestruct ("Error: discarding",
+                      yytoken, &yylval, parser);
+          yychar = YYEMPTY;
+        }
     }
 
   /* Else will try to reuse lookahead token after shifting the error
@@ -1833,7 +1730,7 @@ yyerrorlab:
   if (/*CONSTCOND*/ 0)
      goto yyerrorlab;
 
-  /* Do not reclaim the symbols of the rule which action triggered
+  /* Do not reclaim the symbols of the rule whose action triggered
      this YYERROR.  */
   YYPOPSTACK (yylen);
   yylen = 0;
@@ -1846,29 +1743,29 @@ yyerrorlab:
 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
 `-------------------------------------------------------------*/
 yyerrlab1:
-  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
+  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
 
   for (;;)
     {
       yyn = yypact[yystate];
       if (!yypact_value_is_default (yyn))
-       {
-         yyn += YYTERROR;
-         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-           {
-             yyn = yytable[yyn];
-             if (0 < yyn)
-               break;
-           }
-       }
+        {
+          yyn += YYTERROR;
+          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+            {
+              yyn = yytable[yyn];
+              if (0 < yyn)
+                break;
+            }
+        }
 
       /* Pop the current state because it cannot handle the error token.  */
       if (yyssp == yyss)
-       YYABORT;
+        YYABORT;
 
 
       yydestruct ("Error: popping",
-                 yystos[yystate], yyvsp, parser);
+                  yystos[yystate], yyvsp, parser);
       YYPOPSTACK (1);
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
@@ -1919,14 +1816,14 @@ yyreturn:
       yydestruct ("Cleanup: discarding lookahead",
                   yytoken, &yylval, parser);
     }
-  /* Do not reclaim the symbols of the rule which action triggered
+  /* Do not reclaim the symbols of the rule whose action triggered
      this YYABORT or YYACCEPT.  */
   YYPOPSTACK (yylen);
   YY_STACK_PRINT (yyss, yyssp);
   while (yyssp != yyss)
     {
       yydestruct ("Cleanup: popping",
-                 yystos[*yyssp], yyvsp, parser);
+                  yystos[*yyssp], yyvsp, parser);
       YYPOPSTACK (1);
     }
 #ifndef yyoverflow
@@ -1937,12 +1834,9 @@ yyreturn:
   if (yymsg != yymsgbuf)
     YYSTACK_FREE (yymsg);
 #endif
-  /* Make sure YYID is used.  */
-  return YYID (yyresult);
+  return yyresult;
 }
 
-
-
  /* Functions */
 
 void php_json_parser_init(php_json_parser *parser, zval *return_value, char *str, size_t str_len, int options, int max_depth)
index 20651ce8fbca2c2312acc92794cc5f1aa2d7d770..56bc2c40c970347432b570668c1a40c5bb417e67 100644 (file)
@@ -1,19 +1,19 @@
-/* A Bison parser, made by GNU Bison 2.6.5.  */
+/* A Bison parser, made by GNU Bison 3.0.4.  */
 
 /* Bison interface for Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
-   
+
+   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-   
+
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
-#ifndef YY_PHP_JSON_YY_HOME_DMITRY_PHP_PHP_MASTER_EXT_JSON_JSON_PARSER_TAB_H_INCLUDED
-# define YY_PHP_JSON_YY_HOME_DMITRY_PHP_PHP_MASTER_EXT_JSON_JSON_PARSER_TAB_H_INCLUDED
-/* Enabling traces.  */
+#ifndef YY_PHP_JSON_YY_HOME_JAKUB_PROG_PHP_MASTER_EXT_JSON_JSON_PARSER_TAB_H_INCLUDED
+# define YY_PHP_JSON_YY_HOME_JAKUB_PROG_PHP_MASTER_EXT_JSON_JSON_PARSER_TAB_H_INCLUDED
+/* Debug traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 0
 #endif
 extern int php_json_yydebug;
 #endif
 
-/* Tokens.  */
+/* Token type.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     PHP_JSON_T_NUL = 258,
-     PHP_JSON_T_TRUE = 259,
-     PHP_JSON_T_FALSE = 260,
-     PHP_JSON_T_INT = 261,
-     PHP_JSON_T_DOUBLE = 262,
-     PHP_JSON_T_STRING = 263,
-     PHP_JSON_T_ESTRING = 264,
-     PHP_JSON_T_EOI = 265,
-     PHP_JSON_T_ERROR = 266
-   };
+  enum yytokentype
+  {
+    PHP_JSON_T_NUL = 258,
+    PHP_JSON_T_TRUE = 259,
+    PHP_JSON_T_FALSE = 260,
+    PHP_JSON_T_INT = 261,
+    PHP_JSON_T_DOUBLE = 262,
+    PHP_JSON_T_STRING = 263,
+    PHP_JSON_T_ESTRING = 264,
+    PHP_JSON_T_EOI = 265,
+    PHP_JSON_T_ERROR = 266
+  };
 #endif
 /* Tokens.  */
 #define PHP_JSON_T_NUL 258
@@ -68,10 +67,10 @@ extern int php_json_yydebug;
 #define PHP_JSON_T_EOI 265
 #define PHP_JSON_T_ERROR 266
 
-
-
+/* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
+
+union YYSTYPE
 {
 
 
@@ -82,26 +81,15 @@ typedef union YYSTYPE
        } pair;
 
 
+};
 
-} YYSTYPE;
+typedef union YYSTYPE YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 #endif
 
 
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int php_json_yyparse (void *YYPARSE_PARAM);
-#else
-int php_json_yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
+
 int php_json_yyparse (php_json_parser *parser);
-#else
-int php_json_yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
 
-#endif /* !YY_PHP_JSON_YY_HOME_DMITRY_PHP_PHP_MASTER_EXT_JSON_JSON_PARSER_TAB_H_INCLUDED  */
+#endif /* !YY_PHP_JSON_YY_HOME_JAKUB_PROG_PHP_MASTER_EXT_JSON_JSON_PARSER_TAB_H_INCLUDED  */
index 7e8ee8b9332a9769895f5091140ff8bfdaf982fb..8c7cad7c646da5c6fb91447ab574d55e942ea2aa 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 */
+/* Generated by re2c 0.14.3 */
 /*
   +----------------------------------------------------------------------+
   | PHP Version 7                                                        |
@@ -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);
index b3867433a7c90e0b7e3bb6f677d878a6f0f6b865..a75e766a65a3f84053e45b43ee742832a336e0b3 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 */
+/* Generated by re2c 0.14.3 */
 
 enum YYCONDTYPE {
        yycJS,