52#define YYBISON_VERSION "3.8.2"
55#define YYSKELETON_NAME "yacc.c"
70#line 38 "cp-name-parser.y"
76#include "safe-ctype.h"
82#define GDB_YY_REMAP_PREFIX cpname
88#define ALLOC_CHUNK 100
97#line 98 "cp-name-parser.c.tmp"
101# define YY_CAST(Type, Val) static_cast<Type> (Val)
102# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
104# define YY_CAST(Type, Val) ((Type) (Val))
105# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
108# ifndef YY_NULLPTRPTR
109# if defined __cplusplus
110# if 201103L <= __cplusplus
111# define YY_NULLPTRPTR nullptr
113# define YY_NULLPTRPTR 0
116# define YY_NULLPTRPTR ((void*)0)
205#define COLONCOLON 267
211#define STATIC_CAST 273
212#define REINTERPRET_CAST 274
213#define DYNAMIC_CAST 275
214#define SIGNED_KEYWORD 276
217#define INT_KEYWORD 279
218#define CONST_KEYWORD 280
219#define VOLATILE_KEYWORD 281
220#define DOUBLE_KEYWORD 282
225#define FLOAT_KEYWORD 287
228#define ASSIGN_MODIFY 290
229#define TRUEKEYWORD 291
230#define FALSEKEYWORD 292
231#define DEMANGLER_SPECIAL 293
232#define CONSTRUCTION_VTABLE 294
233#define CONSTRUCTION_IN 295
248#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
251#line 66 "cp-name-parser.y"
253 struct demangle_component *
comp;
255 struct demangle_component *
comp;
256 struct demangle_component **
last;
259 struct demangle_component *comp, *
last;
262 struct demangle_component *comp, **
last;
271#line 272 "cp-name-parser.c.tmp"
275# define YYSTYPE_IS_TRIVIAL 1
276# define YYSTYPE_IS_DECLARED 1
410#line 85 "cp-name-parser.y"
429 struct demangle_component *
d_grab ();
435 struct demangle_component *
fill_comp (
enum demangle_component_type d_type,
436 struct demangle_component *lhs,
437 struct demangle_component *rhs);
441 struct demangle_component *
make_dtor (
enum gnu_v3_dtor_kinds kind,
442 struct demangle_component *
name);
446 struct demangle_component *
make_name (
const char *
name,
int len);
448 struct demangle_component *
d_qualify (
struct demangle_component *lhs,
449 int qualifiers,
int is_method);
453 struct demangle_component *
d_unary (
const char *
name,
454 struct demangle_component *lhs);
457 struct demangle_component *lhs,
458 struct demangle_component *rhs);
463struct demangle_component *
488#define QUAL_RESTRICT 2
489#define QUAL_VOLATILE 4
493#define INT_CHAR (1 << 0)
494#define INT_SHORT (1 << 1)
495#define INT_LONG (1 << 2)
496#define INT_LLONG (1 << 3)
498#define INT_SIGNED (1 << 4)
499#define INT_UNSIGNED (1 << 5)
509struct demangle_component *
511 struct demangle_component *lhs,
512 struct demangle_component *rhs)
514 struct demangle_component *ret =
d_grab ();
517 i = cplus_demangle_fill_component (ret, d_type, lhs, rhs);
523struct demangle_component *
526 struct demangle_component *ret =
d_grab ();
529 i = cplus_demangle_fill_operator (ret,
name, args);
535struct demangle_component *
537 struct demangle_component *
name)
539 struct demangle_component *ret =
d_grab ();
542 i = cplus_demangle_fill_dtor (ret, kind,
name);
548struct demangle_component *
551 struct demangle_component *ret =
d_grab ();
554 i = cplus_demangle_fill_builtin_type (ret,
name);
560struct demangle_component *
563 struct demangle_component *ret =
d_grab ();
566 i = cplus_demangle_fill_name (ret,
name, len);
572#define d_left(dc) (dc)->u.s_binary.left
573#define d_right(dc) (dc)->u.s_binary.right
578#line 579 "cp-name-parser.c.tmp"
589#ifndef __PTRDIFF_MAX__
591# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
602#ifdef __INT_LEAST8_MAX__
604#elif defined YY_STDINT_H
610#ifdef __INT_LEAST16_MAX__
612#elif defined YY_STDINT_H
624# undef UINT_LEAST8_MAX
625# undef UINT_LEAST16_MAX
626# define UINT_LEAST8_MAX 255
627# define UINT_LEAST16_MAX 65535
630#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
632#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
633 && UINT_LEAST8_MAX <= INT_MAX)
635#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
641#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
643#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
644 && UINT_LEAST16_MAX <= INT_MAX)
646#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
653# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
654# define YYPTRDIFF_T __PTRDIFF_TYPE__
655# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
656# elif defined PTRDIFF_MAX
660# define YYPTRDIFF_T ptrdiff_t
661# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
663# define YYPTRDIFF_T long
664# define YYPTRDIFF_MAXIMUM LONG_MAX
670# define YYSIZE_T __SIZE_TYPE__
672# define YYSIZE_T size_t
673# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
675# define YYSIZE_T size_t
677# define YYSIZE_T unsigned
681#define YYSIZE_MAXIMUM \
682 YY_CAST (YYPTRDIFF_T, \
683 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
684 ? YYPTRDIFF_MAXIMUM \
685 : YY_CAST (YYSIZE_T, -1)))
687#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
697# if defined YYENABLE_NLS && YYENABLE_NLS
700# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
704# define YY_(Msgid) Msgid
709#ifndef YY_ATTRIBUTE_PURE
710# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
711# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
713# define YY_ATTRIBUTE_PURE
717#ifndef YY_ATTRIBUTE_UNUSED
718# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
719# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
721# define YY_ATTRIBUTE_UNUSED
726#if ! defined lint || defined __GNUC__
727# define YY_USE(E) ((void) (E))
733#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
734# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
735# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
736 _Pragma ("GCC diagnostic push") \
737 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
739# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
740 _Pragma ("GCC diagnostic push") \
741 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
742 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
744# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
745 _Pragma ("GCC diagnostic pop")
747# define YY_INITIAL_VALUE(Value) Value
749#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
750# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
751# define YY_IGNORE_MAYBE_UNINITIALIZED_END
753#ifndef YY_INITIAL_VALUE
754# define YY_INITIAL_VALUE(Value)
757#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
758# define YY_IGNORE_USELESS_CAST_BEGIN \
759 _Pragma ("GCC diagnostic push") \
760 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
761# define YY_IGNORE_USELESS_CAST_END \
762 _Pragma ("GCC diagnostic pop")
764#ifndef YY_IGNORE_USELESS_CAST_BEGIN
765# define YY_IGNORE_USELESS_CAST_BEGIN
766# define YY_IGNORE_USELESS_CAST_END
770#define YY_ASSERT(E) ((void) (0 && (E)))
772#if !defined yyoverflow
776# ifdef YYSTACK_USE_ALLOCA
777# if YYSTACK_USE_ALLOCA
779# define YYSTACK_ALLOC __builtin_alloca
780# elif defined __BUILTIN_VA_ARG_INCR
783# define YYSTACK_ALLOC __alloca
784# elif defined _MSC_VER
785# define alloca _alloca
787# define YYSTACK_ALLOC alloca
788# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
792# define EXIT_SUCCESS 0
801# define YYSTACK_FREE(Ptr) do { ; } while (0)
802# ifndef YYSTACK_ALLOC_MAXIMUM
807# define YYSTACK_ALLOC_MAXIMUM 4032
810# define YYSTACK_ALLOC YYMALLOC
811# define YYSTACK_FREE YYFREE
812# ifndef YYSTACK_ALLOC_MAXIMUM
813# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
815# if (defined __cplusplus && ! defined EXIT_SUCCESS \
816 && ! ((defined YYMALLOC || defined xmalloc) \
817 && (defined YYFREE || defined xfree)))
820# define EXIT_SUCCESS 0
824# define YYMALLOC xmalloc
825# if ! defined xmalloc && ! defined EXIT_SUCCESS
831# if ! defined xfree && ! defined EXIT_SUCCESS
838#if (! defined yyoverflow \
839 && (! defined __cplusplus \
840 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
850# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
854# define YYSTACK_BYTES(N) \
855 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
856 + YYSTACK_GAP_MAXIMUM)
858# define YYCOPY_NEEDED 1
865# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
868 YYPTRDIFF_T yynewbytes; \
869 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
870 Stack = &yyptr->Stack_alloc; \
871 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
872 yyptr += yynewbytes / YYSIZEOF (*yyptr); \
878#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
882# if defined __GNUC__ && 1 < __GNUC__
883# define YYCOPY(Dst, Src, Count) \
884 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
886# define YYCOPY(Dst, Src, Count) \
890 for (yyi = 0; yyi < (Count); yyi++) \
891 (Dst)[yyi] = (Src)[yyi]; \
918#define YYTRANSLATE(YYX) \
919 (0 <= (YYX) && (YYX) <= YYMAXUTOK \
920 ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
927 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
928 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
929 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
930 2, 2, 2, 72, 2, 2, 2, 63, 49, 2,
931 73, 41, 61, 59, 42, 60, 68, 62, 2, 2,
932 2, 2, 2, 2, 2, 2, 2, 2, 74, 2,
933 52, 43, 53, 44, 58, 2, 2, 2, 2, 2,
934 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
935 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
936 2, 69, 2, 70, 48, 2, 2, 2, 2, 2,
937 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
938 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
939 2, 2, 2, 2, 47, 2, 71, 2, 2, 2,
940 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
941 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
942 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
943 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
944 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
945 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
946 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
947 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
948 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
949 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
950 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
951 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
952 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
953 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
954 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
955 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
956 35, 36, 37, 38, 39, 40, 45, 46, 50, 51,
957 54, 55, 56, 57, 64, 65, 66, 67
964 0, 348, 348, 357, 359, 361, 366, 367, 374, 383,
965 390, 394, 397, 416, 418, 422, 428, 434, 440, 446,
966 448, 450, 452, 454, 456, 458, 460, 462, 464, 466,
967 468, 470, 472, 474, 476, 478, 480, 482, 484, 486,
968 488, 490, 492, 494, 496, 498, 500, 502, 510, 515,
969 520, 524, 529, 537, 538, 540, 552, 553, 559, 561,
970 562, 564, 567, 568, 571, 572, 576, 578, 581, 585,
971 590, 594, 603, 607, 610, 621, 622, 626, 628, 630,
972 633, 637, 642, 647, 653, 663, 667, 671, 679, 680,
973 683, 685, 687, 691, 692, 699, 701, 703, 705, 707,
974 709, 713, 714, 718, 720, 722, 724, 726, 728, 730,
975 734, 739, 742, 745, 751, 759, 761, 775, 777, 778,
976 780, 783, 785, 786, 788, 791, 793, 795, 797, 802,
977 805, 810, 817, 821, 832, 838, 856, 859, 867, 869,
978 880, 887, 888, 894, 898, 902, 904, 909, 914, 926,
979 930, 934, 942, 947, 956, 960, 965, 970, 974, 980,
980 986, 989, 996, 998, 1003, 1007, 1011, 1018, 1034, 1041,
981 1048, 1067, 1071, 1075, 1079, 1083, 1087, 1091, 1095, 1099,
982 1103, 1107, 1111, 1115, 1119, 1123, 1127, 1131, 1136, 1140,
983 1144, 1151, 1155, 1158, 1167, 1176
988#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
999 "\"end of file\"",
"error",
"\"invalid token\"",
"INT",
"FLOAT",
"NAME",
1000 "STRUCT",
"CLASS",
"UNION",
"ENUM",
"SIZEOF",
"UNSIGNED",
"COLONCOLON",
1001 "TEMPLATE",
"ERROR",
"NEW",
"DELETE",
"OPERATOR",
"STATIC_CAST",
1002 "REINTERPRET_CAST",
"DYNAMIC_CAST",
"SIGNED_KEYWORD",
"LONG",
"SHORT",
1003 "INT_KEYWORD",
"CONST_KEYWORD",
"VOLATILE_KEYWORD",
"DOUBLE_KEYWORD",
1004 "BOOL",
"ELLIPSIS",
"RESTRICT",
"VOID",
"FLOAT_KEYWORD",
"CHAR",
1005 "WCHAR_T",
"ASSIGN_MODIFY",
"TRUEKEYWORD",
"FALSEKEYWORD",
1006 "DEMANGLER_SPECIAL",
"CONSTRUCTION_VTABLE",
"CONSTRUCTION_IN",
"')'",
1007 "','",
"'='",
"'?'",
"OROR",
"ANDAND",
"'|'",
"'^'",
"'&'",
"EQUAL",
1008 "NOTEQUAL",
"'<'",
"'>'",
"LEQ",
"GEQ",
"LSH",
"RSH",
"'@'",
"'+'",
1009 "'-'",
"'*'",
"'/'",
"'%'",
"UNARY",
"INCREMENT",
"DECREMENT",
"ARROW",
1010 "'.'",
"'['",
"']'",
"'~'",
"'!'",
"'('",
"':'",
"$accept",
"result",
1011 "start",
"start_opt",
"function",
"demangler_special",
"oper",
1012 "conversion_op",
"conversion_op_name",
"unqualified_name",
"colon_name",
1013 "name",
"colon_ext_name",
"colon_ext_only",
"ext_only_name",
1014 "nested_name",
"templ",
"template_params",
"template_arg",
1015 "function_args",
"function_arglist",
"qualifiers_opt",
"qualifier",
1016 "qualifiers",
"int_part",
"int_seq",
"builtin_type",
"ptr_operator",
1017 "array_indicator",
"typespec_2",
"abstract_declarator",
1018 "direct_abstract_declarator",
"abstract_declarator_fn",
"type",
1019 "declarator",
"direct_declarator",
"declarator_1",
"direct_declarator_1",
1030#define YYPACT_NINF (-187)
1032#define yypact_value_is_default(Yyn) \
1033 ((Yyn) == YYPACT_NINF)
1035#define YYTABLE_NINF (-1)
1037#define yytable_value_is_error(Yyn) \
1044 833, 39, -187, 42, 540, -187, -12, -187, -187, -187,
1045 -187, -187, -187, -187, -187, -187, -187, -187, 833, 833,
1046 27, 41, -187, -187, -187, 5, -187, 710, -187, 36,
1047 -5, -187, 43, 65, 36, 506, -187, 120, 36, 711,
1048 -187, -187, 329, -187, 36, -187, 43, 73, 16, 21,
1049 -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
1050 -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
1051 -187, -187, -187, 34, 30, -187, -187, 64, 115, -187,
1052 -187, -187, 83, -187, -187, 329, 39, 833, -187, -187,
1053 36, 6, 603, -187, 12, 65, 98, 750, -187, -49,
1054 -187, -187, 857, 98, 70, -187, -187, 124, -187, -187,
1055 73, 36, 36, -187, -187, -187, 48, 860, 603, -187,
1056 -187, -49, -187, 23, 98, 720, -187, -49, -187, -49,
1057 -187, -187, 53, 80, 87, 95, -187, -187, 656, 476,
1058 476, 476, 428, 10, -187, 780, 325, -187, -187, 79,
1059 82, -187, -187, -187, 833, 22, -187, 28, -187, -187,
1060 89, -187, 73, 116, 36, 780, 37, 114, 780, 780,
1061 123, 70, 36, 124, 833, -187, 161, -187, 166, -187,
1062 -187, -187, -187, 36, -187, -187, -187, 50, 729, 168,
1063 -187, -187, 780, -187, -187, -187, 169, -187, 979, 979,
1064 979, 979, 833, -187, 105, 105, 105, 680, 780, 142,
1065 970, 143, 329, -187, -187, 476, 476, 476, 476, 476,
1066 476, 476, 476, 476, 476, 476, 476, 476, 476, 476,
1067 476, 476, 476, 180, 181, -187, -187, -187, -187, 36,
1068 -187, 45, 36, -187, 36, 949, -187, -187, -187, 51,
1069 833, -187, 729, -187, 729, 148, -49, 833, 833, 152,
1070 138, 141, 144, 154, 833, -187, 476, 476, -187, -187,
1071 890, 993, 1015, 1036, 1056, 359, 753, 753, 1069, 1069,
1072 1069, 241, 241, 178, 178, 105, 105, 105, -187, -187,
1073 -187, -187, -187, -187, 780, -187, 157, -187, -187, -187,
1074 -187, -187, -187, -187, 126, 128, 131, -187, 164, 105,
1075 325, 476, -187, -187, 471, 471, 471, -187, 325, 188,
1076 189, 192, -187, -187, -187
1084 0, 59, 97, 0, 0, 96, 99, 100, 95, 92,
1085 91, 105, 107, 90, 109, 104, 98, 108, 0, 0,
1086 0, 0, 2, 5, 4, 53, 50, 6, 67, 122,
1087 0, 64, 0, 61, 93, 0, 101, 103, 118, 141,
1088 3, 68, 0, 52, 126, 65, 0, 0, 15, 16,
1089 32, 43, 29, 40, 39, 26, 24, 25, 35, 36,
1090 30, 31, 37, 38, 33, 34, 19, 20, 21, 22,
1091 23, 41, 42, 45, 0, 27, 28, 0, 0, 48,
1092 106, 13, 0, 55, 1, 0, 0, 0, 112, 111,
1093 88, 0, 0, 11, 0, 0, 6, 136, 135, 138,
1094 12, 121, 0, 6, 58, 49, 66, 60, 70, 94,
1095 0, 124, 120, 99, 102, 117, 0, 0, 0, 62,
1096 56, 150, 63, 0, 6, 129, 142, 131, 8, 151,
1097 191, 192, 0, 0, 0, 0, 194, 195, 0, 0,
1098 0, 0, 0, 0, 73, 75, 79, 125, 51, 0,
1099 0, 44, 47, 46, 0, 0, 7, 0, 110, 89,
1100 0, 115, 0, 109, 88, 0, 0, 0, 129, 80,
1101 0, 0, 88, 0, 0, 140, 0, 137, 133, 134,
1102 10, 69, 71, 128, 123, 119, 57, 0, 129, 157,
1103 158, 9, 0, 130, 149, 133, 155, 156, 0, 0,
1104 0, 0, 0, 77, 164, 166, 165, 0, 141, 0,
1105 160, 0, 0, 72, 76, 0, 0, 0, 0, 0,
1106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1107 0, 0, 0, 0, 0, 17, 18, 14, 54, 88,
1108 116, 0, 88, 87, 88, 0, 81, 132, 113, 0,
1109 0, 127, 0, 148, 129, 0, 144, 0, 0, 0,
1110 0, 0, 0, 0, 0, 162, 0, 0, 159, 74,
1111 0, 187, 186, 185, 184, 183, 178, 179, 182, 180,
1112 181, 176, 177, 174, 175, 171, 172, 173, 188, 189,
1113 114, 86, 85, 84, 82, 139, 0, 143, 154, 146,
1114 147, 152, 153, 193, 0, 0, 0, 78, 0, 167,
1115 161, 0, 83, 145, 0, 0, 0, 163, 190, 0,
1122 -187, -187, 25, -66, -187, -187, -187, 3, -187, -20,
1123 -187, -1, -32, 15, 1, 0, 150, 149, 31, -187,
1124 -25, -156, -187, 234, 205, -187, 213, -17, -98, 196,
1125 -18, -16, 158, -129, -106, -187, 134, -187, -6, -186
1131 0, 21, 156, 93, 23, 24, 25, 26, 27, 28,
1132 119, 29, 253, 30, 31, 78, 33, 143, 144, 167,
1133 96, 158, 34, 35, 36, 37, 38, 168, 98, 39,
1134 170, 127, 100, 40, 255, 256, 128, 129, 210, 211
1142 32, 179, 44, 46, 45, 103, 43, 121, 243, 160,
1143 97, 99, 106, 209, 124, 80, 248, 171, 32, 32,
1144 91, 126, 125, 190, 102, 22, 106, 94, 104, 179,
1145 175, 197, 83, 104, 111, 105, 146, 180, 120, 123,
1146 117, 84, 104, 81, 82, 4, 44, 1, 104, 148,
1147 104, 41, 212, 1, 122, 104, 171, 85, 191, 4,
1148 4, 9, 10, 213, 212, 117, 13, 117, 102, 259,
1149 260, 261, 262, 172, 178, 238, 161, 108, 1, 146,
1150 97, 99, 181, 290, 172, 149, 291, 157, 292, 239,
1151 150, 42, 166, 121, 20, 151, 189, 94, 172, 20,
1152 152, 188, 195, 106, 196, 153, 239, 193, 125, 183,
1153 174, 239, 239, 20, 20, 186, 187, 45, 166, 20,
1154 104, 20, 42, 154, 120, 123, 198, 214, 319, 320,
1155 321, 2, 199, 204, 205, 206, 182, 106, 32, 200,
1156 122, 5, 113, 7, 8, 94, 296, 201, 297, 235,
1157 193, 246, 236, 16, 32, 244, 245, 242, 300, 240,
1158 105, 44, 241, 203, 247, 94, 86, 106, 94, 94,
1159 193, 254, 233, 234, 32, 188, 249, 95, 250, 237,
1160 257, 258, 107, 266, 268, 288, 289, 120, 123, 298,
1161 126, 304, 94, 303, 305, 307, 107, 306, 313, 314,
1162 79, 315, 32, 122, 316, 317, 146, 32, 94, 270,
1163 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
1164 281, 282, 283, 284, 285, 286, 287, 263, 107, 322,
1165 323, 299, 265, 324, 155, 254, 193, 254, 145, 230,
1166 231, 232, 114, 269, 173, 233, 234, 95, 112, 0,
1167 32, 120, 123, 120, 123, 177, 0, 32, 32, 194,
1168 309, 310, 0, 101, 32, 0, 0, 122, 109, 122,
1169 0, 0, 115, 107, 0, 295, 312, 0, 147, 0,
1170 0, 145, 301, 302, 0, 0, 0, 0, 169, 308,
1171 0, 0, 0, 0, 94, 95, 0, 0, 169, 0,
1172 228, 229, 230, 231, 232, 318, 0, 107, 233, 234,
1173 0, 0, 0, 0, 169, 95, 107, 0, 95, 95,
1174 0, 0, 0, 0, 159, 0, 95, 0, 0, 0,
1175 0, 0, 130, 131, 1, 0, 0, 107, 208, 132,
1176 2, 47, 95, 0, 0, 184, 185, 133, 134, 135,
1177 5, 6, 7, 8, 9, 10, 11, 12, 95, 13,
1178 14, 15, 16, 17, 0, 136, 137, 0, 0, 215,
1179 216, 217, 218, 219, 220, 221, 222, 223, 138, 224,
1180 225, 226, 227, 0, 228, 229, 230, 231, 232, 139,
1181 0, 107, 233, 234, 208, 208, 208, 208, 159, 173,
1182 140, 141, 142, 0, 0, 0, 159, 0, 145, 221,
1183 222, 223, 0, 224, 225, 226, 227, 251, 228, 229,
1184 230, 231, 232, 0, 0, 0, 233, 234, 0, 0,
1185 0, 130, 131, 1, 0, 0, 0, 0, 132, 2,
1186 47, 294, 0, 0, 95, 0, 133, 134, 135, 5,
1187 6, 7, 8, 9, 10, 11, 12, 0, 13, 14,
1188 15, 16, 17, 0, 136, 137, 0, 0, 0, 0,
1189 0, 0, 0, 159, 130, 131, 159, 207, 159, 130,
1190 131, 132, 0, 0, 0, 0, 132, 0, 139, 133,
1191 134, 135, 0, 0, 133, 134, 135, 0, 0, 140,
1192 141, 142, 0, 0, 0, 0, 0, 136, 137, 0,
1193 0, 1, 136, 137, 0, 0, 0, 2, 110, 0,
1194 207, 0, 0, 0, 0, 0, 0, 5, 6, 7,
1195 8, 139, 0, 11, 12, 0, 139, 14, 15, 16,
1196 17, 0, 140, 141, 142, 1, 0, 140, 141, 142,
1197 0, 2, 47, 0, 0, 48, 49, 0, 0, 0,
1198 0, 5, 6, 7, 8, 9, 10, 11, 12, 0,
1199 13, 14, 15, 16, 17, 50, 0, 0, 0, 0,
1200 0, 0, 51, 52, 0, 53, 54, 55, 56, 57,
1201 58, 59, 60, 61, 62, 63, 64, 65, 0, 66,
1202 67, 68, 69, 70, 0, 71, 72, 73, 1, 74,
1203 0, 75, 76, 77, 2, 162, 0, 0, 0, 0,
1204 0, 0, 0, 0, 5, 6, 7, 8, 9, 10,
1205 11, 12, 0, 13, 163, 15, 16, 17, 0, 0,
1206 0, 0, 0, 0, 164, 0, 0, 0, 0, 88,
1207 0, 0, 89, 0, 0, 0, 0, 0, 0, 0,
1208 0, 1, 0, 0, 90, 0, 0, 2, 3, 0,
1209 0, 0, 91, 4, 0, 0, 165, 5, 6, 7,
1210 8, 9, 10, 11, 12, 1, 13, 14, 15, 16,
1211 17, 2, 3, 0, 18, 19, 0, 4, 0, 0,
1212 0, 5, 6, 7, 8, 9, 10, 11, 12, 0,
1213 13, 14, 15, 16, 17, 86, 1, 0, 18, 19,
1214 0, 0, 87, 116, 0, 1, 0, 20, 117, 202,
1215 0, 0, 116, 0, 1, 0, 0, 117, 0, 0,
1216 0, 116, 0, 0, 0, 0, 117, 0, 0, 0,
1217 0, 20, 0, 264, 0, 86, 88, 88, 0, 89,
1218 89, 0, 176, 0, 0, 0, 88, 0, 0, 89,
1219 0, 90, 90, 0, 0, 88, 0, 0, 89, 91,
1220 91, 90, 20, 92, 118, 86, 0, 0, 0, 91,
1221 90, 20, 176, 192, 0, 0, 88, 0, 91, 89,
1222 20, 0, 252, 0, 0, 223, 0, 224, 225, 226,
1223 227, 90, 228, 229, 230, 231, 232, 0, 0, 91,
1224 233, 234, 0, 92, 0, 0, 88, 0, 0, 89,
1225 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
1226 0, 90, 0, 0, 2, 3, 0, 0, 0, 91,
1227 4, 0, 0, 165, 5, 6, 7, 8, 9, 10,
1228 11, 12, 1, 13, 14, 15, 16, 17, 2, 47,
1229 0, 18, 19, 0, 0, 48, 49, 0, 5, 6,
1230 7, 8, 9, 10, 11, 12, 0, 13, 163, 15,
1231 16, 17, 0, 0, 0, 50, 0, 0, 164, 0,
1232 0, 0, 51, 52, 20, 53, 54, 55, 56, 57,
1233 58, 59, 60, 61, 62, 63, 64, 65, 0, 66,
1234 67, 68, 69, 70, 0, 71, 72, 73, 0, 74,
1235 0, 75, 76, 77, 215, 216, 217, 218, 219, 220,
1236 221, 222, 223, 0, 224, 225, 226, 227, 0, 228,
1237 229, 230, 231, 232, 1, 0, 0, 233, 234, 0,
1238 2, 47, 0, 0, 311, 0, 0, 0, 0, 0,
1239 5, 6, 7, 8, 9, 10, 11, 12, 293, 13,
1240 14, 15, 16, 17, 1, 0, 0, 0, 0, 0,
1241 2, 47, 0, 0, 0, 0, 0, 0, 0, 0,
1242 5, 6, 7, 8, 9, 10, 11, 12, 0, 13,
1243 14, 15, 16, 17, 215, 216, 217, 218, 219, 220,
1244 221, 222, 223, 267, 224, 225, 226, 227, 0, 228,
1245 229, 230, 231, 232, 0, 0, 0, 233, 234, 217,
1246 218, 219, 220, 221, 222, 223, 0, 224, 225, 226,
1247 227, 0, 228, 229, 230, 231, 232, 0, 0, 0,
1248 233, 234, 218, 219, 220, 221, 222, 223, 0, 224,
1249 225, 226, 227, 0, 228, 229, 230, 231, 232, 0,
1250 0, 0, 233, 234, 219, 220, 221, 222, 223, 0,
1251 224, 225, 226, 227, 0, 228, 229, 230, 231, 232,
1252 0, 0, 0, 233, 234, 220, 221, 222, 223, 0,
1253 224, 225, 226, 227, 0, 228, 229, 230, 231, 232,
1254 0, 0, 0, 233, 234, 226, 227, 0, 228, 229,
1255 230, 231, 232, 0, 0, 0, 233, 234
1260 0, 99, 3, 3, 3, 30, 3, 39, 164, 3,
1261 27, 27, 32, 142, 39, 27, 172, 5, 18, 19,
1262 69, 39, 39, 121, 73, 0, 46, 27, 5, 127,
1263 96, 129, 5, 5, 35, 32, 42, 103, 39, 39,
1264 17, 0, 5, 18, 19, 17, 47, 5, 5, 46,
1265 5, 12, 42, 5, 39, 5, 5, 52, 124, 17,
1266 17, 25, 26, 53, 42, 17, 30, 17, 73, 198,
1267 199, 200, 201, 61, 99, 53, 70, 12, 5, 85,
1268 97, 97, 12, 239, 61, 69, 242, 87, 244, 61,
1269 69, 52, 92, 125, 71, 61, 121, 97, 61, 71,
1270 70, 118, 127, 123, 129, 41, 61, 125, 125, 110,
1271 12, 61, 61, 71, 71, 116, 116, 116, 118, 71,
1272 5, 71, 52, 40, 125, 125, 73, 145, 314, 315,
1273 316, 11, 52, 139, 140, 141, 12, 157, 138, 52,
1274 125, 21, 22, 23, 24, 145, 252, 52, 254, 70,
1275 168, 169, 70, 33, 154, 41, 42, 41, 256, 70,
1276 157, 162, 162, 138, 41, 165, 5, 187, 168, 169,
1277 188, 188, 67, 68, 174, 192, 176, 27, 12, 154,
1278 12, 12, 32, 41, 41, 5, 5, 188, 188, 41,
1279 208, 53, 192, 41, 53, 41, 46, 53, 41, 73,
1280 4, 73, 202, 188, 73, 41, 212, 207, 208, 215,
1281 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1282 226, 227, 228, 229, 230, 231, 232, 202, 78, 41,
1283 41, 256, 207, 41, 85, 252, 254, 254, 42, 61,
1284 62, 63, 37, 212, 94, 67, 68, 97, 35, -1,
1285 250, 252, 252, 254, 254, 97, -1, 257, 258, 125,
1286 266, 267, -1, 29, 264, -1, -1, 252, 34, 254,
1287 -1, -1, 38, 123, -1, 250, 294, -1, 44, -1,
1288 -1, 85, 257, 258, -1, -1, -1, -1, 92, 264,
1289 -1, -1, -1, -1, 294, 145, -1, -1, 102, -1,
1290 59, 60, 61, 62, 63, 311, -1, 157, 67, 68,
1291 -1, -1, -1, -1, 118, 165, 166, -1, 168, 169,
1292 -1, -1, -1, -1, 90, -1, 176, -1, -1, -1,
1293 -1, -1, 3, 4, 5, -1, -1, 187, 142, 10,
1294 11, 12, 192, -1, -1, 111, 112, 18, 19, 20,
1295 21, 22, 23, 24, 25, 26, 27, 28, 208, 30,
1296 31, 32, 33, 34, -1, 36, 37, -1, -1, 44,
1297 45, 46, 47, 48, 49, 50, 51, 52, 49, 54,
1298 55, 56, 57, -1, 59, 60, 61, 62, 63, 60,
1299 -1, 241, 67, 68, 198, 199, 200, 201, 164, 249,
1300 71, 72, 73, -1, -1, -1, 172, -1, 212, 50,
1301 51, 52, -1, 54, 55, 56, 57, 183, 59, 60,
1302 61, 62, 63, -1, -1, -1, 67, 68, -1, -1,
1303 -1, 3, 4, 5, -1, -1, -1, -1, 10, 11,
1304 12, 245, -1, -1, 294, -1, 18, 19, 20, 21,
1305 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
1306 32, 33, 34, -1, 36, 37, -1, -1, -1, -1,
1307 -1, -1, -1, 239, 3, 4, 242, 49, 244, 3,
1308 4, 10, -1, -1, -1, -1, 10, -1, 60, 18,
1309 19, 20, -1, -1, 18, 19, 20, -1, -1, 71,
1310 72, 73, -1, -1, -1, -1, -1, 36, 37, -1,
1311 -1, 5, 36, 37, -1, -1, -1, 11, 12, -1,
1312 49, -1, -1, -1, -1, -1, -1, 21, 22, 23,
1313 24, 60, -1, 27, 28, -1, 60, 31, 32, 33,
1314 34, -1, 71, 72, 73, 5, -1, 71, 72, 73,
1315 -1, 11, 12, -1, -1, 15, 16, -1, -1, -1,
1316 -1, 21, 22, 23, 24, 25, 26, 27, 28, -1,
1317 30, 31, 32, 33, 34, 35, -1, -1, -1, -1,
1318 -1, -1, 42, 43, -1, 45, 46, 47, 48, 49,
1319 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
1320 60, 61, 62, 63, -1, 65, 66, 67, 5, 69,
1321 -1, 71, 72, 73, 11, 12, -1, -1, -1, -1,
1322 -1, -1, -1, -1, 21, 22, 23, 24, 25, 26,
1323 27, 28, -1, 30, 31, 32, 33, 34, -1, -1,
1324 -1, -1, -1, -1, 41, -1, -1, -1, -1, 46,
1325 -1, -1, 49, -1, -1, -1, -1, -1, -1, -1,
1326 -1, 5, -1, -1, 61, -1, -1, 11, 12, -1,
1327 -1, -1, 69, 17, -1, -1, 73, 21, 22, 23,
1328 24, 25, 26, 27, 28, 5, 30, 31, 32, 33,
1329 34, 11, 12, -1, 38, 39, -1, 17, -1, -1,
1330 -1, 21, 22, 23, 24, 25, 26, 27, 28, -1,
1331 30, 31, 32, 33, 34, 5, 5, -1, 38, 39,
1332 -1, -1, 12, 12, -1, 5, -1, 71, 17, 73,
1333 -1, -1, 12, -1, 5, -1, -1, 17, -1, -1,
1334 -1, 12, -1, -1, -1, -1, 17, -1, -1, -1,
1335 -1, 71, -1, 73, -1, 5, 46, 46, -1, 49,
1336 49, -1, 12, -1, -1, -1, 46, -1, -1, 49,
1337 -1, 61, 61, -1, -1, 46, -1, -1, 49, 69,
1338 69, 61, 71, 73, 73, 5, -1, -1, -1, 69,
1339 61, 71, 12, 73, -1, -1, 46, -1, 69, 49,
1340 71, -1, 73, -1, -1, 52, -1, 54, 55, 56,
1341 57, 61, 59, 60, 61, 62, 63, -1, -1, 69,
1342 67, 68, -1, 73, -1, -1, 46, -1, -1, 49,
1343 -1, -1, -1, -1, -1, -1, -1, -1, 5, -1,
1344 -1, 61, -1, -1, 11, 12, -1, -1, -1, 69,
1345 17, -1, -1, 73, 21, 22, 23, 24, 25, 26,
1346 27, 28, 5, 30, 31, 32, 33, 34, 11, 12,
1347 -1, 38, 39, -1, -1, 15, 16, -1, 21, 22,
1348 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
1349 33, 34, -1, -1, -1, 35, -1, -1, 41, -1,
1350 -1, -1, 42, 43, 71, 45, 46, 47, 48, 49,
1351 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
1352 60, 61, 62, 63, -1, 65, 66, 67, -1, 69,
1353 -1, 71, 72, 73, 44, 45, 46, 47, 48, 49,
1354 50, 51, 52, -1, 54, 55, 56, 57, -1, 59,
1355 60, 61, 62, 63, 5, -1, -1, 67, 68, -1,
1356 11, 12, -1, -1, 74, -1, -1, -1, -1, -1,
1357 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1358 31, 32, 33, 34, 5, -1, -1, -1, -1, -1,
1359 11, 12, -1, -1, -1, -1, -1, -1, -1, -1,
1360 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
1361 31, 32, 33, 34, 44, 45, 46, 47, 48, 49,
1362 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
1363 60, 61, 62, 63, -1, -1, -1, 67, 68, 46,
1364 47, 48, 49, 50, 51, 52, -1, 54, 55, 56,
1365 57, -1, 59, 60, 61, 62, 63, -1, -1, -1,
1366 67, 68, 47, 48, 49, 50, 51, 52, -1, 54,
1367 55, 56, 57, -1, 59, 60, 61, 62, 63, -1,
1368 -1, -1, 67, 68, 48, 49, 50, 51, 52, -1,
1369 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
1370 -1, -1, -1, 67, 68, 49, 50, 51, 52, -1,
1371 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
1372 -1, -1, -1, 67, 68, 56, 57, -1, 59, 60,
1373 61, 62, 63, -1, -1, -1, 67, 68
1380 0, 5, 11, 12, 17, 21, 22, 23, 24, 25,
1381 26, 27, 28, 30, 31, 32, 33, 34, 38, 39,
1382 71, 76, 77, 79, 80, 81, 82, 83, 84, 86,
1383 88, 89, 90, 91, 97, 98, 99, 100, 101, 104,
1384 108, 12, 52, 82, 86, 89, 90, 12, 15, 16,
1385 35, 42, 43, 45, 46, 47, 48, 49, 50, 51,
1386 52, 53, 54, 55, 56, 57, 59, 60, 61, 62,
1387 63, 65, 66, 67, 69, 71, 72, 73, 90, 104,
1388 27, 77, 77, 5, 0, 52, 5, 12, 46, 49,
1389 61, 69, 73, 78, 90, 91, 95, 102, 103, 106,
1390 107, 98, 73, 95, 5, 82, 84, 91, 12, 98,
1391 12, 86, 101, 22, 99, 98, 12, 17, 73, 85,
1392 86, 87, 88, 90, 95, 102, 105, 106, 111, 112,
1393 3, 4, 10, 18, 19, 20, 36, 37, 49, 60,
1394 71, 72, 73, 92, 93, 104, 113, 98, 82, 69,
1395 69, 61, 70, 41, 40, 92, 77, 90, 96, 98,
1396 3, 70, 12, 31, 41, 73, 90, 94, 102, 104,
1397 105, 5, 61, 91, 12, 78, 12, 107, 95, 103,
1398 78, 12, 12, 86, 98, 98, 86, 90, 102, 95,
1399 103, 78, 73, 105, 111, 95, 95, 103, 73, 52,
1400 52, 52, 73, 77, 113, 113, 113, 49, 104, 108,
1401 113, 114, 42, 53, 105, 44, 45, 46, 47, 48,
1402 49, 50, 51, 52, 54, 55, 56, 57, 59, 60,
1403 61, 62, 63, 67, 68, 70, 70, 77, 53, 61,
1404 70, 90, 41, 96, 41, 42, 105, 41, 96, 90,
1405 12, 98, 73, 87, 102, 109, 110, 12, 12, 108,
1406 108, 108, 108, 77, 73, 77, 41, 53, 41, 93,
1407 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
1408 113, 113, 113, 113, 113, 113, 113, 113, 5, 5,
1409 96, 96, 96, 29, 104, 77, 109, 109, 41, 95,
1410 103, 77, 77, 41, 53, 53, 53, 41, 77, 113,
1411 113, 74, 105, 41, 73, 73, 73, 41, 113, 114,
1412 114, 114, 41, 41, 41
1418 0, 75, 76, 77, 77, 77, 78, 78, 79, 79,
1419 79, 79, 79, 80, 80, 81, 81, 81, 81, 81,
1420 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
1421 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
1422 81, 81, 81, 81, 81, 81, 81, 81, 82, 83,
1423 83, 83, 83, 84, 84, 84, 85, 85, 86, 86,
1424 86, 86, 87, 87, 88, 88, 89, 89, 90, 90,
1425 90, 90, 91, 92, 92, 93, 93, 93, 93, 93,
1426 94, 94, 94, 94, 94, 95, 95, 95, 96, 96,
1427 97, 97, 97, 98, 98, 99, 99, 99, 99, 99,
1428 99, 100, 100, 101, 101, 101, 101, 101, 101, 101,
1429 102, 102, 102, 102, 102, 103, 103, 104, 104, 104,
1430 104, 104, 104, 104, 104, 104, 104, 104, 104, 105,
1431 105, 105, 106, 106, 106, 106, 107, 107, 107, 107,
1432 107, 108, 108, 109, 109, 110, 110, 110, 110, 111,
1433 111, 111, 111, 111, 112, 112, 112, 112, 112, 113,
1434 114, 114, 114, 114, 113, 113, 113, 113, 113, 113,
1435 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
1436 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
1437 113, 113, 113, 113, 113, 113
1443 0, 2, 1, 1, 1, 1, 0, 2, 2, 3,
1444 3, 2, 2, 2, 4, 2, 2, 4, 4, 2,
1445 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1446 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1447 2, 2, 2, 2, 3, 2, 3, 3, 2, 2,
1448 1, 3, 2, 1, 4, 2, 1, 2, 2, 1,
1449 2, 1, 1, 1, 1, 2, 2, 1, 2, 3,
1450 2, 3, 4, 1, 3, 1, 2, 2, 4, 1,
1451 1, 2, 3, 4, 3, 4, 4, 3, 0, 1,
1452 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
1453 1, 1, 2, 1, 1, 1, 2, 1, 1, 1,
1454 2, 1, 1, 3, 4, 2, 3, 2, 1, 3,
1455 2, 2, 1, 3, 2, 3, 2, 4, 3, 1,
1456 2, 1, 3, 2, 2, 1, 1, 2, 1, 4,
1457 2, 1, 2, 2, 1, 3, 2, 2, 1, 2,
1458 1, 1, 4, 4, 4, 2, 2, 2, 2, 3,
1459 1, 3, 2, 4, 2, 2, 2, 4, 7, 7,
1460 7, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1461 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1468#define yyerrok (yyerrstatus = 0)
1469#define yyclearin (yychar = YYEMPTY)
1471#define YYACCEPT goto yyacceptlab
1472#define YYABORT goto yyabortlab
1473#define YYERROR goto yyerrorlab
1474#define YYNOMEM goto yyexhaustedlab
1477#define YYRECOVERING() (!!yyerrstatus)
1479#define YYBACKUP(Token, Value) \
1481 if (yychar == YYEMPTY) \
1485 YYPOPSTACK (yylen); \
1491 yyerror (state, YY_("syntax error: cannot back up")); \
1498#define YYERRCODE YYUNDEF
1506# define YYFPRINTF fprintf
1509# define YYDPRINTF(Args) \
1518# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
1522 YYFPRINTF (stderr, "%s ", Title); \
1523 yy_symbol_print (stderr, \
1524 Kind, Value, state); \
1525 YYFPRINTF (stderr, "\n"); \
1538 FILE *yyoutput = yyo;
1573 for (; yybottom <= yytop; yybottom++)
1575 int yybot = *yybottom;
1581# define YY_STACK_PRINT(Bottom, Top) \
1584 yy_stack_print ((Bottom), (Top)); \
1599 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %d):\n",
1602 for (yyi = 0; yyi < yynrhs; yyi++)
1607 &
yyvsp[(yyi + 1) - (yynrhs)], state);
1612# define YY_REDUCE_PRINT(Rule) \
1615 yy_reduce_print (yyssp, yyvsp, Rule, state); \
1622# define YYDPRINTF(Args) ((void) 0)
1623# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
1624# define YY_STACK_PRINT(Bottom, Top)
1625# define YY_REDUCE_PRINT(Rule)
1631# define YYINITDEPTH 200
1642# define YYMAXDEPTH 10000
1696 int yyerrstatus = 0;
1725#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1731 YYDPRINTF ((stderr,
"Starting parse\n"));
1759#if !defined yyoverflow && !defined YYSTACK_RELOCATE
1766# if defined yyoverflow
1778 yyoverflow (
YY_(
"memory exhausted"),
1802# undef YYSTACK_RELOCATE
1812 YYDPRINTF ((stderr,
"Stack size increased to %ld\n",
1845 YYDPRINTF ((stderr,
"Reading a token\n"));
1853 YYDPRINTF ((stderr,
"Now at end of input.\n"));
1934#line 349 "cp-name-parser.y"
1941#line 1943 "cp-name-parser.c.tmp"
1945#line 366 "cp-name-parser.y"
1946 { (
yyval.comp) = NULL; }
1947#line 1949 "cp-name-parser.c.tmp"
1951#line 368 "cp-name-parser.y"
1953#line 1955 "cp-name-parser.c.tmp"
1957#line 375 "cp-name-parser.y"
1961#line 1963 "cp-name-parser.c.tmp"
1965#line 384 "cp-name-parser.y"
1966 { (
yyval.comp) = state->
fill_comp (DEMANGLE_COMPONENT_TYPED_NAME,
1968 if ((
yyvsp[0].comp))
1972#line 1974 "cp-name-parser.c.tmp"
1976#line 391 "cp-name-parser.y"
1979#line 1981 "cp-name-parser.c.tmp"
1983#line 395 "cp-name-parser.y"
1986#line 1988 "cp-name-parser.c.tmp"
1990#line 398 "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)
2001 (
yyval.comp) = state->
fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (
yyvsp[-1].nested).comp, (
yyvsp[0].abstract).fn.comp);
2006#line 2008 "cp-name-parser.c.tmp"
2010#line 417 "cp-name-parser.y"
2012#line 2014 "cp-name-parser.c.tmp"
2016#line 419 "cp-name-parser.y"
2018#line 2020 "cp-name-parser.c.tmp"
2022#line 423 "cp-name-parser.y"
2028#line 2030 "cp-name-parser.c.tmp"
2032#line 429 "cp-name-parser.y"
2038#line 2040 "cp-name-parser.c.tmp"
2042#line 435 "cp-name-parser.y"
2048#line 2050 "cp-name-parser.c.tmp"
2052#line 441 "cp-name-parser.y"
2058#line 2060 "cp-name-parser.c.tmp"
2062#line 447 "cp-name-parser.y"
2064#line 2066 "cp-name-parser.c.tmp"
2068#line 449 "cp-name-parser.y"
2070#line 2072 "cp-name-parser.c.tmp"
2074#line 451 "cp-name-parser.y"
2076#line 2078 "cp-name-parser.c.tmp"
2080#line 453 "cp-name-parser.y"
2082#line 2084 "cp-name-parser.c.tmp"
2086#line 455 "cp-name-parser.y"
2088#line 2090 "cp-name-parser.c.tmp"
2092#line 457 "cp-name-parser.y"
2094#line 2096 "cp-name-parser.c.tmp"
2098#line 459 "cp-name-parser.y"
2100#line 2102 "cp-name-parser.c.tmp"
2104#line 461 "cp-name-parser.y"
2106#line 2108 "cp-name-parser.c.tmp"
2110#line 463 "cp-name-parser.y"
2112#line 2114 "cp-name-parser.c.tmp"
2116#line 465 "cp-name-parser.y"
2118#line 2120 "cp-name-parser.c.tmp"
2122#line 467 "cp-name-parser.y"
2124#line 2126 "cp-name-parser.c.tmp"
2128#line 469 "cp-name-parser.y"
2130#line 2132 "cp-name-parser.c.tmp"
2134#line 471 "cp-name-parser.y"
2136#line 2138 "cp-name-parser.c.tmp"
2140#line 473 "cp-name-parser.y"
2142#line 2144 "cp-name-parser.c.tmp"
2146#line 475 "cp-name-parser.y"
2148#line 2150 "cp-name-parser.c.tmp"
2152#line 477 "cp-name-parser.y"
2154#line 2156 "cp-name-parser.c.tmp"
2158#line 479 "cp-name-parser.y"
2160#line 2162 "cp-name-parser.c.tmp"
2164#line 481 "cp-name-parser.y"
2166#line 2168 "cp-name-parser.c.tmp"
2170#line 483 "cp-name-parser.y"
2172#line 2174 "cp-name-parser.c.tmp"
2176#line 485 "cp-name-parser.y"
2178#line 2180 "cp-name-parser.c.tmp"
2182#line 487 "cp-name-parser.y"
2184#line 2186 "cp-name-parser.c.tmp"
2188#line 489 "cp-name-parser.y"
2190#line 2192 "cp-name-parser.c.tmp"
2194#line 491 "cp-name-parser.y"
2196#line 2198 "cp-name-parser.c.tmp"
2200#line 493 "cp-name-parser.y"
2202#line 2204 "cp-name-parser.c.tmp"
2206#line 495 "cp-name-parser.y"
2208#line 2210 "cp-name-parser.c.tmp"
2212#line 497 "cp-name-parser.y"
2214#line 2216 "cp-name-parser.c.tmp"
2218#line 499 "cp-name-parser.y"
2220#line 2222 "cp-name-parser.c.tmp"
2224#line 501 "cp-name-parser.y"
2226#line 2228 "cp-name-parser.c.tmp"
2230#line 503 "cp-name-parser.y"
2232#line 2234 "cp-name-parser.c.tmp"
2236#line 511 "cp-name-parser.y"
2237 { (
yyval.comp) = state->
fill_comp (DEMANGLE_COMPONENT_CONVERSION, (
yyvsp[0].comp), NULL); }
2238#line 2240 "cp-name-parser.c.tmp"
2242#line 516 "cp-name-parser.y"
2243 { (
yyval.nested).comp = (
yyvsp[-1].nested1).comp;
2247#line 2249 "cp-name-parser.c.tmp"
2251#line 521 "cp-name-parser.y"
2255#line 2257 "cp-name-parser.c.tmp"
2259#line 525 "cp-name-parser.y"
2260 { (
yyval.nested).comp = (
yyvsp[-1].nested1).comp;
2264#line 2266 "cp-name-parser.c.tmp"
2268#line 530 "cp-name-parser.y"
2272#line 2274 "cp-name-parser.c.tmp"
2276#line 539 "cp-name-parser.y"
2278#line 2280 "cp-name-parser.c.tmp"
2282#line 541 "cp-name-parser.y"
2284#line 2286 "cp-name-parser.c.tmp"
2288#line 554 "cp-name-parser.y"
2290#line 2292 "cp-name-parser.c.tmp"
2294#line 560 "cp-name-parser.y"
2296#line 2298 "cp-name-parser.c.tmp"
2300#line 563 "cp-name-parser.y"
2302#line 2304 "cp-name-parser.c.tmp"
2306#line 573 "cp-name-parser.y"
2308#line 2310 "cp-name-parser.c.tmp"
2312#line 577 "cp-name-parser.y"
2314#line 2316 "cp-name-parser.c.tmp"
2318#line 582 "cp-name-parser.y"
2319 { (
yyval.nested1).comp = state->
fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, (
yyvsp[-1].comp), NULL);
2322#line 2324 "cp-name-parser.c.tmp"
2326#line 586 "cp-name-parser.y"
2327 { (
yyval.nested1).comp = (
yyvsp[-2].nested1).comp;
2331#line 2333 "cp-name-parser.c.tmp"
2335#line 591 "cp-name-parser.y"
2336 { (
yyval.nested1).comp = state->
fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, (
yyvsp[-1].comp), NULL);
2339#line 2341 "cp-name-parser.c.tmp"
2343#line 595 "cp-name-parser.y"
2344 { (
yyval.nested1).comp = (
yyvsp[-2].nested1).comp;
2348#line 2350 "cp-name-parser.c.tmp"
2352#line 604 "cp-name-parser.y"
2354#line 2356 "cp-name-parser.c.tmp"
2358#line 608 "cp-name-parser.y"
2359 { (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, (
yyvsp[0].comp), NULL);
2361#line 2363 "cp-name-parser.c.tmp"
2365#line 611 "cp-name-parser.y"
2366 { (
yyval.nested).comp = (
yyvsp[-2].nested).comp;
2367 *(
yyvsp[-2].nested).last = state->
fill_comp (DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, (
yyvsp[0].comp), NULL);
2370#line 2372 "cp-name-parser.c.tmp"
2374#line 623 "cp-name-parser.y"
2376 *(
yyvsp[0].abstract).last = (
yyvsp[-1].comp);
2378#line 2380 "cp-name-parser.c.tmp"
2382#line 627 "cp-name-parser.y"
2384#line 2386 "cp-name-parser.c.tmp"
2388#line 629 "cp-name-parser.y"
2390#line 2392 "cp-name-parser.c.tmp"
2394#line 634 "cp-name-parser.y"
2395 { (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_ARGLIST, (
yyvsp[0].comp), NULL);
2398#line 2400 "cp-name-parser.c.tmp"
2402#line 638 "cp-name-parser.y"
2403 { *(
yyvsp[0].abstract).last = (
yyvsp[-1].comp);
2404 (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_ARGLIST, (
yyvsp[0].abstract).comp, NULL);
2407#line 2409 "cp-name-parser.c.tmp"
2411#line 643 "cp-name-parser.y"
2412 { *(
yyvsp[-2].nested).last = state->
fill_comp (DEMANGLE_COMPONENT_ARGLIST, (
yyvsp[0].comp), NULL);
2413 (
yyval.nested).comp = (
yyvsp[-2].nested).comp;
2416#line 2418 "cp-name-parser.c.tmp"
2420#line 648 "cp-name-parser.y"
2421 { *(
yyvsp[0].abstract).last = (
yyvsp[-1].comp);
2422 *(
yyvsp[-3].nested).last = state->
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.tmp"
2430#line 654 "cp-name-parser.y"
2431 { *(
yyvsp[-2].nested).last
2432 = state->
fill_comp (DEMANGLE_COMPONENT_ARGLIST,
2435 (
yyval.nested).comp = (
yyvsp[-2].nested).comp;
2438#line 2440 "cp-name-parser.c.tmp"
2442#line 664 "cp-name-parser.y"
2443 { (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, (
yyvsp[-2].nested).comp);
2446#line 2448 "cp-name-parser.c.tmp"
2450#line 668 "cp-name-parser.y"
2451 { (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, NULL);
2454#line 2456 "cp-name-parser.c.tmp"
2458#line 672 "cp-name-parser.y"
2459 { (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, NULL);
2462#line 2464 "cp-name-parser.c.tmp"
2466#line 679 "cp-name-parser.y"
2467 { (
yyval.lval) = 0; }
2468#line 2470 "cp-name-parser.c.tmp"
2472#line 684 "cp-name-parser.y"
2474#line 2476 "cp-name-parser.c.tmp"
2478#line 686 "cp-name-parser.y"
2480#line 2482 "cp-name-parser.c.tmp"
2484#line 688 "cp-name-parser.y"
2486#line 2488 "cp-name-parser.c.tmp"
2490#line 693 "cp-name-parser.y"
2492#line 2494 "cp-name-parser.c.tmp"
2496#line 700 "cp-name-parser.y"
2497 { (
yyval.lval) = 0; }
2498#line 2500 "cp-name-parser.c.tmp"
2502#line 702 "cp-name-parser.y"
2504#line 2506 "cp-name-parser.c.tmp"
2508#line 704 "cp-name-parser.y"
2510#line 2512 "cp-name-parser.c.tmp"
2514#line 706 "cp-name-parser.y"
2516#line 2518 "cp-name-parser.c.tmp"
2520#line 708 "cp-name-parser.y"
2522#line 2524 "cp-name-parser.c.tmp"
2526#line 710 "cp-name-parser.y"
2528#line 2530 "cp-name-parser.c.tmp"
2532#line 715 "cp-name-parser.y"
2534#line 2536 "cp-name-parser.c.tmp"
2538#line 719 "cp-name-parser.y"
2540#line 2542 "cp-name-parser.c.tmp"
2544#line 721 "cp-name-parser.y"
2546#line 2548 "cp-name-parser.c.tmp"
2550#line 723 "cp-name-parser.y"
2552#line 2554 "cp-name-parser.c.tmp"
2556#line 725 "cp-name-parser.y"
2558#line 2560 "cp-name-parser.c.tmp"
2562#line 727 "cp-name-parser.y"
2564#line 2566 "cp-name-parser.c.tmp"
2568#line 729 "cp-name-parser.y"
2570#line 2572 "cp-name-parser.c.tmp"
2574#line 731 "cp-name-parser.y"
2576#line 2578 "cp-name-parser.c.tmp"
2580#line 735 "cp-name-parser.y"
2581 { (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_POINTER, NULL, NULL);
2584#line 2586 "cp-name-parser.c.tmp"
2588#line 740 "cp-name-parser.y"
2589 { (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_REFERENCE, NULL, NULL);
2591#line 2593 "cp-name-parser.c.tmp"
2595#line 743 "cp-name-parser.y"
2596 { (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_RVALUE_REFERENCE, NULL, NULL);
2598#line 2600 "cp-name-parser.c.tmp"
2602#line 746 "cp-name-parser.y"
2603 { (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_PTRMEM_TYPE, (
yyvsp[-2].nested1).comp, NULL);
2608#line 2610 "cp-name-parser.c.tmp"
2612#line 752 "cp-name-parser.y"
2613 { (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_PTRMEM_TYPE, (
yyvsp[-2].nested1).comp, NULL);
2618#line 2620 "cp-name-parser.c.tmp"
2622#line 760 "cp-name-parser.y"
2623 { (
yyval.comp) = state->
fill_comp (DEMANGLE_COMPONENT_ARRAY_TYPE, NULL, NULL); }
2624#line 2626 "cp-name-parser.c.tmp"
2628#line 762 "cp-name-parser.y"
2629 { (
yyval.comp) = state->
fill_comp (DEMANGLE_COMPONENT_ARRAY_TYPE, (
yyvsp[-1].comp), NULL); }
2630#line 2632 "cp-name-parser.c.tmp"
2634#line 776 "cp-name-parser.y"
2636#line 2638 "cp-name-parser.c.tmp"
2640#line 779 "cp-name-parser.y"
2642#line 2644 "cp-name-parser.c.tmp"
2646#line 781 "cp-name-parser.y"
2648#line 2650 "cp-name-parser.c.tmp"
2652#line 784 "cp-name-parser.y"
2654#line 2656 "cp-name-parser.c.tmp"
2658#line 787 "cp-name-parser.y"
2660#line 2662 "cp-name-parser.c.tmp"
2664#line 789 "cp-name-parser.y"
2666#line 2668 "cp-name-parser.c.tmp"
2670#line 792 "cp-name-parser.y"
2672#line 2674 "cp-name-parser.c.tmp"
2676#line 794 "cp-name-parser.y"
2678#line 2680 "cp-name-parser.c.tmp"
2682#line 796 "cp-name-parser.y"
2684#line 2686 "cp-name-parser.c.tmp"
2688#line 798 "cp-name-parser.y"
2690#line 2692 "cp-name-parser.c.tmp"
2694#line 803 "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.tmp"
2701#line 806 "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.tmp"
2710#line 811 "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.tmp"
2718#line 818 "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.tmp"
2726#line 822 "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.tmp"
2741#line 833 "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.tmp"
2751#line 839 "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.tmp"
2760#line 857 "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.tmp"
2767#line 860 "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.tmp"
2779#line 868 "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.tmp"
2785#line 870 "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.tmp"
2800#line 881 "cp-name-parser.y"
2803 (
yyval.abstract).comp = NULL; (
yyval.abstract).last = NULL;
2805#line 2807 "cp-name-parser.c.tmp"
2809#line 889 "cp-name-parser.y"
2811 *(
yyvsp[0].abstract).last = (
yyvsp[-1].comp);
2813#line 2815 "cp-name-parser.c.tmp"
2817#line 895 "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.tmp"
2825#line 903 "cp-name-parser.y"
2827#line 2829 "cp-name-parser.c.tmp"
2831#line 905 "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.tmp"
2840#line 910 "cp-name-parser.y"
2841 { (
yyval.nested).comp = (
yyvsp[-1].nested).comp;
2845#line 2847 "cp-name-parser.c.tmp"
2849#line 915 "cp-name-parser.y"
2850 { (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (
yyvsp[0].comp), NULL);
2853#line 2855 "cp-name-parser.c.tmp"
2857#line 927 "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.tmp"
2865#line 931 "cp-name-parser.y"
2866 { (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (
yyvsp[0].comp), NULL);
2869#line 2871 "cp-name-parser.c.tmp"
2873#line 943 "cp-name-parser.y"
2874 { (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (
yyvsp[-3].comp), (
yyvsp[-2].nested).comp);
2875 (
yyval.nested).last = (
yyvsp[-2].nested).last;
2878#line 2880 "cp-name-parser.c.tmp"
2882#line 948 "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.tmp"
2892#line 957 "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.tmp"
2900#line 961 "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.tmp"
2909#line 966 "cp-name-parser.y"
2910 { (
yyval.nested).comp = (
yyvsp[-1].nested).comp;
2914#line 2916 "cp-name-parser.c.tmp"
2918#line 971 "cp-name-parser.y"
2919 { (
yyval.nested).comp = state->
fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (
yyvsp[-1].comp), (
yyvsp[0].nested).comp);
2920 (
yyval.nested).last = (
yyvsp[0].nested).last;
2922#line 2924 "cp-name-parser.c.tmp"
2926#line 975 "cp-name-parser.y"
2930#line 2932 "cp-name-parser.c.tmp"
2934#line 981 "cp-name-parser.y"
2936#line 2938 "cp-name-parser.c.tmp"
2940#line 990 "cp-name-parser.y"
2942#line 2944 "cp-name-parser.c.tmp"
2946#line 997 "cp-name-parser.y"
2948#line 2950 "cp-name-parser.c.tmp"
2952#line 999 "cp-name-parser.y"
2954#line 2956 "cp-name-parser.c.tmp"
2958#line 1004 "cp-name-parser.y"
2960#line 2962 "cp-name-parser.c.tmp"
2964#line 1008 "cp-name-parser.y"
2966#line 2968 "cp-name-parser.c.tmp"
2970#line 1012 "cp-name-parser.y"
2972#line 2974 "cp-name-parser.c.tmp"
2976#line 1019 "cp-name-parser.y"
2977 {
if ((
yyvsp[0].comp)->type == DEMANGLE_COMPONENT_LITERAL
2978 || (
yyvsp[0].comp)->
type == DEMANGLE_COMPONENT_LITERAL_NEG)
2985 state->
fill_comp (DEMANGLE_COMPONENT_CAST, (
yyvsp[-2].comp), NULL),
2988#line 2990 "cp-name-parser.c.tmp"
2992#line 1035 "cp-name-parser.y"
2994 state->
fill_comp (DEMANGLE_COMPONENT_CAST, (
yyvsp[-4].comp), NULL),
2997#line 2999 "cp-name-parser.c.tmp"
3001#line 1042 "cp-name-parser.y"
3003 state->
fill_comp (DEMANGLE_COMPONENT_CAST, (
yyvsp[-4].comp), NULL),
3006#line 3008 "cp-name-parser.c.tmp"
3010#line 1049 "cp-name-parser.y"
3012 state->
fill_comp (DEMANGLE_COMPONENT_CAST, (
yyvsp[-4].comp), NULL),
3015#line 3017 "cp-name-parser.c.tmp"
3019#line 1068 "cp-name-parser.y"
3021#line 3023 "cp-name-parser.c.tmp"
3025#line 1072 "cp-name-parser.y"
3027#line 3029 "cp-name-parser.c.tmp"
3031#line 1076 "cp-name-parser.y"
3033#line 3035 "cp-name-parser.c.tmp"
3037#line 1080 "cp-name-parser.y"
3039#line 3041 "cp-name-parser.c.tmp"
3043#line 1084 "cp-name-parser.y"
3045#line 3047 "cp-name-parser.c.tmp"
3049#line 1088 "cp-name-parser.y"
3051#line 3053 "cp-name-parser.c.tmp"
3055#line 1092 "cp-name-parser.y"
3057#line 3059 "cp-name-parser.c.tmp"
3061#line 1096 "cp-name-parser.y"
3063#line 3065 "cp-name-parser.c.tmp"
3067#line 1100 "cp-name-parser.y"
3069#line 3071 "cp-name-parser.c.tmp"
3073#line 1104 "cp-name-parser.y"
3075#line 3077 "cp-name-parser.c.tmp"
3079#line 1108 "cp-name-parser.y"
3081#line 3083 "cp-name-parser.c.tmp"
3085#line 1112 "cp-name-parser.y"
3087#line 3089 "cp-name-parser.c.tmp"
3091#line 1116 "cp-name-parser.y"
3093#line 3095 "cp-name-parser.c.tmp"
3097#line 1120 "cp-name-parser.y"
3099#line 3101 "cp-name-parser.c.tmp"
3103#line 1124 "cp-name-parser.y"
3105#line 3107 "cp-name-parser.c.tmp"
3109#line 1128 "cp-name-parser.y"
3111#line 3113 "cp-name-parser.c.tmp"
3115#line 1132 "cp-name-parser.y"
3117#line 3119 "cp-name-parser.c.tmp"
3121#line 1137 "cp-name-parser.y"
3123#line 3125 "cp-name-parser.c.tmp"
3127#line 1141 "cp-name-parser.y"
3129#line 3131 "cp-name-parser.c.tmp"
3133#line 1145 "cp-name-parser.y"
3135 state->
fill_comp (DEMANGLE_COMPONENT_TRINARY_ARG1, (
yyvsp[-4].comp),
3138#line 3140 "cp-name-parser.c.tmp"
3142#line 1159 "cp-name-parser.y"
3148#line 3150 "cp-name-parser.c.tmp"
3152#line 1168 "cp-name-parser.y"
3153 {
struct demangle_component *i;
3159#line 3161 "cp-name-parser.c.tmp"
3163#line 1177 "cp-name-parser.y"
3164 {
struct demangle_component *i;
3170#line 3172 "cp-name-parser.c.tmp"
3174#line 3176 "cp-name-parser.c.tmp"
3224 if (yyerrstatus == 3)
3238 yytoken, &
yylval, state);
3347 yytoken, &
yylval, state);
3367#line 1187 "cp-name-parser.y"
3375struct demangle_component *
3379 struct demangle_component **inner_p;
3380 enum demangle_component_type
type;
3384#define HANDLE_QUAL(TYPE, MTYPE, QUAL) \
3385 if ((qualifiers & QUAL) && (type != TYPE) && (type != MTYPE)) \
3387 *inner_p = fill_comp (is_method ? MTYPE : TYPE, \
3389 inner_p = &d_left (*inner_p); \
3390 type = (*inner_p)->type; \
3392 else if (type == TYPE || type == MTYPE) \
3394 inner_p = &d_left (*inner_p); \
3395 type = (*inner_p)->type; \
3400 type = (*inner_p)->type;
3411struct demangle_component *
3419 name =
"signed char";
3425 name =
"unsigned char";
3432 name =
"unsigned int";
3439 name =
"unsigned long";
3446 name =
"unsigned short";
3453 name =
"unsigned long long";
3464struct demangle_component *
3472struct demangle_component *
3474 struct demangle_component *rhs)
3477 fill_comp (DEMANGLE_COMPONENT_BINARY_ARGS, lhs, rhs));
3485 const char *p = lexptr;
3487 while (*p && (
c_ident_is_alnum (*p) || *p ==
'_' || *p ==
'$' || *p ==
'.'))
3506 struct demangle_component *signed_type;
3507 struct demangle_component *unsigned_type;
3508 struct demangle_component *
type, *
name;
3509 enum demangle_component_type literal_type;
3513 literal_type = DEMANGLE_COMPONENT_LITERAL_NEG;
3518 literal_type = DEMANGLE_COMPONENT_LITERAL;
3531 c = TOLOWER (p[len - 1]);
3543 else if (ISDIGIT (c) || c ==
'.')
3561 if (p[len - 1] ==
'l' || p[len - 1] ==
'L')
3567 if (p[len - 1] ==
'u' || p[len - 1] ==
'U')
3581 else if (long_p == 1)
3593 type = unsigned_type;
3638 int c = *(*string_ptr)++;
3651 c = *(*string_ptr)++;
3662 target_char = target_char & 037;
3681 if (c >=
'0' && c <=
'7')
3699#define HANDLE_SPECIAL(string, comp) \
3700 if (startswith (tokstart, string)) \
3702 state->lexptr = tokstart + sizeof (string) - 1; \
3703 lvalp->lval = comp; \
3704 return DEMANGLER_SPECIAL; \
3707#define HANDLE_TOKEN2(string, token) \
3708 if (state->lexptr[1] == string[1]) \
3710 state->lexptr += 2; \
3711 lvalp->opname = string; \
3715#define HANDLE_TOKEN3(string, token) \
3716 if (state->lexptr[1] == string[1] && state->lexptr[2] == string[2]) \
3718 state->lexptr += 3; \
3719 lvalp->opname = string; \
3730 const char *tokstart;
3734 tokstart = state->
lexptr;
3736 switch (c = *tokstart)
3757 yyerror (state, _(
"empty character constant"));
3764 yyerror (state, _(
"invalid character constant"));
3773 = state->
fill_comp (DEMANGLE_COMPONENT_LITERAL,
3776 state->
lexptr - tokstart));
3781 if (startswith (tokstart,
"(anonymous namespace)"))
3785 sizeof "(anonymous namespace)" - 1);
3796 if (state->
lexptr[1] ==
'.' && state->
lexptr[2] ==
'.')
3814 if (startswith (tokstart,
"-in-"))
3840 int got_dot = 0, got_e = 0, toktype;
3841 const char *p = tokstart;
3847 if (c ==
'0' && (p[1] ==
'x' || p[1] ==
'X'))
3852 else if (c ==
'0' && (p[1]==
't' || p[1]==
'T' || p[1]==
'd' || p[1]==
'D'))
3863 if (!hex && !got_e && (*p ==
'e' || *p ==
'E'))
3864 got_dot = got_e = 1;
3871 else if (!got_dot && *p ==
'.')
3873 else if (got_e && (p[-1] ==
'e' || p[-1] ==
'E')
3874 && (*p ==
'-' || *p ==
'+'))
3880 else if (! ISALNUM (*p))
3883 toktype = state->
parse_number (tokstart, p - tokstart, got_dot|got_e,
3885 if (toktype ==
ERROR)
3887 char *err_copy = (
char *) alloca (p - tokstart + 1);
3889 memcpy (err_copy, tokstart, p - tokstart);
3890 err_copy[p - tokstart] = 0;
3891 yyerror (state, _(
"invalid number"));
3967 yyerror (state, _(
"unexpected string literal"));
3974 yyerror (state, _(
"invalid character"));
3981 c = tokstart[++namelen];
3984 state->
lexptr += namelen;
3992 if (startswith (tokstart,
"reinterpret_cast"))
3996 if (startswith (tokstart,
"construction vtable for "))
3998 state->
lexptr = tokstart + 24;
4001 if (startswith (tokstart,
"dynamic_cast"))
4005 if (startswith (tokstart,
"static_cast"))
4009 HANDLE_SPECIAL (
"covariant return thunk to ", DEMANGLE_COMPONENT_COVARIANT_THUNK);
4010 HANDLE_SPECIAL (
"reference temporary for ", DEMANGLE_COMPONENT_REFTEMP);
4014 HANDLE_SPECIAL (
"typeinfo fn for ", DEMANGLE_COMPONENT_TYPEINFO_FN);
4015 HANDLE_SPECIAL (
"typeinfo name for ", DEMANGLE_COMPONENT_TYPEINFO_NAME);
4016 if (startswith (tokstart,
"operator"))
4018 if (startswith (tokstart,
"restrict"))
4020 if (startswith (tokstart,
"unsigned"))
4022 if (startswith (tokstart,
"template"))
4024 if (startswith (tokstart,
"volatile"))
4028 HANDLE_SPECIAL (
"virtual thunk to ", DEMANGLE_COMPONENT_VIRTUAL_THUNK);
4029 if (startswith (tokstart,
"wchar_t"))
4033 if (startswith (tokstart,
"global constructors keyed to "))
4036 state->
lexptr = tokstart + 29;
4037 lvalp->
lval = DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS;
4044 if (startswith (tokstart,
"global destructors keyed to "))
4047 state->
lexptr = tokstart + 28;
4048 lvalp->
lval = DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS;
4057 if (startswith (tokstart,
"delete"))
4059 if (startswith (tokstart,
"struct"))
4061 if (startswith (tokstart,
"signed"))
4063 if (startswith (tokstart,
"sizeof"))
4065 if (startswith (tokstart,
"double"))
4069 HANDLE_SPECIAL (
"guard variable for ", DEMANGLE_COMPONENT_GUARD);
4070 if (startswith (tokstart,
"false"))
4072 if (startswith (tokstart,
"class"))
4074 if (startswith (tokstart,
"union"))
4076 if (startswith (tokstart,
"float"))
4078 if (startswith (tokstart,
"short"))
4080 if (startswith (tokstart,
"const"))
4084 if (startswith (tokstart,
"void"))
4086 if (startswith (tokstart,
"bool"))
4088 if (startswith (tokstart,
"char"))
4090 if (startswith (tokstart,
"enum"))
4092 if (startswith (tokstart,
"long"))
4094 if (startswith (tokstart,
"true"))
4099 HANDLE_SPECIAL (
"non-virtual thunk to ", DEMANGLE_COMPONENT_THUNK);
4100 if (startswith (tokstart,
"new"))
4102 if (startswith (tokstart,
"int"))
4139gdb::unique_xmalloc_ptr<char>
4145 result, estimated_len, &
err);
4146 return gdb::unique_xmalloc_ptr<char> (res);
4163 while (
info != NULL)
4172 obstack_free (&
obstack, NULL);
4187 struct demangle_component *target,
4194 *target = *src->
tree;
4196 while (di->
next != NULL)
4240cp_print (
struct demangle_component *result)
4249 fputs (str, stdout);
4255trim_chars (
char *lexptr,
char **extra_chars)
4264 *extra_chars = p + 1;
4279 CONCAT2 (fr,ee) (ptr);
4287internal_error (
const char *file,
int line,
const char *fmt, ...)
4292 fprintf (stderr,
"%s:%d: internal error: ", file, line);
4293 vfprintf (stderr, fmt, ap);
4298main (
int argc,
char **argv)
4300 char *str2, *extra_chars, c;
4305 if (argv[arg] && strcmp (argv[arg],
"--debug") == 0)
4311 if (argv[arg] == NULL)
4312 while (fgets (buf, 65536, stdin) != NULL)
4314 buf[strlen (buf) - 1] = 0;
4316 c = trim_chars (buf, &extra_chars);
4317 str2 = cplus_demangle (buf, DMGL_PARAMS | DMGL_ANSI | DMGL_VERBOSE);
4320 printf (
"Demangling error\n");
4322 printf (
"%s%c%s\n", buf, c, extra_chars);
4324 printf (
"%s\n", buf);
4329 std::unique_ptr<demangle_parse_info> result
4333 fputs (
errmsg.c_str (), stderr);
4334 fputc (
'\n', stderr);
4338 cp_print (result->tree);
4344 fputs (extra_chars, stdout);
4351 std::unique_ptr<demangle_parse_info> result
4355 fputs (
errmsg.c_str (), stderr);
4356 fputc (
'\n', stderr);
4359 cp_print (result->tree);
static bool c_ident_is_alpha(unsigned char ch)
static bool c_ident_is_alnum(unsigned char ch)
static const char * yysymbol_name(yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED
struct std::unique_ptr< demangle_parse_info > cp_demangled_name_to_comp(const char *demangled_name, std::string *errmsg)
static void yydestruct(const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep, struct cpname_state *state)
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
#define HANDLE_TOKEN3(string, token)
static int c_parse_backslash(int host_char, int *target_char)
static const yytype_int8 yytranslate[]
@ YYSYMBOL_qualifiers_opt
@ YYSYMBOL_CONSTRUCTION_IN
@ YYSYMBOL_VOLATILE_KEYWORD
@ YYSYMBOL_CONSTRUCTION_VTABLE
@ YYSYMBOL_conversion_op_name
@ YYSYMBOL_SIGNED_KEYWORD
@ YYSYMBOL_array_indicator
@ YYSYMBOL_colon_ext_name
@ YYSYMBOL_abstract_declarator_fn
@ YYSYMBOL_function_arglist
@ YYSYMBOL_template_params
@ YYSYMBOL_direct_declarator_1
@ YYSYMBOL_demangler_special
@ YYSYMBOL_abstract_declarator
@ YYSYMBOL_DOUBLE_KEYWORD
@ YYSYMBOL_DEMANGLER_SPECIAL
@ YYSYMBOL_REINTERPRET_CAST
@ YYSYMBOL_direct_abstract_declarator
@ YYSYMBOL_colon_ext_only
@ YYSYMBOL_unqualified_name
@ YYSYMBOL_direct_declarator
static const char represented[]
#define HANDLE_SPECIAL(string, comp)
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
static const char * symbol_end(const char *lexptr)
#define YY_IGNORE_USELESS_CAST_END
static const yytype_int16 yyrline[]
static const char backslashable[]
static struct demangle_info * allocate_info(void)
static int cp_parse_escape(const char **string_ptr)
static const yytype_int16 yydefgoto[]
#define YY_REDUCE_PRINT(Rule)
#define YY_CAST(Type, Val)
static void yy_symbol_value_print(FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const *const yyvaluep, struct cpname_state *state)
static const yytype_int16 yypact[]
gdb::unique_xmalloc_ptr< char > cp_comp_to_string(struct demangle_component *result, int estimated_len)
#define YY_ACCESSING_SYMBOL(State)
#define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
static const yytype_int16 yypgoto[]
#define YY_INITIAL_VALUE(Value)
#define YY_STACK_PRINT(Bottom, Top)
#define CONSTRUCTION_VTABLE
#define YY_IGNORE_USELESS_CAST_BEGIN
static const yytype_int8 yyr2[]
void cp_merge_demangle_parse_infos(struct demangle_parse_info *dest, struct demangle_component *target, struct demangle_parse_info *src)
static const yytype_int16 yytable[]
#define HANDLE_TOKEN2(string, token)
#define yytable_value_is_error(Yyn)
static const yytype_int8 yystos[]
#define DEMANGLER_SPECIAL
#define YY_ATTRIBUTE_UNUSED
static void yy_reduce_print(yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule, struct cpname_state *state)
static const char *const yytname[]
static const yytype_int8 yyr1[]
#define HANDLE_QUAL(TYPE, MTYPE, QUAL)
enum yytokentype yytoken_kind_t
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
#define yypact_value_is_default(Yyn)
static void yy_stack_print(yy_state_t *yybottom, yy_state_t *yytop)
static const yytype_int16 yycheck[]
static const yytype_uint8 yydefact[]
static void yy_symbol_print(FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const *const yyvaluep, struct cpname_state *state)
char * gdb_cplus_demangle_print(int options, struct demangle_component *tree, int estimated_length, size_t *p_allocated_size)
mach_port_t mach_port_t name mach_port_t mach_port_t name kern_return_t err
mach_port_t kern_return_t mach_port_t mach_msg_type_name_t msgportsPoly 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
struct demangle_component ** last
struct demangle_component * comp
struct demangle_component * d_qualify(struct demangle_component *lhs, int qualifiers, int is_method)
struct demangle_info * demangle_info
struct demangle_component * d_binary(const char *name, struct demangle_component *lhs, struct demangle_component *rhs)
struct demangle_component * make_name(const char *name, int len)
struct demangle_component * make_builtin_type(const char *name)
struct demangle_component * make_dtor(enum gnu_v3_dtor_kinds kind, struct demangle_component *name)
const char * error_lexptr
struct demangle_component * d_grab()
struct demangle_component * d_unary(const char *name, struct demangle_component *lhs)
int parse_number(const char *p, int len, int parsed_float, YYSTYPE *lvalp)
struct demangle_component * d_int_type(int flags)
struct demangle_component * fill_comp(enum demangle_component_type d_type, struct demangle_component *lhs, struct demangle_component *rhs)
struct demangle_component * global_result
const char * global_errmsg
struct demangle_component * make_operator(const char *name, int args)
struct demangle_component comps[ALLOC_CHUNK]
struct demangle_info * next
struct demangle_component * tree
struct demangle_info * info
struct demangle_component * comp
struct YYSTYPE::@32 abstract
struct demangle_component ** last
struct YYSTYPE::@31 nested1
struct demangle_component * last
struct demangle_component * start