static char yysccsid
[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
#define yyclearin (yychar=(-1))
#define yyerrok (yyerrflag=0)
#define YYRECOVERING (yyerrflag!=0)
#define yyerrflag c_errflag
#define yydefred c_defred
#define yysindex c_sindex
#define yyrindex c_rindex
#define yygindex c_gindex
#line 38 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
/* Remap normal yacc parser interface names (yyparse, yylex, yyerror, etc),
as well as gratuitiously global symbol names, so we can have multiple
yacc generated parsers in gdb. Note that these are only the variables
produced by yacc. If other parser generators (bison, byacc, etc) produce
additional global names that conflict at link time, then those parser
generators need to be fixed instead of adding those names to this list. */
#define yymaxdepth c_maxdepth
#define yyerrflag c_errflag
#define yyreds c_reds /* With YYDEBUG defined */
#define yytoks c_toks /* With YYDEBUG defined */
#define YYDEBUG 0 /* Default to no yydebug support */
yyerror
PARAMS ((char *));
#line 102 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
struct internalvar
*ivar
;
#line 125 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
/* YYSTYPE gets defined by %union */
parse_number
PARAMS ((char *, int, int, YYSTYPE
*));
#define SIGNED_KEYWORD 272
#define CONST_KEYWORD 276
#define VOLATILE_KEYWORD 277
#define ASSIGN_MODIFY 281
0, 0, 3, 2, 2, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 21, 1, 6, 20, 20, 20, 7, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 19, 19, 4, 5, 5,
4, 4, 4, 14, 14, 14, 14, 14, 14, 13,
13, 13, 13, 13, 12, 12, 12, 12, 12, 15,
15, 11, 11, 8, 8, 8, 8, 8, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 18, 18, 18, 18, 10, 10, 16, 16, 16,
1, 1, 1, 1, 3, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 3, 3, 4, 3, 3,
4, 4, 0, 5, 1, 0, 1, 3, 1, 3,
4, 4, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 5, 3, 3, 1, 1, 1, 1, 1,
1, 1, 4, 1, 1, 1, 3, 3, 3, 4,
1, 2, 1, 1, 2, 2, 2, 3, 3, 1,
2, 1, 2, 1, 3, 2, 1, 2, 1, 2,
3, 2, 3, 1, 3, 6, 8, 9, 1, 1,
1, 1, 2, 3, 2, 3, 3, 4, 2, 3,
2, 2, 2, 2, 2, 1, 2, 1, 5, 2,
2, 1, 1, 1, 1, 1, 3, 1, 1, 1,
56, 58, 64, 132, 99, 57, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 100, 0, 0,
60, 61, 62, 65, 0, 0, 0, 0, 0, 0,
0, 0, 0, 25, 0, 0, 0, 2, 59, 71,
0, 0, 0, 94, 73, 0, 128, 130, 131, 129,
111, 112, 113, 114, 0, 0, 0, 122, 0, 0,
123, 115, 72, 0, 124, 125, 117, 0, 103, 109,
120, 121, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 13, 14, 0, 0, 0, 23, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 89, 0, 77, 87, 0, 0, 0, 0, 104,
110, 0, 106, 33, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
16, 0, 20, 19, 0, 0, 0, 29, 0, 0,
30, 0, 95, 0, 69, 78, 79, 83, 81, 0,
90, 92, 0, 0, 0, 0, 0, 88, 86, 0,
0, 108, 0, 0, 0, 0, 0, 22, 0, 0,
0, 0, 70, 91, 0, 0, 93, 85, 119, 0,
24, 0, 0, 0, 0, 97, 0, 98,
36, 78, 38, 39, 40, 41, 169, 183, 57, 185,
122, 123, 124, 44, 125, 175, 45, 62, 46, 113,
short c_sindex
[] = { 1773,
0, 0, 0, 0, 0, 0, -243, -243, -243, -243,
1839, -240, -243, -243, -56, -260, -266, 0, 1303, 1303,
0, 0, 0, 0, 1773, 1773, 1773, 1773, 1773, 1773,
0, 1773, 1773, 0, 0, 2134, -24, 0, 0, 0,
1773, -16, -36, 0, 0, -233, 0, 0, 0, 0,
0, 0, 0, 0, 1773, 83, -219, 0, -217, -208,
0, 0, 0, 57, 0, 0, 0, -199, 0, 0,
0, 0, 83, 83, 83, 83, 83, 74, -12, 83,
83, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773,
1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773,
1773, 1773, 1773, 0, 0, 2136, 2175, 1773, 0, 1773,
2134, -28, -17, 1303, -35, 31, 31, 31, 31, -90,
1807, 0, -3, 0, 0, -243, 49, -52, -148, 0,
0, 1303, 0, 0, 1773, 2134, 2134, 2099, 2197, 2208,
2236, 2269, 2304, 2474, 2474, 743, 743, 743, 743, 615,
615, 273, 320, 320, 83, 83, 83, 0, 1773, 0,
0, 1773, 0, 0, -44, 1773, 2134, 0, 1773, 1773,
0, -137, 0, -243, 0, 0, 0, 0, 0, 63,
0, 0, -16, 28, 80, 117, 477, 0, 0, 0,
1653, 0, -32, 83, 1773, 83, 83, 0, 106, 83,
2134, 136, 0, 0, 145, 1303, 0, 0, 0, 2169,
0, 129, -16, 155, 2276, 0, 171, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1146, 0, 0, 1403, 1413, 1691, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 16, 188, 0, 0, 0,
-13, 206, 79, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 213, 0, 0, 1716, 1721,
0, 0, 0, 0, 0, 0, 0, 1730, 0, 0,
0, 0, 311, 402, 414, 487, 515, 0, 0, 583,
673, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-19, 0, 0, 0, 0, 10, 52, 111, 359, 0,
0, 0, 492, 0, 0, 0, 0, 0, 1746, 0,
0, 0, 0, 0, 0, 668, 892, 0, 881, 153,
479, 1135, 128, 1583, 1620, 1366, 1438, 1546, 1572, 1264,
1312, 1236, 1182, 1224, 782, 794, 853, 40, 0, 0,
0, 0, 0, 0, 0, 193, 239, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 201, -30, 0, 0, 0, 0, 0, 99,
138, 0, 0, 928, 0, 967, 1056, 0, 0, 1110,
-18, 0, 0, 0, 0, 0, 0, 0, 0, 110,
0, 0, 257, 544, 0, 0, 0, 0,
2543, 5, 0, 0, 42, 0, 107, 75, 450, 13,
115, 0, 148, 0, 120, 989, 0, 215, 0, 81,
133, 118, 181, 121, 37, 119, 173, 114, 70, 75,
74, 114, 68, 74, 69, 4, 47, 48, 49, 110,
58, 27, 28, 114, 27, 28, 170, 114, 135, 209,
26, 74, 59, 60, 61, 126, 187, 133, 133, 130,
133, 133, 133, 133, 133, 133, 133, 133, 198, 128,
75, 76, 50, 75, 120, 129, 4, 130, 133, 4,
133, 133, 133, 133, 133, 118, 131, 121, 118, 119,
121, 75, 119, 174, 42, 133, 130, 130, 74, 130,
130, 130, 130, 130, 130, 130, 130, 120, 114, 191,
174, 133, 76, 133, 133, 76, 168, 130, 68, 130,
130, 130, 130, 130, 79, 27, 28, 168, 4, 53,
82, 26, 165, 76, 134, 112, 132, 110, 120, 74,
207, 120, 109, 206, 133, 133, 192, 48, 107, 127,
130, 202, 130, 130, 75, 68, 68, 63, 68, 68,
68, 68, 68, 68, 68, 68, 211, 160, 163, 170,
53, 82, 51, 53, 82, 204, 68, 208, 68, 68,
68, 68, 68, 130, 130, 48, 180, 53, 48, 214,
53, 48, 82, 108, 63, 63, 76, 212, 63, 63,
63, 63, 63, 63, 63, 48, 173, 1, 48, 68,
48, 68, 68, 51, 215, 63, 51, 63, 63, 63,
63, 63, 53, 74, 58, 3, 193, 47, 48, 49,
51, 218, 15, 51, 206, 51, 65, 66, 61, 171,
48, 48, 68, 68, 47, 48, 49, 217, 63, 67,
63, 63, 115, 26, 53, 82, 26, 188, 5, 116,
117, 126, 189, 50, 126, 51, 199, 0, 0, 15,
15, 48, 48, 15, 15, 15, 15, 15, 0, 15,
50, 63, 63, 176, 177, 178, 179, 0, 186, 66,
15, 0, 15, 15, 15, 15, 15, 51, 0, 5,
213, 133, 5, 0, 133, 133, 133, 133, 133, 133,
133, 133, 0, 133, 133, 133, 205, 127, 0, 0,
127, 0, 0, 116, 117, 15, 15, 0, 99, 103,
7, 0, 109, 0, 101, 99, 0, 100, 107, 102,
130, 0, 0, 130, 130, 130, 130, 130, 130, 130,
130, 5, 130, 130, 130, 0, 15, 15, 0, 0,
0, 0, 0, 0, 0, 0, 0, 7, 7, 0,
0, 7, 7, 7, 7, 7, 103, 7, 80, 109,
0, 101, 0, 108, 0, 107, 102, 67, 7, 0,
7, 7, 7, 7, 7, 104, 105, 106, 0, 68,
0, 0, 68, 68, 68, 68, 68, 68, 68, 68,
53, 68, 68, 68, 0, 0, 0, 0, 0, 80,
0, 8, 80, 7, 7, 0, 0, 0, 48, 0,
108, 48, 48, 6, 0, 0, 0, 0, 63, 0,
80, 63, 63, 63, 63, 63, 63, 63, 63, 0,
0, 0, 63, 51, 7, 7, 51, 51, 8, 8,
0, 0, 8, 8, 8, 8, 8, 0, 8, 43,
6, 6, 0, 0, 6, 6, 6, 6, 6, 8,
6, 8, 8, 8, 8, 8, 0, 0, 71, 72,
0, 6, 0, 6, 6, 6, 6, 6, 50, 43,
0, 0, 0, 80, 0, 0, 11, 0, 0, 0,
43, 84, 0, 15, 8, 8, 15, 15, 15, 15,
15, 15, 15, 15, 43, 0, 6, 6, 0, 0,
0, 0, 0, 0, 12, 0, 0, 182, 0, 50,
0, 0, 50, 11, 11, 8, 8, 11, 11, 11,
11, 11, 84, 11, 0, 84, 50, 6, 6, 50,
0, 50, 0, 96, 11, 0, 11, 11, 11, 11,
11, 12, 12, 84, 0, 12, 12, 12, 12, 12,
0, 12, 0, 172, 0, 104, 105, 106, 0, 0,
184, 50, 12, 0, 12, 12, 12, 12, 12, 11,
11, 184, 9, 0, 96, 0, 0, 96, 0, 0,
0, 7, 0, 0, 7, 7, 7, 7, 7, 7,
7, 7, 50, 50, 0, 96, 0, 12, 12, 0,
11, 11, 104, 105, 106, 0, 84, 0, 0, 9,
9, 0, 0, 9, 9, 9, 9, 9, 0, 9,
0, 0, 0, 0, 0, 0, 184, 0, 12, 12,
9, 0, 9, 9, 9, 9, 9, 0, 0, 0,
0, 103, 0, 0, 109, 184, 101, 99, 0, 100,
107, 102, 0, 0, 184, 0, 0, 55, 96, 0,
0, 0, 10, 0, 0, 9, 9, 0, 98, 0,
0, 0, 8, 0, 0, 8, 8, 8, 8, 8,
8, 8, 8, 0, 6, 0, 0, 6, 6, 6,
6, 6, 6, 6, 6, 108, 9, 9, 55, 10,
10, 55, 0, 10, 10, 10, 10, 10, 0, 10,
0, 0, 0, 0, 0, 55, 0, 0, 0, 0,
10, 0, 10, 10, 10, 10, 10, 5, 0, 7,
8, 9, 10, 0, 12, 0, 14, 0, 15, 16,
17, 18, 19, 20, 0, 0, 0, 0, 0, 50,
55, 0, 50, 50, 0, 10, 10, 11, 0, 0,
11, 11, 11, 11, 11, 11, 11, 11, 0, 103,
0, 35, 109, 0, 101, 99, 0, 100, 107, 102,
0, 0, 55, 36, 0, 12, 10, 10, 12, 12,
12, 12, 12, 12, 12, 12, 98, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 35, 35,
0, 0, 35, 35, 35, 35, 35, 0, 35, 0,
36, 36, 0, 108, 36, 36, 36, 36, 36, 35,
36, 35, 35, 35, 35, 35, 0, 0, 0, 0,
0, 36, 37, 36, 36, 36, 36, 36, 0, 0,
0, 0, 0, 9, 0, 0, 9, 9, 9, 9,
9, 9, 9, 9, 35, 35, 0, 0, 0, 0,
52, 0, 0, 0, 0, 0, 36, 36, 0, 37,
37, 54, 0, 37, 37, 37, 37, 37, 0, 37,
0, 0, 0, 0, 0, 35, 35, 104, 105, 106,
37, 0, 37, 37, 37, 37, 37, 36, 36, 0,
0, 52, 0, 0, 52, 0, 0, 32, 0, 0,
0, 0, 54, 0, 0, 54, 0, 0, 52, 0,
0, 52, 0, 52, 0, 37, 37, 0, 0, 54,
0, 0, 0, 10, 0, 0, 10, 10, 10, 10,
10, 10, 10, 10, 32, 32, 18, 0, 32, 32,
32, 32, 32, 52, 32, 0, 37, 37, 0, 0,
0, 0, 0, 0, 54, 32, 0, 32, 32, 32,
32, 32, 0, 0, 0, 51, 52, 53, 54, 0,
0, 63, 64, 18, 18, 52, 0, 18, 18, 18,
18, 18, 0, 18, 0, 0, 54, 0, 0, 0,
32, 32, 0, 0, 18, 0, 18, 18, 18, 18,
18, 0, 96, 97, 0, 104, 105, 106, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 32, 32, 0, 0, 21, 0, 0, 0, 18,
18, 0, 35, 0, 0, 35, 35, 35, 35, 35,
35, 35, 35, 0, 36, 0, 0, 36, 36, 36,
36, 36, 36, 36, 36, 0, 0, 0, 0, 0,
18, 18, 21, 21, 161, 164, 21, 21, 21, 21,
21, 0, 21, 0, 0, 0, 0, 0, 0, 31,
0, 0, 0, 21, 190, 21, 21, 21, 21, 21,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 37, 49, 0, 37, 37, 37, 37,
37, 37, 37, 37, 0, 116, 31, 31, 21, 21,
31, 31, 31, 31, 31, 0, 31, 0, 0, 0,
0, 52, 203, 0, 52, 0, 0, 31, 0, 31,
31, 31, 31, 31, 0, 49, 0, 0, 49, 21,
21, 38, 0, 116, 0, 116, 116, 116, 0, 116,
0, 0, 49, 0, 0, 49, 0, 49, 0, 0,
0, 0, 31, 31, 0, 0, 0, 116, 32, 0,
0, 32, 32, 32, 32, 32, 32, 32, 32, 38,
0, 0, 38, 39, 38, 38, 38, 49, 49, 0,
0, 0, 0, 31, 31, 34, 116, 0, 0, 38,
0, 38, 38, 38, 38, 38, 0, 18, 0, 0,
18, 18, 18, 18, 18, 18, 18, 18, 49, 49,
0, 39, 0, 40, 39, 0, 39, 39, 39, 0,
116, 0, 0, 34, 38, 38, 34, 0, 0, 34,
0, 39, 0, 39, 39, 39, 39, 39, 0, 0,
0, 0, 0, 34, 0, 34, 34, 34, 34, 34,
0, 40, 0, 0, 40, 38, 38, 40, 0, 0,
0, 41, 0, 0, 0, 0, 39, 39, 0, 0,
0, 40, 0, 40, 40, 40, 40, 0, 34, 34,
0, 0, 0, 0, 0, 0, 21, 0, 0, 21,
21, 21, 21, 21, 21, 21, 21, 39, 39, 41,
0, 0, 41, 0, 0, 41, 40, 40, 0, 34,
34, 0, 0, 0, 0, 46, 0, 0, 0, 41,
0, 41, 41, 41, 41, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 40, 40, 0,
31, 0, 0, 31, 31, 31, 31, 31, 31, 31,
31, 0, 118, 46, 41, 41, 46, 0, 0, 46,
0, 0, 101, 0, 116, 49, 0, 0, 49, 49,
0, 116, 116, 46, 0, 46, 46, 46, 46, 0,
0, 0, 0, 0, 0, 41, 41, 47, 0, 0,
118, 0, 118, 118, 118, 0, 118, 0, 0, 0,
101, 0, 101, 101, 101, 0, 101, 0, 46, 46,
0, 0, 38, 0, 118, 38, 38, 38, 38, 38,
38, 38, 38, 0, 101, 47, 0, 0, 47, 0,
0, 47, 0, 0, 0, 0, 0, 0, 0, 46,
46, 0, 0, 118, 0, 47, 0, 47, 47, 47,
47, 0, 0, 101, 39, 0, 0, 39, 39, 39,
39, 39, 39, 39, 39, 0, 34, 0, 0, 34,
34, 34, 34, 34, 34, 34, 34, 118, 0, 0,
47, 47, 0, 0, 0, 0, 0, 101, 0, 0,
0, 0, 0, 0, 40, 44, 0, 40, 40, 40,
40, 40, 40, 40, 40, 0, 0, 0, 0, 0,
0, 47, 47, 5, 0, 7, 8, 9, 10, 0,
12, 45, 14, 0, 15, 16, 17, 18, 19, 20,
0, 0, 42, 44, 0, 0, 44, 0, 0, 44,
0, 0, 41, 0, 0, 41, 41, 41, 41, 41,
41, 41, 41, 44, 0, 44, 44, 44, 44, 45,
0, 0, 45, 0, 0, 45, 0, 0, 0, 43,
42, 0, 0, 42, 0, 0, 42, 0, 0, 45,
0, 45, 45, 45, 45, 0, 0, 0, 44, 44,
42, 0, 0, 42, 0, 42, 46, 0, 0, 46,
46, 46, 46, 46, 46, 0, 0, 43, 0, 0,
43, 0, 0, 43, 45, 45, 0, 0, 0, 44,
44, 118, 0, 0, 0, 42, 42, 43, 118, 118,
43, 101, 43, 0, 0, 32, 0, 0, 101, 101,
102, 0, 30, 0, 0, 45, 45, 0, 0, 0,
0, 0, 0, 0, 0, 0, 42, 42, 0, 0,
0, 0, 43, 43, 0, 124, 0, 0, 47, 0,
125, 47, 47, 47, 47, 47, 47, 0, 102, 105,
102, 102, 102, 0, 102, 0, 0, 0, 0, 0,
0, 0, 0, 43, 43, 107, 0, 0, 0, 0,
0, 0, 102, 124, 0, 124, 124, 124, 125, 124,
125, 125, 125, 0, 125, 0, 0, 105, 0, 105,
105, 105, 0, 105, 0, 34, 0, 124, 33, 0,
0, 102, 125, 107, 0, 107, 107, 107, 0, 107,
0, 105, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 32, 124, 107, 0, 0,
25, 125, 30, 0, 27, 102, 0, 26, 0, 0,
105, 0, 0, 0, 0, 0, 44, 0, 0, 44,
44, 44, 44, 44, 44, 0, 107, 0, 0, 0,
124, 0, 0, 0, 118, 125, 121, 182, 119, 0,
0, 0, 45, 0, 105, 45, 45, 45, 45, 45,
45, 0, 0, 42, 0, 0, 42, 42, 42, 42,
107, 32, 0, 0, 0, 0, 25, 0, 55, 0,
27, 0, 0, 26, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 34, 0, 120, 33, 0,
43, 0, 0, 43, 43, 43, 43, 0, 0, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 0, 15, 16, 17, 18, 19, 20,
21, 22, 23, 0, 24, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 28, 29, 0, 31, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 102,
0, 34, 0, 0, 33, 0, 102, 102, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 124, 0, 0, 0, 0, 125,
0, 124, 124, 0, 0, 0, 125, 125, 105, 0,
0, 0, 0, 0, 0, 105, 105, 0, 0, 0,
0, 0, 0, 0, 107, 0, 0, 0, 0, 0,
0, 107, 107, 0, 0, 0, 0, 0, 0, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 0, 15, 16, 17, 18, 19, 20,
21, 22, 23, 0, 24, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 28, 29, 5, 31, 7,
8, 9, 10, 0, 12, 0, 14, 0, 15, 16,
17, 18, 19, 20, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 0,
15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 28, 29, 0, 31, 103, 89, 0, 109, 0,
101, 99, 0, 100, 107, 102, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 195, 0, 92, 83,
93, 84, 98, 0, 0, 0, 0, 0, 0, 0,
103, 89, 0, 109, 0, 101, 99, 159, 100, 107,
102, 0, 0, 0, 0, 0, 0, 0, 0, 108,
0, 0, 88, 92, 83, 93, 84, 98, 0, 0,
0, 0, 0, 0, 0, 103, 89, 0, 109, 0,
101, 99, 0, 100, 107, 102, 162, 0, 0, 0,
0, 0, 87, 0, 108, 0, 0, 88, 92, 0,
93, 84, 98, 103, 89, 0, 109, 0, 101, 99,
0, 100, 107, 102, 103, 89, 0, 109, 0, 101,
99, 0, 100, 107, 102, 0, 92, 87, 93, 108,
98, 0, 88, 0, 0, 0, 0, 92, 0, 93,
0, 98, 103, 89, 0, 109, 0, 101, 99, 0,
100, 107, 102, 0, 0, 0, 0, 108, 0, 0,
88, 0, 87, 0, 0, 92, 0, 93, 108, 98,
0, 88, 0, 0, 0, 103, 89, 0, 109, 0,
101, 99, 0, 100, 107, 102, 216, 0, 0, 0,
87, 0, 0, 0, 0, 0, 108, 0, 92, 88,
93, 87, 98, 0, 0, 0, 0, 0, 0, 0,
103, 0, 0, 109, 0, 101, 99, 0, 100, 107,
102, 0, 0, 0, 0, 0, 0, 0, 0, 108,
0, 0, 0, 92, 0, 93, 0, 98, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 82,
0, 0, 85, 86, 90, 91, 94, 95, 96, 97,
0, 104, 105, 106, 108, 47, 158, 49, 7, 8,
9, 10, 0, 12, 0, 14, 0, 15, 16, 17,
18, 19, 20, 0, 82, 0, 0, 85, 86, 90,
91, 94, 95, 96, 97, 0, 104, 105, 106, 0,
0, 50, 0, 0, 47, 158, 49, 7, 8, 9,
10, 0, 12, 0, 14, 0, 15, 16, 17, 18,
19, 20, 85, 86, 90, 91, 94, 95, 96, 97,
0, 104, 105, 106, 0, 0, 0, 0, 0, 0,
50, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 86, 90, 91, 94, 95, 96, 97, 0, 104,
105, 106, 0, 90, 91, 94, 95, 96, 97, 0,
104, 105, 106, 0, 0, 0, 0, 0, 0, 0,
103, 0, 0, 109, 0, 101, 99, 0, 100, 107,
102, 90, 91, 94, 95, 96, 97, 0, 104, 105,
106, 0, 0, 92, 0, 93, 5, 98, 7, 8,
9, 10, 0, 12, 0, 14, 0, 15, 16, 17,
18, 19, 20, 56, 90, 91, 94, 95, 96, 97,
0, 104, 105, 106, 108, 0, 0, 73, 74, 75,
76, 77, 0, 0, 80, 81, 0, 0, 0, 0,
0, 0, 0, 111, 0, 0, 0, 0, 0, 90,
91, 94, 95, 96, 97, 0, 104, 105, 106, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 136, 137, 138, 139, 140, 141,
142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
152, 153, 154, 155, 156, 157, 0, 0, 0, 0,
0, 0, 167, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 194, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 196, 0, 0, 197, 0, 0, 0, 111, 0,
0, 200, 201, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 194, 0, 0, 0, 210, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 94, 95, 96, 97, 0, 104, 105, 106,
0, 38, 93, 40, 0, 42, 42, 40, 275, 0,
41, 40, 273, 44, 275, 0, 260, 261, 262, 44,
261, 41, 41, 40, 44, 44, 44, 40, 41, 62,
44, 62, 273, 274, 275, 269, 40, 37, 38, 0,
40, 41, 42, 43, 44, 45, 46, 47, 93, 269,
41, 0, 296, 44, 91, 273, 41, 275, 58, 44,
60, 61, 62, 63, 64, 38, 275, 40, 38, 42,
40, 62, 42, 126, 0, 275, 37, 38, 0, 40,
41, 42, 43, 44, 45, 46, 47, 91, 40, 41,
126, 91, 41, 93, 94, 44, 125, 58, 0, 60,
61, 62, 63, 64, 30, 125, 125, 125, 93, 0,
0, 125, 108, 62, 41, 41, 60, 44, 91, 41,
41, 91, 40, 44, 124, 125, 275, 0, 46, 55,
91, 269, 93, 94, 125, 37, 38, 0, 40, 41,
42, 43, 44, 45, 46, 47, 41, 106, 107, 44,
41, 41, 0, 44, 44, 93, 58, 41, 60, 61,
62, 63, 64, 124, 125, 38, 257, 58, 41, 41,
61, 44, 62, 91, 37, 38, 125, 42, 41, 42,
43, 44, 45, 46, 47, 58, 42, 0, 61, 91,
63, 93, 94, 41, 40, 58, 44, 60, 61, 62,
63, 64, 93, 125, 261, 0, 132, 260, 261, 262,
58, 41, 0, 61, 44, 63, 273, 274, 275, 113,
93, 94, 124, 125, 260, 261, 262, 215, 91, 15,
93, 94, 269, 41, 125, 125, 44, 123, 0, 276,
277, 41, 123, 296, 44, 93, 166, -1, -1, 37,
38, 124, 125, 41, 42, 43, 44, 45, -1, 47,
296, 124, 125, 116, 117, 118, 119, -1, 121, 269,
58, -1, 60, 61, 62, 63, 64, 125, -1, 41,
206, 281, 44, -1, 284, 285, 286, 287, 288, 289,
290, 291, -1, 293, 294, 295, 269, 41, -1, -1,
44, -1, -1, 276, 277, 93, 94, -1, 269, 37,
0, -1, 40, -1, 42, 43, -1, 45, 46, 47,
281, -1, -1, 284, 285, 286, 287, 288, 289, 290,
291, 93, 293, 294, 295, -1, 124, 125, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
-1, 41, 42, 43, 44, 45, 37, 47, 0, 40,
-1, 42, -1, 91, -1, 46, 47, 269, 58, -1,
60, 61, 62, 63, 64, 293, 294, 295, -1, 281,
-1, -1, 284, 285, 286, 287, 288, 289, 290, 291,
281, 293, 294, 295, -1, -1, -1, -1, -1, 41,
-1, 0, 44, 93, 94, -1, -1, -1, 281, -1,
91, 284, 285, 0, -1, -1, -1, -1, 281, -1,
62, 284, 285, 286, 287, 288, 289, 290, 291, -1,
-1, -1, 295, 281, 124, 125, 284, 285, 37, 38,
-1, -1, 41, 42, 43, 44, 45, -1, 47, 0,
37, 38, -1, -1, 41, 42, 43, 44, 45, 58,
47, 60, 61, 62, 63, 64, -1, -1, 19, 20,
-1, 58, -1, 60, 61, 62, 63, 64, 0, 30,
-1, -1, -1, 125, -1, -1, 0, -1, -1, -1,
41, 0, -1, 281, 93, 94, 284, 285, 286, 287,
288, 289, 290, 291, 55, -1, 93, 94, -1, -1,
-1, -1, -1, -1, 0, -1, -1, 41, -1, 41,
-1, -1, 44, 37, 38, 124, 125, 41, 42, 43,
44, 45, 41, 47, -1, 44, 58, 124, 125, 61,
-1, 63, -1, 0, 58, -1, 60, 61, 62, 63,
64, 37, 38, 62, -1, 41, 42, 43, 44, 45,
-1, 47, -1, 114, -1, 293, 294, 295, -1, -1,
121, 93, 58, -1, 60, 61, 62, 63, 64, 93,
94, 132, 0, -1, 41, -1, -1, 44, -1, -1,
-1, 281, -1, -1, 284, 285, 286, 287, 288, 289,
290, 291, 124, 125, -1, 62, -1, 93, 94, -1,
124, 125, 293, 294, 295, -1, 125, -1, -1, 37,
38, -1, -1, 41, 42, 43, 44, 45, -1, 47,
-1, -1, -1, -1, -1, -1, 187, -1, 124, 125,
58, -1, 60, 61, 62, 63, 64, -1, -1, -1,
-1, 37, -1, -1, 40, 206, 42, 43, -1, 45,
46, 47, -1, -1, 215, -1, -1, 0, 125, -1,
-1, -1, 0, -1, -1, 93, 94, -1, 64, -1,
-1, -1, 281, -1, -1, 284, 285, 286, 287, 288,
289, 290, 291, -1, 281, -1, -1, 284, 285, 286,
287, 288, 289, 290, 291, 91, 124, 125, 41, 37,
38, 44, -1, 41, 42, 43, 44, 45, -1, 47,
-1, -1, -1, -1, -1, 58, -1, -1, -1, -1,
58, -1, 60, 61, 62, 63, 64, 261, -1, 263,
264, 265, 266, -1, 268, -1, 270, -1, 272, 273,
274, 275, 276, 277, -1, -1, -1, -1, -1, 281,
93, -1, 284, 285, -1, 93, 94, 281, -1, -1,
284, 285, 286, 287, 288, 289, 290, 291, -1, 37,
-1, 0, 40, -1, 42, 43, -1, 45, 46, 47,
-1, -1, 125, 0, -1, 281, 124, 125, 284, 285,
286, 287, 288, 289, 290, 291, 64, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
-1, -1, 41, 42, 43, 44, 45, -1, 47, -1,
37, 38, -1, 91, 41, 42, 43, 44, 45, 58,
47, 60, 61, 62, 63, 64, -1, -1, -1, -1,
-1, 58, 0, 60, 61, 62, 63, 64, -1, -1,
-1, -1, -1, 281, -1, -1, 284, 285, 286, 287,
288, 289, 290, 291, 93, 94, -1, -1, -1, -1,
0, -1, -1, -1, -1, -1, 93, 94, -1, 37,
38, 0, -1, 41, 42, 43, 44, 45, -1, 47,
-1, -1, -1, -1, -1, 124, 125, 293, 294, 295,
58, -1, 60, 61, 62, 63, 64, 124, 125, -1,
-1, 41, -1, -1, 44, -1, -1, 0, -1, -1,
-1, -1, 41, -1, -1, 44, -1, -1, 58, -1,
-1, 61, -1, 63, -1, 93, 94, -1, -1, 58,
-1, -1, -1, 281, -1, -1, 284, 285, 286, 287,
288, 289, 290, 291, 37, 38, 0, -1, 41, 42,
43, 44, 45, 93, 47, -1, 124, 125, -1, -1,
-1, -1, -1, -1, 93, 58, -1, 60, 61, 62,
63, 64, -1, -1, -1, 7, 8, 9, 10, -1,
-1, 13, 14, 37, 38, 125, -1, 41, 42, 43,
44, 45, -1, 47, -1, -1, 125, -1, -1, -1,
93, 94, -1, -1, 58, -1, 60, 61, 62, 63,
64, -1, 290, 291, -1, 293, 294, 295, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 124, 125, -1, -1, 0, -1, -1, -1, 93,
94, -1, 281, -1, -1, 284, 285, 286, 287, 288,
289, 290, 291, -1, 281, -1, -1, 284, 285, 286,
287, 288, 289, 290, 291, -1, -1, -1, -1, -1,
124, 125, 37, 38, 106, 107, 41, 42, 43, 44,
45, -1, 47, -1, -1, -1, -1, -1, -1, 0,
-1, -1, -1, 58, 126, 60, 61, 62, 63, 64,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 281, 0, -1, 284, 285, 286, 287,
288, 289, 290, 291, -1, 0, 37, 38, 93, 94,
41, 42, 43, 44, 45, -1, 47, -1, -1, -1,
-1, 281, 174, -1, 284, -1, -1, 58, -1, 60,
61, 62, 63, 64, -1, 41, -1, -1, 44, 124,
125, 0, -1, 38, -1, 40, 41, 42, -1, 44,
-1, -1, 58, -1, -1, 61, -1, 63, -1, -1,
-1, -1, 93, 94, -1, -1, -1, 62, 281, -1,
-1, 284, 285, 286, 287, 288, 289, 290, 291, 38,
-1, -1, 41, 0, 43, 44, 45, 93, 94, -1,
-1, -1, -1, 124, 125, 0, 91, -1, -1, 58,
-1, 60, 61, 62, 63, 64, -1, 281, -1, -1,
284, 285, 286, 287, 288, 289, 290, 291, 124, 125,
-1, 38, -1, 0, 41, -1, 43, 44, 45, -1,
125, -1, -1, 38, 93, 94, 41, -1, -1, 44,
-1, 58, -1, 60, 61, 62, 63, 64, -1, -1,
-1, -1, -1, 58, -1, 60, 61, 62, 63, 64,
-1, 38, -1, -1, 41, 124, 125, 44, -1, -1,
-1, 0, -1, -1, -1, -1, 93, 94, -1, -1,
-1, 58, -1, 60, 61, 62, 63, -1, 93, 94,
-1, -1, -1, -1, -1, -1, 281, -1, -1, 284,
285, 286, 287, 288, 289, 290, 291, 124, 125, 38,
-1, -1, 41, -1, -1, 44, 93, 94, -1, 124,
125, -1, -1, -1, -1, 0, -1, -1, -1, 58,
-1, 60, 61, 62, 63, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 124, 125, -1,
281, -1, -1, 284, 285, 286, 287, 288, 289, 290,
291, -1, 0, 38, 93, 94, 41, -1, -1, 44,
-1, -1, 0, -1, 269, 281, -1, -1, 284, 285,
-1, 276, 277, 58, -1, 60, 61, 62, 63, -1,
-1, -1, -1, -1, -1, 124, 125, 0, -1, -1,
38, -1, 40, 41, 42, -1, 44, -1, -1, -1,
38, -1, 40, 41, 42, -1, 44, -1, 93, 94,
-1, -1, 281, -1, 62, 284, 285, 286, 287, 288,
289, 290, 291, -1, 62, 38, -1, -1, 41, -1,
-1, 44, -1, -1, -1, -1, -1, -1, -1, 124,
125, -1, -1, 91, -1, 58, -1, 60, 61, 62,
63, -1, -1, 91, 281, -1, -1, 284, 285, 286,
287, 288, 289, 290, 291, -1, 281, -1, -1, 284,
285, 286, 287, 288, 289, 290, 291, 125, -1, -1,
93, 94, -1, -1, -1, -1, -1, 125, -1, -1,
-1, -1, -1, -1, 281, 0, -1, 284, 285, 286,
287, 288, 289, 290, 291, -1, -1, -1, -1, -1,
-1, 124, 125, 261, -1, 263, 264, 265, 266, -1,
268, 0, 270, -1, 272, 273, 274, 275, 276, 277,
-1, -1, 0, 38, -1, -1, 41, -1, -1, 44,
-1, -1, 281, -1, -1, 284, 285, 286, 287, 288,
289, 290, 291, 58, -1, 60, 61, 62, 63, 38,
-1, -1, 41, -1, -1, 44, -1, -1, -1, 0,
38, -1, -1, 41, -1, -1, 44, -1, -1, 58,
-1, 60, 61, 62, 63, -1, -1, -1, 93, 94,
58, -1, -1, 61, -1, 63, 281, -1, -1, 284,
285, 286, 287, 288, 289, -1, -1, 38, -1, -1,
41, -1, -1, 44, 93, 94, -1, -1, -1, 124,
125, 269, -1, -1, -1, 93, 94, 58, 276, 277,
61, 269, 63, -1, -1, 33, -1, -1, 276, 277,
0, -1, 40, -1, -1, 124, 125, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 124, 125, -1, -1,
-1, -1, 93, 94, -1, 0, -1, -1, 281, -1,
0, 284, 285, 286, 287, 288, 289, -1, 38, 0,
40, 41, 42, -1, 44, -1, -1, -1, -1, -1,
-1, -1, -1, 124, 125, 0, -1, -1, -1, -1,
-1, -1, 62, 38, -1, 40, 41, 42, 38, 44,
40, 41, 42, -1, 44, -1, -1, 38, -1, 40,
41, 42, -1, 44, -1, 123, -1, 62, 126, -1,
-1, 91, 62, 38, -1, 40, 41, 42, -1, 44,
-1, 62, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 33, 91, 62, -1, -1,
38, 91, 40, -1, 42, 125, -1, 45, -1, -1,
91, -1, -1, -1, -1, -1, 281, -1, -1, 284,
285, 286, 287, 288, 289, -1, 91, -1, -1, -1,
125, -1, -1, -1, 38, 125, 40, 41, 42, -1,
-1, -1, 281, -1, 125, 284, 285, 286, 287, 288,
289, -1, -1, 281, -1, -1, 284, 285, 286, 287,
125, 33, -1, -1, -1, -1, 38, -1, 40, -1,
42, -1, -1, 45, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 123, -1, 91, 126, -1,
281, -1, -1, 284, 285, 286, 287, -1, -1, 257,
258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
268, 269, 270, -1, 272, 273, 274, 275, 276, 277,
278, 279, 280, -1, 282, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 293, 294, -1, 296, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 269,
-1, 123, -1, -1, 126, -1, 276, 277, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 269, -1, -1, -1, -1, 269,
-1, 276, 277, -1, -1, -1, 276, 277, 269, -1,
-1, -1, -1, -1, -1, 276, 277, -1, -1, -1,
-1, -1, -1, -1, 269, -1, -1, -1, -1, -1,
-1, 276, 277, -1, -1, -1, -1, -1, -1, 257,
258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
268, 269, 270, -1, 272, 273, 274, 275, 276, 277,
278, 279, 280, -1, 282, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 293, 294, 261, 296, 263,
264, 265, 266, -1, 268, -1, 270, -1, 272, 273,
274, 275, 276, 277, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 257, 258, 259, 260, 261,
262, 263, 264, 265, 266, 267, 268, 269, 270, -1,
272, 273, 274, 275, 276, 277, 278, 279, 280, -1,
282, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 293, 294, -1, 296, 37, 38, -1, 40, -1,
42, 43, -1, 45, 46, 47, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 58, -1, 60, 61,
62, 63, 64, -1, -1, -1, -1, -1, -1, -1,
37, 38, -1, 40, -1, 42, 43, 42, 45, 46,
47, -1, -1, -1, -1, -1, -1, -1, -1, 91,
-1, -1, 94, 60, 61, 62, 63, 64, -1, -1,
-1, -1, -1, -1, -1, 37, 38, -1, 40, -1,
42, 43, -1, 45, 46, 47, 42, -1, -1, -1,
-1, -1, 124, -1, 91, -1, -1, 94, 60, -1,
62, 63, 64, 37, 38, -1, 40, -1, 42, 43,
-1, 45, 46, 47, 37, 38, -1, 40, -1, 42,
43, -1, 45, 46, 47, -1, 60, 124, 62, 91,
64, -1, 94, -1, -1, -1, -1, 60, -1, 62,
-1, 64, 37, 38, -1, 40, -1, 42, 43, -1,
45, 46, 47, -1, -1, -1, -1, 91, -1, -1,
94, -1, 124, -1, -1, 60, -1, 62, 91, 64,
-1, 94, -1, -1, -1, 37, 38, -1, 40, -1,
42, 43, -1, 45, 46, 47, 41, -1, -1, -1,
124, -1, -1, -1, -1, -1, 91, -1, 60, 94,
62, 124, 64, -1, -1, -1, -1, -1, -1, -1,
37, -1, -1, 40, -1, 42, 43, -1, 45, 46,
47, -1, -1, -1, -1, -1, -1, -1, -1, 91,
-1, -1, -1, 60, -1, 62, -1, 64, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 281,
-1, -1, 284, 285, 286, 287, 288, 289, 290, 291,
-1, 293, 294, 295, 91, 260, 261, 262, 263, 264,
265, 266, -1, 268, -1, 270, -1, 272, 273, 274,
275, 276, 277, -1, 281, -1, -1, 284, 285, 286,
287, 288, 289, 290, 291, -1, 293, 294, 295, -1,
-1, 296, -1, -1, 260, 261, 262, 263, 264, 265,
266, -1, 268, -1, 270, -1, 272, 273, 274, 275,
276, 277, 284, 285, 286, 287, 288, 289, 290, 291,
-1, 293, 294, 295, -1, -1, -1, -1, -1, -1,
296, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 285, 286, 287, 288, 289, 290, 291, -1, 293,
294, 295, -1, 286, 287, 288, 289, 290, 291, -1,
293, 294, 295, -1, -1, -1, -1, -1, -1, -1,
37, -1, -1, 40, -1, 42, 43, -1, 45, 46,
47, 286, 287, 288, 289, 290, 291, -1, 293, 294,
295, -1, -1, 60, -1, 62, 261, 64, 263, 264,
265, 266, -1, 268, -1, 270, -1, 272, 273, 274,
275, 276, 277, 11, 286, 287, 288, 289, 290, 291,
-1, 293, 294, 295, 91, -1, -1, 25, 26, 27,
28, 29, -1, -1, 32, 33, -1, -1, -1, -1,
-1, -1, -1, 41, -1, -1, -1, -1, -1, 286,
287, 288, 289, 290, 291, -1, 293, 294, 295, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
-1, -1, 110, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 135, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 159, -1, -1, 162, -1, -1, -1, 166, -1,
-1, 169, 170, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 191, -1, -1, -1, 195, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 288, 289, 290, 291, -1, 293, 294, 295,
"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
"'!'",0,0,0,"'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",0,0,0,
0,0,0,0,0,0,0,"':'",0,"'<'","'='","'>'","'?'","'@'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,"'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,"'{'","'|'","'}'","'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"INT","FLOAT",
"STRING","NAME","TYPENAME","NAME_OR_INT","STRUCT","CLASS","UNION","ENUM",
"SIZEOF","UNSIGNED","COLONCOLON","TEMPLATE","ERROR","SIGNED_KEYWORD","LONG",
"SHORT","INT_KEYWORD","CONST_KEYWORD","VOLATILE_KEYWORD","LAST","REGNAME",
"VARIABLE","ASSIGN_MODIFY","THIS","ABOVE_COMMA","OROR","ANDAND","EQUAL",
"NOTEQUAL","LEQ","GEQ","LSH","RSH","UNARY","INCREMENT","DECREMENT","ARROW",
"exp : exp ARROW qualified_name",
"exp : exp ARROW '*' exp",
"exp : exp '.' qualified_name",
"exp : exp '[' exp1 ']'",
"exp : exp '(' $$1 arglist ')'",
"arglist : arglist ',' exp",
"exp : lcurly arglist rcurly",
"exp : lcurly type rcurly exp",
"exp : '(' type ')' exp",
"exp : exp NOTEQUAL exp",
"exp : exp '?' exp ':' exp",
"exp : exp ASSIGN_MODIFY exp",
"exp : SIZEOF '(' type ')'",
"block : block COLONCOLON name",
"variable : block COLONCOLON name",
"qualified_name : typebase COLONCOLON name",
"qualified_name : typebase COLONCOLON '~' name",
"variable : qualified_name",
"variable : COLONCOLON name",
"variable : name_not_typename",
"ptype : typebase CONST_KEYWORD",
"ptype : typebase VOLATILE_KEYWORD",
"ptype : typebase abs_decl",
"ptype : typebase CONST_KEYWORD abs_decl",
"ptype : typebase VOLATILE_KEYWORD abs_decl",
"abs_decl : '*' abs_decl",
"abs_decl : '&' abs_decl",
"abs_decl : direct_abs_decl",
"direct_abs_decl : '(' abs_decl ')'",
"direct_abs_decl : direct_abs_decl array_mod",
"direct_abs_decl : array_mod",
"direct_abs_decl : direct_abs_decl func_mod",
"direct_abs_decl : func_mod",
"array_mod : '[' INT ']'",
"func_mod : '(' nonempty_typelist ')'",
"type : typebase COLONCOLON '*'",
"type : type '(' typebase COLONCOLON '*' ')'",
"type : type '(' typebase COLONCOLON '*' ')' '(' ')'",
"type : type '(' typebase COLONCOLON '*' ')' '(' nonempty_typelist ')'",
"typebase : INT_KEYWORD",
"typebase : LONG INT_KEYWORD",
"typebase : UNSIGNED LONG INT_KEYWORD",
"typebase : LONG LONG INT_KEYWORD",
"typebase : UNSIGNED LONG LONG",
"typebase : UNSIGNED LONG LONG INT_KEYWORD",
"typebase : SHORT INT_KEYWORD",
"typebase : UNSIGNED SHORT INT_KEYWORD",
"typebase : STRUCT name",
"typebase : UNSIGNED typename",
"typebase : SIGNED_KEYWORD typename",
"typebase : SIGNED_KEYWORD",
"typebase : TEMPLATE name '<' type '>'",
"typebase : CONST_KEYWORD typebase",
"typebase : VOLATILE_KEYWORD typebase",
"typename : INT_KEYWORD",
"nonempty_typelist : type",
"nonempty_typelist : nonempty_typelist ',' type",
"name_not_typename : NAME",
"name_not_typename : BLOCKNAME",
#define YYMAXDEPTH YYSTACKSIZE
#define YYSTACKSIZE YYMAXDEPTH
YYSTYPE yyvs
[YYSTACKSIZE
];
#define yystacksize YYSTACKSIZE
#line 914 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
/* Take care of parsing a number (anything that starts with a digit).
Set yylval and return the token type; update lexptr.
LEN is the number of characters in it. */
/*** Needs some error checking for the float case ***/
parse_number (p
, len
, parsed_float
, putithere
)
register LONGEST prevn
= 0;
register int base
= input_radix
;
unsigned LONGEST high_bit
;
struct type
*signed_type
;
struct type
*unsigned_type
;
/* It's a float since it contains a point or an exponent. */
putithere
->dval
= atof (p
);
/* Handle base-switching prefixes 0x, 0t, 0d, 0 */
if (c
>= 'A' && c
<= 'Z')
if (c
!= 'l' && c
!= 'u')
if (c
>= '0' && c
<= '9')
if (base
> 10 && c
>= 'a' && c
<= 'f')
else if (len
== 0 && c
== 'l')
else if (len
== 0 && c
== 'u')
return ERROR
; /* Char not a digit */
return ERROR
; /* Invalid digit in this base */
/* Portably test for overflow (only works for nonzero values, so make
a second check for zero). */
if((prevn
>= n
) && n
!= 0)
unsigned_p
=1; /* Try something unsigned */
/* If range checking enabled, portably test for unsigned overflow. */
if((unsigned_p
&& (unsigned)prevn
>= (unsigned)n
))
range_error("Overflow on numeric constant.");
/* If the number is too big to be an int, or it's got an l suffix
then it's a long. Work out if this has to be a long by
shifting right and and seeing if anything remains, and the
target int size is different to the target long size.
In the expression below, we could have tested
but too many compilers warn about that, when ints and longs
are the same size. So we shift it twice, with fewer bits
each time, for the same result. */
if ( (TARGET_INT_BIT
!= TARGET_LONG_BIT
&& ((n
>> 2) >> (TARGET_INT_BIT
-2))) /* Avoid shift warning */
high_bit
= ((unsigned LONGEST
)1) << (TARGET_LONG_BIT
-1);
unsigned_type
= builtin_type_unsigned_long
;
signed_type
= builtin_type_long
;
high_bit
= ((unsigned LONGEST
)1) << (TARGET_INT_BIT
-1);
unsigned_type
= builtin_type_unsigned_int
;
signed_type
= builtin_type_int
;
putithere
->typed_val
.val
= n
;
/* If the high bit of the worked out type is set then this number
if (unsigned_p
|| (n
& high_bit
))
putithere
->typed_val
.type
= unsigned_type
;
putithere
->typed_val
.type
= signed_type
;
static const struct token tokentab3
[] =
{">>=", ASSIGN_MODIFY
, BINOP_RSH
},
{"<<=", ASSIGN_MODIFY
, BINOP_LSH
}
static const struct token tokentab2
[] =
{"+=", ASSIGN_MODIFY
, BINOP_ADD
},
{"-=", ASSIGN_MODIFY
, BINOP_SUB
},
{"*=", ASSIGN_MODIFY
, BINOP_MUL
},
{"/=", ASSIGN_MODIFY
, BINOP_DIV
},
{"%=", ASSIGN_MODIFY
, BINOP_REM
},
{"|=", ASSIGN_MODIFY
, BINOP_BITWISE_IOR
},
{"&=", ASSIGN_MODIFY
, BINOP_BITWISE_AND
},
{"^=", ASSIGN_MODIFY
, BINOP_BITWISE_XOR
},
{"++", INCREMENT
, BINOP_END
},
{"--", DECREMENT
, BINOP_END
},
{"->", ARROW
, BINOP_END
},
{"&&", ANDAND
, BINOP_END
},
{"::", COLONCOLON
, BINOP_END
},
{"==", EQUAL
, BINOP_END
},
{"!=", NOTEQUAL
, BINOP_END
},
/* Read one token, getting characters through lexptr. */
/* See if it is a special token of length 3. */
for (i
= 0; i
< sizeof tokentab3
/ sizeof tokentab3
[0]; i
++)
if (STREQN (tokstart
, tokentab3
[i
].operator, 3))
yylval
.opcode
= tokentab3
[i
].opcode
;
return tokentab3
[i
].token
;
/* See if it is a special token of length 2. */
for (i
= 0; i
< sizeof tokentab2
/ sizeof tokentab2
[0]; i
++)
if (STREQN (tokstart
, tokentab2
[i
].operator, 2))
yylval
.opcode
= tokentab2
[i
].opcode
;
return tokentab2
[i
].token
;
/* We either have a character constant ('0' or '\177' for example)
or we have a quoted symbol reference ('foo(int,int)' in C++
c
= parse_escape (&lexptr
);
yylval
.typed_val
.val
= c
;
yylval
.typed_val
.type
= builtin_type_char
;
namelen
= skip_quoted (tokstart
) - tokstart
;
lexptr
= tokstart
+ namelen
;
error ("Unmatched single quote.");
error ("Invalid character constant.");
if (comma_terminates
&& paren_depth
== 0)
/* Might be a floating point number. */
if (lexptr
[1] < '0' || lexptr
[1] > '9')
goto symbol
; /* Nope, must be a symbol. */
/* FALL THRU into number case. */
int got_dot
= 0, got_e
= 0, toktype
;
register char *p
= tokstart
;
int hex
= input_radix
> 10;
if (c
== '0' && (p
[1] == 'x' || p
[1] == 'X'))
else if (c
== '0' && (p
[1]=='t' || p
[1]=='T' || p
[1]=='d' || p
[1]=='D'))
/* This test includes !hex because 'e' is a valid hex digit
and thus does not indicate a floating point number when
if (!hex
&& !got_e
&& (*p
== 'e' || *p
== 'E'))
/* This test does not include !hex, because a '.' always indicates
a decimal floating point number regardless of the radix. */
else if (!got_dot
&& *p
== '.')
else if (got_e
&& (p
[-1] == 'e' || p
[-1] == 'E')
&& (*p
== '-' || *p
== '+'))
/* This is the sign of the exponent, not the end of the
/* We will take any letters or digits. parse_number will
complain if past the radix, or if L or U are not final. */
else if ((*p
< '0' || *p
> '9')
&& ((*p
< 'a' || *p
> 'z')
&& (*p
< 'A' || *p
> 'Z')))
toktype
= parse_number (tokstart
, p
- tokstart
, got_dot
|got_e
, &yylval
);
char *err_copy
= (char *) alloca (p
- tokstart
+ 1);
memcpy (err_copy
, tokstart
, p
- tokstart
);
err_copy
[p
- tokstart
] = 0;
error ("Invalid number \"%s\".", err_copy
);
/* Build the gdb internal form of the input string in tempbuf,
translating any standard C escape forms seen. Note that the
buffer is null byte terminated *only* for the convenience of
debugging gdb itself and printing the buffer contents when
the buffer contains no embedded nulls. Gdb does not depend
upon the buffer being null byte terminated, it uses the length
string instead. This allows gdb to handle C strings (as well
as strings in other languages) with embedded null bytes */
/* Grow the static temp buffer if necessary, including allocating
the first one on demand. */
if (tempbufindex
+ 1 >= tempbufsize
)
tempbuf
= (char *) xrealloc (tempbuf
, tempbufsize
+= 64);
/* Do nothing, loop will terminate. */
c
= parse_escape (&tokptr
);
tempbuf
[tempbufindex
++] = c
;
tempbuf
[tempbufindex
++] = *tokptr
++;
} while ((*tokptr
!= '"') && (*tokptr
!= '\0'));
error ("Unterminated string in expression.");
tempbuf
[tempbufindex
] = '\0'; /* See note above */
yylval
.sval
.ptr
= tempbuf
;
yylval
.sval
.length
= tempbufindex
;
if (!(c
== '_' || c
== '$'
|| (c
>= 'a' && c
<= 'z') || (c
>= 'A' && c
<= 'Z')))
/* We must have come across a bad character (e.g. ';'). */
error ("Invalid character '%c' in expression.", c
);
/* It's a name. See how long it is. */
for (c
= tokstart
[namelen
];
(c
== '_' || c
== '$' || (c
>= '0' && c
<= '9')
|| (c
>= 'a' && c
<= 'z') || (c
>= 'A' && c
<= 'Z'));
/* The token "if" terminates the expression and is NOT
removed from the input stream. */
if (namelen
== 2 && tokstart
[0] == 'i' && tokstart
[1] == 'f')
/* Handle the tokens $digits; also $ (short for $0) and $$ (short for $$1)
and $$digits (equivalent to $<-digits> if you could type that).
Make token type LAST, and put the number (the digits) in yylval. */
/* Double dollar means negate the number and add -1 as well.
Thus $$ alone means -1. */
if (namelen
>= 2 && tokstart
[1] == '$')
/* Just dollars (one or two) */
/* Is the rest of the token digits? */
if (!(tokstart
[c
] >= '0' && tokstart
[c
] <= '9'))
yylval
.lval
= atoi (tokstart
+ 1 + negate
);
yylval
.lval
= - yylval
.lval
;
/* Handle tokens that refer to machine registers:
$ followed by a register name. */
for (c
= 0; c
< NUM_REGS
; c
++)
if (namelen
- 1 == strlen (reg_names
[c
])
&& STREQN (tokstart
+ 1, reg_names
[c
], namelen
- 1))
for (c
= 0; c
< num_std_regs
; c
++)
if (namelen
- 1 == strlen (std_regs
[c
].name
)
&& STREQN (tokstart
+ 1, std_regs
[c
].name
, namelen
- 1))
yylval
.lval
= std_regs
[c
].regnum
;
/* Catch specific keywords. Should be done with a data structure. */
if (STREQN (tokstart
, "unsigned", 8))
if (current_language
->la_language
== language_cplus
&& STREQN (tokstart
, "template", 8))
if (STREQN (tokstart
, "volatile", 8))
if (STREQN (tokstart
, "struct", 6))
if (STREQN (tokstart
, "signed", 6))
if (STREQN (tokstart
, "sizeof", 6))
if (current_language
->la_language
== language_cplus
&& STREQN (tokstart
, "class", 5))
if (STREQN (tokstart
, "union", 5))
if (STREQN (tokstart
, "short", 5))
if (STREQN (tokstart
, "const", 5))
if (STREQN (tokstart
, "enum", 4))
if (STREQN (tokstart
, "long", 4))
if (current_language
->la_language
== language_cplus
&& STREQN (tokstart
, "this", 4))
static const char this_name
[] =
{ CPLUS_MARKER
, 't', 'h', 'i', 's', '\0' };
if (lookup_symbol (this_name
, expression_context_block
,
VAR_NAMESPACE
, (int *) NULL
,
(struct symtab
**) NULL
))
if (STREQN (tokstart
, "int", 3))
yylval
.sval
.ptr
= tokstart
;
yylval
.sval
.length
= namelen
;
/* Any other names starting in $ are debugger internal variables. */
yylval
.ivar
= lookup_internalvar (copy_name (yylval
.sval
) + 1);
/* Use token-type BLOCKNAME for symbols that happen to be defined as
functions or symtabs. If this is not so, then ...
Use token-type TYPENAME for symbols that happen to be defined
currently as names of types; NAME for other symbols.
The caller is not constrained to care about the distinction. */
char *tmp
= copy_name (yylval
.sval
);
int is_a_field_of_this
= 0;
sym
= lookup_symbol (tmp
, expression_context_block
,
current_language
->la_language
== language_cplus
? &is_a_field_of_this
: (int *) NULL
,
(struct symtab
**) NULL
);
if ((sym
&& SYMBOL_CLASS (sym
) == LOC_BLOCK
) ||
lookup_partial_symtab (tmp
))
yylval
.ssym
.is_a_field_of_this
= is_a_field_of_this
;
if (sym
&& SYMBOL_CLASS (sym
) == LOC_TYPEDEF
)
/* Look ahead to detect nested types. This probably should be
done in the grammar, but trying seemed to introduce a lot
of shift/reduce and reduce/reduce conflicts. It's possible
that it could be done, though. Or perhaps a non-grammar, but
less ad hoc, approach would work well. */
/* Since we do not currently have any way of distinguishing
a nested type from a non-nested one (the stabs don't tell
us whether a type is nested), we just ignore the
while (*p
== ' ' || *p
== '\t' || *p
== '\n')
if (*p
== ':' && p
[1] == ':')
while (*p
== ' ' || *p
== '\t' || *p
== '\n')
while (*p
== '_' || *p
== '$' || (*p
>= '0' && *p
<= '9')
|| (*p
>= 'a' && *p
<= 'z')
|| (*p
>= 'A' && *p
<= 'Z'))
/* As big as the whole rest of the expression, which is
char *tmp
= alloca (strlen (namestart
));
memcpy (tmp
, namestart
, p
- namestart
);
tmp
[p
- namestart
] = '\0';
cur_sym
= lookup_symbol (tmp
, expression_context_block
,
VAR_NAMESPACE
, (int *) NULL
,
(struct symtab
**) NULL
);
if (SYMBOL_CLASS (cur_sym
) == LOC_TYPEDEF
)
yylval
.tsym
.type
= SYMBOL_TYPE (best_sym
);
if ((yylval
.tsym
.type
= lookup_primitive_typename (tmp
)) != 0)
/* Input names that aren't symbols but ARE valid hex numbers,
when the input radix permits them, can be names or numbers
depending on the parse. Note we support radixes > 16 here. */
((tokstart
[0] >= 'a' && tokstart
[0] < 'a' + input_radix
- 10) ||
(tokstart
[0] >= 'A' && tokstart
[0] < 'A' + input_radix
- 10)))
YYSTYPE newlval
; /* Its value is ignored. */
hextype
= parse_number (tokstart
, namelen
, 0, &newlval
);
yylval
.ssym
.is_a_field_of_this
= is_a_field_of_this
;
/* Any other kind of symbol */
yylval
.ssym
.is_a_field_of_this
= is_a_field_of_this
;
error (msg
? msg
: "Invalid syntax in expression.");
#define YYABORT goto yyabort
#define YYREJECT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
register int yym
, yyn
, yystate
;
if (yys
= getenv("YYDEBUG"))
if (yyn
>= '0' && yyn
<= '9')
if (yyn
= yydefred
[yystate
]) goto yyreduce
;
if ((yychar
= yylex()) < 0) yychar
= 0;
if (yychar
<= YYMAXTOKEN
) yys
= yyname
[yychar
];
if (!yys
) yys
= "illegal-symbol";
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX
, yystate
, yychar
, yys
);
if ((yyn
= yysindex
[yystate
]) && (yyn
+= yychar
) >= 0 &&
yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == yychar
)
printf("%sdebug: state %d, shifting to state %d\n",
YYPREFIX
, yystate
, yytable
[yyn
]);
if (yyssp
>= yyss
+ yystacksize
- 1)
*++yyssp
= yystate
= yytable
[yyn
];
if (yyerrflag
> 0) --yyerrflag
;
if ((yyn
= yyrindex
[yystate
]) && (yyn
+= yychar
) >= 0 &&
yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == yychar
)
if (yyerrflag
) goto yyinrecovery
;
if ((yyn
= yysindex
[*yyssp
]) && (yyn
+= YYERRCODE
) >= 0 &&
yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == YYERRCODE
)
printf("%sdebug: state %d, error recovery shifting\
to state %d\n", YYPREFIX
, *yyssp
, yytable
[yyn
]);
if (yyssp
>= yyss
+ yystacksize
- 1)
*++yyssp
= yystate
= yytable
[yyn
];
printf("%sdebug: error recovery discarding state %d\n",
if (yyssp
<= yyss
) goto yyabort
;
if (yychar
== 0) goto yyabort
;
if (yychar
<= YYMAXTOKEN
) yys
= yyname
[yychar
];
if (!yys
) yys
= "illegal-symbol";
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX
, yystate
, yychar
, yys
);
printf("%sdebug: state %d, reducing by rule %d (%s)\n",
YYPREFIX
, yystate
, yyn
, yyrule
[yyn
]);
#line 211 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode(OP_TYPE
);
write_exp_elt_type(yyvsp
[0].tval
);
write_exp_elt_opcode(OP_TYPE
);}
#line 219 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_COMMA
); }
#line 224 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (UNOP_IND
); }
#line 227 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (UNOP_ADDR
); }
#line 230 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (UNOP_NEG
); }
#line 234 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (UNOP_LOGICAL_NOT
); }
#line 238 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (UNOP_COMPLEMENT
); }
#line 242 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (UNOP_PREINCREMENT
); }
#line 246 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (UNOP_PREDECREMENT
); }
#line 250 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (UNOP_POSTINCREMENT
); }
#line 254 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (UNOP_POSTDECREMENT
); }
#line 258 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (UNOP_SIZEOF
); }
#line 262 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (STRUCTOP_PTR
);
write_exp_string (yyvsp
[0].sval
);
write_exp_elt_opcode (STRUCTOP_PTR
); }
#line 268 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ /* exp->type::name becomes exp->*(&type::name) */
/* Note: this doesn't work if name is a
write_exp_elt_opcode (UNOP_ADDR
);
write_exp_elt_opcode (STRUCTOP_MPTR
); }
#line 275 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (STRUCTOP_MPTR
); }
#line 279 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (STRUCTOP_STRUCT
);
write_exp_string (yyvsp
[0].sval
);
write_exp_elt_opcode (STRUCTOP_STRUCT
); }
#line 285 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ /* exp.type::name becomes exp.*(&type::name) */
/* Note: this doesn't work if name is a
write_exp_elt_opcode (UNOP_ADDR
);
write_exp_elt_opcode (STRUCTOP_MEMBER
); }
#line 293 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (STRUCTOP_MEMBER
); }
#line 297 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_SUBSCRIPT
); }
#line 303 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
#line 305 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (OP_FUNCALL
);
write_exp_elt_longcst ((LONGEST
) end_arglist ());
write_exp_elt_opcode (OP_FUNCALL
); }
#line 311 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
#line 318 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
#line 322 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
#line 326 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.lval
= end_arglist () - 1; }
#line 329 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (OP_ARRAY
);
write_exp_elt_longcst ((LONGEST
) 0);
write_exp_elt_longcst ((LONGEST
) yyvsp
[0].lval
);
write_exp_elt_opcode (OP_ARRAY
); }
#line 336 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (UNOP_MEMVAL
);
write_exp_elt_type (yyvsp
[-2].tval
);
write_exp_elt_opcode (UNOP_MEMVAL
); }
#line 342 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (UNOP_CAST
);
write_exp_elt_type (yyvsp
[-2].tval
);
write_exp_elt_opcode (UNOP_CAST
); }
#line 348 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
#line 354 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_REPEAT
); }
#line 358 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_MUL
); }
#line 362 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_DIV
); }
#line 366 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_REM
); }
#line 370 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_ADD
); }
#line 374 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_SUB
); }
#line 378 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_LSH
); }
#line 382 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_RSH
); }
#line 386 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_EQUAL
); }
#line 390 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_NOTEQUAL
); }
#line 394 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_LEQ
); }
#line 398 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_GEQ
); }
#line 402 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_LESS
); }
#line 406 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_GTR
); }
#line 410 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_BITWISE_AND
); }
#line 414 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_BITWISE_XOR
); }
#line 418 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_BITWISE_IOR
); }
#line 422 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_LOGICAL_AND
); }
#line 426 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_LOGICAL_OR
); }
#line 430 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (TERNOP_COND
); }
#line 434 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_ASSIGN
); }
#line 438 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (BINOP_ASSIGN_MODIFY
);
write_exp_elt_opcode (yyvsp
[-1].opcode
);
write_exp_elt_opcode (BINOP_ASSIGN_MODIFY
); }
#line 444 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (OP_LONG
);
write_exp_elt_type (yyvsp
[0].typed_val
.type
);
write_exp_elt_longcst ((LONGEST
)(yyvsp
[0].typed_val
.val
));
write_exp_elt_opcode (OP_LONG
); }
#line 451 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
parse_number (yyvsp
[0].ssym
.stoken
.ptr
, yyvsp
[0].ssym
.stoken
.length
, 0, &val
);
write_exp_elt_opcode (OP_LONG
);
write_exp_elt_type (val
.typed_val
.type
);
write_exp_elt_longcst ((LONGEST
)val
.typed_val
.val
);
write_exp_elt_opcode (OP_LONG
);
#line 462 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (OP_DOUBLE
);
write_exp_elt_type (builtin_type_double
);
write_exp_elt_dblcst (yyvsp
[0].dval
);
write_exp_elt_opcode (OP_DOUBLE
); }
#line 472 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (OP_LAST
);
write_exp_elt_longcst ((LONGEST
) yyvsp
[0].lval
);
write_exp_elt_opcode (OP_LAST
); }
#line 478 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (OP_REGISTER
);
write_exp_elt_longcst ((LONGEST
) yyvsp
[0].lval
);
write_exp_elt_opcode (OP_REGISTER
); }
#line 484 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (OP_INTERNALVAR
);
write_exp_elt_intern (yyvsp
[0].ivar
);
write_exp_elt_opcode (OP_INTERNALVAR
); }
#line 490 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (OP_LONG
);
write_exp_elt_type (builtin_type_int
);
write_exp_elt_longcst ((LONGEST
) TYPE_LENGTH (yyvsp
[-1].tval
));
write_exp_elt_opcode (OP_LONG
); }
#line 497 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ /* C strings are converted into array constants with
an explicit null byte added at the end. Thus
the array upper bound is the string length.
There is no such thing in C as a completely empty
char *sp
= yyvsp
[0].sval
.ptr
; int count
= yyvsp
[0].sval
.length
;
write_exp_elt_opcode (OP_LONG
);
write_exp_elt_type (builtin_type_char
);
write_exp_elt_longcst ((LONGEST
)(*sp
++));
write_exp_elt_opcode (OP_LONG
);
write_exp_elt_opcode (OP_LONG
);
write_exp_elt_type (builtin_type_char
);
write_exp_elt_longcst ((LONGEST
)'\0');
write_exp_elt_opcode (OP_LONG
);
write_exp_elt_opcode (OP_ARRAY
);
write_exp_elt_longcst ((LONGEST
) 0);
write_exp_elt_longcst ((LONGEST
) (yyvsp
[0].sval
.length
));
write_exp_elt_opcode (OP_ARRAY
); }
#line 522 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ write_exp_elt_opcode (OP_THIS
);
write_exp_elt_opcode (OP_THIS
); }
#line 529 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
if (yyvsp
[0].ssym
.sym
!= 0)
yyval
.bval
= SYMBOL_BLOCK_VALUE (yyvsp
[0].ssym
.sym
);
lookup_symtab (copy_name (yyvsp
[0].ssym
.stoken
));
yyval
.bval
= BLOCKVECTOR_BLOCK
(BLOCKVECTOR (tem
), STATIC_BLOCK
);
error ("No file or function \"%s\".",
copy_name (yyvsp
[0].ssym
.stoken
));
#line 547 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
= lookup_symbol (copy_name (yyvsp
[0].sval
), yyvsp
[-2].bval
,
VAR_NAMESPACE
, (int *) NULL
,
(struct symtab
**) NULL
);
if (!tem
|| SYMBOL_CLASS (tem
) != LOC_BLOCK
)
error ("No function \"%s\" in specified context.",
copy_name (yyvsp
[0].sval
));
yyval
.bval
= SYMBOL_BLOCK_VALUE (tem
); }
#line 558 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
sym
= lookup_symbol (copy_name (yyvsp
[0].sval
), yyvsp
[-2].bval
,
VAR_NAMESPACE
, (int *) NULL
,
(struct symtab
**) NULL
);
error ("No symbol \"%s\" in specified context.",
copy_name (yyvsp
[0].sval
));
write_exp_elt_opcode (OP_VAR_VALUE
);
/* block_found is set by lookup_symbol. */
write_exp_elt_block (block_found
);
write_exp_elt_opcode (OP_VAR_VALUE
); }
#line 574 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
struct type
*type
= yyvsp
[-2].tval
;
if (TYPE_CODE (type
) != TYPE_CODE_STRUCT
&& TYPE_CODE (type
) != TYPE_CODE_UNION
)
error ("`%s' is not defined as an aggregate type.",
write_exp_elt_opcode (OP_SCOPE
);
write_exp_elt_type (type
);
write_exp_string (yyvsp
[0].sval
);
write_exp_elt_opcode (OP_SCOPE
);
#line 587 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
struct type
*type
= yyvsp
[-3].tval
;
if (TYPE_CODE (type
) != TYPE_CODE_STRUCT
&& TYPE_CODE (type
) != TYPE_CODE_UNION
)
error ("`%s' is not defined as an aggregate type.",
if (!STREQ (type_name_no_tag (type
), yyvsp
[0].sval
.ptr
))
error ("invalid destructor `%s::~%s'",
type_name_no_tag (type
), yyvsp
[0].sval
.ptr
);
tmp_token
.ptr
= (char*) alloca (yyvsp
[0].sval
.length
+ 2);
tmp_token
.length
= yyvsp
[0].sval
.length
+ 1;
memcpy (tmp_token
.ptr
+1, yyvsp
[0].sval
.ptr
, yyvsp
[0].sval
.length
);
tmp_token
.ptr
[tmp_token
.length
] = 0;
write_exp_elt_opcode (OP_SCOPE
);
write_exp_elt_type (type
);
write_exp_string (tmp_token
);
write_exp_elt_opcode (OP_SCOPE
);
#line 613 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
char *name
= copy_name (yyvsp
[0].sval
);
struct minimal_symbol
*msymbol
;
lookup_symbol (name
, (const struct block
*) NULL
,
VAR_NAMESPACE
, (int *) NULL
,
(struct symtab
**) NULL
);
write_exp_elt_opcode (OP_VAR_VALUE
);
write_exp_elt_block (NULL
);
write_exp_elt_opcode (OP_VAR_VALUE
);
msymbol
= lookup_minimal_symbol (name
,
(struct objfile
*) NULL
);
write_exp_elt_opcode (OP_LONG
);
write_exp_elt_type (builtin_type_long
);
write_exp_elt_longcst ((LONGEST
) SYMBOL_VALUE_ADDRESS (msymbol
));
write_exp_elt_opcode (OP_LONG
);
write_exp_elt_opcode (UNOP_MEMVAL
);
if (msymbol
-> type
== mst_data
||
msymbol
-> type
== mst_bss
)
write_exp_elt_type (builtin_type_int
);
else if (msymbol
-> type
== mst_text
)
write_exp_elt_type (lookup_function_type (builtin_type_int
));
write_exp_elt_type (builtin_type_char
);
write_exp_elt_opcode (UNOP_MEMVAL
);
if (!have_full_symbols () && !have_partial_symbols ())
error ("No symbol table is loaded. Use the \"file\" command.");
error ("No symbol \"%s\" in current context.", name
);
#line 658 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ struct symbol
*sym
= yyvsp
[0].ssym
.sym
;
if (symbol_read_needs_frame (sym
))
if (innermost_block
== 0 ||
contained_in (block_found
,
innermost_block
= block_found
;
write_exp_elt_opcode (OP_VAR_VALUE
);
/* We want to use the selected frame, not
another more inner frame which happens to
write_exp_elt_block (NULL
);
write_exp_elt_opcode (OP_VAR_VALUE
);
else if (yyvsp
[0].ssym
.is_a_field_of_this
)
/* C++: it hangs off of `this'. Must
not inadvertently convert from a method call
if (innermost_block
== 0 ||
contained_in (block_found
, innermost_block
))
innermost_block
= block_found
;
write_exp_elt_opcode (OP_THIS
);
write_exp_elt_opcode (OP_THIS
);
write_exp_elt_opcode (STRUCTOP_PTR
);
write_exp_string (yyvsp
[0].ssym
.stoken
);
write_exp_elt_opcode (STRUCTOP_PTR
);
struct minimal_symbol
*msymbol
;
register char *arg
= copy_name (yyvsp
[0].ssym
.stoken
);
msymbol
= lookup_minimal_symbol (arg
,
(struct objfile
*) NULL
);
write_exp_elt_opcode (OP_LONG
);
write_exp_elt_type (builtin_type_long
);
write_exp_elt_longcst ((LONGEST
) SYMBOL_VALUE_ADDRESS (msymbol
));
write_exp_elt_opcode (OP_LONG
);
write_exp_elt_opcode (UNOP_MEMVAL
);
if (msymbol
-> type
== mst_data
||
msymbol
-> type
== mst_bss
)
write_exp_elt_type (builtin_type_int
);
else if (msymbol
-> type
== mst_text
)
write_exp_elt_type (lookup_function_type (builtin_type_int
));
write_exp_elt_type (builtin_type_char
);
write_exp_elt_opcode (UNOP_MEMVAL
);
else if (!have_full_symbols () && !have_partial_symbols ())
error ("No symbol table is loaded. Use the \"file\" command.");
error ("No symbol \"%s\" in current context.",
copy_name (yyvsp
[0].ssym
.stoken
));
#line 737 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= follow_types (yyvsp
[-1].tval
); }
#line 739 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= follow_types (yyvsp
[-2].tval
); }
#line 741 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= follow_types (yyvsp
[-2].tval
); }
#line 745 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ push_type (tp_pointer
); yyval
.voidval
= 0; }
#line 747 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ push_type (tp_pointer
); yyval
.voidval
= yyvsp
[0].voidval
; }
#line 749 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ push_type (tp_reference
); yyval
.voidval
= 0; }
#line 751 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ push_type (tp_reference
); yyval
.voidval
= yyvsp
[0].voidval
; }
#line 756 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.voidval
= yyvsp
[-1].voidval
; }
#line 758 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
push_type_int (yyvsp
[0].lval
);
#line 763 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
push_type_int (yyvsp
[0].lval
);
#line 773 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ push_type (tp_function
); }
#line 775 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ push_type (tp_function
); }
#line 779 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
#line 781 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.lval
= yyvsp
[-1].typed_val
.val
; }
#line 785 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
#line 787 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ free ((PTR
)yyvsp
[-1].tvec
); yyval
.voidval
= 0; }
#line 794 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= lookup_member_type (builtin_type_int
, yyvsp
[-2].tval
); }
#line 796 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= lookup_member_type (yyvsp
[-5].tval
, yyvsp
[-3].tval
); }
#line 798 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= lookup_member_type
(lookup_function_type (yyvsp
[-7].tval
), yyvsp
[-5].tval
); }
#line 801 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= lookup_member_type
(lookup_function_type (yyvsp
[-8].tval
), yyvsp
[-6].tval
);
free ((PTR
)yyvsp
[-1].tvec
); }
#line 808 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= yyvsp
[0].tsym
.type
; }
#line 810 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= builtin_type_int
; }
#line 812 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= builtin_type_long
; }
#line 814 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= builtin_type_short
; }
#line 816 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= builtin_type_long
; }
#line 818 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= builtin_type_unsigned_long
; }
#line 820 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= builtin_type_long_long
; }
#line 822 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= builtin_type_long_long
; }
#line 824 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= builtin_type_unsigned_long_long
; }
#line 826 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= builtin_type_unsigned_long_long
; }
#line 828 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= builtin_type_short
; }
#line 830 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= builtin_type_unsigned_short
; }
#line 832 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= lookup_struct (copy_name (yyvsp
[0].sval
),
expression_context_block
); }
#line 835 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= lookup_struct (copy_name (yyvsp
[0].sval
),
expression_context_block
); }
#line 838 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= lookup_union (copy_name (yyvsp
[0].sval
),
expression_context_block
); }
#line 841 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= lookup_enum (copy_name (yyvsp
[0].sval
),
expression_context_block
); }
#line 844 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= lookup_unsigned_typename (TYPE_NAME(yyvsp
[0].tsym
.type
)); }
#line 846 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= builtin_type_unsigned_int
; }
#line 848 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= lookup_signed_typename (TYPE_NAME(yyvsp
[0].tsym
.type
)); }
#line 850 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= builtin_type_int
; }
#line 852 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= lookup_template_type(copy_name(yyvsp
[-3].sval
), yyvsp
[-1].tval
,
expression_context_block
);
#line 858 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= yyvsp
[0].tval
; }
#line 859 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tval
= yyvsp
[0].tval
; }
#line 864 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
yyval
.tsym
.stoken
.ptr
= "int";
yyval
.tsym
.stoken
.length
= 3;
yyval
.tsym
.type
= builtin_type_int
;
#line 870 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
yyval
.tsym
.stoken
.ptr
= "long";
yyval
.tsym
.stoken
.length
= 4;
yyval
.tsym
.type
= builtin_type_long
;
#line 876 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
yyval
.tsym
.stoken
.ptr
= "short";
yyval
.tsym
.stoken
.length
= 5;
yyval
.tsym
.type
= builtin_type_short
;
#line 885 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.tvec
= (struct type
**) xmalloc (sizeof (struct type
*) * 2);
yyval
.ivec
[0] = 1; /* Number of types in vector */
yyval
.tvec
[1] = yyvsp
[0].tval
;
#line 890 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ int len
= sizeof (struct type
*) * (++(yyvsp
[-2].ivec
[0]) + 1);
yyval
.tvec
= (struct type
**) xrealloc ((char *) yyvsp
[-2].tvec
, len
);
yyval
.tvec
[yyval
.ivec
[0]] = yyvsp
[0].tval
;
#line 896 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.sval
= yyvsp
[0].ssym
.stoken
; }
#line 897 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.sval
= yyvsp
[0].ssym
.stoken
; }
#line 898 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.sval
= yyvsp
[0].tsym
.stoken
; }
#line 899 "/usr/src/gnu/usr.bin/gdb/gdb/c-exp.y"
{ yyval
.sval
= yyvsp
[0].ssym
.stoken
; }
if (yystate
== 0 && yym
== 0)
printf("%sdebug: after reduction, shifting from state 0 to\
state %d\n", YYPREFIX
, YYFINAL
);
if ((yychar
= yylex()) < 0) yychar
= 0;
if (yychar
<= YYMAXTOKEN
) yys
= yyname
[yychar
];
if (!yys
) yys
= "illegal-symbol";
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX
, YYFINAL
, yychar
, yys
);
if (yychar
== 0) goto yyaccept
;
if ((yyn
= yygindex
[yym
]) && (yyn
+= yystate
) >= 0 &&
yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == yystate
)
printf("%sdebug: after reduction, shifting from state %d \
to state %d\n", YYPREFIX
, *yyssp
, yystate
);
if (yyssp
>= yyss
+ yystacksize
- 1)
yyerror("yacc stack overflow");