summaryrefslogtreecommitdiffstats
path: root/contrib/gdb/gdb/c-exp.tab.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gdb/gdb/c-exp.tab.c')
-rw-r--r--contrib/gdb/gdb/c-exp.tab.c1247
1 files changed, 669 insertions, 578 deletions
diff --git a/contrib/gdb/gdb/c-exp.tab.c b/contrib/gdb/gdb/c-exp.tab.c
index 0c6249b..c9395fa 100644
--- a/contrib/gdb/gdb/c-exp.tab.c
+++ b/contrib/gdb/gdb/c-exp.tab.c
@@ -1,5 +1,6 @@
-/* A Bison parser, made from ./c-exp.y with Bison version GNU Bison version 1.24
+/* A Bison parser, made from c-exp.y
+ by GNU Bison version 1.25
*/
#define YYBISON 1 /* Identify Bison output. */
@@ -29,22 +30,25 @@
#define VARIABLE 280
#define ASSIGN_MODIFY 281
#define THIS 282
-#define ABOVE_COMMA 283
-#define OROR 284
-#define ANDAND 285
-#define EQUAL 286
-#define NOTEQUAL 287
-#define LEQ 288
-#define GEQ 289
-#define LSH 290
-#define RSH 291
-#define UNARY 292
-#define INCREMENT 293
-#define DECREMENT 294
-#define ARROW 295
-#define BLOCKNAME 296
-
-#line 38 "./c-exp.y"
+#define TRUEKEYWORD 283
+#define FALSEKEYWORD 284
+#define ABOVE_COMMA 285
+#define OROR 286
+#define ANDAND 287
+#define EQUAL 288
+#define NOTEQUAL 289
+#define LEQ 290
+#define GEQ 291
+#define LSH 292
+#define RSH 293
+#define UNARY 294
+#define INCREMENT 295
+#define DECREMENT 296
+#define ARROW 297
+#define BLOCKNAME 298
+#define FILENAME 299
+
+#line 38 "c-exp.y"
#include "defs.h"
@@ -59,6 +63,9 @@
#include "symfile.h" /* Required by objfiles.h. */
#include "objfiles.h" /* For have_full_symbols and have_partial_symbols */
+/* Flag indicating we're dealing with HP-compiled objects */
+extern int hp_som_som_object_present;
+
/* 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
@@ -119,7 +126,7 @@ void
yyerror PARAMS ((char *));
-#line 117 "./c-exp.y"
+#line 120 "c-exp.y"
typedef union
{
LONGEST lval;
@@ -144,28 +151,11 @@ typedef union
struct type **tvec;
int *ivec;
} YYSTYPE;
-#line 142 "./c-exp.y"
+#line 145 "c-exp.y"
/* YYSTYPE gets defined by %union */
static int
parse_number PARAMS ((char *, int, int, YYSTYPE *));
-
-#ifndef YYLTYPE
-typedef
- struct yyltype
- {
- int timestamp;
- int first_line;
- int first_column;
- int last_line;
- int last_column;
- char *text;
- }
- yyltype;
-
-#define YYLTYPE yyltype
-#endif
-
#include <stdio.h>
#ifndef __cplusplus
@@ -176,26 +166,26 @@ typedef
-#define YYFINAL 211
+#define YYFINAL 214
#define YYFLAG -32768
-#define YYNTBASE 66
+#define YYNTBASE 69
-#define YYTRANSLATE(x) ((unsigned)(x) <= 296 ? yytranslate[x] : 88)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 299 ? yytranslate[x] : 91)
static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 59, 2, 2, 2, 50, 36, 2, 57,
- 62, 48, 46, 28, 47, 55, 49, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 65, 2, 39,
- 30, 40, 31, 45, 2, 2, 2, 2, 2, 2,
+ 2, 2, 62, 2, 2, 2, 52, 38, 2, 59,
+ 65, 50, 48, 30, 49, 57, 51, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 68, 2, 41,
+ 32, 42, 33, 47, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 56, 2, 61, 35, 2, 2, 2, 2, 2, 2,
+ 58, 2, 64, 37, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 63, 34, 64, 60, 2, 2, 2, 2,
+ 2, 2, 66, 36, 67, 63, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -211,8 +201,8 @@ static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 29, 32, 33, 37, 38, 41, 42, 43,
- 44, 51, 52, 53, 54, 58
+ 26, 27, 28, 29, 31, 34, 35, 39, 40, 43,
+ 44, 45, 46, 53, 54, 55, 56, 60, 61
};
#if YYDEBUG != 0
@@ -223,107 +213,114 @@ static const short yyprhs[] = { 0,
95, 100, 105, 109, 113, 117, 121, 125, 129, 133,
137, 141, 145, 149, 153, 157, 161, 165, 169, 173,
177, 181, 185, 191, 195, 199, 201, 203, 205, 207,
- 209, 214, 216, 218, 220, 224, 228, 232, 237, 239,
- 242, 244, 246, 249, 252, 255, 259, 263, 265, 268,
- 270, 273, 275, 279, 282, 284, 287, 289, 292, 296,
- 299, 303, 305, 309, 311, 313, 315, 317, 320, 324,
- 327, 331, 335, 340, 343, 347, 349, 352, 355, 358,
- 361, 364, 367, 369, 372, 374, 380, 383, 386, 388,
- 390, 392, 394, 396, 400, 402, 404, 406, 408, 410
+ 209, 214, 216, 218, 220, 222, 224, 226, 230, 234,
+ 238, 243, 245, 248, 250, 252, 255, 258, 261, 265,
+ 269, 271, 274, 276, 279, 281, 285, 288, 290, 293,
+ 295, 298, 302, 305, 309, 311, 315, 317, 319, 321,
+ 323, 326, 330, 333, 337, 341, 346, 349, 353, 355,
+ 358, 361, 364, 367, 370, 373, 375, 378, 380, 386,
+ 389, 392, 394, 396, 398, 400, 402, 406, 408, 410,
+ 412, 414, 416
};
-static const short yyrhs[] = { 68,
- 0, 67, 0, 82, 0, 69, 0, 68, 28, 69,
- 0, 48, 69, 0, 36, 69, 0, 47, 69, 0,
- 59, 69, 0, 60, 69, 0, 52, 69, 0, 53,
- 69, 0, 69, 52, 0, 69, 53, 0, 13, 69,
- 0, 69, 54, 86, 0, 69, 54, 76, 0, 69,
- 54, 48, 69, 0, 69, 55, 86, 0, 69, 55,
- 76, 0, 69, 55, 48, 69, 0, 69, 56, 68,
- 61, 0, 0, 69, 57, 70, 72, 62, 0, 63,
- 0, 0, 69, 0, 72, 28, 69, 0, 64, 0,
- 71, 72, 73, 0, 71, 82, 73, 69, 0, 57,
- 82, 62, 69, 0, 57, 68, 62, 0, 69, 45,
- 69, 0, 69, 48, 69, 0, 69, 49, 69, 0,
- 69, 50, 69, 0, 69, 46, 69, 0, 69, 47,
- 69, 0, 69, 43, 69, 0, 69, 44, 69, 0,
- 69, 37, 69, 0, 69, 38, 69, 0, 69, 41,
- 69, 0, 69, 42, 69, 0, 69, 39, 69, 0,
- 69, 40, 69, 0, 69, 36, 69, 0, 69, 35,
- 69, 0, 69, 34, 69, 0, 69, 33, 69, 0,
- 69, 32, 69, 0, 69, 31, 69, 65, 69, 0,
- 69, 30, 69, 0, 69, 26, 69, 0, 3, 0,
- 8, 0, 4, 0, 75, 0, 25, 0, 13, 57,
- 82, 62, 0, 5, 0, 27, 0, 58, 0, 74,
- 15, 86, 0, 74, 15, 86, 0, 83, 15, 86,
- 0, 83, 15, 60, 86, 0, 76, 0, 15, 86,
- 0, 87, 0, 83, 0, 83, 22, 0, 83, 23,
- 0, 83, 78, 0, 83, 22, 78, 0, 83, 23,
- 78, 0, 48, 0, 48, 78, 0, 36, 0, 36,
- 78, 0, 79, 0, 57, 78, 62, 0, 79, 80,
- 0, 80, 0, 79, 81, 0, 81, 0, 56, 61,
- 0, 56, 3, 61, 0, 57, 62, 0, 57, 85,
- 62, 0, 77, 0, 83, 15, 48, 0, 7, 0,
- 21, 0, 19, 0, 20, 0, 19, 21, 0, 14,
- 19, 21, 0, 19, 19, 0, 19, 19, 21, 0,
- 14, 19, 19, 0, 14, 19, 19, 21, 0, 20,
- 21, 0, 14, 20, 21, 0, 24, 0, 19, 24,
- 0, 9, 86, 0, 10, 86, 0, 11, 86, 0,
- 12, 86, 0, 14, 84, 0, 14, 0, 18, 84,
- 0, 18, 0, 16, 86, 39, 82, 40, 0, 22,
- 83, 0, 23, 83, 0, 7, 0, 21, 0, 19,
- 0, 20, 0, 82, 0, 85, 28, 82, 0, 6,
- 0, 58, 0, 7, 0, 8, 0, 6, 0, 58,
- 0
+static const short yyrhs[] = { 71,
+ 0, 70, 0, 85, 0, 72, 0, 71, 30, 72,
+ 0, 50, 72, 0, 38, 72, 0, 49, 72, 0,
+ 62, 72, 0, 63, 72, 0, 54, 72, 0, 55,
+ 72, 0, 72, 54, 0, 72, 55, 0, 13, 72,
+ 0, 72, 56, 89, 0, 72, 56, 79, 0, 72,
+ 56, 50, 72, 0, 72, 57, 89, 0, 72, 57,
+ 79, 0, 72, 57, 50, 72, 0, 72, 58, 71,
+ 64, 0, 0, 72, 59, 73, 75, 65, 0, 66,
+ 0, 0, 72, 0, 75, 30, 72, 0, 67, 0,
+ 74, 75, 76, 0, 74, 85, 76, 72, 0, 59,
+ 85, 65, 72, 0, 59, 71, 65, 0, 72, 47,
+ 72, 0, 72, 50, 72, 0, 72, 51, 72, 0,
+ 72, 52, 72, 0, 72, 48, 72, 0, 72, 49,
+ 72, 0, 72, 45, 72, 0, 72, 46, 72, 0,
+ 72, 39, 72, 0, 72, 40, 72, 0, 72, 43,
+ 72, 0, 72, 44, 72, 0, 72, 41, 72, 0,
+ 72, 42, 72, 0, 72, 38, 72, 0, 72, 37,
+ 72, 0, 72, 36, 72, 0, 72, 35, 72, 0,
+ 72, 34, 72, 0, 72, 33, 72, 68, 72, 0,
+ 72, 32, 72, 0, 72, 26, 72, 0, 3, 0,
+ 8, 0, 4, 0, 78, 0, 25, 0, 13, 59,
+ 85, 65, 0, 5, 0, 27, 0, 28, 0, 29,
+ 0, 60, 0, 61, 0, 77, 15, 89, 0, 77,
+ 15, 89, 0, 86, 15, 89, 0, 86, 15, 63,
+ 89, 0, 79, 0, 15, 89, 0, 90, 0, 86,
+ 0, 86, 22, 0, 86, 23, 0, 86, 81, 0,
+ 86, 22, 81, 0, 86, 23, 81, 0, 50, 0,
+ 50, 81, 0, 38, 0, 38, 81, 0, 82, 0,
+ 59, 81, 65, 0, 82, 83, 0, 83, 0, 82,
+ 84, 0, 84, 0, 58, 64, 0, 58, 3, 64,
+ 0, 59, 65, 0, 59, 88, 65, 0, 80, 0,
+ 86, 15, 50, 0, 7, 0, 21, 0, 19, 0,
+ 20, 0, 19, 21, 0, 14, 19, 21, 0, 19,
+ 19, 0, 19, 19, 21, 0, 14, 19, 19, 0,
+ 14, 19, 19, 21, 0, 20, 21, 0, 14, 20,
+ 21, 0, 24, 0, 19, 24, 0, 9, 89, 0,
+ 10, 89, 0, 11, 89, 0, 12, 89, 0, 14,
+ 87, 0, 14, 0, 18, 87, 0, 18, 0, 16,
+ 89, 41, 85, 42, 0, 22, 86, 0, 23, 86,
+ 0, 7, 0, 21, 0, 19, 0, 20, 0, 85,
+ 0, 88, 30, 85, 0, 6, 0, 60, 0, 7,
+ 0, 8, 0, 6, 0, 60, 0
};
#endif
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 223, 224, 227, 234, 235, 240, 243, 246, 250, 254,
- 258, 262, 266, 270, 274, 278, 284, 291, 295, 302,
- 310, 314, 318, 322, 328, 332, 335, 339, 343, 346,
- 353, 359, 365, 371, 375, 379, 383, 387, 391, 395,
- 399, 403, 407, 411, 415, 419, 423, 427, 431, 435,
- 439, 443, 447, 451, 455, 461, 468, 479, 486, 489,
- 493, 501, 526, 533, 550, 561, 577, 590, 615, 616,
- 650, 708, 714, 715, 716, 718, 720, 724, 726, 728,
- 730, 732, 735, 737, 742, 749, 751, 755, 757, 761,
- 763, 775, 776, 781, 783, 785, 787, 789, 791, 793,
- 795, 797, 799, 801, 803, 805, 807, 809, 812, 815,
- 818, 821, 823, 825, 827, 829, 836, 837, 840, 841,
- 847, 853, 862, 867, 874, 875, 876, 877, 880, 881
+ 230, 231, 234, 241, 242, 247, 250, 253, 257, 261,
+ 265, 269, 273, 277, 281, 285, 291, 299, 303, 309,
+ 317, 321, 325, 329, 335, 339, 342, 346, 350, 353,
+ 360, 366, 372, 378, 382, 386, 390, 394, 398, 402,
+ 406, 410, 414, 418, 422, 426, 430, 434, 438, 442,
+ 446, 450, 454, 458, 462, 468, 475, 486, 493, 496,
+ 500, 508, 533, 538, 545, 554, 562, 568, 579, 595,
+ 608, 632, 633, 667, 725, 731, 732, 733, 735, 737,
+ 741, 743, 745, 747, 749, 752, 754, 759, 766, 768,
+ 772, 774, 778, 780, 792, 793, 798, 800, 802, 804,
+ 806, 808, 810, 812, 814, 816, 818, 820, 822, 824,
+ 826, 829, 832, 835, 838, 840, 842, 844, 849, 856,
+ 857, 860, 861, 867, 873, 882, 887, 894, 895, 896,
+ 897, 900, 901
};
+#endif
+
+
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
static const char * const yytname[] = { "$","error","$undefined.","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","DOUBLE_KEYWORD","VARIABLE","ASSIGN_MODIFY",
-"THIS","','","ABOVE_COMMA","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","EQUAL",
-"NOTEQUAL","'<'","'>'","LEQ","GEQ","LSH","RSH","'@'","'+'","'-'","'*'","'/'",
-"'%'","UNARY","INCREMENT","DECREMENT","ARROW","'.'","'['","'('","BLOCKNAME",
-"'!'","'~'","']'","')'","'{'","'}'","':'","start","type_exp","exp1","exp","@1",
-"lcurly","arglist","rcurly","block","variable","qualified_name","ptype","abs_decl",
-"direct_abs_decl","array_mod","func_mod","type","typebase","typename","nonempty_typelist",
-"name","name_not_typename",""
+"THIS","TRUEKEYWORD","FALSEKEYWORD","','","ABOVE_COMMA","'='","'?'","OROR","ANDAND",
+"'|'","'^'","'&'","EQUAL","NOTEQUAL","'<'","'>'","LEQ","GEQ","LSH","RSH","'@'",
+"'+'","'-'","'*'","'/'","'%'","UNARY","INCREMENT","DECREMENT","ARROW","'.'",
+"'['","'('","BLOCKNAME","FILENAME","'!'","'~'","']'","')'","'{'","'}'","':'",
+"start","type_exp","exp1","exp","@1","lcurly","arglist","rcurly","block","variable",
+"qualified_name","ptype","abs_decl","direct_abs_decl","array_mod","func_mod",
+"type","typebase","typename","nonempty_typelist","name","name_not_typename", NULL
};
#endif
static const short yyr1[] = { 0,
- 66, 66, 67, 68, 68, 69, 69, 69, 69, 69,
- 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
- 69, 69, 70, 69, 71, 72, 72, 72, 73, 69,
- 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
- 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
- 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
- 69, 69, 69, 74, 74, 75, 76, 76, 75, 75,
- 75, 77, 77, 77, 77, 77, 77, 78, 78, 78,
- 78, 78, 79, 79, 79, 79, 79, 80, 80, 81,
- 81, 82, 82, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 84, 84,
- 84, 84, 85, 85, 86, 86, 86, 86, 87, 87
+ 69, 69, 70, 71, 71, 72, 72, 72, 72, 72,
+ 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
+ 72, 72, 73, 72, 74, 75, 75, 75, 76, 72,
+ 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
+ 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
+ 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
+ 72, 72, 72, 72, 72, 77, 77, 77, 78, 79,
+ 79, 78, 78, 78, 80, 80, 80, 80, 80, 80,
+ 81, 81, 81, 81, 81, 82, 82, 82, 82, 82,
+ 83, 83, 84, 84, 85, 85, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 87, 87, 87, 87, 88, 88, 89, 89, 89,
+ 89, 90, 90
};
static const short yyr2[] = { 0,
@@ -333,238 +330,235 @@ static const short yyr2[] = { 0,
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,
- 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, 1, 1, 1, 1, 2, 3, 2,
- 3, 3, 4, 2, 3, 1, 2, 2, 2, 2,
- 2, 2, 1, 2, 1, 5, 2, 2, 1, 1,
- 1, 1, 1, 3, 1, 1, 1, 1, 1, 1
+ 4, 1, 1, 1, 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, 1, 1, 1, 1,
+ 2, 3, 2, 3, 3, 4, 2, 3, 1, 2,
+ 2, 2, 2, 2, 2, 1, 2, 1, 5, 2,
+ 2, 1, 1, 1, 1, 1, 3, 1, 1, 1,
+ 1, 1, 1
};
static const short yydefact[] = { 0,
- 56, 58, 62, 129, 94, 57, 0, 0, 0, 0,
- 0, 113, 0, 0, 115, 96, 97, 95, 0, 0,
- 106, 60, 63, 0, 0, 0, 0, 0, 0, 130,
- 0, 0, 25, 2, 1, 4, 26, 0, 59, 69,
- 92, 3, 72, 71, 125, 127, 128, 126, 108, 109,
- 110, 111, 0, 15, 0, 119, 121, 122, 120, 112,
- 70, 0, 121, 122, 114, 100, 98, 107, 104, 117,
- 118, 7, 8, 6, 11, 12, 0, 0, 9, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 56, 58, 62, 132, 97, 57, 0, 0, 0, 0,
+ 0, 116, 0, 0, 118, 99, 100, 98, 0, 0,
+ 109, 60, 63, 64, 65, 0, 0, 0, 0, 0,
+ 0, 133, 67, 0, 0, 25, 2, 1, 4, 26,
+ 0, 59, 72, 95, 3, 75, 74, 128, 130, 131,
+ 129, 111, 112, 113, 114, 0, 15, 0, 122, 124,
+ 125, 123, 115, 73, 0, 124, 125, 117, 103, 101,
+ 110, 107, 120, 121, 7, 8, 6, 11, 12, 0,
+ 0, 9, 10, 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, 27,
- 0, 0, 0, 0, 73, 74, 80, 78, 0, 0,
- 75, 82, 85, 87, 0, 0, 102, 99, 105, 0,
- 101, 33, 0, 5, 55, 54, 0, 52, 51, 50,
- 49, 48, 42, 43, 46, 47, 44, 45, 40, 41,
- 34, 38, 39, 35, 36, 37, 127, 0, 17, 16,
- 0, 20, 19, 0, 26, 0, 29, 30, 0, 66,
- 93, 0, 67, 76, 77, 81, 79, 0, 88, 90,
- 0, 123, 72, 0, 0, 84, 86, 61, 103, 0,
- 32, 0, 18, 21, 22, 0, 28, 31, 68, 89,
- 83, 0, 0, 91, 116, 53, 24, 124, 0, 0,
- 0
+ 0, 0, 0, 0, 0, 0, 13, 14, 0, 0,
+ 0, 23, 27, 0, 0, 0, 0, 76, 77, 83,
+ 81, 0, 0, 78, 85, 88, 90, 0, 0, 105,
+ 102, 108, 0, 104, 33, 0, 5, 55, 54, 0,
+ 52, 51, 50, 49, 48, 42, 43, 46, 47, 44,
+ 45, 40, 41, 34, 38, 39, 35, 36, 37, 130,
+ 0, 17, 16, 0, 20, 19, 0, 26, 0, 29,
+ 30, 0, 69, 96, 0, 70, 79, 80, 84, 82,
+ 0, 91, 93, 0, 126, 75, 0, 0, 87, 89,
+ 61, 106, 0, 32, 0, 18, 21, 22, 0, 28,
+ 31, 71, 92, 86, 0, 0, 94, 119, 53, 24,
+ 127, 0, 0, 0
};
-static const short yydefgoto[] = { 209,
- 34, 77, 36, 165, 37, 111, 168, 38, 39, 40,
- 41, 121, 122, 123, 124, 182, 55, 60, 184, 173,
- 44
+static const short yydefgoto[] = { 212,
+ 37, 80, 39, 168, 40, 114, 171, 41, 42, 43,
+ 44, 124, 125, 126, 127, 185, 58, 63, 187, 176,
+ 47
};
-static const short yypact[] = { 241,
--32768,-32768,-32768,-32768,-32768,-32768, 5, 5, 5, 5,
- 302, 24, 5, 5, 73, 66, 27,-32768, 212, 212,
--32768,-32768,-32768, 241, 241, 241, 241, 241, 241, 32,
- 241, 241,-32768,-32768, -1, 523, 241, 42,-32768,-32768,
--32768,-32768, 3,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768, 241, 43, 52,-32768, 70, 50,-32768,-32768,
--32768, 64,-32768,-32768,-32768, 60,-32768,-32768,-32768,-32768,
--32768, 43, 43, 43, 43, 43, -7, 44, 43, 43,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241,-32768,-32768, 439, 458, 241,-32768, 523,
- -18, 41, 5, 8, 16, 16, 16, 16, 4, 382,
--32768, -34,-32768,-32768, 45, 26, 83,-32768,-32768, 212,
--32768,-32768, 241, 523, 523, 523, 487, 575, 599, 622,
- 644, 665, 684, 684, 143, 143, 143, 143, 226, 226,
- 69, 287, 287, 43, 43, 43, 94, 241,-32768,-32768,
- 241,-32768,-32768, -11, 241, 241,-32768,-32768, 241, 95,
--32768, 5,-32768,-32768,-32768,-32768,-32768, 67,-32768,-32768,
- 49,-32768, 13, -4, 152,-32768,-32768, 363,-32768, 72,
- 43, 241, 43, 43,-32768, 12, 523, 43,-32768,-32768,
--32768, 65, 212,-32768,-32768, 550,-32768,-32768, 127, 129,
--32768
+static const short yypact[] = { 205,
+-32768,-32768,-32768,-32768,-32768,-32768, 46, 46, 46, 46,
+ 269, 57, 46, 46, 100, 134, -14,-32768, 228, 228,
+-32768,-32768,-32768,-32768,-32768, 205, 205, 205, 205, 205,
+ 205, 21,-32768, 205, 205,-32768,-32768, -16, 504, 205,
+ 22,-32768,-32768,-32768,-32768, 107,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768, 205, 14, 23,-32768, 7,
+ 24,-32768,-32768,-32768, 10,-32768,-32768,-32768, 34,-32768,
+-32768,-32768,-32768,-32768, 14, 14, 14, 14, 14, -26,
+ -21, 14, 14, 205, 205, 205, 205, 205, 205, 205,
+ 205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
+ 205, 205, 205, 205, 205, 205,-32768,-32768, 419, 438,
+ 205,-32768, 504, -25, -2, 46, 53, 8, 8, 8,
+ 8, -1, 359,-32768, -41,-32768,-32768, 9, 42, 54,
+-32768,-32768, 228,-32768,-32768, 205, 504, 504, 504, 467,
+ 556, 580, 603, 625, 646, 665, 665, 254, 254, 254,
+ 254, 124, 124, 356, 416, 416, 14, 14, 14, 89,
+ 205,-32768,-32768, 205,-32768,-32768, -17, 205, 205,-32768,
+-32768, 205, 93,-32768, 46,-32768,-32768,-32768,-32768,-32768,
+ 45,-32768,-32768, 50,-32768, 146, -22, 128,-32768,-32768,
+ 333,-32768, 68, 14, 205, 14, 14,-32768, -3, 504,
+ 14,-32768,-32768,-32768, 67, 228,-32768,-32768, 531,-32768,
+-32768, 125, 126,-32768
};
static const short yypgoto[] = {-32768,
--32768, 6, 51,-32768,-32768, 14, 53,-32768,-32768, -65,
--32768, 40,-32768, 47, 55, 1, 0, 163,-32768, -5,
+-32768, 3, -5,-32768,-32768, -44, 12,-32768,-32768, -76,
+-32768, 79,-32768, 11, 16, 1, 0, 113,-32768, 2,
-32768
};
-#define YYLAST 741
-
-
-static const short yytable[] = { 43,
- 42, 49, 50, 51, 52, 35, 178, 61, 62, 166,
- 45, 46, 47, 45, 46, 47, 81, 114, 70, 71,
- 81, 119, 185, 203, 115, 116, 81, 202, 43, 78,
- 56, 45, 46, 47, 115, 116, 43, 112, 117, 166,
- 159, 162, 57, 58, 59, 167, -64, 69, 117, 195,
- 118, 117, 43, 125, 132, 171, 113, 204, 119, 120,
- 118, 54, 48, 118, 179, 48, 126, 172, 119, 120,
- 129, 119, 120, 207, 72, 73, 74, 75, 76, 56,
- 131, 79, 80, 48, 66, 172, 67, 110, 127, 68,
- 128, 63, 64, 59, 104, 105, 106, 107, 108, 109,
- 160, 163, 130, 189, 167, 133, 188, 170, -94, -65,
- 201, 205, 171, 164, 99, 100, 101, 102, 103, 183,
- 104, 105, 106, 107, 108, 109, 210, 200, 211, 183,
- 190, 134, 135, 136, 137, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 156, 174, 175, 176, 177, 5, 181,
- 7, 8, 9, 10, 169, 12, 199, 14, 186, 15,
- 16, 17, 18, 19, 20, 21, 187, 65, 196, 0,
- 0, 0, 0, 191, 183, 96, 97, 98, 99, 100,
- 101, 102, 103, 0, 104, 105, 106, 107, 108, 109,
- 0, 0, 183, 208, 0, 0, 0, 0, 193, 0,
- 0, 194, 0, 180, 0, 110, 197, 0, 5, 198,
- 7, 8, 9, 10, 0, 12, 0, 14, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 0, 191, 0,
- 0, 0, 206, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 0, 15, 16,
- 17, 18, 19, 20, 21, 22, 0, 23, 0, 0,
- 98, 99, 100, 101, 102, 103, 24, 104, 105, 106,
- 107, 108, 109, 0, 0, 0, 0, 25, 26, 0,
- 0, 0, 27, 28, 0, 0, 0, 29, 30, 31,
- 32, 0, 0, 33, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 0, 15,
- 16, 17, 18, 19, 20, 21, 22, 0, 23, 0,
- 0, 0, 0, 0, 101, 102, 103, 24, 104, 105,
- 106, 107, 108, 109, 0, 0, 0, 0, 25, 26,
- 0, 0, 0, 27, 28, 0, 0, 0, 53, 30,
- 31, 32, 0, 0, 33, 1, 2, 3, 4, 5,
+#define YYLAST 724
+
+
+static const short yytable[] = { 46,
+ 45, 181, 38, 84, 169, 57, 72, 206, 52, 53,
+ 54, 55, 84, 84, 64, 65, 122, 188, 73, 74,
+ 75, 76, 77, 78, 79, 130, 169, 131, 82, 83,
+ 46, 81, 162, 165, 113, -66, 116, 129, 135, 46,
+ 115, 170, 207, 136, 132, 120, 198, 48, 49, 50,
+ 133, 48, 49, 50, 134, 46, 128, 121, 48, 49,
+ 50, 210, 182, 59, 170, 122, 123, 107, 108, 109,
+ 110, 111, 112, 191, 192, 60, 61, 62, 137, 138,
+ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ 159, 51, 174, -97, 175, 51, 59, -68, 203, 208,
+ 163, 166, 51, 167, 204, 175, 174, 173, 66, 67,
+ 62, 117, 186, 199, 213, 214, 172, 68, 118, 119,
+ 194, 0, 186, 193, 5, 189, 7, 8, 9, 10,
+ 190, 12, 0, 14, 120, 15, 16, 17, 18, 19,
+ 20, 21, 69, 0, 70, 196, 121, 71, 197, 0,
+ 205, 0, 113, 200, 122, 123, 201, 118, 119, 0,
+ 101, 102, 103, 104, 105, 106, 202, 107, 108, 109,
+ 110, 111, 112, 120, 0, 194, 0, 186, 0, 209,
+ 0, 0, 183, 0, 0, 121, 177, 178, 179, 180,
+ 0, 184, 0, 122, 123, 186, 211, 1, 2, 3,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 0, 15, 16, 17, 18, 19, 20, 21, 22,
+ 0, 23, 24, 25, 5, 0, 7, 8, 9, 10,
+ 0, 12, 26, 14, 0, 15, 16, 17, 18, 19,
+ 20, 21, 0, 27, 28, 0, 0, 0, 29, 30,
+ 0, 0, 0, 31, 32, 33, 34, 35, 0, 0,
+ 36, 1, 2, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 14, 0, 15, 16, 17, 18,
+ 19, 20, 21, 22, 0, 23, 24, 25, 99, 100,
+ 101, 102, 103, 104, 105, 106, 26, 107, 108, 109,
+ 110, 111, 112, 0, 0, 0, 0, 27, 28, 0,
+ 0, 0, 29, 30, 0, 0, 0, 56, 32, 33,
+ 34, 35, 0, 0, 36, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 0,
- 15, 16, 17, 18, 19, 20, 21, 22, 5, 23,
- 7, 8, 9, 10, 0, 12, 0, 14, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 0, 0, 0,
- 0, 0, 0, 0, 27, 28, 0, 117, 0, 29,
- 30, 31, 32, 0, 0, 33, 0, 0, 0, 118,
- 0, 0, 0, 0, 0, 0, 0, 119, 120, 0,
- 0, 0, 0, 180, 45, 157, 47, 7, 8, 9,
+ 15, 16, 17, 18, 19, 20, 21, 22, 0, 23,
+ 24, 25, 0, 0, 0, 5, 0, 7, 8, 9,
+ 10, 0, 12, 0, 14, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 0, 0, 29, 30, 0, 0,
+ 0, 31, 32, 33, 34, 35, 120, 0, 36, 0,
+ 0, 0, 0, 102, 103, 104, 105, 106, 121, 107,
+ 108, 109, 110, 111, 112, 0, 122, 123, 0, 0,
+ 0, 0, 0, 183, 48, 160, 50, 7, 8, 9,
10, 0, 12, 0, 14, 0, 15, 16, 17, 18,
- 19, 20, 21, 45, 157, 47, 7, 8, 9, 10,
+ 19, 20, 21, 48, 160, 50, 7, 8, 9, 10,
0, 12, 0, 14, 0, 15, 16, 17, 18, 19,
- 20, 21, 0, 0, 0, 0, 158, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 48, 0, 0, 0,
- 0, 0, 0, 0, 0, 161, 0, 0, 0, 0,
- 0, 0, 82, 0, 0, 48, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 0, 104, 105,
- 106, 107, 108, 109, 0, 0, 0, 0, 82, 0,
- 0, 192, 83, 84, 85, 86, 87, 88, 89, 90,
+ 20, 21, 0, 0, 0, 104, 105, 106, 161, 107,
+ 108, 109, 110, 111, 112, 0, 0, 0, 51, 0,
+ 0, 0, 0, 0, 0, 0, 0, 164, 0, 0,
+ 0, 0, 85, 0, 0, 0, 0, 51, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 0,
+ 107, 108, 109, 110, 111, 112, 0, 0, 0, 85,
+ 0, 0, 0, 0, 195, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 0, 104, 105, 106, 107, 108, 109,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
+ 101, 102, 103, 104, 105, 106, 0, 107, 108, 109,
+ 110, 111, 112, 87, 88, 89, 90, 91, 92, 93,
94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 0, 104, 105, 106, 107, 108, 109, 86, 87, 88,
+ 104, 105, 106, 0, 107, 108, 109, 110, 111, 112,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 0, 104, 105, 106, 107,
- 108, 109, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 0,
- 104, 105, 106, 107, 108, 109, 88, 89, 90, 91,
+ 99, 100, 101, 102, 103, 104, 105, 106, 0, 107,
+ 108, 109, 110, 111, 112, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 0, 107, 108, 109, 110, 111, 112, 91,
92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
- 102, 103, 0, 104, 105, 106, 107, 108, 109, 89,
- 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, 0, 104, 105, 106, 107, 108,
- 109, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 0, 104, 105, 106, 107,
- 108, 109, 92, 93, 94, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, 0, 104, 105, 106, 107, 108,
- 109
+ 102, 103, 104, 105, 106, 0, 107, 108, 109, 110,
+ 111, 112, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 0, 107, 108,
+ 109, 110, 111, 112, 93, 94, 95, 96, 97, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 0, 107,
+ 108, 109, 110, 111, 112, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 0, 107, 108,
+ 109, 110, 111, 112
};
static const short yycheck[] = { 0,
- 0, 7, 8, 9, 10, 0, 3, 13, 14, 28,
- 6, 7, 8, 6, 7, 8, 28, 15, 19, 20,
- 28, 56, 57, 28, 22, 23, 28, 15, 29, 29,
- 7, 6, 7, 8, 22, 23, 37, 37, 36, 28,
- 106, 107, 19, 20, 21, 64, 15, 21, 36, 61,
- 48, 36, 53, 53, 62, 48, 15, 62, 56, 57,
- 48, 11, 58, 48, 61, 58, 15, 60, 56, 57,
- 21, 56, 57, 62, 24, 25, 26, 27, 28, 7,
- 21, 31, 32, 58, 19, 60, 21, 37, 19, 24,
- 21, 19, 20, 21, 52, 53, 54, 55, 56, 57,
- 106, 107, 39, 21, 64, 62, 62, 113, 15, 15,
- 62, 40, 48, 108, 46, 47, 48, 49, 50, 120,
- 52, 53, 54, 55, 56, 57, 0, 61, 0, 130,
- 130, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, 115, 116, 117, 118, 7, 120,
- 9, 10, 11, 12, 112, 14, 172, 16, 122, 18,
- 19, 20, 21, 22, 23, 24, 122, 15, 165, -1,
- -1, -1, -1, 133, 185, 43, 44, 45, 46, 47,
- 48, 49, 50, -1, 52, 53, 54, 55, 56, 57,
- -1, -1, 203, 203, -1, -1, -1, -1, 158, -1,
- -1, 161, -1, 62, -1, 165, 166, -1, 7, 169,
- 9, 10, 11, 12, -1, 14, -1, 16, -1, 18,
- 19, 20, 21, 22, 23, 24, -1, -1, 188, -1,
- -1, -1, 192, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
- 20, 21, 22, 23, 24, 25, -1, 27, -1, -1,
- 45, 46, 47, 48, 49, 50, 36, 52, 53, 54,
- 55, 56, 57, -1, -1, -1, -1, 47, 48, -1,
- -1, -1, 52, 53, -1, -1, -1, 57, 58, 59,
- 60, -1, -1, 63, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, -1, 18,
- 19, 20, 21, 22, 23, 24, 25, -1, 27, -1,
- -1, -1, -1, -1, 48, 49, 50, 36, 52, 53,
- 54, 55, 56, 57, -1, -1, -1, -1, 47, 48,
- -1, -1, -1, 52, 53, -1, -1, -1, 57, 58,
- 59, 60, -1, -1, 63, 3, 4, 5, 6, 7,
+ 0, 3, 0, 30, 30, 11, 21, 30, 7, 8,
+ 9, 10, 30, 30, 13, 14, 58, 59, 19, 20,
+ 26, 27, 28, 29, 30, 19, 30, 21, 34, 35,
+ 31, 31, 109, 110, 40, 15, 15, 15, 65, 40,
+ 40, 67, 65, 65, 21, 38, 64, 6, 7, 8,
+ 41, 6, 7, 8, 21, 56, 56, 50, 6, 7,
+ 8, 65, 64, 7, 67, 58, 59, 54, 55, 56,
+ 57, 58, 59, 65, 21, 19, 20, 21, 84, 85,
+ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
+ 106, 60, 50, 15, 63, 60, 7, 15, 64, 42,
+ 109, 110, 60, 111, 65, 63, 50, 116, 19, 20,
+ 21, 15, 123, 168, 0, 0, 115, 15, 22, 23,
+ 136, -1, 133, 133, 7, 125, 9, 10, 11, 12,
+ 125, 14, -1, 16, 38, 18, 19, 20, 21, 22,
+ 23, 24, 19, -1, 21, 161, 50, 24, 164, -1,
+ 15, -1, 168, 169, 58, 59, 172, 22, 23, -1,
+ 47, 48, 49, 50, 51, 52, 175, 54, 55, 56,
+ 57, 58, 59, 38, -1, 191, -1, 188, -1, 195,
+ -1, -1, 65, -1, -1, 50, 118, 119, 120, 121,
+ -1, 123, -1, 58, 59, 206, 206, 3, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
+ -1, 27, 28, 29, 7, -1, 9, 10, 11, 12,
+ -1, 14, 38, 16, -1, 18, 19, 20, 21, 22,
+ 23, 24, -1, 49, 50, -1, -1, -1, 54, 55,
+ -1, -1, -1, 59, 60, 61, 62, 63, -1, -1,
+ 66, 3, 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
+ 22, 23, 24, 25, -1, 27, 28, 29, 45, 46,
+ 47, 48, 49, 50, 51, 52, 38, 54, 55, 56,
+ 57, 58, 59, -1, -1, -1, -1, 49, 50, -1,
+ -1, -1, 54, 55, -1, -1, -1, 59, 60, 61,
+ 62, 63, -1, -1, 66, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, -1,
- 18, 19, 20, 21, 22, 23, 24, 25, 7, 27,
- 9, 10, 11, 12, -1, 14, -1, 16, -1, 18,
- 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
- -1, -1, -1, -1, 52, 53, -1, 36, -1, 57,
- 58, 59, 60, -1, -1, 63, -1, -1, -1, 48,
- -1, -1, -1, -1, -1, -1, -1, 56, 57, -1,
- -1, -1, -1, 62, 6, 7, 8, 9, 10, 11,
+ 18, 19, 20, 21, 22, 23, 24, 25, -1, 27,
+ 28, 29, -1, -1, -1, 7, -1, 9, 10, 11,
+ 12, -1, 14, -1, 16, -1, 18, 19, 20, 21,
+ 22, 23, 24, -1, -1, -1, 54, 55, -1, -1,
+ -1, 59, 60, 61, 62, 63, 38, -1, 66, -1,
+ -1, -1, -1, 48, 49, 50, 51, 52, 50, 54,
+ 55, 56, 57, 58, 59, -1, 58, 59, -1, -1,
+ -1, -1, -1, 65, 6, 7, 8, 9, 10, 11,
12, -1, 14, -1, 16, -1, 18, 19, 20, 21,
22, 23, 24, 6, 7, 8, 9, 10, 11, 12,
-1, 14, -1, 16, -1, 18, 19, 20, 21, 22,
- 23, 24, -1, -1, -1, -1, 48, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 58, -1, -1, -1,
- -1, -1, -1, -1, -1, 48, -1, -1, -1, -1,
- -1, -1, 26, -1, -1, 58, 30, 31, 32, 33,
+ 23, 24, -1, -1, -1, 50, 51, 52, 50, 54,
+ 55, 56, 57, 58, 59, -1, -1, -1, 60, -1,
+ -1, -1, -1, -1, -1, -1, -1, 50, -1, -1,
+ -1, -1, 26, -1, -1, -1, -1, 60, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, -1, 52, 53,
- 54, 55, 56, 57, -1, -1, -1, -1, 26, -1,
- -1, 65, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, -1, 52, 53, 54, 55, 56, 57,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- -1, 52, 53, 54, 55, 56, 57, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, -1, 52, 53, 54, 55,
- 56, 57, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, -1,
- 52, 53, 54, 55, 56, 57, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, -1, 52, 53, 54, 55, 56, 57, 36,
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, -1, 26,
+ -1, -1, -1, -1, 68, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, -1, 52, 53, 54, 55, 56,
- 57, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, -1, 52, 53, 54, 55,
- 56, 57, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, -1, 52, 53, 54, 55, 56,
- 57
+ 47, 48, 49, 50, 51, 52, -1, 54, 55, 56,
+ 57, 58, 59, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, -1, 54, 55, 56, 57, 58, 59,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, -1, 54,
+ 55, 56, 57, 58, 59, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, -1, 54, 55, 56, 57, 58, 59, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, -1, 54, 55, 56, 57,
+ 58, 59, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 51, 52, -1, 54, 55,
+ 56, 57, 58, 59, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, -1, 54,
+ 55, 56, 57, 58, 59, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 51, 52, -1, 54, 55,
+ 56, 57, 58, 59
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
-#line 3 "/usr/unsupported/share/bison.simple"
+#line 3 "/stone/jimb/main-98r2/share/bison.simple"
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -717,16 +711,16 @@ int yyparse (void);
#endif
#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
-#define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
+#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
#else /* not GNU C or C++ */
#ifndef __cplusplus
/* This is the most reliable way to avoid incompatibilities
in available built-in functions on various systems. */
static void
-__yy_memcpy (from, to, count)
- char *from;
+__yy_memcpy (to, from, count)
char *to;
+ char *from;
int count;
{
register char *f = from;
@@ -742,7 +736,7 @@ __yy_memcpy (from, to, count)
/* This is the most reliable way to avoid incompatibilities
in available built-in functions on various systems. */
static void
-__yy_memcpy (char *from, char *to, int count)
+__yy_memcpy (char *to, char *from, int count)
{
register char *f = from;
register char *t = to;
@@ -755,7 +749,7 @@ __yy_memcpy (char *from, char *to, int count)
#endif
#endif
-#line 192 "/usr/unsupported/share/bison.simple"
+#line 196 "/stone/jimb/main-98r2/share/bison.simple"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *.
@@ -764,14 +758,20 @@ __yy_memcpy (char *from, char *to, int count)
to the proper pointer type. */
#ifdef YYPARSE_PARAM
+#ifdef __cplusplus
+#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#else /* not __cplusplus */
+#define YYPARSE_PARAM_ARG YYPARSE_PARAM
#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
-#else
-#define YYPARSE_PARAM
+#endif /* not __cplusplus */
+#else /* not YYPARSE_PARAM */
+#define YYPARSE_PARAM_ARG
#define YYPARSE_PARAM_DECL
-#endif
+#endif /* not YYPARSE_PARAM */
int
-yyparse(YYPARSE_PARAM)
+yyparse(YYPARSE_PARAM_ARG)
YYPARSE_PARAM_DECL
{
register int yystate;
@@ -888,12 +888,12 @@ yynewstate:
if (yystacksize > YYMAXDEPTH)
yystacksize = YYMAXDEPTH;
yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
- __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
+ __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
- __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
+ __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
- __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
+ __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
#endif
#endif /* no yyoverflow */
@@ -1054,63 +1054,63 @@ yyreduce:
switch (yyn) {
case 3:
-#line 228 "./c-exp.y"
+#line 235 "c-exp.y"
{ write_exp_elt_opcode(OP_TYPE);
write_exp_elt_type(yyvsp[0].tval);
write_exp_elt_opcode(OP_TYPE);;
break;}
case 5:
-#line 236 "./c-exp.y"
+#line 243 "c-exp.y"
{ write_exp_elt_opcode (BINOP_COMMA); ;
break;}
case 6:
-#line 241 "./c-exp.y"
+#line 248 "c-exp.y"
{ write_exp_elt_opcode (UNOP_IND); ;
break;}
case 7:
-#line 244 "./c-exp.y"
+#line 251 "c-exp.y"
{ write_exp_elt_opcode (UNOP_ADDR); ;
break;}
case 8:
-#line 247 "./c-exp.y"
+#line 254 "c-exp.y"
{ write_exp_elt_opcode (UNOP_NEG); ;
break;}
case 9:
-#line 251 "./c-exp.y"
+#line 258 "c-exp.y"
{ write_exp_elt_opcode (UNOP_LOGICAL_NOT); ;
break;}
case 10:
-#line 255 "./c-exp.y"
+#line 262 "c-exp.y"
{ write_exp_elt_opcode (UNOP_COMPLEMENT); ;
break;}
case 11:
-#line 259 "./c-exp.y"
+#line 266 "c-exp.y"
{ write_exp_elt_opcode (UNOP_PREINCREMENT); ;
break;}
case 12:
-#line 263 "./c-exp.y"
+#line 270 "c-exp.y"
{ write_exp_elt_opcode (UNOP_PREDECREMENT); ;
break;}
case 13:
-#line 267 "./c-exp.y"
+#line 274 "c-exp.y"
{ write_exp_elt_opcode (UNOP_POSTINCREMENT); ;
break;}
case 14:
-#line 271 "./c-exp.y"
+#line 278 "c-exp.y"
{ write_exp_elt_opcode (UNOP_POSTDECREMENT); ;
break;}
case 15:
-#line 275 "./c-exp.y"
+#line 282 "c-exp.y"
{ write_exp_elt_opcode (UNOP_SIZEOF); ;
break;}
case 16:
-#line 279 "./c-exp.y"
+#line 286 "c-exp.y"
{ write_exp_elt_opcode (STRUCTOP_PTR);
write_exp_string (yyvsp[0].sval);
write_exp_elt_opcode (STRUCTOP_PTR); ;
break;}
case 17:
-#line 285 "./c-exp.y"
+#line 292 "c-exp.y"
{ /* exp->type::name becomes exp->*(&type::name) */
/* Note: this doesn't work if name is a
static member! FIXME */
@@ -1118,17 +1118,17 @@ case 17:
write_exp_elt_opcode (STRUCTOP_MPTR); ;
break;}
case 18:
-#line 292 "./c-exp.y"
+#line 300 "c-exp.y"
{ write_exp_elt_opcode (STRUCTOP_MPTR); ;
break;}
case 19:
-#line 296 "./c-exp.y"
+#line 304 "c-exp.y"
{ write_exp_elt_opcode (STRUCTOP_STRUCT);
write_exp_string (yyvsp[0].sval);
write_exp_elt_opcode (STRUCTOP_STRUCT); ;
break;}
case 20:
-#line 303 "./c-exp.y"
+#line 310 "c-exp.y"
{ /* exp.type::name becomes exp.*(&type::name) */
/* Note: this doesn't work if name is a
static member! FIXME */
@@ -1136,161 +1136,161 @@ case 20:
write_exp_elt_opcode (STRUCTOP_MEMBER); ;
break;}
case 21:
-#line 311 "./c-exp.y"
+#line 318 "c-exp.y"
{ write_exp_elt_opcode (STRUCTOP_MEMBER); ;
break;}
case 22:
-#line 315 "./c-exp.y"
+#line 322 "c-exp.y"
{ write_exp_elt_opcode (BINOP_SUBSCRIPT); ;
break;}
case 23:
-#line 321 "./c-exp.y"
+#line 328 "c-exp.y"
{ start_arglist (); ;
break;}
case 24:
-#line 323 "./c-exp.y"
+#line 330 "c-exp.y"
{ write_exp_elt_opcode (OP_FUNCALL);
write_exp_elt_longcst ((LONGEST) end_arglist ());
write_exp_elt_opcode (OP_FUNCALL); ;
break;}
case 25:
-#line 329 "./c-exp.y"
+#line 336 "c-exp.y"
{ start_arglist (); ;
break;}
case 27:
-#line 336 "./c-exp.y"
+#line 343 "c-exp.y"
{ arglist_len = 1; ;
break;}
case 28:
-#line 340 "./c-exp.y"
+#line 347 "c-exp.y"
{ arglist_len++; ;
break;}
case 29:
-#line 344 "./c-exp.y"
+#line 351 "c-exp.y"
{ yyval.lval = end_arglist () - 1; ;
break;}
case 30:
-#line 347 "./c-exp.y"
+#line 354 "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); ;
break;}
case 31:
-#line 354 "./c-exp.y"
+#line 361 "c-exp.y"
{ write_exp_elt_opcode (UNOP_MEMVAL);
write_exp_elt_type (yyvsp[-2].tval);
write_exp_elt_opcode (UNOP_MEMVAL); ;
break;}
case 32:
-#line 360 "./c-exp.y"
+#line 367 "c-exp.y"
{ write_exp_elt_opcode (UNOP_CAST);
write_exp_elt_type (yyvsp[-2].tval);
write_exp_elt_opcode (UNOP_CAST); ;
break;}
case 33:
-#line 366 "./c-exp.y"
+#line 373 "c-exp.y"
{ ;
break;}
case 34:
-#line 372 "./c-exp.y"
+#line 379 "c-exp.y"
{ write_exp_elt_opcode (BINOP_REPEAT); ;
break;}
case 35:
-#line 376 "./c-exp.y"
+#line 383 "c-exp.y"
{ write_exp_elt_opcode (BINOP_MUL); ;
break;}
case 36:
-#line 380 "./c-exp.y"
+#line 387 "c-exp.y"
{ write_exp_elt_opcode (BINOP_DIV); ;
break;}
case 37:
-#line 384 "./c-exp.y"
+#line 391 "c-exp.y"
{ write_exp_elt_opcode (BINOP_REM); ;
break;}
case 38:
-#line 388 "./c-exp.y"
+#line 395 "c-exp.y"
{ write_exp_elt_opcode (BINOP_ADD); ;
break;}
case 39:
-#line 392 "./c-exp.y"
+#line 399 "c-exp.y"
{ write_exp_elt_opcode (BINOP_SUB); ;
break;}
case 40:
-#line 396 "./c-exp.y"
+#line 403 "c-exp.y"
{ write_exp_elt_opcode (BINOP_LSH); ;
break;}
case 41:
-#line 400 "./c-exp.y"
+#line 407 "c-exp.y"
{ write_exp_elt_opcode (BINOP_RSH); ;
break;}
case 42:
-#line 404 "./c-exp.y"
+#line 411 "c-exp.y"
{ write_exp_elt_opcode (BINOP_EQUAL); ;
break;}
case 43:
-#line 408 "./c-exp.y"
+#line 415 "c-exp.y"
{ write_exp_elt_opcode (BINOP_NOTEQUAL); ;
break;}
case 44:
-#line 412 "./c-exp.y"
+#line 419 "c-exp.y"
{ write_exp_elt_opcode (BINOP_LEQ); ;
break;}
case 45:
-#line 416 "./c-exp.y"
+#line 423 "c-exp.y"
{ write_exp_elt_opcode (BINOP_GEQ); ;
break;}
case 46:
-#line 420 "./c-exp.y"
+#line 427 "c-exp.y"
{ write_exp_elt_opcode (BINOP_LESS); ;
break;}
case 47:
-#line 424 "./c-exp.y"
+#line 431 "c-exp.y"
{ write_exp_elt_opcode (BINOP_GTR); ;
break;}
case 48:
-#line 428 "./c-exp.y"
+#line 435 "c-exp.y"
{ write_exp_elt_opcode (BINOP_BITWISE_AND); ;
break;}
case 49:
-#line 432 "./c-exp.y"
+#line 439 "c-exp.y"
{ write_exp_elt_opcode (BINOP_BITWISE_XOR); ;
break;}
case 50:
-#line 436 "./c-exp.y"
+#line 443 "c-exp.y"
{ write_exp_elt_opcode (BINOP_BITWISE_IOR); ;
break;}
case 51:
-#line 440 "./c-exp.y"
+#line 447 "c-exp.y"
{ write_exp_elt_opcode (BINOP_LOGICAL_AND); ;
break;}
case 52:
-#line 444 "./c-exp.y"
+#line 451 "c-exp.y"
{ write_exp_elt_opcode (BINOP_LOGICAL_OR); ;
break;}
case 53:
-#line 448 "./c-exp.y"
+#line 455 "c-exp.y"
{ write_exp_elt_opcode (TERNOP_COND); ;
break;}
case 54:
-#line 452 "./c-exp.y"
+#line 459 "c-exp.y"
{ write_exp_elt_opcode (BINOP_ASSIGN); ;
break;}
case 55:
-#line 456 "./c-exp.y"
+#line 463 "c-exp.y"
{ write_exp_elt_opcode (BINOP_ASSIGN_MODIFY);
write_exp_elt_opcode (yyvsp[-1].opcode);
write_exp_elt_opcode (BINOP_ASSIGN_MODIFY); ;
break;}
case 56:
-#line 462 "./c-exp.y"
+#line 469 "c-exp.y"
{ write_exp_elt_opcode (OP_LONG);
write_exp_elt_type (yyvsp[0].typed_val_int.type);
write_exp_elt_longcst ((LONGEST)(yyvsp[0].typed_val_int.val));
write_exp_elt_opcode (OP_LONG); ;
break;}
case 57:
-#line 469 "./c-exp.y"
+#line 476 "c-exp.y"
{ YYSTYPE val;
parse_number (yyvsp[0].ssym.stoken.ptr, yyvsp[0].ssym.stoken.length, 0, &val);
write_exp_elt_opcode (OP_LONG);
@@ -1300,14 +1300,14 @@ case 57:
;
break;}
case 58:
-#line 480 "./c-exp.y"
+#line 487 "c-exp.y"
{ write_exp_elt_opcode (OP_DOUBLE);
write_exp_elt_type (yyvsp[0].typed_val_float.type);
write_exp_elt_dblcst (yyvsp[0].typed_val_float.dval);
write_exp_elt_opcode (OP_DOUBLE); ;
break;}
case 61:
-#line 494 "./c-exp.y"
+#line 501 "c-exp.y"
{ write_exp_elt_opcode (OP_LONG);
write_exp_elt_type (builtin_type_int);
CHECK_TYPEDEF (yyvsp[-1].tval);
@@ -1315,7 +1315,7 @@ case 61:
write_exp_elt_opcode (OP_LONG); ;
break;}
case 62:
-#line 502 "./c-exp.y"
+#line 509 "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.
@@ -1339,29 +1339,42 @@ case 62:
write_exp_elt_opcode (OP_ARRAY); ;
break;}
case 63:
-#line 527 "./c-exp.y"
+#line 534 "c-exp.y"
{ write_exp_elt_opcode (OP_THIS);
write_exp_elt_opcode (OP_THIS); ;
break;}
case 64:
-#line 534 "./c-exp.y"
+#line 539 "c-exp.y"
+{ write_exp_elt_opcode (OP_LONG);
+ write_exp_elt_type (builtin_type_bool);
+ write_exp_elt_longcst ((LONGEST) 1);
+ write_exp_elt_opcode (OP_LONG); ;
+ break;}
+case 65:
+#line 546 "c-exp.y"
+{ write_exp_elt_opcode (OP_LONG);
+ write_exp_elt_type (builtin_type_bool);
+ write_exp_elt_longcst ((LONGEST) 0);
+ write_exp_elt_opcode (OP_LONG); ;
+ break;}
+case 66:
+#line 555 "c-exp.y"
{
- if (yyvsp[0].ssym.sym != 0)
- yyval.bval = SYMBOL_BLOCK_VALUE (yyvsp[0].ssym.sym);
+ if (yyvsp[0].ssym.sym)
+ yyval.bval = SYMBOL_BLOCK_VALUE (yyvsp[0].ssym.sym);
else
- {
- struct symtab *tem =
- lookup_symtab (copy_name (yyvsp[0].ssym.stoken));
- if (tem)
- yyval.bval = BLOCKVECTOR_BLOCK (BLOCKVECTOR (tem), STATIC_BLOCK);
- else
- error ("No file or function \"%s\".",
- copy_name (yyvsp[0].ssym.stoken));
- }
+ error ("No file or function \"%s\".",
+ copy_name (yyvsp[0].ssym.stoken));
;
break;}
-case 65:
-#line 551 "./c-exp.y"
+case 67:
+#line 563 "c-exp.y"
+{
+ yyval.bval = yyvsp[0].bval;
+ ;
+ break;}
+case 68:
+#line 569 "c-exp.y"
{ struct symbol *tem
= lookup_symbol (copy_name (yyvsp[0].sval), yyvsp[-2].bval,
VAR_NAMESPACE, (int *) NULL,
@@ -1371,8 +1384,8 @@ case 65:
copy_name (yyvsp[0].sval));
yyval.bval = SYMBOL_BLOCK_VALUE (tem); ;
break;}
-case 66:
-#line 562 "./c-exp.y"
+case 69:
+#line 580 "c-exp.y"
{ struct symbol *sym;
sym = lookup_symbol (copy_name (yyvsp[0].sval), yyvsp[-2].bval,
VAR_NAMESPACE, (int *) NULL,
@@ -1387,8 +1400,8 @@ case 66:
write_exp_elt_sym (sym);
write_exp_elt_opcode (OP_VAR_VALUE); ;
break;}
-case 67:
-#line 578 "./c-exp.y"
+case 70:
+#line 596 "c-exp.y"
{
struct type *type = yyvsp[-2].tval;
if (TYPE_CODE (type) != TYPE_CODE_STRUCT
@@ -1402,8 +1415,8 @@ case 67:
write_exp_elt_opcode (OP_SCOPE);
;
break;}
-case 68:
-#line 591 "./c-exp.y"
+case 71:
+#line 609 "c-exp.y"
{
struct type *type = yyvsp[-3].tval;
struct stoken tmp_token;
@@ -1412,23 +1425,22 @@ case 68:
error ("`%s' is not defined as an aggregate type.",
TYPE_NAME (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;
tmp_token.ptr[0] = '~';
memcpy (tmp_token.ptr+1, yyvsp[0].sval.ptr, yyvsp[0].sval.length);
tmp_token.ptr[tmp_token.length] = 0;
+
+ /* Check for valid destructor name. */
+ destructor_name_p (tmp_token.ptr, type);
write_exp_elt_opcode (OP_SCOPE);
write_exp_elt_type (type);
write_exp_string (tmp_token);
write_exp_elt_opcode (OP_SCOPE);
;
break;}
-case 70:
-#line 617 "./c-exp.y"
+case 73:
+#line 634 "c-exp.y"
{
char *name = copy_name (yyvsp[0].sval);
struct symbol *sym;
@@ -1461,8 +1473,8 @@ case 70:
error ("No symbol \"%s\" in current context.", name);
;
break;}
-case 71:
-#line 651 "./c-exp.y"
+case 74:
+#line 668 "c-exp.y"
{ struct symbol *sym = yyvsp[0].ssym.sym;
if (sym)
@@ -1518,244 +1530,244 @@ case 71:
}
;
break;}
-case 75:
-#line 717 "./c-exp.y"
+case 78:
+#line 734 "c-exp.y"
{ yyval.tval = follow_types (yyvsp[-1].tval); ;
break;}
-case 76:
-#line 719 "./c-exp.y"
+case 79:
+#line 736 "c-exp.y"
{ yyval.tval = follow_types (yyvsp[-2].tval); ;
break;}
-case 77:
-#line 721 "./c-exp.y"
+case 80:
+#line 738 "c-exp.y"
{ yyval.tval = follow_types (yyvsp[-2].tval); ;
break;}
-case 78:
-#line 725 "./c-exp.y"
+case 81:
+#line 742 "c-exp.y"
{ push_type (tp_pointer); yyval.voidval = 0; ;
break;}
-case 79:
-#line 727 "./c-exp.y"
+case 82:
+#line 744 "c-exp.y"
{ push_type (tp_pointer); yyval.voidval = yyvsp[0].voidval; ;
break;}
-case 80:
-#line 729 "./c-exp.y"
+case 83:
+#line 746 "c-exp.y"
{ push_type (tp_reference); yyval.voidval = 0; ;
break;}
-case 81:
-#line 731 "./c-exp.y"
+case 84:
+#line 748 "c-exp.y"
{ push_type (tp_reference); yyval.voidval = yyvsp[0].voidval; ;
break;}
-case 83:
-#line 736 "./c-exp.y"
+case 86:
+#line 753 "c-exp.y"
{ yyval.voidval = yyvsp[-1].voidval; ;
break;}
-case 84:
-#line 738 "./c-exp.y"
+case 87:
+#line 755 "c-exp.y"
{
push_type_int (yyvsp[0].lval);
push_type (tp_array);
;
break;}
-case 85:
-#line 743 "./c-exp.y"
+case 88:
+#line 760 "c-exp.y"
{
push_type_int (yyvsp[0].lval);
push_type (tp_array);
yyval.voidval = 0;
;
break;}
-case 86:
-#line 750 "./c-exp.y"
+case 89:
+#line 767 "c-exp.y"
{ push_type (tp_function); ;
break;}
-case 87:
-#line 752 "./c-exp.y"
+case 90:
+#line 769 "c-exp.y"
{ push_type (tp_function); ;
break;}
-case 88:
-#line 756 "./c-exp.y"
+case 91:
+#line 773 "c-exp.y"
{ yyval.lval = -1; ;
break;}
-case 89:
-#line 758 "./c-exp.y"
+case 92:
+#line 775 "c-exp.y"
{ yyval.lval = yyvsp[-1].typed_val_int.val; ;
break;}
-case 90:
-#line 762 "./c-exp.y"
+case 93:
+#line 779 "c-exp.y"
{ yyval.voidval = 0; ;
break;}
-case 91:
-#line 764 "./c-exp.y"
+case 94:
+#line 781 "c-exp.y"
{ free ((PTR)yyvsp[-1].tvec); yyval.voidval = 0; ;
break;}
-case 93:
-#line 777 "./c-exp.y"
+case 96:
+#line 794 "c-exp.y"
{ yyval.tval = lookup_member_type (builtin_type_int, yyvsp[-2].tval); ;
break;}
-case 94:
-#line 782 "./c-exp.y"
+case 97:
+#line 799 "c-exp.y"
{ yyval.tval = yyvsp[0].tsym.type; ;
break;}
-case 95:
-#line 784 "./c-exp.y"
+case 98:
+#line 801 "c-exp.y"
{ yyval.tval = builtin_type_int; ;
break;}
-case 96:
-#line 786 "./c-exp.y"
+case 99:
+#line 803 "c-exp.y"
{ yyval.tval = builtin_type_long; ;
break;}
-case 97:
-#line 788 "./c-exp.y"
+case 100:
+#line 805 "c-exp.y"
{ yyval.tval = builtin_type_short; ;
break;}
-case 98:
-#line 790 "./c-exp.y"
+case 101:
+#line 807 "c-exp.y"
{ yyval.tval = builtin_type_long; ;
break;}
-case 99:
-#line 792 "./c-exp.y"
+case 102:
+#line 809 "c-exp.y"
{ yyval.tval = builtin_type_unsigned_long; ;
break;}
-case 100:
-#line 794 "./c-exp.y"
+case 103:
+#line 811 "c-exp.y"
{ yyval.tval = builtin_type_long_long; ;
break;}
-case 101:
-#line 796 "./c-exp.y"
+case 104:
+#line 813 "c-exp.y"
{ yyval.tval = builtin_type_long_long; ;
break;}
-case 102:
-#line 798 "./c-exp.y"
+case 105:
+#line 815 "c-exp.y"
{ yyval.tval = builtin_type_unsigned_long_long; ;
break;}
-case 103:
-#line 800 "./c-exp.y"
+case 106:
+#line 817 "c-exp.y"
{ yyval.tval = builtin_type_unsigned_long_long; ;
break;}
-case 104:
-#line 802 "./c-exp.y"
+case 107:
+#line 819 "c-exp.y"
{ yyval.tval = builtin_type_short; ;
break;}
-case 105:
-#line 804 "./c-exp.y"
+case 108:
+#line 821 "c-exp.y"
{ yyval.tval = builtin_type_unsigned_short; ;
break;}
-case 106:
-#line 806 "./c-exp.y"
+case 109:
+#line 823 "c-exp.y"
{ yyval.tval = builtin_type_double; ;
break;}
-case 107:
-#line 808 "./c-exp.y"
+case 110:
+#line 825 "c-exp.y"
{ yyval.tval = builtin_type_long_double; ;
break;}
-case 108:
-#line 810 "./c-exp.y"
+case 111:
+#line 827 "c-exp.y"
{ yyval.tval = lookup_struct (copy_name (yyvsp[0].sval),
expression_context_block); ;
break;}
-case 109:
-#line 813 "./c-exp.y"
+case 112:
+#line 830 "c-exp.y"
{ yyval.tval = lookup_struct (copy_name (yyvsp[0].sval),
expression_context_block); ;
break;}
-case 110:
-#line 816 "./c-exp.y"
+case 113:
+#line 833 "c-exp.y"
{ yyval.tval = lookup_union (copy_name (yyvsp[0].sval),
expression_context_block); ;
break;}
-case 111:
-#line 819 "./c-exp.y"
+case 114:
+#line 836 "c-exp.y"
{ yyval.tval = lookup_enum (copy_name (yyvsp[0].sval),
expression_context_block); ;
break;}
-case 112:
-#line 822 "./c-exp.y"
+case 115:
+#line 839 "c-exp.y"
{ yyval.tval = lookup_unsigned_typename (TYPE_NAME(yyvsp[0].tsym.type)); ;
break;}
-case 113:
-#line 824 "./c-exp.y"
+case 116:
+#line 841 "c-exp.y"
{ yyval.tval = builtin_type_unsigned_int; ;
break;}
-case 114:
-#line 826 "./c-exp.y"
+case 117:
+#line 843 "c-exp.y"
{ yyval.tval = lookup_signed_typename (TYPE_NAME(yyvsp[0].tsym.type)); ;
break;}
-case 115:
-#line 828 "./c-exp.y"
+case 118:
+#line 845 "c-exp.y"
{ yyval.tval = builtin_type_int; ;
break;}
-case 116:
-#line 830 "./c-exp.y"
+case 119:
+#line 850 "c-exp.y"
{ yyval.tval = lookup_template_type(copy_name(yyvsp[-3].sval), yyvsp[-1].tval,
expression_context_block);
;
break;}
-case 117:
-#line 836 "./c-exp.y"
+case 120:
+#line 856 "c-exp.y"
{ yyval.tval = yyvsp[0].tval; ;
break;}
-case 118:
-#line 837 "./c-exp.y"
+case 121:
+#line 857 "c-exp.y"
{ yyval.tval = yyvsp[0].tval; ;
break;}
-case 120:
-#line 842 "./c-exp.y"
+case 123:
+#line 862 "c-exp.y"
{
yyval.tsym.stoken.ptr = "int";
yyval.tsym.stoken.length = 3;
yyval.tsym.type = builtin_type_int;
;
break;}
-case 121:
-#line 848 "./c-exp.y"
+case 124:
+#line 868 "c-exp.y"
{
yyval.tsym.stoken.ptr = "long";
yyval.tsym.stoken.length = 4;
yyval.tsym.type = builtin_type_long;
;
break;}
-case 122:
-#line 854 "./c-exp.y"
+case 125:
+#line 874 "c-exp.y"
{
yyval.tsym.stoken.ptr = "short";
yyval.tsym.stoken.length = 5;
yyval.tsym.type = builtin_type_short;
;
break;}
-case 123:
-#line 863 "./c-exp.y"
+case 126:
+#line 883 "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;
;
break;}
-case 124:
-#line 868 "./c-exp.y"
+case 127:
+#line 888 "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;
;
break;}
-case 125:
-#line 874 "./c-exp.y"
+case 128:
+#line 894 "c-exp.y"
{ yyval.sval = yyvsp[0].ssym.stoken; ;
break;}
-case 126:
-#line 875 "./c-exp.y"
+case 129:
+#line 895 "c-exp.y"
{ yyval.sval = yyvsp[0].ssym.stoken; ;
break;}
-case 127:
-#line 876 "./c-exp.y"
+case 130:
+#line 896 "c-exp.y"
{ yyval.sval = yyvsp[0].tsym.stoken; ;
break;}
-case 128:
-#line 877 "./c-exp.y"
+case 131:
+#line 897 "c-exp.y"
{ yyval.sval = yyvsp[0].ssym.stoken; ;
break;}
}
/* the action file gets copied in in place of this dollarsign */
-#line 487 "/usr/unsupported/share/bison.simple"
+#line 498 "/stone/jimb/main-98r2/share/bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
@@ -1951,7 +1963,7 @@ yyerrhandle:
yystate = yyn;
goto yynewstate;
}
-#line 891 "./c-exp.y"
+#line 911 "c-exp.y"
/* Take care of parsing a number (anything that starts with a digit).
@@ -1971,7 +1983,7 @@ parse_number (p, len, parsed_float, putithere)
here, and we do kind of silly things like cast to unsigned. */
register LONGEST n = 0;
register LONGEST prevn = 0;
- unsigned LONGEST un;
+ ULONGEST un;
register int i = 0;
register int c;
@@ -1984,34 +1996,38 @@ parse_number (p, len, parsed_float, putithere)
/* We have found a "L" or "U" suffix. */
int found_suffix = 0;
- unsigned LONGEST high_bit;
+ ULONGEST high_bit;
struct type *signed_type;
struct type *unsigned_type;
if (parsed_float)
{
- char c;
-
/* It's a float since it contains a point or an exponent. */
+ char c;
+ int num = 0; /* number of tokens scanned by scanf */
+ char saved_char = p[len];
+ p[len] = 0; /* null-terminate the token */
if (sizeof (putithere->typed_val_float.dval) <= sizeof (float))
- sscanf (p, "%g", &putithere->typed_val_float.dval);
+ num = sscanf (p, "%g%c", (float *) &putithere->typed_val_float.dval,&c);
else if (sizeof (putithere->typed_val_float.dval) <= sizeof (double))
- sscanf (p, "%lg", &putithere->typed_val_float.dval);
+ num = sscanf (p, "%lg%c", (double *) &putithere->typed_val_float.dval,&c);
else
{
-#ifdef PRINTF_HAS_LONG_DOUBLE
- sscanf (p, "%Lg", &putithere->typed_val_float.dval);
+#ifdef SCANF_HAS_LONG_DOUBLE
+ num = sscanf (p, "%Lg%c", &putithere->typed_val_float.dval,&c);
#else
/* Scan it into a double, then assign it to the long double.
This at least wins with values representable in the range
of doubles. */
double temp;
- sscanf (p, "%lg", &temp);
+ num = sscanf (p, "%lg%c", &temp,&c);
putithere->typed_val_float.dval = temp;
#endif
}
-
+ p[len] = saved_char; /* restore the input stream */
+ if (num != 1) /* check scanf found ONLY a float ... */
+ return ERROR;
/* See if it has `f' or `l' suffix (float or long double). */
c = tolower (p[len - 1]);
@@ -2107,7 +2123,7 @@ parse_number (p, len, parsed_float, putithere)
on 0x123456789 when LONGEST is 32 bits. */
if (c != 'l' && c != 'u' && n != 0)
{
- if ((unsigned_p && (unsigned LONGEST) prevn >= (unsigned LONGEST) n))
+ if ((unsigned_p && (ULONGEST) prevn >= (ULONGEST) n))
error ("Numeric constant too large.");
}
prevn = n;
@@ -2125,11 +2141,11 @@ parse_number (p, len, parsed_float, putithere)
the case where it is we just always shift the value more than
once, with fewer bits each time. */
- un = (unsigned LONGEST)n >> 2;
+ un = (ULONGEST)n >> 2;
if (long_p == 0
&& (un >> (TARGET_INT_BIT - 2)) == 0)
{
- high_bit = ((unsigned LONGEST)1) << (TARGET_INT_BIT-1);
+ high_bit = ((ULONGEST)1) << (TARGET_INT_BIT-1);
/* A large decimal (not hex or octal) constant (between INT_MAX
and UINT_MAX) is a long or unsigned long, according to ANSI,
@@ -2143,20 +2159,19 @@ parse_number (p, len, parsed_float, putithere)
else if (long_p <= 1
&& (un >> (TARGET_LONG_BIT - 2)) == 0)
{
- high_bit = ((unsigned LONGEST)1) << (TARGET_LONG_BIT-1);
+ high_bit = ((ULONGEST)1) << (TARGET_LONG_BIT-1);
unsigned_type = builtin_type_unsigned_long;
signed_type = builtin_type_long;
}
else
{
- high_bit = (((unsigned LONGEST)1)
- << (TARGET_LONG_LONG_BIT - 32 - 1)
- << 16
- << 16);
- if (high_bit == 0)
+ int shift;
+ if (sizeof (ULONGEST) * HOST_CHAR_BIT < TARGET_LONG_LONG_BIT)
/* A long long does not fit in a LONGEST. */
- high_bit =
- (unsigned LONGEST)1 << (sizeof (LONGEST) * HOST_CHAR_BIT - 1);
+ shift = (sizeof (ULONGEST) * HOST_CHAR_BIT - 1);
+ else
+ shift = (TARGET_LONG_LONG_BIT - 1);
+ high_bit = (ULONGEST) 1 << shift;
unsigned_type = builtin_type_unsigned_long_long;
signed_type = builtin_type_long_long;
}
@@ -2228,9 +2243,15 @@ yylex ()
int tempbufindex;
static char *tempbuf;
static int tempbufsize;
-
+ struct symbol * sym_class = NULL;
+ char * token_string = NULL;
+ int class_prefix = 0;
+ int unquoted_expr;
+
retry:
+ unquoted_expr = 1;
+
tokstart = lexptr;
/* See if it is a special token of length 3. */
for (i = 0; i < sizeof tokentab3 / sizeof tokentab3[0]; i++)
@@ -2282,6 +2303,7 @@ yylex ()
if (namelen > 2)
{
lexptr = tokstart + namelen;
+ unquoted_expr = 0;
if (lexptr[-1] != '\'')
error ("Unmatched single quote.");
namelen -= 2;
@@ -2466,15 +2488,45 @@ yylex ()
(c == '_' || c == '$' || (c >= '0' && c <= '9')
|| (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '<');)
{
- if (c == '<')
- {
- int i = namelen;
- while (tokstart[++i] && tokstart[i] != '>');
- if (tokstart[i] == '>')
- namelen = i;
- }
- c = tokstart[++namelen];
- }
+ /* Template parameter lists are part of the name.
+ FIXME: This mishandles `print $a<4&&$a>3'. */
+
+ if (c == '<')
+ {
+ if (hp_som_som_object_present)
+ {
+ /* Scan ahead to get rest of the template specification. Note
+ that we look ahead only when the '<' adjoins non-whitespace
+ characters; for comparison expressions, e.g. "a < b > c",
+ there must be spaces before the '<', etc. */
+
+ char * p = find_template_name_end (tokstart + namelen);
+ if (p)
+ namelen = p - tokstart;
+ break;
+ }
+ else
+ {
+ int i = namelen;
+ int nesting_level = 1;
+ while (tokstart[++i])
+ {
+ if (tokstart[i] == '<')
+ nesting_level++;
+ else if (tokstart[i] == '>')
+ {
+ if (--nesting_level == 0)
+ break;
+ }
+ }
+ if (tokstart[i] == '>')
+ namelen = i;
+ else
+ break;
+ }
+ }
+ c = tokstart[++namelen];
+ }
/* The token "if" terminates the expression and is NOT
removed from the input stream. */
@@ -2510,9 +2562,13 @@ yylex ()
return DOUBLE_KEYWORD;
break;
case 5:
- if (current_language->la_language == language_cplus
- && STREQN (tokstart, "class", 5))
- return CLASS;
+ if (current_language->la_language == language_cplus)
+ {
+ if (STREQN (tokstart, "false", 5))
+ return FALSEKEYWORD;
+ if (STREQN (tokstart, "class", 5))
+ return CLASS;
+ }
if (STREQN (tokstart, "union", 5))
return UNION;
if (STREQN (tokstart, "short", 5))
@@ -2525,17 +2581,22 @@ yylex ()
return ENUM;
if (STREQN (tokstart, "long", 4))
return LONG;
- 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))
- return THIS;
- }
+ if (current_language->la_language == language_cplus)
+ {
+ if (STREQN (tokstart, "true", 4))
+ return TRUEKEYWORD;
+
+ if (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))
+ return THIS;
+ }
+ }
break;
case 3:
if (STREQN (tokstart, "int", 3))
@@ -2553,7 +2614,25 @@ yylex ()
write_dollar_variable (yylval.sval);
return VARIABLE;
}
-
+
+ /* Look ahead and see if we can consume more of the input
+ string to get a reasonable class/namespace spec or a
+ fully-qualified name. This is a kludge to get around the
+ HP aCC compiler's generation of symbol names with embedded
+ colons for namespace and nested classes. */
+ if (unquoted_expr)
+ {
+ /* Only do it if not inside single quotes */
+ sym_class = parse_nested_classes_for_hpacc (yylval.sval.ptr, yylval.sval.length,
+ &token_string, &class_prefix, &lexptr);
+ if (sym_class)
+ {
+ /* Replace the current token with the bigger one we found */
+ yylval.sval.ptr = token_string;
+ yylval.sval.length = strlen (token_string);
+ }
+ }
+
/* 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
@@ -2573,13 +2652,25 @@ yylex ()
/* Call lookup_symtab, not lookup_partial_symtab, in case there are
no psymtabs (coff, xcoff, or some future change to blow away the
psymtabs once once symbols are read). */
- if ((sym && SYMBOL_CLASS (sym) == LOC_BLOCK) ||
- lookup_symtab (tmp))
+ if (sym && SYMBOL_CLASS (sym) == LOC_BLOCK)
{
yylval.ssym.sym = sym;
yylval.ssym.is_a_field_of_this = is_a_field_of_this;
return BLOCKNAME;
}
+ else if (!sym)
+ { /* See if it's a file name. */
+ struct symtab *symtab;
+
+ symtab = lookup_symtab (tmp);
+
+ if (symtab)
+ {
+ yylval.bval = BLOCKVECTOR_BLOCK (BLOCKVECTOR (symtab), STATIC_BLOCK);
+ return FILENAME;
+ }
+ }
+
if (sym && SYMBOL_CLASS (sym) == LOC_TYPEDEF)
{
#if 1
OpenPOWER on IntegriCloud