52 #define YYBISON_VERSION "3.6.4"
55 #define YYSKELETON_NAME "yacc.c"
68 #define yyparse yyjsonparse
69 #define yylex yyjsonlex
70 #define yyerror yyjsonerror
71 #define yydebug yyjsondebug
72 #define yynerrs yyjsonnerrs
73 #define yylval yyjsonlval
74 #define yychar yyjsonchar
81 #pragma warning(disable:4242)
83 #pragma warning(disable:4244)
85 #pragma warning(disable:4365)
87 #pragma warning(disable:4065)
89 #pragma warning(disable:4702)
111 for(
char *p=
yyjsontext+1; *p!=
'"' && *p!=0; p++)
118 case '"': result+=
'"';
break;
119 case '\\': result+=
'\\';
break;
120 case '/': result+=
'/';
break;
121 case 'b': result+=
'\b';
break;
122 case 'f': result+=
'\f';
break;
123 case 'n': result+=
'\n';
break;
124 case 'r': result+=
'\r';
break;
125 case 't': result+=
'\t';
break;
130 char *last_hex_digit = p + 4;
131 assert(last_hex_digit <
yyjsontext + len - 1);
132 std::string hex(++p, 4);
159 #line 160 "json_y.tab.cpp"
163 # define YY_CAST(Type, Val) static_cast<Type> (Val)
164 # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
166 # define YY_CAST(Type, Val) ((Type) (Val))
167 # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
171 # if defined __cplusplus
172 # if 201103L <= __cplusplus
173 # define YY_NULLPTR nullptr
175 # define YY_NULLPTR 0
178 # define YY_NULLPTR ((void*)0)
184 #ifndef YY_YYJSON_JSON_Y_TAB_H_INCLUDED
185 # define YY_YYJSON_JSON_Y_TAB_H_INCLUDED
191 extern int yyjsondebug;
213 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
215 # define YYSTYPE_IS_TRIVIAL 1
216 # define YYSTYPE_IS_DECLARED 1
271 #ifndef __PTRDIFF_MAX__
273 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
284 #ifdef __INT_LEAST8_MAX__
286 #elif defined YY_STDINT_H
292 #ifdef __INT_LEAST16_MAX__
294 #elif defined YY_STDINT_H
300 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
302 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
303 && UINT_LEAST8_MAX <= INT_MAX)
305 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
311 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
313 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
314 && UINT_LEAST16_MAX <= INT_MAX)
316 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
323 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
324 # define YYPTRDIFF_T __PTRDIFF_TYPE__
325 # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
326 # elif defined PTRDIFF_MAX
330 # define YYPTRDIFF_T ptrdiff_t
331 # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
333 # define YYPTRDIFF_T long
334 # define YYPTRDIFF_MAXIMUM LONG_MAX
339 # ifdef __SIZE_TYPE__
340 # define YYSIZE_T __SIZE_TYPE__
341 # elif defined size_t
342 # define YYSIZE_T size_t
343 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
345 # define YYSIZE_T size_t
347 # define YYSIZE_T unsigned
351 #define YYSIZE_MAXIMUM \
352 YY_CAST (YYPTRDIFF_T, \
353 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
354 ? YYPTRDIFF_MAXIMUM \
355 : YY_CAST (YYSIZE_T, -1)))
357 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
367 # if defined YYENABLE_NLS && YYENABLE_NLS
369 # include <libintl.h>
370 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
374 # define YY_(Msgid) Msgid
379 #ifndef YY_ATTRIBUTE_PURE
380 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
381 # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
383 # define YY_ATTRIBUTE_PURE
387 #ifndef YY_ATTRIBUTE_UNUSED
388 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
389 # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
391 # define YY_ATTRIBUTE_UNUSED
396 #if ! defined lint || defined __GNUC__
397 # define YYUSE(E) ((void) (E))
402 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
404 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
405 _Pragma ("GCC diagnostic push") \
406 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
407 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
408 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
409 _Pragma ("GCC diagnostic pop")
411 # define YY_INITIAL_VALUE(Value) Value
413 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
414 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
415 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
417 #ifndef YY_INITIAL_VALUE
418 # define YY_INITIAL_VALUE(Value)
421 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
422 # define YY_IGNORE_USELESS_CAST_BEGIN \
423 _Pragma ("GCC diagnostic push") \
424 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
425 # define YY_IGNORE_USELESS_CAST_END \
426 _Pragma ("GCC diagnostic pop")
428 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
429 # define YY_IGNORE_USELESS_CAST_BEGIN
430 # define YY_IGNORE_USELESS_CAST_END
434 #define YY_ASSERT(E) ((void) (0 && (E)))
436 #if !defined yyoverflow
440 # ifdef YYSTACK_USE_ALLOCA
441 # if YYSTACK_USE_ALLOCA
443 # define YYSTACK_ALLOC __builtin_alloca
444 # elif defined __BUILTIN_VA_ARG_INCR
447 # define YYSTACK_ALLOC __alloca
448 # elif defined _MSC_VER
450 # define alloca _alloca
452 # define YYSTACK_ALLOC alloca
453 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
456 # ifndef EXIT_SUCCESS
457 # define EXIT_SUCCESS 0
464 # ifdef YYSTACK_ALLOC
466 # define YYSTACK_FREE(Ptr) do { ; } while (0)
467 # ifndef YYSTACK_ALLOC_MAXIMUM
472 # define YYSTACK_ALLOC_MAXIMUM 4032
475 # define YYSTACK_ALLOC YYMALLOC
476 # define YYSTACK_FREE YYFREE
477 # ifndef YYSTACK_ALLOC_MAXIMUM
478 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
480 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
481 && ! ((defined YYMALLOC || defined malloc) \
482 && (defined YYFREE || defined free)))
484 # ifndef EXIT_SUCCESS
485 # define EXIT_SUCCESS 0
489 # define YYMALLOC malloc
490 # if ! defined malloc && ! defined EXIT_SUCCESS
496 # if ! defined free && ! defined EXIT_SUCCESS
503 #if (! defined yyoverflow \
504 && (! defined __cplusplus \
505 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
515 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
519 # define YYSTACK_BYTES(N) \
520 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
521 + YYSTACK_GAP_MAXIMUM)
523 # define YYCOPY_NEEDED 1
530 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
533 YYPTRDIFF_T yynewbytes; \
534 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
535 Stack = &yyptr->Stack_alloc; \
536 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
537 yyptr += yynewbytes / YYSIZEOF (*yyptr); \
543 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
547 # if defined __GNUC__ && 1 < __GNUC__
548 # define YYCOPY(Dst, Src, Count) \
549 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
551 # define YYCOPY(Dst, Src, Count) \
555 for (yyi = 0; yyi < (Count); yyi++) \
556 (Dst)[yyi] = (Src)[yyi]; \
577 #define YYMAXUTOK 262
582 #define YYTRANSLATE(YYX) \
583 (0 <= (YYX) && (YYX) <= YYMAXUTOK \
584 ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
591 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
592 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
593 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
594 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
595 2, 2, 2, 2, 10, 2, 2, 2, 2, 2,
596 2, 2, 2, 2, 2, 2, 2, 2, 11, 2,
597 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
598 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
599 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
600 2, 12, 2, 13, 2, 2, 2, 2, 2, 2,
601 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
602 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
603 2, 2, 2, 8, 2, 9, 2, 2, 2, 2,
604 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
605 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
606 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
607 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
608 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
609 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
610 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
611 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
612 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
613 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
614 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
615 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
616 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
624 0, 92, 92, 95, 95, 96, 96, 100, 101, 108,
625 107, 121, 121, 122, 122, 126, 127, 131, 139, 141,
626 143, 144, 145, 147, 149
631 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
640 static const char *
const yytname[] =
642 "\"end of file\"",
"error",
"\"invalid token\"",
"TOK_STRING",
643 "TOK_NUMBER",
"TOK_TRUE",
"TOK_FALSE",
"TOK_NULL",
"'{'",
"'}'",
"','",
644 "':'",
"'['",
"']'",
"$accept",
"document",
"object",
"$@1",
"$@2",
645 "key_value_sequence",
"key_value_pair",
"$@3",
"array",
"$@4",
"$@5",
646 "array_value_sequence",
"array_value",
"value",
YY_NULLPTR
652 return yytname[yysymbol];
661 0, 256, 257, 258, 259, 260, 261, 262, 123, 125,
666 #define YYPACT_NINF (-11)
668 #define yypact_value_is_default(Yyn) \
669 ((Yyn) == YYPACT_NINF)
671 #define YYTABLE_NINF (-12)
673 #define yytable_value_is_error(Yyn) \
680 -2, -11, -11, -11, -11, -11, 5, -6, 11, -11,
681 -11, -11, 6, 13, 7, -2, -11, -11, -11, 4,
682 -11, -11, -1, -11, -11, 8, -11, 13, -2, -11,
691 0, 18, 19, 22, 23, 24, 3, 13, 0, 20,
692 21, 2, 0, 0, 0, 0, 1, 4, 9, 0,
693 7, 12, 0, 15, 17, 0, 6, 0, 0, 14,
700 -11, -11, -11, -11, -11, -11, -10, -11, -11, -11,
707 -1, 8, 9, 12, 13, 19, 20, 25, 10, 14,
716 11, 1, 2, 3, 4, 5, 6, -11, -5, 28,
717 7, 16, 29, 26, 27, 17, 18, 31, 0, 30,
718 21, 32, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 3, 4, 5, 6, 7, 8, 13, 3, 10,
725 12, 0, 13, 9, 10, 9, 3, 27, -1, 11,
726 13, 28, -1, -1, -1, -1, -1, -1, -1, -1,
734 0, 3, 4, 5, 6, 7, 8, 12, 15, 16,
735 22, 27, 17, 18, 23, 24, 0, 9, 3, 19,
736 20, 13, 25, 26, 27, 21, 9, 10, 10, 13,
743 0, 14, 15, 17, 16, 18, 16, 19, 19, 21,
744 20, 23, 22, 24, 22, 25, 25, 26, 27, 27,
751 0, 2, 1, 0, 3, 0, 4, 1, 3, 0,
752 4, 0, 3, 0, 4, 1, 3, 1, 1, 1,
759 #define yyerrok (yyerrstatus = 0)
760 #define yyclearin (yychar = YYEMPTY)
762 #define YYACCEPT goto yyacceptlab
763 #define YYABORT goto yyabortlab
764 #define YYERROR goto yyerrorlab
767 #define YYRECOVERING() (!!yyerrstatus)
769 #define YYBACKUP(Token, Value) \
771 if (yychar == YYEMPTY) \
775 YYPOPSTACK (yylen); \
781 yyerror (YY_("syntax error: cannot back up")); \
788 #define YYERRCODE YYUNDEF
796 # define YYFPRINTF fprintf
799 # define YYDPRINTF(Args) \
806 # ifndef YY_LOCATION_PRINT
807 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
811 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
815 YYFPRINTF (stderr, "%s ", Title); \
816 yy_symbol_print (stderr, \
818 YYFPRINTF (stderr, "\n"); \
828 yy_symbol_value_print (FILE *yyo,
831 FILE *yyoutput = yyo;
837 YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
850 yy_symbol_print (FILE *yyo,
853 YYFPRINTF (yyo,
"%s %s (",
854 yykind <
YYNTOKENS ?
"token" :
"nterm", yysymbol_name (yykind));
856 yy_symbol_value_print (yyo, yykind, yyvaluep);
857 YYFPRINTF (yyo,
")");
868 YYFPRINTF (stderr,
"Stack now");
869 for (; yybottom <= yytop; yybottom++)
871 int yybot = *yybottom;
872 YYFPRINTF (stderr,
" %d", yybot);
874 YYFPRINTF (stderr,
"\n");
877 # define YY_STACK_PRINT(Bottom, Top) \
880 yy_stack_print ((Bottom), (Top)); \
892 int yylno = yyrline[yyrule];
893 int yynrhs =
yyr2[yyrule];
895 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %d):\n",
898 for (yyi = 0; yyi < yynrhs; yyi++)
900 YYFPRINTF (stderr,
" $%d = ", yyi + 1);
901 yy_symbol_print (stderr,
903 &yyvsp[(yyi + 1) - (yynrhs)]);
904 YYFPRINTF (stderr,
"\n");
908 # define YY_REDUCE_PRINT(Rule) \
911 yy_reduce_print (yyssp, yyvsp, Rule); \
918 # define YYDPRINTF(Args) ((void) 0)
919 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
920 # define YY_STACK_PRINT(Bottom, Top)
921 # define YY_REDUCE_PRINT(Rule)
927 # define YYINITDEPTH 200
938 # define YYMAXDEPTH 10000
1018 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1029 yyssp = yyss = yyssa;
1030 yyvsp = yyvs = yyvsa;
1033 YYDPRINTF ((stderr,
"Starting parse\n"));
1052 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
1059 if (yyss + yystacksize - 1 <= yyssp)
1060 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
1061 goto yyexhaustedlab;
1067 # if defined yyoverflow
1079 yyoverflow (
YY_(
"memory exhausted"),
1080 &yyss1, yysize *
YYSIZEOF (*yyssp),
1081 &yyvs1, yysize *
YYSIZEOF (*yyvsp),
1089 goto yyexhaustedlab;
1100 goto yyexhaustedlab;
1103 # undef YYSTACK_RELOCATE
1109 yyssp = yyss + yysize - 1;
1110 yyvsp = yyvs + yysize - 1;
1113 YYDPRINTF ((stderr,
"Stack size increased to %ld\n",
1114 YY_CAST (
long, yystacksize)));
1117 if (yyss + yystacksize - 1 <= yyssp)
1145 YYDPRINTF ((stderr,
"Reading a token\n"));
1153 YYDPRINTF ((stderr,
"Now at end of input.\n"));
1227 yyval = yyvsp[1-yylen];
1236 #line 1237 "json_y.tab.cpp"
1242 #line 1243 "json_y.tab.cpp"
1246 #line 102 "parser.y"
1249 #line 1250 "json_y.tab.cpp"
1253 #line 108 "parser.y"
1258 #line 1259 "json_y.tab.cpp"
1262 #line 113 "parser.y"
1269 #line 1270 "json_y.tab.cpp"
1273 #line 121 "parser.y"
1275 #line 1276 "json_y.tab.cpp"
1279 #line 122 "parser.y"
1281 #line 1282 "json_y.tab.cpp"
1285 #line 132 "parser.y"
1291 #line 1292 "json_y.tab.cpp"
1295 #line 140 "parser.y"
1297 #line 1298 "json_y.tab.cpp"
1301 #line 142 "parser.y"
1303 #line 1304 "json_y.tab.cpp"
1307 #line 146 "parser.y"
1309 #line 1310 "json_y.tab.cpp"
1313 #line 148 "parser.y"
1315 #line 1316 "json_y.tab.cpp"
1319 #line 150 "parser.y"
1321 #line 1322 "json_y.tab.cpp"
1325 #line 1326 "json_y.tab.cpp"
1352 const int yyi =
yypgoto[yylhs] + *yyssp;
1353 yystate = (0 <= yyi && yyi <=
YYLAST &&
yycheck[yyi] == *yyssp
1375 if (yyerrstatus == 3)
1478 #if !defined yyoverflow
1505 while (yyssp != yyss)