47 #define YYBISON_VERSION "3.0.4" 50 #define YYSKELETON_NAME "yacc.c" 65 #line 30 "cp-name-parser.y" 71 #include "safe-ctype.h" 89 #define ALLOC_CHUNK 100 99 static struct demangle_component *
129 static struct demangle_component *
d_qualify (
struct demangle_component *,
int,
132 static struct demangle_component *
d_int_type (
int);
134 static struct demangle_component *
d_unary (
const char *,
135 struct demangle_component *);
136 static struct demangle_component *
d_binary (
const char *,
137 struct demangle_component *,
138 struct demangle_component *);
143 #define QUAL_RESTRICT 2 144 #define QUAL_VOLATILE 4 148 #define INT_CHAR (1 << 0) 149 #define INT_SHORT (1 << 1) 150 #define INT_LONG (1 << 2) 151 #define INT_LLONG (1 << 3) 153 #define INT_SIGNED (1 << 4) 154 #define INT_UNSIGNED (1 << 5) 163 #define yymaxdepth cpname_maxdepth 164 #define yyparse cpname_parse 165 #define yylex cpname_lex 166 #define yyerror cpname_error 167 #define yylval cpname_lval 168 #define yychar cpname_char 169 #define yydebug cpname_debug 170 #define yypact cpname_pact 171 #define yyr1 cpname_r1 172 #define yyr2 cpname_r2 173 #define yydef cpname_def 174 #define yychk cpname_chk 175 #define yypgo cpname_pgo 176 #define yyact cpname_act 177 #define yyexca cpname_exca 178 #define yyerrflag cpname_errflag 179 #define yynerrs cpname_nerrs 180 #define yyps cpname_ps 181 #define yypv cpname_pv 183 #define yy_yys cpname_yys 184 #define yystate cpname_state 185 #define yytmp cpname_tmp 187 #define yy_yyv cpname_yyv 188 #define yyval cpname_val 189 #define yylloc cpname_lloc 190 #define yyreds cpname_reds 191 #define yytoks cpname_toks 192 #define yyname cpname_name 193 #define yyrule cpname_rule 194 #define yylhs cpname_yylhs 195 #define yylen cpname_yylen 196 #define yydefred cpname_yydefred 197 #define yydgoto cpname_yydgoto 198 #define yysindex cpname_yysindex 199 #define yyrindex cpname_yyrindex 200 #define yygindex cpname_yygindex 201 #define yytable cpname_yytable 202 #define yycheck cpname_yycheck 203 #define yyss cpname_yyss 204 #define yysslim cpname_yysslim 205 #define yyssp cpname_yyssp 206 #define yystacksize cpname_yystacksize 207 #define yyvs cpname_yyvs 208 #define yyvsp cpname_yyvsp 211 static int yylex (
void);
212 static void yyerror (
const char *);
222 static struct demangle_component *
223 fill_comp (
enum demangle_component_type d_type,
struct demangle_component *lhs,
224 struct demangle_component *rhs)
226 struct demangle_component *ret =
d_grab ();
229 i = cplus_demangle_fill_component (ret, d_type, lhs, rhs);
235 static struct demangle_component *
238 struct demangle_component *ret =
d_grab ();
241 i = cplus_demangle_fill_operator (ret,
name, args);
247 static struct demangle_component *
250 struct demangle_component *ret =
d_grab ();
253 i = cplus_demangle_fill_dtor (ret, kind,
name);
259 static struct demangle_component *
262 struct demangle_component *ret =
d_grab ();
265 i = cplus_demangle_fill_builtin_type (ret,
name);
271 static struct demangle_component *
274 struct demangle_component *ret =
d_grab ();
277 i = cplus_demangle_fill_name (ret,
name, len);
283 #define d_left(dc) (dc)->u.s_binary.left 284 #define d_right(dc) (dc)->u.s_binary.right 287 #line 288 "cp-name-parser.c" 289 # ifndef YY_NULLPTRPTR 290 # if defined __cplusplus && 201103L <= __cplusplus 291 # define YY_NULLPTRPTR nullptr 293 # define YY_NULLPTRPTR 0 298 #ifdef YYERROR_VERBOSE 299 # undef YYERROR_VERBOSE 300 # define YYERROR_VERBOSE 1 302 # define YYERROR_VERBOSE 0 381 #define COLONCOLON 267 387 #define STATIC_CAST 273 388 #define REINTERPRET_CAST 274 389 #define DYNAMIC_CAST 275 390 #define SIGNED_KEYWORD 276 393 #define INT_KEYWORD 279 394 #define CONST_KEYWORD 280 395 #define VOLATILE_KEYWORD 281 396 #define DOUBLE_KEYWORD 282 401 #define FLOAT_KEYWORD 287 404 #define ASSIGN_MODIFY 290 405 #define TRUEKEYWORD 291 406 #define FALSEKEYWORD 292 407 #define DEMANGLER_SPECIAL 293 408 #define CONSTRUCTION_VTABLE 294 409 #define CONSTRUCTION_IN 295 419 #define INCREMENT 305 420 #define DECREMENT 306 424 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 428 #line 253 "cp-name-parser.y" 430 struct demangle_component *
comp;
432 struct demangle_component *
comp;
433 struct demangle_component **
last;
448 #line 449 "cp-name-parser.c" 452 # define YYSTYPE_IS_TRIVIAL 1 453 # define YYSTYPE_IS_DECLARED 1 465 #line 466 "cp-name-parser.c" 496 # ifdef __SIZE_TYPE__ 497 # define YYSIZE_T __SIZE_TYPE__ 498 # elif defined size_t 499 # define YYSIZE_T size_t 500 # elif ! defined YYSIZE_T 502 # define YYSIZE_T size_t 504 # define YYSIZE_T unsigned int 508 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 511 # if defined YYENABLE_NLS && YYENABLE_NLS 513 # include <libintl.h> 514 # define YY_(Msgid) dgettext ("bison-runtime", Msgid) 518 # define YY_(Msgid) Msgid 523 # if (defined __GNUC__ \ 524 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 525 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 526 # define YY_ATTRIBUTE(Spec) __attribute__(Spec) 528 # define YY_ATTRIBUTE(Spec) 532 #ifndef YY_ATTRIBUTE_PURE 533 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 536 #ifndef YY_ATTRIBUTE_UNUSED 537 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 540 #if !defined _Noreturn \ 541 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 542 # if defined _MSC_VER && 1200 <= _MSC_VER 543 # define _Noreturn __declspec (noreturn) 545 # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 550 #if ! defined lint || defined __GNUC__ 551 # define YYUSE(E) ((void) (E)) 556 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 558 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 559 _Pragma ("GCC diagnostic push") \ 560 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 561 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 562 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 563 _Pragma ("GCC diagnostic pop") 565 # define YY_INITIAL_VALUE(Value) Value 567 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 568 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 569 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 571 #ifndef YY_INITIAL_VALUE 572 # define YY_INITIAL_VALUE(Value) 576 #if ! defined yyoverflow || YYERROR_VERBOSE 580 # ifdef YYSTACK_USE_ALLOCA 581 # if YYSTACK_USE_ALLOCA 583 # define YYSTACK_ALLOC __builtin_alloca 584 # elif defined __BUILTIN_VA_ARG_INCR 587 # define YYSTACK_ALLOC __alloca 588 # elif defined _MSC_VER 589 # define alloca _alloca 591 # define YYSTACK_ALLOC alloca 592 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 595 # ifndef EXIT_SUCCESS 596 # define EXIT_SUCCESS 0 603 # ifdef YYSTACK_ALLOC 605 # define YYSTACK_FREE(Ptr) do { ; } while (0) 606 # ifndef YYSTACK_ALLOC_MAXIMUM 611 # define YYSTACK_ALLOC_MAXIMUM 4032 614 # define YYSTACK_ALLOC YYMALLOC 615 # define YYSTACK_FREE YYFREE 616 # ifndef YYSTACK_ALLOC_MAXIMUM 617 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 619 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 620 && ! ((defined YYMALLOC || defined xmalloc) \ 621 && (defined YYFREE || defined xfree))) 623 # ifndef EXIT_SUCCESS 624 # define EXIT_SUCCESS 0 628 # define YYMALLOC xmalloc 629 # if ! defined xmalloc && ! defined EXIT_SUCCESS 634 # define YYFREE xfree 635 # if ! defined xfree && ! defined EXIT_SUCCESS 643 #if (! defined yyoverflow \ 644 && (! defined __cplusplus \ 645 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 655 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 659 # define YYSTACK_BYTES(N) \ 660 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 661 + YYSTACK_GAP_MAXIMUM) 663 # define YYCOPY_NEEDED 1 670 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 673 YYSIZE_T yynewbytes; \ 674 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 675 Stack = &yyptr->Stack_alloc; \ 676 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 677 yyptr += yynewbytes / sizeof (*yyptr); \ 683 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 687 # if defined __GNUC__ && 1 < __GNUC__ 688 # define YYCOPY(Dst, Src, Count) \ 689 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 691 # define YYCOPY(Dst, Src, Count) \ 695 for (yyi = 0; yyi < (Count); yyi++) \ 696 (Dst)[yyi] = (Src)[yyi]; \ 715 #define YYNSTATES 325 720 #define YYMAXUTOK 307 722 #define YYTRANSLATE(YYX) \ 723 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 729 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
730 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
731 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
732 2, 2, 2, 72, 2, 2, 2, 63, 49, 2,
733 73, 41, 61, 59, 42, 60, 68, 62, 2, 2,
734 2, 2, 2, 2, 2, 2, 2, 2, 74, 2,
735 52, 43, 53, 44, 58, 2, 2, 2, 2, 2,
736 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
737 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
738 2, 69, 2, 70, 48, 2, 2, 2, 2, 2,
739 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
740 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
741 2, 2, 2, 2, 47, 2, 71, 2, 2, 2,
742 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
743 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
744 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
745 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
746 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
747 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
748 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
749 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
750 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
751 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
752 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
753 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
754 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
755 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
756 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
757 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
758 35, 36, 37, 38, 39, 40, 45, 46, 50, 51,
759 54, 55, 56, 57, 64, 65, 66, 67
766 0, 367, 367, 371, 373, 375, 380, 381, 388, 397,
767 400, 404, 407, 426, 428, 432, 438, 444, 450, 456,
768 458, 460, 462, 464, 466, 468, 470, 472, 474, 476,
769 478, 480, 482, 484, 486, 488, 490, 492, 494, 496,
770 498, 500, 502, 504, 506, 508, 510, 512, 520, 525,
771 530, 534, 539, 547, 548, 550, 562, 563, 569, 571,
772 572, 574, 577, 578, 581, 582, 586, 588, 591, 595,
773 600, 604, 613, 617, 620, 631, 632, 636, 638, 640,
774 643, 647, 652, 657, 663, 673, 677, 681, 689, 690,
775 693, 695, 697, 701, 702, 709, 711, 713, 715, 717,
776 719, 723, 724, 728, 730, 732, 734, 736, 738, 740,
777 744, 749, 752, 755, 761, 769, 771, 785, 787, 788,
778 790, 793, 795, 796, 798, 801, 803, 805, 807, 812,
779 815, 820, 827, 831, 842, 848, 866, 869, 877, 879,
780 890, 897, 898, 904, 908, 912, 914, 919, 924, 936,
781 940, 944, 952, 957, 966, 970, 975, 980, 984, 990,
782 996, 999, 1006, 1008, 1013, 1017, 1021, 1028, 1044, 1051,
783 1058, 1077, 1081, 1085, 1089, 1093, 1097, 1101, 1105, 1109,
784 1113, 1117, 1121, 1125, 1129, 1133, 1137, 1141, 1146, 1150,
785 1154, 1161, 1165, 1168, 1177, 1186
789 #if YYDEBUG || YYERROR_VERBOSE || 0 792 static const char *
const yytname[] =
794 "$end",
"error",
"$undefined",
"INT",
"FLOAT",
"NAME",
"STRUCT",
795 "CLASS",
"UNION",
"ENUM",
"SIZEOF",
"UNSIGNED",
"COLONCOLON",
"TEMPLATE",
796 "ERROR",
"NEW",
"DELETE",
"OPERATOR",
"STATIC_CAST",
"REINTERPRET_CAST",
797 "DYNAMIC_CAST",
"SIGNED_KEYWORD",
"LONG",
"SHORT",
"INT_KEYWORD",
798 "CONST_KEYWORD",
"VOLATILE_KEYWORD",
"DOUBLE_KEYWORD",
"BOOL",
799 "ELLIPSIS",
"RESTRICT",
"VOID",
"FLOAT_KEYWORD",
"CHAR",
"WCHAR_T",
800 "ASSIGN_MODIFY",
"TRUEKEYWORD",
"FALSEKEYWORD",
"DEMANGLER_SPECIAL",
801 "CONSTRUCTION_VTABLE",
"CONSTRUCTION_IN",
"')'",
"','",
"'='",
"'?'",
802 "OROR",
"ANDAND",
"'|'",
"'^'",
"'&'",
"EQUAL",
"NOTEQUAL",
"'<'",
"'>'",
803 "LEQ",
"GEQ",
"LSH",
"RSH",
"'@'",
"'+'",
"'-'",
"'*'",
"'/'",
"'%'",
804 "UNARY",
"INCREMENT",
"DECREMENT",
"ARROW",
"'.'",
"'['",
"']'",
"'~'",
805 "'!'",
"'('",
"':'",
"$accept",
"result",
"start",
"start_opt",
806 "function",
"demangler_special",
"oper",
"conversion_op",
807 "conversion_op_name",
"unqualified_name",
"colon_name",
"name",
808 "colon_ext_name",
"colon_ext_only",
"ext_only_name",
"nested_name",
809 "templ",
"template_params",
"template_arg",
"function_args",
810 "function_arglist",
"qualifiers_opt",
"qualifier",
"qualifiers",
811 "int_part",
"int_seq",
"builtin_type",
"ptr_operator",
"array_indicator",
812 "typespec_2",
"abstract_declarator",
"direct_abstract_declarator",
813 "abstract_declarator_fn",
"type",
"declarator",
"direct_declarator",
814 "declarator_1",
"direct_declarator_1",
"exp",
"exp1",
YY_NULLPTRPTR 823 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
824 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
825 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
826 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
827 295, 41, 44, 61, 63, 296, 297, 124, 94, 38,
828 298, 299, 60, 62, 300, 301, 302, 303, 64, 43,
829 45, 42, 47, 37, 304, 305, 306, 307, 46, 91,
834 #define YYPACT_NINF -187 836 #define yypact_value_is_default(Yystate) \ 837 (!!((Yystate) == (-187))) 839 #define YYTABLE_NINF -1 841 #define yytable_value_is_error(Yytable_value) \ 848 833, 39, -187, 42, 540, -187, -12, -187, -187, -187,
849 -187, -187, -187, -187, -187, -187, -187, -187, 833, 833,
850 27, 41, -187, -187, -187, 5, -187, 710, -187, 36,
851 -5, -187, 43, 65, 36, 506, -187, 120, 36, 711,
852 -187, -187, 329, -187, 36, -187, 43, 73, 16, 21,
853 -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
854 -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
855 -187, -187, -187, 34, 30, -187, -187, 64, 115, -187,
856 -187, -187, 83, -187, -187, 329, 39, 833, -187, -187,
857 36, 6, 603, -187, 12, 65, 98, 750, -187, -49,
858 -187, -187, 857, 98, 70, -187, -187, 124, -187, -187,
859 73, 36, 36, -187, -187, -187, 48, 860, 603, -187,
860 -187, -49, -187, 23, 98, 720, -187, -49, -187, -49,
861 -187, -187, 53, 80, 87, 95, -187, -187, 656, 476,
862 476, 476, 428, 10, -187, 780, 325, -187, -187, 79,
863 82, -187, -187, -187, 833, 22, -187, 28, -187, -187,
864 89, -187, 73, 116, 36, 780, 37, 114, 780, 780,
865 123, 70, 36, 124, 833, -187, 161, -187, 166, -187,
866 -187, -187, -187, 36, -187, -187, -187, 50, 729, 168,
867 -187, -187, 780, -187, -187, -187, 169, -187, 979, 979,
868 979, 979, 833, -187, 105, 105, 105, 680, 780, 142,
869 970, 143, 329, -187, -187, 476, 476, 476, 476, 476,
870 476, 476, 476, 476, 476, 476, 476, 476, 476, 476,
871 476, 476, 476, 180, 181, -187, -187, -187, -187, 36,
872 -187, 45, 36, -187, 36, 949, -187, -187, -187, 51,
873 833, -187, 729, -187, 729, 148, -49, 833, 833, 152,
874 138, 141, 144, 154, 833, -187, 476, 476, -187, -187,
875 890, 993, 1015, 1036, 1056, 359, 753, 753, 1069, 1069,
876 1069, 241, 241, 178, 178, 105, 105, 105, -187, -187,
877 -187, -187, -187, -187, 780, -187, 157, -187, -187, -187,
878 -187, -187, -187, -187, 126, 128, 131, -187, 164, 105,
879 325, 476, -187, -187, 471, 471, 471, -187, 325, 188,
880 189, 192, -187, -187, -187
888 0, 59, 97, 0, 0, 96, 99, 100, 95, 92,
889 91, 105, 107, 90, 109, 104, 98, 108, 0, 0,
890 0, 0, 2, 5, 4, 53, 50, 6, 67, 122,
891 0, 64, 0, 61, 93, 0, 101, 103, 118, 141,
892 3, 68, 0, 52, 126, 65, 0, 0, 15, 16,
893 32, 43, 29, 40, 39, 26, 24, 25, 35, 36,
894 30, 31, 37, 38, 33, 34, 19, 20, 21, 22,
895 23, 41, 42, 45, 0, 27, 28, 0, 0, 48,
896 106, 13, 0, 55, 1, 0, 0, 0, 112, 111,
897 88, 0, 0, 11, 0, 0, 6, 136, 135, 138,
898 12, 121, 0, 6, 58, 49, 66, 60, 70, 94,
899 0, 124, 120, 99, 102, 117, 0, 0, 0, 62,
900 56, 150, 63, 0, 6, 129, 142, 131, 8, 151,
901 191, 192, 0, 0, 0, 0, 194, 195, 0, 0,
902 0, 0, 0, 0, 73, 75, 79, 125, 51, 0,
903 0, 44, 47, 46, 0, 0, 7, 0, 110, 89,
904 0, 115, 0, 109, 88, 0, 0, 0, 129, 80,
905 0, 0, 88, 0, 0, 140, 0, 137, 133, 134,
906 10, 69, 71, 128, 123, 119, 57, 0, 129, 157,
907 158, 9, 0, 130, 149, 133, 155, 156, 0, 0,
908 0, 0, 0, 77, 164, 166, 165, 0, 141, 0,
909 160, 0, 0, 72, 76, 0, 0, 0, 0, 0,
910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
911 0, 0, 0, 0, 0, 17, 18, 14, 54, 88,
912 116, 0, 88, 87, 88, 0, 81, 132, 113, 0,
913 0, 127, 0, 148, 129, 0, 144, 0, 0, 0,
914 0, 0, 0, 0, 0, 162, 0, 0, 159, 74,
915 0, 187, 186, 185, 184, 183, 178, 179, 182, 180,
916 181, 176, 177, 174, 175, 171, 172, 173, 188, 189,
917 114, 86, 85, 84, 82, 139, 0, 143, 154, 146,
918 147, 152, 153, 193, 0, 0, 0, 78, 0, 167,
919 161, 0, 83, 145, 0, 0, 0, 163, 190, 0,
926 -187, -187, 25, -66, -187, -187, -187, 3, -187, -20,
927 -187, -1, -32, 15, 1, 0, 150, 149, 31, -187,
928 -25, -156, -187, 234, 205, -187, 213, -17, -98, 196,
929 -18, -16, 158, -129, -106, -187, 134, -187, -6, -186
935 -1, 21, 156, 93, 23, 24, 25, 26, 27, 28,
936 119, 29, 253, 30, 31, 78, 33, 143, 144, 167,
937 96, 158, 34, 35, 36, 37, 38, 168, 98, 39,
938 170, 127, 100, 40, 255, 256, 128, 129, 210, 211
946 32, 179, 44, 46, 45, 103, 43, 121, 243, 160,
947 97, 99, 106, 209, 124, 80, 248, 171, 32, 32,
948 91, 126, 125, 190, 102, 22, 106, 94, 104, 179,
949 175, 197, 83, 104, 111, 105, 146, 180, 120, 123,
950 117, 84, 104, 81, 82, 4, 44, 1, 104, 148,
951 104, 41, 212, 1, 122, 104, 171, 85, 191, 4,
952 4, 9, 10, 213, 212, 117, 13, 117, 102, 259,
953 260, 261, 262, 172, 178, 238, 161, 108, 1, 146,
954 97, 99, 181, 290, 172, 149, 291, 157, 292, 239,
955 150, 42, 166, 121, 20, 151, 189, 94, 172, 20,
956 152, 188, 195, 106, 196, 153, 239, 193, 125, 183,
957 174, 239, 239, 20, 20, 186, 187, 45, 166, 20,
958 104, 20, 42, 154, 120, 123, 198, 214, 319, 320,
959 321, 2, 199, 204, 205, 206, 182, 106, 32, 200,
960 122, 5, 113, 7, 8, 94, 296, 201, 297, 235,
961 193, 246, 236, 16, 32, 244, 245, 242, 300, 240,
962 105, 44, 241, 203, 247, 94, 86, 106, 94, 94,
963 193, 254, 233, 234, 32, 188, 249, 95, 250, 237,
964 257, 258, 107, 266, 268, 288, 289, 120, 123, 298,
965 126, 304, 94, 303, 305, 307, 107, 306, 313, 314,
966 79, 315, 32, 122, 316, 317, 146, 32, 94, 270,
967 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
968 281, 282, 283, 284, 285, 286, 287, 263, 107, 322,
969 323, 299, 265, 324, 155, 254, 193, 254, 145, 230,
970 231, 232, 114, 269, 173, 233, 234, 95, 112, 0,
971 32, 120, 123, 120, 123, 177, 0, 32, 32, 194,
972 309, 310, 0, 101, 32, 0, 0, 122, 109, 122,
973 0, 0, 115, 107, 0, 295, 312, 0, 147, 0,
974 0, 145, 301, 302, 0, 0, 0, 0, 169, 308,
975 0, 0, 0, 0, 94, 95, 0, 0, 169, 0,
976 228, 229, 230, 231, 232, 318, 0, 107, 233, 234,
977 0, 0, 0, 0, 169, 95, 107, 0, 95, 95,
978 0, 0, 0, 0, 159, 0, 95, 0, 0, 0,
979 0, 0, 130, 131, 1, 0, 0, 107, 208, 132,
980 2, 47, 95, 0, 0, 184, 185, 133, 134, 135,
981 5, 6, 7, 8, 9, 10, 11, 12, 95, 13,
982 14, 15, 16, 17, 0, 136, 137, 0, 0, 215,
983 216, 217, 218, 219, 220, 221, 222, 223, 138, 224,
984 225, 226, 227, 0, 228, 229, 230, 231, 232, 139,
985 0, 107, 233, 234, 208, 208, 208, 208, 159, 173,
986 140, 141, 142, 0, 0, 0, 159, 0, 145, 221,
987 222, 223, 0, 224, 225, 226, 227, 251, 228, 229,
988 230, 231, 232, 0, 0, 0, 233, 234, 0, 0,
989 0, 130, 131, 1, 0, 0, 0, 0, 132, 2,
990 47, 294, 0, 0, 95, 0, 133, 134, 135, 5,
991 6, 7, 8, 9, 10, 11, 12, 0, 13, 14,
992 15, 16, 17, 0, 136, 137, 0, 0, 0, 0,
993 0, 0, 0, 159, 130, 131, 159, 207, 159, 130,
994 131, 132, 0, 0, 0, 0, 132, 0, 139, 133,
995 134, 135, 0, 0, 133, 134, 135, 0, 0, 140,
996 141, 142, 0, 0, 0, 0, 0, 136, 137, 0,
997 0, 1, 136, 137, 0, 0, 0, 2, 110, 0,
998 207, 0, 0, 0, 0, 0, 0, 5, 6, 7,
999 8, 139, 0, 11, 12, 0, 139, 14, 15, 16,
1000 17, 0, 140, 141, 142, 1, 0, 140, 141, 142,
1001 0, 2, 47, 0, 0, 48, 49, 0, 0, 0,
1002 0, 5, 6, 7, 8, 9, 10, 11, 12, 0,
1003 13, 14, 15, 16, 17, 50, 0, 0, 0, 0,
1004 0, 0, 51, 52, 0, 53, 54, 55, 56, 57,
1005 58, 59, 60, 61, 62, 63, 64, 65, 0, 66,
1006 67, 68, 69, 70, 0, 71, 72, 73, 1, 74,
1007 0, 75, 76, 77, 2, 162, 0, 0, 0, 0,
1008 0, 0, 0, 0, 5, 6, 7, 8, 9, 10,
1009 11, 12, 0, 13, 163, 15, 16, 17, 0, 0,
1010 0, 0, 0, 0, 164, 0, 0, 0, 0, 88,
1011 0, 0, 89, 0, 0, 0, 0, 0, 0, 0,
1012 0, 1, 0, 0, 90, 0, 0, 2, 3, 0,
1013 0, 0, 91, 4, 0, 0, 165, 5, 6, 7,
1014 8, 9, 10, 11, 12, 1, 13, 14, 15, 16,
1015 17, 2, 3, 0, 18, 19, 0, 4, 0, 0,
1016 0, 5, 6, 7, 8, 9, 10, 11, 12, 0,
1017 13, 14, 15, 16, 17, 86, 1, 0, 18, 19,
1018 0, 0, 87, 116, 0, 1, 0, 20, 117, 202,
1019 0, 0, 116, 0, 1, 0, 0, 117, 0, 0,
1020 0, 116, 0, 0, 0, 0, 117, 0, 0, 0,
1021 0, 20, 0, 264, 0, 86, 88, 88, 0, 89,
1022 89, 0, 176, 0, 0, 0, 88, 0, 0, 89,
1023 0, 90, 90, 0, 0, 88, 0, 0, 89, 91,
1024 91, 90, 20, 92, 118, 86, 0, 0, 0, 91,
1025 90, 20, 176, 192, 0, 0, 88, 0, 91, 89,
1026 20, 0, 252, 0, 0, 223, 0, 224, 225, 226,
1027 227, 90, 228, 229, 230, 231, 232, 0, 0, 91,
1028 233, 234, 0, 92, 0, 0, 88, 0, 0, 89,
1029 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
1030 0, 90, 0, 0, 2, 3, 0, 0, 0, 91,
1031 4, 0, 0, 165, 5, 6, 7, 8, 9, 10,
1032 11, 12, 1, 13, 14, 15, 16, 17, 2, 47,
1033 0, 18, 19, 0, 0, 48, 49, 0, 5, 6,
1034 7, 8, 9, 10, 11, 12, 0, 13, 163, 15,
1035 16, 17, 0, 0, 0, 50, 0, 0, 164, 0,
1036 0, 0, 51, 52, 20, 53, 54, 55, 56, 57,
1037 58, 59, 60, 61, 62, 63, 64, 65, 0, 66,
1038 67, 68, 69, 70, 0, 71, 72, 73, 0, 74,
1039 0, 75, 76, 77, 215, 216, 217, 218, 219, 220,
1040 221, 222, 223, 0, 224, 225, 226, 227, 0, 228,
1041 229, 230, 231, 232, 1, 0, 0, 233, 234, 0,
1042 2, 47, 0, 0, 311, 0, 0, 0, 0, 0,
1043 5, 6, 7, 8, 9, 10, 11, 12, 293, 13,
1044 14, 15, 16, 17, 1, 0, 0, 0, 0, 0,
1045 2, 47, 0, 0, 0, 0, 0, 0, 0, 0,
1046 5, 6, 7, 8, 9, 10, 11, 12, 0, 13,
1047 14, 15, 16, 17, 215, 216, 217, 218, 219, 220,
1048 221, 222, 223, 267, 224, 225, 226, 227, 0, 228,
1049 229, 230, 231, 232, 0, 0, 0, 233, 234, 217,
1050 218, 219, 220, 221, 222, 223, 0, 224, 225, 226,
1051 227, 0, 228, 229, 230, 231, 232, 0, 0, 0,
1052 233, 234, 218, 219, 220, 221, 222, 223, 0, 224,
1053 225, 226, 227, 0, 228, 229, 230, 231, 232, 0,
1054 0, 0, 233, 234, 219, 220, 221, 222, 223, 0,
1055 224, 225, 226, 227, 0, 228, 229, 230, 231, 232,
1056 0, 0, 0, 233, 234, 220, 221, 222, 223, 0,
1057 224, 225, 226, 227, 0, 228, 229, 230, 231, 232,
1058 0, 0, 0, 233, 234, 226, 227, 0, 228, 229,
1059 230, 231, 232, 0, 0, 0, 233, 234
1064 0, 99, 3, 3, 3, 30, 3, 39, 164, 3,
1065 27, 27, 32, 142, 39, 27, 172, 5, 18, 19,
1066 69, 39, 39, 121, 73, 0, 46, 27, 5, 127,
1067 96, 129, 5, 5, 35, 32, 42, 103, 39, 39,
1068 17, 0, 5, 18, 19, 17, 47, 5, 5, 46,
1069 5, 12, 42, 5, 39, 5, 5, 52, 124, 17,
1070 17, 25, 26, 53, 42, 17, 30, 17, 73, 198,
1071 199, 200, 201, 61, 99, 53, 70, 12, 5, 85,
1072 97, 97, 12, 239, 61, 69, 242, 87, 244, 61,
1073 69, 52, 92, 125, 71, 61, 121, 97, 61, 71,
1074 70, 118, 127, 123, 129, 41, 61, 125, 125, 110,
1075 12, 61, 61, 71, 71, 116, 116, 116, 118, 71,
1076 5, 71, 52, 40, 125, 125, 73, 145, 314, 315,
1077 316, 11, 52, 139, 140, 141, 12, 157, 138, 52,
1078 125, 21, 22, 23, 24, 145, 252, 52, 254, 70,
1079 168, 169, 70, 33, 154, 41, 42, 41, 256, 70,
1080 157, 162, 162, 138, 41, 165, 5, 187, 168, 169,
1081 188, 188, 67, 68, 174, 192, 176, 27, 12, 154,
1082 12, 12, 32, 41, 41, 5, 5, 188, 188, 41,
1083 208, 53, 192, 41, 53, 41, 46, 53, 41, 73,
1084 4, 73, 202, 188, 73, 41, 212, 207, 208, 215,
1085 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1086 226, 227, 228, 229, 230, 231, 232, 202, 78, 41,
1087 41, 256, 207, 41, 85, 252, 254, 254, 42, 61,
1088 62, 63, 37, 212, 94, 67, 68, 97, 35, -1,
1089 250, 252, 252, 254, 254, 97, -1, 257, 258, 125,
1090 266, 267, -1, 29, 264, -1, -1, 252, 34, 254,
1091 -1, -1, 38, 123, -1, 250, 294, -1, 44, -1,
1092 -1, 85, 257, 258, -1, -1, -1, -1, 92, 264,
1093 -1, -1, -1, -1, 294, 145, -1, -1, 102, -1,
1094 59, 60, 61, 62, 63, 311, -1, 157, 67, 68,
1095 -1, -1, -1, -1, 118, 165, 166, -1, 168, 169,
1096 -1, -1, -1, -1, 90, -1, 176, -1, -1, -1,
1097 -1, -1, 3, 4, 5, -1, -1, 187, 142, 10,
1098 11, 12, 192, -1, -1, 111, 112, 18, 19, 20,
1099 21, 22, 23, 24, 25, 26, 27, 28, 208, 30,
1100 31, 32, 33, 34, -1, 36, 37, -1, -1, 44,
1101 45, 46, 47, 48, 49, 50, 51, 52, 49, 54,
1102 55, 56, 57, -1, 59, 60, 61, 62, 63, 60,
1103 -1, 241, 67, 68, 198, 199, 200, 201, 164, 249,
1104 71, 72, 73, -1, -1, -1, 172, -1, 212, 50,
1105 51, 52, -1, 54, 55, 56, 57, 183, 59, 60,
1106 61, 62, 63, -1, -1, -1, 67, 68, -1, -1,
1107 -1, 3, 4, 5, -1, -1, -1, -1, 10, 11,
1108 12, 245, -1, -1, 294, -1, 18, 19, 20, 21,
1109 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
1110 32, 33, 34, -1, 36, 37, -1, -1, -1, -1,
1111 -1, -1, -1, 239, 3, 4, 242, 49, 244, 3,
1112 4, 10, -1, -1, -1, -1, 10, -1, 60, 18,
1113 19, 20, -1, -1, 18, 19, 20, -1, -1, 71,
1114 72, 73, -1, -1, -1, -1, -1, 36, 37, -1,
1115 -1, 5, 36, 37, -1, -1, -1, 11, 12, -1,
1116 49, -1, -1, -1, -1, -1, -1, 21, 22, 23,
1117 24, 60, -1, 27, 28, -1, 60, 31, 32, 33,
1118 34, -1, 71, 72, 73, 5, -1, 71, 72, 73,
1119 -1, 11, 12, -1, -1, 15, 16, -1, -1, -1,
1120 -1, 21, 22, 23, 24, 25, 26, 27, 28, -1,
1121 30, 31, 32, 33, 34, 35, -1, -1, -1, -1,
1122 -1, -1, 42, 43, -1, 45, 46, 47, 48, 49,
1123 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
1124 60, 61, 62, 63, -1, 65, 66, 67, 5, 69,
1125 -1, 71, 72, 73, 11, 12, -1, -1, -1, -1,
1126 -1, -1, -1, -1, 21, 22, 23, 24, 25, 26,
1127 27, 28, -1, 30, 31, 32, 33, 34, -1, -1,
1128 -1, -1, -1, -1, 41, -1, -1, -1, -1, 46,
1129 -1, -1, 49, -1, -1, -1, -1, -1, -1, -1,
1130 -1, 5, -1, -1, 61, -1, -1, 11, 12, -1,
1131 -1, -1, 69, 17, -1, -1, 73, 21, 22, 23,
1132 24, 25, 26, 27, 28, 5, 30, 31, 32, 33,
1133 34, 11, 12, -1, 38, 39, -1, 17, -1, -1,
1134 -1, 21, 22, 23, 24, 25, 26, 27, 28, -1,
1135 30, 31, 32, 33, 34, 5, 5, -1, 38, 39,
1136 -1, -1, 12, 12, -1, 5, -1, 71, 17, 73,
1137 -1, -1, 12, -1, 5, -1, -1, 17, -1, -1,
1138 -1, 12, -1, -1, -1, -1, 17, -1, -1, -1,
1139 -1, 71, -1, 73, -1, 5, 46, 46, -1, 49,
1140 49, -1, 12, -1, -1, -1, 46, -1, -1, 49,
1141 -1, 61, 61, -1, -1, 46, -1, -1, 49, 69,
1142 69, 61, 71, 73, 73, 5, -1, -1, -1, 69,
1143 61, 71, 12, 73, -1, -1, 46, -1, 69, 49,
1144 71, -1, 73, -1, -1, 52, -1, 54, 55, 56,
1145 57, 61, 59, 60, 61, 62, 63, -1, -1, 69,
1146 67, 68, -1, 73, -1, -1, 46, -1, -1, 49,
1147 -1, -1, -1, -1, -1, -1, -1, -1, 5, -1,
1148 -1, 61, -1, -1, 11, 12, -1, -1, -1, 69,
1149 17, -1, -1, 73, 21, 22, 23, 24, 25, 26,
1150 27, 28, 5, 30, 31, 32, 33, 34, 11, 12,
1151 -1, 38, 39, -1, -1, 15, 16, -1, 21, 22,
1152 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
1153 33, 34, -1, -1, -1, 35, -1, -1, 41, -1,
1154 -1, -1, 42, 43, 71, 45, 46, 47, 48, 49,
1155 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
1156 60, 61, 62, 63, -1, 65, 66, 67, -1, 69,
1157 -1, 71, 72, 73, 44, 45, 46, 47, 48, 49,
1158 50, 51, 52, -1, 54, 55, 56, 57, -1, 59,
1159 60, 61, 62, 63, 5, -1, -1, 67, 68, -1,
1160 11, 12, -1, -1, 74, -1, -1, -1, -1, -1,
1161 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1162 31, 32, 33, 34, 5, -1, -1, -1, -1, -1,
1163 11, 12, -1, -1, -1, -1, -1, -1, -1, -1,
1164 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
1165 31, 32, 33, 34, 44, 45, 46, 47, 48, 49,
1166 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
1167 60, 61, 62, 63, -1, -1, -1, 67, 68, 46,
1168 47, 48, 49, 50, 51, 52, -1, 54, 55, 56,
1169 57, -1, 59, 60, 61, 62, 63, -1, -1, -1,
1170 67, 68, 47, 48, 49, 50, 51, 52, -1, 54,
1171 55, 56, 57, -1, 59, 60, 61, 62, 63, -1,
1172 -1, -1, 67, 68, 48, 49, 50, 51, 52, -1,
1173 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
1174 -1, -1, -1, 67, 68, 49, 50, 51, 52, -1,
1175 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
1176 -1, -1, -1, 67, 68, 56, 57, -1, 59, 60,
1177 61, 62, 63, -1, -1, -1, 67, 68
1184 0, 5, 11, 12, 17, 21, 22, 23, 24, 25,
1185 26, 27, 28, 30, 31, 32, 33, 34, 38, 39,
1186 71, 76, 77, 79, 80, 81, 82, 83, 84, 86,
1187 88, 89, 90, 91, 97, 98, 99, 100, 101, 104,
1188 108, 12, 52, 82, 86, 89, 90, 12, 15, 16,
1189 35, 42, 43, 45, 46, 47, 48, 49, 50, 51,
1190 52, 53, 54, 55, 56, 57, 59, 60, 61, 62,
1191 63, 65, 66, 67, 69, 71, 72, 73, 90, 104,
1192 27, 77, 77, 5, 0, 52, 5, 12, 46, 49,
1193 61, 69, 73, 78, 90, 91, 95, 102, 103, 106,
1194 107, 98, 73, 95, 5, 82, 84, 91, 12, 98,
1195 12, 86, 101, 22, 99, 98, 12, 17, 73, 85,
1196 86, 87, 88, 90, 95, 102, 105, 106, 111, 112,
1197 3, 4, 10, 18, 19, 20, 36, 37, 49, 60,
1198 71, 72, 73, 92, 93, 104, 113, 98, 82, 69,
1199 69, 61, 70, 41, 40, 92, 77, 90, 96, 98,
1200 3, 70, 12, 31, 41, 73, 90, 94, 102, 104,
1201 105, 5, 61, 91, 12, 78, 12, 107, 95, 103,
1202 78, 12, 12, 86, 98, 98, 86, 90, 102, 95,
1203 103, 78, 73, 105, 111, 95, 95, 103, 73, 52,
1204 52, 52, 73, 77, 113, 113, 113, 49, 104, 108,
1205 113, 114, 42, 53, 105, 44, 45, 46, 47, 48,
1206 49, 50, 51, 52, 54, 55, 56, 57, 59, 60,
1207 61, 62, 63, 67, 68, 70, 70, 77, 53, 61,
1208 70, 90, 41, 96, 41, 42, 105, 41, 96, 90,
1209 12, 98, 73, 87, 102, 109, 110, 12, 12, 108,
1210 108, 108, 108, 77, 73, 77, 41, 53, 41, 93,
1211 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
1212 113, 113, 113, 113, 113, 113, 113, 113, 5, 5,
1213 96, 96, 96, 29, 104, 77, 109, 109, 41, 95,
1214 103, 77, 77, 41, 53, 53, 53, 41, 77, 113,
1215 113, 74, 105, 41, 73, 73, 73, 41, 113, 114,
1216 114, 114, 41, 41, 41
1222 0, 75, 76, 77, 77, 77, 78, 78, 79, 79,
1223 79, 79, 79, 80, 80, 81, 81, 81, 81, 81,
1224 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
1225 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
1226 81, 81, 81, 81, 81, 81, 81, 81, 82, 83,
1227 83, 83, 83, 84, 84, 84, 85, 85, 86, 86,
1228 86, 86, 87, 87, 88, 88, 89, 89, 90, 90,
1229 90, 90, 91, 92, 92, 93, 93, 93, 93, 93,
1230 94, 94, 94, 94, 94, 95, 95, 95, 96, 96,
1231 97, 97, 97, 98, 98, 99, 99, 99, 99, 99,
1232 99, 100, 100, 101, 101, 101, 101, 101, 101, 101,
1233 102, 102, 102, 102, 102, 103, 103, 104, 104, 104,
1234 104, 104, 104, 104, 104, 104, 104, 104, 104, 105,
1235 105, 105, 106, 106, 106, 106, 107, 107, 107, 107,
1236 107, 108, 108, 109, 109, 110, 110, 110, 110, 111,
1237 111, 111, 111, 111, 112, 112, 112, 112, 112, 113,
1238 114, 114, 114, 114, 113, 113, 113, 113, 113, 113,
1239 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
1240 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
1241 113, 113, 113, 113, 113, 113
1247 0, 2, 1, 1, 1, 1, 0, 2, 2, 3,
1248 3, 2, 2, 2, 4, 2, 2, 4, 4, 2,
1249 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1250 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1251 2, 2, 2, 2, 3, 2, 3, 3, 2, 2,
1252 1, 3, 2, 1, 4, 2, 1, 2, 2, 1,
1253 2, 1, 1, 1, 1, 2, 2, 1, 2, 3,
1254 2, 3, 4, 1, 3, 1, 2, 2, 4, 1,
1255 1, 2, 3, 4, 3, 4, 4, 3, 0, 1,
1256 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
1257 1, 1, 2, 1, 1, 1, 2, 1, 1, 1,
1258 2, 1, 1, 3, 4, 2, 3, 2, 1, 3,
1259 2, 2, 1, 3, 2, 3, 2, 4, 3, 1,
1260 2, 1, 3, 2, 2, 1, 1, 2, 1, 4,
1261 2, 1, 2, 2, 1, 3, 2, 2, 1, 2,
1262 1, 1, 4, 4, 4, 2, 2, 2, 2, 3,
1263 1, 3, 2, 4, 2, 2, 2, 4, 7, 7,
1264 7, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1265 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1270 #define yyerrok (yyerrstatus = 0) 1271 #define yyclearin (yychar = YYEMPTY) 1272 #define YYEMPTY (-2) 1275 #define YYACCEPT goto yyacceptlab 1276 #define YYABORT goto yyabortlab 1277 #define YYERROR goto yyerrorlab 1280 #define YYRECOVERING() (!!yyerrstatus) 1282 #define YYBACKUP(Token, Value) \ 1284 if (yychar == YYEMPTY) \ 1288 YYPOPSTACK (yylen); \ 1294 yyerror (YY_("syntax error: cannot back up")); \ 1301 #define YYERRCODE 256 1310 # define YYFPRINTF fprintf 1313 # define YYDPRINTF(Args) \ 1320 #ifndef YY_LOCATION_PRINT 1321 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 1325 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 1329 YYFPRINTF (stderr, "%s ", Title); \ 1330 yy_symbol_print (stderr, \ 1332 YYFPRINTF (stderr, "\n"); \ 1344 FILE *yyo = yyoutput;
1379 for (; yybottom <= yytop; yybottom++)
1381 int yybot = *yybottom;
1387 # define YY_STACK_PRINT(Bottom, Top) \ 1390 yy_stack_print ((Bottom), (Top)); \ 1404 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
1407 for (yyi = 0; yyi < yynrhs; yyi++)
1412 &(
yyvsp[(yyi + 1) - (yynrhs)])
1418 # define YY_REDUCE_PRINT(Rule) \ 1421 yy_reduce_print (yyssp, yyvsp, Rule); \ 1428 # define YYDPRINTF(Args) 1429 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 1430 # define YY_STACK_PRINT(Bottom, Top) 1431 # define YY_REDUCE_PRINT(Rule) 1437 # define YYINITDEPTH 200 1448 # define YYMAXDEPTH 10000 1455 # if defined __GLIBC__ && defined _STRING_H 1456 # define yystrlen strlen 1460 yystrlen (
const char *yystr)
1471 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 1472 # define yystpcpy stpcpy 1477 yystpcpy (
char *yydest,
const char *yysrc)
1480 const char *
yys = yysrc;
1482 while ((*yyd++ = *
yys++) !=
'\0')
1499 yytnamerr (
char *yyres,
const char *yystr)
1504 char const *yyp = yystr;
1511 goto do_not_strip_quotes;
1515 goto do_not_strip_quotes;
1528 do_not_strip_quotes: ;
1532 return yystrlen (yystr);
1534 return yystpcpy (yyres, yystr) - yyres;
1547 yysyntax_error (
YYSIZE_T *yymsg_alloc,
char **yymsg,
1552 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1556 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1587 yyarg[yycount++] =
yytname[yytoken];
1593 int yyxbegin = yyn < 0 ? -yyn : 0;
1595 int yychecklim =
YYLAST - yyn + 1;
1599 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1603 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1609 yyarg[yycount++] =
yytname[yyx];
1612 if (! (yysize <= yysize1
1623 # define YYCASE_(N, S) \ 1627 YYCASE_(0,
YY_(
"syntax error"));
1628 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
1629 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
1630 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
1631 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
1632 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1637 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1643 if (*yymsg_alloc < yysize)
1645 *yymsg_alloc = 2 * yysize;
1646 if (! (yysize <= *yymsg_alloc
1658 while ((*yyp = *yyformat) !=
'\0')
1659 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
1661 yyp += yytnamerr (yyp, yyarg[yyi++]);
1744 char *yymsg = yymsgbuf;
1745 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
1748 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 1758 YYDPRINTF ((stderr,
"Starting parse\n"));
1794 yyoverflow (
YY_(
"memory exhausted"),
1795 &yyss1, yysize *
sizeof (*
yyssp),
1796 &yyvs1, yysize *
sizeof (*
yyvsp),
1803 # ifndef YYSTACK_RELOCATE 1804 goto yyexhaustedlab;
1808 goto yyexhaustedlab;
1818 goto yyexhaustedlab;
1821 # undef YYSTACK_RELOCATE 1831 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
1863 YYDPRINTF ((stderr,
"Reading a token: "));
1870 YYDPRINTF ((stderr,
"Now at end of input.\n"));
1943 #line 368 "cp-name-parser.y" 1945 #line 1947 "cp-name-parser.c" 1949 #line 380 "cp-name-parser.y" 1950 { (
yyval.comp) = NULL; }
1951 #line 1953 "cp-name-parser.c" 1955 #line 382 "cp-name-parser.y" 1957 #line 1959 "cp-name-parser.c" 1961 #line 389 "cp-name-parser.y" 1965 #line 1967 "cp-name-parser.c" 1969 #line 398 "cp-name-parser.y" 1972 #line 1974 "cp-name-parser.c" 1976 #line 401 "cp-name-parser.y" 1979 #line 1981 "cp-name-parser.c" 1983 #line 405 "cp-name-parser.y" 1986 #line 1988 "cp-name-parser.c" 1990 #line 408 "cp-name-parser.y" 1991 {
if ((
yyvsp[0].
abstract).last)
1995 *(
yyvsp[0].abstract).last = *(
yyvsp[-1].nested).last;
1997 *(
yyvsp[-1].nested).last = (
yyvsp[0].
abstract).comp;
2000 if ((
yyvsp[0].
abstract).fn.comp)
2006 #line 2008 "cp-name-parser.c" 2010 #line 427 "cp-name-parser.y" 2012 #line 2014 "cp-name-parser.c" 2016 #line 429 "cp-name-parser.y" 2018 #line 2020 "cp-name-parser.c" 2022 #line 433 "cp-name-parser.y" 2028 #line 2030 "cp-name-parser.c" 2032 #line 439 "cp-name-parser.y" 2038 #line 2040 "cp-name-parser.c" 2042 #line 445 "cp-name-parser.y" 2048 #line 2050 "cp-name-parser.c" 2052 #line 451 "cp-name-parser.y" 2058 #line 2060 "cp-name-parser.c" 2062 #line 457 "cp-name-parser.y" 2064 #line 2066 "cp-name-parser.c" 2068 #line 459 "cp-name-parser.y" 2070 #line 2072 "cp-name-parser.c" 2074 #line 461 "cp-name-parser.y" 2076 #line 2078 "cp-name-parser.c" 2080 #line 463 "cp-name-parser.y" 2082 #line 2084 "cp-name-parser.c" 2086 #line 465 "cp-name-parser.y" 2088 #line 2090 "cp-name-parser.c" 2092 #line 467 "cp-name-parser.y" 2094 #line 2096 "cp-name-parser.c" 2098 #line 469 "cp-name-parser.y" 2100 #line 2102 "cp-name-parser.c" 2104 #line 471 "cp-name-parser.y" 2106 #line 2108 "cp-name-parser.c" 2110 #line 473 "cp-name-parser.y" 2112 #line 2114 "cp-name-parser.c" 2116 #line 475 "cp-name-parser.y" 2118 #line 2120 "cp-name-parser.c" 2122 #line 477 "cp-name-parser.y" 2124 #line 2126 "cp-name-parser.c" 2128 #line 479 "cp-name-parser.y" 2130 #line 2132 "cp-name-parser.c" 2134 #line 481 "cp-name-parser.y" 2136 #line 2138 "cp-name-parser.c" 2140 #line 483 "cp-name-parser.y" 2142 #line 2144 "cp-name-parser.c" 2146 #line 485 "cp-name-parser.y" 2148 #line 2150 "cp-name-parser.c" 2152 #line 487 "cp-name-parser.y" 2154 #line 2156 "cp-name-parser.c" 2158 #line 489 "cp-name-parser.y" 2160 #line 2162 "cp-name-parser.c" 2164 #line 491 "cp-name-parser.y" 2166 #line 2168 "cp-name-parser.c" 2170 #line 493 "cp-name-parser.y" 2172 #line 2174 "cp-name-parser.c" 2176 #line 495 "cp-name-parser.y" 2178 #line 2180 "cp-name-parser.c" 2182 #line 497 "cp-name-parser.y" 2184 #line 2186 "cp-name-parser.c" 2188 #line 499 "cp-name-parser.y" 2190 #line 2192 "cp-name-parser.c" 2194 #line 501 "cp-name-parser.y" 2196 #line 2198 "cp-name-parser.c" 2200 #line 503 "cp-name-parser.y" 2202 #line 2204 "cp-name-parser.c" 2206 #line 505 "cp-name-parser.y" 2208 #line 2210 "cp-name-parser.c" 2212 #line 507 "cp-name-parser.y" 2214 #line 2216 "cp-name-parser.c" 2218 #line 509 "cp-name-parser.y" 2220 #line 2222 "cp-name-parser.c" 2224 #line 511 "cp-name-parser.y" 2226 #line 2228 "cp-name-parser.c" 2230 #line 513 "cp-name-parser.y" 2232 #line 2234 "cp-name-parser.c" 2236 #line 521 "cp-name-parser.y" 2238 #line 2240 "cp-name-parser.c" 2242 #line 526 "cp-name-parser.y" 2243 { (
yyval.nested).comp = (
yyvsp[-1].nested1).comp;
2247 #line 2249 "cp-name-parser.c" 2251 #line 531 "cp-name-parser.y" 2255 #line 2257 "cp-name-parser.c" 2259 #line 535 "cp-name-parser.y" 2260 { (
yyval.nested).comp = (
yyvsp[-1].nested1).comp;
2264 #line 2266 "cp-name-parser.c" 2268 #line 540 "cp-name-parser.y" 2272 #line 2274 "cp-name-parser.c" 2276 #line 549 "cp-name-parser.y" 2278 #line 2280 "cp-name-parser.c" 2282 #line 551 "cp-name-parser.y" 2284 #line 2286 "cp-name-parser.c" 2288 #line 564 "cp-name-parser.y" 2290 #line 2292 "cp-name-parser.c" 2294 #line 570 "cp-name-parser.y" 2296 #line 2298 "cp-name-parser.c" 2300 #line 573 "cp-name-parser.y" 2302 #line 2304 "cp-name-parser.c" 2306 #line 583 "cp-name-parser.y" 2308 #line 2310 "cp-name-parser.c" 2312 #line 587 "cp-name-parser.y" 2314 #line 2316 "cp-name-parser.c" 2318 #line 592 "cp-name-parser.y" 2319 { (
yyval.nested1).comp =
fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, (
yyvsp[-1].comp), NULL);
2322 #line 2324 "cp-name-parser.c" 2326 #line 596 "cp-name-parser.y" 2327 { (
yyval.nested1).comp = (
yyvsp[-2].nested1).comp;
2331 #line 2333 "cp-name-parser.c" 2335 #line 601 "cp-name-parser.y" 2336 { (
yyval.nested1).comp =
fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, (
yyvsp[-1].comp), NULL);
2339 #line 2341 "cp-name-parser.c" 2343 #line 605 "cp-name-parser.y" 2344 { (
yyval.nested1).comp = (
yyvsp[-2].nested1).comp;
2348 #line 2350 "cp-name-parser.c" 2352 #line 614 "cp-name-parser.y" 2354 #line 2356 "cp-name-parser.c" 2358 #line 618 "cp-name-parser.y" 2359 { (
yyval.nested).comp =
fill_comp (DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, (
yyvsp[0].comp), NULL);
2361 #line 2363 "cp-name-parser.c" 2365 #line 621 "cp-name-parser.y" 2366 { (
yyval.nested).comp = (
yyvsp[-2].nested).comp;
2367 *(
yyvsp[-2].nested).last =
fill_comp (DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, (
yyvsp[0].comp), NULL);
2370 #line 2372 "cp-name-parser.c" 2374 #line 633 "cp-name-parser.y" 2376 *(
yyvsp[0].abstract).last = (
yyvsp[-1].comp);
2378 #line 2380 "cp-name-parser.c" 2382 #line 637 "cp-name-parser.y" 2384 #line 2386 "cp-name-parser.c" 2388 #line 639 "cp-name-parser.y" 2390 #line 2392 "cp-name-parser.c" 2394 #line 644 "cp-name-parser.y" 2398 #line 2400 "cp-name-parser.c" 2402 #line 648 "cp-name-parser.y" 2403 { *(
yyvsp[0].abstract).last = (
yyvsp[-1].comp);
2404 (
yyval.nested).comp =
fill_comp (DEMANGLE_COMPONENT_ARGLIST, (
yyvsp[0].
abstract).comp, NULL);
2407 #line 2409 "cp-name-parser.c" 2411 #line 653 "cp-name-parser.y" 2412 { *(
yyvsp[-2].nested).last =
fill_comp (DEMANGLE_COMPONENT_ARGLIST, (
yyvsp[0].comp), NULL);
2413 (
yyval.nested).comp = (
yyvsp[-2].nested).comp;
2416 #line 2418 "cp-name-parser.c" 2420 #line 658 "cp-name-parser.y" 2421 { *(
yyvsp[0].abstract).last = (
yyvsp[-1].comp);
2422 *(
yyvsp[-3].nested).last =
fill_comp (DEMANGLE_COMPONENT_ARGLIST, (
yyvsp[0].
abstract).comp, NULL);
2423 (
yyval.nested).comp = (
yyvsp[-3].nested).comp;
2426 #line 2428 "cp-name-parser.c" 2430 #line 664 "cp-name-parser.y" 2431 { *(
yyvsp[-2].nested).last
2432 =
fill_comp (DEMANGLE_COMPONENT_ARGLIST,
2435 (
yyval.nested).comp = (
yyvsp[-2].nested).comp;
2438 #line 2440 "cp-name-parser.c" 2442 #line 674 "cp-name-parser.y" 2443 { (
yyval.nested).comp =
fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, (
yyvsp[-2].nested).comp);
2446 #line 2448 "cp-name-parser.c" 2450 #line 678 "cp-name-parser.y" 2451 { (
yyval.nested).comp =
fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, NULL);
2454 #line 2456 "cp-name-parser.c" 2458 #line 682 "cp-name-parser.y" 2459 { (
yyval.nested).comp =
fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, NULL);
2462 #line 2464 "cp-name-parser.c" 2466 #line 689 "cp-name-parser.y" 2467 { (
yyval.lval) = 0; }
2468 #line 2470 "cp-name-parser.c" 2472 #line 694 "cp-name-parser.y" 2474 #line 2476 "cp-name-parser.c" 2478 #line 696 "cp-name-parser.y" 2480 #line 2482 "cp-name-parser.c" 2484 #line 698 "cp-name-parser.y" 2486 #line 2488 "cp-name-parser.c" 2490 #line 703 "cp-name-parser.y" 2492 #line 2494 "cp-name-parser.c" 2496 #line 710 "cp-name-parser.y" 2497 { (
yyval.lval) = 0; }
2498 #line 2500 "cp-name-parser.c" 2502 #line 712 "cp-name-parser.y" 2504 #line 2506 "cp-name-parser.c" 2508 #line 714 "cp-name-parser.y" 2510 #line 2512 "cp-name-parser.c" 2514 #line 716 "cp-name-parser.y" 2516 #line 2518 "cp-name-parser.c" 2520 #line 718 "cp-name-parser.y" 2522 #line 2524 "cp-name-parser.c" 2526 #line 720 "cp-name-parser.y" 2528 #line 2530 "cp-name-parser.c" 2532 #line 725 "cp-name-parser.y" 2534 #line 2536 "cp-name-parser.c" 2538 #line 729 "cp-name-parser.y" 2540 #line 2542 "cp-name-parser.c" 2544 #line 731 "cp-name-parser.y" 2546 #line 2548 "cp-name-parser.c" 2550 #line 733 "cp-name-parser.y" 2552 #line 2554 "cp-name-parser.c" 2556 #line 735 "cp-name-parser.y" 2558 #line 2560 "cp-name-parser.c" 2562 #line 737 "cp-name-parser.y" 2564 #line 2566 "cp-name-parser.c" 2568 #line 739 "cp-name-parser.y" 2570 #line 2572 "cp-name-parser.c" 2574 #line 741 "cp-name-parser.y" 2576 #line 2578 "cp-name-parser.c" 2580 #line 745 "cp-name-parser.y" 2581 { (
yyval.nested).comp =
fill_comp (DEMANGLE_COMPONENT_POINTER, NULL, NULL);
2584 #line 2586 "cp-name-parser.c" 2588 #line 750 "cp-name-parser.y" 2589 { (
yyval.nested).comp =
fill_comp (DEMANGLE_COMPONENT_REFERENCE, NULL, NULL);
2591 #line 2593 "cp-name-parser.c" 2595 #line 753 "cp-name-parser.y" 2596 { (
yyval.nested).comp =
fill_comp (DEMANGLE_COMPONENT_RVALUE_REFERENCE, NULL, NULL);
2598 #line 2600 "cp-name-parser.c" 2602 #line 756 "cp-name-parser.y" 2603 { (
yyval.nested).comp =
fill_comp (DEMANGLE_COMPONENT_PTRMEM_TYPE, (
yyvsp[-2].nested1).comp, NULL);
2608 #line 2610 "cp-name-parser.c" 2612 #line 762 "cp-name-parser.y" 2613 { (
yyval.nested).comp =
fill_comp (DEMANGLE_COMPONENT_PTRMEM_TYPE, (
yyvsp[-2].nested1).comp, NULL);
2618 #line 2620 "cp-name-parser.c" 2622 #line 770 "cp-name-parser.y" 2623 { (
yyval.comp) =
fill_comp (DEMANGLE_COMPONENT_ARRAY_TYPE, NULL, NULL); }
2624 #line 2626 "cp-name-parser.c" 2628 #line 772 "cp-name-parser.y" 2630 #line 2632 "cp-name-parser.c" 2634 #line 786 "cp-name-parser.y" 2636 #line 2638 "cp-name-parser.c" 2640 #line 789 "cp-name-parser.y" 2642 #line 2644 "cp-name-parser.c" 2646 #line 791 "cp-name-parser.y" 2648 #line 2650 "cp-name-parser.c" 2652 #line 794 "cp-name-parser.y" 2654 #line 2656 "cp-name-parser.c" 2658 #line 797 "cp-name-parser.y" 2660 #line 2662 "cp-name-parser.c" 2664 #line 799 "cp-name-parser.y" 2666 #line 2668 "cp-name-parser.c" 2670 #line 802 "cp-name-parser.y" 2672 #line 2674 "cp-name-parser.c" 2676 #line 804 "cp-name-parser.y" 2678 #line 2680 "cp-name-parser.c" 2682 #line 806 "cp-name-parser.y" 2684 #line 2686 "cp-name-parser.c" 2688 #line 808 "cp-name-parser.y" 2690 #line 2692 "cp-name-parser.c" 2694 #line 813 "cp-name-parser.y" 2695 { (
yyval.abstract).comp = (
yyvsp[0].nested).comp; (
yyval.abstract).last = (
yyvsp[0].nested).last;
2696 (
yyval.abstract).fn.comp = NULL; (
yyval.abstract).fn.last = NULL; }
2697 #line 2699 "cp-name-parser.c" 2701 #line 816 "cp-name-parser.y" 2702 { (
yyval.abstract) = (
yyvsp[0].
abstract); (
yyval.abstract).fn.comp = NULL; (
yyval.abstract).fn.last = NULL;
2703 if ((
yyvsp[0].
abstract).fn.comp) { (
yyval.abstract).last = (
yyvsp[0].
abstract).fn.last; *(
yyvsp[0].abstract).last = (
yyvsp[0].
abstract).fn.comp; }
2704 *(
yyval.abstract).last = (
yyvsp[-1].nested).comp;
2705 (
yyval.abstract).last = (
yyvsp[-1].nested).last; }
2706 #line 2708 "cp-name-parser.c" 2710 #line 821 "cp-name-parser.y" 2711 { (
yyval.abstract).fn.comp = NULL; (
yyval.abstract).fn.last = NULL;
2712 if ((
yyvsp[0].
abstract).fn.comp) { (
yyval.abstract).last = (
yyvsp[0].
abstract).fn.last; *(
yyvsp[0].abstract).last = (
yyvsp[0].
abstract).fn.comp; }
2714 #line 2716 "cp-name-parser.c" 2718 #line 828 "cp-name-parser.y" 2719 { (
yyval.abstract) = (
yyvsp[-1].
abstract); (
yyval.abstract).fn.comp = NULL; (
yyval.abstract).fn.last = NULL; (
yyval.abstract).fold_flag = 1;
2720 if ((
yyvsp[-1].
abstract).fn.comp) { (
yyval.abstract).last = (
yyvsp[-1].
abstract).fn.last; *(
yyvsp[-1].abstract).last = (
yyvsp[-1].
abstract).fn.comp; }
2722 #line 2724 "cp-name-parser.c" 2726 #line 832 "cp-name-parser.y" 2727 { (
yyval.abstract).fold_flag = 0;
2728 if ((
yyvsp[-1].
abstract).fn.comp) { (
yyval.abstract).last = (
yyvsp[-1].
abstract).fn.last; *(
yyvsp[-1].abstract).last = (
yyvsp[-1].
abstract).fn.comp; }
2729 if ((
yyvsp[-1].
abstract).fold_flag)
2731 *(
yyval.abstract).last = (
yyvsp[0].nested).comp;
2732 (
yyval.abstract).last = (
yyvsp[0].nested).last;
2737 #line 2739 "cp-name-parser.c" 2741 #line 843 "cp-name-parser.y" 2742 { (
yyval.abstract).fn.comp = NULL; (
yyval.abstract).fn.last = NULL; (
yyval.abstract).fold_flag = 0;
2743 if ((
yyvsp[-1].
abstract).fn.comp) { (
yyval.abstract).last = (
yyvsp[-1].
abstract).fn.last; *(
yyvsp[-1].abstract).last = (
yyvsp[-1].
abstract).fn.comp; }
2744 *(
yyvsp[-1].abstract).last = (
yyvsp[0].comp);
2747 #line 2749 "cp-name-parser.c" 2751 #line 849 "cp-name-parser.y" 2752 { (
yyval.abstract).fn.comp = NULL; (
yyval.abstract).fn.last = NULL; (
yyval.abstract).fold_flag = 0;
2756 #line 2758 "cp-name-parser.c" 2760 #line 867 "cp-name-parser.y" 2761 { (
yyval.abstract).comp = (
yyvsp[0].nested).comp; (
yyval.abstract).last = (
yyvsp[0].nested).last;
2762 (
yyval.abstract).fn.comp = NULL; (
yyval.abstract).fn.last = NULL; (
yyval.abstract).start = NULL; }
2763 #line 2765 "cp-name-parser.c" 2767 #line 870 "cp-name-parser.y" 2769 if ((
yyvsp[0].
abstract).last)
2770 *(
yyval.abstract).last = (
yyvsp[-1].nested).comp;
2772 (
yyval.abstract).comp = (
yyvsp[-1].nested).comp;
2773 (
yyval.abstract).last = (
yyvsp[-1].nested).last;
2775 #line 2777 "cp-name-parser.c" 2779 #line 878 "cp-name-parser.y" 2780 { (
yyval.abstract).comp = (
yyvsp[0].
abstract).comp; (
yyval.abstract).last = (
yyvsp[0].
abstract).last; (
yyval.abstract).fn = (
yyvsp[0].
abstract).fn; (
yyval.abstract).start = NULL; }
2781 #line 2783 "cp-name-parser.c" 2785 #line 880 "cp-name-parser.y" 2787 if ((
yyvsp[-3].
abstract).fn.comp) { (
yyval.abstract).last = (
yyvsp[-3].
abstract).fn.last; *(
yyvsp[-3].abstract).last = (
yyvsp[-3].
abstract).fn.comp; }
2788 if ((
yyvsp[-3].
abstract).fold_flag)
2790 *(
yyval.abstract).last = (
yyvsp[-2].nested).comp;
2791 (
yyval.abstract).last = (
yyvsp[-2].nested).last;
2796 #line 2798 "cp-name-parser.c" 2800 #line 891 "cp-name-parser.y" 2803 (
yyval.abstract).comp = NULL; (
yyval.abstract).last = NULL;
2805 #line 2807 "cp-name-parser.c" 2809 #line 899 "cp-name-parser.y" 2811 *(
yyvsp[0].abstract).last = (
yyvsp[-1].comp);
2813 #line 2815 "cp-name-parser.c" 2817 #line 905 "cp-name-parser.y" 2818 { (
yyval.nested).comp = (
yyvsp[0].nested).comp;
2819 (
yyval.nested).last = (
yyvsp[-1].nested).last;
2820 *(
yyvsp[0].nested).last = (
yyvsp[-1].nested).comp; }
2821 #line 2823 "cp-name-parser.c" 2825 #line 913 "cp-name-parser.y" 2827 #line 2829 "cp-name-parser.c" 2831 #line 915 "cp-name-parser.y" 2832 { (
yyval.nested).comp = (
yyvsp[-1].nested).comp;
2833 *(
yyvsp[-1].nested).last = (
yyvsp[0].nested).comp;
2834 (
yyval.nested).last = (
yyvsp[0].nested).last;
2836 #line 2838 "cp-name-parser.c" 2840 #line 920 "cp-name-parser.y" 2841 { (
yyval.nested).comp = (
yyvsp[-1].nested).comp;
2845 #line 2847 "cp-name-parser.c" 2849 #line 925 "cp-name-parser.y" 2853 #line 2855 "cp-name-parser.c" 2857 #line 937 "cp-name-parser.y" 2858 { (
yyval.nested).comp = (
yyvsp[0].nested).comp;
2859 (
yyval.nested).last = (
yyvsp[-1].nested).last;
2860 *(
yyvsp[0].nested).last = (
yyvsp[-1].nested).comp; }
2861 #line 2863 "cp-name-parser.c" 2865 #line 941 "cp-name-parser.y" 2869 #line 2871 "cp-name-parser.c" 2873 #line 953 "cp-name-parser.y" 2875 (
yyval.nested).last = (
yyvsp[-2].nested).last;
2878 #line 2880 "cp-name-parser.c" 2882 #line 958 "cp-name-parser.y" 2883 { (
yyval.nested).comp = (
yyvsp[-3].nested).comp;
2884 *(
yyvsp[-3].nested).last = (
yyvsp[-2].nested).comp;
2885 (
yyval.nested).last = (
yyvsp[-2].nested).last;
2888 #line 2890 "cp-name-parser.c" 2892 #line 967 "cp-name-parser.y" 2893 { (
yyval.nested).comp = (
yyvsp[-1].nested).comp;
2894 (
yyval.nested).last = (
yyvsp[-2].nested).last;
2895 *(
yyvsp[-1].nested).last = (
yyvsp[-2].nested).comp; }
2896 #line 2898 "cp-name-parser.c" 2900 #line 971 "cp-name-parser.y" 2901 { (
yyval.nested).comp = (
yyvsp[-1].nested).comp;
2902 *(
yyvsp[-1].nested).last = (
yyvsp[0].nested).comp;
2903 (
yyval.nested).last = (
yyvsp[0].nested).last;
2905 #line 2907 "cp-name-parser.c" 2909 #line 976 "cp-name-parser.y" 2910 { (
yyval.nested).comp = (
yyvsp[-1].nested).comp;
2914 #line 2916 "cp-name-parser.c" 2918 #line 981 "cp-name-parser.y" 2920 (
yyval.nested).last = (
yyvsp[0].nested).last;
2922 #line 2924 "cp-name-parser.c" 2926 #line 985 "cp-name-parser.y" 2930 #line 2932 "cp-name-parser.c" 2934 #line 991 "cp-name-parser.y" 2936 #line 2938 "cp-name-parser.c" 2940 #line 1000 "cp-name-parser.y" 2942 #line 2944 "cp-name-parser.c" 2946 #line 1007 "cp-name-parser.y" 2948 #line 2950 "cp-name-parser.c" 2952 #line 1009 "cp-name-parser.y" 2954 #line 2956 "cp-name-parser.c" 2958 #line 1014 "cp-name-parser.y" 2960 #line 2962 "cp-name-parser.c" 2964 #line 1018 "cp-name-parser.y" 2966 #line 2968 "cp-name-parser.c" 2970 #line 1022 "cp-name-parser.y" 2972 #line 2974 "cp-name-parser.c" 2976 #line 1029 "cp-name-parser.y" 2977 {
if ((
yyvsp[0].comp)->type == DEMANGLE_COMPONENT_LITERAL
2978 || (
yyvsp[0].comp)->
type == DEMANGLE_COMPONENT_LITERAL_NEG)
2988 #line 2990 "cp-name-parser.c" 2992 #line 1045 "cp-name-parser.y" 2997 #line 2999 "cp-name-parser.c" 3001 #line 1052 "cp-name-parser.y" 3006 #line 3008 "cp-name-parser.c" 3010 #line 1059 "cp-name-parser.y" 3015 #line 3017 "cp-name-parser.c" 3019 #line 1078 "cp-name-parser.y" 3021 #line 3023 "cp-name-parser.c" 3025 #line 1082 "cp-name-parser.y" 3027 #line 3029 "cp-name-parser.c" 3031 #line 1086 "cp-name-parser.y" 3033 #line 3035 "cp-name-parser.c" 3037 #line 1090 "cp-name-parser.y" 3039 #line 3041 "cp-name-parser.c" 3043 #line 1094 "cp-name-parser.y" 3045 #line 3047 "cp-name-parser.c" 3049 #line 1098 "cp-name-parser.y" 3051 #line 3053 "cp-name-parser.c" 3055 #line 1102 "cp-name-parser.y" 3057 #line 3059 "cp-name-parser.c" 3061 #line 1106 "cp-name-parser.y" 3063 #line 3065 "cp-name-parser.c" 3067 #line 1110 "cp-name-parser.y" 3069 #line 3071 "cp-name-parser.c" 3073 #line 1114 "cp-name-parser.y" 3075 #line 3077 "cp-name-parser.c" 3079 #line 1118 "cp-name-parser.y" 3081 #line 3083 "cp-name-parser.c" 3085 #line 1122 "cp-name-parser.y" 3087 #line 3089 "cp-name-parser.c" 3091 #line 1126 "cp-name-parser.y" 3093 #line 3095 "cp-name-parser.c" 3097 #line 1130 "cp-name-parser.y" 3099 #line 3101 "cp-name-parser.c" 3103 #line 1134 "cp-name-parser.y" 3105 #line 3107 "cp-name-parser.c" 3109 #line 1138 "cp-name-parser.y" 3111 #line 3113 "cp-name-parser.c" 3115 #line 1142 "cp-name-parser.y" 3117 #line 3119 "cp-name-parser.c" 3121 #line 1147 "cp-name-parser.y" 3123 #line 3125 "cp-name-parser.c" 3127 #line 1151 "cp-name-parser.y" 3129 #line 3131 "cp-name-parser.c" 3133 #line 1155 "cp-name-parser.y" 3138 #line 3140 "cp-name-parser.c" 3142 #line 1169 "cp-name-parser.y" 3148 #line 3150 "cp-name-parser.c" 3152 #line 1178 "cp-name-parser.y" 3153 {
struct demangle_component *i;
3159 #line 3161 "cp-name-parser.c" 3163 #line 1187 "cp-name-parser.y" 3164 {
struct demangle_component *i;
3170 #line 3172 "cp-name-parser.c" 3174 #line 3176 "cp-name-parser.c" 3223 #if ! YYERROR_VERBOSE 3226 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 3229 char const *yymsgp =
YY_(
"syntax error");
3230 int yysyntax_error_status;
3231 yysyntax_error_status = YYSYNTAX_ERROR;
3232 if (yysyntax_error_status == 0)
3234 else if (yysyntax_error_status == 1)
3236 if (yymsg != yymsgbuf)
3242 yymsg_alloc =
sizeof yymsgbuf;
3243 yysyntax_error_status = 2;
3247 yysyntax_error_status = YYSYNTAX_ERROR;
3252 if (yysyntax_error_status == 2)
3253 goto yyexhaustedlab;
3255 # undef YYSYNTAX_ERROR 3261 if (yyerrstatus == 3)
3363 #if !defined yyoverflow || YYERROR_VERBOSE 3397 if (yymsg != yymsgbuf)
3402 #line 1197 "cp-name-parser.y" 3410 struct demangle_component *
3411 d_qualify (
struct demangle_component *lhs,
int qualifiers,
int is_method)
3413 struct demangle_component **inner_p;
3414 enum demangle_component_type
type;
3418 #define HANDLE_QUAL(TYPE, MTYPE, QUAL) \ 3419 if ((qualifiers & QUAL) && (type != TYPE) && (type != MTYPE)) \ 3421 *inner_p = fill_comp (is_method ? MTYPE : TYPE, \ 3423 inner_p = &d_left (*inner_p); \ 3424 type = (*inner_p)->type; \ 3426 else if (type == TYPE || type == MTYPE) \ 3428 inner_p = &d_left (*inner_p); \ 3429 type = (*inner_p)->type; \ 3434 type = (*inner_p)->type;
3445 static struct demangle_component *
3453 name =
"signed char";
3459 name =
"unsigned char";
3466 name =
"unsigned int";
3473 name =
"unsigned long";
3480 name =
"unsigned short";
3487 name =
"unsigned long long";
3498 static struct demangle_component *
3506 static struct demangle_component *
3507 d_binary (
const char *
name,
struct demangle_component *lhs,
struct demangle_component *rhs)
3510 fill_comp (DEMANGLE_COMPONENT_BINARY_ARGS, lhs, rhs));
3524 return ISALPHA (ch) || ch >= 0x80;
3532 return ISALNUM (ch) || ch >= 0x80;
3560 struct demangle_component *signed_type;
3561 struct demangle_component *unsigned_type;
3562 struct demangle_component *
type, *
name;
3563 enum demangle_component_type literal_type;
3567 literal_type = DEMANGLE_COMPONENT_LITERAL_NEG;
3572 literal_type = DEMANGLE_COMPONENT_LITERAL;
3585 c = TOLOWER (p[len - 1]);
3597 else if (ISDIGIT (c) || c ==
'.')
3615 if (p[len - 1] ==
'l' || p[len - 1] ==
'L')
3621 if (p[len - 1] ==
'u' || p[len - 1] ==
'U')
3635 else if (long_p == 1)
3647 type = unsigned_type;
3692 int c = *(*string_ptr)++;
3705 c = *(*string_ptr)++;
3716 target_char = target_char & 037;
3735 if (c >=
'0' && c <=
'7')
3753 #define HANDLE_SPECIAL(string, comp) \ 3754 if (strncmp (tokstart, string, sizeof (string) - 1) == 0) \ 3756 lexptr = tokstart + sizeof (string) - 1; \ 3757 yylval.lval = comp; \ 3758 return DEMANGLER_SPECIAL; \ 3761 #define HANDLE_TOKEN2(string, token) \ 3762 if (lexptr[1] == string[1]) \ 3765 yylval.opname = string; \ 3769 #define HANDLE_TOKEN3(string, token) \ 3770 if (lexptr[1] == string[1] && lexptr[2] == string[2]) \ 3773 yylval.opname = string; \ 3784 const char *tokstart;
3790 switch (c = *tokstart)
3811 yyerror (
_(
"empty character constant"));
3818 yyerror (
_(
"invalid character constant"));
3833 if (strncmp (tokstart,
"(anonymous namespace)", 21) == 0)
3837 sizeof "(anonymous namespace)" - 1);
3866 if (strncmp (tokstart,
"-in-", 4) == 0)
3892 int got_dot = 0, got_e = 0, toktype;
3893 const char *p = tokstart;
3899 if (c ==
'0' && (p[1] ==
'x' || p[1] ==
'X'))
3904 else if (c ==
'0' && (p[1]==
't' || p[1]==
'T' || p[1]==
'd' || p[1]==
'D'))
3915 if (!hex && !got_e && (*p ==
'e' || *p ==
'E'))
3916 got_dot = got_e = 1;
3923 else if (!got_dot && *p ==
'.')
3925 else if (got_e && (p[-1] ==
'e' || p[-1] ==
'E')
3926 && (*p ==
'-' || *p ==
'+'))
3932 else if (! ISALNUM (*p))
3935 toktype =
parse_number (tokstart, p - tokstart, got_dot|got_e);
3936 if (toktype ==
ERROR)
3938 char *err_copy = (
char *) alloca (p - tokstart + 1);
3940 memcpy (err_copy, tokstart, p - tokstart);
3941 err_copy[p - tokstart] = 0;
4018 yyerror (
_(
"unexpected string literal"));
4032 c = tokstart[++namelen];
4043 if (strncmp (tokstart,
"reinterpret_cast", 16) == 0)
4047 if (strncmp (tokstart,
"construction vtable for ", 24) == 0)
4052 if (strncmp (tokstart,
"dynamic_cast", 12) == 0)
4056 if (strncmp (tokstart,
"static_cast", 11) == 0)
4060 HANDLE_SPECIAL (
"covariant return thunk to ", DEMANGLE_COMPONENT_COVARIANT_THUNK);
4061 HANDLE_SPECIAL (
"reference temporary for ", DEMANGLE_COMPONENT_REFTEMP);
4065 HANDLE_SPECIAL (
"typeinfo fn for ", DEMANGLE_COMPONENT_TYPEINFO_FN);
4066 HANDLE_SPECIAL (
"typeinfo name for ", DEMANGLE_COMPONENT_TYPEINFO_NAME);
4067 if (strncmp (tokstart,
"operator", 8) == 0)
4069 if (strncmp (tokstart,
"restrict", 8) == 0)
4071 if (strncmp (tokstart,
"unsigned", 8) == 0)
4073 if (strncmp (tokstart,
"template", 8) == 0)
4075 if (strncmp (tokstart,
"volatile", 8) == 0)
4079 HANDLE_SPECIAL (
"virtual thunk to ", DEMANGLE_COMPONENT_VIRTUAL_THUNK);
4080 if (strncmp (tokstart,
"wchar_t", 7) == 0)
4084 if (strncmp (tokstart,
"global constructors keyed to ", 29) == 0)
4088 yylval.lval = DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS;
4095 if (strncmp (tokstart,
"global destructors keyed to ", 28) == 0)
4099 yylval.lval = DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS;
4108 if (strncmp (tokstart,
"delete", 6) == 0)
4110 if (strncmp (tokstart,
"struct", 6) == 0)
4112 if (strncmp (tokstart,
"signed", 6) == 0)
4114 if (strncmp (tokstart,
"sizeof", 6) == 0)
4116 if (strncmp (tokstart,
"double", 6) == 0)
4120 HANDLE_SPECIAL (
"guard variable for ", DEMANGLE_COMPONENT_GUARD);
4121 if (strncmp (tokstart,
"false", 5) == 0)
4123 if (strncmp (tokstart,
"class", 5) == 0)
4125 if (strncmp (tokstart,
"union", 5) == 0)
4127 if (strncmp (tokstart,
"float", 5) == 0)
4129 if (strncmp (tokstart,
"short", 5) == 0)
4131 if (strncmp (tokstart,
"const", 5) == 0)
4135 if (strncmp (tokstart,
"void", 4) == 0)
4137 if (strncmp (tokstart,
"bool", 4) == 0)
4139 if (strncmp (tokstart,
"char", 4) == 0)
4141 if (strncmp (tokstart,
"enum", 4) == 0)
4143 if (strncmp (tokstart,
"long", 4) == 0)
4145 if (strncmp (tokstart,
"true", 4) == 0)
4150 HANDLE_SPECIAL (
"non-virtual thunk to ", DEMANGLE_COMPONENT_THUNK);
4151 if (strncmp (tokstart,
"new", 3) == 0)
4153 if (strncmp (tokstart,
"int", 3) == 0)
4199 char *res = cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI,
4200 result, estimated_len, &
err);
4218 while (
info != NULL)
4227 obstack_free (&
obstack, NULL);
4242 struct demangle_component *target,
4249 *target = *src->
tree;
4251 while (di->
next != NULL)
4268 static char errbuf[60];
4283 snprintf (errbuf,
sizeof (errbuf) - 2,
"%s, near `%s",
4285 strcat (errbuf,
"'");
4300 cp_print (
struct demangle_component *result)
4305 str = cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI, result, 64, &
err);
4309 fputs (str, stdout);
4315 trim_chars (
char *
lexptr,
char **extra_chars)
4324 *extra_chars = p + 1;
4339 CONCAT2 (fr,ee) (ptr);
4347 internal_error (
const char *file,
int line,
const char *fmt, ...)
4352 fprintf (stderr,
"%s:%d: internal error: ", file, line);
4353 vfprintf (stderr, fmt, ap);
4360 char *str2, *extra_chars, c;
4366 if (
argv[arg] && strcmp (
argv[arg],
"--debug") == 0)
4372 if (
argv[arg] == NULL)
4373 while (fgets (buf, 65536, stdin) != NULL)
4376 buf[strlen (buf) - 1] = 0;
4378 c = trim_chars (buf, &extra_chars);
4379 str2 = cplus_demangle (buf, DMGL_PARAMS | DMGL_ANSI | DMGL_VERBOSE);
4382 printf (
"Demangling error\n");
4384 printf (
"%s%c%s\n", buf, c, extra_chars);
4386 printf (
"%s\n", buf);
4390 std::unique_ptr<demangle_parse_info> result
4395 fputc (
'\n', stderr);
4399 cp_print (result->tree);
4405 fputs (extra_chars, stdout);
4411 std::unique_ptr<demangle_parse_info> result
4416 fputc (
'\n', stderr);
4419 cp_print (result->tree);
mach_port_t mach_port_t name mach_port_t mach_port_t name kern_return_t err
static const yytype_uint16 yyrline[]
#define HANDLE_QUAL(TYPE, MTYPE, QUAL)
static bool cp_ident_is_alnum(unsigned char ch)
struct std::unique_ptr< demangle_parse_info > cp_demangled_name_to_comp(const char *demangled_name, const char **errmsg)
static int parse_number(const char *p, int len, int parsed_float)
static char backslashable[]
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
void cp_merge_demangle_parse_infos(struct demangle_parse_info *dest, struct demangle_component *target, struct demangle_parse_info *src)
#define CONSTRUCTION_VTABLE
struct demangle_component * start
gdb::unique_xmalloc_ptr< char > cp_comp_to_string(struct demangle_component *result, int estimated_len)
static const yytype_uint8 yystos[]
#define HANDLE_TOKEN3(string, token)
void internal_error(const char *file, int line, const char *fmt,...)
struct demangle_component * tree
static int c_parse_backslash(int host_char, int *target_char)
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
static const char *const yytname[]
#define YYPRINT(FILE, TYPE, VALUE)
static const char * global_errmsg
struct demangle_component * last
static struct demangle_info * allocate_info(void)
struct demangle_component ** last
struct demangle_info * info
static struct demangle_component * global_result
mach_port_t kern_return_t mach_port_t msgports mach_port_t kern_return_t pid_t pid mach_port_t kern_return_t mach_port_t task mach_port_t kern_return_t int flags
static struct demangle_component * make_builtin_type(const char *name)
#define HANDLE_TOKEN2(string, token)
static const char * error_lexptr
std::unique_ptr< T, xfree_deleter< T > > unique_xmalloc_ptr
static void yy_symbol_value_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep)
static void yy_symbol_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep)
static const yytype_int16 yypgoto[]
static struct demangle_component * d_grab(void)
#define YY_REDUCE_PRINT(Rule)
struct demangle_component * comp
struct demangle_component comps[ALLOC_CHUNK]
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static const yytype_uint16 yytoknum[]
#define yypact_value_is_default(Yystate)
static bool cp_ident_is_alpha(unsigned char ch)
unsigned short int yytype_uint16
unsigned short int yytype_uint16
struct YYSTYPE::nested nested
#define yytable_value_is_error(Yytable_value)
unsigned char yytype_uint8
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
static struct demangle_component * d_qualify(struct demangle_component *, int, int)
static struct demangle_component * d_int_type(int)
static struct demangle_component * fill_comp(enum demangle_component_type d_type, struct demangle_component *lhs, struct demangle_component *rhs)
struct YYSTYPE::@30 nested1
static const yytype_int16 yydefgoto[]
static void yydestruct(const char *yymsg, int yytype, YYSTYPE *yyvaluep)
static const yytype_uint8 yydefact[]
static const char * lexptr
#define YYSTACK_ALLOC_MAXIMUM
static struct demangle_component * make_name(const char *name, int len)
#define DEMANGLER_SPECIAL
unsigned char yytype_uint8
#define YY_STACK_PRINT(Bottom, Top)
static struct demangle_component * make_dtor(enum gnu_v3_dtor_kinds kind, struct demangle_component *name)
struct demangle_info * next
struct demangle_component * comp
#define HANDLE_SPECIAL(string, comp)
static struct demangle_info * demangle_info
static const yytype_uint8 yytranslate[]
static struct demangle_component * d_binary(const char *, struct demangle_component *, struct demangle_component *)
static const char * symbol_end(const char *lexptr)
struct demangle_component ** last
static int cp_parse_escape(const char **string_ptr)
static char represented[]
static struct demangle_component * d_unary(const char *, struct demangle_component *)
static const char * prev_lexptr
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop)
static struct demangle_component * make_operator(const char *name, int args)
static void yy_reduce_print(yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)