From 792abd35a87ae20cabe251f17498bdc85bb9bc65 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Wed, 12 Jul 2000 07:12:56 +0000 Subject: [PATCH] gcc_update (files_and_dependencies): Remove generated YACC files. * gcc_update (files_and_dependencies): Remove generated YACC files. * c-parse.c: Remove. * c-parse.h: Likewise. * c-parse.y: Likewise. * objc/objc-parse.c: Likewise. * objc/objc-pasre.y: Likewise. * Makefile.in ($(PARSE_H)): Depend directly on parse.y. * parse.c: Remove. * parse.h: Likewise. * parse-scan.c: Remove. From-SVN: r34982 --- contrib/ChangeLog | 4 + contrib/gcc_update | 8 - gcc/ChangeLog | 8 + gcc/c-parse.c | 3903 ------------------ gcc/c-parse.h | 69 - gcc/c-parse.y | 2054 ---------- gcc/cp/ChangeLog | 6 + gcc/cp/Makefile.in | 3 +- gcc/cp/parse.c | 8709 ----------------------------------------- gcc/cp/parse.h | 97 - gcc/java/ChangeLog | 4 + gcc/java/parse-scan.c | 2571 ------------ gcc/objc/objc-parse.c | 5102 ------------------------ gcc/objc/objc-parse.y | 2781 ------------- 14 files changed, 23 insertions(+), 25296 deletions(-) delete mode 100644 gcc/c-parse.c delete mode 100644 gcc/c-parse.h delete mode 100644 gcc/c-parse.y delete mode 100644 gcc/cp/parse.c delete mode 100644 gcc/cp/parse.h delete mode 100644 gcc/java/parse-scan.c delete mode 100644 gcc/objc/objc-parse.c delete mode 100644 gcc/objc/objc-parse.y diff --git a/contrib/ChangeLog b/contrib/ChangeLog index 322744364a2..8c5c1c6ae12 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,7 @@ +2000-07-12 Mark Mitchell + + * gcc_update (files_and_dependencies): Remove generated YACC files. + 2000-06-04 Mark Mitchell * newcvsroot: Handle filenames that contain spaces. diff --git a/contrib/gcc_update b/contrib/gcc_update index 111a610e5ea..3e42a78c67e 100755 --- a/contrib/gcc_update +++ b/contrib/gcc_update @@ -65,20 +65,12 @@ texinfo/util/Makefile.in: texinfo/util/Makefile.am texinfo/configure.in texinfo/ gcc/configure: gcc/configure.in gcc/cstamp-h.in: gcc/configure.in gcc/acconfig.h gcc/config.in: gcc/cstamp-h.in -gcc/c-parse.y: gcc/c-parse.in -gcc/c-parse.c: gcc/c-parse.y -gcc/c-parse.h: gcc/c-parse.c gcc/c-gperf.h: gcc/c-parse.gperf gcc/fixinc/fixincl.x: gcc/fixinc/fixincl.tpl gcc/fixinc/inclhack.def gcc/tradcif.c: gcc/tradcif.y # And then, language-specific files -gcc/cp/parse.c: gcc/cp/parse.y -gcc/cp/parse.h: gcc/cp/parse.c -gcc/objc/objc-parse.y: gcc/c-parse.in -gcc/objc/objc-parse.c: gcc/objc/objc-parse.y gcc/java/parse.h: gcc/java/parse.y gcc/java/parse.c: gcc/java/parse.y gcc/java/lex.c gcc/java/parse.h gcc/java/lex.h -gcc/java/parse-scan.c: gcc/java/parse-scan.y gcc/java/lex.c gcc/java/parse.h gcc/java/lex.h # And libraries, at last libchill/configure: libchill/configure.in libf2c/configure: libf2c/configure.in diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b0d42cad7c3..9b6f0dc062e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2000-07-12 Mark Mitchell + + * c-parse.c: Remove. + * c-parse.h: Likewise. + * c-parse.y: Likewise. + * objc/objc-parse.c: Likewise. + * objc/objc-pasre.y: Likewise. + 2000-07-11 Rodney Brown * gcc.texi: Fix minor typos diff --git a/gcc/c-parse.c b/gcc/c-parse.c deleted file mode 100644 index 20e202463b1..00000000000 --- a/gcc/c-parse.c +++ /dev/null @@ -1,3903 +0,0 @@ - -/* A Bison parser, made from c-parse.y - by GNU Bison version 1.28 */ - -#define YYBISON 1 /* Identify Bison output. */ - -#define IDENTIFIER 257 -#define TYPENAME 258 -#define SCSPEC 259 -#define TYPESPEC 260 -#define TYPE_QUAL 261 -#define CONSTANT 262 -#define STRING 263 -#define ELLIPSIS 264 -#define SIZEOF 265 -#define ENUM 266 -#define STRUCT 267 -#define UNION 268 -#define IF 269 -#define ELSE 270 -#define WHILE 271 -#define DO 272 -#define FOR 273 -#define SWITCH 274 -#define CASE 275 -#define DEFAULT 276 -#define BREAK 277 -#define CONTINUE 278 -#define RETURN 279 -#define GOTO 280 -#define ASM_KEYWORD 281 -#define TYPEOF 282 -#define ALIGNOF 283 -#define ATTRIBUTE 284 -#define EXTENSION 285 -#define LABEL 286 -#define REALPART 287 -#define IMAGPART 288 -#define VA_ARG 289 -#define PTR_VALUE 290 -#define PTR_BASE 291 -#define PTR_EXTENT 292 -#define END_OF_LINE 293 -#define ASSIGN 294 -#define OROR 295 -#define ANDAND 296 -#define EQCOMPARE 297 -#define ARITHCOMPARE 298 -#define LSHIFT 299 -#define RSHIFT 300 -#define UNARY 301 -#define PLUSPLUS 302 -#define MINUSMINUS 303 -#define HYPERUNARY 304 -#define POINTSAT 305 -#define INTERFACE 306 -#define IMPLEMENTATION 307 -#define END 308 -#define SELECTOR 309 -#define DEFS 310 -#define ENCODE 311 -#define CLASSNAME 312 -#define PUBLIC 313 -#define PRIVATE 314 -#define PROTECTED 315 -#define PROTOCOL 316 -#define OBJECTNAME 317 -#define CLASS 318 -#define ALIAS 319 -#define OBJC_STRING 320 - -#line 34 "c-parse.y" - -#include "config.h" -#include "system.h" -#include -#include "tree.h" -#include "input.h" -#include "c-lex.h" -#include "c-tree.h" -#include "flags.h" -#include "output.h" -#include "toplev.h" -#include "ggc.h" - -#ifdef MULTIBYTE_CHARS -#include -#endif - - -/* Since parsers are distinct for each language, put the language string - definition here. */ -const char * const language_string = "GNU C"; - -/* Like YYERROR but do call yyerror. */ -#define YYERROR1 { yyerror ("syntax error"); YYERROR; } - -/* Cause the `yydebug' variable to be defined. */ -#define YYDEBUG 1 - -#line 65 "c-parse.y" -typedef union {long itype; tree ttype; enum tree_code code; - const char *filename; int lineno; int ends_in_label; } YYSTYPE; -#line 186 "c-parse.y" - -/* Number of statements (loosely speaking) and compound statements - seen so far. */ -static int stmt_count; -static int compstmt_count; - -/* Input file and line number of the end of the body of last simple_if; - used by the stmt-rule immediately after simple_if returns. */ -static const char *if_stmt_file; -static int if_stmt_line; - -/* List of types and structure classes of the current declaration. */ -static tree current_declspecs = NULL_TREE; -static tree prefix_attributes = NULL_TREE; - -/* Stack of saved values of current_declspecs and prefix_attributes. */ -static tree declspec_stack; - -/* For __extension__, save/restore the warning flags which are - controlled by __extension__. */ -#define SAVE_WARN_FLAGS() \ - size_int (pedantic | (warn_pointer_arith << 1)) -#define RESTORE_WARN_FLAGS(tval) \ - do { \ - int val = tree_low_cst (tval, 0); \ - pedantic = val & 1; \ - warn_pointer_arith = (val >> 1) & 1; \ - } while (0) - - -/* Tell yyparse how to print a token's value, if yydebug is set. */ - -#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL) -extern void yyprint PARAMS ((FILE *, int, YYSTYPE)); - -/* Add GC roots for variables local to this file. */ -void -c_parse_init () -{ - ggc_add_tree_root (&declspec_stack, 1); - ggc_add_tree_root (¤t_declspecs, 1); - ggc_add_tree_root (&prefix_attributes, 1); -} - -#include - -#ifndef __cplusplus -#ifndef __STDC__ -#define const -#endif -#endif - - - -#define YYFINAL 706 -#define YYFLAG -32768 -#define YYNTBASE 89 - -#define YYTRANSLATE(x) ((unsigned)(x) <= 320 ? yytranslate[x] : 247) - -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, 85, 2, 2, 2, 57, 48, 2, 64, - 81, 55, 53, 86, 54, 63, 56, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 43, 82, 2, - 41, 2, 42, 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, - 65, 2, 88, 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, - 2, 2, 87, 46, 83, 84, 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, - 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, 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, 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, 1, 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, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 44, 45, 49, 50, 51, 52, - 58, 59, 60, 61, 62, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80 -}; - -#if YYDEBUG != 0 -static const short yyprhs[] = { 0, - 0, 1, 3, 4, 7, 8, 12, 14, 16, 22, - 25, 29, 34, 39, 42, 45, 48, 51, 53, 54, - 55, 63, 68, 69, 70, 78, 83, 84, 85, 92, - 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, - 116, 117, 119, 121, 125, 127, 130, 133, 136, 139, - 142, 147, 150, 155, 158, 161, 168, 170, 172, 174, - 179, 180, 188, 190, 194, 198, 202, 206, 210, 214, - 218, 222, 226, 230, 234, 238, 239, 244, 245, 250, - 251, 252, 260, 261, 267, 271, 275, 277, 279, 281, - 285, 289, 293, 297, 302, 307, 311, 315, 318, 321, - 323, 326, 327, 329, 332, 336, 338, 340, 343, 346, - 351, 356, 359, 362, 366, 368, 370, 373, 376, 377, - 378, 383, 388, 392, 396, 399, 402, 405, 408, 412, - 413, 416, 419, 422, 425, 429, 430, 433, 436, 438, - 440, 443, 446, 448, 450, 453, 456, 459, 463, 464, - 467, 469, 471, 473, 478, 483, 485, 487, 489, 491, - 495, 497, 501, 502, 507, 508, 515, 519, 520, 527, - 531, 532, 534, 536, 539, 546, 548, 552, 553, 555, - 560, 567, 572, 574, 576, 578, 580, 582, 583, 588, - 590, 591, 594, 596, 600, 604, 607, 608, 613, 615, - 616, 621, 623, 625, 627, 630, 633, 639, 643, 644, - 645, 651, 652, 653, 659, 661, 663, 667, 671, 676, - 680, 684, 688, 690, 694, 699, 704, 708, 712, 716, - 718, 722, 726, 730, 735, 740, 744, 748, 750, 752, - 755, 757, 760, 762, 765, 766, 774, 780, 783, 784, - 792, 798, 801, 802, 811, 812, 820, 823, 824, 826, - 827, 829, 831, 834, 835, 839, 842, 846, 852, 856, - 858, 860, 863, 865, 869, 874, 881, 887, 889, 893, - 895, 897, 901, 904, 907, 908, 910, 912, 915, 916, - 919, 923, 927, 930, 934, 939, 943, 946, 950, 953, - 957, 959, 961, 964, 967, 968, 970, 973, 974, 975, - 977, 979, 982, 986, 988, 991, 993, 995, 1001, 1006, - 1011, 1014, 1017, 1020, 1023, 1028, 1029, 1034, 1035, 1036, - 1040, 1045, 1049, 1051, 1053, 1055, 1057, 1060, 1061, 1066, - 1068, 1072, 1073, 1074, 1082, 1088, 1091, 1092, 1093, 1094, - 1107, 1108, 1115, 1118, 1121, 1124, 1128, 1135, 1144, 1155, - 1168, 1172, 1177, 1179, 1181, 1182, 1189, 1193, 1199, 1202, - 1206, 1207, 1209, 1210, 1212, 1213, 1215, 1217, 1221, 1226, - 1228, 1232, 1233, 1236, 1239, 1240, 1245, 1248, 1249, 1251, - 1253, 1257, 1259, 1263, 1268, 1273, 1278, 1283, 1288, 1289, - 1292, 1294, 1297, 1299, 1303, 1305, 1309 -}; - -static const short yyrhs[] = { -1, - 90, 0, 0, 91, 93, 0, 0, 90, 92, 93, - 0, 95, 0, 94, 0, 27, 64, 104, 81, 82, - 0, 246, 93, 0, 126, 140, 82, 0, 133, 126, - 140, 82, 0, 129, 126, 139, 82, 0, 133, 82, - 0, 129, 82, 0, 1, 82, 0, 1, 83, 0, - 82, 0, 0, 0, 129, 126, 168, 96, 120, 97, - 202, 0, 129, 126, 168, 1, 0, 0, 0, 133, - 126, 171, 98, 120, 99, 202, 0, 133, 126, 171, - 1, 0, 0, 0, 126, 171, 100, 120, 101, 202, - 0, 126, 171, 1, 0, 3, 0, 4, 0, 48, - 0, 54, 0, 53, 0, 59, 0, 60, 0, 84, - 0, 85, 0, 106, 0, 0, 106, 0, 112, 0, - 106, 86, 112, 0, 118, 0, 55, 110, 0, 246, - 110, 0, 103, 110, 0, 45, 102, 0, 108, 107, - 0, 108, 64, 189, 81, 0, 109, 107, 0, 109, - 64, 189, 81, 0, 33, 110, 0, 34, 110, 0, - 35, 64, 112, 86, 189, 81, 0, 11, 0, 29, - 0, 107, 0, 64, 189, 81, 110, 0, 0, 64, - 189, 81, 87, 111, 154, 83, 0, 110, 0, 112, - 53, 112, 0, 112, 54, 112, 0, 112, 55, 112, - 0, 112, 56, 112, 0, 112, 57, 112, 0, 112, - 51, 112, 0, 112, 52, 112, 0, 112, 50, 112, - 0, 112, 49, 112, 0, 112, 48, 112, 0, 112, - 46, 112, 0, 112, 47, 112, 0, 0, 112, 45, - 113, 112, 0, 0, 112, 44, 114, 112, 0, 0, - 0, 112, 42, 115, 104, 43, 116, 112, 0, 0, - 112, 42, 117, 43, 112, 0, 112, 41, 112, 0, - 112, 40, 112, 0, 3, 0, 8, 0, 119, 0, - 64, 104, 81, 0, 64, 1, 81, 0, 205, 204, - 81, 0, 205, 1, 81, 0, 118, 64, 105, 81, - 0, 118, 65, 104, 88, 0, 118, 63, 102, 0, - 118, 62, 102, 0, 118, 59, 0, 118, 60, 0, - 9, 0, 119, 9, 0, 0, 122, 0, 122, 10, - 0, 211, 212, 123, 0, 121, 0, 197, 0, 122, - 121, 0, 121, 197, 0, 131, 126, 139, 82, 0, - 134, 126, 140, 82, 0, 131, 82, 0, 134, 82, - 0, 211, 212, 128, 0, 124, 0, 197, 0, 125, - 124, 0, 124, 197, 0, 0, 0, 129, 126, 139, - 82, 0, 133, 126, 140, 82, 0, 129, 126, 162, - 0, 133, 126, 165, 0, 129, 82, 0, 133, 82, - 0, 246, 128, 0, 137, 130, 0, 133, 137, 130, - 0, 0, 130, 138, 0, 130, 5, 0, 130, 147, - 0, 137, 132, 0, 134, 137, 132, 0, 0, 132, - 138, 0, 132, 5, 0, 134, 0, 147, 0, 133, - 134, 0, 133, 147, 0, 7, 0, 5, 0, 134, - 7, 0, 134, 5, 0, 137, 136, 0, 191, 137, - 136, 0, 0, 136, 138, 0, 6, 0, 175, 0, - 4, 0, 28, 64, 104, 81, 0, 28, 64, 189, - 81, 0, 6, 0, 7, 0, 175, 0, 142, 0, - 139, 86, 142, 0, 144, 0, 140, 86, 142, 0, - 0, 27, 64, 119, 81, 0, 0, 168, 141, 146, - 41, 143, 152, 0, 168, 141, 146, 0, 0, 171, - 141, 146, 41, 145, 152, 0, 171, 141, 146, 0, - 0, 147, 0, 148, 0, 147, 148, 0, 30, 64, - 64, 149, 81, 81, 0, 150, 0, 149, 86, 150, - 0, 0, 151, 0, 151, 64, 3, 81, 0, 151, - 64, 3, 86, 106, 81, 0, 151, 64, 105, 81, - 0, 102, 0, 5, 0, 6, 0, 7, 0, 112, - 0, 0, 87, 153, 154, 83, 0, 1, 0, 0, - 155, 180, 0, 156, 0, 155, 86, 156, 0, 160, - 41, 158, 0, 161, 158, 0, 0, 102, 43, 157, - 158, 0, 158, 0, 0, 87, 159, 154, 83, 0, - 112, 0, 1, 0, 161, 0, 160, 161, 0, 63, - 102, 0, 65, 112, 10, 112, 88, 0, 65, 112, - 88, 0, 0, 0, 168, 163, 120, 164, 206, 0, - 0, 0, 171, 166, 120, 167, 206, 0, 169, 0, - 171, 0, 64, 169, 81, 0, 169, 64, 241, 0, - 169, 65, 104, 88, 0, 169, 65, 88, 0, 55, - 192, 169, 0, 147, 127, 169, 0, 4, 0, 170, - 64, 241, 0, 170, 65, 55, 88, 0, 170, 65, - 104, 88, 0, 170, 65, 88, 0, 55, 192, 170, - 0, 147, 127, 170, 0, 4, 0, 171, 64, 241, - 0, 64, 171, 81, 0, 55, 192, 171, 0, 171, - 65, 55, 88, 0, 171, 65, 104, 88, 0, 171, - 65, 88, 0, 147, 127, 171, 0, 3, 0, 13, - 0, 13, 147, 0, 14, 0, 14, 147, 0, 12, - 0, 12, 147, 0, 0, 172, 102, 87, 176, 182, - 83, 146, 0, 172, 87, 182, 83, 146, 0, 172, - 102, 0, 0, 173, 102, 87, 177, 182, 83, 146, - 0, 173, 87, 182, 83, 146, 0, 173, 102, 0, - 0, 174, 102, 87, 178, 187, 181, 83, 146, 0, - 0, 174, 87, 179, 187, 181, 83, 146, 0, 174, - 102, 0, 0, 86, 0, 0, 86, 0, 183, 0, - 183, 184, 0, 0, 183, 184, 82, 0, 183, 82, - 0, 135, 126, 185, 0, 135, 126, 211, 212, 146, - 0, 191, 126, 185, 0, 191, 0, 1, 0, 246, - 184, 0, 186, 0, 185, 86, 186, 0, 211, 212, - 168, 146, 0, 211, 212, 168, 43, 112, 146, 0, - 211, 212, 43, 112, 146, 0, 188, 0, 187, 86, - 188, 0, 1, 0, 102, 0, 102, 41, 112, 0, - 135, 190, 0, 191, 190, 0, 0, 193, 0, 7, - 0, 191, 7, 0, 0, 192, 7, 0, 64, 193, - 81, 0, 55, 192, 193, 0, 55, 192, 0, 193, - 64, 234, 0, 193, 65, 104, 88, 0, 193, 65, - 88, 0, 64, 234, 0, 65, 104, 88, 0, 65, - 88, 0, 147, 127, 193, 0, 195, 0, 214, 0, - 195, 214, 0, 195, 197, 0, 0, 194, 0, 1, - 82, 0, 0, 0, 200, 0, 201, 0, 200, 201, - 0, 32, 245, 82, 0, 206, 0, 1, 206, 0, - 87, 0, 83, 0, 198, 199, 125, 196, 83, 0, - 198, 199, 1, 83, 0, 198, 199, 194, 83, 0, - 64, 87, 0, 203, 204, 0, 208, 213, 0, 208, - 1, 0, 15, 64, 104, 81, 0, 0, 18, 210, - 213, 17, 0, 0, 0, 211, 212, 216, 0, 211, - 212, 227, 213, 0, 211, 212, 215, 0, 216, 0, - 227, 0, 206, 0, 224, 0, 104, 82, 0, 0, - 207, 16, 217, 213, 0, 207, 0, 207, 16, 1, - 0, 0, 0, 17, 218, 64, 104, 81, 219, 213, - 0, 209, 64, 104, 81, 82, 0, 209, 1, 0, - 0, 0, 0, 19, 64, 229, 82, 220, 229, 82, - 221, 229, 81, 222, 213, 0, 0, 20, 64, 104, - 81, 223, 213, 0, 23, 82, 0, 24, 82, 0, - 25, 82, 0, 25, 104, 82, 0, 27, 228, 64, - 104, 81, 82, 0, 27, 228, 64, 104, 43, 230, - 81, 82, 0, 27, 228, 64, 104, 43, 230, 43, - 230, 81, 82, 0, 27, 228, 64, 104, 43, 230, - 43, 230, 43, 233, 81, 82, 0, 26, 102, 82, - 0, 26, 55, 104, 82, 0, 82, 0, 225, 0, - 0, 19, 64, 118, 81, 226, 213, 0, 21, 112, - 43, 0, 21, 112, 10, 112, 43, 0, 22, 43, - 0, 102, 43, 146, 0, 0, 7, 0, 0, 104, - 0, 0, 231, 0, 232, 0, 231, 86, 232, 0, - 9, 64, 104, 81, 0, 119, 0, 233, 86, 119, - 0, 0, 235, 236, 0, 238, 81, 0, 0, 239, - 82, 237, 236, 0, 1, 81, 0, 0, 10, 0, - 239, 0, 239, 86, 10, 0, 240, 0, 239, 86, - 240, 0, 129, 126, 170, 146, 0, 129, 126, 171, - 146, 0, 129, 126, 190, 146, 0, 133, 126, 171, - 146, 0, 133, 126, 190, 146, 0, 0, 242, 243, - 0, 236, 0, 244, 81, 0, 3, 0, 244, 86, - 3, 0, 102, 0, 245, 86, 102, 0, 31, 0 -}; - -#endif - -#if YYDEBUG != 0 -static const short yyrline[] = { 0, - 233, 238, 252, 254, 254, 255, 257, 259, 260, 268, - 272, 282, 286, 290, 292, 294, 295, 296, 301, 308, - 310, 314, 318, 324, 326, 330, 334, 340, 342, 346, - 352, 354, 357, 359, 361, 363, 365, 367, 369, 373, - 377, 380, 383, 386, 390, 392, 395, 398, 402, 430, - 436, 439, 442, 445, 447, 449, 453, 457, 461, 463, - 466, 470, 497, 499, 501, 503, 505, 507, 509, 511, - 513, 515, 517, 519, 521, 523, 527, 529, 533, 535, - 538, 542, 544, 551, 554, 562, 573, 580, 581, 583, - 589, 591, 614, 623, 625, 627, 631, 637, 639, 644, - 646, 654, 656, 657, 667, 672, 674, 675, 676, 683, - 688, 692, 695, 703, 708, 710, 711, 712, 719, 729, - 733, 738, 742, 746, 750, 752, 754, 763, 766, 770, - 772, 774, 779, 783, 786, 790, 793, 795, 807, 810, - 812, 814, 818, 822, 824, 827, 840, 843, 847, 849, - 857, 858, 859, 863, 865, 871, 872, 873, 876, 878, - 881, 883, 886, 889, 895, 902, 904, 911, 918, 921, - 928, 931, 935, 938, 942, 947, 950, 954, 957, 959, - 961, 963, 970, 972, 973, 974, 979, 981, 983, 985, - 990, 994, 997, 999, 1004, 1006, 1007, 1010, 1010, 1013, - 1016, 1018, 1020, 1023, 1025, 1028, 1034, 1036, 1040, 1054, - 1062, 1066, 1080, 1088, 1095, 1097, 1102, 1105, 1110, 1112, - 1114, 1121, 1123, 1131, 1137, 1142, 1144, 1146, 1153, 1155, - 1161, 1167, 1169, 1171, 1176, 1178, 1185, 1187, 1190, 1193, - 1197, 1200, 1204, 1207, 1211, 1216, 1218, 1222, 1224, 1226, - 1228, 1232, 1234, 1236, 1239, 1241, 1244, 1248, 1250, 1253, - 1255, 1260, 1263, 1268, 1270, 1272, 1286, 1292, 1305, 1310, - 1315, 1317, 1322, 1324, 1328, 1332, 1336, 1346, 1348, 1353, - 1358, 1361, 1365, 1368, 1372, 1375, 1378, 1381, 1385, 1388, - 1392, 1396, 1398, 1400, 1402, 1404, 1406, 1408, 1410, 1414, - 1422, 1430, 1432, 1434, 1438, 1440, 1443, 1446, 1456, 1458, - 1463, 1465, 1468, 1482, 1485, 1488, 1490, 1492, 1496, 1500, - 1506, 1524, 1529, 1534, 1537, 1551, 1560, 1564, 1568, 1572, - 1578, 1582, 1587, 1590, 1595, 1598, 1599, 1615, 1620, 1623, - 1635, 1637, 1647, 1657, 1658, 1665, 1667, 1679, 1683, 1697, - 1703, 1709, 1710, 1714, 1718, 1722, 1726, 1737, 1744, 1751, - 1758, 1769, 1775, 1778, 1783, 1806, 1836, 1842, 1848, 1854, - 1868, 1872, 1876, 1879, 1884, 1886, 1889, 1891, 1895, 1900, - 1903, 1909, 1914, 1919, 1921, 1930, 1931, 1937, 1939, 1949, - 1951, 1955, 1958, 1964, 1973, 1981, 1989, 1998, 2011, 2016, - 2021, 2023, 2032, 2035, 2040, 2043, 2047 -}; -#endif - - -#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) - -static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER", -"TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF", -"ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT", -"BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE", -"EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","PTR_VALUE","PTR_BASE","PTR_EXTENT", -"END_OF_LINE","ASSIGN","'='","'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE", -"ARITHCOMPARE","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS", -"MINUSMINUS","HYPERUNARY","POINTSAT","'.'","'('","'['","INTERFACE","IMPLEMENTATION", -"END","SELECTOR","DEFS","ENCODE","CLASSNAME","PUBLIC","PRIVATE","PROTECTED", -"PROTOCOL","OBJECTNAME","CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'", -"'!'","','","'{'","']'","program","extdefs","@1","@2","extdef","datadef","fndef", -"@3","@4","@5","@6","@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist", -"unary_expr","sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11", -"@12","@13","@14","primary","string","old_style_parm_decls","lineno_datadecl", -"datadecls","datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs", -"reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr", -"declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals", -"typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm", -"initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute", -"attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1", -"initelt","@18","initval","@19","designator_list","designator","nested_function", -"@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator", -"parm_declarator","notype_declarator","struct_head","union_head","enum_head", -"structsp","@24","@25","@26","@27","maybecomma","maybecomma_warn","component_decl_list", -"component_decl_list2","component_decl","components","component_declarator", -"enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals", -"absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls", -"label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt_nostart", -"compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start", -"@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label", -"stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt", -"all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands", -"nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1", -"@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1", -"identifiers","identifiers_or_typenames","extension", NULL -}; -#endif - -static const short yyr1[] = { 0, - 89, 89, 91, 90, 92, 90, 93, 93, 93, 93, - 94, 94, 94, 94, 94, 94, 94, 94, 96, 97, - 95, 95, 98, 99, 95, 95, 100, 101, 95, 95, - 102, 102, 103, 103, 103, 103, 103, 103, 103, 104, - 105, 105, 106, 106, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 108, 109, 110, 110, - 111, 110, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 113, 112, 114, 112, 115, - 116, 112, 117, 112, 112, 112, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 119, - 119, 120, 120, 120, 121, 122, 122, 122, 122, 123, - 123, 123, 123, 124, 125, 125, 125, 125, 126, 127, - 128, 128, 128, 128, 128, 128, 128, 129, 129, 130, - 130, 130, 130, 131, 131, 132, 132, 132, 133, 133, - 133, 133, 134, 134, 134, 134, 135, 135, 136, 136, - 137, 137, 137, 137, 137, 138, 138, 138, 139, 139, - 140, 140, 141, 141, 143, 142, 142, 145, 144, 144, - 146, 146, 147, 147, 148, 149, 149, 150, 150, 150, - 150, 150, 151, 151, 151, 151, 152, 153, 152, 152, - 154, 154, 155, 155, 156, 156, 157, 156, 156, 159, - 158, 158, 158, 160, 160, 161, 161, 161, 163, 164, - 162, 166, 167, 165, 168, 168, 169, 169, 169, 169, - 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, - 171, 171, 171, 171, 171, 171, 171, 171, 172, 172, - 173, 173, 174, 174, 176, 175, 175, 175, 177, 175, - 175, 175, 178, 175, 179, 175, 175, 180, 180, 181, - 181, 182, 182, 183, 183, 183, 184, 184, 184, 184, - 184, 184, 185, 185, 186, 186, 186, 187, 187, 187, - 188, 188, 189, 189, 190, 190, 191, 191, 192, 192, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 194, 195, 195, 195, 196, 196, 197, 198, 199, 199, - 200, 200, 201, 202, 202, 203, 204, 204, 204, 204, - 205, 206, 207, 207, 208, 210, 209, 211, 212, 213, - 213, 214, 215, 215, 216, 216, 216, 217, 216, 216, - 216, 218, 219, 216, 216, 216, 220, 221, 222, 216, - 223, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 224, 226, 225, 227, 227, 227, 227, - 228, 228, 229, 229, 230, 230, 231, 231, 232, 233, - 233, 235, 234, 236, 237, 236, 236, 238, 238, 238, - 238, 239, 239, 240, 240, 240, 240, 240, 242, 241, - 243, 243, 244, 244, 245, 245, 246 -}; - -static const short yyr2[] = { 0, - 0, 1, 0, 2, 0, 3, 1, 1, 5, 2, - 3, 4, 4, 2, 2, 2, 2, 1, 0, 0, - 7, 4, 0, 0, 7, 4, 0, 0, 6, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 3, 1, 2, 2, 2, 2, 2, - 4, 2, 4, 2, 2, 6, 1, 1, 1, 4, - 0, 7, 1, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 0, 4, 0, 4, 0, - 0, 7, 0, 5, 3, 3, 1, 1, 1, 3, - 3, 3, 3, 4, 4, 3, 3, 2, 2, 1, - 2, 0, 1, 2, 3, 1, 1, 2, 2, 4, - 4, 2, 2, 3, 1, 1, 2, 2, 0, 0, - 4, 4, 3, 3, 2, 2, 2, 2, 3, 0, - 2, 2, 2, 2, 3, 0, 2, 2, 1, 1, - 2, 2, 1, 1, 2, 2, 2, 3, 0, 2, - 1, 1, 1, 4, 4, 1, 1, 1, 1, 3, - 1, 3, 0, 4, 0, 6, 3, 0, 6, 3, - 0, 1, 1, 2, 6, 1, 3, 0, 1, 4, - 6, 4, 1, 1, 1, 1, 1, 0, 4, 1, - 0, 2, 1, 3, 3, 2, 0, 4, 1, 0, - 4, 1, 1, 1, 2, 2, 5, 3, 0, 0, - 5, 0, 0, 5, 1, 1, 3, 3, 4, 3, - 3, 3, 1, 3, 4, 4, 3, 3, 3, 1, - 3, 3, 3, 4, 4, 3, 3, 1, 1, 2, - 1, 2, 1, 2, 0, 7, 5, 2, 0, 7, - 5, 2, 0, 8, 0, 7, 2, 0, 1, 0, - 1, 1, 2, 0, 3, 2, 3, 5, 3, 1, - 1, 2, 1, 3, 4, 6, 5, 1, 3, 1, - 1, 3, 2, 2, 0, 1, 1, 2, 0, 2, - 3, 3, 2, 3, 4, 3, 2, 3, 2, 3, - 1, 1, 2, 2, 0, 1, 2, 0, 0, 1, - 1, 2, 3, 1, 2, 1, 1, 5, 4, 4, - 2, 2, 2, 2, 4, 0, 4, 0, 0, 3, - 4, 3, 1, 1, 1, 1, 2, 0, 4, 1, - 3, 0, 0, 7, 5, 2, 0, 0, 0, 12, - 0, 6, 2, 2, 2, 3, 6, 8, 10, 12, - 3, 4, 1, 1, 0, 6, 3, 5, 2, 3, - 0, 1, 0, 1, 0, 1, 1, 3, 4, 1, - 3, 0, 2, 2, 0, 4, 2, 0, 1, 1, - 3, 1, 3, 4, 4, 4, 4, 4, 0, 2, - 1, 2, 1, 3, 1, 3, 1 -}; - -static const short yydefact[] = { 3, - 5, 0, 0, 0, 153, 144, 151, 143, 243, 239, - 241, 0, 0, 0, 407, 18, 4, 8, 7, 0, - 119, 119, 139, 130, 140, 173, 0, 0, 0, 152, - 0, 6, 16, 17, 244, 240, 242, 0, 0, 0, - 238, 289, 0, 0, 161, 120, 0, 15, 0, 14, - 0, 141, 130, 142, 146, 145, 128, 174, 31, 32, - 264, 248, 264, 252, 255, 257, 10, 87, 88, 100, - 57, 58, 0, 0, 0, 0, 33, 35, 34, 0, - 36, 37, 0, 38, 39, 0, 0, 40, 59, 0, - 0, 63, 43, 45, 89, 0, 0, 287, 0, 285, - 149, 0, 285, 178, 0, 0, 11, 0, 0, 30, - 0, 399, 0, 0, 171, 223, 289, 0, 0, 159, - 120, 0, 215, 216, 0, 0, 129, 132, 156, 157, - 131, 133, 158, 0, 0, 245, 0, 249, 0, 253, - 54, 55, 0, 49, 46, 0, 321, 0, 0, 48, - 0, 0, 0, 50, 0, 52, 0, 0, 80, 78, - 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 98, 99, 0, 0, 41, 0, 101, - 0, 317, 309, 0, 47, 154, 289, 382, 0, 120, - 283, 286, 147, 155, 288, 149, 284, 184, 185, 186, - 183, 0, 176, 179, 290, 233, 232, 162, 163, 237, - 0, 231, 0, 0, 236, 0, 0, 28, 0, 328, - 107, 329, 170, 172, 0, 0, 13, 0, 0, 22, - 0, 171, 399, 0, 12, 26, 0, 171, 271, 266, - 119, 263, 119, 0, 264, 171, 264, 280, 281, 260, - 278, 0, 0, 91, 90, 0, 9, 44, 0, 0, - 86, 85, 0, 0, 0, 0, 74, 75, 73, 72, - 71, 69, 70, 64, 65, 66, 67, 68, 97, 96, - 0, 42, 0, 93, 0, 0, 310, 311, 92, 293, - 0, 297, 0, 299, 0, 0, 382, 0, 150, 148, - 0, 178, 41, 0, 0, 403, 389, 119, 119, 401, - 0, 390, 392, 400, 0, 234, 235, 307, 0, 109, - 104, 108, 0, 168, 221, 217, 160, 222, 20, 167, - 218, 220, 0, 24, 247, 328, 265, 328, 272, 0, - 251, 0, 0, 261, 0, 260, 0, 61, 60, 51, - 53, 0, 0, 79, 77, 94, 95, 405, 0, 0, - 0, 328, 0, 0, 116, 329, 302, 312, 292, 291, - 383, 298, 300, 294, 296, 0, 175, 177, 87, 0, - 164, 387, 285, 285, 384, 385, 0, 402, 0, 0, - 316, 29, 308, 314, 105, 119, 119, 136, 0, 0, - 165, 219, 0, 267, 273, 329, 269, 329, 171, 171, - 282, 279, 171, 0, 0, 0, 81, 84, 313, 0, - 319, 118, 117, 306, 0, 320, 304, 329, 303, 0, - 295, 180, 0, 182, 230, 289, 382, 120, 171, 171, - 171, 289, 120, 171, 171, 0, 391, 393, 404, 315, - 322, 112, 0, 113, 0, 136, 134, 190, 188, 187, - 169, 21, 0, 25, 328, 171, 0, 246, 250, 256, - 171, 56, 203, 87, 0, 0, 200, 0, 202, 0, - 258, 193, 199, 0, 0, 0, 406, 318, 0, 153, - 0, 342, 326, 0, 0, 0, 0, 0, 0, 0, - 0, 371, 363, 0, 0, 114, 119, 119, 335, 340, - 0, 0, 332, 333, 336, 364, 334, 0, 0, 293, - 0, 399, 0, 394, 395, 396, 293, 0, 397, 398, - 386, 0, 0, 163, 135, 138, 137, 0, 166, 274, - 0, 268, 120, 171, 254, 206, 0, 0, 197, 62, - 0, 192, 0, 205, 196, 82, 0, 0, 328, 373, - 0, 0, 369, 353, 354, 355, 0, 0, 0, 372, - 0, 171, 337, 125, 0, 126, 0, 0, 324, 329, - 323, 346, 0, 127, 181, 228, 229, 224, 0, 227, - 0, 110, 111, 0, 171, 0, 275, 0, 208, 0, - 0, 194, 195, 0, 0, 0, 374, 45, 0, 0, - 0, 367, 356, 0, 361, 0, 370, 0, 123, 209, - 0, 124, 212, 341, 328, 0, 0, 225, 226, 189, - 277, 171, 0, 201, 198, 325, 0, 327, 365, 347, - 351, 0, 362, 0, 121, 0, 122, 0, 339, 330, - 328, 0, 276, 207, 343, 328, 373, 328, 368, 375, - 0, 210, 213, 331, 345, 328, 366, 0, 352, 0, - 0, 376, 377, 357, 0, 0, 344, 348, 0, 375, - 0, 0, 211, 214, 373, 0, 0, 358, 378, 0, - 379, 0, 0, 349, 380, 0, 359, 328, 0, 0, - 350, 360, 381, 0, 0, 0 -}; - -static const short yydefgoto[] = { 704, - 1, 2, 3, 17, 18, 19, 231, 400, 237, 403, - 114, 319, 478, 86, 148, 281, 88, 89, 90, 91, - 92, 416, 93, 266, 265, 263, 486, 264, 94, 95, - 218, 219, 220, 395, 361, 362, 20, 229, 506, 308, - 57, 396, 457, 309, 23, 100, 193, 24, 131, 119, - 44, 115, 120, 463, 45, 399, 223, 224, 26, 202, - 203, 204, 461, 538, 480, 481, 482, 601, 483, 548, - 484, 485, 619, 646, 675, 622, 648, 676, 209, 123, - 439, 124, 27, 28, 29, 30, 245, 247, 252, 139, - 552, 345, 134, 135, 242, 404, 405, 250, 251, 102, - 191, 103, 105, 192, 363, 364, 425, 221, 183, 286, - 287, 288, 392, 393, 184, 96, 394, 510, 511, 512, - 559, 580, 323, 581, 367, 513, 514, 625, 558, 666, - 657, 685, 698, 658, 515, 516, 656, 517, 571, 609, - 671, 672, 673, 696, 292, 293, 310, 446, 311, 312, - 313, 212, 213, 314, 315, 359, 97 -}; - -static const short yypact[] = { 60, - 74, 2478, 2478, 206,-32768,-32768,-32768,-32768, 53, 53, - 53, 56, 64, 70,-32768,-32768,-32768,-32768,-32768, 66, - 21, 483, 244,-32768, 53,-32768, 59, 73, 85,-32768, - 2478,-32768,-32768,-32768, 53, 53, 53, 2279, 2200, 81, --32768,-32768, 66, 215,-32768, 53, 608,-32768, 461,-32768, - 66, 244,-32768, 53,-32768,-32768, 1057,-32768,-32768,-32768, --32768, 27,-32768, 77,-32768, 95,-32768,-32768,-32768,-32768, --32768,-32768, 2279, 2279, 127, 392,-32768,-32768,-32768, 2279, --32768,-32768, 1222,-32768,-32768, 2279, 116, 120,-32768, 2337, - 2375,-32768, 2542, 827, 203, 713, 2279,-32768, 139, 238, --32768, 193, 1137, 569, 403, 213,-32768, 461, 66,-32768, - 180,-32768, 1573, 321, 53,-32768,-32768, 461, 222,-32768, - 53, 1560, 339, 377, 271, 1530, 1057,-32768,-32768,-32768, --32768, 53,-32768, 170, 387,-32768, 212,-32768, 410,-32768, --32768,-32768, 2279,-32768,-32768, 195,-32768, 225, 228,-32768, - 247, 2279, 1222,-32768, 1222,-32768, 2279, 2279, 293,-32768, --32768, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, - 2279, 2279, 2279,-32768,-32768, 392, 392, 2279, 2279,-32768, - 250,-32768, 319, 278,-32768,-32768,-32768, 238, 1640, 53, --32768, 395, 544,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 129,-32768, 297,-32768, 377,-32768,-32768, 337, 377, - 358,-32768, 778, 1678,-32768, 284, 303,-32768, 233, 57, --32768,-32768, 349, 53, 891, 249,-32768, 461, 461,-32768, - 321, 53,-32768, 1736,-32768,-32768, 321, 53,-32768,-32768, --32768, 305, 172, 857,-32768, 53,-32768,-32768, 379, 336, --32768, 410, 2499,-32768,-32768, 2079,-32768, 2542, 369, 382, - 2542, 2542, 2279, 386, 2279, 2279, 2553, 2167, 1456, 1664, - 1392, 589, 589, 288, 288,-32768,-32768,-32768,-32768,-32768, - 390, 120, 398,-32768, 392, 905, 319,-32768,-32768, 72, - 259,-32768, 967,-32768, 406, 238,-32768, 1774,-32768, 544, - 419, 569, 2416, 50, 424,-32768,-32768,-32768, 1112,-32768, - 425, 316,-32768,-32768, 140,-32768,-32768,-32768, 46,-32768, --32768,-32768, 1534,-32768, 339,-32768,-32768, 339,-32768, 457, --32768,-32768, 426,-32768,-32768,-32768,-32768,-32768,-32768, 429, --32768, 435, 2279, 392, 441, 336, 1585,-32768,-32768,-32768, --32768, 464, 2279, 1799, 2303,-32768,-32768,-32768, 323, 374, - 820, 444, 448, 990,-32768,-32768,-32768,-32768, 395,-32768, --32768,-32768, 395,-32768,-32768, 465,-32768,-32768, 155, 455, --32768,-32768, 282, 158,-32768,-32768, 1027,-32768, 552, 473, --32768,-32768, 478,-32768,-32768, 480, 1054,-32768, 1431, 46, --32768,-32768, 46, 482,-32768,-32768, 482,-32768, 53, 53, - 2542,-32768, 53, 486, 496, 1260,-32768, 1704,-32768, 392, --32768,-32768,-32768,-32768, 498,-32768,-32768,-32768,-32768, 1956, --32768,-32768, 2279,-32768,-32768,-32768, 158, 53, 205, 235, - 53,-32768, 53, 235, 53, 967,-32768,-32768,-32768,-32768, --32768,-32768, 461,-32768, 66,-32768, 698,-32768,-32768, 2542, --32768,-32768, 1431,-32768,-32768, 536, 536,-32768,-32768,-32768, - 53,-32768,-32768, 542, 392, 2279,-32768, 549, 2542, 501, - 507,-32768,-32768, 167, 1366, 2279,-32768,-32768, 2041, 554, - 535,-32768,-32768, 537, 538, 2279, 564, 529, 534, 2238, - 104, 610,-32768, 575, 546,-32768, 550, 672,-32768, 615, - 1075, 84,-32768,-32768,-32768,-32768,-32768, 2141, 177, 277, - 282,-32768, 1832,-32768,-32768,-32768, 541, 158,-32768,-32768, --32768, 346, 348, 163, 698,-32768,-32768, 1260,-32768,-32768, - 2279,-32768, 67, 175,-32768,-32768, 613, 1260,-32768,-32768, - 1325,-32768, 1469,-32768,-32768, 1704, 2279, 570,-32768, 2279, - 2279, 1896,-32768,-32768,-32768,-32768, 551, 2279, 558,-32768, - 584, 53,-32768,-32768, 461,-32768, 66, 1160,-32768,-32768, --32768,-32768, 2279,-32768,-32768, 417, 417,-32768, 1870,-32768, - 562,-32768,-32768, 588, 1977, 2279,-32768, 2279,-32768, 592, - 1469,-32768,-32768, 571, 2279, 663,-32768, 1237, 599, 601, - 2279,-32768,-32768, 606,-32768, 2279,-32768, 357,-32768, 733, - 362,-32768, 522,-32768,-32768, 2041, 602,-32768,-32768,-32768, --32768, 1977, 2470,-32768,-32768,-32768, 611,-32768,-32768,-32768, --32768, 2521,-32768, 37,-32768, 321,-32768, 321,-32768,-32768, --32768, 607,-32768,-32768,-32768,-32768, 2279,-32768,-32768, 682, - 616,-32768,-32768,-32768,-32768,-32768,-32768, 617,-32768, 629, - 43, 620,-32768,-32768, 473, 473,-32768,-32768, 2279, 682, - 626, 682,-32768,-32768, 2279, 628, 96,-32768,-32768, 632, --32768, 358, 633,-32768, 203, 186,-32768,-32768, 641, 358, --32768,-32768, 203, 750, 751,-32768 -}; - -static const short yypgoto[] = {-32768, --32768,-32768,-32768, 63,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, -23,-32768, -38, 450, -137, 384,-32768,-32768, - -57,-32768, 211,-32768,-32768,-32768,-32768,-32768, 196, -199, - -193, 545,-32768,-32768, 393,-32768, 30, -3, 251, 17, - 717,-32768, 315, 24, -4, -89, 579, 39, -165, -417, - -43, -100, -59,-32768,-32768,-32768, 185, 62, -22,-32768, - 474,-32768, 324,-32768, -345,-32768, 227,-32768, -428,-32768, --32768, 302,-32768,-32768,-32768,-32768,-32768,-32768, -42, -73, - -37, -18,-32768,-32768,-32768, 11,-32768,-32768,-32768,-32768, --32768, 443, -28,-32768, 555, 456, 328, 553, 458, -49, - -66, -81, -86, -48, 439,-32768,-32768, -163,-32768,-32768, --32768, 516, -305,-32768, 411,-32768, -360,-32768,-32768,-32768, --32768, -105, -316, -442, 446,-32768, 187,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 188,-32768, -510, - 131,-32768, 134,-32768, 521,-32768, -251,-32768,-32768,-32768, - 433, -212,-32768,-32768,-32768,-32768, 8 -}; - - -#define YYLAST 2610 - - -static const short yytable[] = { 87, - 99, 47, 58, 62, 64, 66, 122, 125, 222, 31, - 31, 304, 58, 58, 58, 141, 142, 52, 21, 21, - 331, 232, 145, 58, 106, 22, 22, 299, 150, 450, - 225, 58, 126, 149, 137, 532, 197, 329, 31, 185, - 282, 371, 109, 334, 226, 241, 390, 21, 208, 430, - 49, 51, 144, 243, 22, 320, 555, -103, 180, -1, - 53, 59, 60, 25, 25, 32, 321, 133, 41, 509, - 35, 36, 37, -2, 216, 59, 60, 101, 205, 660, - 201, 46, 14, 54, 582, 680, 206, 59, 60, 466, - 210, 467, 25, 67, 462, 14, 14, 464, 58, 106, - 290, 14, 48, 259, 46, 260, 59, 60, 232, 58, - 121, 489, 46, 136, 222, 249, 606, 661, 132, 38, - 42, 101, 365, 681, 603, 222, 187, 39, 509, 43, - 381, 222, 391, 40, 299, 188, 189, 133, 692, 291, - 283, 196, 244, -103, 104, 61, 668, 583, -172, -172, - 295, 325, 279, 280, 241, 328, 145, 618, 568, 63, - 41, 190, 243, 138, 190, 282, 46, 58, 327, 121, - 46, 65, 635, 101, 690, 5, 693, 7, 195, 121, - 366, 140, 649, 9, 10, 11, 296, 14, 132, 111, - 143, 101, 594, 101, 531, 333, 151, 422, 349, 13, - 427, 58, 600, 133, 14, 152, 206, 553, 664, 301, - 210, 180, 442, 667, 302, 669, 340, 596, 342, 186, - 388, 437, 189, 677, 352, 389, 112, 113, 249, 475, - 406, 476, 408, 217, 14, 432, -106, -106, -106, -106, - 433, 369, -106, 211, -106, -106, -106, 373, 55, 190, - 56, 244, 238, -270, -270, 701, 366, 585, 428, 376, - -106, 358, 152, 626, 14, 509, 699, 14, 522, 523, - 336, 700, 338, 194, 25, 254, 112, 113, 201, 41, - 435, 196, 101, 205, 41, 435, 121, 33, 34, 121, - 121, 537, 187, 207, 246, 519, 107, 415, 112, 113, - 108, 188, 189, 227, 52, 255, 14, 228, 256, 588, - 133, 14, 233, 234, 683, 684, 441, 445, 397, -106, - 249, 217, 297, 298, -328, -328, -328, -328, 257, 326, - 284, 436, -328, -328, -328, -83, 436, 383, 384, 370, - 437, 189, 171, 172, 173, 437, 189, 53, -328, 520, - 285, 190, 235, 253, 25, 527, 108, 190, 289, 408, - 303, 398, 258, 111, 440, 444, 70, 261, 262, 537, - 54, 317, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 318, 101, 337, 239, 291, 324, - 5, 505, 7, 98, 59, 60, 487, 386, 9, 10, - 11, 387, 233, 234, 419, 41, 504, -102, 420, 205, - 248, 533, 59, 60, 13, 58, 330, 15, 106, 343, - 58, 344, 335, 544, 544, 453, 455, 592, 353, 593, - 341, 228, 14, 108, 521, 456, 534, 518, 645, 528, - 112, 113, 228, 647, 438, 443, 507, 108, 25, 350, - 505, 546, 662, 508, 663, 318, 421, 42, 297, 298, - 185, 567, 351, 41, 116, 504, 43, 133, 240, -262, - 356, 369, 373, 154, 156, 354, 355, 569, 369, 373, - 522, 523, 586, 587, 591, 357, 5, 6, 7, 8, - 14, 25, 695, 372, 9, 10, 11, 401, 443, 377, - 703, 206, 210, 52, 382, 385, 417, 25, 206, 210, - 13, 409, 14, 402, 121, 117, 46, 410, 604, 232, - 58, 607, 610, 413, 118, 518, -305, 543, 121, 614, - 426, 145, 620, 621, 507, 434, 575, 577, 41, 116, - 222, 508, 222, 41, 627, 133, 53, 205, 111, 129, - 130, -163, 431, 411, 449, 9, 10, 11, 623, 391, - 182, 452, -163, 418, 50, 14, 637, 465, 471, 54, - 14, 59, 60, 198, 199, 200, 472, 644, 541, 25, - 488, 438, 438, 550, -31, 112, 113, 505, 443, 443, - 117, 549, 551, 468, 469, 442, -32, 470, 557, 118, - 560, 561, 504, -163, 437, 189, 563, -163, 110, 460, - 564, -27, -27, -27, -27, 565, 570, 572, 607, -27, - -27, -27, 598, 524, 525, 526, 479, 573, 529, 530, - 578, 574, 613, 605, 111, -27, 121, -163, 46, 615, - 686, 169, 170, 171, 172, 173, 607, 616, -163, 629, - 542, 636, 157, 158, 159, 545, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 630, 112, 113, 460, 634, 5, 6, 7, 8, 638, - 640, 641, 652, 9, 10, 11, 547, 643, 665, -163, - 670, 655, 679, -163, -27, 479, 556, 674, 678, 13, - 599, 14, 536, 129, 130, 682, 562, 688, 691, 9, - 10, 11, 694, 181, 697, -308, -308, -308, -308, -308, - -308, -308, 702, -308, -308, -308, -308, -308, 597, -308, - -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, - -308, -308, -308, -308, -308, -308, -308, -308, 479, 705, - 706, 595, 380, 576, 423, 608, 617, -308, 479, 111, - -308, 479, -163, 479, 322, -308, -308, -308, 584, 127, - 535, -308, -308, -163, 300, 378, -308, 602, 305, 631, - 306, 5, 6, 7, 8, 554, 539, 307, 414, 9, - 10, 11, 540, 407, -308, 182, -308, -308, 339, -308, - 424, 412, 368, 451, 346, 13, 632, 14, 633, 429, - 687, 479, 650, 651, -163, 689, 653, 374, -163, 448, - 217, 642, -115, -115, -115, -115, -115, -115, -115, 0, - -115, -115, -115, -115, -115, 0, -115, -115, -115, -115, - -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, - -115, 0, -115, -115, -115, 0, 0, 239, -388, 0, - 5, 0, 7, 98, -115, 0, 0, -115, 9, 10, - 11, 0, -115, -115, -115, 0, 0, 0, -115, -115, - 0, 0, 0, -115, 13, 174, 175, 15, 176, 177, - 178, 179, 0, 41, 116, 0, 0, 205, 0, 0, - 0, -115, -115, -115, -115, 360, -115, -328, -328, -328, - -328, -328, -328, -328, 0, -328, -328, -328, -328, -328, - 14, -328, -328, -328, -328, -328, -328, -328, -328, -328, - -328, -328, -328, -328, -328, -328, 0, -328, -328, -328, - 0, 0, 0, 0, 0, 117, 0, 0, 0, -328, - 0, 0, -328, 0, 118, 0, 0, -328, -328, -328, - 0, 0, 0, -328, -328, 0, 0, 305, -328, 0, - 5, 6, 7, 8, 0, 0, 307, 0, 9, 10, - 11, 0, 0, 0, 0, 0, -328, 0, -328, -328, - 217, -328, -328, -328, 13, 0, 14, -328, -328, 0, - -328, 0, 0, 0, -328, 0, -328, -328, -328, -328, - -328, -328, -328, -328, -328, -328, -328, 0, -328, 0, - -328, 0, -328, -328, -328, 0, 0, 0, 0, 0, - 5, 6, 7, 8, -328, 0, 447, -328, 9, 10, - 11, 0, -328, -328, -328, 0, 0, -388, -328, -328, - 0, 0, 0, -328, 13, 0, 14, 5, 55, 7, - 56, 128, 129, 130, 0, 9, 10, 11, 9, 10, - 11, -328, -301, -328, -328, 579, -328, -328, -328, 0, - 0, 13, -328, -328, 0, -328, 14, 0, 0, -328, - 0, -328, -328, -328, -328, -328, -328, -328, -328, -328, - -328, -328, 0, -328, 0, -328, 0, -328, -328, -328, - 0, 0, 0, 0, 0, 5, 6, 7, 8, -328, - 0, 0, -328, 9, 10, 11, 0, -328, -328, -328, - 0, 0, 0, -328, -328, 454, 0, 0, -328, 13, - 5, 14, 7, 195, 0, 0, 0, 0, 9, 10, - 11, 0, 0, 0, 0, 0, -328, 0, -328, -328, - 624, -328, -338, -338, 13, 0, 14, -338, -338, 0, - -338, 0, 0, 0, -338, 0, -338, -338, -338, -338, - -338, -338, -338, -338, -338, -338, -338, 0, -338, 0, - -338, 187, -338, -338, -338, 0, 0, 0, 0, 0, - 188, 189, 0, 0, -338, 0, 0, -338, 0, 0, - 0, 0, -338, -338, -338, 0, 0, 0, -338, -338, - 0, 0, 146, -338, 68, 5, 0, 7, 98, 69, - 70, 0, 71, 9, 10, 11, 0, 0, 0, 0, - 0, -338, 0, -338, -338, 0, -338, 0, 0, 13, - 72, 0, 15, 0, 73, 74, 75, 0, 0, 0, - 473, 0, 474, 60, 0, 0, 76, 69, 70, 77, - 71, 0, 0, 0, 78, 79, 80, 0, 0, 0, - 81, 82, 0, 0, 0, 83, 0, 0, 72, 0, - 15, 0, 73, 74, 75, 174, 175, 0, 176, 177, - 178, 179, 0, 0, 76, 84, 85, 77, 147, 0, - 0, 0, 78, 79, 80, 0, 0, 639, 81, 82, - 0, 0, 475, 83, 476, 473, 0, 474, 60, 0, - 0, 0, 69, 70, 0, 71, 0, 0, 0, 0, - 0, 0, -191, 84, 85, 0, 477, 0, 0, 0, - 0, 0, 0, 72, 0, 15, 0, 73, 74, 75, - 0, 0, 0, 0, 0, 0, 473, 0, 68, 76, - 0, 0, 77, 69, 70, 0, 71, 78, 79, 80, - 0, 0, 0, 81, 82, 0, 0, 475, 83, 476, - 0, 0, 0, 0, 72, 0, 15, 0, 73, 74, - 75, 0, 0, 0, 0, 0, -204, -259, 84, 85, - 76, 477, 0, 77, 0, 0, 0, 0, 78, 79, - 80, 0, 0, 0, 81, 82, 0, 0, -204, 83, - -204, 458, 0, 68, 0, 0, 0, 0, 69, 70, - 0, 71, 167, 168, 169, 170, 171, 172, 173, 84, - 85, 0, 477, 0, 0, 0, 0, 0, 0, 72, - 0, 15, 0, 73, 74, 75, 0, 0, 0, 473, - 0, 68, 0, 0, 0, 76, 69, 70, 77, 71, - 0, 0, 0, 78, 79, 80, 0, 0, 0, 81, - 82, 0, 0, 0, 83, 0, 0, 72, 0, 15, - 0, 73, 74, 75, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 76, 84, 85, 77, 459, 0, 0, - 0, 78, 79, 80, 0, 0, 0, 81, 82, 0, - 236, 0, 83, -23, -23, -23, -23, 5, 6, 7, - 8, -23, -23, -23, 0, 9, 10, 11, 0, 0, - 0, 0, 84, 85, 0, 477, 111, -23, 0, -163, - 230, 13, 0, -19, -19, -19, -19, 0, 0, 0, - -163, -19, -19, -19, 0, 68, 0, 0, 0, 0, - 69, 70, 0, 71, 0, 0, 111, -19, 5, -163, - 7, 98, 0, 112, 113, 0, 9, 10, 11, 0, - -163, 72, 0, 15, 0, 73, 74, 75, 0, 0, - 0, -163, 13, 0, 0, -163, -23, 76, 0, 0, - 77, 0, 0, 0, 0, 78, 79, 214, 0, 0, - 0, 81, 82, 0, 0, 0, 83, 0, 0, 0, - 0, -163, 68, 0, 0, -163, -19, 69, 70, 0, - 71, 0, 0, 0, 0, 0, 84, 85, 0, 0, - 215, 0, 0, 0, 0, 0, 0, 0, 72, 0, - 15, 0, 73, 74, 75, 0, 0, 0, 0, 0, - 68, 0, 0, 0, 76, 69, 70, 77, 71, 0, - 0, 0, 78, 79, 80, 0, 0, 0, 81, 82, - 0, 0, 0, 83, 0, 0, 72, 0, 15, 0, - 73, 74, 75, 166, 167, 168, 169, 170, 171, 172, - 173, 0, 76, 84, 85, 77, 0, 294, 0, 0, - 78, 79, 80, 0, 0, 0, 81, 82, 68, 0, - 0, 83, 0, 69, 70, 159, 71, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 84, 85, 0, 72, 316, 15, 0, 73, 74, - 75, 0, 0, 0, 0, 0, 68, 0, 0, 0, - 76, 69, 70, 77, 71, 0, 0, 0, 78, 79, - 80, 0, 0, 0, 81, 82, 0, 0, 0, 83, - 0, 0, 72, 0, 15, 0, 73, 74, 75, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 84, - 85, 77, 0, 332, 0, 0, 78, 79, 80, 0, - 0, 0, 81, 82, 68, 0, 0, 83, 0, 69, - 70, 0, 71, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 0, 84, 85, 0, - 72, 375, 15, 0, 73, 74, 75, 0, 0, 0, - 0, 0, 68, 0, 0, 0, 76, 69, 70, 77, - 71, 0, 0, 0, 78, 79, 589, 0, 0, 0, - 81, 82, 0, 0, 0, 83, 0, 0, 72, 0, - 15, 0, 73, 74, 75, 611, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 84, 85, 77, 0, 590, - 0, 0, 78, 79, 80, 0, 0, 0, 81, 82, - 0, 0, 0, 83, 0, 157, 158, 159, 612, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 84, 85, 0, 0, 628, 474, 490, - 6, 7, 8, 69, 70, 0, 71, 9, 10, 11, - 491, 0, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 13, 72, 14, 15, 0, 73, 74, - 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 0, 0, 77, 0, 0, 14, 0, 78, 79, - 80, 0, 0, 0, 81, 82, 157, 158, 159, 83, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 0, 0, 0, 503, 0, 84, - 85, 0, 391, 474, 60, 0, 0, 0, 69, 70, - 0, 71, 0, 0, 0, 491, 0, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 0, 72, - 0, 15, 0, 73, 74, 75, 0, 0, 0, 0, - 0, 68, 0, 0, 0, 76, 69, 70, 77, 71, - 0, 0, 0, 78, 79, 80, 0, 0, 0, 81, - 82, 0, 0, 0, 83, 0, 0, 72, 0, 15, - 0, 73, 74, 75, 0, 0, 0, 0, 0, 0, - 0, 0, 503, 76, 84, 85, 77, 391, 0, 0, - 0, 78, 79, 80, 0, 0, 0, 81, 82, 0, - 0, 0, 83, 68, 5, 6, 7, 8, 69, 70, - 0, 71, 9, 10, 11, 0, 0, 0, 0, 0, - 0, 0, 84, 85, 0, 348, 0, 0, 13, 72, - 14, 15, 0, 73, 74, 75, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 76, 0, 0, 77, 0, - 0, 0, 0, 78, 79, 80, 0, 0, 0, 81, - 82, 0, 68, 5, 83, 7, 98, 69, 70, 0, - 71, 9, 10, 11, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 84, 85, 0, 13, 72, 0, - 15, 0, 73, 74, 75, 0, 0, 0, 0, 0, - 68, 0, 0, 0, 76, 69, 70, 77, 71, 0, - 0, 0, 78, 79, 80, 0, 0, 0, 81, 82, - 0, 0, 0, 83, 0, 0, 72, 0, 15, 0, - 73, 74, 75, 0, 0, 0, 0, 0, 0, 0, - 0, 68, 76, 84, 85, 77, 69, 70, 0, 71, - 78, 79, 80, 0, 0, 0, 81, 82, 0, 0, - 0, 83, 0, 0, 0, 0, 0, 72, 0, 15, - 0, 73, 74, 75, 0, 0, 0, 0, 0, 566, - 0, 84, 85, 76, 0, 0, 77, 0, 0, 0, - 0, 78, 79, 80, 0, 0, 0, 81, 82, 68, - 0, 0, 83, 0, 69, 70, 0, 71, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 0, 0, 84, 85, 0, 72, 0, 15, 0, 73, - 74, 75, 0, 0, 0, 0, 0, 68, 0, 0, - 0, 76, 69, 70, 77, 71, 0, 0, 0, 78, - 79, 80, 0, 0, 0, 81, 82, 0, 0, 0, - 153, 0, 0, 72, 0, 15, 0, 73, 74, 75, - 0, 0, 0, 0, 0, 0, 0, 0, 379, 76, - 84, 85, 77, 69, 70, 0, 71, 78, 79, 80, - 0, 0, 0, 81, 82, 0, 0, 0, 155, 0, - 0, 0, 0, 0, 72, 0, 15, 0, 73, 74, - 75, 0, 0, 0, 0, 0, 0, 0, 84, 85, - 76, 0, 0, 77, 0, 0, 0, 0, 78, 79, - 80, 0, 0, 0, 81, 82, 0, 0, 4, 83, - -119, 5, 6, 7, 8, 0, 0, 0, 0, 9, - 10, 11, 0, 0, 0, 0, 0, 0, 0, 84, - 85, 0, 0, 0, 12, 13, 0, 14, 15, 157, - 158, 159, 0, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 0, 0, 0, - 0, 0, -119, 0, 0, 0, 0, 0, 157, 158, - 159, -119, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 0, 654, 0, 16, - 157, 158, 159, 659, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 0, 0, - 0, 157, 158, 159, 347, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173 -}; - -static const short yycheck[] = { 38, - 39, 20, 25, 27, 28, 29, 49, 51, 114, 2, - 3, 211, 35, 36, 37, 73, 74, 22, 2, 3, - 233, 122, 80, 46, 43, 2, 3, 193, 86, 390, - 117, 54, 51, 83, 63, 453, 103, 231, 31, 97, - 178, 293, 46, 237, 118, 135, 1, 31, 108, 366, - 21, 22, 76, 135, 31, 219, 485, 1, 9, 0, - 22, 3, 4, 2, 3, 3, 10, 57, 3, 430, - 9, 10, 11, 0, 113, 3, 4, 39, 7, 43, - 104, 20, 30, 22, 1, 43, 105, 3, 4, 406, - 109, 408, 31, 31, 400, 30, 30, 403, 121, 118, - 187, 30, 82, 153, 43, 155, 3, 4, 209, 132, - 49, 428, 51, 87, 220, 139, 559, 81, 57, 64, - 55, 83, 286, 81, 553, 231, 55, 64, 489, 64, - 81, 237, 87, 64, 300, 64, 65, 127, 43, 188, - 179, 103, 135, 87, 64, 87, 657, 64, 82, 83, - 189, 225, 176, 177, 244, 229, 214, 575, 55, 87, - 3, 100, 244, 87, 103, 303, 105, 190, 228, 108, - 109, 87, 601, 135, 685, 4, 81, 6, 7, 118, - 286, 87, 625, 12, 13, 14, 190, 30, 127, 27, - 64, 153, 538, 155, 446, 234, 81, 361, 256, 28, - 364, 224, 548, 193, 30, 86, 225, 41, 651, 81, - 229, 9, 55, 656, 86, 658, 245, 43, 247, 81, - 81, 64, 65, 666, 263, 86, 64, 65, 252, 63, - 336, 65, 338, 1, 30, 81, 4, 5, 6, 7, - 86, 290, 10, 64, 12, 13, 14, 296, 5, 188, - 7, 244, 83, 82, 83, 698, 362, 81, 364, 298, - 28, 285, 86, 580, 30, 626, 81, 30, 64, 65, - 241, 86, 243, 81, 213, 81, 64, 65, 302, 3, - 4, 243, 244, 7, 3, 4, 225, 82, 83, 228, - 229, 457, 55, 81, 83, 433, 82, 347, 64, 65, - 86, 64, 65, 82, 309, 81, 30, 86, 81, 522, - 300, 30, 64, 65, 675, 676, 383, 384, 323, 87, - 344, 1, 64, 65, 4, 5, 6, 7, 82, 81, - 81, 55, 12, 13, 14, 43, 55, 308, 309, 81, - 64, 65, 55, 56, 57, 64, 65, 309, 28, 436, - 32, 290, 82, 143, 293, 442, 86, 296, 81, 465, - 64, 323, 152, 27, 383, 384, 9, 157, 158, 535, - 309, 88, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 82, 347, 82, 1, 437, 41, - 4, 430, 6, 7, 3, 4, 420, 82, 12, 13, - 14, 86, 64, 65, 82, 3, 430, 87, 86, 7, - 1, 455, 3, 4, 28, 438, 232, 31, 437, 41, - 443, 86, 238, 466, 467, 396, 397, 82, 43, 82, - 246, 86, 30, 86, 438, 397, 455, 430, 82, 443, - 64, 65, 86, 82, 383, 384, 430, 86, 387, 81, - 489, 475, 646, 430, 648, 82, 83, 55, 64, 65, - 518, 500, 81, 3, 4, 489, 64, 457, 82, 83, - 81, 520, 521, 90, 91, 265, 266, 501, 527, 528, - 64, 65, 520, 521, 523, 88, 4, 5, 6, 7, - 30, 430, 692, 88, 12, 13, 14, 41, 437, 81, - 700, 520, 521, 508, 81, 81, 43, 446, 527, 528, - 28, 83, 30, 88, 453, 55, 455, 83, 557, 620, - 543, 560, 561, 83, 64, 518, 83, 466, 467, 568, - 83, 589, 575, 577, 518, 81, 507, 508, 3, 4, - 646, 518, 648, 3, 583, 535, 508, 7, 27, 6, - 7, 30, 88, 343, 3, 12, 13, 14, 577, 87, - 83, 82, 41, 353, 82, 30, 605, 86, 83, 508, - 30, 3, 4, 5, 6, 7, 81, 616, 43, 518, - 83, 520, 521, 83, 43, 64, 65, 626, 527, 528, - 55, 43, 86, 409, 410, 55, 43, 413, 64, 64, - 64, 64, 626, 82, 64, 65, 43, 86, 1, 399, - 82, 4, 5, 6, 7, 82, 7, 43, 657, 12, - 13, 14, 10, 439, 440, 441, 416, 82, 444, 445, - 16, 82, 82, 64, 27, 28, 575, 30, 577, 82, - 679, 53, 54, 55, 56, 57, 685, 64, 41, 88, - 466, 81, 40, 41, 42, 471, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 83, 64, 65, 463, 83, 4, 5, 6, 7, 17, - 82, 81, 81, 12, 13, 14, 476, 82, 82, 82, - 9, 81, 64, 86, 87, 485, 486, 82, 82, 28, - 88, 30, 5, 6, 7, 86, 496, 82, 81, 12, - 13, 14, 81, 1, 82, 3, 4, 5, 6, 7, - 8, 9, 82, 11, 12, 13, 14, 15, 544, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 538, 0, - 0, 541, 303, 82, 362, 560, 572, 45, 548, 27, - 48, 551, 30, 553, 220, 53, 54, 55, 518, 53, - 456, 59, 60, 41, 196, 302, 64, 551, 1, 595, - 3, 4, 5, 6, 7, 484, 463, 10, 346, 12, - 13, 14, 465, 338, 82, 83, 84, 85, 244, 87, - 362, 344, 287, 393, 252, 28, 596, 30, 598, 364, - 680, 601, 626, 626, 82, 682, 632, 297, 86, 387, - 1, 611, 3, 4, 5, 6, 7, 8, 9, -1, - 11, 12, 13, 14, 15, -1, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, -1, 33, 34, 35, -1, -1, 1, 81, -1, - 4, -1, 6, 7, 45, -1, -1, 48, 12, 13, - 14, -1, 53, 54, 55, -1, -1, -1, 59, 60, - -1, -1, -1, 64, 28, 59, 60, 31, 62, 63, - 64, 65, -1, 3, 4, -1, -1, 7, -1, -1, - -1, 82, 83, 84, 85, 1, 87, 3, 4, 5, - 6, 7, 8, 9, -1, 11, 12, 13, 14, 15, - 30, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, -1, 33, 34, 35, - -1, -1, -1, -1, -1, 55, -1, -1, -1, 45, - -1, -1, 48, -1, 64, -1, -1, 53, 54, 55, - -1, -1, -1, 59, 60, -1, -1, 1, 64, -1, - 4, 5, 6, 7, -1, -1, 10, -1, 12, 13, - 14, -1, -1, -1, -1, -1, 82, -1, 84, 85, - 1, 87, 3, 4, 28, -1, 30, 8, 9, -1, - 11, -1, -1, -1, 15, -1, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, -1, 29, -1, - 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, - 4, 5, 6, 7, 45, -1, 10, 48, 12, 13, - 14, -1, 53, 54, 55, -1, -1, 81, 59, 60, - -1, -1, -1, 64, 28, -1, 30, 4, 5, 6, - 7, 5, 6, 7, -1, 12, 13, 14, 12, 13, - 14, 82, 83, 84, 85, 1, 87, 3, 4, -1, - -1, 28, 8, 9, -1, 11, 30, -1, -1, 15, - -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, -1, 29, -1, 31, -1, 33, 34, 35, - -1, -1, -1, -1, -1, 4, 5, 6, 7, 45, - -1, -1, 48, 12, 13, 14, -1, 53, 54, 55, - -1, -1, -1, 59, 60, 82, -1, -1, 64, 28, - 4, 30, 6, 7, -1, -1, -1, -1, 12, 13, - 14, -1, -1, -1, -1, -1, 82, -1, 84, 85, - 1, 87, 3, 4, 28, -1, 30, 8, 9, -1, - 11, -1, -1, -1, 15, -1, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, -1, 29, -1, - 31, 55, 33, 34, 35, -1, -1, -1, -1, -1, - 64, 65, -1, -1, 45, -1, -1, 48, -1, -1, - -1, -1, 53, 54, 55, -1, -1, -1, 59, 60, - -1, -1, 1, 64, 3, 4, -1, 6, 7, 8, - 9, -1, 11, 12, 13, 14, -1, -1, -1, -1, - -1, 82, -1, 84, 85, -1, 87, -1, -1, 28, - 29, -1, 31, -1, 33, 34, 35, -1, -1, -1, - 1, -1, 3, 4, -1, -1, 45, 8, 9, 48, - 11, -1, -1, -1, 53, 54, 55, -1, -1, -1, - 59, 60, -1, -1, -1, 64, -1, -1, 29, -1, - 31, -1, 33, 34, 35, 59, 60, -1, 62, 63, - 64, 65, -1, -1, 45, 84, 85, 48, 87, -1, - -1, -1, 53, 54, 55, -1, -1, 81, 59, 60, - -1, -1, 63, 64, 65, 1, -1, 3, 4, -1, - -1, -1, 8, 9, -1, 11, -1, -1, -1, -1, - -1, -1, 83, 84, 85, -1, 87, -1, -1, -1, - -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, - -1, -1, -1, -1, -1, -1, 1, -1, 3, 45, - -1, -1, 48, 8, 9, -1, 11, 53, 54, 55, - -1, -1, -1, 59, 60, -1, -1, 63, 64, 65, - -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, - 35, -1, -1, -1, -1, -1, 41, 83, 84, 85, - 45, 87, -1, 48, -1, -1, -1, -1, 53, 54, - 55, -1, -1, -1, 59, 60, -1, -1, 63, 64, - 65, 1, -1, 3, -1, -1, -1, -1, 8, 9, - -1, 11, 51, 52, 53, 54, 55, 56, 57, 84, - 85, -1, 87, -1, -1, -1, -1, -1, -1, 29, - -1, 31, -1, 33, 34, 35, -1, -1, -1, 1, - -1, 3, -1, -1, -1, 45, 8, 9, 48, 11, - -1, -1, -1, 53, 54, 55, -1, -1, -1, 59, - 60, -1, -1, -1, 64, -1, -1, 29, -1, 31, - -1, 33, 34, 35, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 45, 84, 85, 48, 87, -1, -1, - -1, 53, 54, 55, -1, -1, -1, 59, 60, -1, - 1, -1, 64, 4, 5, 6, 7, 4, 5, 6, - 7, 12, 13, 14, -1, 12, 13, 14, -1, -1, - -1, -1, 84, 85, -1, 87, 27, 28, -1, 30, - 1, 28, -1, 4, 5, 6, 7, -1, -1, -1, - 41, 12, 13, 14, -1, 3, -1, -1, -1, -1, - 8, 9, -1, 11, -1, -1, 27, 28, 4, 30, - 6, 7, -1, 64, 65, -1, 12, 13, 14, -1, - 41, 29, -1, 31, -1, 33, 34, 35, -1, -1, - -1, 82, 28, -1, -1, 86, 87, 45, -1, -1, - 48, -1, -1, -1, -1, 53, 54, 55, -1, -1, - -1, 59, 60, -1, -1, -1, 64, -1, -1, -1, - -1, 82, 3, -1, -1, 86, 87, 8, 9, -1, - 11, -1, -1, -1, -1, -1, 84, 85, -1, -1, - 88, -1, -1, -1, -1, -1, -1, -1, 29, -1, - 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, - 3, -1, -1, -1, 45, 8, 9, 48, 11, -1, - -1, -1, 53, 54, 55, -1, -1, -1, 59, 60, - -1, -1, -1, 64, -1, -1, 29, -1, 31, -1, - 33, 34, 35, 50, 51, 52, 53, 54, 55, 56, - 57, -1, 45, 84, 85, 48, -1, 88, -1, -1, - 53, 54, 55, -1, -1, -1, 59, 60, 3, -1, - -1, 64, -1, 8, 9, 42, 11, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 84, 85, -1, 29, 88, 31, -1, 33, 34, - 35, -1, -1, -1, -1, -1, 3, -1, -1, -1, - 45, 8, 9, 48, 11, -1, -1, -1, 53, 54, - 55, -1, -1, -1, 59, 60, -1, -1, -1, 64, - -1, -1, 29, -1, 31, -1, 33, 34, 35, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 45, 84, - 85, 48, -1, 88, -1, -1, 53, 54, 55, -1, - -1, -1, 59, 60, 3, -1, -1, 64, -1, 8, - 9, -1, 11, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, -1, 84, 85, -1, - 29, 88, 31, -1, 33, 34, 35, -1, -1, -1, - -1, -1, 3, -1, -1, -1, 45, 8, 9, 48, - 11, -1, -1, -1, 53, 54, 55, -1, -1, -1, - 59, 60, -1, -1, -1, 64, -1, -1, 29, -1, - 31, -1, 33, 34, 35, 10, -1, -1, -1, -1, - -1, -1, -1, -1, 45, 84, 85, 48, -1, 88, - -1, -1, 53, 54, 55, -1, -1, -1, 59, 60, - -1, -1, -1, 64, -1, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 84, 85, -1, -1, 88, 3, 4, - 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, - 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, -1, 33, 34, - 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, -1, -1, 48, -1, -1, 30, -1, 53, 54, - 55, -1, -1, -1, 59, 60, 40, 41, 42, 64, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, -1, -1, -1, 82, -1, 84, - 85, -1, 87, 3, 4, -1, -1, -1, 8, 9, - -1, 11, -1, -1, -1, 15, -1, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, - -1, 31, -1, 33, 34, 35, -1, -1, -1, -1, - -1, 3, -1, -1, -1, 45, 8, 9, 48, 11, - -1, -1, -1, 53, 54, 55, -1, -1, -1, 59, - 60, -1, -1, -1, 64, -1, -1, 29, -1, 31, - -1, 33, 34, 35, -1, -1, -1, -1, -1, -1, - -1, -1, 82, 45, 84, 85, 48, 87, -1, -1, - -1, 53, 54, 55, -1, -1, -1, 59, 60, -1, - -1, -1, 64, 3, 4, 5, 6, 7, 8, 9, - -1, 11, 12, 13, 14, -1, -1, -1, -1, -1, - -1, -1, 84, 85, -1, 87, -1, -1, 28, 29, - 30, 31, -1, 33, 34, 35, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 45, -1, -1, 48, -1, - -1, -1, -1, 53, 54, 55, -1, -1, -1, 59, - 60, -1, 3, 4, 64, 6, 7, 8, 9, -1, - 11, 12, 13, 14, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 84, 85, -1, 28, 29, -1, - 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, - 3, -1, -1, -1, 45, 8, 9, 48, 11, -1, - -1, -1, 53, 54, 55, -1, -1, -1, 59, 60, - -1, -1, -1, 64, -1, -1, 29, -1, 31, -1, - 33, 34, 35, -1, -1, -1, -1, -1, -1, -1, - -1, 3, 45, 84, 85, 48, 8, 9, -1, 11, - 53, 54, 55, -1, -1, -1, 59, 60, -1, -1, - -1, 64, -1, -1, -1, -1, -1, 29, -1, 31, - -1, 33, 34, 35, -1, -1, -1, -1, -1, 82, - -1, 84, 85, 45, -1, -1, 48, -1, -1, -1, - -1, 53, 54, 55, -1, -1, -1, 59, 60, 3, - -1, -1, 64, -1, 8, 9, -1, 11, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - -1, -1, 84, 85, -1, 29, -1, 31, -1, 33, - 34, 35, -1, -1, -1, -1, -1, 3, -1, -1, - -1, 45, 8, 9, 48, 11, -1, -1, -1, 53, - 54, 55, -1, -1, -1, 59, 60, -1, -1, -1, - 64, -1, -1, 29, -1, 31, -1, 33, 34, 35, - -1, -1, -1, -1, -1, -1, -1, -1, 3, 45, - 84, 85, 48, 8, 9, -1, 11, 53, 54, 55, - -1, -1, -1, 59, 60, -1, -1, -1, 64, -1, - -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, - 35, -1, -1, -1, -1, -1, -1, -1, 84, 85, - 45, -1, -1, 48, -1, -1, -1, -1, 53, 54, - 55, -1, -1, -1, 59, 60, -1, -1, 1, 64, - 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, - 13, 14, -1, -1, -1, -1, -1, -1, -1, 84, - 85, -1, -1, -1, 27, 28, -1, 30, 31, 40, - 41, 42, -1, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, -1, -1, -1, - -1, -1, 55, -1, -1, -1, -1, -1, 40, 41, - 42, 64, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, -1, 88, -1, 82, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, -1, -1, - -1, 40, 41, 42, 86, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/lib/bison.simple" -/* This file comes from bison-1.28. */ - -/* Skeleton output parser for bison, - Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ - -/* This is the parser code that is written into each bison parser - when the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -#ifndef YYSTACK_USE_ALLOCA -#ifdef alloca -#define YYSTACK_USE_ALLOCA -#else /* alloca not defined */ -#ifdef __GNUC__ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#else /* not GNU C. */ -#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) -#define YYSTACK_USE_ALLOCA -#include -#else /* not sparc */ -/* We think this test detects Watcom and Microsoft C. */ -/* This used to test MSDOS, but that is a bad idea - since that symbol is in the user namespace. */ -#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) -#if 0 /* No need for malloc.h, which pollutes the namespace; - instead, just don't use alloca. */ -#include -#endif -#else /* not MSDOS, or __TURBOC__ */ -#if defined(_AIX) -/* I don't know what this was needed for, but it pollutes the namespace. - So I turned it off. rms, 2 May 1997. */ -/* #include */ - #pragma alloca -#define YYSTACK_USE_ALLOCA -#else /* not MSDOS, or __TURBOC__, or _AIX */ -#if 0 -#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, - and on HPUX 10. Eventually we can turn this on. */ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#endif /* __hpux */ -#endif -#endif /* not _AIX */ -#endif /* not MSDOS, or __TURBOC__ */ -#endif /* not sparc */ -#endif /* not GNU C */ -#endif /* alloca not defined */ -#endif /* YYSTACK_USE_ALLOCA not defined */ - -#ifdef YYSTACK_USE_ALLOCA -#define YYSTACK_ALLOC alloca -#else -#define YYSTACK_ALLOC malloc -#endif - -/* Note: there must be only one dollar sign in this file. - It is replaced by the list of actions, each action - as one case of the switch. */ - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 -#define YYEOF 0 -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 -/* Like YYERROR except do call yyerror. - This remains here temporarily to ease the - transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ -#define YYFAIL goto yyerrlab -#define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(token, value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { yychar = (token), yylval = (value); \ - yychar1 = YYTRANSLATE (yychar); \ - YYPOPSTACK; \ - goto yybackup; \ - } \ - else \ - { yyerror ("syntax error: cannot back up"); YYERROR; } \ -while (0) - -#define YYTERROR 1 -#define YYERRCODE 256 - -#ifndef YYPURE -#define YYLEX yylex() -#endif - -#ifdef YYPURE -#ifdef YYLSP_NEEDED -#ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) -#else -#define YYLEX yylex(&yylval, &yylloc) -#endif -#else /* not YYLSP_NEEDED */ -#ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, YYLEX_PARAM) -#else -#define YYLEX yylex(&yylval) -#endif -#endif /* not YYLSP_NEEDED */ -#endif - -/* If nonreentrant, generate the variables here */ - -#ifndef YYPURE - -int yychar; /* the lookahead symbol */ -YYSTYPE yylval; /* the semantic value of the */ - /* lookahead symbol */ - -#ifdef YYLSP_NEEDED -YYLTYPE yylloc; /* location data for the lookahead */ - /* symbol */ -#endif - -int yynerrs; /* number of parse errors so far */ -#endif /* not YYPURE */ - -#if YYDEBUG != 0 -int yydebug; /* nonzero means print parse trace */ -/* Since this is uninitialized, it does not stop multiple parsers - from coexisting. */ -#endif - -/* YYINITDEPTH indicates the initial size of the parser's stacks */ - -#ifndef YYINITDEPTH -#define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH is the maximum size the stacks can grow to - (effective only if the built-in stack extension method is used). */ - -#if YYMAXDEPTH == 0 -#undef YYMAXDEPTH -#endif - -#ifndef YYMAXDEPTH -#define YYMAXDEPTH 10000 -#endif - -/* Define __yy_memcpy. Note that the size argument - should be passed with type unsigned int, because that is what the non-GCC - definitions require. With GCC, __builtin_memcpy takes an arg - of type size_t, but it can handle unsigned int. */ - -#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ -#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 (to, from, count) - char *to; - char *from; - unsigned int count; -{ - register char *f = from; - register char *t = to; - register int i = count; - - while (i-- > 0) - *t++ = *f++; -} - -#else /* __cplusplus */ - -/* This is the most reliable way to avoid incompatibilities - in available built-in functions on various systems. */ -static void -__yy_memcpy (char *to, char *from, unsigned int count) -{ - register char *t = to; - register char *f = from; - register int i = count; - - while (i-- > 0) - *t++ = *f++; -} - -#endif -#endif - -#line 217 "/usr/lib/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 *. - It should actually point to an object. - Grammar actions can access the variable by casting it - 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; -#endif /* not __cplusplus */ -#else /* not YYPARSE_PARAM */ -#define YYPARSE_PARAM_ARG -#define YYPARSE_PARAM_DECL -#endif /* not YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -#ifdef YYPARSE_PARAM -int yyparse (void *); -#else -int yyparse (void); -#endif -#endif - -int -yyparse(YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - register int yystate; - register int yyn; - register short *yyssp; - register YYSTYPE *yyvsp; - int yyerrstatus; /* number of tokens to shift before error messages enabled */ - int yychar1 = 0; /* lookahead token as an internal (translated) token number */ - - short yyssa[YYINITDEPTH]; /* the state stack */ - YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ - - short *yyss = yyssa; /* refer to the stacks thru separate pointers */ - YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ - -#ifdef YYLSP_NEEDED - YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; - -#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -#define YYPOPSTACK (yyvsp--, yyssp--) -#endif - - int yystacksize = YYINITDEPTH; - int yyfree_stacks = 0; - -#ifdef YYPURE - int yychar; - YYSTYPE yylval; - int yynerrs; -#ifdef YYLSP_NEEDED - YYLTYPE yylloc; -#endif -#endif - - YYSTYPE yyval; /* the variable used to return */ - /* semantic values from the action */ - /* routines */ - - int yylen; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Starting parse\n"); -#endif - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - - yyssp = yyss - 1; - yyvsp = yyvs; -#ifdef YYLSP_NEEDED - yylsp = yyls; -#endif - -/* Push a new state, which is found in yystate . */ -/* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. */ -yynewstate: - - *++yyssp = yystate; - - if (yyssp >= yyss + yystacksize - 1) - { - /* Give user a chance to reallocate the stack */ - /* Use copies of these so that the &'s don't force the real ones into memory. */ - YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; -#ifdef YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; -#endif - - /* Get the current used size of the three stacks, in elements. */ - int size = yyssp - yyss + 1; - -#ifdef yyoverflow - /* Each stack pointer address is followed by the size of - the data in use in that stack, in bytes. */ -#ifdef YYLSP_NEEDED - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yyls1, size * sizeof (*yylsp), - &yystacksize); -#else - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yystacksize); -#endif - - yyss = yyss1; yyvs = yyvs1; -#ifdef YYLSP_NEEDED - yyls = yyls1; -#endif -#else /* no yyoverflow */ - /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - { - yyerror("parser stack overflow"); - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 2; - } - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - yystacksize = YYMAXDEPTH; -#ifndef YYSTACK_USE_ALLOCA - yyfree_stacks = 1; -#endif - yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); - __yy_memcpy ((char *)yyss, (char *)yyss1, - size * (unsigned int) sizeof (*yyssp)); - yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); - __yy_memcpy ((char *)yyvs, (char *)yyvs1, - size * (unsigned int) sizeof (*yyvsp)); -#ifdef YYLSP_NEEDED - yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); - __yy_memcpy ((char *)yyls, (char *)yyls1, - size * (unsigned int) sizeof (*yylsp)); -#endif -#endif /* no yyoverflow */ - - yyssp = yyss + size - 1; - yyvsp = yyvs + size - 1; -#ifdef YYLSP_NEEDED - yylsp = yyls + size - 1; -#endif - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Stack size increased to %d\n", yystacksize); -#endif - - if (yyssp >= yyss + yystacksize - 1) - YYABORT; - } - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Entering state %d\n", yystate); -#endif - - goto yybackup; - yybackup: - -/* Do appropriate processing given the current state. */ -/* Read a lookahead token if we need one and don't already have one. */ -/* yyresume: */ - - /* First try to decide what to do without reference to lookahead token. */ - - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - - if (yychar == YYEMPTY) - { -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Reading a token: "); -#endif - yychar = YYLEX; - } - - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ - { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Now at end of input.\n"); -#endif - } - else - { - yychar1 = YYTRANSLATE(yychar); - -#if YYDEBUG != 0 - if (yydebug) - { - fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise meaning - of a token, for further debugging info. */ -#ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -#endif - fprintf (stderr, ")\n"); - } -#endif - } - - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; - - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the lookahead token. */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); -#endif - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* count tokens shifted since error; after three, turn off error status. */ - if (yyerrstatus) yyerrstatus--; - - yystate = yyn; - goto yynewstate; - -/* Do the default action for the current state. */ -yydefault: - - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - -/* Do a reduction. yyn is the number of a rule to reduce with. */ -yyreduce: - yylen = yyr2[yyn]; - if (yylen > 0) - yyval = yyvsp[1-yylen]; /* implement default value of the action */ - -#if YYDEBUG != 0 - if (yydebug) - { - int i; - - fprintf (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) - fprintf (stderr, "%s ", yytname[yyrhs[i]]); - fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - - switch (yyn) { - -case 1: -#line 234 "c-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids an empty source file"); - finish_file (); - ; - break;} -case 2: -#line 239 "c-parse.y" -{ - /* In case there were missing closebraces, - get us back to the global binding level. */ - while (! global_bindings_p ()) - poplevel (0, 0, 0); - finish_file (); - ; - break;} -case 3: -#line 253 "c-parse.y" -{yyval.ttype = NULL_TREE; ; - break;} -case 5: -#line 254 "c-parse.y" -{yyval.ttype = NULL_TREE; ; - break;} -case 9: -#line 261 "c-parse.y" -{ STRIP_NOPS (yyvsp[-2].ttype); - if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR - && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST) - || TREE_CODE (yyvsp[-2].ttype) == STRING_CST) - assemble_asm (yyvsp[-2].ttype); - else - error ("argument of `asm' is not a constant string"); ; - break;} -case 10: -#line 269 "c-parse.y" -{ RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; - break;} -case 11: -#line 274 "c-parse.y" -{ if (pedantic) - error ("ANSI C forbids data definition with no type or storage class"); - else if (!flag_traditional) - warning ("data definition has no type or storage class"); - - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 12: -#line 283 "c-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 13: -#line 287 "c-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 14: -#line 291 "c-parse.y" -{ pedwarn ("empty declaration"); ; - break;} -case 15: -#line 293 "c-parse.y" -{ shadow_tag (yyvsp[-1].ttype); ; - break;} -case 18: -#line 297 "c-parse.y" -{ if (pedantic) - pedwarn ("ANSI C does not allow extra `;' outside of a function"); ; - break;} -case 19: -#line 303 "c-parse.y" -{ if (! start_function (current_declspecs, yyvsp[0].ttype, - prefix_attributes, NULL_TREE)) - YYERROR1; - reinit_parse_for_function (); ; - break;} -case 20: -#line 308 "c-parse.y" -{ store_parm_decls (); ; - break;} -case 21: -#line 310 "c-parse.y" -{ finish_function (0); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 22: -#line 315 "c-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 23: -#line 319 "c-parse.y" -{ if (! start_function (current_declspecs, yyvsp[0].ttype, - prefix_attributes, NULL_TREE)) - YYERROR1; - reinit_parse_for_function (); ; - break;} -case 24: -#line 324 "c-parse.y" -{ store_parm_decls (); ; - break;} -case 25: -#line 326 "c-parse.y" -{ finish_function (0); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 26: -#line 331 "c-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 27: -#line 335 "c-parse.y" -{ if (! start_function (NULL_TREE, yyvsp[0].ttype, - prefix_attributes, NULL_TREE)) - YYERROR1; - reinit_parse_for_function (); ; - break;} -case 28: -#line 340 "c-parse.y" -{ store_parm_decls (); ; - break;} -case 29: -#line 342 "c-parse.y" -{ finish_function (0); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 30: -#line 347 "c-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 33: -#line 358 "c-parse.y" -{ yyval.code = ADDR_EXPR; ; - break;} -case 34: -#line 360 "c-parse.y" -{ yyval.code = NEGATE_EXPR; ; - break;} -case 35: -#line 362 "c-parse.y" -{ yyval.code = CONVERT_EXPR; ; - break;} -case 36: -#line 364 "c-parse.y" -{ yyval.code = PREINCREMENT_EXPR; ; - break;} -case 37: -#line 366 "c-parse.y" -{ yyval.code = PREDECREMENT_EXPR; ; - break;} -case 38: -#line 368 "c-parse.y" -{ yyval.code = BIT_NOT_EXPR; ; - break;} -case 39: -#line 370 "c-parse.y" -{ yyval.code = TRUTH_NOT_EXPR; ; - break;} -case 40: -#line 374 "c-parse.y" -{ yyval.ttype = build_compound_expr (yyvsp[0].ttype); ; - break;} -case 41: -#line 379 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 43: -#line 385 "c-parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 44: -#line 387 "c-parse.y" -{ chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; - break;} -case 46: -#line 393 "c-parse.y" -{ yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ; - break;} -case 47: -#line 396 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; - RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; - break;} -case 48: -#line 399 "c-parse.y" -{ yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0); - overflow_warning (yyval.ttype); ; - break;} -case 49: -#line 403 "c-parse.y" -{ tree label = lookup_label (yyvsp[0].ttype); - if (pedantic) - pedwarn ("ANSI C forbids `&&'"); - if (label == 0) - yyval.ttype = null_pointer_node; - else - { - TREE_USED (label) = 1; - yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label); - TREE_CONSTANT (yyval.ttype) = 1; - } - ; - break;} -case 50: -#line 431 "c-parse.y" -{ skip_evaluation--; - if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF - && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1))) - error ("`sizeof' applied to a bit-field"); - yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ; - break;} -case 51: -#line 437 "c-parse.y" -{ skip_evaluation--; - yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ; - break;} -case 52: -#line 440 "c-parse.y" -{ skip_evaluation--; - yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ; - break;} -case 53: -#line 443 "c-parse.y" -{ skip_evaluation--; - yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ; - break;} -case 54: -#line 446 "c-parse.y" -{ yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ; - break;} -case 55: -#line 448 "c-parse.y" -{ yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ; - break;} -case 56: -#line 450 "c-parse.y" -{ yyval.ttype = build_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ttype)); ; - break;} -case 57: -#line 454 "c-parse.y" -{ skip_evaluation++; ; - break;} -case 58: -#line 458 "c-parse.y" -{ skip_evaluation++; ; - break;} -case 60: -#line 464 "c-parse.y" -{ tree type = groktypename (yyvsp[-2].ttype); - yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ; - break;} -case 61: -#line 467 "c-parse.y" -{ start_init (NULL_TREE, NULL, 0); - yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype); - really_start_incremental_init (yyvsp[-2].ttype); ; - break;} -case 62: -#line 471 "c-parse.y" -{ const char *name; - tree result = pop_init_level (0); - tree type = yyvsp[-5].ttype; - finish_init (); - - if (pedantic && ! flag_isoc99) - pedwarn ("ANSI C forbids constructor expressions"); - if (TYPE_NAME (type) != 0) - { - if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE) - name = IDENTIFIER_POINTER (TYPE_NAME (type)); - else - name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type))); - } - else - name = ""; - yyval.ttype = result; - if (TREE_CODE (type) == ARRAY_TYPE && !COMPLETE_TYPE_P (type)) - { - int failure = complete_array_type (type, yyval.ttype, 1); - if (failure) - abort (); - } - ; - break;} -case 64: -#line 500 "c-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 65: -#line 502 "c-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 66: -#line 504 "c-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 67: -#line 506 "c-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 68: -#line 508 "c-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 69: -#line 510 "c-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 70: -#line 512 "c-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 71: -#line 514 "c-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 72: -#line 516 "c-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 73: -#line 518 "c-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 74: -#line 520 "c-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 75: -#line 522 "c-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 76: -#line 524 "c-parse.y" -{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); - skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; - break;} -case 77: -#line 527 "c-parse.y" -{ skip_evaluation -= yyvsp[-3].ttype == boolean_false_node; - yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; - break;} -case 78: -#line 530 "c-parse.y" -{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); - skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; - break;} -case 79: -#line 533 "c-parse.y" -{ skip_evaluation -= yyvsp[-3].ttype == boolean_true_node; - yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; - break;} -case 80: -#line 536 "c-parse.y" -{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); - skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; - break;} -case 81: -#line 539 "c-parse.y" -{ skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node) - - (yyvsp[-4].ttype == boolean_false_node)); ; - break;} -case 82: -#line 542 "c-parse.y" -{ skip_evaluation -= yyvsp[-6].ttype == boolean_true_node; - yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; - break;} -case 83: -#line 545 "c-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids omitting the middle term of a ?: expression"); - /* Make sure first operand is calculated only once. */ - yyvsp[0].ttype = save_expr (yyvsp[-1].ttype); - yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype)); - skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; - break;} -case 84: -#line 552 "c-parse.y" -{ skip_evaluation -= yyvsp[-4].ttype == boolean_true_node; - yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; - break;} -case 85: -#line 555 "c-parse.y" -{ char class; - yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype); - class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); - if (class == 'e' || class == '1' - || class == '2' || class == '<') - C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); - ; - break;} -case 86: -#line 563 "c-parse.y" -{ char class; - yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype); - /* This inhibits warnings in truthvalue_conversion. */ - class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); - if (class == 'e' || class == '1' - || class == '2' || class == '<') - C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); - ; - break;} -case 87: -#line 575 "c-parse.y" -{ - if (yychar == YYEMPTY) - yychar = YYLEX; - yyval.ttype = build_external_ref (yyvsp[0].ttype, yychar == '('); - ; - break;} -case 89: -#line 582 "c-parse.y" -{ yyval.ttype = combine_strings (yyvsp[0].ttype); ; - break;} -case 90: -#line 584 "c-parse.y" -{ char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)); - if (class == 'e' || class == '1' - || class == '2' || class == '<') - C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK); - yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 91: -#line 590 "c-parse.y" -{ yyval.ttype = error_mark_node; ; - break;} -case 92: -#line 592 "c-parse.y" -{ tree rtl_exp; - if (pedantic) - pedwarn ("ANSI C forbids braced-groups within expressions"); - pop_iterator_stack (); - pop_label_level (); - rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype); - /* The statements have side effects, so the group does. */ - TREE_SIDE_EFFECTS (rtl_exp) = 1; - - if (TREE_CODE (yyvsp[-1].ttype) == BLOCK) - { - /* Make a BIND_EXPR for the BLOCK already made. */ - yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp), - NULL_TREE, rtl_exp, yyvsp[-1].ttype); - /* Remove the block from the tree at this point. - It gets put back at the proper place - when the BIND_EXPR is expanded. */ - delete_block (yyvsp[-1].ttype); - } - else - yyval.ttype = yyvsp[-1].ttype; - ; - break;} -case 93: -#line 615 "c-parse.y" -{ - /* Make sure we call expand_end_stmt_expr. Otherwise - we are likely to lose sequences and crash later. */ - pop_iterator_stack (); - pop_label_level (); - expand_end_stmt_expr (yyvsp[-2].ttype); - yyval.ttype = error_mark_node; - ; - break;} -case 94: -#line 624 "c-parse.y" -{ yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 95: -#line 626 "c-parse.y" -{ yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 96: -#line 628 "c-parse.y" -{ - yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype); - ; - break;} -case 97: -#line 632 "c-parse.y" -{ - tree expr = build_indirect_ref (yyvsp[-2].ttype, "->"); - - yyval.ttype = build_component_ref (expr, yyvsp[0].ttype); - ; - break;} -case 98: -#line 638 "c-parse.y" -{ yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ; - break;} -case 99: -#line 640 "c-parse.y" -{ yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ; - break;} -case 101: -#line 647 "c-parse.y" -{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); - if (warn_traditional && !in_system_header) - warning ("Use of ANSI string concatenation"); - ; - break;} -case 104: -#line 659 "c-parse.y" -{ c_mark_varargs (); - if (pedantic) - pedwarn ("ANSI C does not permit use of `varargs.h'"); ; - break;} -case 105: -#line 669 "c-parse.y" -{ ; - break;} -case 110: -#line 685 "c-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 111: -#line 689 "c-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 112: -#line 693 "c-parse.y" -{ shadow_tag_warned (yyvsp[-1].ttype, 1); - pedwarn ("empty declaration"); ; - break;} -case 113: -#line 696 "c-parse.y" -{ pedwarn ("empty declaration"); ; - break;} -case 114: -#line 705 "c-parse.y" -{ ; - break;} -case 119: -#line 720 "c-parse.y" -{ pending_xref_error (); - declspec_stack = tree_cons (prefix_attributes, - current_declspecs, - declspec_stack); - split_specs_attrs (yyvsp[0].ttype, - ¤t_declspecs, &prefix_attributes); ; - break;} -case 120: -#line 730 "c-parse.y" -{ prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ; - break;} -case 121: -#line 735 "c-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 122: -#line 739 "c-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 123: -#line 743 "c-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 124: -#line 747 "c-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 125: -#line 751 "c-parse.y" -{ shadow_tag (yyvsp[-1].ttype); ; - break;} -case 126: -#line 753 "c-parse.y" -{ pedwarn ("empty declaration"); ; - break;} -case 127: -#line 755 "c-parse.y" -{ RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; - break;} -case 128: -#line 765 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 129: -#line 767 "c-parse.y" -{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; - break;} -case 130: -#line 771 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 131: -#line 773 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 132: -#line 775 "c-parse.y" -{ if (extra_warnings) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER (yyvsp[0].ttype)); - yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 133: -#line 780 "c-parse.y" -{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 134: -#line 785 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 135: -#line 787 "c-parse.y" -{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; - break;} -case 136: -#line 792 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 137: -#line 794 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 138: -#line 796 "c-parse.y" -{ if (extra_warnings) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER (yyvsp[0].ttype)); - yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 139: -#line 809 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 140: -#line 811 "c-parse.y" -{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; - break;} -case 141: -#line 813 "c-parse.y" -{ yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 142: -#line 815 "c-parse.y" -{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 143: -#line 820 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); - TREE_STATIC (yyval.ttype) = 1; ; - break;} -case 144: -#line 823 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 145: -#line 825 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); - TREE_STATIC (yyval.ttype) = 1; ; - break;} -case 146: -#line 828 "c-parse.y" -{ if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER (yyvsp[0].ttype)); - yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); - TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; - break;} -case 147: -#line 842 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 148: -#line 844 "c-parse.y" -{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; - break;} -case 149: -#line 848 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 150: -#line 850 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 153: -#line 860 "c-parse.y" -{ /* For a typedef name, record the meaning, not the name. - In case of `foo foo, bar;'. */ - yyval.ttype = lookup_name (yyvsp[0].ttype); ; - break;} -case 154: -#line 864 "c-parse.y" -{ yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ; - break;} -case 155: -#line 866 "c-parse.y" -{ yyval.ttype = groktypename (yyvsp[-1].ttype); ; - break;} -case 163: -#line 888 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 164: -#line 890 "c-parse.y" -{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); - yyval.ttype = yyvsp[-1].ttype; - ; - break;} -case 165: -#line 897 "c-parse.y" -{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, - yyvsp[-1].ttype, prefix_attributes); - start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; - break;} -case 166: -#line 902 "c-parse.y" -{ finish_init (); - finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; - break;} -case 167: -#line 905 "c-parse.y" -{ tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, - yyvsp[0].ttype, prefix_attributes); - finish_decl (d, NULL_TREE, yyvsp[-1].ttype); - ; - break;} -case 168: -#line 913 "c-parse.y" -{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, - yyvsp[-1].ttype, prefix_attributes); - start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; - break;} -case 169: -#line 918 "c-parse.y" -{ finish_init (); - decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes); - finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; - break;} -case 170: -#line 922 "c-parse.y" -{ tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, - yyvsp[0].ttype, prefix_attributes); - finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 171: -#line 930 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 172: -#line 932 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 173: -#line 937 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 174: -#line 939 "c-parse.y" -{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 175: -#line 944 "c-parse.y" -{ yyval.ttype = yyvsp[-2].ttype; ; - break;} -case 176: -#line 949 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 177: -#line 951 "c-parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 178: -#line 956 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 179: -#line 958 "c-parse.y" -{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; - break;} -case 180: -#line 960 "c-parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; - break;} -case 181: -#line 962 "c-parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; - break;} -case 182: -#line 964 "c-parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 188: -#line 982 "c-parse.y" -{ really_start_incremental_init (NULL_TREE); ; - break;} -case 189: -#line 984 "c-parse.y" -{ yyval.ttype = pop_init_level (0); ; - break;} -case 190: -#line 986 "c-parse.y" -{ yyval.ttype = error_mark_node; ; - break;} -case 191: -#line 992 "c-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids empty initializer braces"); ; - break;} -case 197: -#line 1008 "c-parse.y" -{ set_init_label (yyvsp[-1].ttype); ; - break;} -case 200: -#line 1015 "c-parse.y" -{ push_init_level (0); ; - break;} -case 201: -#line 1017 "c-parse.y" -{ process_init_element (pop_init_level (0)); ; - break;} -case 202: -#line 1019 "c-parse.y" -{ process_init_element (yyvsp[0].ttype); ; - break;} -case 206: -#line 1030 "c-parse.y" -{ set_init_label (yyvsp[0].ttype); ; - break;} -case 207: -#line 1035 "c-parse.y" -{ set_init_index (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 208: -#line 1037 "c-parse.y" -{ set_init_index (yyvsp[-1].ttype, NULL_TREE); ; - break;} -case 209: -#line 1042 "c-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids nested functions"); - - push_function_context (); - if (! start_function (current_declspecs, yyvsp[0].ttype, - prefix_attributes, NULL_TREE)) - { - pop_function_context (); - YYERROR1; - } - reinit_parse_for_function (); ; - break;} -case 210: -#line 1054 "c-parse.y" -{ store_parm_decls (); ; - break;} -case 211: -#line 1062 "c-parse.y" -{ finish_function (1); - pop_function_context (); ; - break;} -case 212: -#line 1068 "c-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids nested functions"); - - push_function_context (); - if (! start_function (current_declspecs, yyvsp[0].ttype, - prefix_attributes, NULL_TREE)) - { - pop_function_context (); - YYERROR1; - } - reinit_parse_for_function (); ; - break;} -case 213: -#line 1080 "c-parse.y" -{ store_parm_decls (); ; - break;} -case 214: -#line 1088 "c-parse.y" -{ finish_function (1); - pop_function_context (); ; - break;} -case 217: -#line 1104 "c-parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 218: -#line 1106 "c-parse.y" -{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 219: -#line 1111 "c-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 220: -#line 1113 "c-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; - break;} -case 221: -#line 1115 "c-parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 222: -#line 1122 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 224: -#line 1133 "c-parse.y" -{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 225: -#line 1138 "c-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE); - if (! flag_isoc99) - error ("`[*]' in parameter declaration only allowed in ISO C 99"); - ; - break;} -case 226: -#line 1143 "c-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 227: -#line 1145 "c-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; - break;} -case 228: -#line 1147 "c-parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 229: -#line 1154 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 231: -#line 1163 "c-parse.y" -{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 232: -#line 1168 "c-parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 233: -#line 1170 "c-parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 234: -#line 1172 "c-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE); - if (! flag_isoc99) - error ("`[*]' in parameter declaration only allowed in ISO C 99"); - ; - break;} -case 235: -#line 1177 "c-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 236: -#line 1179 "c-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; - break;} -case 237: -#line 1186 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 239: -#line 1192 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 240: -#line 1194 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 241: -#line 1199 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 242: -#line 1201 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 243: -#line 1206 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 244: -#line 1208 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 245: -#line 1213 "c-parse.y" -{ yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype); - /* Start scope of tag before parsing components. */ - ; - break;} -case 246: -#line 1217 "c-parse.y" -{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; - break;} -case 247: -#line 1219 "c-parse.y" -{ yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE), - yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); - ; - break;} -case 248: -#line 1223 "c-parse.y" -{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ; - break;} -case 249: -#line 1225 "c-parse.y" -{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ; - break;} -case 250: -#line 1227 "c-parse.y" -{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; - break;} -case 251: -#line 1229 "c-parse.y" -{ yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE), - yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); - ; - break;} -case 252: -#line 1233 "c-parse.y" -{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ; - break;} -case 253: -#line 1235 "c-parse.y" -{ yyval.ttype = start_enum (yyvsp[-1].ttype); ; - break;} -case 254: -#line 1237 "c-parse.y" -{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), - chainon (yyvsp[-7].ttype, yyvsp[0].ttype)); ; - break;} -case 255: -#line 1240 "c-parse.y" -{ yyval.ttype = start_enum (NULL_TREE); ; - break;} -case 256: -#line 1242 "c-parse.y" -{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), - chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; - break;} -case 257: -#line 1245 "c-parse.y" -{ yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ; - break;} -case 261: -#line 1256 "c-parse.y" -{ if (pedantic && ! flag_isoc99) - pedwarn ("comma at end of enumerator list"); ; - break;} -case 262: -#line 1262 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 263: -#line 1264 "c-parse.y" -{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); - pedwarn ("no semicolon at end of struct or union"); ; - break;} -case 264: -#line 1269 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 265: -#line 1271 "c-parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ; - break;} -case 266: -#line 1273 "c-parse.y" -{ if (pedantic) - pedwarn ("extra semicolon in struct or union specified"); ; - break;} -case 267: -#line 1288 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 268: -#line 1293 "c-parse.y" -{ - /* Support for unnamed structs or unions as members of - structs or unions (which is [a] useful and [b] supports - MS P-SDK). */ - if (pedantic) - pedwarn ("ANSI C doesn't support unnamed structs/unions"); - - yyval.ttype = grokfield(yyvsp[-2].filename, yyvsp[-1].lineno, NULL, current_declspecs, NULL_TREE); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); - ; - break;} -case 269: -#line 1306 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 270: -#line 1311 "c-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids member declarations with no members"); - shadow_tag(yyvsp[0].ttype); - yyval.ttype = NULL_TREE; ; - break;} -case 271: -#line 1316 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 272: -#line 1318 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; - RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; - break;} -case 274: -#line 1325 "c-parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 275: -#line 1330 "c-parse.y" -{ yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE); - decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; - break;} -case 276: -#line 1334 "c-parse.y" -{ yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype); - decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; - break;} -case 277: -#line 1337 "c-parse.y" -{ yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype); - decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; - break;} -case 279: -#line 1349 "c-parse.y" -{ if (yyvsp[-2].ttype == error_mark_node) - yyval.ttype = yyvsp[-2].ttype; - else - yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ; - break;} -case 280: -#line 1354 "c-parse.y" -{ yyval.ttype = error_mark_node; ; - break;} -case 281: -#line 1360 "c-parse.y" -{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ; - break;} -case 282: -#line 1362 "c-parse.y" -{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 283: -#line 1367 "c-parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 284: -#line 1369 "c-parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 285: -#line 1374 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 287: -#line 1380 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 288: -#line 1382 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 289: -#line 1387 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 290: -#line 1389 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 291: -#line 1394 "c-parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 292: -#line 1397 "c-parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 293: -#line 1399 "c-parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; - break;} -case 294: -#line 1401 "c-parse.y" -{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 295: -#line 1403 "c-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 296: -#line 1405 "c-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; - break;} -case 297: -#line 1407 "c-parse.y" -{ yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 298: -#line 1409 "c-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 299: -#line 1411 "c-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ; - break;} -case 300: -#line 1415 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 301: -#line 1424 "c-parse.y" -{ - if (pedantic && yyvsp[0].ends_in_label) - pedwarn ("ANSI C forbids label at end of compound statement"); - ; - break;} -case 303: -#line 1433 "c-parse.y" -{ yyval.ends_in_label = yyvsp[0].ends_in_label; ; - break;} -case 304: -#line 1435 "c-parse.y" -{ yyval.ends_in_label = 0; ; - break;} -case 308: -#line 1447 "c-parse.y" -{ emit_line_note (input_filename, lineno); - pushlevel (0); - clear_last_expr (); - expand_start_bindings (0); - ; - break;} -case 310: -#line 1459 "c-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids label declarations"); ; - break;} -case 313: -#line 1470 "c-parse.y" -{ tree link; - for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) - { - tree label = shadow_label (TREE_VALUE (link)); - C_DECLARED_LABEL_FLAG (label) = 1; - declare_nonlocal_label (label); - } - ; - break;} -case 314: -#line 1484 "c-parse.y" -{; - break;} -case 316: -#line 1488 "c-parse.y" -{ compstmt_count++; ; - break;} -case 317: -#line 1491 "c-parse.y" -{ yyval.ttype = convert (void_type_node, integer_zero_node); ; - break;} -case 318: -#line 1493 "c-parse.y" -{ emit_line_note (input_filename, lineno); - expand_end_bindings (getdecls (), 1, 0); - yyval.ttype = poplevel (1, 1, 0); ; - break;} -case 319: -#line 1497 "c-parse.y" -{ emit_line_note (input_filename, lineno); - expand_end_bindings (getdecls (), kept_level_p (), 0); - yyval.ttype = poplevel (kept_level_p (), 0, 0); ; - break;} -case 320: -#line 1501 "c-parse.y" -{ emit_line_note (input_filename, lineno); - expand_end_bindings (getdecls (), kept_level_p (), 0); - yyval.ttype = poplevel (kept_level_p (), 0, 0); ; - break;} -case 321: -#line 1508 "c-parse.y" -{ if (current_function_decl == 0) - { - error ("braced-group within expression allowed only inside a function"); - YYERROR; - } - /* We must force a BLOCK for this level - so that, if it is not expanded later, - there is a way to turn off the entire subtree of blocks - that are contained in it. */ - keep_next_level (); - push_iterator_stack (); - push_label_level (); - yyval.ttype = expand_start_stmt_expr (); - compstmt_count++; - ; - break;} -case 322: -#line 1525 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 325: -#line 1539 "c-parse.y" -{ emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); - c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, - compstmt_count); - yyval.itype = stmt_count; - if_stmt_file = yyvsp[-5].filename; - if_stmt_line = yyvsp[-4].lineno; - position_after_white_space (); ; - break;} -case 326: -#line 1553 "c-parse.y" -{ stmt_count++; - compstmt_count++; - emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); - /* See comment in `while' alternative, above. */ - emit_nop (); - expand_start_loop_continue_elsewhere (1); - position_after_white_space (); ; - break;} -case 327: -#line 1561 "c-parse.y" -{ expand_loop_continue_here (); ; - break;} -case 328: -#line 1565 "c-parse.y" -{ yyval.filename = input_filename; ; - break;} -case 329: -#line 1569 "c-parse.y" -{ yyval.lineno = lineno; ; - break;} -case 330: -#line 1574 "c-parse.y" -{ ; - break;} -case 331: -#line 1579 "c-parse.y" -{ ; - break;} -case 332: -#line 1584 "c-parse.y" -{ yyval.ends_in_label = yyvsp[0].ends_in_label; ; - break;} -case 333: -#line 1589 "c-parse.y" -{ yyval.ends_in_label = 0; ; - break;} -case 334: -#line 1591 "c-parse.y" -{ yyval.ends_in_label = 1; ; - break;} -case 335: -#line 1597 "c-parse.y" -{ stmt_count++; ; - break;} -case 337: -#line 1600 "c-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); -/* It appears that this should not be done--that a non-lvalue array - shouldn't get an error if the value isn't used. - Section 3.2.2.1 says that an array lvalue gets converted to a pointer - if it appears as a top-level expression, - but says nothing about non-lvalue arrays. */ -#if 0 - /* Call default_conversion to get an error - on referring to a register array if pedantic. */ - if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE - || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE) - yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype); -#endif - iterator_expand (yyvsp[-1].ttype); ; - break;} -case 338: -#line 1616 "c-parse.y" -{ c_expand_start_else (); - yyvsp[-1].itype = stmt_count; - position_after_white_space (); ; - break;} -case 339: -#line 1620 "c-parse.y" -{ c_expand_end_cond (); - if (extra_warnings && stmt_count == yyvsp[-3].itype) - warning ("empty body in an else-statement"); ; - break;} -case 340: -#line 1624 "c-parse.y" -{ c_expand_end_cond (); - /* This warning is here instead of in simple_if, because we - do not want a warning if an empty if is followed by an - else statement. Increment stmt_count so we don't - give a second error if this is a nested `if'. */ - if (extra_warnings && stmt_count++ == yyvsp[0].itype) - warning_with_file_and_line (if_stmt_file, if_stmt_line, - "empty body in an if-statement"); ; - break;} -case 341: -#line 1636 "c-parse.y" -{ c_expand_end_cond (); ; - break;} -case 342: -#line 1638 "c-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); - /* The emit_nop used to come before emit_line_note, - but that made the nop seem like part of the preceding line. - And that was confusing when the preceding line was - inside of an if statement and was not really executed. - I think it ought to work to put the nop after the line number. - We will see. --rms, July 15, 1991. */ - emit_nop (); ; - break;} -case 343: -#line 1648 "c-parse.y" -{ /* Don't start the loop till we have succeeded - in parsing the end test. This is to make sure - that we end every loop we start. */ - expand_start_loop (1); - emit_line_note (input_filename, lineno); - expand_exit_loop_if_false (NULL_PTR, - truthvalue_conversion (yyvsp[-1].ttype)); - position_after_white_space (); ; - break;} -case 344: -#line 1657 "c-parse.y" -{ expand_end_loop (); ; - break;} -case 345: -#line 1660 "c-parse.y" -{ emit_line_note (input_filename, lineno); - expand_exit_loop_if_false (NULL_PTR, - truthvalue_conversion (yyvsp[-2].ttype)); - expand_end_loop (); ; - break;} -case 346: -#line 1666 "c-parse.y" -{ expand_end_loop (); ; - break;} -case 347: -#line 1669 "c-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); - /* See comment in `while' alternative, above. */ - emit_nop (); - if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype); - /* Next step is to call expand_start_loop_continue_elsewhere, - but wait till after we parse the entire for (...). - Otherwise, invalid input might cause us to call that - fn without calling expand_end_loop. */ - ; - break;} -case 348: -#line 1681 "c-parse.y" -{ yyvsp[0].lineno = lineno; - yyval.filename = input_filename; ; - break;} -case 349: -#line 1684 "c-parse.y" -{ - /* Start the loop. Doing this after parsing - all the expressions ensures we will end the loop. */ - expand_start_loop_continue_elsewhere (1); - /* Emit the end-test, with a line number. */ - emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno); - if (yyvsp[-4].ttype) - expand_exit_loop_if_false (NULL_PTR, - truthvalue_conversion (yyvsp[-4].ttype)); - yyvsp[-3].lineno = lineno; - yyvsp[-2].filename = input_filename; - position_after_white_space (); ; - break;} -case 350: -#line 1697 "c-parse.y" -{ /* Emit the increment expression, with a line number. */ - emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno); - expand_loop_continue_here (); - if (yyvsp[-3].ttype) - c_expand_expr_stmt (yyvsp[-3].ttype); - expand_end_loop (); ; - break;} -case 351: -#line 1704 "c-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); - c_expand_start_case (yyvsp[-1].ttype); - position_after_white_space (); ; - break;} -case 352: -#line 1709 "c-parse.y" -{ expand_end_case (yyvsp[-3].ttype); ; - break;} -case 353: -#line 1711 "c-parse.y" -{ tree break_stmt = build_break_stmt (); - stmt_count++; - genrtl_break_stmt (); ; - break;} -case 354: -#line 1715 "c-parse.y" -{ tree continue_stmt = build_continue_stmt (); - stmt_count++; - genrtl_continue_stmt (); ; - break;} -case 355: -#line 1719 "c-parse.y" -{ tree return_stmt = build_return_stmt (NULL_TREE); - stmt_count++; - genrtl_return_stmt (RETURN_EXPR(return_stmt)); ; - break;} -case 356: -#line 1723 "c-parse.y" -{ tree return_stmt = build_return_stmt (yyvsp[-1].ttype); - stmt_count++; - genrtl_return_stmt (RETURN_EXPR(return_stmt)); ; - break;} -case 357: -#line 1727 "c-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno); - STRIP_NOPS (yyvsp[-2].ttype); - if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR - && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST) - || TREE_CODE (yyvsp[-2].ttype) == STRING_CST) - expand_asm (yyvsp[-2].ttype); - else - error ("argument of `asm' is not a constant string"); ; - break;} -case 358: -#line 1738 "c-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno); - c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, - yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); ; - break;} -case 359: -#line 1745 "c-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno); - c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, - yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); ; - break;} -case 360: -#line 1753 "c-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno); - c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, - yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); ; - break;} -case 361: -#line 1759 "c-parse.y" -{ tree decl; - stmt_count++; - emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); - decl = lookup_label (yyvsp[-1].ttype); - if (decl != 0) - { - TREE_USED (decl) = 1; - expand_goto (decl); - } - ; - break;} -case 362: -#line 1770 "c-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids `goto *expr;'"); - stmt_count++; - emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); - expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ; - break;} -case 365: -#line 1785 "c-parse.y" -{ - /* The value returned by this action is */ - /* 1 if everything is OK */ - /* 0 in case of error or already bound iterator */ - - yyval.itype = 0; - if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL) - error ("invalid `for (ITERATOR)' syntax"); - else if (! ITERATOR_P (yyvsp[-1].ttype)) - error ("`%s' is not an iterator", - IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype))); - else if (ITERATOR_BOUND_P (yyvsp[-1].ttype)) - error ("`for (%s)' inside expansion of same iterator", - IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype))); - else - { - yyval.itype = 1; - iterator_for_loop_start (yyvsp[-1].ttype); - } - ; - break;} -case 366: -#line 1806 "c-parse.y" -{ - if (yyvsp[-1].itype) - iterator_for_loop_end (yyvsp[-3].ttype); - ; - break;} -case 367: -#line 1837 "c-parse.y" -{ tree case_label_tree = build_case_label (yyvsp[-1].ttype, NULL_TREE); - stmt_count++; - genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree)); - position_after_white_space (); - ; - break;} -case 368: -#line 1843 "c-parse.y" -{ tree case_label_tree = build_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); - stmt_count++; - genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree)); - position_after_white_space (); - ; - break;} -case 369: -#line 1849 "c-parse.y" -{ tree case_label_tree = build_case_label (NULL_TREE, NULL_TREE); - stmt_count++; - genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree)); - position_after_white_space (); - ; - break;} -case 370: -#line 1855 "c-parse.y" -{ tree label = define_label (input_filename, lineno, yyvsp[-2].ttype); - stmt_count++; - emit_nop (); - if (label) - { - expand_label (label); - decl_attributes (label, yyvsp[0].ttype, NULL_TREE); - } - position_after_white_space (); ; - break;} -case 371: -#line 1870 "c-parse.y" -{ emit_line_note (input_filename, lineno); - yyval.ttype = NULL_TREE; ; - break;} -case 372: -#line 1873 "c-parse.y" -{ emit_line_note (input_filename, lineno); ; - break;} -case 373: -#line 1878 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 375: -#line 1885 "c-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 378: -#line 1892 "c-parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 379: -#line 1897 "c-parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 380: -#line 1902 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ; - break;} -case 381: -#line 1904 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; - break;} -case 382: -#line 1910 "c-parse.y" -{ pushlevel (0); - clear_parm_order (); - declare_parm_level (0); ; - break;} -case 383: -#line 1914 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; - parmlist_tags_warning (); - poplevel (0, 0, 0); ; - break;} -case 385: -#line 1922 "c-parse.y" -{ tree parm; - if (pedantic) - pedwarn ("ANSI C forbids forward parameter declarations"); - /* Mark the forward decls as such. */ - for (parm = getdecls (); parm; parm = TREE_CHAIN (parm)) - TREE_ASM_WRITTEN (parm) = 1; - clear_parm_order (); ; - break;} -case 386: -#line 1930 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 387: -#line 1932 "c-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; - break;} -case 388: -#line 1938 "c-parse.y" -{ yyval.ttype = get_parm_info (0); ; - break;} -case 389: -#line 1940 "c-parse.y" -{ yyval.ttype = get_parm_info (0); - /* Gcc used to allow this as an extension. However, it does - not work for all targets, and thus has been disabled. - Also, since func (...) and func () are indistinguishable, - it caused problems with the code in expand_builtin which - tries to verify that BUILT_IN_NEXT_ARG is being used - correctly. */ - error ("ANSI C requires a named argument before `...'"); - ; - break;} -case 390: -#line 1950 "c-parse.y" -{ yyval.ttype = get_parm_info (1); ; - break;} -case 391: -#line 1952 "c-parse.y" -{ yyval.ttype = get_parm_info (0); ; - break;} -case 392: -#line 1957 "c-parse.y" -{ push_parm_decl (yyvsp[0].ttype); ; - break;} -case 393: -#line 1959 "c-parse.y" -{ push_parm_decl (yyvsp[0].ttype); ; - break;} -case 394: -#line 1966 "c-parse.y" -{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, - yyvsp[-1].ttype), - build_tree_list (prefix_attributes, - yyvsp[0].ttype)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 395: -#line 1974 "c-parse.y" -{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, - yyvsp[-1].ttype), - build_tree_list (prefix_attributes, - yyvsp[0].ttype)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 396: -#line 1982 "c-parse.y" -{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, - yyvsp[-1].ttype), - build_tree_list (prefix_attributes, - yyvsp[0].ttype)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 397: -#line 1990 "c-parse.y" -{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, - yyvsp[-1].ttype), - build_tree_list (prefix_attributes, - yyvsp[0].ttype)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 398: -#line 1999 "c-parse.y" -{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, - yyvsp[-1].ttype), - build_tree_list (prefix_attributes, - yyvsp[0].ttype)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 399: -#line 2012 "c-parse.y" -{ pushlevel (0); - clear_parm_order (); - declare_parm_level (1); ; - break;} -case 400: -#line 2016 "c-parse.y" -{ yyval.ttype = yyvsp[0].ttype; - parmlist_tags_warning (); - poplevel (0, 0, 0); ; - break;} -case 402: -#line 2024 "c-parse.y" -{ tree t; - for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t)) - if (TREE_VALUE (t) == NULL_TREE) - error ("`...' in old-style identifier list"); - yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 403: -#line 2034 "c-parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 404: -#line 2036 "c-parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; - break;} -case 405: -#line 2042 "c-parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 406: -#line 2044 "c-parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; - break;} -case 407: -#line 2049 "c-parse.y" -{ yyval.ttype = SAVE_WARN_FLAGS(); - pedantic = 0; - warn_pointer_arith = 0; ; - break;} -} - /* the action file gets copied in in place of this dollarsign */ -#line 543 "/usr/lib/bison.simple" - - yyvsp -= yylen; - yyssp -= yylen; -#ifdef YYLSP_NEEDED - yylsp -= yylen; -#endif - -#if YYDEBUG != 0 - if (yydebug) - { - short *ssp1 = yyss - 1; - fprintf (stderr, "state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif - - *++yyvsp = yyval; - -#ifdef YYLSP_NEEDED - yylsp++; - if (yylen == 0) - { - yylsp->first_line = yylloc.first_line; - yylsp->first_column = yylloc.first_column; - yylsp->last_line = (yylsp-1)->last_line; - yylsp->last_column = (yylsp-1)->last_column; - yylsp->text = 0; - } - else - { - yylsp->last_line = (yylsp+yylen-1)->last_line; - yylsp->last_column = (yylsp+yylen-1)->last_column; - } -#endif - - /* Now "shift" the result of the reduction. - Determine what state that goes to, - based on the state we popped back to - and the rule number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; - - goto yynewstate; - -yyerrlab: /* here on detecting error */ - - if (! yyerrstatus) - /* If not already recovering from an error, report this error. */ - { - ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - int size = 0; - char *msg; - int x, count; - - count = 0; - /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - size += strlen(yytname[x]) + 15, count++; - msg = (char *) malloc(size + 15); - if (msg != 0) - { - strcpy(msg, "parse error"); - - if (count < 5) - { - count = 0; - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - { - strcat(msg, count == 0 ? ", expecting `" : " or `"); - strcat(msg, yytname[x]); - strcat(msg, "'"); - count++; - } - } - yyerror(msg); - free(msg); - } - else - yyerror ("parse error; also virtual memory exceeded"); - } - else -#endif /* YYERROR_VERBOSE */ - yyerror("parse error"); - } - - goto yyerrlab1; -yyerrlab1: /* here on error raised explicitly by an action */ - - if (yyerrstatus == 3) - { - /* if just tried and failed to reuse lookahead token after an error, discard it. */ - - /* return failure if at end of input */ - if (yychar == YYEOF) - YYABORT; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); -#endif - - yychar = YYEMPTY; - } - - /* Else will try to reuse lookahead token - after shifting the error token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - -yyerrdefault: /* current state does not do anything special for the error token. */ - -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ - if (yyn) goto yydefault; -#endif - -yyerrpop: /* pop the current state because it cannot handle the error token */ - - if (yyssp == yyss) YYABORT; - yyvsp--; - yystate = *--yyssp; -#ifdef YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG != 0 - if (yydebug) - { - short *ssp1 = yyss - 1; - fprintf (stderr, "Error: state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif - -yyerrhandle: - - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - - if (yyn == YYFINAL) - YYACCEPT; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting error token, "); -#endif - - *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - yystate = yyn; - goto yynewstate; - - yyacceptlab: - /* YYACCEPT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 0; - - yyabortlab: - /* YYABORT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 1; -} -#line 2054 "c-parse.y" - diff --git a/gcc/c-parse.h b/gcc/c-parse.h deleted file mode 100644 index f93aef0a566..00000000000 --- a/gcc/c-parse.h +++ /dev/null @@ -1,69 +0,0 @@ -typedef union {long itype; tree ttype; enum tree_code code; - const char *filename; int lineno; int ends_in_label; } YYSTYPE; -#define IDENTIFIER 257 -#define TYPENAME 258 -#define SCSPEC 259 -#define TYPESPEC 260 -#define TYPE_QUAL 261 -#define CONSTANT 262 -#define STRING 263 -#define ELLIPSIS 264 -#define SIZEOF 265 -#define ENUM 266 -#define STRUCT 267 -#define UNION 268 -#define IF 269 -#define ELSE 270 -#define WHILE 271 -#define DO 272 -#define FOR 273 -#define SWITCH 274 -#define CASE 275 -#define DEFAULT 276 -#define BREAK 277 -#define CONTINUE 278 -#define RETURN 279 -#define GOTO 280 -#define ASM_KEYWORD 281 -#define TYPEOF 282 -#define ALIGNOF 283 -#define ATTRIBUTE 284 -#define EXTENSION 285 -#define LABEL 286 -#define REALPART 287 -#define IMAGPART 288 -#define VA_ARG 289 -#define PTR_VALUE 290 -#define PTR_BASE 291 -#define PTR_EXTENT 292 -#define END_OF_LINE 293 -#define ASSIGN 294 -#define OROR 295 -#define ANDAND 296 -#define EQCOMPARE 297 -#define ARITHCOMPARE 298 -#define LSHIFT 299 -#define RSHIFT 300 -#define UNARY 301 -#define PLUSPLUS 302 -#define MINUSMINUS 303 -#define HYPERUNARY 304 -#define POINTSAT 305 -#define INTERFACE 306 -#define IMPLEMENTATION 307 -#define END 308 -#define SELECTOR 309 -#define DEFS 310 -#define ENCODE 311 -#define CLASSNAME 312 -#define PUBLIC 313 -#define PRIVATE 314 -#define PROTECTED 315 -#define PROTOCOL 316 -#define OBJECTNAME 317 -#define CLASS 318 -#define ALIAS 319 -#define OBJC_STRING 320 - - -extern YYSTYPE yylval; diff --git a/gcc/c-parse.y b/gcc/c-parse.y deleted file mode 100644 index 11b06569acd..00000000000 --- a/gcc/c-parse.y +++ /dev/null @@ -1,2054 +0,0 @@ -/*WARNING: This file is automatically generated!*/ -/* YACC parser for C syntax and for Objective C. -*-c-*- - Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, - 1997, 1998, 1999, 2000 Free Software Foundation, Inc. - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* This file defines the grammar of C and that of Objective C. - ifobjc ... end ifobjc conditionals contain code for Objective C only. - ifc ... end ifc conditionals contain code for C only. - Sed commands in Makefile.in are used to convert this file into - c-parse.y and into objc-parse.y. */ - -/* To whomever it may concern: I have heard that such a thing was once - written by AT&T, but I have never seen it. */ - -%expect 53 - -%{ -#include "config.h" -#include "system.h" -#include -#include "tree.h" -#include "input.h" -#include "c-lex.h" -#include "c-tree.h" -#include "flags.h" -#include "output.h" -#include "toplev.h" -#include "ggc.h" - -#ifdef MULTIBYTE_CHARS -#include -#endif - - -/* Since parsers are distinct for each language, put the language string - definition here. */ -const char * const language_string = "GNU C"; - -/* Like YYERROR but do call yyerror. */ -#define YYERROR1 { yyerror ("syntax error"); YYERROR; } - -/* Cause the `yydebug' variable to be defined. */ -#define YYDEBUG 1 -%} - -%start program - -%union {long itype; tree ttype; enum tree_code code; - const char *filename; int lineno; int ends_in_label; } - -/* All identifiers that are not reserved words - and are not declared typedefs in the current block */ -%token IDENTIFIER - -/* All identifiers that are declared typedefs in the current block. - In some contexts, they are treated just like IDENTIFIER, - but they can also serve as typespecs in declarations. */ -%token TYPENAME - -/* Reserved words that specify storage class. - yylval contains an IDENTIFIER_NODE which indicates which one. */ -%token SCSPEC - -/* Reserved words that specify type. - yylval contains an IDENTIFIER_NODE which indicates which one. */ -%token TYPESPEC - -/* Reserved words that qualify type: "const", "volatile", or "restrict". - yylval contains an IDENTIFIER_NODE which indicates which one. */ -%token TYPE_QUAL - -/* Character or numeric constants. - yylval is the node for the constant. */ -%token CONSTANT - -/* String constants in raw form. - yylval is a STRING_CST node. */ -%token STRING - -/* "...", used for functions with variable arglists. */ -%token ELLIPSIS - -/* the reserved words */ -/* SCO include files test "ASM", so use something else. */ -%token SIZEOF ENUM STRUCT UNION IF ELSE WHILE DO FOR SWITCH CASE DEFAULT -%token BREAK CONTINUE RETURN GOTO ASM_KEYWORD TYPEOF ALIGNOF -%token ATTRIBUTE EXTENSION LABEL -%token REALPART IMAGPART VA_ARG -%token PTR_VALUE PTR_BASE PTR_EXTENT - -/* Used in c-lex.c for parsing pragmas. */ -%token END_OF_LINE - -/* Add precedence rules to solve dangling else s/r conflict */ -%nonassoc IF -%nonassoc ELSE - -/* Define the operator tokens and their precedences. - The value is an integer because, if used, it is the tree code - to use in the expression made from the operator. */ - -%right ASSIGN '=' -%right '?' ':' -%left OROR -%left ANDAND -%left '|' -%left '^' -%left '&' -%left EQCOMPARE -%left ARITHCOMPARE -%left LSHIFT RSHIFT -%left '+' '-' -%left '*' '/' '%' -%right UNARY PLUSPLUS MINUSMINUS -%left HYPERUNARY -%left POINTSAT '.' '(' '[' - -/* The Objective-C keywords. These are included in C and in - Objective C, so that the token codes are the same in both. */ -%token INTERFACE IMPLEMENTATION END SELECTOR DEFS ENCODE -%token CLASSNAME PUBLIC PRIVATE PROTECTED PROTOCOL OBJECTNAME CLASS ALIAS - -/* Objective-C string constants in raw form. - yylval is an OBJC_STRING_CST node. */ -%token OBJC_STRING - - -%type unop - -%type identifier IDENTIFIER TYPENAME CONSTANT expr nonnull_exprlist exprlist -%type expr_no_commas cast_expr unary_expr primary string STRING -%type typed_declspecs reserved_declspecs -%type typed_typespecs reserved_typespecquals -%type declmods typespec typespecqual_reserved -%type typed_declspecs_no_prefix_attr reserved_declspecs_no_prefix_attr -%type declmods_no_prefix_attr -%type SCSPEC TYPESPEC TYPE_QUAL nonempty_type_quals maybe_type_qual -%type initdecls notype_initdecls initdcl notype_initdcl -%type init maybeasm -%type asm_operands nonnull_asm_operands asm_operand asm_clobbers -%type maybe_attribute attributes attribute attribute_list attrib -%type any_word extension - -%type compstmt compstmt_nostart compstmt_primary_start - -%type declarator -%type notype_declarator after_type_declarator -%type parm_declarator - -%type structsp component_decl_list component_decl_list2 -%type component_decl components component_declarator -%type enumlist enumerator -%type struct_head union_head enum_head -%type typename absdcl absdcl1 type_quals -%type xexpr parms parm identifiers - -%type parmlist parmlist_1 parmlist_2 -%type parmlist_or_identifiers parmlist_or_identifiers_1 -%type identifiers_or_typenames - -%type setspecs - -%type lineno_stmt_or_label lineno_stmt_or_labels stmt_or_label - -%type save_filename -%type save_lineno - - -%{ -/* Number of statements (loosely speaking) and compound statements - seen so far. */ -static int stmt_count; -static int compstmt_count; - -/* Input file and line number of the end of the body of last simple_if; - used by the stmt-rule immediately after simple_if returns. */ -static const char *if_stmt_file; -static int if_stmt_line; - -/* List of types and structure classes of the current declaration. */ -static tree current_declspecs = NULL_TREE; -static tree prefix_attributes = NULL_TREE; - -/* Stack of saved values of current_declspecs and prefix_attributes. */ -static tree declspec_stack; - -/* For __extension__, save/restore the warning flags which are - controlled by __extension__. */ -#define SAVE_WARN_FLAGS() \ - size_int (pedantic | (warn_pointer_arith << 1)) -#define RESTORE_WARN_FLAGS(tval) \ - do { \ - int val = tree_low_cst (tval, 0); \ - pedantic = val & 1; \ - warn_pointer_arith = (val >> 1) & 1; \ - } while (0) - - -/* Tell yyparse how to print a token's value, if yydebug is set. */ - -#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL) -extern void yyprint PARAMS ((FILE *, int, YYSTYPE)); - -/* Add GC roots for variables local to this file. */ -void -c_parse_init () -{ - ggc_add_tree_root (&declspec_stack, 1); - ggc_add_tree_root (¤t_declspecs, 1); - ggc_add_tree_root (&prefix_attributes, 1); -} - -%} - -%% -program: /* empty */ - { if (pedantic) - pedwarn ("ANSI C forbids an empty source file"); - finish_file (); - } - | extdefs - { - /* In case there were missing closebraces, - get us back to the global binding level. */ - while (! global_bindings_p ()) - poplevel (0, 0, 0); - finish_file (); - } - ; - -/* the reason for the strange actions in this rule - is so that notype_initdecls when reached via datadef - can find a valid list of type and sc specs in $0. */ - -extdefs: - {$$ = NULL_TREE; } extdef - | extdefs {$$ = NULL_TREE; } extdef - ; - -extdef: - fndef - | datadef - | ASM_KEYWORD '(' expr ')' ';' - { STRIP_NOPS ($3); - if ((TREE_CODE ($3) == ADDR_EXPR - && TREE_CODE (TREE_OPERAND ($3, 0)) == STRING_CST) - || TREE_CODE ($3) == STRING_CST) - assemble_asm ($3); - else - error ("argument of `asm' is not a constant string"); } - | extension extdef - { RESTORE_WARN_FLAGS ($1); } - ; - -datadef: - setspecs notype_initdecls ';' - { if (pedantic) - error ("ANSI C forbids data definition with no type or storage class"); - else if (!flag_traditional) - warning ("data definition has no type or storage class"); - - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods setspecs notype_initdecls ';' - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs setspecs initdecls ';' - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods ';' - { pedwarn ("empty declaration"); } - | typed_declspecs ';' - { shadow_tag ($1); } - | error ';' - | error '}' - | ';' - { if (pedantic) - pedwarn ("ANSI C does not allow extra `;' outside of a function"); } - ; - -fndef: - typed_declspecs setspecs declarator - { if (! start_function (current_declspecs, $3, - prefix_attributes, NULL_TREE)) - YYERROR1; - reinit_parse_for_function (); } - old_style_parm_decls - { store_parm_decls (); } - compstmt_or_error - { finish_function (0); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs setspecs declarator error - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods setspecs notype_declarator - { if (! start_function (current_declspecs, $3, - prefix_attributes, NULL_TREE)) - YYERROR1; - reinit_parse_for_function (); } - old_style_parm_decls - { store_parm_decls (); } - compstmt_or_error - { finish_function (0); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods setspecs notype_declarator error - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | setspecs notype_declarator - { if (! start_function (NULL_TREE, $2, - prefix_attributes, NULL_TREE)) - YYERROR1; - reinit_parse_for_function (); } - old_style_parm_decls - { store_parm_decls (); } - compstmt_or_error - { finish_function (0); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | setspecs notype_declarator error - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - ; - -identifier: - IDENTIFIER - | TYPENAME - ; - -unop: '&' - { $$ = ADDR_EXPR; } - | '-' - { $$ = NEGATE_EXPR; } - | '+' - { $$ = CONVERT_EXPR; } - | PLUSPLUS - { $$ = PREINCREMENT_EXPR; } - | MINUSMINUS - { $$ = PREDECREMENT_EXPR; } - | '~' - { $$ = BIT_NOT_EXPR; } - | '!' - { $$ = TRUTH_NOT_EXPR; } - ; - -expr: nonnull_exprlist - { $$ = build_compound_expr ($1); } - ; - -exprlist: - /* empty */ - { $$ = NULL_TREE; } - | nonnull_exprlist - ; - -nonnull_exprlist: - expr_no_commas - { $$ = build_tree_list (NULL_TREE, $1); } - | nonnull_exprlist ',' expr_no_commas - { chainon ($1, build_tree_list (NULL_TREE, $3)); } - ; - -unary_expr: - primary - | '*' cast_expr %prec UNARY - { $$ = build_indirect_ref ($2, "unary *"); } - /* __extension__ turns off -pedantic for following primary. */ - | extension cast_expr %prec UNARY - { $$ = $2; - RESTORE_WARN_FLAGS ($1); } - | unop cast_expr %prec UNARY - { $$ = build_unary_op ($1, $2, 0); - overflow_warning ($$); } - /* Refer to the address of a label as a pointer. */ - | ANDAND identifier - { tree label = lookup_label ($2); - if (pedantic) - pedwarn ("ANSI C forbids `&&'"); - if (label == 0) - $$ = null_pointer_node; - else - { - TREE_USED (label) = 1; - $$ = build1 (ADDR_EXPR, ptr_type_node, label); - TREE_CONSTANT ($$) = 1; - } - } -/* This seems to be impossible on some machines, so let's turn it off. - You can use __builtin_next_arg to find the anonymous stack args. - | '&' ELLIPSIS - { tree types = TYPE_ARG_TYPES (TREE_TYPE (current_function_decl)); - $$ = error_mark_node; - if (TREE_VALUE (tree_last (types)) == void_type_node) - error ("`&...' used in function with fixed number of arguments"); - else - { - if (pedantic) - pedwarn ("ANSI C forbids `&...'"); - $$ = tree_last (DECL_ARGUMENTS (current_function_decl)); - $$ = build_unary_op (ADDR_EXPR, $$, 0); - } } -*/ - | sizeof unary_expr %prec UNARY - { skip_evaluation--; - if (TREE_CODE ($2) == COMPONENT_REF - && DECL_C_BIT_FIELD (TREE_OPERAND ($2, 1))) - error ("`sizeof' applied to a bit-field"); - $$ = c_sizeof (TREE_TYPE ($2)); } - | sizeof '(' typename ')' %prec HYPERUNARY - { skip_evaluation--; - $$ = c_sizeof (groktypename ($3)); } - | alignof unary_expr %prec UNARY - { skip_evaluation--; - $$ = c_alignof_expr ($2); } - | alignof '(' typename ')' %prec HYPERUNARY - { skip_evaluation--; - $$ = c_alignof (groktypename ($3)); } - | REALPART cast_expr %prec UNARY - { $$ = build_unary_op (REALPART_EXPR, $2, 0); } - | IMAGPART cast_expr %prec UNARY - { $$ = build_unary_op (IMAGPART_EXPR, $2, 0); } - | VA_ARG '(' expr_no_commas ',' typename ')' - { $$ = build_va_arg ($3, groktypename ($5)); } - ; - -sizeof: - SIZEOF { skip_evaluation++; } - ; - -alignof: - ALIGNOF { skip_evaluation++; } - ; - -cast_expr: - unary_expr - | '(' typename ')' cast_expr %prec UNARY - { tree type = groktypename ($2); - $$ = build_c_cast (type, $4); } - | '(' typename ')' '{' - { start_init (NULL_TREE, NULL, 0); - $2 = groktypename ($2); - really_start_incremental_init ($2); } - initlist_maybe_comma '}' %prec UNARY - { const char *name; - tree result = pop_init_level (0); - tree type = $2; - finish_init (); - - if (pedantic && ! flag_isoc99) - pedwarn ("ANSI C forbids constructor expressions"); - if (TYPE_NAME (type) != 0) - { - if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE) - name = IDENTIFIER_POINTER (TYPE_NAME (type)); - else - name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type))); - } - else - name = ""; - $$ = result; - if (TREE_CODE (type) == ARRAY_TYPE && !COMPLETE_TYPE_P (type)) - { - int failure = complete_array_type (type, $$, 1); - if (failure) - abort (); - } - } - ; - -expr_no_commas: - cast_expr - | expr_no_commas '+' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas '-' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas '*' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas '/' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas '%' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas LSHIFT expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas RSHIFT expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas ARITHCOMPARE expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas EQCOMPARE expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas '&' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas '|' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas '^' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas ANDAND - { $1 = truthvalue_conversion (default_conversion ($1)); - skip_evaluation += $1 == boolean_false_node; } - expr_no_commas - { skip_evaluation -= $1 == boolean_false_node; - $$ = parser_build_binary_op (TRUTH_ANDIF_EXPR, $1, $4); } - | expr_no_commas OROR - { $1 = truthvalue_conversion (default_conversion ($1)); - skip_evaluation += $1 == boolean_true_node; } - expr_no_commas - { skip_evaluation -= $1 == boolean_true_node; - $$ = parser_build_binary_op (TRUTH_ORIF_EXPR, $1, $4); } - | expr_no_commas '?' - { $1 = truthvalue_conversion (default_conversion ($1)); - skip_evaluation += $1 == boolean_false_node; } - expr ':' - { skip_evaluation += (($1 == boolean_true_node) - - ($1 == boolean_false_node)); } - expr_no_commas - { skip_evaluation -= $1 == boolean_true_node; - $$ = build_conditional_expr ($1, $4, $7); } - | expr_no_commas '?' - { if (pedantic) - pedwarn ("ANSI C forbids omitting the middle term of a ?: expression"); - /* Make sure first operand is calculated only once. */ - $2 = save_expr ($1); - $1 = truthvalue_conversion (default_conversion ($2)); - skip_evaluation += $1 == boolean_true_node; } - ':' expr_no_commas - { skip_evaluation -= $1 == boolean_true_node; - $$ = build_conditional_expr ($1, $2, $5); } - | expr_no_commas '=' expr_no_commas - { char class; - $$ = build_modify_expr ($1, NOP_EXPR, $3); - class = TREE_CODE_CLASS (TREE_CODE ($$)); - if (class == 'e' || class == '1' - || class == '2' || class == '<') - C_SET_EXP_ORIGINAL_CODE ($$, MODIFY_EXPR); - } - | expr_no_commas ASSIGN expr_no_commas - { char class; - $$ = build_modify_expr ($1, $2, $3); - /* This inhibits warnings in truthvalue_conversion. */ - class = TREE_CODE_CLASS (TREE_CODE ($$)); - if (class == 'e' || class == '1' - || class == '2' || class == '<') - C_SET_EXP_ORIGINAL_CODE ($$, ERROR_MARK); - } - ; - -primary: - IDENTIFIER - { - if (yychar == YYEMPTY) - yychar = YYLEX; - $$ = build_external_ref ($1, yychar == '('); - } - | CONSTANT - | string - { $$ = combine_strings ($1); } - | '(' expr ')' - { char class = TREE_CODE_CLASS (TREE_CODE ($2)); - if (class == 'e' || class == '1' - || class == '2' || class == '<') - C_SET_EXP_ORIGINAL_CODE ($2, ERROR_MARK); - $$ = $2; } - | '(' error ')' - { $$ = error_mark_node; } - | compstmt_primary_start compstmt_nostart ')' - { tree rtl_exp; - if (pedantic) - pedwarn ("ANSI C forbids braced-groups within expressions"); - pop_iterator_stack (); - pop_label_level (); - rtl_exp = expand_end_stmt_expr ($1); - /* The statements have side effects, so the group does. */ - TREE_SIDE_EFFECTS (rtl_exp) = 1; - - if (TREE_CODE ($2) == BLOCK) - { - /* Make a BIND_EXPR for the BLOCK already made. */ - $$ = build (BIND_EXPR, TREE_TYPE (rtl_exp), - NULL_TREE, rtl_exp, $2); - /* Remove the block from the tree at this point. - It gets put back at the proper place - when the BIND_EXPR is expanded. */ - delete_block ($2); - } - else - $$ = $2; - } - | compstmt_primary_start error ')' - { - /* Make sure we call expand_end_stmt_expr. Otherwise - we are likely to lose sequences and crash later. */ - pop_iterator_stack (); - pop_label_level (); - expand_end_stmt_expr ($1); - $$ = error_mark_node; - } - | primary '(' exprlist ')' %prec '.' - { $$ = build_function_call ($1, $3); } - | primary '[' expr ']' %prec '.' - { $$ = build_array_ref ($1, $3); } - | primary '.' identifier - { - $$ = build_component_ref ($1, $3); - } - | primary POINTSAT identifier - { - tree expr = build_indirect_ref ($1, "->"); - - $$ = build_component_ref (expr, $3); - } - | primary PLUSPLUS - { $$ = build_unary_op (POSTINCREMENT_EXPR, $1, 0); } - | primary MINUSMINUS - { $$ = build_unary_op (POSTDECREMENT_EXPR, $1, 0); } - ; - -/* Produces a STRING_CST with perhaps more STRING_CSTs chained onto it. */ -string: - STRING - | string STRING - { $$ = chainon ($1, $2); - if (warn_traditional && !in_system_header) - warning ("Use of ANSI string concatenation"); - } - ; - - -old_style_parm_decls: - /* empty */ - | datadecls - | datadecls ELLIPSIS - /* ... is used here to indicate a varargs function. */ - { c_mark_varargs (); - if (pedantic) - pedwarn ("ANSI C does not permit use of `varargs.h'"); } - ; - -/* The following are analogous to lineno_decl, decls and decl - except that they do not allow nested functions. - They are used for old-style parm decls. */ -lineno_datadecl: - save_filename save_lineno datadecl - { } - ; - -datadecls: - lineno_datadecl - | errstmt - | datadecls lineno_datadecl - | lineno_datadecl errstmt - ; - -/* We don't allow prefix attributes here because they cause reduce/reduce - conflicts: we can't know whether we're parsing a function decl with - attribute suffix, or function defn with attribute prefix on first old - style parm. */ -datadecl: - typed_declspecs_no_prefix_attr setspecs initdecls ';' - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods_no_prefix_attr setspecs notype_initdecls ';' - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs_no_prefix_attr ';' - { shadow_tag_warned ($1, 1); - pedwarn ("empty declaration"); } - | declmods_no_prefix_attr ';' - { pedwarn ("empty declaration"); } - ; - -/* This combination which saves a lineno before a decl - is the normal thing to use, rather than decl itself. - This is to avoid shift/reduce conflicts in contexts - where statement labels are allowed. */ -lineno_decl: - save_filename save_lineno decl - { } - ; - -decls: - lineno_decl - | errstmt - | decls lineno_decl - | lineno_decl errstmt - ; - -/* records the type and storage class specs to use for processing - the declarators that follow. - Maintains a stack of outer-level values of current_declspecs, - for the sake of parm declarations nested in function declarators. */ -setspecs: /* empty */ - { pending_xref_error (); - declspec_stack = tree_cons (prefix_attributes, - current_declspecs, - declspec_stack); - split_specs_attrs ($0, - ¤t_declspecs, &prefix_attributes); } - ; - -/* ??? Yuck. See after_type_declarator. */ -setattrs: /* empty */ - { prefix_attributes = chainon (prefix_attributes, $0); } - ; - -decl: - typed_declspecs setspecs initdecls ';' - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods setspecs notype_initdecls ';' - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs setspecs nested_function - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods setspecs notype_nested_function - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs ';' - { shadow_tag ($1); } - | declmods ';' - { pedwarn ("empty declaration"); } - | extension decl - { RESTORE_WARN_FLAGS ($1); } - ; - -/* Declspecs which contain at least one type specifier or typedef name. - (Just `const' or `volatile' is not enough.) - A typedef'd name following these is taken as a name to be declared. - Declspecs have a non-NULL TREE_VALUE, attributes do not. */ - -typed_declspecs: - typespec reserved_declspecs - { $$ = tree_cons (NULL_TREE, $1, $2); } - | declmods typespec reserved_declspecs - { $$ = chainon ($3, tree_cons (NULL_TREE, $2, $1)); } - ; - -reserved_declspecs: /* empty */ - { $$ = NULL_TREE; } - | reserved_declspecs typespecqual_reserved - { $$ = tree_cons (NULL_TREE, $2, $1); } - | reserved_declspecs SCSPEC - { if (extra_warnings) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER ($2)); - $$ = tree_cons (NULL_TREE, $2, $1); } - | reserved_declspecs attributes - { $$ = tree_cons ($2, NULL_TREE, $1); } - ; - -typed_declspecs_no_prefix_attr: - typespec reserved_declspecs_no_prefix_attr - { $$ = tree_cons (NULL_TREE, $1, $2); } - | declmods_no_prefix_attr typespec reserved_declspecs_no_prefix_attr - { $$ = chainon ($3, tree_cons (NULL_TREE, $2, $1)); } - ; - -reserved_declspecs_no_prefix_attr: - /* empty */ - { $$ = NULL_TREE; } - | reserved_declspecs_no_prefix_attr typespecqual_reserved - { $$ = tree_cons (NULL_TREE, $2, $1); } - | reserved_declspecs_no_prefix_attr SCSPEC - { if (extra_warnings) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER ($2)); - $$ = tree_cons (NULL_TREE, $2, $1); } - ; - -/* List of just storage classes, type modifiers, and prefix attributes. - A declaration can start with just this, but then it cannot be used - to redeclare a typedef-name. - Declspecs have a non-NULL TREE_VALUE, attributes do not. */ - -declmods: - declmods_no_prefix_attr - { $$ = $1; } - | attributes - { $$ = tree_cons ($1, NULL_TREE, NULL_TREE); } - | declmods declmods_no_prefix_attr - { $$ = chainon ($2, $1); } - | declmods attributes - { $$ = tree_cons ($2, NULL_TREE, $1); } - ; - -declmods_no_prefix_attr: - TYPE_QUAL - { $$ = tree_cons (NULL_TREE, $1, NULL_TREE); - TREE_STATIC ($$) = 1; } - | SCSPEC - { $$ = tree_cons (NULL_TREE, $1, NULL_TREE); } - | declmods_no_prefix_attr TYPE_QUAL - { $$ = tree_cons (NULL_TREE, $2, $1); - TREE_STATIC ($$) = 1; } - | declmods_no_prefix_attr SCSPEC - { if (extra_warnings && TREE_STATIC ($1)) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER ($2)); - $$ = tree_cons (NULL_TREE, $2, $1); - TREE_STATIC ($$) = TREE_STATIC ($1); } - ; - - -/* Used instead of declspecs where storage classes are not allowed - (that is, for typenames and structure components). - Don't accept a typedef-name if anything but a modifier precedes it. */ - -typed_typespecs: - typespec reserved_typespecquals - { $$ = tree_cons (NULL_TREE, $1, $2); } - | nonempty_type_quals typespec reserved_typespecquals - { $$ = chainon ($3, tree_cons (NULL_TREE, $2, $1)); } - ; - -reserved_typespecquals: /* empty */ - { $$ = NULL_TREE; } - | reserved_typespecquals typespecqual_reserved - { $$ = tree_cons (NULL_TREE, $2, $1); } - ; - -/* A typespec (but not a type qualifier). - Once we have seen one of these in a declaration, - if a typedef name appears then it is being redeclared. */ - -typespec: TYPESPEC - | structsp - | TYPENAME - { /* For a typedef name, record the meaning, not the name. - In case of `foo foo, bar;'. */ - $$ = lookup_name ($1); } - | TYPEOF '(' expr ')' - { $$ = TREE_TYPE ($3); } - | TYPEOF '(' typename ')' - { $$ = groktypename ($3); } - ; - -/* A typespec that is a reserved word, or a type qualifier. */ - -typespecqual_reserved: TYPESPEC - | TYPE_QUAL - | structsp - ; - -initdecls: - initdcl - | initdecls ',' initdcl - ; - -notype_initdecls: - notype_initdcl - | notype_initdecls ',' initdcl - ; - -maybeasm: - /* empty */ - { $$ = NULL_TREE; } - | ASM_KEYWORD '(' string ')' - { if (TREE_CHAIN ($3)) $3 = combine_strings ($3); - $$ = $3; - } - ; - -initdcl: - declarator maybeasm maybe_attribute '=' - { $$ = start_decl ($1, current_declspecs, 1, - $3, prefix_attributes); - start_init ($$, $2, global_bindings_p ()); } - init -/* Note how the declaration of the variable is in effect while its init is parsed! */ - { finish_init (); - finish_decl ($5, $6, $2); } - | declarator maybeasm maybe_attribute - { tree d = start_decl ($1, current_declspecs, 0, - $3, prefix_attributes); - finish_decl (d, NULL_TREE, $2); - } - ; - -notype_initdcl: - notype_declarator maybeasm maybe_attribute '=' - { $$ = start_decl ($1, current_declspecs, 1, - $3, prefix_attributes); - start_init ($$, $2, global_bindings_p ()); } - init -/* Note how the declaration of the variable is in effect while its init is parsed! */ - { finish_init (); - decl_attributes ($5, $3, prefix_attributes); - finish_decl ($5, $6, $2); } - | notype_declarator maybeasm maybe_attribute - { tree d = start_decl ($1, current_declspecs, 0, - $3, prefix_attributes); - finish_decl (d, NULL_TREE, $2); } - ; -/* the * rules are dummies to accept the Apollo extended syntax - so that the header files compile. */ -maybe_attribute: - /* empty */ - { $$ = NULL_TREE; } - | attributes - { $$ = $1; } - ; - -attributes: - attribute - { $$ = $1; } - | attributes attribute - { $$ = chainon ($1, $2); } - ; - -attribute: - ATTRIBUTE '(' '(' attribute_list ')' ')' - { $$ = $4; } - ; - -attribute_list: - attrib - { $$ = $1; } - | attribute_list ',' attrib - { $$ = chainon ($1, $3); } - ; - -attrib: - /* empty */ - { $$ = NULL_TREE; } - | any_word - { $$ = build_tree_list ($1, NULL_TREE); } - | any_word '(' IDENTIFIER ')' - { $$ = build_tree_list ($1, build_tree_list (NULL_TREE, $3)); } - | any_word '(' IDENTIFIER ',' nonnull_exprlist ')' - { $$ = build_tree_list ($1, tree_cons (NULL_TREE, $3, $5)); } - | any_word '(' exprlist ')' - { $$ = build_tree_list ($1, $3); } - ; - -/* This still leaves out most reserved keywords, - shouldn't we include them? */ - -any_word: - identifier - | SCSPEC - | TYPESPEC - | TYPE_QUAL - ; - -/* Initializers. `init' is the entry point. */ - -init: - expr_no_commas - | '{' - { really_start_incremental_init (NULL_TREE); } - initlist_maybe_comma '}' - { $$ = pop_init_level (0); } - | error - { $$ = error_mark_node; } - ; - -/* `initlist_maybe_comma' is the guts of an initializer in braces. */ -initlist_maybe_comma: - /* empty */ - { if (pedantic) - pedwarn ("ANSI C forbids empty initializer braces"); } - | initlist1 maybecomma - ; - -initlist1: - initelt - | initlist1 ',' initelt - ; - -/* `initelt' is a single element of an initializer. - It may use braces. */ -initelt: - designator_list '=' initval - | designator initval - | identifier ':' - { set_init_label ($1); } - initval - | initval - ; - -initval: - '{' - { push_init_level (0); } - initlist_maybe_comma '}' - { process_init_element (pop_init_level (0)); } - | expr_no_commas - { process_init_element ($1); } - | error - ; - -designator_list: - designator - | designator_list designator - ; - -designator: - '.' identifier - { set_init_label ($2); } - /* These are for labeled elements. The syntax for an array element - initializer conflicts with the syntax for an Objective-C message, - so don't include these productions in the Objective-C grammar. */ - | '[' expr_no_commas ELLIPSIS expr_no_commas ']' - { set_init_index ($2, $4); } - | '[' expr_no_commas ']' - { set_init_index ($2, NULL_TREE); } - ; - -nested_function: - declarator - { if (pedantic) - pedwarn ("ANSI C forbids nested functions"); - - push_function_context (); - if (! start_function (current_declspecs, $1, - prefix_attributes, NULL_TREE)) - { - pop_function_context (); - YYERROR1; - } - reinit_parse_for_function (); } - old_style_parm_decls - { store_parm_decls (); } -/* This used to use compstmt_or_error. - That caused a bug with input `f(g) int g {}', - where the use of YYERROR1 above caused an error - which then was handled by compstmt_or_error. - There followed a repeated execution of that same rule, - which called YYERROR1 again, and so on. */ - compstmt - { finish_function (1); - pop_function_context (); } - ; - -notype_nested_function: - notype_declarator - { if (pedantic) - pedwarn ("ANSI C forbids nested functions"); - - push_function_context (); - if (! start_function (current_declspecs, $1, - prefix_attributes, NULL_TREE)) - { - pop_function_context (); - YYERROR1; - } - reinit_parse_for_function (); } - old_style_parm_decls - { store_parm_decls (); } -/* This used to use compstmt_or_error. - That caused a bug with input `f(g) int g {}', - where the use of YYERROR1 above caused an error - which then was handled by compstmt_or_error. - There followed a repeated execution of that same rule, - which called YYERROR1 again, and so on. */ - compstmt - { finish_function (1); - pop_function_context (); } - ; - -/* Any kind of declarator (thus, all declarators allowed - after an explicit typespec). */ - -declarator: - after_type_declarator - | notype_declarator - ; - -/* A declarator that is allowed only after an explicit typespec. */ - -after_type_declarator: - '(' after_type_declarator ')' - { $$ = $2; } - | after_type_declarator '(' parmlist_or_identifiers %prec '.' - { $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); } -/* | after_type_declarator '(' error ')' %prec '.' - { $$ = build_nt (CALL_EXPR, $1, NULL_TREE, NULL_TREE); - poplevel (0, 0, 0); } */ - | after_type_declarator '[' expr ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, $3); } - | after_type_declarator '[' ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, NULL_TREE); } - | '*' type_quals after_type_declarator %prec UNARY - { $$ = make_pointer_declarator ($2, $3); } - /* ??? Yuck. setattrs is a quick hack. We can't use - prefix_attributes because $1 only applies to this - declarator. We assume setspecs has already been done. - setattrs also avoids 5 reduce/reduce conflicts (otherwise multiple - attributes could be recognized here or in `attributes'). */ - | attributes setattrs after_type_declarator - { $$ = $3; } - | TYPENAME - ; - -/* Kinds of declarator that can appear in a parameter list - in addition to notype_declarator. This is like after_type_declarator - but does not allow a typedef name in parentheses as an identifier - (because it would conflict with a function with that typedef as arg). */ - -parm_declarator: - parm_declarator '(' parmlist_or_identifiers %prec '.' - { $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); } -/* | parm_declarator '(' error ')' %prec '.' - { $$ = build_nt (CALL_EXPR, $1, NULL_TREE, NULL_TREE); - poplevel (0, 0, 0); } */ - | parm_declarator '[' '*' ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, NULL_TREE); - if (! flag_isoc99) - error ("`[*]' in parameter declaration only allowed in ISO C 99"); - } - | parm_declarator '[' expr ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, $3); } - | parm_declarator '[' ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, NULL_TREE); } - | '*' type_quals parm_declarator %prec UNARY - { $$ = make_pointer_declarator ($2, $3); } - /* ??? Yuck. setattrs is a quick hack. We can't use - prefix_attributes because $1 only applies to this - declarator. We assume setspecs has already been done. - setattrs also avoids 5 reduce/reduce conflicts (otherwise multiple - attributes could be recognized here or in `attributes'). */ - | attributes setattrs parm_declarator - { $$ = $3; } - | TYPENAME - ; - -/* A declarator allowed whether or not there has been - an explicit typespec. These cannot redeclare a typedef-name. */ - -notype_declarator: - notype_declarator '(' parmlist_or_identifiers %prec '.' - { $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); } -/* | notype_declarator '(' error ')' %prec '.' - { $$ = build_nt (CALL_EXPR, $1, NULL_TREE, NULL_TREE); - poplevel (0, 0, 0); } */ - | '(' notype_declarator ')' - { $$ = $2; } - | '*' type_quals notype_declarator %prec UNARY - { $$ = make_pointer_declarator ($2, $3); } - | notype_declarator '[' '*' ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, NULL_TREE); - if (! flag_isoc99) - error ("`[*]' in parameter declaration only allowed in ISO C 99"); - } - | notype_declarator '[' expr ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, $3); } - | notype_declarator '[' ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, NULL_TREE); } - /* ??? Yuck. setattrs is a quick hack. We can't use - prefix_attributes because $1 only applies to this - declarator. We assume setspecs has already been done. - setattrs also avoids 5 reduce/reduce conflicts (otherwise multiple - attributes could be recognized here or in `attributes'). */ - | attributes setattrs notype_declarator - { $$ = $3; } - | IDENTIFIER - ; - -struct_head: - STRUCT - { $$ = NULL_TREE; } - | STRUCT attributes - { $$ = $2; } - ; - -union_head: - UNION - { $$ = NULL_TREE; } - | UNION attributes - { $$ = $2; } - ; - -enum_head: - ENUM - { $$ = NULL_TREE; } - | ENUM attributes - { $$ = $2; } - ; - -structsp: - struct_head identifier '{' - { $$ = start_struct (RECORD_TYPE, $2); - /* Start scope of tag before parsing components. */ - } - component_decl_list '}' maybe_attribute - { $$ = finish_struct ($4, $5, chainon ($1, $7)); } - | struct_head '{' component_decl_list '}' maybe_attribute - { $$ = finish_struct (start_struct (RECORD_TYPE, NULL_TREE), - $3, chainon ($1, $5)); - } - | struct_head identifier - { $$ = xref_tag (RECORD_TYPE, $2); } - | union_head identifier '{' - { $$ = start_struct (UNION_TYPE, $2); } - component_decl_list '}' maybe_attribute - { $$ = finish_struct ($4, $5, chainon ($1, $7)); } - | union_head '{' component_decl_list '}' maybe_attribute - { $$ = finish_struct (start_struct (UNION_TYPE, NULL_TREE), - $3, chainon ($1, $5)); - } - | union_head identifier - { $$ = xref_tag (UNION_TYPE, $2); } - | enum_head identifier '{' - { $$ = start_enum ($2); } - enumlist maybecomma_warn '}' maybe_attribute - { $$ = finish_enum ($4, nreverse ($5), - chainon ($1, $8)); } - | enum_head '{' - { $$ = start_enum (NULL_TREE); } - enumlist maybecomma_warn '}' maybe_attribute - { $$ = finish_enum ($3, nreverse ($4), - chainon ($1, $7)); } - | enum_head identifier - { $$ = xref_tag (ENUMERAL_TYPE, $2); } - ; - -maybecomma: - /* empty */ - | ',' - ; - -maybecomma_warn: - /* empty */ - | ',' - { if (pedantic && ! flag_isoc99) - pedwarn ("comma at end of enumerator list"); } - ; - -component_decl_list: - component_decl_list2 - { $$ = $1; } - | component_decl_list2 component_decl - { $$ = chainon ($1, $2); - pedwarn ("no semicolon at end of struct or union"); } - ; - -component_decl_list2: /* empty */ - { $$ = NULL_TREE; } - | component_decl_list2 component_decl ';' - { $$ = chainon ($1, $2); } - | component_decl_list2 ';' - { if (pedantic) - pedwarn ("extra semicolon in struct or union specified"); } - ; - -/* There is a shift-reduce conflict here, because `components' may - start with a `typename'. It happens that shifting (the default resolution) - does the right thing, because it treats the `typename' as part of - a `typed_typespecs'. - - It is possible that this same technique would allow the distinction - between `notype_initdecls' and `initdecls' to be eliminated. - But I am being cautious and not trying it. */ - -component_decl: - typed_typespecs setspecs components - { $$ = $3; - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_typespecs setspecs save_filename save_lineno maybe_attribute - { - /* Support for unnamed structs or unions as members of - structs or unions (which is [a] useful and [b] supports - MS P-SDK). */ - if (pedantic) - pedwarn ("ANSI C doesn't support unnamed structs/unions"); - - $$ = grokfield($3, $4, NULL, current_declspecs, NULL_TREE); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); - } - | nonempty_type_quals setspecs components - { $$ = $3; - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | nonempty_type_quals - { if (pedantic) - pedwarn ("ANSI C forbids member declarations with no members"); - shadow_tag($1); - $$ = NULL_TREE; } - | error - { $$ = NULL_TREE; } - | extension component_decl - { $$ = $2; - RESTORE_WARN_FLAGS ($1); } - ; - -components: - component_declarator - | components ',' component_declarator - { $$ = chainon ($1, $3); } - ; - -component_declarator: - save_filename save_lineno declarator maybe_attribute - { $$ = grokfield ($1, $2, $3, current_declspecs, NULL_TREE); - decl_attributes ($$, $4, prefix_attributes); } - | save_filename save_lineno - declarator ':' expr_no_commas maybe_attribute - { $$ = grokfield ($1, $2, $3, current_declspecs, $5); - decl_attributes ($$, $6, prefix_attributes); } - | save_filename save_lineno ':' expr_no_commas maybe_attribute - { $$ = grokfield ($1, $2, NULL_TREE, current_declspecs, $4); - decl_attributes ($$, $5, prefix_attributes); } - ; - -/* We chain the enumerators in reverse order. - They are put in forward order where enumlist is used. - (The order used to be significant, but no longer is so. - However, we still maintain the order, just to be clean.) */ - -enumlist: - enumerator - | enumlist ',' enumerator - { if ($1 == error_mark_node) - $$ = $1; - else - $$ = chainon ($3, $1); } - | error - { $$ = error_mark_node; } - ; - - -enumerator: - identifier - { $$ = build_enumerator ($1, NULL_TREE); } - | identifier '=' expr_no_commas - { $$ = build_enumerator ($1, $3); } - ; - -typename: - typed_typespecs absdcl - { $$ = build_tree_list ($1, $2); } - | nonempty_type_quals absdcl - { $$ = build_tree_list ($1, $2); } - ; - -absdcl: /* an absolute declarator */ - /* empty */ - { $$ = NULL_TREE; } - | absdcl1 - ; - -nonempty_type_quals: - TYPE_QUAL - { $$ = tree_cons (NULL_TREE, $1, NULL_TREE); } - | nonempty_type_quals TYPE_QUAL - { $$ = tree_cons (NULL_TREE, $2, $1); } - ; - -type_quals: - /* empty */ - { $$ = NULL_TREE; } - | type_quals TYPE_QUAL - { $$ = tree_cons (NULL_TREE, $2, $1); } - ; - -absdcl1: /* a nonempty absolute declarator */ - '(' absdcl1 ')' - { $$ = $2; } - /* `(typedef)1' is `int'. */ - | '*' type_quals absdcl1 %prec UNARY - { $$ = make_pointer_declarator ($2, $3); } - | '*' type_quals %prec UNARY - { $$ = make_pointer_declarator ($2, NULL_TREE); } - | absdcl1 '(' parmlist %prec '.' - { $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); } - | absdcl1 '[' expr ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, $3); } - | absdcl1 '[' ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, NULL_TREE); } - | '(' parmlist %prec '.' - { $$ = build_nt (CALL_EXPR, NULL_TREE, $2, NULL_TREE); } - | '[' expr ']' %prec '.' - { $$ = build_nt (ARRAY_REF, NULL_TREE, $2); } - | '[' ']' %prec '.' - { $$ = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); } - /* ??? It appears we have to support attributes here, however - using prefix_attributes is wrong. */ - | attributes setattrs absdcl1 - { $$ = $3; } - ; - -/* at least one statement, the first of which parses without error. */ -/* stmts is used only after decls, so an invalid first statement - is actually regarded as an invalid decl and part of the decls. */ - -stmts: - lineno_stmt_or_labels - { - if (pedantic && $1) - pedwarn ("ANSI C forbids label at end of compound statement"); - } - ; - -lineno_stmt_or_labels: - lineno_stmt_or_label - | lineno_stmt_or_labels lineno_stmt_or_label - { $$ = $2; } - | lineno_stmt_or_labels errstmt - { $$ = 0; } - ; - -xstmts: - /* empty */ - | stmts - ; - -errstmt: error ';' - ; - -pushlevel: /* empty */ - { emit_line_note (input_filename, lineno); - pushlevel (0); - clear_last_expr (); - expand_start_bindings (0); - } - ; - -/* Read zero or more forward-declarations for labels - that nested functions can jump to. */ -maybe_label_decls: - /* empty */ - | label_decls - { if (pedantic) - pedwarn ("ANSI C forbids label declarations"); } - ; - -label_decls: - label_decl - | label_decls label_decl - ; - -label_decl: - LABEL identifiers_or_typenames ';' - { tree link; - for (link = $2; link; link = TREE_CHAIN (link)) - { - tree label = shadow_label (TREE_VALUE (link)); - C_DECLARED_LABEL_FLAG (label) = 1; - declare_nonlocal_label (label); - } - } - ; - -/* This is the body of a function definition. - It causes syntax errors to ignore to the next openbrace. */ -compstmt_or_error: - compstmt - {} - | error compstmt - ; - -compstmt_start: '{' { compstmt_count++; } - -compstmt_nostart: '}' - { $$ = convert (void_type_node, integer_zero_node); } - | pushlevel maybe_label_decls decls xstmts '}' - { emit_line_note (input_filename, lineno); - expand_end_bindings (getdecls (), 1, 0); - $$ = poplevel (1, 1, 0); } - | pushlevel maybe_label_decls error '}' - { emit_line_note (input_filename, lineno); - expand_end_bindings (getdecls (), kept_level_p (), 0); - $$ = poplevel (kept_level_p (), 0, 0); } - | pushlevel maybe_label_decls stmts '}' - { emit_line_note (input_filename, lineno); - expand_end_bindings (getdecls (), kept_level_p (), 0); - $$ = poplevel (kept_level_p (), 0, 0); } - ; - -compstmt_primary_start: - '(' '{' - { if (current_function_decl == 0) - { - error ("braced-group within expression allowed only inside a function"); - YYERROR; - } - /* We must force a BLOCK for this level - so that, if it is not expanded later, - there is a way to turn off the entire subtree of blocks - that are contained in it. */ - keep_next_level (); - push_iterator_stack (); - push_label_level (); - $$ = expand_start_stmt_expr (); - compstmt_count++; - } - -compstmt: compstmt_start compstmt_nostart - { $$ = $2; } - ; - -/* Value is number of statements counted as of the closeparen. */ -simple_if: - if_prefix lineno_labeled_stmt -/* Make sure c_expand_end_cond is run once - for each call to c_expand_start_cond. - Otherwise a crash is likely. */ - | if_prefix error - ; - -if_prefix: - IF '(' expr ')' - { emit_line_note ($-1, $0); - c_expand_start_cond (truthvalue_conversion ($3), 0, - compstmt_count); - $$ = stmt_count; - if_stmt_file = $-1; - if_stmt_line = $0; - position_after_white_space (); } - ; - -/* This is a subroutine of stmt. - It is used twice, once for valid DO statements - and once for catching errors in parsing the end test. */ -do_stmt_start: - DO - { stmt_count++; - compstmt_count++; - emit_line_note ($-1, $0); - /* See comment in `while' alternative, above. */ - emit_nop (); - expand_start_loop_continue_elsewhere (1); - position_after_white_space (); } - lineno_labeled_stmt WHILE - { expand_loop_continue_here (); } - ; - -save_filename: - { $$ = input_filename; } - ; - -save_lineno: - { $$ = lineno; } - ; - -lineno_labeled_stmt: - save_filename save_lineno stmt - { } -/* | save_filename save_lineno error - { } -*/ - | save_filename save_lineno label lineno_labeled_stmt - { } - ; - -lineno_stmt_or_label: - save_filename save_lineno stmt_or_label - { $$ = $3; } - ; - -stmt_or_label: - stmt - { $$ = 0; } - | label - { $$ = 1; } - ; - -/* Parse a single real statement, not including any labels. */ -stmt: - compstmt - { stmt_count++; } - | all_iter_stmt - | expr ';' - { stmt_count++; - emit_line_note ($-1, $0); -/* It appears that this should not be done--that a non-lvalue array - shouldn't get an error if the value isn't used. - Section 3.2.2.1 says that an array lvalue gets converted to a pointer - if it appears as a top-level expression, - but says nothing about non-lvalue arrays. */ -#if 0 - /* Call default_conversion to get an error - on referring to a register array if pedantic. */ - if (TREE_CODE (TREE_TYPE ($1)) == ARRAY_TYPE - || TREE_CODE (TREE_TYPE ($1)) == FUNCTION_TYPE) - $1 = default_conversion ($1); -#endif - iterator_expand ($1); } - | simple_if ELSE - { c_expand_start_else (); - $1 = stmt_count; - position_after_white_space (); } - lineno_labeled_stmt - { c_expand_end_cond (); - if (extra_warnings && stmt_count == $1) - warning ("empty body in an else-statement"); } - | simple_if %prec IF - { c_expand_end_cond (); - /* This warning is here instead of in simple_if, because we - do not want a warning if an empty if is followed by an - else statement. Increment stmt_count so we don't - give a second error if this is a nested `if'. */ - if (extra_warnings && stmt_count++ == $1) - warning_with_file_and_line (if_stmt_file, if_stmt_line, - "empty body in an if-statement"); } -/* Make sure c_expand_end_cond is run once - for each call to c_expand_start_cond. - Otherwise a crash is likely. */ - | simple_if ELSE error - { c_expand_end_cond (); } - | WHILE - { stmt_count++; - emit_line_note ($-1, $0); - /* The emit_nop used to come before emit_line_note, - but that made the nop seem like part of the preceding line. - And that was confusing when the preceding line was - inside of an if statement and was not really executed. - I think it ought to work to put the nop after the line number. - We will see. --rms, July 15, 1991. */ - emit_nop (); } - '(' expr ')' - { /* Don't start the loop till we have succeeded - in parsing the end test. This is to make sure - that we end every loop we start. */ - expand_start_loop (1); - emit_line_note (input_filename, lineno); - expand_exit_loop_if_false (NULL_PTR, - truthvalue_conversion ($4)); - position_after_white_space (); } - lineno_labeled_stmt - { expand_end_loop (); } - | do_stmt_start - '(' expr ')' ';' - { emit_line_note (input_filename, lineno); - expand_exit_loop_if_false (NULL_PTR, - truthvalue_conversion ($3)); - expand_end_loop (); } -/* This rule is needed to make sure we end every loop we start. */ - | do_stmt_start error - { expand_end_loop (); } - | FOR - '(' xexpr ';' - { stmt_count++; - emit_line_note ($-1, $0); - /* See comment in `while' alternative, above. */ - emit_nop (); - if ($3) c_expand_expr_stmt ($3); - /* Next step is to call expand_start_loop_continue_elsewhere, - but wait till after we parse the entire for (...). - Otherwise, invalid input might cause us to call that - fn without calling expand_end_loop. */ - } - xexpr ';' - /* Can't emit now; wait till after expand_start_loop... */ - { $7 = lineno; - $$ = input_filename; } - xexpr ')' - { - /* Start the loop. Doing this after parsing - all the expressions ensures we will end the loop. */ - expand_start_loop_continue_elsewhere (1); - /* Emit the end-test, with a line number. */ - emit_line_note ($8, $7); - if ($6) - expand_exit_loop_if_false (NULL_PTR, - truthvalue_conversion ($6)); - $7 = lineno; - $8 = input_filename; - position_after_white_space (); } - lineno_labeled_stmt - { /* Emit the increment expression, with a line number. */ - emit_line_note ($8, $7); - expand_loop_continue_here (); - if ($9) - c_expand_expr_stmt ($9); - expand_end_loop (); } - | SWITCH '(' expr ')' - { stmt_count++; - emit_line_note ($-1, $0); - c_expand_start_case ($3); - position_after_white_space (); } - lineno_labeled_stmt - { expand_end_case ($3); } - | BREAK ';' - { tree break_stmt = build_break_stmt (); - stmt_count++; - genrtl_break_stmt (); } - | CONTINUE ';' - { tree continue_stmt = build_continue_stmt (); - stmt_count++; - genrtl_continue_stmt (); } - | RETURN ';' - { tree return_stmt = build_return_stmt (NULL_TREE); - stmt_count++; - genrtl_return_stmt (RETURN_EXPR(return_stmt)); } - | RETURN expr ';' - { tree return_stmt = build_return_stmt ($2); - stmt_count++; - genrtl_return_stmt (RETURN_EXPR(return_stmt)); } - | ASM_KEYWORD maybe_type_qual '(' expr ')' ';' - { stmt_count++; - emit_line_note ($-1, $0); - STRIP_NOPS ($4); - if ((TREE_CODE ($4) == ADDR_EXPR - && TREE_CODE (TREE_OPERAND ($4, 0)) == STRING_CST) - || TREE_CODE ($4) == STRING_CST) - expand_asm ($4); - else - error ("argument of `asm' is not a constant string"); } - /* This is the case with just output operands. */ - | ASM_KEYWORD maybe_type_qual '(' expr ':' asm_operands ')' ';' - { stmt_count++; - emit_line_note ($-1, $0); - c_expand_asm_operands ($4, $6, NULL_TREE, NULL_TREE, - $2 == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); } - /* This is the case with input operands as well. */ - | ASM_KEYWORD maybe_type_qual '(' expr ':' asm_operands ':' asm_operands ')' ';' - { stmt_count++; - emit_line_note ($-1, $0); - c_expand_asm_operands ($4, $6, $8, NULL_TREE, - $2 == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); } - /* This is the case with clobbered registers as well. */ - | ASM_KEYWORD maybe_type_qual '(' expr ':' asm_operands ':' - asm_operands ':' asm_clobbers ')' ';' - { stmt_count++; - emit_line_note ($-1, $0); - c_expand_asm_operands ($4, $6, $8, $10, - $2 == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); } - | GOTO identifier ';' - { tree decl; - stmt_count++; - emit_line_note ($-1, $0); - decl = lookup_label ($2); - if (decl != 0) - { - TREE_USED (decl) = 1; - expand_goto (decl); - } - } - | GOTO '*' expr ';' - { if (pedantic) - pedwarn ("ANSI C forbids `goto *expr;'"); - stmt_count++; - emit_line_note ($-1, $0); - expand_computed_goto (convert (ptr_type_node, $3)); } - | ';' - ; - -all_iter_stmt: - all_iter_stmt_simple -/* | all_iter_stmt_with_decl */ - ; - -all_iter_stmt_simple: - FOR '(' primary ')' - { - /* The value returned by this action is */ - /* 1 if everything is OK */ - /* 0 in case of error or already bound iterator */ - - $$ = 0; - if (TREE_CODE ($3) != VAR_DECL) - error ("invalid `for (ITERATOR)' syntax"); - else if (! ITERATOR_P ($3)) - error ("`%s' is not an iterator", - IDENTIFIER_POINTER (DECL_NAME ($3))); - else if (ITERATOR_BOUND_P ($3)) - error ("`for (%s)' inside expansion of same iterator", - IDENTIFIER_POINTER (DECL_NAME ($3))); - else - { - $$ = 1; - iterator_for_loop_start ($3); - } - } - lineno_labeled_stmt - { - if ($5) - iterator_for_loop_end ($3); - } - -/* This really should allow any kind of declaration, - for generality. Fix it before turning it back on. - -all_iter_stmt_with_decl: - FOR '(' ITERATOR pushlevel setspecs iterator_spec ')' - { -*/ /* The value returned by this action is */ - /* 1 if everything is OK */ - /* 0 in case of error or already bound iterator */ -/* - iterator_for_loop_start ($6); - } - lineno_labeled_stmt - { - iterator_for_loop_end ($6); - emit_line_note (input_filename, lineno); - expand_end_bindings (getdecls (), 1, 0); - $$ = poplevel (1, 1, 0); - } -*/ - -/* Any kind of label, including jump labels and case labels. - ANSI C accepts labels only before statements, but we allow them - also at the end of a compound statement. */ - -label: CASE expr_no_commas ':' - { tree case_label_tree = build_case_label ($2, NULL_TREE); - stmt_count++; - genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree)); - position_after_white_space (); - } - | CASE expr_no_commas ELLIPSIS expr_no_commas ':' - { tree case_label_tree = build_case_label ($2, $4); - stmt_count++; - genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree)); - position_after_white_space (); - } - | DEFAULT ':' - { tree case_label_tree = build_case_label (NULL_TREE, NULL_TREE); - stmt_count++; - genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree)); - position_after_white_space (); - } - | identifier ':' maybe_attribute - { tree label = define_label (input_filename, lineno, $1); - stmt_count++; - emit_nop (); - if (label) - { - expand_label (label); - decl_attributes (label, $3, NULL_TREE); - } - position_after_white_space (); } - ; - -/* Either a type-qualifier or nothing. First thing in an `asm' statement. */ - -maybe_type_qual: - /* empty */ - { emit_line_note (input_filename, lineno); - $$ = NULL_TREE; } - | TYPE_QUAL - { emit_line_note (input_filename, lineno); } - ; - -xexpr: - /* empty */ - { $$ = NULL_TREE; } - | expr - ; - -/* These are the operands other than the first string and colon - in asm ("addextend %2,%1": "=dm" (x), "0" (y), "g" (*x)) */ -asm_operands: /* empty */ - { $$ = NULL_TREE; } - | nonnull_asm_operands - ; - -nonnull_asm_operands: - asm_operand - | nonnull_asm_operands ',' asm_operand - { $$ = chainon ($1, $3); } - ; - -asm_operand: - STRING '(' expr ')' - { $$ = build_tree_list ($1, $3); } - ; - -asm_clobbers: - string - { $$ = tree_cons (NULL_TREE, combine_strings ($1), NULL_TREE); } - | asm_clobbers ',' string - { $$ = tree_cons (NULL_TREE, combine_strings ($3), $1); } - ; - -/* This is what appears inside the parens in a function declarator. - Its value is a list of ..._TYPE nodes. */ -parmlist: - { pushlevel (0); - clear_parm_order (); - declare_parm_level (0); } - parmlist_1 - { $$ = $2; - parmlist_tags_warning (); - poplevel (0, 0, 0); } - ; - -parmlist_1: - parmlist_2 ')' - | parms ';' - { tree parm; - if (pedantic) - pedwarn ("ANSI C forbids forward parameter declarations"); - /* Mark the forward decls as such. */ - for (parm = getdecls (); parm; parm = TREE_CHAIN (parm)) - TREE_ASM_WRITTEN (parm) = 1; - clear_parm_order (); } - parmlist_1 - { $$ = $4; } - | error ')' - { $$ = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); } - ; - -/* This is what appears inside the parens in a function declarator. - Is value is represented in the format that grokdeclarator expects. */ -parmlist_2: /* empty */ - { $$ = get_parm_info (0); } - | ELLIPSIS - { $$ = get_parm_info (0); - /* Gcc used to allow this as an extension. However, it does - not work for all targets, and thus has been disabled. - Also, since func (...) and func () are indistinguishable, - it caused problems with the code in expand_builtin which - tries to verify that BUILT_IN_NEXT_ARG is being used - correctly. */ - error ("ANSI C requires a named argument before `...'"); - } - | parms - { $$ = get_parm_info (1); } - | parms ',' ELLIPSIS - { $$ = get_parm_info (0); } - ; - -parms: - parm - { push_parm_decl ($1); } - | parms ',' parm - { push_parm_decl ($3); } - ; - -/* A single parameter declaration or parameter type name, - as found in a parmlist. */ -parm: - typed_declspecs setspecs parm_declarator maybe_attribute - { $$ = build_tree_list (build_tree_list (current_declspecs, - $3), - build_tree_list (prefix_attributes, - $4)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs setspecs notype_declarator maybe_attribute - { $$ = build_tree_list (build_tree_list (current_declspecs, - $3), - build_tree_list (prefix_attributes, - $4)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs setspecs absdcl maybe_attribute - { $$ = build_tree_list (build_tree_list (current_declspecs, - $3), - build_tree_list (prefix_attributes, - $4)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods setspecs notype_declarator maybe_attribute - { $$ = build_tree_list (build_tree_list (current_declspecs, - $3), - build_tree_list (prefix_attributes, - $4)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - - | declmods setspecs absdcl maybe_attribute - { $$ = build_tree_list (build_tree_list (current_declspecs, - $3), - build_tree_list (prefix_attributes, - $4)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - ; - -/* This is used in a function definition - where either a parmlist or an identifier list is ok. - Its value is a list of ..._TYPE nodes or a list of identifiers. */ -parmlist_or_identifiers: - { pushlevel (0); - clear_parm_order (); - declare_parm_level (1); } - parmlist_or_identifiers_1 - { $$ = $2; - parmlist_tags_warning (); - poplevel (0, 0, 0); } - ; - -parmlist_or_identifiers_1: - parmlist_1 - | identifiers ')' - { tree t; - for (t = $1; t; t = TREE_CHAIN (t)) - if (TREE_VALUE (t) == NULL_TREE) - error ("`...' in old-style identifier list"); - $$ = tree_cons (NULL_TREE, NULL_TREE, $1); } - ; - -/* A nonempty list of identifiers. */ -identifiers: - IDENTIFIER - { $$ = build_tree_list (NULL_TREE, $1); } - | identifiers ',' IDENTIFIER - { $$ = chainon ($1, build_tree_list (NULL_TREE, $3)); } - ; - -/* A nonempty list of identifiers, including typenames. */ -identifiers_or_typenames: - identifier - { $$ = build_tree_list (NULL_TREE, $1); } - | identifiers_or_typenames ',' identifier - { $$ = chainon ($1, build_tree_list (NULL_TREE, $3)); } - ; - -extension: - EXTENSION - { $$ = SAVE_WARN_FLAGS(); - pedantic = 0; - warn_pointer_arith = 0; } - ; - -%% diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 19419735cc9..923a1229a5d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2000-07-12 Mark Mitchell + + * Makefile.in ($(PARSE_H)): Depend directly on parse.y. + * parse.c: Remove. + * parse.h: Likewise. + 2000-07-11 Mark Mitchell * class.c (layout_class_type): Add pointers to virtual bases after diff --git a/gcc/cp/Makefile.in b/gcc/cp/Makefile.in index df95a2d68ae..efd65bde394 100644 --- a/gcc/cp/Makefile.in +++ b/gcc/cp/Makefile.in @@ -220,8 +220,7 @@ parse.o : $(PARSE_C) $(CXX_TREE_H) $(srcdir)/../flags.h lex.h \ `echo $(PARSE_C) | sed 's,^\./,,'` CONFLICTS = expect 33 shift/reduce conflicts and 58 reduce/reduce conflicts. -$(PARSE_H) : $(PARSE_C) -$(PARSE_C) : $(srcdir)/parse.y +$(PARSE_H) $(PARSE_C) : $(srcdir)/parse.y @echo $(CONFLICTS) cd $(srcdir); $(BISON) $(BISONFLAGS) -d -o parse.c parse.y cd $(srcdir); grep '^#define[ ]*YYEMPTY' parse.c >>parse.h diff --git a/gcc/cp/parse.c b/gcc/cp/parse.c deleted file mode 100644 index c0a984474ee..00000000000 --- a/gcc/cp/parse.c +++ /dev/null @@ -1,8709 +0,0 @@ - -/* A Bison parser, made from parse.y - by GNU Bison version 1.28 */ - -#define YYBISON 1 /* Identify Bison output. */ - -#define IDENTIFIER 257 -#define TYPENAME 258 -#define SELFNAME 259 -#define PFUNCNAME 260 -#define SCSPEC 261 -#define TYPESPEC 262 -#define CV_QUALIFIER 263 -#define CONSTANT 264 -#define STRING 265 -#define ELLIPSIS 266 -#define SIZEOF 267 -#define ENUM 268 -#define IF 269 -#define ELSE 270 -#define WHILE 271 -#define DO 272 -#define FOR 273 -#define SWITCH 274 -#define CASE 275 -#define DEFAULT 276 -#define BREAK 277 -#define CONTINUE 278 -#define RETURN_KEYWORD 279 -#define GOTO 280 -#define ASM_KEYWORD 281 -#define TYPEOF 282 -#define ALIGNOF 283 -#define SIGOF 284 -#define ATTRIBUTE 285 -#define EXTENSION 286 -#define LABEL 287 -#define REALPART 288 -#define IMAGPART 289 -#define VA_ARG 290 -#define AGGR 291 -#define VISSPEC 292 -#define DELETE 293 -#define NEW 294 -#define THIS 295 -#define OPERATOR 296 -#define CXX_TRUE 297 -#define CXX_FALSE 298 -#define NAMESPACE 299 -#define TYPENAME_KEYWORD 300 -#define USING 301 -#define LEFT_RIGHT 302 -#define TEMPLATE 303 -#define TYPEID 304 -#define DYNAMIC_CAST 305 -#define STATIC_CAST 306 -#define REINTERPRET_CAST 307 -#define CONST_CAST 308 -#define SCOPE 309 -#define EMPTY 310 -#define PTYPENAME 311 -#define NSNAME 312 -#define THROW 313 -#define ASSIGN 314 -#define OROR 315 -#define ANDAND 316 -#define MIN_MAX 317 -#define EQCOMPARE 318 -#define ARITHCOMPARE 319 -#define LSHIFT 320 -#define RSHIFT 321 -#define POINTSAT_STAR 322 -#define DOT_STAR 323 -#define UNARY 324 -#define PLUSPLUS 325 -#define MINUSMINUS 326 -#define HYPERUNARY 327 -#define POINTSAT 328 -#define TRY 329 -#define CATCH 330 -#define EXTERN_LANG_STRING 331 -#define ALL 332 -#define PRE_PARSED_CLASS_DECL 333 -#define DEFARG 334 -#define DEFARG_MARKER 335 -#define PRE_PARSED_FUNCTION_DECL 336 -#define TYPENAME_DEFN 337 -#define IDENTIFIER_DEFN 338 -#define PTYPENAME_DEFN 339 -#define END_OF_LINE 340 -#define END_OF_SAVED_INPUT 341 - -#line 30 "parse.y" - -/* Cause the `yydebug' variable to be defined. */ -#define YYDEBUG 1 - -#include "config.h" - -#include "system.h" - -#include "tree.h" -#include "input.h" -#include "flags.h" -#include "cp-tree.h" -#include "lex.h" -#include "output.h" -#include "except.h" -#include "toplev.h" -#include "ggc.h" - -/* Since parsers are distinct for each language, put the language string - definition here. (fnf) */ -const char * const language_string = "GNU C++"; - -extern struct obstack permanent_obstack; - -extern int end_of_file; - -/* Like YYERROR but do call yyerror. */ -#define YYERROR1 { yyerror ("syntax error"); YYERROR; } - -#define OP0(NODE) (TREE_OPERAND (NODE, 0)) -#define OP1(NODE) (TREE_OPERAND (NODE, 1)) - -/* Contains the statement keyword (if/while/do) to include in an - error message if the user supplies an empty conditional expression. */ -static const char *cond_stmt_keyword; - -/* Nonzero if we have an `extern "C"' acting as an extern specifier. */ -int have_extern_spec; -int used_extern_spec; - -/* List of types and structure classes of the current declaration. */ -static tree current_declspecs; - -/* List of prefix attributes in effect. - Prefix attributes are parsed by the reserved_declspecs and declmods - rules. They create a list that contains *both* declspecs and attrs. */ -/* ??? It is not clear yet that all cases where an attribute can now appear in - a declspec list have been updated. */ -static tree prefix_attributes; - -/* When defining an aggregate, this is the kind of the most recent one - being defined. (For example, this might be class_type_node.) */ -static tree current_aggr; - -/* When defining an enumeration, this is the type of the enumeration. */ -static tree current_enum_type; - -static tree empty_parms PARAMS ((void)); -static tree parse_decl0 PARAMS ((tree, tree, tree, tree, int)); -static tree parse_decl PARAMS ((tree, tree, int)); -static void parse_end_decl PARAMS ((tree, tree, tree)); -static tree parse_field0 PARAMS ((tree, tree, tree, tree, tree, tree)); -static tree parse_field PARAMS ((tree, tree, tree, tree)); -static tree parse_bitfield0 PARAMS ((tree, tree, tree, tree, tree)); -static tree parse_bitfield PARAMS ((tree, tree, tree)); -static tree parse_method PARAMS ((tree, tree, tree)); -static void frob_specs PARAMS ((tree, tree)); - -/* Cons up an empty parameter list. */ -static inline tree -empty_parms () -{ - tree parms; - - if (strict_prototype - || current_class_type != NULL) - parms = void_list_node; - else - parms = NULL_TREE; - return parms; -} - -/* Record the decl-specifiers, attributes and type lookups from the - decl-specifier-seq in a declaration. */ - -static void -frob_specs (specs_attrs, lookups) - tree specs_attrs, lookups; -{ - save_type_access_control (lookups); - split_specs_attrs (specs_attrs, ¤t_declspecs, &prefix_attributes); - if (current_declspecs - && TREE_CODE (current_declspecs) != TREE_LIST) - current_declspecs = build_decl_list (NULL_TREE, current_declspecs); - if (have_extern_spec && !used_extern_spec) - { - current_declspecs = decl_tree_cons (NULL_TREE, - get_identifier ("extern"), - current_declspecs); - used_extern_spec = 1; - } -} - -static tree -parse_decl (declarator, attributes, initialized) - tree declarator, attributes; - int initialized; -{ - return start_decl (declarator, current_declspecs, initialized, - attributes, prefix_attributes); -} - -static tree -parse_decl0 (declarator, specs_attrs, lookups, attributes, initialized) - tree declarator, specs_attrs, lookups, attributes; - int initialized; -{ - frob_specs (specs_attrs, lookups); - return parse_decl (declarator, attributes, initialized); -} - -static void -parse_end_decl (decl, init, asmspec) - tree decl, init, asmspec; -{ - /* If decl is NULL_TREE, then this was a variable declaration using - () syntax for the initializer, so we handled it in grokdeclarator. */ - if (decl) - decl_type_access_control (decl); - cp_finish_decl (decl, init, asmspec, init ? LOOKUP_ONLYCONVERTING : 0); -} - -static tree -parse_field (declarator, attributes, asmspec, init) - tree declarator, attributes, asmspec, init; -{ - tree d = grokfield (declarator, current_declspecs, init, asmspec, - build_tree_list (attributes, prefix_attributes)); - decl_type_access_control (d); - return d; -} - -static tree -parse_field0 (declarator, specs_attrs, lookups, attributes, asmspec, init) - tree declarator, specs_attrs, lookups, attributes, asmspec, init; -{ - frob_specs (specs_attrs, lookups); - return parse_field (declarator, attributes, asmspec, init); -} - -static tree -parse_bitfield (declarator, attributes, width) - tree declarator, attributes, width; -{ - tree d = grokbitfield (declarator, current_declspecs, width); - cplus_decl_attributes (d, attributes, prefix_attributes); - decl_type_access_control (d); - return d; -} - -static tree -parse_bitfield0 (declarator, specs_attrs, lookups, attributes, width) - tree declarator, specs_attrs, lookups, attributes, width; -{ - frob_specs (specs_attrs, lookups); - return parse_bitfield (declarator, attributes, width); -} - -static tree -parse_method (declarator, specs_attrs, lookups) - tree declarator, specs_attrs, lookups; -{ - tree d; - frob_specs (specs_attrs, lookups); - d = start_method (current_declspecs, declarator, prefix_attributes); - decl_type_access_control (d); - return d; -} - -void -cp_parse_init () -{ - ggc_add_tree_root (¤t_declspecs, 1); - ggc_add_tree_root (&prefix_attributes, 1); - ggc_add_tree_root (¤t_aggr, 1); - ggc_add_tree_root (¤t_enum_type, 1); -} - -#line 221 "parse.y" -typedef union { - long itype; - tree ttype; - char *strtype; - enum tree_code code; - flagged_type_tree ftype; - struct pending_inline *pi; -} YYSTYPE; -#line 426 "parse.y" - -/* Tell yyparse how to print a token's value, if yydebug is set. */ -#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL) -extern void yyprint PARAMS ((FILE *, int, YYSTYPE)); -#include - -#ifndef __cplusplus -#ifndef __STDC__ -#define const -#endif -#endif - - - -#define YYFINAL 1730 -#define YYFLAG -32768 -#define YYNTBASE 112 - -#define YYTRANSLATE(x) ((unsigned)(x) <= 341 ? yytranslate[x] : 398) - -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, 110, 2, 2, 2, 83, 71, 2, 93, - 108, 81, 79, 60, 80, 92, 82, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 63, 61, 75, - 65, 76, 66, 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, - 94, 2, 111, 70, 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, 69, 109, 89, 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, - 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, 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, 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, 1, 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, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 62, 64, 67, 68, 72, 73, 74, 77, - 78, 84, 85, 86, 87, 88, 90, 91, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107 -}; - -#if YYDEBUG != 0 -static const short yyprhs[] = { 0, - 0, 1, 3, 4, 7, 10, 12, 13, 14, 15, - 17, 19, 20, 23, 26, 28, 30, 36, 41, 47, - 52, 53, 60, 61, 67, 69, 72, 74, 77, 78, - 85, 88, 92, 96, 100, 104, 109, 110, 116, 119, - 123, 125, 127, 130, 133, 135, 138, 139, 145, 149, - 151, 155, 157, 158, 161, 164, 168, 170, 174, 176, - 180, 182, 186, 189, 192, 195, 197, 199, 205, 210, - 213, 216, 220, 224, 227, 230, 234, 238, 241, 244, - 247, 250, 253, 255, 257, 259, 260, 262, 265, 266, - 268, 273, 277, 281, 282, 291, 297, 298, 308, 315, - 316, 325, 331, 332, 342, 349, 352, 355, 357, 360, - 362, 369, 374, 381, 386, 389, 391, 394, 397, 399, - 402, 404, 407, 410, 415, 418, 422, 423, 424, 426, - 430, 433, 437, 439, 444, 447, 452, 455, 460, 463, - 465, 467, 469, 471, 473, 475, 477, 479, 481, 483, - 485, 487, 488, 495, 496, 503, 504, 510, 511, 517, - 518, 526, 527, 535, 536, 543, 544, 551, 552, 553, - 559, 565, 567, 569, 575, 581, 582, 584, 586, 587, - 589, 591, 595, 597, 599, 601, 603, 605, 607, 609, - 611, 613, 615, 617, 621, 623, 627, 628, 630, 632, - 633, 641, 643, 645, 649, 654, 658, 659, 663, 665, - 669, 673, 677, 681, 683, 685, 687, 690, 693, 696, - 699, 702, 705, 708, 713, 716, 721, 724, 728, 732, - 737, 742, 748, 754, 761, 764, 769, 775, 778, 781, - 788, 792, 796, 800, 802, 806, 809, 813, 818, 820, - 823, 829, 831, 835, 839, 843, 847, 851, 855, 859, - 863, 867, 871, 875, 879, 883, 887, 891, 895, 899, - 903, 907, 913, 917, 921, 923, 926, 928, 932, 936, - 940, 944, 948, 952, 956, 960, 964, 968, 972, 976, - 980, 984, 988, 992, 996, 1000, 1006, 1010, 1014, 1016, - 1019, 1023, 1027, 1029, 1031, 1033, 1035, 1037, 1038, 1044, - 1050, 1056, 1062, 1068, 1070, 1072, 1074, 1076, 1079, 1081, - 1084, 1087, 1091, 1096, 1101, 1103, 1105, 1107, 1111, 1113, - 1115, 1117, 1119, 1123, 1127, 1131, 1132, 1137, 1142, 1145, - 1150, 1153, 1158, 1161, 1164, 1166, 1171, 1173, 1181, 1189, - 1197, 1205, 1210, 1215, 1218, 1221, 1224, 1226, 1231, 1234, - 1237, 1243, 1247, 1250, 1253, 1259, 1263, 1269, 1273, 1278, - 1285, 1288, 1290, 1293, 1295, 1298, 1300, 1302, 1304, 1307, - 1308, 1311, 1314, 1318, 1322, 1326, 1329, 1332, 1335, 1337, - 1339, 1341, 1344, 1347, 1350, 1353, 1355, 1357, 1359, 1361, - 1364, 1367, 1371, 1375, 1379, 1384, 1386, 1389, 1392, 1395, - 1397, 1399, 1401, 1404, 1407, 1410, 1412, 1414, 1417, 1420, - 1424, 1426, 1429, 1431, 1433, 1435, 1440, 1445, 1450, 1455, - 1457, 1459, 1461, 1463, 1467, 1469, 1473, 1475, 1479, 1480, - 1485, 1486, 1493, 1497, 1498, 1503, 1505, 1509, 1513, 1514, - 1519, 1523, 1524, 1526, 1528, 1531, 1538, 1540, 1544, 1545, - 1547, 1552, 1559, 1564, 1566, 1568, 1570, 1572, 1574, 1578, - 1579, 1582, 1584, 1587, 1591, 1596, 1598, 1600, 1604, 1609, - 1613, 1619, 1621, 1626, 1630, 1634, 1635, 1639, 1643, 1647, - 1648, 1651, 1654, 1655, 1662, 1663, 1669, 1672, 1675, 1678, - 1679, 1680, 1681, 1692, 1694, 1695, 1697, 1698, 1700, 1702, - 1705, 1708, 1711, 1714, 1717, 1720, 1723, 1726, 1729, 1733, - 1738, 1742, 1745, 1749, 1751, 1752, 1756, 1759, 1762, 1764, - 1766, 1767, 1770, 1774, 1776, 1781, 1783, 1787, 1789, 1791, - 1794, 1797, 1801, 1805, 1806, 1808, 1812, 1815, 1818, 1820, - 1823, 1826, 1829, 1832, 1835, 1838, 1841, 1843, 1846, 1849, - 1853, 1856, 1859, 1864, 1869, 1872, 1874, 1880, 1885, 1887, - 1888, 1890, 1894, 1895, 1897, 1901, 1903, 1905, 1907, 1909, - 1914, 1919, 1924, 1929, 1934, 1938, 1943, 1948, 1953, 1958, - 1962, 1965, 1967, 1969, 1973, 1975, 1979, 1982, 1984, 1991, - 1992, 1995, 1997, 2000, 2004, 2008, 2010, 2014, 2016, 2019, - 2023, 2027, 2030, 2033, 2037, 2039, 2044, 2049, 2053, 2057, - 2060, 2062, 2064, 2067, 2069, 2071, 2074, 2077, 2079, 2082, - 2086, 2090, 2093, 2096, 2100, 2102, 2106, 2110, 2113, 2116, - 2120, 2122, 2127, 2131, 2136, 2140, 2142, 2145, 2148, 2151, - 2154, 2157, 2160, 2163, 2165, 2168, 2173, 2178, 2181, 2183, - 2185, 2187, 2189, 2192, 2197, 2200, 2203, 2206, 2209, 2211, - 2214, 2217, 2220, 2223, 2227, 2229, 2232, 2236, 2241, 2244, - 2247, 2250, 2253, 2256, 2259, 2264, 2267, 2269, 2272, 2275, - 2279, 2281, 2285, 2288, 2292, 2295, 2298, 2302, 2304, 2308, - 2313, 2315, 2318, 2322, 2325, 2328, 2330, 2334, 2337, 2340, - 2342, 2345, 2349, 2351, 2355, 2362, 2367, 2372, 2376, 2382, - 2386, 2390, 2394, 2397, 2399, 2401, 2404, 2407, 2410, 2411, - 2413, 2415, 2418, 2422, 2424, 2427, 2428, 2432, 2433, 2434, - 2440, 2442, 2443, 2446, 2448, 2450, 2452, 2455, 2456, 2461, - 2463, 2464, 2465, 2471, 2472, 2473, 2481, 2482, 2483, 2484, - 2485, 2498, 2499, 2500, 2508, 2509, 2515, 2516, 2524, 2525, - 2530, 2533, 2536, 2539, 2543, 2550, 2559, 2570, 2579, 2592, - 2603, 2614, 2619, 2623, 2626, 2629, 2631, 2633, 2635, 2637, - 2639, 2640, 2641, 2648, 2649, 2650, 2656, 2658, 2661, 2662, - 2663, 2669, 2671, 2673, 2677, 2681, 2684, 2687, 2690, 2693, - 2696, 2698, 2701, 2702, 2704, 2705, 2707, 2709, 2710, 2712, - 2714, 2718, 2723, 2725, 2729, 2730, 2732, 2734, 2736, 2739, - 2742, 2745, 2747, 2750, 2753, 2754, 2758, 2760, 2762, 2764, - 2767, 2770, 2773, 2778, 2781, 2784, 2787, 2790, 2793, 2796, - 2798, 2801, 2803, 2806, 2808, 2810, 2811, 2812, 2814, 2815, - 2820, 2823, 2825, 2827, 2831, 2832, 2836, 2840, 2844, 2846, - 2849, 2852, 2855, 2858, 2861, 2864, 2867, 2870, 2873, 2876, - 2879, 2882, 2885, 2888, 2891, 2894, 2897, 2900, 2903, 2906, - 2909, 2912, 2915, 2919, 2922, 2925, 2928, 2931, 2935, 2938, - 2941, 2946, 2951, 2955 -}; - -static const short yyrhs[] = { -1, - 113, 0, 0, 114, 120, 0, 113, 120, 0, 113, - 0, 0, 0, 0, 32, 0, 27, 0, 0, 121, - 122, 0, 148, 147, 0, 144, 0, 141, 0, 119, - 93, 218, 108, 61, 0, 133, 59, 115, 109, 0, - 133, 116, 148, 117, 147, 0, 133, 116, 144, 117, - 0, 0, 45, 163, 59, 123, 115, 109, 0, 0, - 45, 59, 124, 115, 109, 0, 125, 0, 127, 61, - 0, 129, 0, 118, 122, 0, 0, 45, 163, 65, - 126, 132, 61, 0, 47, 311, 0, 47, 325, 311, - 0, 47, 325, 208, 0, 47, 131, 163, 0, 47, - 325, 163, 0, 47, 325, 131, 163, 0, 0, 47, - 45, 130, 132, 61, 0, 58, 55, 0, 131, 58, - 55, 0, 208, 0, 311, 0, 325, 311, 0, 325, - 208, 0, 97, 0, 133, 97, 0, 0, 49, 75, - 135, 136, 76, 0, 49, 75, 76, 0, 140, 0, - 136, 60, 140, 0, 163, 0, 0, 268, 137, 0, - 46, 137, 0, 134, 268, 137, 0, 138, 0, 138, - 65, 224, 0, 389, 0, 389, 65, 203, 0, 139, - 0, 139, 65, 184, 0, 134, 142, 0, 134, 1, - 0, 148, 147, 0, 143, 0, 141, 0, 133, 116, - 148, 117, 147, 0, 133, 116, 143, 117, 0, 118, - 142, 0, 235, 61, 0, 228, 234, 61, 0, 225, - 233, 61, 0, 260, 61, 0, 235, 61, 0, 228, - 234, 61, 0, 225, 233, 61, 0, 228, 61, 0, - 166, 61, 0, 225, 61, 0, 1, 61, 0, 1, - 109, 0, 61, 0, 219, 0, 159, 0, 0, 158, - 0, 158, 61, 0, 0, 107, 0, 154, 146, 145, - 336, 0, 154, 146, 360, 0, 154, 146, 1, 0, - 0, 316, 5, 93, 150, 380, 108, 298, 392, 0, - 316, 5, 48, 298, 392, 0, 0, 325, 316, 5, - 93, 151, 380, 108, 298, 392, 0, 325, 316, 5, - 48, 298, 392, 0, 0, 316, 179, 93, 152, 380, - 108, 298, 392, 0, 316, 179, 48, 298, 392, 0, - 0, 325, 316, 179, 93, 153, 380, 108, 298, 392, - 0, 325, 316, 179, 48, 298, 392, 0, 225, 222, - 0, 228, 308, 0, 308, 0, 228, 149, 0, 149, - 0, 5, 93, 380, 108, 298, 392, 0, 5, 48, - 298, 392, 0, 179, 93, 380, 108, 298, 392, 0, - 179, 48, 298, 392, 0, 228, 155, 0, 155, 0, - 225, 222, 0, 228, 308, 0, 308, 0, 228, 149, - 0, 149, 0, 25, 3, 0, 157, 252, 0, 157, - 93, 196, 108, 0, 157, 48, 0, 63, 160, 161, - 0, 0, 0, 162, 0, 161, 60, 162, 0, 161, - 1, 0, 93, 196, 108, 0, 48, 0, 164, 93, - 196, 108, 0, 164, 48, 0, 304, 93, 196, 108, - 0, 304, 48, 0, 318, 93, 196, 108, 0, 318, - 48, 0, 1, 0, 3, 0, 4, 0, 5, 0, - 57, 0, 58, 0, 3, 0, 57, 0, 58, 0, - 104, 0, 103, 0, 105, 0, 0, 49, 175, 231, - 61, 167, 176, 0, 0, 49, 175, 225, 222, 168, - 176, 0, 0, 49, 175, 308, 169, 176, 0, 0, - 49, 175, 149, 170, 176, 0, 0, 7, 49, 175, - 231, 61, 171, 176, 0, 0, 7, 49, 175, 225, - 222, 172, 176, 0, 0, 7, 49, 175, 308, 173, - 176, 0, 0, 7, 49, 175, 149, 174, 176, 0, - 0, 0, 57, 75, 182, 181, 180, 0, 4, 75, - 182, 181, 180, 0, 179, 0, 177, 0, 163, 75, - 182, 76, 180, 0, 5, 75, 182, 181, 180, 0, - 0, 76, 0, 78, 0, 0, 183, 0, 184, 0, - 183, 60, 184, 0, 224, 0, 57, 0, 203, 0, - 80, 0, 79, 0, 87, 0, 88, 0, 110, 0, - 195, 0, 202, 0, 48, 0, 93, 186, 108, 0, - 48, 0, 93, 190, 108, 0, 0, 190, 0, 1, - 0, 0, 370, 222, 236, 245, 65, 191, 253, 0, - 186, 0, 109, 0, 333, 331, 109, 0, 333, 331, - 1, 109, 0, 333, 1, 109, 0, 0, 59, 194, - 192, 0, 345, 0, 202, 60, 202, 0, 202, 60, - 1, 0, 195, 60, 202, 0, 195, 60, 1, 0, - 202, 0, 195, 0, 213, 0, 118, 201, 0, 81, - 201, 0, 71, 201, 0, 89, 201, 0, 185, 201, - 0, 68, 163, 0, 13, 197, 0, 13, 93, 224, - 108, 0, 29, 197, 0, 29, 93, 224, 108, 0, - 215, 297, 0, 215, 297, 199, 0, 215, 198, 297, - 0, 215, 198, 297, 199, 0, 215, 93, 224, 108, - 0, 215, 93, 224, 108, 199, 0, 215, 198, 93, - 224, 108, 0, 215, 198, 93, 224, 108, 199, 0, - 216, 201, 0, 216, 94, 111, 201, 0, 216, 94, - 186, 111, 201, 0, 34, 201, 0, 35, 201, 0, - 36, 93, 202, 60, 224, 108, 0, 93, 196, 108, - 0, 59, 196, 109, 0, 93, 196, 108, 0, 48, - 0, 93, 231, 108, 0, 65, 253, 0, 93, 224, - 108, 0, 200, 93, 224, 108, 0, 197, 0, 200, - 197, 0, 200, 59, 254, 266, 109, 0, 201, 0, - 202, 84, 202, 0, 202, 85, 202, 0, 202, 79, - 202, 0, 202, 80, 202, 0, 202, 81, 202, 0, - 202, 82, 202, 0, 202, 83, 202, 0, 202, 77, - 202, 0, 202, 78, 202, 0, 202, 74, 202, 0, - 202, 75, 202, 0, 202, 76, 202, 0, 202, 73, - 202, 0, 202, 72, 202, 0, 202, 71, 202, 0, - 202, 69, 202, 0, 202, 70, 202, 0, 202, 68, - 202, 0, 202, 67, 202, 0, 202, 66, 375, 63, - 202, 0, 202, 65, 202, 0, 202, 64, 202, 0, - 62, 0, 62, 202, 0, 201, 0, 203, 84, 203, - 0, 203, 85, 203, 0, 203, 79, 203, 0, 203, - 80, 203, 0, 203, 81, 203, 0, 203, 82, 203, - 0, 203, 83, 203, 0, 203, 77, 203, 0, 203, - 78, 203, 0, 203, 74, 203, 0, 203, 75, 203, - 0, 203, 73, 203, 0, 203, 72, 203, 0, 203, - 71, 203, 0, 203, 69, 203, 0, 203, 70, 203, - 0, 203, 68, 203, 0, 203, 67, 203, 0, 203, - 66, 375, 63, 203, 0, 203, 65, 203, 0, 203, - 64, 203, 0, 62, 0, 62, 203, 0, 89, 390, - 163, 0, 89, 390, 177, 0, 206, 0, 397, 0, - 3, 0, 57, 0, 58, 0, 0, 6, 75, 205, - 182, 181, 0, 397, 75, 205, 182, 181, 0, 49, - 163, 75, 182, 181, 0, 49, 6, 75, 182, 181, - 0, 49, 397, 75, 182, 181, 0, 204, 0, 4, - 0, 5, 0, 210, 0, 246, 210, 0, 204, 0, - 81, 209, 0, 71, 209, 0, 93, 209, 108, 0, - 3, 75, 182, 181, 0, 58, 75, 183, 181, 0, - 310, 0, 204, 0, 211, 0, 93, 209, 108, 0, - 204, 0, 10, 0, 217, 0, 218, 0, 93, 186, - 108, 0, 93, 209, 108, 0, 93, 1, 108, 0, - 0, 93, 214, 337, 108, 0, 204, 93, 196, 108, - 0, 204, 48, 0, 213, 93, 196, 108, 0, 213, - 48, 0, 213, 94, 186, 111, 0, 213, 87, 0, - 213, 88, 0, 41, 0, 9, 93, 196, 108, 0, - 314, 0, 51, 75, 224, 76, 93, 186, 108, 0, - 52, 75, 224, 76, 93, 186, 108, 0, 53, 75, - 224, 76, 93, 186, 108, 0, 54, 75, 224, 76, - 93, 186, 108, 0, 50, 93, 186, 108, 0, 50, - 93, 224, 108, 0, 325, 3, 0, 325, 206, 0, - 325, 397, 0, 313, 0, 313, 93, 196, 108, 0, - 313, 48, 0, 220, 207, 0, 220, 207, 93, 196, - 108, 0, 220, 207, 48, 0, 220, 208, 0, 220, - 313, 0, 220, 208, 93, 196, 108, 0, 220, 208, - 48, 0, 220, 313, 93, 196, 108, 0, 220, 313, - 48, 0, 220, 89, 8, 48, 0, 220, 8, 55, - 89, 8, 48, 0, 220, 1, 0, 40, 0, 325, - 40, 0, 39, 0, 325, 216, 0, 43, 0, 44, - 0, 11, 0, 218, 11, 0, 0, 213, 92, 0, - 213, 91, 0, 231, 233, 61, 0, 225, 233, 61, - 0, 228, 234, 61, 0, 225, 61, 0, 228, 61, - 0, 118, 221, 0, 302, 0, 308, 0, 48, 0, - 223, 48, 0, 229, 329, 0, 299, 329, 0, 231, - 329, 0, 229, 0, 299, 0, 229, 0, 226, 0, - 228, 231, 0, 231, 227, 0, 231, 230, 227, 0, - 228, 231, 227, 0, 228, 231, 230, 0, 228, 231, - 230, 227, 0, 7, 0, 227, 232, 0, 227, 7, - 0, 227, 246, 0, 246, 0, 299, 0, 7, 0, - 228, 9, 0, 228, 7, 0, 228, 246, 0, 246, - 0, 231, 0, 299, 231, 0, 231, 230, 0, 299, - 231, 230, 0, 232, 0, 230, 232, 0, 260, 0, - 8, 0, 305, 0, 28, 93, 186, 108, 0, 28, - 93, 224, 108, 0, 30, 93, 186, 108, 0, 30, - 93, 224, 108, 0, 8, 0, 9, 0, 260, 0, - 241, 0, 233, 60, 237, 0, 242, 0, 234, 60, - 237, 0, 243, 0, 235, 60, 237, 0, 0, 119, - 93, 218, 108, 0, 0, 222, 236, 245, 65, 238, - 253, 0, 222, 236, 245, 0, 0, 245, 65, 240, - 253, 0, 245, 0, 222, 236, 239, 0, 308, 236, - 239, 0, 0, 308, 236, 244, 239, 0, 149, 236, - 245, 0, 0, 246, 0, 247, 0, 246, 247, 0, - 31, 93, 93, 248, 108, 108, 0, 249, 0, 248, - 60, 249, 0, 0, 250, 0, 250, 93, 3, 108, - 0, 250, 93, 3, 60, 196, 108, 0, 250, 93, - 196, 108, 0, 163, 0, 7, 0, 8, 0, 9, - 0, 163, 0, 251, 60, 163, 0, 0, 65, 253, - 0, 202, 0, 59, 109, 0, 59, 254, 109, 0, - 59, 254, 60, 109, 0, 1, 0, 253, 0, 254, - 60, 253, 0, 94, 202, 111, 253, 0, 163, 63, - 253, 0, 254, 60, 163, 63, 253, 0, 102, 0, - 255, 146, 145, 336, 0, 255, 146, 360, 0, 255, - 146, 1, 0, 0, 257, 256, 147, 0, 101, 202, - 107, 0, 101, 1, 107, 0, 0, 259, 258, 0, - 259, 1, 0, 0, 14, 163, 59, 261, 294, 109, - 0, 0, 14, 59, 262, 294, 109, 0, 14, 163, - 0, 14, 323, 0, 46, 318, 0, 0, 0, 0, - 275, 59, 263, 281, 109, 245, 264, 259, 265, 257, - 0, 275, 0, 0, 60, 0, 0, 60, 0, 37, - 0, 268, 7, 0, 268, 8, 0, 268, 9, 0, - 268, 37, 0, 268, 246, 0, 268, 163, 0, 268, - 165, 0, 269, 59, 0, 269, 63, 0, 268, 316, - 163, 0, 268, 325, 316, 163, 0, 268, 325, 163, - 0, 268, 178, 0, 268, 316, 178, 0, 269, 0, - 0, 270, 273, 276, 0, 271, 276, 0, 268, 59, - 0, 274, 0, 272, 0, 0, 63, 390, 0, 63, - 390, 277, 0, 278, 0, 277, 60, 390, 278, 0, - 279, 0, 280, 390, 279, 0, 318, 0, 304, 0, - 38, 390, 0, 7, 390, 0, 280, 38, 390, 0, - 280, 7, 390, 0, 0, 283, 0, 281, 282, 283, - 0, 281, 282, 0, 38, 63, 0, 284, 0, 283, - 284, 0, 285, 61, 0, 285, 109, 0, 156, 63, - 0, 156, 95, 0, 156, 25, 0, 156, 59, 0, - 61, 0, 118, 284, 0, 134, 284, 0, 134, 225, - 61, 0, 225, 286, 0, 228, 287, 0, 308, 236, - 245, 252, 0, 149, 236, 245, 252, 0, 63, 202, - 0, 1, 0, 228, 155, 236, 245, 252, 0, 155, - 236, 245, 252, 0, 127, 0, 0, 288, 0, 286, - 60, 289, 0, 0, 291, 0, 287, 60, 293, 0, - 290, 0, 291, 0, 292, 0, 293, 0, 302, 236, - 245, 252, 0, 4, 63, 202, 245, 0, 308, 236, - 245, 252, 0, 149, 236, 245, 252, 0, 3, 63, - 202, 245, 0, 63, 202, 245, 0, 302, 236, 245, - 252, 0, 4, 63, 202, 245, 0, 308, 236, 245, - 252, 0, 3, 63, 202, 245, 0, 63, 202, 245, - 0, 295, 267, 0, 267, 0, 296, 0, 295, 60, - 296, 0, 163, 0, 163, 65, 202, 0, 370, 326, - 0, 370, 0, 93, 224, 108, 94, 186, 111, 0, - 0, 298, 9, 0, 9, 0, 299, 9, 0, 93, - 196, 108, 0, 93, 380, 108, 0, 48, 0, 93, - 1, 108, 0, 302, 0, 246, 302, 0, 81, 299, - 301, 0, 71, 299, 301, 0, 81, 301, 0, 71, - 301, 0, 324, 298, 301, 0, 303, 0, 303, 300, - 298, 392, 0, 303, 94, 186, 111, 0, 303, 94, - 111, 0, 93, 301, 108, 0, 316, 315, 0, 315, - 0, 315, 0, 325, 315, 0, 304, 0, 306, 0, - 325, 306, 0, 316, 315, 0, 308, 0, 246, 308, - 0, 81, 299, 307, 0, 71, 299, 307, 0, 81, - 307, 0, 71, 307, 0, 324, 298, 307, 0, 212, - 0, 81, 299, 307, 0, 71, 299, 307, 0, 81, - 309, 0, 71, 309, 0, 324, 298, 307, 0, 310, - 0, 212, 300, 298, 392, 0, 93, 309, 108, 0, - 212, 94, 186, 111, 0, 212, 94, 111, 0, 312, - 0, 325, 312, 0, 325, 204, 0, 316, 211, 0, - 316, 208, 0, 316, 207, 0, 316, 204, 0, 316, - 207, 0, 312, 0, 325, 312, 0, 231, 93, 196, - 108, 0, 231, 93, 209, 108, 0, 231, 223, 0, - 4, 0, 5, 0, 177, 0, 317, 0, 316, 317, - 0, 316, 49, 322, 55, 0, 4, 55, 0, 5, - 55, 0, 58, 55, 0, 177, 55, 0, 319, 0, - 325, 319, 0, 320, 163, 0, 320, 177, 0, 320, - 322, 0, 320, 49, 322, 0, 321, 0, 320, 321, - 0, 320, 322, 55, 0, 320, 49, 322, 55, 0, - 4, 55, 0, 5, 55, 0, 177, 55, 0, 57, - 55, 0, 3, 55, 0, 58, 55, 0, 163, 75, - 182, 181, 0, 325, 315, 0, 306, 0, 325, 306, - 0, 316, 81, 0, 325, 316, 81, 0, 55, 0, - 81, 298, 326, 0, 81, 298, 0, 71, 298, 326, - 0, 71, 298, 0, 324, 298, 0, 324, 298, 326, - 0, 327, 0, 94, 186, 111, 0, 327, 94, 186, - 111, 0, 329, 0, 246, 329, 0, 81, 299, 328, - 0, 81, 328, 0, 81, 299, 0, 81, 0, 71, - 299, 328, 0, 71, 328, 0, 71, 299, 0, 71, - 0, 324, 298, 0, 324, 298, 328, 0, 330, 0, - 93, 328, 108, 0, 330, 93, 380, 108, 298, 392, - 0, 330, 48, 298, 392, 0, 330, 94, 186, 111, - 0, 330, 94, 111, 0, 93, 381, 108, 298, 392, - 0, 200, 298, 392, 0, 223, 298, 392, 0, 94, - 186, 111, 0, 94, 111, 0, 344, 0, 332, 0, - 331, 344, 0, 331, 332, 0, 1, 61, 0, 0, - 334, 0, 335, 0, 334, 335, 0, 33, 251, 61, - 0, 337, 0, 1, 337, 0, 0, 59, 338, 192, - 0, 0, 0, 15, 340, 188, 341, 342, 0, 337, - 0, 0, 343, 345, 0, 337, 0, 345, 0, 221, - 0, 186, 61, 0, 0, 339, 16, 346, 342, 0, - 339, 0, 0, 0, 17, 347, 188, 348, 193, 0, - 0, 0, 18, 349, 342, 17, 350, 187, 61, 0, - 0, 0, 0, 0, 19, 351, 93, 373, 352, 189, - 61, 353, 375, 108, 354, 193, 0, 0, 0, 20, - 355, 93, 190, 108, 356, 342, 0, 0, 21, 202, - 63, 357, 344, 0, 0, 21, 202, 12, 202, 63, - 358, 344, 0, 0, 22, 63, 359, 344, 0, 23, - 61, 0, 24, 61, 0, 25, 61, 0, 25, 186, - 61, 0, 119, 374, 93, 218, 108, 61, 0, 119, - 374, 93, 218, 63, 376, 108, 61, 0, 119, 374, - 93, 218, 63, 376, 63, 376, 108, 61, 0, 119, - 374, 93, 218, 55, 376, 108, 61, 0, 119, 374, - 93, 218, 63, 376, 63, 376, 63, 379, 108, 61, - 0, 119, 374, 93, 218, 55, 376, 63, 379, 108, - 61, 0, 119, 374, 93, 218, 63, 376, 55, 379, - 108, 61, 0, 26, 81, 186, 61, 0, 26, 163, - 61, 0, 372, 344, 0, 372, 109, 0, 61, 0, - 363, 0, 129, 0, 128, 0, 125, 0, 0, 0, - 95, 361, 145, 337, 362, 366, 0, 0, 0, 95, - 364, 337, 365, 366, 0, 367, 0, 366, 367, 0, - 0, 0, 96, 368, 371, 369, 337, 0, 229, 0, - 299, 0, 93, 12, 108, 0, 93, 389, 108, 0, - 3, 63, 0, 57, 63, 0, 4, 63, 0, 5, - 63, 0, 375, 61, 0, 221, 0, 59, 192, 0, - 0, 9, 0, 0, 186, 0, 1, 0, 0, 377, - 0, 378, 0, 377, 60, 378, 0, 11, 93, 186, - 108, 0, 218, 0, 379, 60, 218, 0, 0, 381, - 0, 224, 0, 385, 0, 386, 12, 0, 385, 12, - 0, 224, 12, 0, 12, 0, 385, 63, 0, 224, - 63, 0, 0, 65, 383, 384, 0, 100, 0, 253, - 0, 387, 0, 389, 382, 0, 386, 388, 0, 386, - 391, 0, 386, 391, 65, 253, 0, 385, 60, 0, - 224, 60, 0, 226, 222, 0, 229, 222, 0, 231, - 222, 0, 226, 329, 0, 226, 0, 228, 308, 0, - 389, 0, 389, 382, 0, 387, 0, 224, 0, 0, - 0, 308, 0, 0, 62, 93, 394, 108, 0, 62, - 48, 0, 224, 0, 393, 0, 394, 60, 393, 0, - 0, 81, 298, 395, 0, 71, 298, 395, 0, 324, - 298, 395, 0, 42, 0, 396, 81, 0, 396, 82, - 0, 396, 83, 0, 396, 79, 0, 396, 80, 0, - 396, 71, 0, 396, 69, 0, 396, 70, 0, 396, - 89, 0, 396, 60, 0, 396, 74, 0, 396, 75, - 0, 396, 76, 0, 396, 73, 0, 396, 64, 0, - 396, 65, 0, 396, 77, 0, 396, 78, 0, 396, - 87, 0, 396, 88, 0, 396, 68, 0, 396, 67, - 0, 396, 110, 0, 396, 66, 63, 0, 396, 72, - 0, 396, 91, 0, 396, 84, 0, 396, 48, 0, - 396, 94, 111, 0, 396, 40, 0, 396, 39, 0, - 396, 40, 94, 111, 0, 396, 39, 94, 111, 0, - 396, 370, 395, 0, 396, 1, 0 -}; - -#endif - -#if YYDEBUG != 0 -static const short yyrline[] = { 0, - 433, 436, 444, 447, 448, 452, 454, 457, 462, 466, - 472, 476, 480, 484, 487, 489, 491, 494, 496, 499, - 502, 504, 506, 508, 510, 511, 513, 514, 518, 521, - 530, 533, 535, 539, 542, 544, 548, 551, 563, 570, - 578, 580, 581, 583, 587, 590, 596, 599, 601, 606, - 609, 613, 616, 619, 622, 626, 631, 641, 643, 645, - 647, 649, 662, 665, 669, 672, 674, 676, 679, 682, - 686, 688, 690, 692, 697, 699, 701, 703, 705, 706, - 713, 714, 715, 718, 721, 725, 727, 728, 731, 733, - 736, 739, 741, 745, 748, 750, 754, 756, 758, 762, - 764, 766, 770, 772, 774, 780, 785, 788, 791, 794, - 799, 802, 804, 806, 812, 821, 824, 826, 828, 831, - 833, 838, 847, 850, 852, 856, 866, 882, 888, 893, - 904, 907, 914, 922, 924, 927, 929, 932, 934, 937, - 941, 943, 944, 945, 946, 949, 951, 952, 955, 957, - 958, 961, 966, 966, 970, 970, 973, 973, 976, 976, - 980, 980, 985, 985, 988, 988, 991, 993, 996, 1003, - 1007, 1010, 1013, 1015, 1019, 1025, 1034, 1036, 1044, 1047, - 1050, 1053, 1057, 1060, 1066, 1069, 1072, 1074, 1076, 1078, - 1082, 1085, 1088, 1093, 1097, 1102, 1106, 1109, 1110, 1114, - 1131, 1137, 1140, 1142, 1143, 1144, 1147, 1151, 1152, 1156, - 1160, 1163, 1165, 1169, 1172, 1175, 1179, 1182, 1184, 1186, - 1188, 1191, 1195, 1197, 1200, 1202, 1208, 1211, 1214, 1217, - 1220, 1225, 1228, 1231, 1235, 1237, 1241, 1245, 1247, 1249, - 1254, 1257, 1262, 1265, 1267, 1275, 1288, 1293, 1299, 1301, - 1303, 1316, 1319, 1321, 1323, 1325, 1327, 1329, 1331, 1333, - 1335, 1337, 1339, 1341, 1343, 1345, 1347, 1349, 1351, 1353, - 1355, 1357, 1359, 1363, 1365, 1367, 1371, 1374, 1376, 1378, - 1380, 1382, 1384, 1386, 1388, 1390, 1392, 1394, 1396, 1398, - 1400, 1402, 1404, 1406, 1408, 1410, 1412, 1416, 1418, 1420, - 1424, 1427, 1429, 1430, 1431, 1432, 1433, 1436, 1448, 1451, - 1455, 1458, 1460, 1465, 1467, 1468, 1471, 1473, 1481, 1483, - 1485, 1487, 1491, 1494, 1498, 1502, 1503, 1504, 1508, 1516, - 1517, 1518, 1528, 1530, 1533, 1535, 1546, 1551, 1553, 1555, - 1557, 1559, 1561, 1563, 1566, 1568, 1579, 1580, 1584, 1588, - 1592, 1596, 1598, 1602, 1604, 1606, 1614, 1616, 1618, 1620, - 1624, 1626, 1628, 1630, 1635, 1637, 1639, 1641, 1644, 1646, - 1648, 1692, 1695, 1699, 1702, 1706, 1709, 1714, 1716, 1720, - 1729, 1732, 1739, 1745, 1749, 1751, 1756, 1758, 1765, 1767, - 1771, 1775, 1781, 1785, 1788, 1792, 1795, 1805, 1808, 1812, - 1816, 1819, 1822, 1825, 1828, 1834, 1840, 1842, 1847, 1849, - 1867, 1870, 1875, 1880, 1888, 1890, 1903, 1907, 1910, 1913, - 1918, 1921, 1929, 1932, 1934, 1936, 1939, 1942, 1957, 1976, - 1979, 1981, 1984, 1986, 1990, 1992, 1996, 1998, 2002, 2005, - 2009, 2014, 2015, 2028, 2035, 2036, 2042, 2047, 2052, 2058, - 2059, 2066, 2069, 2073, 2076, 2080, 2085, 2088, 2092, 2095, - 2097, 2099, 2101, 2108, 2110, 2111, 2112, 2116, 2119, 2123, - 2126, 2132, 2134, 2137, 2140, 2143, 2149, 2152, 2155, 2157, - 2159, 2163, 2169, 2175, 2180, 2186, 2188, 2193, 2196, 2199, - 2201, 2203, 2207, 2211, 2216, 2219, 2224, 2227, 2230, 2236, - 2238, 2250, 2254, 2259, 2285, 2287, 2290, 2292, 2297, 2299, - 2301, 2303, 2305, 2307, 2311, 2319, 2322, 2324, 2328, 2335, - 2341, 2347, 2353, 2363, 2369, 2373, 2380, 2408, 2418, 2424, - 2427, 2430, 2432, 2436, 2438, 2442, 2445, 2449, 2457, 2460, - 2462, 2466, 2477, 2491, 2492, 2493, 2494, 2497, 2506, 2511, - 2517, 2519, 2524, 2526, 2528, 2530, 2532, 2534, 2537, 2547, - 2554, 2579, 2585, 2588, 2591, 2593, 2604, 2609, 2612, 2617, - 2620, 2627, 2637, 2640, 2647, 2657, 2659, 2662, 2664, 2667, - 2671, 2676, 2680, 2683, 2686, 2691, 2694, 2698, 2701, 2703, - 2707, 2709, 2716, 2718, 2721, 2724, 2729, 2733, 2738, 2748, - 2751, 2755, 2759, 2768, 2771, 2773, 2775, 2781, 2783, 2792, - 2795, 2797, 2799, 2801, 2805, 2808, 2811, 2813, 2815, 2817, - 2821, 2824, 2835, 2845, 2847, 2848, 2852, 2860, 2862, 2870, - 2873, 2875, 2877, 2879, 2883, 2886, 2889, 2891, 2893, 2895, - 2899, 2902, 2905, 2907, 2909, 2911, 2913, 2915, 2919, 2926, - 2930, 2935, 2939, 2944, 2946, 2950, 2953, 2955, 2959, 2961, - 2962, 2965, 2967, 2969, 2976, 2987, 2993, 2999, 3013, 3015, - 3019, 3033, 3035, 3037, 3041, 3047, 3060, 3063, 3068, 3081, - 3087, 3089, 3090, 3091, 3099, 3104, 3113, 3114, 3118, 3121, - 3127, 3133, 3136, 3138, 3140, 3142, 3146, 3150, 3154, 3157, - 3161, 3163, 3172, 3175, 3177, 3179, 3181, 3183, 3185, 3187, - 3189, 3193, 3197, 3201, 3205, 3207, 3209, 3211, 3213, 3215, - 3217, 3219, 3221, 3229, 3231, 3232, 3233, 3236, 3242, 3244, - 3249, 3251, 3254, 3267, 3270, 3273, 3277, 3280, 3287, 3289, - 3292, 3294, 3296, 3299, 3302, 3305, 3308, 3310, 3313, 3317, - 3319, 3325, 3327, 3328, 3330, 3335, 3337, 3339, 3341, 3343, - 3346, 3347, 3349, 3352, 3353, 3356, 3356, 3359, 3359, 3362, - 3362, 3364, 3366, 3368, 3370, 3376, 3382, 3384, 3387, 3390, - 3393, 3396, 3402, 3404, 3405, 3408, 3410, 3411, 3412, 3414, - 3417, 3420, 3423, 3429, 3433, 3435, 3438, 3440, 3443, 3447, - 3449, 3452, 3454, 3457, 3474, 3482, 3485, 3487, 3489, 3493, - 3496, 3497, 3505, 3508, 3511, 3514, 3515, 3521, 3524, 3527, - 3529, 3533, 3538, 3541, 3551, 3556, 3557, 3564, 3567, 3570, - 3572, 3575, 3577, 3587, 3601, 3605, 3608, 3610, 3614, 3618, - 3621, 3624, 3626, 3630, 3632, 3639, 3646, 3649, 3653, 3657, - 3661, 3667, 3671, 3676, 3678, 3681, 3686, 3692, 3703, 3706, - 3708, 3712, 3720, 3723, 3727, 3730, 3732, 3734, 3740, 3745, - 3748, 3750, 3752, 3754, 3756, 3758, 3760, 3762, 3764, 3766, - 3768, 3770, 3772, 3774, 3776, 3778, 3780, 3782, 3784, 3786, - 3788, 3790, 3792, 3794, 3796, 3798, 3800, 3802, 3804, 3806, - 3808, 3810, 3813, 3815 -}; -#endif - - -#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) - -static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER", -"TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT", -"STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH", -"CASE","DEFAULT","BREAK","CONTINUE","RETURN_KEYWORD","GOTO","ASM_KEYWORD","TYPEOF", -"ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG", -"AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE", -"TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST", -"REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','", -"';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX", -"EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'", -"'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY", -"POINTSAT","'.'","'('","'['","TRY","CATCH","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL", -"DEFARG","DEFARG_MARKER","PRE_PARSED_FUNCTION_DECL","TYPENAME_DEFN","IDENTIFIER_DEFN", -"PTYPENAME_DEFN","END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'", -"program","extdefs","@1","extdefs_opt",".hush_warning",".warning_ok","extension", -"asm_keyword","lang_extdef","@2","extdef","@3","@4","namespace_alias","@5","using_decl", -"namespace_using_decl","using_directive","@6","namespace_qualifier","any_id", -"extern_lang_string","template_header","@7","template_parm_list","maybe_identifier", -"template_type_parm","template_template_parm","template_parm","template_def", -"template_extdef","template_datadef","datadef","ctor_initializer_opt","maybe_return_init", -"eat_saved_input","fndef","constructor_declarator","@8","@9","@10","@11","fn.def1", -"component_constructor_declarator","fn.def2","return_id","return_init","base_init", -".set_base_init","member_init_list","member_init","identifier","notype_identifier", -"identifier_defn","explicit_instantiation","@12","@13","@14","@15","@16","@17", -"@18","@19","begin_explicit_instantiation","end_explicit_instantiation","template_type", -"apparent_template_type","self_template_type",".finish_template_type","template_close_bracket", -"template_arg_list_opt","template_arg_list","template_arg","unop","expr","paren_expr_or_null", -"paren_cond_or_null","xcond","condition","@20","compstmtend","already_scoped_stmt", -"@21","nontrivial_exprlist","nonnull_exprlist","unary_expr","new_placement", -"new_initializer","regcast_or_absdcl","cast_expr","expr_no_commas","expr_no_comma_rangle", -"notype_unqualified_id","do_id","template_id","object_template_id","unqualified_id", -"expr_or_declarator_intern","expr_or_declarator","notype_template_declarator", -"direct_notype_declarator","primary","@22","new","delete","boolean.literal", -"string","nodecls","object","decl","declarator","fcast_or_absdcl","type_id", -"typed_declspecs","typed_declspecs1","reserved_declspecs","declmods","typed_typespecs", -"reserved_typespecquals","typespec","typespecqual_reserved","initdecls","notype_initdecls", -"nomods_initdecls","maybeasm","initdcl","@23","initdcl0_innards","@24","initdcl0", -"notype_initdcl0","nomods_initdcl0","@25","maybe_attribute","attributes","attribute", -"attribute_list","attrib","any_word","identifiers_or_typenames","maybe_init", -"init","initlist","fn.defpen","pending_inline","pending_inlines","defarg_again", -"pending_defargs","structsp","@26","@27","@28","@29","@30","maybecomma","maybecomma_warn", -"aggr","named_class_head_sans_basetype","named_class_head_sans_basetype_defn", -"named_complex_class_head_sans_basetype","named_class_head","@31","unnamed_class_head", -"class_head","maybe_base_class_list","base_class_list","base_class","base_class.1", -"base_class_access_list","opt.component_decl_list","access_specifier","component_decl_list", -"component_decl","component_decl_1","components","notype_components","component_declarator0", -"component_declarator","after_type_component_declarator0","notype_component_declarator0", -"after_type_component_declarator","notype_component_declarator","enumlist_opt", -"enumlist","enumerator","new_type_id","cv_qualifiers","nonempty_cv_qualifiers", -"maybe_parmlist","after_type_declarator_intern","after_type_declarator","direct_after_type_declarator", -"nonnested_type","complete_type_name","nested_type","notype_declarator_intern", -"notype_declarator","complex_notype_declarator","complex_direct_notype_declarator", -"qualified_id","notype_qualified_id","overqualified_id","functional_cast","type_name", -"nested_name_specifier","nested_name_specifier_1","typename_sub","typename_sub0", -"typename_sub1","typename_sub2","explicit_template_type","complex_type_name", -"ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl_intern", -"absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls", -"label_decls","label_decl","compstmt_or_error","compstmt","@32","simple_if", -"@33","@34","implicitly_scoped_stmt","@35","stmt","simple_stmt","@36","@37", -"@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","@48","@49","function_try_block", -"@50","@51","try_block","@52","@53","handler_seq","handler","@54","@55","type_specifier_seq", -"handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr", -"asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist", -"complex_parmlist","defarg","@56","defarg1","parms","parms_comma","named_parm", -"full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier", -"ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL -}; -#endif - -static const short yyr1[] = { 0, - 112, 112, 114, 113, 113, 115, 115, 116, 117, 118, - 119, 121, 120, 122, 122, 122, 122, 122, 122, 122, - 123, 122, 124, 122, 122, 122, 122, 122, 126, 125, - 127, 127, 127, 128, 128, 128, 130, 129, 131, 131, - 132, 132, 132, 132, 133, 133, 135, 134, 134, 136, - 136, 137, 137, 138, 138, 139, 140, 140, 140, 140, - 140, 140, 141, 141, 142, 142, 142, 142, 142, 142, - 143, 143, 143, 143, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 145, 145, 146, 146, 146, 147, 147, - 148, 148, 148, 150, 149, 149, 151, 149, 149, 152, - 149, 149, 153, 149, 149, 154, 154, 154, 154, 154, - 155, 155, 155, 155, 156, 156, 156, 156, 156, 156, - 156, 157, 158, 158, 158, 159, 160, 161, 161, 161, - 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 163, 163, 163, 163, 163, 164, 164, 164, 165, 165, - 165, 167, 166, 168, 166, 169, 166, 170, 166, 171, - 166, 172, 166, 173, 166, 174, 166, 175, 176, 177, - 177, 177, 178, 178, 179, 180, 181, 181, 182, 182, - 183, 183, 184, 184, 184, 185, 185, 185, 185, 185, - 186, 186, 187, 187, 188, 188, 189, 189, 189, 191, - 190, 190, 192, 192, 192, 192, 194, 193, 193, 195, - 195, 195, 195, 196, 196, 197, 197, 197, 197, 197, - 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, - 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, - 198, 198, 199, 199, 199, 199, 200, 200, 201, 201, - 201, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 204, 204, 204, 204, 204, 204, 204, 205, 206, 206, - 207, 207, 207, 208, 208, 208, 209, 209, 210, 210, - 210, 210, 211, 211, 212, 212, 212, 212, 213, 213, - 213, 213, 213, 213, 213, 214, 213, 213, 213, 213, - 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, - 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, - 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, - 213, 215, 215, 216, 216, 217, 217, 218, 218, 219, - 220, 220, 221, 221, 221, 221, 221, 221, 222, 222, - 223, 223, 224, 224, 224, 224, 224, 225, 225, 226, - 226, 226, 226, 226, 226, 227, 227, 227, 227, 227, - 228, 228, 228, 228, 228, 228, 229, 229, 229, 229, - 230, 230, 231, 231, 231, 231, 231, 231, 231, 232, - 232, 232, 233, 233, 234, 234, 235, 235, 236, 236, - 238, 237, 237, 240, 239, 239, 241, 242, 244, 243, - 243, 245, 245, 246, 246, 247, 248, 248, 249, 249, - 249, 249, 249, 250, 250, 250, 250, 251, 251, 252, - 252, 253, 253, 253, 253, 253, 254, 254, 254, 254, - 254, 255, 256, 256, 256, 257, 257, 258, 258, 259, - 259, 259, 261, 260, 262, 260, 260, 260, 260, 263, - 264, 265, 260, 260, 266, 266, 267, 267, 268, 268, - 268, 268, 268, 268, 269, 270, 270, 270, 271, 271, - 271, 271, 271, 272, 273, 272, 272, 274, 275, 275, - 276, 276, 276, 277, 277, 278, 278, 279, 279, 280, - 280, 280, 280, 281, 281, 281, 281, 282, 283, 283, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 285, 285, 285, 285, 285, 285, 285, 285, 285, 286, - 286, 286, 287, 287, 287, 288, 288, 289, 289, 290, - 290, 291, 291, 291, 291, 292, 292, 293, 293, 293, - 294, 294, 295, 295, 296, 296, 297, 297, 297, 298, - 298, 299, 299, 300, 300, 300, 300, 301, 301, 302, - 302, 302, 302, 302, 302, 303, 303, 303, 303, 303, - 303, 304, 304, 305, 305, 305, 306, 307, 307, 308, - 308, 308, 308, 308, 308, 309, 309, 309, 309, 309, - 309, 310, 310, 310, 310, 310, 310, 310, 310, 311, - 311, 312, 312, 313, 313, 314, 314, 314, 315, 315, - 315, 316, 316, 316, 317, 317, 317, 317, 318, 318, - 319, 319, 319, 319, 320, 320, 320, 320, 321, 321, - 321, 321, 321, 321, 322, 323, 323, 323, 324, 324, - 325, 326, 326, 326, 326, 326, 326, 326, 327, 327, - 328, 328, 329, 329, 329, 329, 329, 329, 329, 329, - 329, 329, 329, 330, 330, 330, 330, 330, 330, 330, - 330, 330, 330, 331, 331, 331, 331, 332, 333, 333, - 334, 334, 335, 336, 336, 338, 337, 340, 341, 339, - 342, 343, 342, 344, 344, 345, 345, 346, 345, 345, - 347, 348, 345, 349, 350, 345, 351, 352, 353, 354, - 345, 355, 356, 345, 357, 345, 358, 345, 359, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 361, 362, 360, 364, 365, 363, 366, 366, 368, 369, - 367, 370, 370, 371, 371, 372, 372, 372, 372, 373, - 373, 373, 374, 374, 375, 375, 375, 376, 376, 377, - 377, 378, 379, 379, 380, 380, 380, 381, 381, 381, - 381, 381, 381, 381, 383, 382, 384, 384, 385, 385, - 385, 385, 385, 386, 386, 387, 387, 387, 387, 387, - 387, 388, 388, 389, 389, 390, 391, 391, 392, 392, - 392, 393, 394, 394, 395, 395, 395, 395, 396, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397 -}; - -static const short yyr2[] = { 0, - 0, 1, 0, 2, 2, 1, 0, 0, 0, 1, - 1, 0, 2, 2, 1, 1, 5, 4, 5, 4, - 0, 6, 0, 5, 1, 2, 1, 2, 0, 6, - 2, 3, 3, 3, 3, 4, 0, 5, 2, 3, - 1, 1, 2, 2, 1, 2, 0, 5, 3, 1, - 3, 1, 0, 2, 2, 3, 1, 3, 1, 3, - 1, 3, 2, 2, 2, 1, 1, 5, 4, 2, - 2, 3, 3, 2, 2, 3, 3, 2, 2, 2, - 2, 2, 1, 1, 1, 0, 1, 2, 0, 1, - 4, 3, 3, 0, 8, 5, 0, 9, 6, 0, - 8, 5, 0, 9, 6, 2, 2, 1, 2, 1, - 6, 4, 6, 4, 2, 1, 2, 2, 1, 2, - 1, 2, 2, 4, 2, 3, 0, 0, 1, 3, - 2, 3, 1, 4, 2, 4, 2, 4, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 6, 0, 6, 0, 5, 0, 5, 0, - 7, 0, 7, 0, 6, 0, 6, 0, 0, 5, - 5, 1, 1, 5, 5, 0, 1, 1, 0, 1, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 3, 0, 1, 1, 0, - 7, 1, 1, 3, 4, 3, 0, 3, 1, 3, - 3, 3, 3, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 4, 2, 4, 2, 3, 3, 4, - 4, 5, 5, 6, 2, 4, 5, 2, 2, 6, - 3, 3, 3, 1, 3, 2, 3, 4, 1, 2, - 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 5, 3, 3, 1, 2, 1, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 5, 3, 3, 1, 2, - 3, 3, 1, 1, 1, 1, 1, 0, 5, 5, - 5, 5, 5, 1, 1, 1, 1, 2, 1, 2, - 2, 3, 4, 4, 1, 1, 1, 3, 1, 1, - 1, 1, 3, 3, 3, 0, 4, 4, 2, 4, - 2, 4, 2, 2, 1, 4, 1, 7, 7, 7, - 7, 4, 4, 2, 2, 2, 1, 4, 2, 2, - 5, 3, 2, 2, 5, 3, 5, 3, 4, 6, - 2, 1, 2, 1, 2, 1, 1, 1, 2, 0, - 2, 2, 3, 3, 3, 2, 2, 2, 1, 1, - 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, - 2, 3, 3, 3, 4, 1, 2, 2, 2, 1, - 1, 1, 2, 2, 2, 1, 1, 2, 2, 3, - 1, 2, 1, 1, 1, 4, 4, 4, 4, 1, - 1, 1, 1, 3, 1, 3, 1, 3, 0, 4, - 0, 6, 3, 0, 4, 1, 3, 3, 0, 4, - 3, 0, 1, 1, 2, 6, 1, 3, 0, 1, - 4, 6, 4, 1, 1, 1, 1, 1, 3, 0, - 2, 1, 2, 3, 4, 1, 1, 3, 4, 3, - 5, 1, 4, 3, 3, 0, 3, 3, 3, 0, - 2, 2, 0, 6, 0, 5, 2, 2, 2, 0, - 0, 0, 10, 1, 0, 1, 0, 1, 1, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, - 3, 2, 3, 1, 0, 3, 2, 2, 1, 1, - 0, 2, 3, 1, 4, 1, 3, 1, 1, 2, - 2, 3, 3, 0, 1, 3, 2, 2, 1, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 2, 3, - 2, 2, 4, 4, 2, 1, 5, 4, 1, 0, - 1, 3, 0, 1, 3, 1, 1, 1, 1, 4, - 4, 4, 4, 4, 3, 4, 4, 4, 4, 3, - 2, 1, 1, 3, 1, 3, 2, 1, 6, 0, - 2, 1, 2, 3, 3, 1, 3, 1, 2, 3, - 3, 2, 2, 3, 1, 4, 4, 3, 3, 2, - 1, 1, 2, 1, 1, 2, 2, 1, 2, 3, - 3, 2, 2, 3, 1, 3, 3, 2, 2, 3, - 1, 4, 3, 4, 3, 1, 2, 2, 2, 2, - 2, 2, 2, 1, 2, 4, 4, 2, 1, 1, - 1, 1, 2, 4, 2, 2, 2, 2, 1, 2, - 2, 2, 2, 3, 1, 2, 3, 4, 2, 2, - 2, 2, 2, 2, 4, 2, 1, 2, 2, 3, - 1, 3, 2, 3, 2, 2, 3, 1, 3, 4, - 1, 2, 3, 2, 2, 1, 3, 2, 2, 1, - 2, 3, 1, 3, 6, 4, 4, 3, 5, 3, - 3, 3, 2, 1, 1, 2, 2, 2, 0, 1, - 1, 2, 3, 1, 2, 0, 3, 0, 0, 5, - 1, 0, 2, 1, 1, 1, 2, 0, 4, 1, - 0, 0, 5, 0, 0, 7, 0, 0, 0, 0, - 12, 0, 0, 7, 0, 5, 0, 7, 0, 4, - 2, 2, 2, 3, 6, 8, 10, 8, 12, 10, - 10, 4, 3, 2, 2, 1, 1, 1, 1, 1, - 0, 0, 6, 0, 0, 5, 1, 2, 0, 0, - 5, 1, 1, 3, 3, 2, 2, 2, 2, 2, - 1, 2, 0, 1, 0, 1, 1, 0, 1, 1, - 3, 4, 1, 3, 0, 1, 1, 1, 2, 2, - 2, 1, 2, 2, 0, 3, 1, 1, 1, 2, - 2, 2, 4, 2, 2, 2, 2, 2, 2, 1, - 2, 1, 2, 1, 1, 0, 0, 1, 0, 4, - 2, 1, 1, 3, 0, 3, 3, 3, 1, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 2, 2, 2, 2, 3, 2, 2, - 4, 4, 3, 2 -}; - -static const short yydefact[] = { 3, - 12, 12, 5, 0, 4, 0, 305, 659, 660, 0, - 412, 424, 602, 0, 11, 0, 0, 0, 10, 509, - 869, 0, 0, 0, 168, 691, 306, 307, 83, 0, - 0, 856, 0, 45, 0, 0, 13, 25, 0, 27, - 8, 0, 16, 15, 89, 110, 86, 0, 661, 172, - 326, 303, 327, 635, 0, 399, 0, 398, 417, 0, - 437, 416, 454, 423, 0, 524, 525, 531, 530, 529, - 504, 411, 624, 425, 625, 108, 325, 646, 622, 0, - 662, 600, 0, 0, 304, 81, 82, 179, 665, 179, - 666, 179, 308, 168, 141, 142, 143, 144, 145, 495, - 497, 0, 687, 0, 498, 0, 0, 0, 0, 142, - 143, 144, 145, 23, 0, 0, 0, 0, 0, 0, - 0, 499, 669, 0, 675, 0, 0, 0, 37, 0, - 0, 31, 0, 0, 47, 0, 179, 667, 0, 0, - 0, 633, 628, 0, 0, 0, 632, 0, 0, 0, - 0, 326, 0, 317, 0, 0, 0, 325, 600, 28, - 0, 26, 3, 46, 0, 64, 412, 0, 0, 8, - 67, 63, 66, 89, 0, 0, 0, 423, 90, 14, - 0, 452, 0, 0, 470, 87, 79, 668, 606, 0, - 0, 600, 80, 0, 0, 0, 106, 0, 433, 389, - 615, 390, 621, 0, 600, 414, 413, 78, 109, 400, - 0, 435, 415, 107, 406, 430, 431, 401, 419, 421, - 410, 432, 0, 75, 455, 510, 511, 512, 513, 528, - 150, 149, 151, 515, 516, 173, 522, 514, 0, 0, - 517, 518, 531, 856, 527, 500, 603, 418, 0, 449, - 660, 0, 689, 172, 652, 653, 649, 627, 663, 0, - 305, 307, 648, 626, 647, 623, 0, 904, 900, 899, - 897, 879, 884, 885, 0, 891, 890, 876, 877, 875, - 894, 883, 880, 881, 882, 886, 887, 873, 874, 870, - 871, 872, 896, 888, 889, 878, 895, 0, 892, 802, - 417, 803, 865, 308, 602, 330, 378, 0, 0, 0, - 0, 0, 374, 372, 345, 376, 377, 0, 0, 0, - 0, 0, 306, 299, 0, 0, 187, 186, 0, 188, - 189, 0, 0, 190, 0, 0, 180, 181, 0, 249, - 0, 277, 185, 329, 216, 0, 0, 331, 332, 0, - 183, 396, 417, 397, 654, 357, 347, 0, 0, 0, - 0, 179, 0, 507, 493, 0, 688, 686, 275, 0, - 191, 252, 192, 0, 0, 0, 459, 3, 21, 29, - 683, 679, 680, 682, 684, 681, 141, 142, 143, 0, - 144, 145, 671, 672, 676, 673, 670, 0, 315, 316, - 314, 651, 650, 33, 32, 49, 0, 158, 0, 0, - 417, 156, 0, 0, 629, 631, 0, 630, 142, 143, - 301, 302, 321, 0, 639, 320, 0, 638, 0, 328, - 306, 307, 0, 0, 0, 319, 318, 643, 0, 0, - 12, 0, 168, 9, 9, 70, 0, 65, 0, 0, - 71, 74, 0, 451, 453, 122, 93, 127, 791, 0, - 85, 84, 92, 125, 0, 0, 123, 88, 0, 832, - 215, 0, 214, 827, 850, 0, 396, 417, 397, 0, - 826, 828, 857, 839, 0, 0, 645, 0, 0, 859, - 0, 0, 613, 608, 0, 612, 0, 0, 0, 0, - 0, 600, 452, 0, 77, 0, 600, 620, 0, 403, - 404, 0, 76, 452, 408, 407, 409, 402, 422, 439, - 438, 179, 519, 523, 521, 0, 526, 532, 0, 420, - 452, 600, 94, 0, 0, 0, 0, 600, 100, 601, - 634, 660, 690, 172, 0, 0, 893, 898, 419, 600, - 600, 0, 600, 0, 903, 179, 0, 0, 223, 0, - 225, 238, 239, 0, 0, 0, 0, 0, 0, 300, - 222, 219, 218, 220, 0, 0, 0, 0, 0, 329, - 0, 0, 0, 217, 177, 178, 323, 0, 221, 0, - 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 339, 0, 341, 343, 344, 382, 381, - 0, 0, 0, 0, 0, 227, 598, 0, 235, 379, - 371, 0, 0, 856, 360, 363, 364, 0, 0, 391, - 710, 706, 0, 0, 600, 600, 600, 393, 713, 0, - 658, 395, 0, 0, 394, 359, 0, 354, 373, 355, - 375, 655, 0, 356, 176, 176, 0, 166, 0, 417, - 164, 508, 595, 592, 0, 507, 593, 507, 0, 276, - 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 427, 428, 429, 465, 466, - 467, 464, 0, 457, 460, 0, 3, 0, 674, 179, - 677, 0, 41, 42, 0, 53, 0, 0, 57, 61, - 50, 855, 417, 53, 854, 59, 169, 154, 152, 169, - 176, 324, 637, 636, 328, 0, 640, 0, 18, 20, - 89, 9, 9, 73, 72, 0, 0, 380, 0, 736, - 91, 734, 476, 0, 472, 471, 0, 607, 604, 831, - 845, 834, 710, 706, 0, 846, 600, 849, 851, 0, - 0, 847, 0, 848, 605, 830, 844, 833, 829, 858, - 841, 852, 842, 835, 840, 644, 0, 658, 0, 642, - 609, 611, 610, 0, 0, 0, 0, 0, 0, 600, - 619, 0, 447, 446, 434, 618, 0, 859, 614, 405, - 436, 448, 452, 0, 520, 659, 660, 856, 856, 661, - 533, 534, 536, 856, 539, 538, 0, 566, 660, 0, - 557, 0, 0, 569, 0, 121, 116, 0, 172, 570, - 573, 0, 0, 549, 0, 119, 450, 859, 825, 179, - 179, 664, 179, 859, 825, 600, 97, 600, 103, 902, - 901, 865, 865, 865, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 417, 0, 0, 0, 335, 0, 333, - 334, 0, 247, 182, 305, 659, 660, 306, 307, 0, - 0, 477, 505, 0, 298, 297, 817, 816, 0, 295, - 294, 292, 293, 291, 290, 289, 287, 288, 285, 286, - 280, 281, 282, 283, 284, 278, 279, 0, 0, 0, - 0, 0, 0, 0, 229, 244, 0, 0, 228, 600, - 600, 0, 600, 597, 698, 0, 0, 0, 0, 0, - 362, 0, 366, 0, 368, 0, 0, 709, 708, 701, - 705, 704, 855, 416, 0, 0, 723, 0, 0, 859, - 392, 859, 711, 600, 825, 0, 710, 706, 0, 0, - 600, 0, 416, 0, 0, 0, 0, 171, 175, 309, - 169, 162, 160, 169, 0, 496, 508, 591, 0, 213, - 212, 211, 210, 274, 273, 0, 271, 270, 268, 269, - 267, 266, 265, 262, 263, 264, 260, 261, 255, 256, - 257, 258, 259, 253, 254, 459, 0, 0, 24, 0, - 0, 678, 0, 38, 44, 43, 55, 52, 53, 0, - 48, 0, 0, 54, 515, 0, 159, 169, 169, 157, - 170, 322, 17, 19, 69, 89, 440, 140, 146, 133, - 147, 148, 0, 126, 129, 0, 0, 0, 0, 735, - 729, 473, 0, 124, 0, 709, 705, 710, 706, 0, - 416, 622, 0, 600, 711, 0, 710, 706, 0, 329, - 0, 654, 0, 853, 0, 0, 861, 0, 0, 0, - 0, 444, 617, 616, 443, 176, 541, 540, 856, 856, - 856, 0, 600, 825, 565, 558, 570, 559, 452, 452, - 555, 556, 553, 554, 600, 825, 305, 659, 0, 439, - 117, 561, 571, 576, 577, 439, 439, 0, 0, 439, - 115, 562, 574, 439, 0, 452, 0, 550, 551, 552, - 452, 96, 0, 0, 0, 0, 102, 0, 859, 825, - 859, 825, 867, 866, 868, 310, 346, 224, 226, 0, - 352, 353, 0, 0, 0, 0, 334, 337, 0, 0, - 0, 0, 248, 0, 338, 340, 342, 242, 241, 231, - 0, 230, 246, 0, 0, 695, 693, 0, 696, 0, - 236, 0, 0, 179, 369, 0, 0, 0, 702, 707, - 703, 714, 600, 722, 720, 721, 712, 859, 0, 718, - 0, 0, 656, 657, 710, 706, 0, 358, 167, 169, - 169, 165, 596, 594, 494, 0, 458, 456, 305, 0, - 22, 30, 685, 56, 51, 58, 62, 60, 155, 153, - 68, 0, 131, 0, 135, 0, 137, 0, 139, 0, - 792, 0, 203, 737, 0, 730, 731, 0, 474, 0, - 709, 705, 710, 706, 0, 600, 627, 711, 0, 657, - 354, 355, 655, 356, 843, 837, 838, 836, 862, 863, - 0, 0, 0, 0, 0, 0, 441, 174, 0, 543, - 542, 537, 859, 0, 560, 470, 470, 859, 0, 0, - 0, 452, 452, 0, 452, 452, 0, 452, 0, 548, - 501, 0, 470, 600, 312, 311, 313, 600, 99, 0, - 105, 0, 0, 0, 0, 0, 0, 0, 480, 0, - 478, 251, 296, 0, 232, 233, 243, 245, 694, 692, - 699, 697, 0, 237, 0, 0, 361, 365, 367, 859, - 716, 600, 717, 163, 161, 272, 0, 461, 463, 132, - 130, 0, 0, 0, 0, 468, 0, 0, 305, 659, - 660, 738, 751, 754, 757, 762, 0, 0, 0, 0, - 0, 0, 0, 0, 306, 786, 794, 0, 813, 790, - 789, 788, 0, 746, 0, 0, 417, 0, 725, 744, - 750, 724, 745, 787, 0, 732, 475, 709, 705, 0, - 711, 334, 0, 860, 445, 0, 535, 112, 600, 564, - 568, 114, 600, 452, 452, 585, 470, 305, 659, 0, - 572, 578, 579, 439, 439, 470, 470, 0, 470, 575, - 490, 563, 859, 859, 600, 600, 240, 0, 0, 0, - 0, 479, 0, 0, 234, 700, 370, 311, 719, 859, - 0, 134, 136, 138, 799, 793, 797, 0, 733, 728, - 206, 806, 808, 809, 0, 0, 742, 0, 0, 0, - 769, 771, 772, 773, 0, 0, 0, 0, 0, 0, - 0, 807, 0, 388, 814, 0, 747, 386, 439, 0, - 387, 0, 439, 0, 0, 0, 204, 727, 726, 748, - 785, 784, 710, 706, 0, 0, 864, 442, 859, 859, - 584, 581, 583, 0, 0, 452, 452, 452, 580, 582, - 567, 0, 95, 101, 859, 859, 348, 349, 350, 351, - 481, 599, 715, 462, 0, 798, 469, 195, 0, 739, - 752, 741, 0, 0, 0, 0, 0, 765, 0, 774, - 0, 783, 39, 145, 34, 145, 0, 35, 795, 0, - 384, 385, 0, 0, 0, 383, 205, 742, 416, 111, - 113, 452, 452, 590, 470, 470, 492, 0, 491, 486, - 98, 104, 0, 800, 202, 0, 417, 0, 742, 0, - 755, 743, 729, 811, 758, 0, 0, 0, 0, 770, - 782, 40, 36, 0, 0, 749, 589, 587, 586, 588, - 0, 0, 503, 0, 0, 0, 196, 439, 740, 207, - 753, 209, 0, 812, 0, 810, 763, 767, 766, 796, - 818, 818, 0, 489, 488, 482, 86, 89, 804, 805, - 801, 452, 729, 193, 0, 0, 199, 0, 198, 742, - 0, 0, 0, 819, 820, 0, 775, 0, 487, 0, - 208, 0, 756, 759, 764, 768, 0, 0, 0, 0, - 0, 818, 0, 485, 0, 484, 200, 194, 0, 0, - 823, 0, 778, 821, 0, 0, 776, 483, 0, 0, - 822, 0, 0, 0, 0, 0, 201, 760, 824, 780, - 781, 0, 777, 0, 0, 761, 779, 0, 0, 0 -}; - -static const short yydefgoto[] = { 1728, - 441, 2, 442, 165, 750, 335, 181, 3, 4, 37, - 717, 378, 1400, 718, 844, 1401, 1402, 398, 1500, 722, - 41, 845, 407, 728, 1037, 729, 730, 731, 43, 172, - 173, 44, 460, 184, 180, 45, 46, 859, 1160, 865, - 1162, 47, 847, 848, 185, 186, 461, 757, 1064, 1065, - 673, 1066, 235, 48, 1049, 1048, 740, 737, 1231, 1230, - 994, 991, 136, 1047, 49, 237, 50, 988, 587, 336, - 337, 338, 339, 1403, 1666, 1560, 1668, 1606, 1709, 1264, - 1641, 1663, 371, 980, 340, 625, 939, 341, 372, 373, - 343, 344, 362, 52, 256, 723, 423, 154, 53, 54, - 345, 582, 346, 347, 348, 349, 462, 350, 1404, 520, - 646, 351, 1405, 56, 218, 476, 352, 219, 489, 220, - 198, 211, 60, 503, 521, 1426, 813, 1296, 199, 212, - 61, 531, 814, 62, 63, 713, 714, 715, 1377, 467, - 902, 903, 1657, 1658, 1633, 1599, 1542, 64, 678, 364, - 529, 1451, 1600, 1182, 674, 65, 66, 67, 68, 69, - 243, 70, 71, 245, 831, 832, 833, 834, 852, 1147, - 853, 854, 855, 1132, 1142, 1133, 1441, 1134, 1135, 1442, - 1443, 675, 676, 677, 626, 970, 354, 192, 501, 494, - 201, 73, 74, 75, 142, 143, 157, 77, 132, 355, - 356, 357, 79, 358, 81, 836, 123, 124, 125, 536, - 105, 82, 359, 944, 945, 965, 960, 649, 1408, 1409, - 1265, 1266, 1267, 761, 1410, 1071, 1411, 1485, 1609, 1563, - 1564, 1412, 1413, 1588, 1486, 1610, 1487, 1643, 1488, 1645, - 1699, 1724, 1489, 1670, 1619, 1671, 1569, 463, 758, 1375, - 1414, 1503, 1624, 1476, 1477, 1555, 1636, 1608, 1604, 1415, - 1615, 1506, 909, 1673, 1674, 1675, 1702, 480, 966, 795, - 1096, 1288, 482, 483, 484, 791, 485, 148, 793, 800, - 1290, 1291, 555, 84, 85 -}; - -static const short yypact[] = { 130, - 156,-32768,-32768, 4151,-32768, 94, 37, 244, 251, 159, - 182,-32768,-32768, 1746,-32768, 152, 246, 268,-32768,-32768, --32768, 1423, 1547, 2462, 321,-32768, 332, 360,-32768, 2363, - 2363,-32768, 3048,-32768, 4151, 327,-32768,-32768, 379,-32768, - 437, 4320,-32768,-32768, 416, 877, 520, 477, 534,-32768, --32768,-32768,-32768, 399, 2057,-32768, 5440,-32768, 1217, 676, --32768, 577,-32768,-32768, 2122, 710,-32768, 550,-32768,-32768, - 568, 6081,-32768,-32768,-32768, 985,-32768,-32768,-32768, 2423, --32768,-32768, 2053, 3983, 555,-32768,-32768, 11853,-32768, 11853, --32768, 11853,-32768,-32768,-32768, 244, 251, 332, 629,-32768, - 573, 534,-32768, 718,-32768, 279, 11944, 11944, 621,-32768, --32768,-32768,-32768,-32768, 596, 665, 476, 547, 656, 672, - 692,-32768,-32768, 1842,-32768, 984, 244, 251,-32768, 332, - 629,-32768, 1528, 2151, 684, 7804, 11853,-32768, 11853, 3494, - 3728,-32768,-32768, 3433, 3821, 3728,-32768, 1752, 4168, 4168, - 3048, 674, 679,-32768, 399, 735, 683, 687,-32768,-32768, - 799,-32768, 706,-32768, 4926,-32768,-32768, 321, 4517, 725, --32768,-32768,-32768, 416, 7212, 8001, 790, 765,-32768,-32768, - 740, 577, 832, 122, 292, 807,-32768,-32768,-32768, 6640, - 10259,-32768,-32768, 5804, 5804, 4260, 985, 854,-32768,-32768, - 418,-32768,-32768, 3515,-32768,-32768,-32768,-32768,-32768, 1217, - 883,-32768, 577, 985,-32768,-32768,-32768, 2653, 1217,-32768, - 577,-32768, 7212,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 795,-32768, 534,-32768, 577, 2016, 2029, --32768,-32768, 550,-32768,-32768,-32768,-32768, 1111, 279,-32768, - 308, 1084,-32768, 89,-32768,-32768,-32768,-32768,-32768, 5924, --32768, 629,-32768,-32768,-32768,-32768, 3662,-32768, 784, 794, --32768,-32768,-32768,-32768, 819,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 821,-32768,-32768, - 1111, 6081, 428,-32768, 802,-32768,-32768, 12673, 12764, 12855, - 12855, 843,-32768,-32768,-32768,-32768,-32768, 847, 879, 884, - 887, 889, 875, 12035, 2103, 12855,-32768,-32768, 12855,-32768, --32768, 12855, 9071,-32768, 12855, 426, 906,-32768, 12855,-32768, - 12126,-32768, 4315, 301, 2540, 2158, 12217,-32768, 957, 1025, --32768, 671, 2721, 5994,-32768, 304,-32768, 1741, 3385, 426, - 426, 11853, 7804, 780,-32768, 2103,-32768,-32768, 12309, 873, - 919,-32768, 12902, 886, 890, 896, 2166, 706,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 665, 476, 547, 2103, - 656, 672, 932, 692,-32768, 954,-32768, 458, 244, 251, --32768,-32768,-32768,-32768,-32768,-32768, 8150,-32768, 7212, 8596, - 1927,-32768, 426, 673,-32768,-32768, 4716,-32768, 940, 948, --32768,-32768,-32768, 3728,-32768,-32768, 3728,-32768, 917,-32768, --32768,-32768, 735, 735, 735,-32768,-32768,-32768, 5924, 99, - 923, 935,-32768,-32768,-32768,-32768, 7804,-32768, 885, 916, --32768,-32768, 799,-32768, 577,-32768,-32768,-32768,-32768, 112, --32768,-32768,-32768,-32768, 9622, 12309,-32768,-32768, 939,-32768, - 919, 941, 12902, 365, 1908, 8001, 1908, 4907, 3029, 964, --32768, 414, 7008, 975, 983, 802,-32768, 955, 312, 105, - 4574, 6322,-32768,-32768, 6322,-32768, 7110, 7110, 4260, 6833, - 969,-32768, 577, 7212,-32768, 10350,-32768,-32768, 7617, 2653, - 1217, 7212,-32768, 577,-32768,-32768, 577, 2653,-32768, 1038, --32768, 11853, 795,-32768,-32768, 2016,-32768, 1913, 4668, 1111, - 577,-32768,-32768, 994, 1003, 1024, 1006,-32768,-32768,-32768, --32768, 779,-32768, 320, 973, 980,-32768,-32768, 1111,-32768, --32768, 247,-32768, 576,-32768, 11853, 12309, 9071,-32768, 9071, --32768,-32768,-32768, 12309, 11944, 7023, 7023, 7023, 7023, 4315, --32768,-32768,-32768,-32768, 987, 12400, 12400, 9071, 990, 167, - 997, 1048, 1007,-32768,-32768,-32768,-32768, 11853,-32768, 9162, - 9071,-32768, 12035, 12035, 9713, 12035, 12035, 12035, 12035, 12035, - 12035, 12035, 12035, 12035, 12035, 12035, 12035, 12035, 12035, 12035, - 12035, 12035, 12035,-32768, 12309,-32768,-32768,-32768,-32768,-32768, - 12309, 12309, 12309, 11944, 4087, 404, 912, 10441,-32768,-32768, --32768, 1062, 1084, 1113, 388, 439, 482, 3832, 576,-32768, - 3192, 3192, 2277, 10532, 1030, 1076,-32768,-32768, 587, 11121, - 1867,-32768, 537, 279,-32768,-32768, 12309,-32768,-32768,-32768, --32768,-32768, 62, 555,-32768,-32768, 426,-32768, 7212, 2393, --32768,-32768, 1064,-32768, 1018, 1070,-32768, 780, 932, 12973, --32768, 9986, 10077, 12309, 12309, 9713, 12309, 12309, 12309, 12309, - 12309, 12309, 12309, 12309, 12309, 12309, 12309, 12309, 12309, 12309, - 12309, 12309, 12309, 12309, 12309,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 68,-32768, 1039, 1036, 706, 458, 1078, 11853, --32768, 1086,-32768,-32768, 2151, 1621, 1114, 188, 1087, 1088, --32768,-32768, 5097, 2122,-32768, 1090,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 1052, 1055,-32768, 1098,-32768,-32768, - 416,-32768,-32768,-32768,-32768, 100, 1634, 1101, 1048,-32768, --32768,-32768,-32768, 5217, 12973,-32768, 1061,-32768,-32768,-32768, --32768,-32768, 2405, 2405, 6302,-32768,-32768,-32768,-32768, 3515, - 2053,-32768, 11213,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 983, 1105,-32768,-32768,-32768, 11489, 1076, 507,-32768, --32768,-32768,-32768, 6322, 6322, 7865, 7865, 6833, 537,-32768, --32768, 7617,-32768, 1107,-32768,-32768, 1063, 105,-32768, 2653, --32768,-32768, 577, 1099,-32768, 476, 547,-32768,-32768, 692, - 1120,-32768,-32768, 293,-32768,-32768, 2293,-32768, 788, 1163, --32768, 12309, 5559,-32768, 5559, 131, 131, 349, 512, 2892, - 7219, 69, 4778,-32768, 201, 131,-32768, 105, 8523, 11853, - 11853,-32768, 11853, 105, 8523,-32768,-32768,-32768,-32768,-32768, --32768, 871, 871, 871, 1456, 426, 1079, 1081, 1082, 12928, - 1085, 1091, 1102, 2781, 1116, 1125, 1126,-32768, 1095,-32768, --32768, 1096,-32768,-32768, 1133, 544, 750, 503, 269, 12309, - 1143,-32768, 1151, 1104, 4315, 4315,-32768,-32768, 1150, 3219, - 7860, 8164, 6898, 4606, 3237, 3082, 1926, 1926, 2626, 2626, - 976, 976, 488, 488, 488,-32768,-32768, 1108, 1119, 1121, - 1124, 1127, 1134, 7023, 404,-32768, 9622, 12309,-32768,-32768, --32768, 12309,-32768,-32768, 1135, 12855, 1130, 1156, 1172, 1205, --32768, 12309,-32768, 12309,-32768, 12309, 1274, 6023,-32768,-32768, - 6023,-32768, 80, 1274, 1147, 1149,-32768, 1148, 7023, 105, --32768, 105, 6189,-32768, 8523, 10623, 11305, 11305, 4425, 1154, - 12126, 1157, 3127, 4839, 3385, 1721, 1160,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 12309,-32768, 2103,-32768, 1171,-32768, - 12973,-32768, 12973, 12973, 12973, 1206, 8800, 5600, 10647, 5869, - 6344, 5132, 6543, 3109, 3109, 3109, 2965, 2965, 1295, 1295, - 900, 900, 900,-32768,-32768, 2166, 1164, 12491,-32768, 1178, - 1220,-32768, 426,-32768,-32768,-32768,-32768,-32768, 2264, 8150, --32768, 7023, 11853,-32768, 898, 12035,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 416,-32768,-32768, 665,-32768, - 656, 672, 12309, 1228,-32768, 521, 543, 564, 1048,-32768, - 85,-32768, 169,-32768, 3322, 3446, 3446, 3602, 3602, 6302, - 3799, 374, 3515,-32768, 4986, 6548, 11397, 11397, 8885, 412, - 1182, 575, 2260,-32768, 9622, 9256,-32768, 7023, 1302, 1302, - 3172,-32768,-32768,-32768, 1229,-32768,-32768,-32768,-32768,-32768, --32768, 2024,-32768, 8523, 12973,-32768, 1891,-32768, 577, 577, --32768,-32768,-32768,-32768,-32768, 8523, 711, 754, 12309, 1038, --32768, 1233,-32768,-32768,-32768, 184, 217, 2423, 3821, 375, - 131, 1235,-32768, 508, 1237, 577, 5688,-32768,-32768,-32768, - 577,-32768, 1188, 426, 426, 426,-32768, 1194, 105, 8523, - 105, 8523,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 7023, --32768,-32768, 1210, 1211, 1221, 1222, 1052,-32768, 8601, 9622, - 9349, 1201,-32768, 12035,-32768,-32768,-32768,-32768,-32768, 605, - 1212,-32768,-32768, 1216, 177, 535, 535, 1208, 535, 12309, --32768, 12855, 1317, 11853,-32768, 1226, 1227, 1231,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 105, 1232,-32768, - 1225, 3127,-32768,-32768, 5346, 5346, 6785,-32768,-32768,-32768, --32768,-32768, 12973,-32768,-32768, 12309,-32768,-32768, 206, 1236, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 4315,-32768,-32768, --32768, 1239,-32768, 1051,-32768, 12309,-32768, 12309,-32768, 12309, --32768, 2103,-32768,-32768, 6439, 1304,-32768, 9440,-32768, 3799, - 3446, 3446, 5457, 5457, 6903,-32768, 597, 4986, 1250, 208, - 599, 610, 660, 287,-32768,-32768,-32768,-32768,-32768,-32768, - 207, 5338, 5338, 2861, 2861, 9622,-32768,-32768, 1913,-32768, --32768,-32768, 105, 1256,-32768, 1276, 1276, 105, 1264, 12309, - 12309, 8398, 577, 3329, 577, 577, 6719, 577, 5329,-32768, --32768, 5811, 1276,-32768,-32768, 1288,-32768,-32768,-32768, 1266, --32768, 1273, 1277, 12309, 12309, 12309, 12309, 9622,-32768, 1319, --32768,-32768, 4315, 12309,-32768, 605,-32768,-32768,-32768,-32768, --32768,-32768, 1275,-32768, 1340, 426,-32768,-32768,-32768, 105, --32768,-32768,-32768,-32768,-32768, 12973, 12309,-32768,-32768,-32768, --32768, 1284, 1290, 1298, 1307,-32768, 931, 213, 1345, 810, - 856,-32768,-32768,-32768,-32768,-32768, 12309, 1346, 1349, 1351, - 11580, 606, 2103, 756, 715,-32768,-32768, 11671, 1404,-32768, --32768,-32768, 1354,-32768, 7438, 7610, 8259, 7367,-32768,-32768, - 1400,-32768,-32768,-32768, 10732,-32768,-32768, 7824, 7824, 537, - 7970, 664, 7023,-32768,-32768, 9622,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 8398, 8398,-32768, 1276, 745, 858, 12309, --32768,-32768,-32768, 1038, 1038, 1276, 1276, 779, 1276,-32768, --32768,-32768, 105, 105,-32768,-32768,-32768, 1312, 1313, 1315, - 1323,-32768, 9622, 1314,-32768,-32768,-32768,-32768,-32768, 105, - 1325,-32768,-32768,-32768,-32768, 1307,-32768, 2103,-32768,-32768, --32768,-32768,-32768,-32768, 580, 580, 1048, 1342, 1343, 7648, --32768,-32768,-32768,-32768, 1376, 12309, 1379, 1377, 1389, 2306, - 2334,-32768, 1048,-32768,-32768, 1357,-32768,-32768, 1038, 958, --32768, 961, 1038, 11762, 974, 242,-32768,-32768,-32768,-32768, --32768,-32768, 8040, 8040, 8353, 2506,-32768,-32768, 105, 105, --32768,-32768,-32768, 12309, 12309, 8398, 577, 577,-32768,-32768, --32768, 8690,-32768,-32768, 105, 105,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 1358,-32768,-32768,-32768, 11944,-32768, --32768,-32768, 1439, 11028, 8980, 11944, 12309,-32768, 10840,-32768, - 1396,-32768,-32768, 1403,-32768, 1389, 2306,-32768,-32768, 799, --32768,-32768, 12582, 12582, 9531,-32768,-32768, 1048, 2506,-32768, --32768, 8398, 8398,-32768, 1276, 1276,-32768, 10168,-32768,-32768, --32768,-32768, 8536,-32768,-32768, 1355, 111, 7212, 1048, 10934, --32768,-32768, 85,-32768,-32768, 1398, 1356, 12951, 10840,-32768, --32768,-32768,-32768, 1307, 87,-32768,-32768,-32768,-32768,-32768, - 1360, 8749, 1369, 1366, 1367, 1048,-32768, 1038,-32768,-32768, --32768,-32768, 593,-32768, 9804,-32768,-32768,-32768,-32768, 1307, - 1472, 1472, 1424,-32768,-32768,-32768, 520, 416,-32768,-32768, --32768, 577, 85,-32768, 12309, 1429,-32768, 1440,-32768, 1048, - 10840, 1391, 622, 1443,-32768, 186,-32768, 163,-32768, 1435, --32768, 1394,-32768,-32768,-32768,-32768, 12309, 799, 1445, 1472, - 799, 1472, 1447,-32768, 112,-32768,-32768,-32768, 9895, 1401, - 957, 261,-32768,-32768, 270, 662,-32768,-32768, 9622, 1402, --32768, 799, 1451, 1457, 799, 1459,-32768,-32768, 957,-32768, --32768, 281,-32768, 10934, 1461,-32768,-32768, 1517, 1523,-32768 -}; - -static const short yypgoto[] = {-32768, - 1524,-32768, -331, 1359, -380, -1, 9, 1525,-32768, 1491, --32768,-32768, 415,-32768, 513,-32768, 515,-32768, 29, 817, - 52, 22,-32768,-32768, -663,-32768,-32768, 498, 54, 1371, - 1106, 1378, -751, -111, -169, 10, 48,-32768,-32768,-32768, --32768,-32768, 705,-32768,-32768,-32768,-32768,-32768,-32768, 305, - -2,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 1464, -704, 7613, 1332, 67, -617, -159, -42, - 1433, -548,-32768, 1258,-32768, 88,-32768, -1440,-32768, -1497, - -148,-32768, 1731, 516, -266,-32768, -873, 7436, 5570, 6893, - 1442, 4981, 1280, -334, -55, -73, 203, -121, -70, 197, --32768,-32768,-32768, -345,-32768, -146,-32768,-32768, -1308, -54, - -337, 2771, 41, 1118, -140, 47, 96, -202, -4, -65, - -171, -167, 31, -44, 185,-32768, -387,-32768,-32768,-32768, --32768,-32768, 552, 1297, 171,-32768, 554,-32768,-32768, -998, - -436, 828,-32768,-32768,-32768,-32768,-32768, -20,-32768,-32768, --32768,-32768,-32768,-32768, 920, -384,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 1352,-32768, 298, 491,-32768,-32768,-32768, - 453, -776,-32768,-32768,-32768,-32768,-32768,-32768, 759,-32768, - 294, 936,-32768, 625, 998, 1680, 24, 1428, 1940, 1344, --32768, -511,-32768, 23, 1697, 1173, -131, 408, -101, 5492, - 1281,-32768, 6698, 2501, 2878, -17, -102,-32768, 1508, -52, --32768, 6046, 3777, -351,-32768, 2483, -61,-32768,-32768, 225, --32768,-32768, 370, -53, -369,-32768,-32768,-32768,-32768, -1473, --32768, -1306, -1471,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, -38,-32768,-32768, --32768,-32768,-32768, 20, -1391,-32768,-32768, -57,-32768,-32768, --32768,-32768, -656, -1465,-32768, -45, -1546, -577, -109, 855, --32768,-32768,-32768,-32768, -396,-32768, -386, -186,-32768, 380, - 223,-32768, -418,-32768, -196 -}; - - -#define YYLAST 13058 - - -static const short yytable[] = { 59, - 197, 182, 35, 449, 448, 122, 1069, 511, 450, 257, - 735, 101, 36, 661, 440, 651, 835, 425, 428, 115, - 736, 178, 734, 397, 660, 42, 303, 72, 766, 1006, - 59, 250, 405, 35, 437, 1050, 103, 59, 222, 894, - 169, 559, 561, 36, 55, 530, 716, 360, 989, 361, - 57, 174, 210, 141, 146, 537, 42, 528, 72, 403, - 404, 1192, 234, 42, 751, 72, 1116, 248, 1118, 510, - 1044, 396, 177, 257, 592, 55, 1148, 402, 518, 301, - 481, 57, 175, 353, 1556, 353, 735, 353, 176, 1504, - 762, 770, 1612, 170, 413, 171, 792, 630, 549, 58, - 313, 1519, 353, 353, 209, 264, 1145, 302, 1522, 630, - 630, 88, 759, 540, 1626, 1644, 26, 1262, 216, 217, - 197, 393, 457, 1051, 14, 1617, 822, 1026, 367, -1, - 58, 411, 353, 257, 353, 1639, 538, 58, 1642, 771, - 651, 1651, 772, 857, 1705, 421, 254, 20, 178, 1652, - 549, 798, 516, 519, 86, -2, 23, 15, 640, 72, - 59, -439, 664, 1694, 59, 1681, 799, 169, 1722, 514, - 760, 210, 424, 427, 445, 1027, 409, 1146, 174, 300, - -380, 539, 410, 408, 458, 478, 1676, 893, 72, 222, - 42, -439, 72, 1263, 1653, -439, 1685, 222, 222, 177, - 665, 666, 87, 797, 1669, 55, 748, 1057, -389, 175, - 15, 57, 892, 479, 614, 176, 459, 492, 495, -328, - 170, -380, 171, 209, 640, 458, 1706, 222, 1268, 155, - 94, 58, 225, 93, -328, 153, 523, 525, -328, -439, - 1691, -390, -389, 15, 107, 1067, -389, 1040, 1692, 535, - 127, 128, 1642, 741, 742, -328, 1614, 459, 1556, 615, - 58, 1149, 1620, 1041, 58, 1367, 1423, -328, -328, 797, - -328, 264, -328, 1480, -319, -390, 636, 1269, -389, -390, - 222, 1153, 8, 9, 1348, 477, 1229, 1158, 627, 1232, - 648, 652, 655, 1693, 635, 366, 724, 248, 89, 1110, - -328, -328, 1480, 130, 131, 91, 756, 1430, 1431, 1150, - 225, -390, 1649, 1368, 1424, -328, 1345, 661, 90, 667, - 1712, 1481, 571, 138, 1452, 92, 225, 253, 353, 1712, - 1111, -145, 222, 544, -304, 130, 131, 719, 108, 464, - 1712, 301, 1039, 1249, 1250, 155, 155, 155, 614, 248, - 1587, 656, 426, 429, 738, 532, 465, 353, 670, 640, - 109, 304, 91, 679, 1686, 425, 428, 868, 1713, 302, - 820, 1055, 1056, 1121, 712, 1244, 770, 1714, 437, -304, - -304, 264, 92, 225, 466, 1030, 72, 679, 1725, 1070, - 222, 225, 155, 615, -304, 135, 657, 1219, 153, -120, - 533, 15, 733, 669, 797, 210, 137, 1122, 225, 410, - 668, 1123, 869, 778, 138, 648, 652, 655, 38, 161, - 776, -621, 782, 784, 771, 786, 178, 772, 727, -855, - 479, 127, 128, -120, 139, 951, 537, -120, 1533, 162, - 158, 300, 59, 1124, 516, 519, 189, 1539, 1540, 38, - 1541, 936, 516, 1163, 1164, 1165, 753, 222, 58, -326, - 261, 399, 400, 10, 519, 189, -621, -621, 937, -120, - 72, 210, 1465, 787, 248, 823, 788, 177, 733, 824, - 952, -621, 26, 519, 130, 131, 953, 175, 1298, 222, - 222, 190, 191, 176, 1247, 163, 938, 222, 550, 21, - 1193, 585, 477, 586, -326, -326, 479, 990, 551, 222, - 190, 506, 26, 876, 27, 262, 39, 353, 40, -319, - 804, 805, 179, 825, 59, 1364, 1365, 843, 222, 955, - 382, 954, -118, 164, 15, 581, 1304, 187, 127, 128, - 8, 9, 58, 540, 183, 1148, 32, 39, 1309, 40, - 90, 353, 72, 353, 1097, 353, 158, 158, 158, 1125, - 353, 884, 884, 884, 884, -144, -118, 627, 1255, 850, - -118, 612, 613, 353, 956, 851, 846, 137, 477, 127, - 128, 1054, 1330, 353, 1332, 366, 353, 901, 188, 26, - 1257, 130, 131, 130, 131, 849, 1629, 1630, 89, 1098, - 835, 383, -118, 158, 1126, 940, -142, 18, 95, 110, - 111, 1259, 244, 1256, 992, 941, 724, 253, 90, 353, - 301, 92, -646, 1036, 58, 225, 246, 1558, 942, 304, - 949, 365, 130, 131, 974, 1258, 426, 746, 733, 661, - 1664, 1107, 1108, 735, -620, 478, -305, 1112, 302, 222, - 660, 1035, 936, 736, 379, 734, 1260, -303, 1285, 1287, - 380, 225, 112, 113, 958, 961, 479, -646, -646, 937, - 225, 652, 1559, 479, 127, 128, 264, 1033, 784, 975, - 976, 549, -646, 138, 1688, 1665, 1496, 225, 815, -620, - -620, -305, -305, 155, 155, 155, 821, 938, 1344, 1261, - 426, 429, -303, -303, -620, 472, -305, -647, 122, 257, - 384, -328, 222, 377, 592, 353, 1166, -303, 640, 381, - 300, 8, 9, 1038, 1715, 26, 385, 130, 131, 1689, - 137, 1045, 588, 454, 397, 223, 224, 261, 477, 1068, - 10, 641, 1067, 1339, 1341, 477, 386, 661, 585, 481, - 586, 642, -647, -647, 516, 481, -328, -328, 1282, 406, - 581, 901, 581, 643, 644, 18, 366, -647, 241, 1716, - 733, -322, 242, 1310, 130, 131, 21, 1502, 478, 426, - 889, -319, 95, 110, 111, 88, 430, 835, 664, 137, - 438, 431, 432, 581, -641, 1131, 1076, 1077, 479, 222, - 129, 1119, 1120, 264, 91, 433, 479, 1534, 89, 307, - 26, 1151, -143, 1499, -7, 434, 1311, 1154, 1155, 88, - 1156, 164, 652, 32, 92, 452, 866, 435, 90, 1099, - 1100, 1341, 453, 91, 456, 1113, 112, 113, 59, 672, - 59, 843, 91, 843, 1349, 1350, 210, 1352, 59, 223, - 451, 843, 982, 92, 733, 353, 353, 798, 353, 1425, - 733, 437, 92, 222, 89, 481, 72, 468, 72, 522, - 477, 867, 1483, 1243, 127, 128, 72, 545, 477, 540, - 1114, 547, 479, 850, 90, 1117, 1251, 546, 479, 851, - 846, 851, 846, 850, 557, 1209, 1284, 1130, 1140, 851, - 846, 1462, 1209, 15, 158, 158, 158, -439, 1616, 849, - 91, 849, 89, 504, 505, 127, 128, 849, 1484, 849, - 1535, 1209, 1299, 1300, 1301, 26, 1695, 130, 131, 884, - 92, 548, 90, 1195, -184, 564, -439, -439, 58, 565, - 58, 550, 512, 513, 504, 754, 425, 428, 58, 137, - -184, 551, -184, 566, 477, 425, 428, -52, 567, 437, - 477, 568, -52, 569, 884, 588, 26, 630, 130, 131, - 733, 155, 522, -52, 478, 512, 755, 153, 682, 155, - 681, 767, 940, 704, 705, 1091, 116, 117, 118, 1528, - 1478, 1479, 941, 706, 1325, 1326, 1327, 707, 479, 982, - 958, 961, 479, 708, 481, 942, 720, 264, 721, 426, - 746, 15, 257, 1209, 90, -439, 481, 504, 1581, 1209, - 512, 1582, 92, 712, 745, 631, 1551, 261, 399, 400, - 10, -6, 632, 504, 1586, 733, 1038, 884, 353, -854, - 119, 120, 1710, 749, -439, -439, 768, 794, 769, -439, - 481, 1058, 481, 1059, 826, 827, 609, 610, 611, 612, - 613, 727, 1131, 479, 15, 796, 21, 257, 860, 798, - 477, 785, 877, 633, 477, 733, 811, 861, 862, 26, - 863, 27, 262, 870, 478, 1313, 95, 110, 111, 534, - 871, 1315, 1316, 884, 888, 1313, 1318, 890, 1060, 1316, - 437, 1271, 1272, 479, 891, 26, 760, 1061, 1062, 733, - 1271, 1272, 479, 634, 893, 264, 948, 1562, 216, 217, - 950, 733, 969, 971, 14, 21, 996, 225, 995, 997, - 928, 1028, 1032, 1579, 225, 477, 929, 479, 931, 932, - 112, 113, 59, 1063, 1029, 843, 1034, 20, 437, 479, - 20, 1042, 1043, 225, 1046, 733, 23, 733, 1053, -322, - 1209, 1356, 1052, 458, 1130, 884, 127, 128, 1074, 1095, - 72, 1102, 987, 1103, 1106, 477, 76, 1173, 1340, 1109, - 426, 889, 158, 479, 477, 479, 1167, 850, 1168, 1169, - 158, 1174, 1171, 851, 846, -141, 1468, 1104, 1172, 353, - 1175, 1176, 1177, 1178, 254, 1180, 735, 76, 1209, 477, - 1181, 1183, 1184, 849, 76, 1185, 1635, 26, 1562, 130, - 131, 477, 733, 215, 216, 217, 1186, 202, 1200, 214, - 14, 1187, 1188, 1510, 1189, 1515, 1068, 1152, 1512, 1562, - 1202, 1190, 58, 1157, 1203, 225, 1204, 18, 958, 961, - 479, 225, 1205, 20, 1212, 477, 1213, 477, 1214, 1376, - 1407, 1223, 23, 1398, 1224, 1340, 1661, 1228, 1236, 798, - 733, 1238, 1717, 1399, 155, 155, 155, 127, 128, 1235, - 1242, 426, 429, 155, 155, 155, 1241, 1254, 72, 1280, - 426, 1279, 1314, 1297, 1319, 1324, 1418, 1419, 479, 1320, - 1562, 1328, 1334, 1335, 18, 8, 9, 475, 412, 1342, - 247, 1406, 415, 1336, 1337, 1099, 1100, 59, 1351, 1346, - 843, 640, 477, 1347, 1355, 762, 140, 140, 26, 156, - 130, 131, 18, 1357, 1358, 1363, 1262, 76, 1359, 1362, - 465, 76, -685, 1369, 641, 72, 1370, 202, 214, 1215, - 1509, 1216, 1509, 213, 642, 221, 26, 1422, 130, 131, - 58, 238, 850, 1429, 370, 375, 643, 644, 851, 846, - 477, 1433, 1292, 1455, 1105, 701, 702, 703, 704, 705, - 1456, 1463, 1293, 544, 1457, 1466, 222, 1467, 849, 1497, - 1498, 1472, 225, 1407, 1294, 202, 1398, 1473, 200, 1537, - 1538, 210, 1475, 1407, 549, 1474, 1398, 1482, 1491, 1492, - 1407, 1493, 1505, 1398, 1507, 1520, 1399, 58, 884, 1547, - 1548, 72, 1549, 1399, 1552, 95, 110, 111, 426, 746, - 1550, 72, 1554, 1625, 1565, 1566, 1570, 140, 72, 1572, - 225, 380, 140, 1573, 1406, 156, 156, 156, 488, 1580, - 1603, 425, 428, 1194, 1406, 1611, 1621, 1622, 1646, 127, - 128, 1406, 1637, 1647, 1209, 225, 1654, 1206, 514, 1207, - 1656, 1208, 213, 1659, 1660, 1557, 426, 746, 455, 112, - 113, 114, 1672, 1687, 1677, 158, 158, 158, 1679, 1683, - 491, 491, 500, 58, 158, 158, 158, 1575, 1578, 1697, - 1684, 1698, 1690, 58, 366, 1703, 221, 1707, 1711, 1718, - 58, 1720, 130, 131, 517, 221, 1729, 1721, 200, 1723, - 733, 1727, 1730, 1, 475, 160, 5, 1209, 447, 1577, - 261, 399, 400, 10, 1031, 671, 543, 1245, 1329, 446, - 1331, 1701, 444, 1240, 1701, 1678, 1418, 1419, 479, 116, - 117, 118, 752, 1638, 1607, 1141, 140, 363, 1371, 1407, - 1407, 1607, 1398, 1398, 1407, 1719, 200, 1398, 1701, 21, - 524, 414, 1399, 1561, 1623, 1726, 252, 1399, 1252, 1237, - 353, 202, 302, 556, 27, 262, 222, 72, 72, 302, - 579, 1073, 72, 1662, 527, 998, 1427, 1361, 733, 1322, - 475, 26, 1302, 119, 120, 1407, 804, 805, 1398, 1143, - 1406, 1406, 1450, 999, 1407, 1406, 32, 1398, 1399, 76, - 477, 1234, 935, 387, 388, 389, 479, 1399, 507, 156, - 637, 395, 1518, 72, 1058, 1416, 1059, 826, 827, 1696, - 1607, 1708, 72, 1650, 1704, 1527, 1094, 202, 779, 202, - 202, 0, 0, 0, 300, 790, 1406, 0, 0, 58, - 58, 300, 0, 415, 58, 1406, 1407, 0, 302, 1398, - 1306, 1307, 0, 0, 0, 26, 202, 391, 392, 1399, - 0, 1060, 1428, 0, 202, 0, 0, 1432, 26, 0, - 1061, 1062, -128, -128, 72, 0, 225, 1321, 477, 0, - 0, 856, 1323, 0, 0, 58, 213, 221, 0, 0, - 155, 0, 0, 0, 58, 0, 1091, 1406, 0, 1407, - 140, 0, 1398, 140, 8, 9, 1063, 147, 0, 156, - 156, 156, 1399, 0, 0, 140, 0, 0, 0, 1469, - 300, 0, 0, 261, 8, 9, 10, 72, 95, 96, - 97, 0, 200, 0, 95, 419, 420, 0, 0, 225, - 475, 260, 0, 817, 0, 570, 58, 475, 0, 366, - 1406, 1372, 213, 1373, 221, 1374, 0, 130, 131, 155, - 155, 155, 21, 0, 0, 0, 426, 1279, 491, 252, - 0, 491, 0, 500, 500, 500, 0, 27, 262, 455, - 26, 543, 98, 99, 100, 491, 517, 221, 98, 113, - 455, 0, 0, 0, 517, 579, 0, 579, 200, 58, - 200, 200, 881, 0, 0, 0, 0, 455, 0, 32, - 0, 0, 1543, 1544, 801, 579, 0, 416, 439, 0, - 0, 202, 418, 801, 387, 388, 389, 200, 579, 1553, - 0, 0, 908, 0, 156, 200, 156, 0, 0, 0, - 0, 0, 0, 1436, 1437, 0, 1446, 1447, 0, 1449, - 0, 490, 156, 156, 156, -600, 0, 0, -600, 930, - 0, 0, 1471, 0, 509, 947, 0, 156, 0, 0, - 390, 147, 475, 1127, 1128, 9, 10, 0, 391, 392, - 475, 968, 0, 0, 0, 202, 0, 0, 1590, 1591, - 7, 8, 9, 10, 971, 116, 826, 827, 0, 828, - 471, 158, 0, 0, 1601, 1602, -600, 0, -600, -600, - 0, -600, 21, 215, 216, 217, 0, 957, 957, 964, - 14, 0, -600, 908, -600, 26, 983, 27, 28, 21, - 829, 1305, 0, 1129, 0, 640, 541, 18, 0, -600, - -600, 194, 26, 20, 27, 28, 221, 26, 0, 119, - 120, 195, 23, 0, -600, 0, 475, 0, 773, 32, - 0, 0, 475, 196, 0, 1531, 1532, 739, 774, 0, - 158, 158, 158, 0, 0, 0, 32, 0, 0, 0, - 775, 644, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 0, 200, 0, 0, 856, 0, 856, 95, 96, - 97, 0, 1137, 1144, 0, 856, 116, 826, 827, 221, - 238, 95, 96, 97, 905, 906, 0, 910, 911, 912, - 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, - 923, 924, 925, 926, 927, 261, 8, 9, 10, 7, - 8, 9, 10, 0, 366, 0, 0, 0, 0, 1075, - 1075, 1081, 98, 99, 0, 0, 200, 0, 26, 1081, - 119, 120, 0, 0, 0, 98, 99, 1594, 1595, 1596, - 0, 0, 475, 156, 21, 0, 475, 0, 21, 0, - 491, 491, 500, 500, 500, 95, 110, 111, 491, 27, - 262, 26, 0, 27, 28, 0, 517, 193, 0, 455, - 743, 0, 0, 744, 95, 96, 97, 194, 226, 227, - 228, 0, 0, 493, 496, 747, 0, 195, 0, 0, - 0, 32, 0, 1627, 1628, 32, 0, 213, 0, 196, - 0, 0, 18, 261, 399, 400, 10, 475, 229, 112, - 113, 8, 9, 0, 0, 12, 13, 0, 95, 110, - 111, 14, 709, 710, 711, 0, 26, 0, 98, 99, - 230, 812, 0, 0, 0, 16, 818, 17, 416, 0, - 0, 418, 21, 1136, 20, 0, 471, 475, 0, 1198, - 0, 0, 0, 23, 0, 541, 475, 27, 262, 0, - 0, 858, 26, 1680, 130, 131, 623, 864, 0, 0, - 0, 0, 112, 113, 231, 232, 233, 0, 0, 872, - 873, 475, 874, 1221, 0, 0, 579, 0, 0, 32, - 0, 0, 0, 475, 0, 0, 0, 415, 0, 0, - 624, 0, 0, 0, 957, 0, 0, 957, 0, 0, - 0, 0, 1281, 8, 9, 10, 95, 110, 111, 957, - 226, 227, 228, 1222, 1222, 983, 0, 475, 0, 475, - 8, 9, 0, 167, 12, 13, 0, 471, 470, 1137, - 14, 0, 0, 0, 18, 116, 826, 827, 313, 659, - 229, 21, 0, 0, 16, 0, 17, 18, 95, 110, - 111, 0, 0, 20, 26, 0, 27, 262, 0, 856, - 112, 113, 23, 0, 640, 972, 973, 0, 0, 0, - 972, 26, 0, 130, 131, 238, 95, 110, 111, 0, - 0, 0, 0, 0, 475, 471, 579, 641, 32, 119, - 120, 471, 0, 471, 471, 0, 0, 642, 0, 0, - 0, 0, 112, 1574, 0, 7, 127, 128, 10, 643, - 644, 13, 1075, 1075, 1270, 1270, 1081, 0, 0, 0, - 471, 1075, 0, 1270, 1270, 1081, 0, 471, 0, 0, - 112, 1576, 475, 18, 0, 1295, 1295, 1295, 0, 215, - 216, 217, 0, 0, 21, 0, 14, 7, 8, 9, - 10, 0, 0, 13, 0, 455, 455, 26, 801, 27, - 28, 0, 0, 18, 801, 7, 8, 251, 10, 20, - 0, 802, 0, 30, 803, 18, 493, 496, 23, 0, - 0, 0, 455, 31, 0, 0, 21, 455, 819, 0, - 0, 32, 640, 993, 0, 33, 1085, 1353, 0, 26, - 1136, 27, 28, 0, 21, 127, 128, 0, 0, 0, - 147, 252, 0, 0, 0, 773, 0, 0, 0, 27, - 28, 0, 0, 0, 0, 774, 1445, 1248, 0, 1101, - 0, 1445, 0, 32, 856, 0, 0, 775, 644, 0, - 743, 744, 0, 253, 80, 0, 129, 0, 747, 8, - 9, 32, 0, 471, 104, 0, 26, 0, 130, 131, - 0, 1222, 1222, 983, 133, 0, 0, 471, 0, 0, - 144, 144, 0, 144, 0, 80, 18, 0, 0, 0, - 0, 0, 80, 0, 0, 1159, 0, 1161, 0, 0, - 0, 0, 0, 640, 0, 204, 0, 80, 0, 0, - 26, 0, 130, 131, 0, 239, 0, 1075, 1075, 1270, - 1270, 1081, 104, 0, 1075, 0, 1523, 202, 1513, 202, - 0, 0, 0, 267, 104, 0, 1524, 616, 1295, 1295, - 1295, 1458, 1459, 1460, 1461, 0, 0, 0, 1525, 644, - 0, 1464, 0, 0, 0, 0, 104, 0, 455, 455, - 0, 455, 455, 801, 455, 0, 0, 0, 0, 1196, - 1197, 0, 1199, 0, 0, 1343, 617, 618, 0, 0, - 619, 620, 621, 622, 133, 0, 80, 0, 801, 0, - 144, 144, 475, 0, 0, 417, 144, 0, 1495, 144, - 144, 144, 0, 1218, 0, 0, 0, 1444, 0, 515, - 216, 217, 0, 0, 0, 80, 14, 0, 471, 80, - 0, 0, 0, 0, 0, 204, 80, 0, 0, 0, - 0, 0, 471, 18, 471, 0, 471, 0, 0, 20, - 0, 0, 0, 0, 204, 204, 204, 0, 23, 0, - 0, 0, 213, 221, 607, 608, 609, 610, 611, 612, - 613, 0, 493, 496, 1526, 1526, 0, 1526, 0, 0, - 475, 0, 0, 204, 127, 128, 0, 0, 216, 217, - 455, 455, 0, 0, 14, 0, 0, 0, 0, 0, - 526, 0, 0, 802, 803, 493, 496, 0, 200, 104, - 200, 819, 0, 1571, 0, 0, 0, 20, 471, 0, - 144, 0, 0, 1278, 0, 0, 23, 0, 640, 0, - 0, 0, 416, 418, 0, 26, 0, 130, 131, 0, - 202, 541, 0, 0, 127, 128, 0, 0, 216, 217, - 0, 641, 1303, 471, 14, 0, 0, 0, 0, 0, - 0, 642, 104, 552, 1308, 0, 0, 0, 0, 0, - 500, 0, 0, 650, 644, 0, 1605, 20, 0, 1526, - 1526, 1589, 908, 1605, 0, 0, 23, 0, 640, 0, - 0, 0, 455, 455, 455, 26, 0, 130, 131, 0, - 0, 0, 579, 0, 0, 0, 104, 0, 0, 0, - 638, 641, 552, 552, 653, 0, 0, 0, 0, 0, - 0, 642, 0, 80, 8, 9, 0, 0, 0, 801, - 0, 0, 0, 643, 644, 0, 0, 374, 376, 500, - 500, 500, 0, 0, 0, 0, 0, 0, 455, 455, - 0, 18, 1360, 0, 1127, 1128, 9, 10, 133, 0, - 0, 0, 1605, 0, 0, 0, 0, 104, 0, 204, - 104, 0, 0, 0, 0, 26, 0, 130, 131, 0, - 0, 0, 1682, 0, 144, 0, 0, 144, 0, 0, - 0, 1292, 801, 21, 0, 0, 0, 0, 0, 144, - 0, 1293, 0, 0, 1700, 0, 26, 80, 27, 28, - 0, 200, 0, 1294, 1129, 1421, 908, 259, 455, 0, - 474, 0, 194, 0, 0, 0, 0, 743, 744, 0, - 0, 0, 195, 0, 747, 204, 780, 204, 204, 653, - 32, 259, 0, 780, 196, 0, 471, 0, 471, 0, - 471, 204, 204, 0, 0, 204, 0, 204, 204, 204, - 809, 0, 0, 1453, 204, 0, 0, 1454, 0, 204, - 259, 0, 204, 0, 0, 802, 803, 493, 496, 0, - 0, 259, 0, 0, 819, 0, 493, 496, 0, 80, - 0, -411, 8, 9, -411, -411, 12, 247, 802, 803, - 819, 1470, 14, 699, 700, 701, 702, 703, 704, 705, - 7, 127, 128, 10, 875, 0, 16, 0, 17, -411, - 0, 0, 0, 0, 0, 20, 104, 104, 104, 104, - -411, 0, 0, 0, 23, 0, 640, 0, 18, 0, - 0, 259, 0, 26, 0, 130, 131, 0, 0, 21, - 0, 0, 0, 0, 0, 0, 0, 471, 0, 641, - 0, 0, 26, 583, 27, 28, 0, 0, 1529, 642, - 0, 0, 1530, 0, 0, 0, 259, -411, 149, 0, - 0, 643, 644, 959, 962, 104, 0, 552, 150, 261, - 127, 128, 10, 0, 1545, 1546, 32, 0, 0, 638, - 151, 552, 552, 653, 259, 0, 0, 0, 0, 0, - 984, 0, 0, 0, 986, 603, 604, 18, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 0, 21, 204, - 0, 0, 0, 0, 640, 8, 9, 732, 0, 0, - 540, 26, 0, 27, 262, 697, 698, 699, 700, 701, - 702, 703, 704, 705, 0, 127, 128, 1225, 0, 0, - 13, 0, 18, 0, 0, 0, 0, 1226, 0, 0, - 802, 803, 493, 496, 0, 32, 0, 819, 133, 1227, - 644, 0, 18, 0, 0, 133, 26, 0, 130, 131, - 0, 493, 496, 204, 239, 259, 0, 0, 0, 640, - 0, 0, 1292, 0, 471, 0, 26, 0, 130, 131, - 0, 0, 1293, 732, 0, 959, 962, 0, 0, 0, - 0, 0, 641, 0, 1294, 0, 0, 0, 0, 0, - 0, 0, 642, 204, 204, 1083, 0, 0, 0, 0, - 0, 1086, 0, 1083, 643, 644, 597, 598, 599, 600, - 601, 602, 603, 604, 259, 605, 606, 607, 608, 609, - 610, 611, 612, 613, 204, 204, 809, 809, 809, 602, - 603, 604, 204, 605, 606, 607, 608, 609, 610, 611, - 612, 613, 0, 0, 7, 8, 9, 10, 878, 0, - 879, 1438, 1439, 9, 10, 882, 883, 885, 886, 887, - 133, 0, 0, 80, 0, 80, 0, 0, 583, 0, - 1138, 80, 18, 80, 0, 0, 0, 802, 803, 104, - 819, 904, 0, 21, 0, 104, 0, 0, 0, 640, - 21, 0, 552, 552, 552, 0, 26, 0, 27, 28, - 0, 0, 0, 26, 552, 27, 28, 658, 8, 9, - 10, 1440, 773, 0, 933, 0, 0, 0, 0, 194, - 0, 0, 774, 259, 0, 0, 0, 0, 0, 195, - 32, 0, 0, 963, 775, 644, 0, 32, 0, 0, - 963, 196, 0, 313, 659, 0, 21, 0, 0, 259, - 0, 0, 0, 0, 104, 7, 127, 128, 10, 26, - 1210, 130, 131, 1211, 0, 0, 0, 0, 7, 8, - 9, 10, 0, 0, 247, 1217, 0, 552, 552, 959, - 962, 552, 493, 496, 552, 0, 0, 0, 0, 104, - 0, 0, 0, 552, 21, 104, 18, 984, 984, 984, - 0, 252, 0, 552, 0, 1086, 0, 21, 0, 27, - 28, 0, 0, 640, 0, 0, 7, 127, 128, 10, - 26, 0, 27, 28, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 253, 0, 259, 773, 7, 8, 9, - 10, 32, 493, 496, 18, 0, 774, 0, 0, 0, - 259, 0, 0, 0, 32, 21, 0, 0, 775, 644, - 104, 0, 104, 0, 0, 963, 0, 0, 26, 0, - 27, 28, 0, 963, 0, 0, 21, 0, 1210, 1211, - 959, 962, 0, 252, 30, 0, 0, 1217, 0, 959, - 962, 27, 28, 0, 31, 204, 204, 204, 204, 204, - 1083, 809, 32, 0, 0, 204, 33, 1083, 1083, 1083, - 0, 0, 0, 1086, 0, 253, 0, 0, 104, 809, - 809, 809, 0, 32, 7, 8, 9, 10, 0, 0, - 13, 0, 0, 0, 104, 0, 0, 1138, 0, 0, - 0, 0, 0, 0, 0, 0, 104, 0, 0, 474, - 0, 0, 18, 0, 0, 474, 0, 0, 0, 1317, - 0, 0, 0, 21, 0, 0, 0, 80, 0, 640, - 0, 0, 0, 0, 0, 0, 26, 259, 27, 28, - 104, 0, 104, 0, 261, 8, 542, 10, 0, 0, - 104, 0, 1078, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1079, 0, 0, 0, 259, 0, 0, 0, - 32, 0, 0, 0, 1080, 644, 552, 552, 0, 552, - 0, 0, 0, 21, 1191, 0, 0, 959, 962, 0, - 252, 0, 0, 0, 0, 0, 0, 0, 27, 262, - 0, 0, 552, 0, 0, 552, 552, 653, 0, 0, - 7, 127, 128, 10, 0, 0, 247, 0, 0, 904, - 0, 0, 543, 0, 0, 474, 0, 0, 0, 963, - 32, 0, 259, 1210, 1211, 959, 962, 0, 18, 0, - 1217, 0, 0, 0, 0, 0, 0, 0, 0, 21, - 809, 204, 204, 809, 809, 1420, 0, 0, 204, 0, - 83, 0, 26, 0, 27, 28, 0, 0, 0, 0, - 106, 0, 809, 809, 809, 809, 0, 0, 30, 126, - 134, 261, 8, 9, 10, 0, 145, 145, 31, 145, - 732, 83, 1246, 0, 204, 0, 32, 0, 83, 144, - 33, 0, 80, 261, 127, 128, 10, 0, 0, 18, - 0, 145, 0, 83, 261, 127, 128, 10, 0, 0, - 21, 240, 0, 0, 0, 0, 640, 0, 249, 0, - 963, 0, 0, 26, 0, 27, 262, 0, 0, 963, - 249, 259, 21, 259, 0, 0, 0, 0, 1289, 1273, - 0, 0, 0, 21, 0, 0, 0, 27, 262, 1274, - 252, 0, 0, 0, 474, 0, 0, 32, 27, 262, - 0, 1275, 644, 0, 0, 0, 474, 0, 0, 0, - 1210, 1211, 0, 1217, 0, 204, 780, 204, 0, 32, - 0, 0, 83, 0, 0, 0, 145, 145, 809, 809, - 32, 809, 145, 104, 0, 145, 145, 145, 0, 0, - 474, 0, 474, 0, 0, 0, 0, 0, 0, 0, - 1333, 83, 0, 0, 0, 83, 0, 0, 0, 0, - 0, 145, 83, 0, 0, 0, 0, 0, 0, 0, - 259, 0, 0, 259, 0, 0, 0, 0, 0, 0, - 145, 145, 145, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 268, 0, 0, 8, 9, 0, 0, - 12, 13, 0, 0, 0, 0, 14, 963, 0, 145, - 0, 0, 0, 0, 0, 959, 962, 0, 0, 0, - 16, 0, 17, 0, 1083, 259, 0, 0, 0, 20, - 0, 269, 270, 809, 809, 1420, 809, 0, 23, 0, - 271, 0, 0, 0, 0, 0, 145, 26, 0, 130, - 131, 0, 272, 0, 0, 963, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 0, 0, 294, - 295, 296, 0, 297, 0, 0, 298, 0, 249, 554, - 0, 0, 0, 1083, 1083, 1083, 0, 0, 0, 809, - 8, 9, 299, 0, 12, 13, 0, 0, 0, 0, - 14, 0, 0, 104, 0, 0, 0, 0, 204, 0, - 0, 0, 0, 0, 16, 0, 17, 0, 0, 0, - 0, 0, 249, 20, 0, 0, 639, 0, 554, 554, - 654, 0, 23, 0, 0, 663, 0, 0, 0, 83, - 0, 26, 0, 130, 131, 0, 0, 0, 0, 0, - 0, 6, 0, 7, 8, 9, 10, 11, 12, 13, - 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, - 7, 127, 128, 10, 725, 0, 13, 15, 16, 934, - 17, 18, 19, 249, 0, 145, 249, 20, 0, 0, - 0, 0, 21, 1289, 259, 22, 23, 24, 18, 25, - 145, 0, 0, 145, 0, 26, 0, 27, 28, 21, - 0, 29, 0, 0, 0, 145, 0, 0, 0, 0, - 0, 30, 26, 83, 27, 28, 0, 0, 0, 0, - 0, 31, 0, 0, 0, 0, 0, 0, 149, 32, - 0, 0, 0, 33, 0, 0, 0, 34, 150, 0, - 0, 145, 781, 145, 145, 654, 32, 0, 0, 781, - 151, 0, 7, 8, 9, 10, 0, 145, 145, 0, - 0, 145, 0, 145, 145, 145, 554, 0, 0, 0, - 145, 0, 0, 0, 0, 145, 0, 0, 145, 0, - 18, 0, 0, 0, 0, 963, 0, 259, 0, 0, - 0, 21, 0, 0, 837, 83, 0, 0, 0, 0, - 0, 0, 0, 0, 26, 0, 27, 28, 0, 0, - 166, 0, 7, 8, 9, 10, 167, 12, 13, 0, - 497, 0, 0, 14, 0, 0, 0, 0, 0, 0, - 498, 0, 249, 249, 249, 249, 0, 16, 32, 17, - 18, 19, 499, 0, 0, 583, 20, 0, 0, 0, - 0, 21, 0, 0, 0, 23, 0, 0, 168, 0, - 0, 0, 0, 732, 26, 0, 27, 28, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 30, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 31, 249, 0, 554, 0, 0, 0, 0, 32, 0, - 0, 0, 33, 0, 0, 0, 34, 554, 554, 654, - 0, 0, 0, 0, 0, 575, 985, 261, 8, 9, - 10, 167, 12, 305, 306, 307, 470, 308, 14, 663, - 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, - 0, 0, 16, 309, 17, 18, 19, 0, 310, 311, - 312, 20, 0, 313, 314, 315, 21, 316, 317, 0, - 23, 0, 640, 0, 318, 319, 320, 321, 322, 26, - 0, 27, 262, -336, 0, 0, 369, 0, 0, 0, - 0, 0, 325, 0, 725, 977, 0, 0, 0, 0, - 0, 0, 126, 327, 328, 978, 0, 0, 0, 145, - 240, 330, 331, 332, 0, 0, 0, 979, 644, 7, - 8, 9, 10, 167, 12, 13, 0, 0, 0, 0, - 14, 0, 0, 837, 334, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 17, 18, 19, 145, - 145, 781, 0, 20, 0, 0, 0, 0, 21, 1093, - 0, 0, 23, 0, 0, 168, 0, 0, 0, 0, - 0, 26, 0, 27, 28, 0, 7, 8, 9, 10, - 145, 145, 554, 554, 554, 0, 0, 30, 145, 0, - 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, - 0, 0, 0, 0, 18, 32, 0, 0, 0, 33, - 0, 0, 0, 34, 0, 21, 134, 0, 0, 83, - 0, 83, 0, 0, 0, 0, 1139, 83, 26, 83, - 27, 28, 0, 0, 0, 249, 0, 0, 0, 0, - 0, 249, 0, 0, 194, 0, 0, 0, 554, 554, - 554, 0, 0, 0, 195, 0, 0, 0, 0, 0, - 554, 0, 32, 0, 0, 0, 196, 0, 838, 0, - 7, 8, 839, 10, 167, 12, 13, 601, 602, 603, - 604, 14, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 0, 0, 0, 0, 16, 0, 17, 18, 19, - 0, 0, 0, 0, 20, -544, 0, 0, 0, 21, - 249, 0, 0, 23, 840, 0, 168, 0, 261, 127, - 128, 10, 26, 0, 27, 28, 0, 0, 841, 0, - 842, 0, 0, 554, 554, 0, 0, 554, 30, 0, - 554, 0, 0, 0, 0, 249, 0, 0, 31, 554, - 0, 249, 0, 985, 985, 985, 32, 21, 0, 554, - 33, 663, 0, 0, 252, 0, 0, 0, 0, 0, - 0, 0, 27, 262, 0, 0, -544, 0, 838, 0, - 7, 8, 839, 10, 167, 12, 13, 0, 0, 0, - 0, 14, 0, 0, 0, 0, 543, 0, 0, 0, - 0, 0, 0, 0, 32, 16, 0, 17, 18, 19, - 0, 0, 0, 0, 20, -545, 249, 0, 249, 21, - 0, 0, 0, 23, 840, 0, 168, 0, 0, 0, - 0, 0, 26, 0, 27, 28, 0, 0, 841, 0, - 842, 261, 8, 9, 10, 0, 0, 0, 30, 0, - 0, 145, 145, 145, 145, 145, 781, 554, 31, 0, - 0, 145, 0, 1093, 1093, 1093, 32, 0, 0, 663, - 33, 0, 0, 0, 249, 554, 554, 554, 0, 0, - 21, 0, 0, 0, 0, 0, -545, 252, 837, 0, - 249, 0, 0, 1139, 0, 27, 262, 0, 0, 0, - 0, 0, 249, 0, 0, 0, 0, 0, 0, 7, - 8, 9, 10, 215, 216, 217, 0, 0, 0, 253, - 14, 0, 0, 83, 0, 0, 6, 32, 7, 8, - 9, 10, 11, 12, 13, 0, 249, 18, 249, 14, - 0, 0, 0, 20, 0, 0, 249, 0, 21, 0, - 0, 0, 23, 16, 640, 17, 18, 0, 0, 0, - 0, 26, 20, 27, 28, 0, 0, 21, 0, 0, - 0, 23, 554, 554, 443, 554, 0, 773, 0, 0, - 26, 0, 27, 28, 51, 0, 29, 774, 7, 8, - 9, 10, 0, 0, 540, 32, 30, 0, 554, 783, - 644, 554, 554, 654, 0, 0, 31, 0, 0, 0, - 51, 51, 0, 152, 32, 51, 18, 0, 33, 0, - 0, 0, 51, 0, 0, 0, 0, 21, 0, 0, - 837, 0, 0, 640, 0, 51, 0, 51, 0, 0, - 26, 0, 27, 28, 0, 0, 554, 145, 145, 554, - 554, 654, 0, 0, 145, 0, 773, 0, 0, 0, - 255, 0, 0, 263, 0, 0, 774, 0, 554, 554, - 554, 554, 0, 0, 32, 837, 0, 0, 775, 644, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 145, 0, 0, 0, 0, 145, 0, 0, 83, 7, - 8, 9, 10, 215, 216, 217, 0, 0, 0, 0, - 14, 0, 0, 401, 401, 0, 51, 0, 0, 0, - 51, 51, 0, 0, 255, 263, 51, 18, 0, 152, - 152, 152, 0, 20, 0, 0, 436, 0, 21, 0, - 0, 0, 23, 0, 640, 51, 0, 0, 0, 51, - 0, 26, 0, 27, 28, 51, 51, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 773, 0, 0, - 1501, 0, 0, 0, 51, 51, 152, 774, 0, 0, - 0, 145, 781, 145, 255, 32, 0, 0, 0, 775, - 644, 0, 0, 0, 554, 554, 0, 554, 0, 249, - 0, 0, 0, 51, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 763, 0, 895, - 896, 897, 10, 0, 12, 486, 306, 307, 0, 308, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 51, 0, 0, 0, 16, 309, 17, 255, 19, 0, - 310, 311, 312, 20, 0, 313, 314, 315, 21, 316, - 317, 0, 23, 0, 0, 0, 318, 319, 320, 321, - 322, 26, 0, 898, 899, 764, 0, 0, 369, 0, - 0, 0, 0, 0, 325, 0, 0, 326, 0, 0, - 1093, 0, 0, 0, 0, 327, 328, 329, 0, 554, - 554, 654, 554, 330, 331, 332, 0, 0, 0, 333, - 900, 0, 0, 580, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1072, 334, 0, 0, 0, - 401, 1438, 127, 128, 10, 0, 0, 0, 255, 0, - 0, 8, 9, 51, 0, 0, 13, 0, 261, 127, - 128, 10, 0, 0, 13, 0, 0, 0, 0, 1093, - 1093, 1093, 0, 0, 0, 554, 0, 0, 18, 0, - 21, 0, 0, 0, 0, 0, 18, 0, 401, 249, - 0, 0, 0, 26, 145, 27, 28, 21, 0, 51, - 0, 1440, 26, 640, 130, 131, 0, 255, 0, 30, - 26, 0, 27, 262, 51, 0, 0, 51, 1292, 31, - 0, 0, 0, 436, 436, 436, 1225, 32, 1293, 51, - 0, 33, 0, 0, 0, 0, 1226, 51, 0, 0, - 1294, 0, 0, 0, 32, 0, 0, 0, 1227, 644, - 0, 0, 7, 8, 9, 10, 206, 12, 207, 0, - 0, 0, 0, 14, 0, 51, 51, 51, 51, 261, - 8, 9, 10, 51, 0, 13, 0, 16, 0, 17, - 18, 51, 51, 0, 0, 51, 20, 152, 152, 152, - 436, 21, 0, 0, 51, 23, 0, 18, 0, 51, - 0, 0, 51, 0, 26, 78, 27, 28, 21, 0, - 208, 0, 0, 0, 640, 0, 0, 0, 0, 51, - 30, 26, 0, 27, 262, 0, 0, 0, 0, 0, - 31, 78, 78, 0, 78, 0, 78, 1273, 32, 0, - 0, 0, 33, 78, 0, 0, 0, 1274, 580, 0, - 580, 0, 0, 0, 0, 32, 78, 0, 78, 1275, - 644, 0, 0, 0, 0, 0, 580, 580, 580, 838, - 0, 7, 8, 839, 10, 167, 12, 13, 0, 0, - 0, 580, 14, 0, 265, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, - 19, 0, 0, 0, 0, 20, 0, 0, 0, 0, - 21, 0, 0, 0, 23, 840, 0, 168, 0, 0, - 0, 0, 0, 26, 0, 27, 28, 0, 255, 841, - 0, 842, 0, 0, 0, 0, 0, 78, 0, 30, - 580, 78, 78, 0, 0, 0, 265, 78, 0, 31, - 78, 78, 78, 0, 0, 0, 0, 32, 0, 51, - 0, 33, 0, 0, 0, 0, 78, 342, 0, 342, - 78, 342, 0, 0, 0, 0, 78, 78, 689, 690, - 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 78, 78, 78, 838, 0, - 7, 8, 839, 10, 167, 12, 13, 0, 401, 0, - 0, 14, 0, 0, 0, 401, 342, 0, 342, 0, - 0, 0, 0, 51, 78, 16, 0, 17, 18, 19, - 0, 0, 0, 0, 20, -547, 0, 0, 0, 21, - 0, 0, 0, 23, 840, 0, 168, 0, 0, 0, - 0, 0, 26, 0, 27, 28, 0, 0, 841, 0, - 842, 78, 0, 51, 51, 152, 0, 0, 30, 0, - 255, 263, 0, 1090, 0, 0, 0, 0, 31, 0, - 0, 0, 0, 0, 0, 0, 32, 580, 0, 0, - 33, 0, 0, 0, 51, 51, 436, 436, 436, 0, - 0, 0, 51, 0, 0, 0, -547, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, - 0, 838, 13, 7, 8, 839, 10, 167, 12, 13, - 0, 0, 0, 51, 14, 51, 0, 0, 0, 0, - 51, 51, 0, 51, 18, 0, 0, 0, 16, 0, - 17, 18, 19, 0, 0, 21, 0, 20, -546, 0, - 662, 0, 21, 0, 78, 0, 23, 840, 26, 168, - 27, 28, 0, 0, 0, 26, 0, 27, 28, 0, - 0, 841, 0, 842, 194, 0, 0, 0, 0, 562, - 563, 30, 0, 0, 195, 0, 0, 0, 0, 0, - 0, 31, 32, 342, 0, 572, 196, 0, 573, 32, - 78, 574, 0, 33, 584, 0, 0, 0, 589, 0, - 0, 0, 0, 0, 0, 78, 629, 0, 78, -546, - 0, 0, 0, 0, 0, 0, 7, 127, 128, 10, - 78, 342, 540, 0, 0, 0, 0, 0, 78, 691, - 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, - 702, 703, 704, 705, 18, 0, 0, 580, 580, 580, - 0, 0, 0, 436, 255, 21, 78, 78, 78, 78, - 0, 0, 0, 0, 78, 0, 0, 0, 26, 0, - 27, 28, 78, 78, 0, 0, 78, 0, 78, 78, - 78, 0, 0, 0, 30, 78, 0, 8, 9, 0, - 78, 12, 247, 78, 31, 0, 0, 14, 0, 0, - 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, - 78, 16, 0, 17, 0, 0, 127, 128, 0, 0, - 20, 247, 0, 0, 0, 0, 0, 0, 0, 23, - 0, 640, 0, 0, 0, 0, 0, 0, 26, 0, - 130, 131, 0, 18, 0, 51, 51, 51, 152, 152, - 152, 436, 0, 255, 641, 51, 255, 1090, 1090, 1090, - 640, 0, 0, 263, 642, 0, 0, 26, 159, 130, - 131, 0, 0, 0, 8, 9, 643, 644, 12, 247, - 0, 342, 0, 641, 14, 0, 0, 51, 0, 0, - 205, 0, 0, 642, 0, 0, 0, 0, 16, 0, - 17, 0, 0, 0, 0, 643, 644, 20, 255, 263, - 0, 0, 0, 0, 0, 342, 23, 51, 0, 0, - 662, 0, 0, 0, 0, 26, 0, 130, 131, 0, - 0, 0, 0, 0, 0, 572, 573, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 342, 0, 0, - 78, 0, 342, 342, 0, 342, 342, 342, 342, 342, - 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, - 342, 342, 342, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 127, 128, 159, 159, 159, 540, 0, 0, - 0, 0, 436, 0, 0, 436, 436, 436, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, - 205, 0, 0, 0, 78, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 640, 0, 0, 205, - 205, 502, 0, 26, 0, 130, 131, 0, 0, 0, - 436, 51, 51, 436, 436, 436, 0, 0, 51, 641, - 0, 0, 0, 0, 78, 78, 78, 0, 205, 642, - 0, 0, 265, 0, 1092, 0, 0, 0, 0, 0, - 0, 643, 644, 0, 0, 0, 0, 0, 0, 342, - 0, 0, 0, 0, 51, 78, 78, 255, 0, 51, - 0, 0, 51, 78, 7, 8, 9, 10, 167, 12, - 13, 0, 0, 470, 0, 14, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 8, 9, 10, 0, 16, - 247, 17, 18, 0, 78, 0, 78, 0, 20, 0, - 0, 78, 78, 21, 78, 0, 0, 23, 553, 640, - 0, 0, 18, 0, 0, 0, 26, 0, 27, 28, - 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, - 0, 0, 1078, 0, 0, 0, 26, 0, 27, 28, - 0, 0, 1079, 0, 0, 51, 51, 51, 0, 0, - 32, 0, 194, 0, 1080, 644, 0, 647, 647, 647, - 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, - 32, 0, 0, 0, 196, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 342, - 342, 0, 342, 0, 0, 0, 0, 0, 0, 1378, - 0, 1379, 1380, 1381, 10, 167, 12, 305, 306, 307, - 0, 308, 14, 1382, 205, 1383, 1384, 1385, 1386, 1387, - 1388, 1389, 1390, 1391, 1392, 15, 16, 309, 17, 18, - 19, 0, 310, 311, 312, 20, 662, 313, 314, 315, - 21, 316, 317, 1393, 23, 1394, 0, 0, 318, 319, - 320, 321, 322, 26, 1090, 1395, 262, 760, 0, 1396, - 369, 0, 0, 0, 0, 0, 325, 0, 0, 326, - 0, 0, 0, 0, 0, 1201, 0, 327, 328, 329, - 777, 0, 777, 777, 647, 330, 331, 332, 0, 0, - 0, 333, 0, 1397, 0, 0, 205, 205, 0, 0, - 205, 0, 502, 502, 502, 810, 572, 573, 334, 205, - 261, 8, 9, 10, 205, 0, 0, 205, 0, 0, - 0, 0, 0, 1090, 1090, 1090, 78, 78, 78, 78, - 78, 78, 0, 0, 0, 0, 78, 0, 1092, 1092, - 1092, 0, 0, 0, 1283, 0, 0, 0, 51, 21, - 0, 0, 0, 0, 0, 0, 252, 0, 0, 0, - 0, 0, 0, 0, 27, 262, 0, 0, 78, 0, - 0, 0, 342, 0, 0, 342, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 543, 0, - 265, 0, 0, 0, 0, 0, 32, 0, 78, 0, - 469, 0, 261, 8, 9, 10, 167, 12, 305, 306, - 307, 470, 308, 14, 0, 0, 572, 573, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 309, 17, - 18, 19, 943, 310, 311, 312, 20, 0, 313, 314, - 315, 21, 316, 317, 0, 23, 647, 647, 647, 318, - 319, 320, 321, 322, 26, 647, 27, 262, 0, 0, - 0, 369, 0, 0, 0, 0, 0, 325, 0, 0, - 326, 0, 0, 0, 205, 0, 0, 0, 327, 328, - 329, 261, 127, 1448, 10, 0, 330, 331, 332, 0, - 0, 0, 333, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -825, 0, 334, - 0, 0, 203, 342, 0, 0, 0, 0, 0, 0, - 21, 0, 78, 78, 0, 0, 0, 252, 0, 78, - 0, 1354, 0, 342, 0, 27, 262, 258, 777, 0, - 266, 0, 0, 0, 0, 0, 0, 261, 8, 9, - 10, 167, 12, 13, 0, 0, 470, 0, 14, 543, - 0, 258, 0, 368, 0, 78, 0, 32, 0, 0, - 78, 0, 16, 78, 17, 18, 0, 0, 777, 777, - 1084, 20, 0, 0, 0, 0, 21, 0, 1084, 0, - 23, 0, 640, 0, 0, 261, 8, 9, 10, 26, - 0, 27, 262, 0, 0, 0, 0, 0, 0, 205, - 205, 810, 810, 810, 0, 1225, 0, 205, 0, 0, - 0, 0, 0, 18, 0, 1226, 0, 0, 0, 0, - 0, 0, 203, 32, 21, 0, 0, 1227, 644, 0, - 0, 0, 0, 0, 0, 0, 0, 26, 0, 27, - 262, 203, 203, 203, 0, 205, 78, 78, 78, 0, - 0, 508, 0, 806, 0, 261, 8, 9, 10, 167, - 12, 13, 0, 807, 470, 0, 14, 553, 553, 553, - 203, 32, 0, 0, 0, 808, 0, 0, 0, 647, - 16, 0, 17, 18, 0, 0, 0, 0, 0, 20, - 0, 0, 0, 0, 21, 0, 266, 0, 23, 0, - 640, 0, 0, 0, 0, 0, 0, 26, 0, 27, - 262, 0, 0, 0, 258, 0, 0, 584, 600, 601, - 602, 603, 604, 1273, 605, 606, 607, 608, 609, 610, - 611, 612, 613, 1274, 0, 0, 0, 0, 0, 0, - 0, 32, 0, 0, 0, 1275, 644, 0, 0, 0, - 0, 0, 647, 647, 0, 1092, 647, 0, 0, 647, - 7, 8, 9, 10, 167, 12, 13, 0, 647, 789, - 0, 14, 647, 647, 647, 0, 8, 9, 647, 0, - 12, 13, 0, 0, 0, 16, 14, 17, 18, 0, - 0, 0, 0, 0, 20, 0, 0, 0, 0, 21, - 16, 0, 17, 23, 0, 258, 266, 0, 0, 20, - 0, 0, 26, 0, 27, 28, 0, 0, 23, 0, - 0, 0, 0, 0, 1092, 1092, 1092, 26, 30, 130, - 131, 0, 473, 0, 0, 0, 0, 0, 31, 0, - 0, 0, 0, 0, 0, 0, 32, 0, 0, 78, - 33, 0, 0, 0, 0, 0, 203, 0, 0, 0, - 0, 0, 7, 8, 9, 10, 0, 0, 13, 0, - 777, 777, 777, 1084, 1084, 1084, 1276, 0, 0, 0, - 777, 0, 1084, 1084, 1084, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 810, 810, 810, 0, 0, 0, - 0, 21, 572, 573, 0, 0, 0, 0, 0, 0, - 0, 0, 205, 0, 26, 0, 27, 28, 0, 0, - 0, 0, 203, 0, 203, 203, 0, 0, 0, 0, - 497, 0, 0, 0, 0, 0, 0, 0, 203, 203, - 498, 0, 203, 0, 203, 203, 203, 203, 32, 0, - 0, 203, 499, 0, 0, 0, 203, 0, 0, 203, - 0, 0, 0, 0, 7, 8, 9, 10, 0, 0, - 0, 1127, 8, 839, 10, 206, 12, 207, 0, 0, - 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 943, 943, 0, 943, 0, 16, 0, 17, 18, - 0, 0, 0, 21, 0, 20, 0, 0, 0, 0, - 21, 680, 0, 0, 23, 0, 26, 647, 27, 28, - 647, 647, 647, 26, 0, 27, 28, 0, 0, 0, - 0, 1129, 194, 0, 0, 0, 0, 0, 0, 30, - 0, 0, 195, 0, 0, 0, 0, 0, 0, 31, - 32, 0, 0, 0, 196, 0, 0, 32, 0, 0, - 0, 33, 0, 0, 0, 1276, 777, 777, 1276, 1276, - 1276, 0, 0, 777, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 810, 810, 810, - 810, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 258, 266, 0, 0, 0, 0, 0, 765, 473, 205, - 0, 0, 0, 0, 0, 0, 203, 1516, 0, 1379, - 1380, 1381, 10, 167, 12, 305, 306, 307, 0, 308, - 14, 1382, 0, 1383, 1384, 1385, 1386, 1387, 1388, 1389, - 1390, 1391, 1392, 15, 16, 309, 17, 18, 19, 0, - 310, 311, 312, 20, 0, 313, 314, 315, 21, 316, - 317, 1393, 23, 1394, 0, 0, 318, 319, 320, 321, - 322, 26, 0, 1395, 262, 760, 0, 1396, 369, 0, - 203, 0, 0, 0, 325, 0, 0, 326, 0, 0, - 7, 8, 9, 10, 0, 327, 328, 329, 0, 473, - 205, 0, 205, 330, 331, 332, 880, 0, 0, 333, - 0, 1397, 0, 1276, 1276, 0, 1276, 0, 0, 0, - 203, 203, 1082, 0, 0, 1517, 334, 258, 266, 21, - 1082, 0, 765, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 26, 0, 27, 28, 0, 0, 1508, 0, - 0, 203, 203, 203, 203, 203, 508, 473, 194, 203, - 0, 0, 0, 473, 0, 473, 473, 0, 195, 0, - 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, - 196, 0, 0, 0, 266, 0, 0, 0, 0, 0, - 0, 0, 473, 0, 0, 0, 0, 203, 0, 473, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 502, - 0, 0, 0, 0, 0, 0, 0, 0, 1276, 1276, - 1276, 1276, 0, 0, 1001, 1003, 1004, 1005, 0, 1007, - 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, - 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 8, 9, 10, 206, 12, 207, 7, - 8, 9, 10, 14, 0, 540, 102, 0, 502, 502, - 502, 0, 0, 0, 1276, 121, 102, 16, 0, 17, - 18, 0, 102, 102, 0, 102, 20, 18, 0, 0, - 0, 21, 0, 205, 0, 23, 765, 0, 21, 1567, - 0, 0, 0, 0, 26, 0, 27, 28, 0, 0, - 1511, 26, 0, 27, 28, 473, 0, 236, 0, 0, - 30, 258, 266, 258, 0, 0, 0, 194, 0, 473, - 31, 0, 0, 0, 0, 0, 0, 195, 32, 0, - 0, 0, 33, 0, 0, 32, 0, 0, 0, 196, - 1568, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 0, 1115, 0, 394, 0, 121, 0, - 0, 0, 0, 0, 0, 102, 102, 0, 0, 0, - 0, 0, 102, 102, 0, 0, 102, 102, 102, 0, - 422, 102, 102, 102, 0, 0, 0, 0, 0, 0, - 0, 0, 203, 203, 203, 203, 203, 1082, 203, 0, - 1277, 0, 203, 258, 1082, 1082, 1082, 645, 645, 645, - 266, 0, 1179, 0, 0, 0, 203, 203, 203, 0, - 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, - 167, 12, 13, 0, 203, 0, 0, 14, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8, 9, 765, - 473, 16, 247, 17, 18, 508, 0, 0, 0, 0, - 20, 0, 0, 0, 473, 21, 473, 0, 473, 23, - 0, 236, 102, 0, 18, 0, 0, 0, 26, 0, - 27, 28, 0, 0, 0, 0, 0, 261, 8, 9, - 10, 640, 102, 13, 30, 0, 0, 0, 26, 0, - 130, 131, 0, 0, 31, 0, 0, 1233, 0, 0, - 0, 0, 32, 0, 1523, 18, 33, 0, 0, 0, - 0, 0, 0, 0, 1524, 0, 21, 0, 0, 0, - 645, 0, 645, 645, 645, 102, 1525, 644, 0, 26, - 473, 27, 262, 0, 0, 0, 0, 0, 598, 599, - 600, 601, 602, 603, 604, 806, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 807, 0, 0, 0, 0, - 0, 0, 0, 32, 0, 473, 0, 808, 0, 0, - 0, 0, 102, 0, 102, 102, 0, 203, 203, 203, - 203, 203, 1082, 8, 9, 203, 0, 0, 540, 0, - 0, 0, 0, 0, 0, 0, 0, 765, 765, 203, - 203, 203, 203, 0, 0, 0, 0, 0, 0, 0, - 18, 0, 0, 7, 8, 9, 10, 206, 12, 207, - 102, 203, 0, 0, 14, 0, 0, 640, 0, 0, - 0, 1312, 0, 0, 26, 0, 130, 131, 16, 102, - 17, 18, 0, 0, 0, 0, 102, 20, 0, 102, - 1523, 0, 21, 8, 9, 0, 23, 0, 13, 0, - 1524, 102, 0, 0, 0, 26, 0, 27, 28, 0, - 0, 0, 1525, 644, 0, 0, 0, 0, 0, 0, - 18, 30, 765, 765, 0, 0, 645, 645, 645, 0, - 0, 31, 0, 0, 0, 981, 0, 640, 0, 32, - 0, 0, 0, 33, 26, 0, 130, 131, 0, 0, - 0, 0, 203, 0, 203, 0, 0, 0, 0, 0, - 1523, 0, 0, 0, 0, 203, 203, 1277, 203, 0, - 1524, 0, 0, 0, 0, 0, 0, 0, 1366, 0, - 0, 0, 1525, 644, 0, 0, 0, 0, 102, 0, - 830, 0, 0, 0, 0, 0, 0, 0, 473, 0, - 473, 0, 473, 8, 9, 0, 167, 12, 13, 0, - 765, 0, 0, 14, 102, 0, 102, 0, 645, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, - 18, 0, 0, 0, 0, 0, 20, 0, 765, 0, - 0, 0, 0, 0, 0, 726, 0, 0, 168, 0, - 0, 0, 1434, 1435, 26, 0, 130, 131, 645, 645, - 645, 1082, 0, 0, 0, 0, 0, 0, 981, 0, - 203, 203, 1082, 203, 0, 0, 0, 0, 0, 0, - 765, 0, 0, 599, 600, 601, 602, 603, 604, 102, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 0, - 102, 102, 0, 102, 102, 0, 0, 0, 0, 473, - 0, 7, 8, 9, 10, 215, 216, 217, 0, 0, - 0, 0, 14, 0, 0, 0, 0, 0, 0, 1490, - 1082, 1082, 1082, 0, 0, 0, 203, 0, 0, 18, - 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, - 21, 0, 0, 0, 23, 203, 640, 0, 0, 0, - 0, 0, 0, 26, 0, 27, 28, 0, 765, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, - 102, 0, 1536, 0, 0, 0, 0, 102, 121, 195, - 0, 0, 0, 0, 0, 0, 236, 32, 0, 0, - 0, 1514, 0, 0, 0, 765, 8, 9, 0, 167, - 12, 13, 0, 0, 470, 0, 14, 0, 0, 830, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 0, 17, 18, 0, 0, 0, 0, 0, 20, - 0, 0, 645, 645, 0, 0, 645, 0, 23, 645, - 640, 0, 0, 0, 0, 0, 473, 26, 645, 130, - 131, 0, 981, 981, 981, 0, 0, 0, 645, 0, - 0, 0, 0, 1523, 0, 0, 1592, 1593, 18, 0, - 0, 0, 0, 1524, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1525, 644, 0, 0, 830, - 0, 0, 102, 0, 0, 0, 0, 0, 0, 1618, - 0, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 0, 102, 102, 102, 102, 0, 0, - 1632, 0, 0, 0, 0, 0, 102, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 645, 645, 645, 645, 645, 645, 645, 0, 0, 0, - 645, 0, 981, 981, 981, 0, 8, 9, 0, 167, - 12, 13, 0, 0, 470, 0, 14, 0, 0, 8, - 9, 0, 167, 12, 13, 0, 0, 1634, 0, 14, - 16, 0, 17, 18, 0, 0, 0, 0, 0, 20, - 0, 0, 0, 16, 0, 17, 18, 0, 23, 102, - 102, 0, 20, 102, 0, 0, 102, 26, 0, 130, - 131, 23, 0, 0, 0, 102, 0, 0, 0, 0, - 26, 0, 130, 131, 0, 102, 0, 0, 0, 8, - 9, 765, 206, 12, 207, 0, 0, 0, 0, 14, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, - 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, - 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, - 26, 0, 130, 131, 0, 0, 0, 645, 0, 0, - 645, 645, 645, 0, 684, 685, 686, 687, 688, 689, - 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, - 700, 701, 702, 703, 704, 705, 0, 0, 0, 0, - 1597, 0, -502, -502, -502, -502, -502, -502, -502, 0, - 0, -502, 0, -502, 0, 645, 645, 645, 645, 645, - 645, 1338, 0, 645, -502, 0, -502, 0, 0, 0, - -502, 0, 0, 0, 830, 0, -502, 0, 0, 0, - 0, -502, 0, 0, 0, -502, 0, -502, 0, 0, - 0, 0, 0, 0, -502, 0, -502, -502, -502, -502, - -502, 102, -502, -502, -502, -502, -502, -502, -502, -502, - -502, -502, -502, -502, -502, -502, -502, -502, -502, -502, - -502, -502, -502, -502, -502, 0, -502, -502, -502, 0, - -502, -502, -502, -502, -502, 0, 0, 0, 0, 0, - 1598, -502, 0, 0, 0, 0, -502, -502, -502, 0, - -502, 0, 0, 0, 0, 0, 0, 0, 102, 102, - 0, 102, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, - 702, 703, 704, 705, 102, 0, 0, 102, 102, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 645, 645, 1655, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 830, 688, 689, 690, - 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 575, 0, 7, 8, 9, - 10, 167, 12, 305, 306, 307, 470, 308, 14, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 830, 16, 309, 17, 18, 19, 0, 310, 311, - 312, 20, 0, 313, 314, 315, 21, 316, 317, 102, - 23, 102, 640, 0, 318, 319, 320, 321, 322, 26, - 0, 27, 28, -336, 0, 0, 369, 0, 0, 0, - 0, 0, 325, 0, 0, 1087, 0, 0, 645, 645, - 645, 645, 0, 327, 328, 1088, 0, 0, 0, 0, - 0, 330, 331, 332, 0, 0, 0, 1089, 644, 0, - 907, 0, 261, 8, 9, 10, 167, 12, 305, 306, - 307, 0, 308, 14, 334, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 309, 17, - 18, 19, 0, 310, 311, 312, 20, 0, 313, 314, - 315, 21, 316, 317, 645, 23, 0, 0, 0, 318, - 319, 320, 321, 322, 26, 0, 27, 262, 1613, 0, - -815, 369, 0, 0, 0, 0, 0, 325, 0, 0, - 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, - 329, 0, 0, 0, 0, 0, 330, 331, 332, 0, - 0, 575, 333, 261, 8, 9, 10, 0, 12, 305, - 306, 307, 0, 308, 14, 0, 0, 0, 0, 334, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 309, - 17, 18, 19, 0, 310, 311, 312, 20, 0, 313, - 314, 315, 21, 316, 317, 0, 23, 0, 0, 0, - 318, 319, 320, 321, 322, 26, 0, 27, 262, -336, - 0, 0, 369, 0, 0, 0, 0, 0, 325, 0, - 0, 576, 0, 0, 0, 0, 0, 0, 0, 327, - 328, 577, 0, 0, 0, 0, 0, 330, 331, 332, - 0, 0, 763, 578, 895, 896, 897, 10, 0, 12, - 486, 306, 307, 0, 308, 14, 0, 0, 0, 0, - 334, 0, 0, 0, 0, 0, 0, 0, 0, 16, - 309, 17, 0, 19, 0, 310, 311, 312, 20, 0, - 313, 314, 315, 21, 316, 317, 0, 23, 0, 0, - 0, 318, 319, 320, 321, 322, 26, 0, 898, 899, - 764, 0, 0, 369, 0, 0, 0, 0, 0, 325, - 0, 0, 326, 0, 0, 0, 0, 0, 0, 0, - 327, 328, 329, 0, 0, 0, 0, 0, 330, 331, - 332, 0, 0, 0, 333, 900, 763, 0, 261, 8, - 9, 10, 0, 12, 486, 306, 307, 0, 308, 14, - 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 309, 17, 0, 19, 0, 310, - 311, 312, 20, 0, 313, 314, 315, 21, 316, 317, - 0, 23, 0, 0, 0, 318, 319, 320, 321, 322, - 26, 0, 27, 262, 764, 0, 0, 369, 0, 0, - 0, 0, 0, 325, 0, 0, 326, 0, 0, 0, - 0, 0, 0, 0, 327, 328, 329, 0, 0, 0, - 0, 0, 330, 331, 332, 0, 0, 0, 333, 763, - 0, 895, 896, 897, 10, 1286, 12, 486, 306, 307, - 0, 308, 14, 0, 0, 334, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 309, 17, 0, - 19, 0, 310, 311, 312, 20, 0, 313, 314, 315, - 21, 316, 317, 0, 23, 0, 0, 0, 318, 319, - 320, 321, 322, 26, 0, 898, 899, 764, 0, 0, - 369, 0, 0, 0, 0, 0, 325, 0, 0, 326, - 0, 0, 0, 0, 0, 0, 0, 327, 328, 329, - 0, 0, 0, 0, 0, 330, 331, 332, 0, 0, - 763, 333, 895, 896, 897, 10, 0, 12, 486, 306, - 307, 0, 308, 14, 0, 0, 0, -506, 334, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 309, 17, - 0, 19, 0, 310, 311, 312, 20, 0, 313, 314, - 315, 21, 316, 317, 0, 23, 0, 0, 0, 318, - 319, 320, 321, 322, 26, 0, 898, 899, 764, 0, - 0, 369, 0, 0, 0, 0, 0, 325, 0, 0, - 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, - 329, 0, 0, 0, 0, 0, 330, 331, 332, 0, - 0, 575, 333, 7, 8, 9, 10, 0, 12, 305, - 306, 307, 0, 308, 14, 0, 0, 0, 1417, 334, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 309, - 17, 18, 19, 0, 310, 311, 312, 20, 0, 313, - 314, 315, 21, 316, 317, 0, 23, 0, 0, 0, - 318, 319, 320, 321, 322, 26, 0, 27, 28, -336, - 0, 0, 369, 0, 0, 0, 0, 0, 325, 0, - 0, 1583, 0, 0, 0, 0, 0, 0, 0, 327, - 328, 1584, 0, 0, 0, 0, 0, 330, 331, 332, - 0, 0, 763, 1585, 261, 8, 9, 10, 0, 12, - 486, 306, 307, 0, 308, 14, 0, 0, 0, 0, - 334, 0, 0, 0, 0, 0, 0, 0, 0, 16, - 309, 17, 0, 19, 0, 310, 311, 312, 20, 0, - 313, 314, 315, 21, 316, 317, 0, 23, 0, 0, - 0, 318, 319, 320, 321, 322, 26, 0, 27, 262, - 764, 0, 0, 369, 0, 0, 0, 0, 0, 325, - 0, 0, 326, 0, 0, 0, 0, 0, 0, 0, - 327, 328, 329, 0, 0, 0, 0, 0, 330, 331, - 332, 0, 0, 907, 333, 261, 8, 9, 10, 0, - 12, 486, 306, 307, 0, 308, 14, 0, 0, 0, - 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 309, 17, 0, 19, 0, 310, 311, 312, 20, - 0, 313, 314, 315, 21, 316, 317, 0, 23, 0, - 0, 0, 318, 319, 320, 321, 322, 26, 0, 27, - 262, 0, 0, 0, 369, -815, 0, 0, 0, 0, - 325, 0, 0, 326, 0, 0, 0, 0, 0, 0, - 0, 327, 328, 329, 0, 0, 0, 0, 0, 330, - 331, 332, 0, 0, 1667, 333, 261, 8, 9, 10, - 0, 12, 305, 306, 307, 0, 308, 14, 0, 0, - 0, 0, 334, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 309, 17, 0, 19, 0, 310, 311, 312, - 20, 0, 313, 314, 315, 21, 316, 317, 0, 23, - 0, 0, 0, 318, 319, 320, 321, 322, 26, 0, - 27, 262, 0, 0, -197, 369, 0, 0, 0, 0, - 0, 325, 0, 0, 326, 0, 0, 0, 0, 0, - 0, 0, 327, 328, 329, 0, 0, 0, 0, 0, - 330, 331, 332, 0, 0, 907, 333, 261, 8, 9, - 10, 0, 12, 486, 306, 307, 0, 308, 14, 0, - 0, 0, 0, 334, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 309, 17, 0, 19, 0, 310, 311, - 312, 20, 0, 313, 314, 315, 21, 316, 317, 0, - 23, 0, 0, 0, 318, 319, 320, 321, 322, 26, - 0, 27, 262, 0, 0, 0, 369, 0, 0, 0, - 0, 0, 325, 0, 0, 326, 0, 0, 0, 0, - 0, 0, 0, 327, 328, 329, 0, 0, 0, 0, - 0, 330, 331, 332, 0, 0, 1000, 333, 261, 8, - 9, 10, 0, 12, 486, 306, 307, 0, 308, 14, - 0, 0, -815, 0, 334, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 309, 17, 0, 19, 0, 310, - 311, 312, 20, 0, 313, 314, 315, 21, 316, 317, - 0, 23, 0, 0, 0, 318, 319, 320, 321, 322, - 26, 0, 27, 262, 0, 0, 0, 369, 0, 0, - 0, 0, 0, 325, 0, 0, 326, 0, 0, 0, - 0, 0, 0, 0, 327, 328, 329, 0, 0, 0, - 0, 0, 330, 331, 332, 0, 0, 1002, 333, 261, - 8, 9, 10, 0, 12, 486, 306, 307, 0, 308, - 14, 0, 0, 0, 0, 334, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 309, 17, 0, 19, 0, - 310, 311, 312, 20, 0, 313, 314, 315, 21, 316, - 317, 0, 23, 0, 0, 0, 318, 319, 320, 321, - 322, 26, 0, 27, 262, 0, 0, 0, 369, 0, - 0, 0, 0, 0, 325, 0, 0, 326, 0, 0, - 0, 0, 0, 0, 0, 327, 328, 329, 0, 0, - 0, 0, 0, 330, 331, 332, 0, 0, 1631, 333, - 261, 8, 9, 10, 0, 12, 486, 306, 307, 0, - 308, 14, 0, 0, 0, 0, 334, 0, 0, 0, - 0, 0, 0, 0, 0, 16, 309, 17, 0, 19, - 0, 310, 311, 312, 20, 0, 313, 314, 315, 21, - 316, 317, 0, 23, 0, 0, 0, 318, 319, 320, - 321, 322, 26, 0, 27, 262, 0, 0, 0, 369, - 0, 0, 0, 0, 0, 325, 0, 0, 326, 0, - 0, 0, 0, 0, 0, 0, 327, 328, 329, 0, - 0, 0, 0, 0, 330, 331, 332, 0, 0, 0, - 333, 261, 8, 9, 10, 0, 12, 486, 306, 307, - 0, 308, 14, 0, 0, 0, 0, 334, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 309, 17, 0, - 19, 0, 310, 311, 312, 20, 0, 313, 314, 315, - 21, 316, 317, 0, 23, 0, 0, 0, 318, 319, - 320, 321, 322, 26, 0, 27, 262, 0, 0, 0, - 369, 0, 0, 0, 0, 0, 325, 0, 0, 326, - 0, 0, 0, 0, 0, 0, 0, 327, 328, 329, - 0, 0, 0, 0, 0, 330, 331, 332, 0, 0, - 0, 333, 261, 8, 9, 10, 0, 12, 486, 306, - 307, 0, 308, 14, 0, 0, 0, 0, 334, 487, - 0, 0, 0, 0, 0, 0, 0, 16, 309, 17, - 0, 19, 0, 310, 311, 312, 20, 0, 313, 314, - 315, 21, 316, 317, 0, 23, 0, 0, 0, 318, - 319, 320, 321, 322, 26, 0, 27, 262, 0, 0, - 0, 369, 0, 0, 0, 0, 0, 325, 0, 0, - 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, - 329, 0, 0, 0, 0, 0, 330, 331, 332, 0, - 0, 0, 333, 261, 8, 9, 10, 0, 12, 486, - 306, 307, 0, 308, 14, 0, 0, 0, 0, 334, - 816, 0, 0, 0, 0, 0, 0, 0, 16, 309, - 17, 0, 19, 0, 310, 311, 312, 20, 0, 313, - 314, 315, 21, 316, 317, 0, 23, 0, 0, 0, - 318, 319, 320, 321, 322, 26, 0, 27, 262, 0, - 0, 0, 369, 0, 0, 0, 0, 0, 325, 0, - 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, - 328, 329, 0, 0, 0, 0, 0, 330, 331, 332, - 0, 0, 0, 333, 261, 8, 9, 10, 0, 12, - 486, 306, 307, 0, 308, 14, 0, 0, 0, 0, - 334, 946, 0, 0, 0, 0, 0, 0, 0, 16, - 309, 17, 0, 19, 0, 310, 311, 312, 20, 0, - 313, 314, 315, 21, 316, 317, 0, 23, 0, 0, - 0, 318, 319, 320, 321, 322, 26, 0, 27, 262, - 0, 0, 0, 369, 0, 0, 0, 0, 0, 325, - 0, 0, 326, 0, 0, 0, 0, 0, 0, 0, - 327, 328, 329, 0, 0, 0, 0, 0, 330, 331, - 332, 0, 0, 0, 333, 261, 8, 9, 10, 0, - 12, 486, 306, 307, 0, 308, 14, 0, 0, 0, - 0, 334, 967, 0, 0, 0, 0, 0, 0, 0, - 16, 309, 17, 0, 19, 0, 310, 311, 312, 20, - 0, 313, 314, 315, 21, 316, 317, 0, 23, 0, - 0, 0, 318, 319, 320, 321, 322, 26, 0, 27, - 262, 0, 0, 0, 369, 0, 0, 0, 0, 0, - 325, 0, 0, 326, 0, 0, 0, 0, 0, 0, - 0, 327, 328, 329, 0, 0, 0, 0, 0, 330, - 331, 332, 0, 0, 0, 333, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 334, 1220, 1379, 1380, 1381, 10, 167, 12, - 305, 306, 307, 0, 308, 14, 1382, 0, 1383, 1384, - 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 15, 16, - 309, 17, 18, 19, 0, 310, 311, 312, 20, 0, - 313, 314, 315, 21, 316, 317, 1393, 23, 1394, 0, - 0, 318, 319, 320, 321, 322, 26, 0, 1395, 262, - 760, 0, 1396, 369, 0, 0, 0, 0, 0, 325, - 0, 0, 326, 0, 0, 0, 0, 0, 0, 0, - 327, 328, 329, 0, 0, 0, 0, 0, 330, 331, - 332, 0, 0, 0, 333, 0, 1397, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1521, 334, 1379, 1380, 1381, 10, 167, 12, 305, 306, - 307, 0, 308, 14, 1382, 0, 1383, 1384, 1385, 1386, - 1387, 1388, 1389, 1390, 1391, 1392, 15, 16, 309, 17, - 18, 19, 0, 310, 311, 312, 20, 0, 313, 314, - 315, 21, 316, 317, 1393, 23, 1394, 0, 0, 318, - 319, 320, 321, 322, 26, 0, 1395, 262, 760, 0, - 1396, 369, 0, 0, 0, 0, 0, 325, 0, 0, - 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, - 329, 0, 0, 0, 0, 0, 330, 331, 332, 0, - 0, 0, 333, 0, 1397, 0, 1379, 1380, 1381, 10, - 167, 12, 305, 306, 307, 0, 308, 14, 1382, 334, - 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, - 15, 16, 309, 17, 18, 19, 0, 310, 311, 312, - 20, 0, 313, 314, 315, 21, 316, 317, 1393, 23, - 1394, 0, 0, 318, 319, 320, 321, 322, 26, 0, - 1395, 262, 1640, 0, 1396, 369, 0, 0, 0, 0, - 0, 325, 0, 0, 326, 0, 0, 0, 0, 0, - 0, 0, 327, 328, 329, 0, 0, 0, 0, 0, - 330, 331, 332, 0, 0, 0, 333, 0, 1397, 0, - 1379, 1380, 1381, 10, 167, 12, 305, 306, 307, 0, - 308, 14, 1382, 334, 1383, 1384, 1385, 1386, 1387, 1388, - 1389, 1390, 1391, 1392, 15, 16, 309, 17, 18, 19, - 0, 310, 311, 312, 20, 0, 313, 314, 315, 21, - 316, 317, 1393, 23, 1394, 0, 0, 318, 319, 320, - 321, 322, 26, 0, 1395, 262, 0, 0, 1396, 369, - 0, 0, 0, 0, 0, 325, 0, 0, 326, 0, - 0, 0, 0, 0, 0, 0, 327, 328, 329, 0, - 0, 0, 0, 0, 330, 331, 332, 0, 0, 0, - 333, 0, 1397, 261, 8, 9, 10, 167, 12, 305, - 306, 307, 470, 308, 14, 0, 0, 334, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 309, - 17, 18, 19, 0, 310, 311, 312, 20, 0, 313, - 314, 315, 21, 316, 317, 0, 23, 0, 640, 0, - 318, 319, 320, 321, 322, 26, 0, 27, 262, 0, - 0, 0, 369, 0, 0, 0, 0, 0, 325, 0, - 0, 977, 0, 0, 0, 0, 0, 0, 0, 327, - 328, 978, 0, 0, 0, 0, 0, 330, 331, 332, - 0, 0, 0, 979, 644, 7, 8, 9, 10, 167, - 12, 305, 306, 307, 470, 308, 14, 0, 0, 0, - 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 309, 17, 18, 19, 0, 310, 311, 312, 20, - 0, 313, 314, 315, 21, 316, 317, 0, 23, 0, - 640, 0, 318, 319, 320, 321, 322, 26, 0, 27, - 28, 0, 0, 0, 369, 0, 0, 0, 0, 0, - 325, 0, 0, 1087, 0, 0, 0, 0, 0, 0, - 0, 327, 328, 1088, 0, 0, 0, 0, 0, 330, - 331, 332, 0, 0, 0, 1089, 644, 261, 8, 9, - 10, 0, 12, 305, 306, 307, 0, 308, 14, 0, - 0, 0, 334, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 309, 17, 18, 19, 0, 310, 311, - 312, 20, 0, 313, 314, 315, 21, 316, 317, 0, - 23, 0, 640, 0, 318, 319, 320, 321, 322, 26, - 0, 27, 262, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 325, 0, 0, 977, 0, 0, 0, 0, - 0, 0, 0, 327, 328, 978, 0, 0, 0, 0, - 0, 330, 331, 332, 0, 0, 0, 979, 644, 7, - 8, 9, 10, 0, 12, 305, 306, 307, 0, 308, - 14, 0, 0, 0, 334, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 309, 17, 18, 19, 0, - 310, 311, 312, 20, 0, 313, 314, 315, 21, 316, - 317, 0, 23, 0, 640, 0, 318, 319, 320, 321, - 322, 26, 0, 27, 28, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 325, 0, 0, 1087, 0, 0, - 0, 0, 0, 0, 0, 327, 328, 1088, 0, 0, - 0, 0, 0, 330, 331, 332, 0, 0, 0, 1089, - 644, 261, 8, 9, 10, 0, 12, 486, 306, 307, - 0, 308, 14, 0, 0, 0, 334, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 309, 17, 18, - 19, 0, 310, 311, 312, 20, 0, 313, 314, 315, - 21, 316, 317, 0, 23, 0, 0, 0, 318, 319, - 320, 321, 322, 26, 0, 27, 262, 0, 0, 0, - 369, 0, 0, 0, 0, 0, 325, 0, 0, 576, - 0, 0, 0, 0, 0, 0, 0, 327, 328, 577, - 0, 0, 0, 0, 0, 330, 331, 332, 0, 0, - 0, 578, 261, 8, 9, 10, 0, 12, 486, 306, - 307, 0, 308, 14, 0, 0, 0, 0, 334, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 309, 17, - 0, 19, 0, 310, 311, 312, 20, 0, 313, 314, - 315, 21, 316, 317, 0, 23, 0, 0, 0, 318, - 319, 320, 321, 322, 26, 0, 27, 262, 0, 0, - 1494, 369, 0, 0, 0, 0, 0, 325, 0, 0, - 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, - 329, 0, 0, 0, 0, 0, 330, 331, 332, 0, - 0, 0, 333, 261, 8, 9, 10, 167, 12, 305, - 306, 307, 0, 308, 14, 0, 0, 0, 0, 334, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 309, - 17, 18, 19, 0, 310, 311, 312, 20, 0, 313, - 314, 315, 21, 316, 317, 0, 23, 0, 0, 0, - 318, 319, 320, 321, 322, 26, 0, 27, 262, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 325, 0, - 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, - 328, 329, 0, 0, 0, 0, 0, 330, 331, 332, - 0, 0, 0, 333, 7, 8, 9, 10, 0, 12, - 486, 306, 307, 0, 308, 14, 0, 0, 0, 0, - 334, 0, 0, 0, 0, 0, 0, 0, 0, 16, - 309, 17, 18, 19, 0, 310, 311, 312, 20, 0, - 313, 314, 315, 21, 316, 317, 0, 23, 0, 0, - 0, 318, 319, 320, 321, 322, 26, 0, 27, 28, - 0, 0, 0, 369, 0, 0, 0, 0, 0, 325, - 0, 0, 1583, 0, 0, 0, 0, 0, 0, 0, - 327, 328, 1584, 0, 0, 0, 0, 0, 330, 331, - 332, 0, 0, 0, 1585, 261, 8, 9, 10, 0, - 12, 305, 306, 307, 0, 308, 14, 0, 0, 0, - 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 309, 17, 0, 19, 0, 310, 311, 312, 20, - 0, 313, 314, 315, 21, 316, 317, 0, 23, 0, - 0, 0, 318, 319, 320, 321, 322, 26, 0, 323, - 262, 0, 0, 0, 324, 0, 0, 0, 0, 0, - 325, 0, 0, 326, 0, 0, 0, 0, 0, 0, - 0, 327, 328, 329, 0, 0, 0, 0, 0, 330, - 331, 332, 0, 0, 0, 333, 261, 8, 9, 10, - 0, 12, 305, 306, 307, 0, 308, 14, 0, 0, - 0, 0, 334, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 309, 17, 0, 19, 0, 310, 311, 312, - 20, 0, 313, 314, 315, 21, 316, 317, 0, 23, - 0, 0, 0, 318, 319, 320, 321, 322, 26, 0, - 27, 262, 0, 0, 0, 369, 0, 0, 0, 0, - 0, 325, 0, 0, 326, 0, 0, 0, 0, 0, - 0, 0, 327, 328, 329, 0, 0, 0, 0, 0, - 330, 331, 332, 0, 0, 0, 333, 261, 8, 9, - 10, 0, 12, 486, 306, 307, 0, 308, 14, 0, - 0, 0, 0, 334, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 309, 17, 0, 19, 0, 310, 311, - 312, 20, 0, 313, 314, 315, 21, 316, 317, 0, - 23, 0, 0, 0, 318, 319, 320, 321, 322, 26, - 0, 27, 262, 0, 0, 0, 324, 0, 0, 0, - 0, 0, 325, 0, 0, 326, 0, 0, 0, 0, - 0, 0, 0, 327, 328, 329, 0, 0, 0, 0, - 0, 330, 331, 332, 0, 0, 0, 333, 261, 8, - 9, 10, 0, 12, 486, 306, 307, 0, 308, 14, - 0, 0, 0, 0, 334, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 309, 17, 0, 19, 0, 310, - 311, 312, 20, 0, 313, 314, 315, 21, 316, 317, - 0, 23, 0, 0, 0, 318, 319, 320, 321, 322, - 26, 0, 27, 262, 590, 0, 0, 0, 0, 0, - 0, 0, 0, 325, 0, 0, 326, 0, 0, 0, - 0, 0, 0, 0, 327, 328, 329, 0, 0, 0, - 0, 0, 330, 331, 332, 0, 0, 0, 591, 261, - 8, 9, 10, 0, 12, 486, 306, 307, 0, 308, - 14, 0, 0, 0, 0, 334, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 309, 17, 0, 19, 0, - 310, 311, 312, 20, 0, 313, 314, 315, 21, 316, - 317, 0, 23, 0, 0, 0, 318, 319, 320, 321, - 322, 26, 0, 27, 262, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 325, 0, 0, 326, 0, 0, - 0, 0, 0, 0, 0, 327, 328, 329, 0, 0, - 0, 0, 0, 330, 331, 332, 0, 0, 0, 333, - 628, 261, 8, 9, 10, 0, 12, 486, 306, 307, - 0, 308, 14, 0, 0, 0, 334, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 309, 17, 0, - 19, 0, 310, 311, 312, 20, 0, 313, 314, 315, - 21, 316, 317, 0, 23, 0, 0, 0, 318, 319, - 320, 321, 322, 26, 0, 27, 262, 0, 0, 0, - 369, 0, 0, 0, 0, 0, 325, 0, 0, 326, - 0, 0, 0, 0, 0, 0, 0, 327, 328, 329, - 0, 0, 0, 0, 0, 330, 331, 332, 0, 0, - 0, 333, 261, 8, 9, 10, 0, 12, 486, 306, - 307, 0, 308, 14, 0, 0, 0, 0, 334, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 309, 17, - 18, 19, 0, 310, 311, 312, 20, 0, 313, 314, - 315, 21, 316, 317, 0, 23, 0, 0, 0, 318, - 319, 320, 321, 322, 26, 0, 27, 262, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 325, 0, 0, - 576, 0, 0, 0, 0, 0, 0, 0, 327, 328, - 577, 0, 0, 0, 0, 0, 330, 331, 332, 0, - 0, 0, 578, 1239, 8, 9, 10, 0, 12, 486, - 306, 307, 0, 308, 14, 0, 0, 0, 0, 334, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 309, - 17, 0, 19, 0, 310, 311, 312, 20, 0, 313, - 314, 315, 21, 316, 317, 0, 23, 0, 0, 0, - 318, 319, 320, 321, 322, 26, 0, 27, 262, 0, - 0, 0, 369, 0, 0, 0, 0, 0, 325, 0, - 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, - 328, 329, 0, 0, 0, 0, 0, 330, 331, 332, - 0, 0, 0, 333, 7, 8, 9, 10, 0, 12, - 305, 306, 307, 0, 308, 14, 0, 0, 0, 0, - 334, 0, 0, 0, 0, 0, 0, 0, 0, 16, - 309, 17, 18, 19, 0, 310, 311, 312, 20, 0, - 313, 314, 315, 21, 316, 317, 0, 23, 0, 0, - 0, 318, 319, 320, 321, 322, 26, 0, 27, 28, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, - 0, 0, 1583, 0, 0, 0, 0, 0, 0, 0, - 327, 328, 1584, 0, 0, 0, 0, 0, 330, 331, - 332, 0, 0, 0, 1585, 261, 8, 9, 10, 0, - 12, 486, 306, 307, 0, 308, 14, 0, 0, 0, - 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 309, 17, 0, 19, 0, 310, 311, 312, 20, - 0, 313, 314, 315, 21, 316, 317, 0, 23, 0, - 0, 0, 318, 319, 320, 321, 322, 26, 0, 27, - 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 325, 0, 0, 326, 0, 0, 0, 0, 0, 0, - 0, 327, 328, 329, 0, 0, 0, 0, 0, 330, - 331, 332, 0, 0, 0, 558, 261, 8, 9, 10, - 0, 12, 486, 306, 307, 0, 308, 14, 0, 0, - 0, 0, 334, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 309, 17, 0, 19, 0, 310, 311, 312, - 20, 0, 313, 314, 315, 21, 316, 317, 0, 23, - 0, 0, 0, 318, 319, 320, 321, 322, 26, 0, - 27, 262, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 325, 0, 0, 326, 0, 0, 0, 0, 0, - 0, 0, 327, 328, 329, 0, 0, 0, 0, 0, - 330, 331, 332, 0, 0, 0, 560, 261, 8, 9, - 10, 0, 12, 486, 306, 307, 0, 308, 14, 0, - 0, 0, 0, 334, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 309, 17, 0, 19, 0, 310, 311, - 312, 20, 0, 313, 314, 315, 21, 316, 317, 0, - 23, 0, 0, 0, 318, 319, 320, 321, 322, 26, - 0, 27, 262, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 325, 0, 0, 326, 0, 0, 0, 0, - 0, 0, 0, 327, 328, 329, 0, 0, 0, 0, - 0, 330, 331, 332, 0, 0, 0, 333, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 683, 0, 0, 334, 684, 685, 686, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 1170, 0, 0, - 0, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 1648, 684, 685, 686, 687, 688, 689, - 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, - 700, 701, 702, 703, 704, 705, 684, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705 -}; - -static const short yycheck[] = { 4, - 55, 46, 4, 175, 174, 23, 758, 210, 176, 80, - 407, 14, 4, 359, 161, 353, 528, 149, 150, 22, - 407, 42, 407, 126, 359, 4, 84, 4, 465, 686, - 35, 76, 134, 35, 156, 740, 14, 42, 59, 588, - 42, 308, 309, 35, 4, 248, 378, 90, 666, 92, - 4, 42, 57, 30, 31, 252, 35, 244, 35, 133, - 134, 935, 65, 42, 445, 42, 843, 72, 845, 210, - 734, 124, 42, 144, 341, 35, 853, 133, 219, 84, - 190, 35, 42, 88, 1476, 90, 483, 92, 42, 1398, - 460, 12, 1564, 42, 137, 42, 483, 11, 301, 4, - 39, 1408, 107, 108, 57, 83, 38, 84, 1415, 11, - 11, 75, 1, 9, 1588, 1613, 55, 33, 8, 9, - 175, 124, 1, 741, 14, 1566, 514, 60, 106, 0, - 35, 136, 137, 204, 139, 1609, 48, 42, 1610, 60, - 478, 55, 63, 531, 1691, 148, 80, 37, 169, 63, - 353, 489, 218, 219, 61, 0, 46, 27, 48, 136, - 165, 31, 359, 1, 169, 1663, 62, 169, 1715, 214, - 59, 176, 149, 150, 165, 108, 136, 109, 169, 84, - 59, 93, 136, 136, 63, 190, 1652, 108, 165, 210, - 169, 61, 169, 109, 108, 65, 1670, 218, 219, 169, - 360, 361, 109, 93, 1645, 165, 108, 108, 25, 169, - 27, 165, 582, 190, 48, 169, 95, 194, 195, 12, - 169, 59, 169, 176, 48, 63, 1692, 248, 60, 33, - 49, 136, 62, 75, 27, 33, 239, 240, 31, 109, - 55, 25, 59, 27, 93, 757, 63, 60, 63, 252, - 4, 5, 1724, 413, 414, 48, 1565, 95, 1650, 93, - 165, 61, 1569, 76, 169, 60, 60, 60, 61, 93, - 63, 249, 65, 61, 108, 59, 350, 109, 95, 63, - 301, 859, 4, 5, 108, 190, 991, 865, 346, 994, - 352, 353, 354, 108, 350, 49, 398, 302, 55, 7, - 93, 94, 61, 57, 58, 55, 453, 1306, 1307, 109, - 140, 95, 1619, 108, 108, 108, 1190, 663, 75, 362, - 60, 109, 325, 55, 1323, 75, 156, 81, 333, 60, - 38, 63, 353, 267, 48, 57, 58, 390, 93, 48, - 60, 346, 727, 1048, 1049, 149, 150, 151, 48, 354, - 109, 48, 150, 151, 409, 48, 65, 362, 363, 48, - 93, 75, 55, 366, 1671, 497, 498, 48, 108, 346, - 511, 752, 753, 25, 377, 1039, 12, 108, 500, 93, - 94, 359, 75, 213, 93, 717, 363, 390, 108, 759, - 411, 221, 196, 93, 108, 75, 93, 975, 196, 25, - 93, 27, 407, 363, 93, 410, 75, 59, 238, 363, - 363, 63, 93, 475, 55, 477, 478, 479, 4, 93, - 475, 48, 477, 478, 60, 12, 447, 63, 407, 65, - 407, 4, 5, 59, 75, 48, 633, 63, 1437, 61, - 33, 346, 447, 95, 510, 511, 48, 1446, 1447, 35, - 1449, 48, 518, 872, 873, 874, 447, 478, 363, 48, - 3, 4, 5, 6, 530, 48, 93, 94, 65, 95, - 447, 476, 1346, 60, 479, 520, 63, 447, 483, 522, - 93, 108, 55, 549, 57, 58, 48, 447, 1106, 510, - 511, 93, 94, 447, 1043, 59, 93, 518, 71, 42, - 937, 76, 407, 78, 93, 94, 483, 667, 81, 530, - 93, 94, 55, 556, 57, 58, 4, 522, 4, 108, - 497, 498, 107, 526, 529, 1230, 1231, 529, 549, 48, - 55, 93, 25, 97, 27, 333, 1114, 61, 4, 5, - 4, 5, 447, 9, 25, 1322, 89, 35, 1126, 35, - 75, 556, 529, 558, 48, 560, 149, 150, 151, 48, - 565, 566, 567, 568, 569, 63, 59, 625, 48, 529, - 63, 84, 85, 578, 93, 529, 529, 75, 483, 4, - 5, 751, 1160, 588, 1162, 49, 591, 590, 55, 55, - 48, 57, 58, 57, 58, 529, 1595, 1596, 55, 93, - 1112, 55, 95, 196, 93, 71, 63, 31, 3, 4, - 5, 48, 63, 93, 669, 81, 718, 81, 75, 624, - 625, 75, 48, 725, 529, 455, 59, 48, 94, 75, - 633, 59, 57, 58, 48, 93, 434, 435, 643, 985, - 48, 828, 829, 1040, 48, 650, 48, 834, 625, 670, - 985, 725, 48, 1040, 59, 1040, 93, 48, 1095, 1096, - 65, 491, 57, 58, 641, 642, 643, 93, 94, 65, - 500, 733, 93, 650, 4, 5, 654, 720, 733, 93, - 94, 884, 108, 55, 63, 93, 81, 517, 504, 93, - 94, 93, 94, 497, 498, 499, 512, 93, 94, 1069, - 498, 499, 93, 94, 108, 190, 108, 48, 726, 780, - 55, 48, 733, 93, 981, 720, 876, 108, 48, 55, - 625, 4, 5, 726, 63, 55, 55, 57, 58, 108, - 75, 734, 60, 182, 837, 60, 61, 3, 643, 757, - 6, 71, 1254, 1180, 1181, 650, 55, 1093, 76, 859, - 78, 81, 93, 94, 820, 865, 93, 94, 1093, 76, - 558, 764, 560, 93, 94, 31, 49, 108, 59, 108, - 775, 108, 63, 63, 57, 58, 42, 63, 783, 577, - 578, 108, 3, 4, 5, 75, 108, 1299, 985, 75, - 108, 57, 58, 591, 108, 850, 773, 774, 775, 820, - 45, 846, 847, 781, 55, 71, 783, 63, 55, 11, - 55, 856, 63, 58, 109, 81, 63, 860, 861, 75, - 863, 97, 884, 89, 75, 61, 48, 93, 75, 806, - 807, 1268, 93, 55, 3, 48, 57, 58, 843, 60, - 845, 843, 55, 845, 1196, 1197, 851, 1199, 853, 60, - 61, 853, 650, 75, 859, 860, 861, 1195, 863, 1296, - 865, 983, 75, 884, 55, 975, 843, 61, 845, 75, - 775, 93, 63, 1033, 4, 5, 853, 94, 783, 9, - 93, 63, 859, 843, 75, 845, 1056, 94, 865, 843, - 843, 845, 845, 853, 93, 957, 1093, 850, 851, 853, - 853, 1338, 964, 27, 497, 498, 499, 31, 1565, 843, - 55, 845, 55, 60, 61, 4, 5, 851, 63, 853, - 63, 983, 1109, 1110, 1111, 55, 1678, 57, 58, 934, - 75, 111, 75, 938, 60, 93, 60, 61, 843, 93, - 845, 71, 60, 61, 60, 61, 1078, 1079, 853, 75, - 76, 81, 78, 75, 859, 1087, 1088, 60, 75, 1081, - 865, 75, 65, 75, 969, 60, 55, 11, 57, 58, - 975, 775, 75, 76, 979, 60, 61, 775, 60, 783, - 108, 466, 71, 84, 85, 783, 3, 4, 5, 1426, - 60, 61, 81, 108, 1154, 1155, 1156, 108, 975, 797, - 977, 978, 979, 108, 1114, 94, 75, 985, 55, 807, - 808, 27, 1083, 1075, 75, 31, 1126, 60, 61, 1081, - 60, 61, 75, 1026, 108, 1, 1463, 3, 4, 5, - 6, 109, 8, 60, 61, 1040, 1039, 1042, 1043, 65, - 57, 58, 1699, 109, 60, 61, 108, 65, 108, 65, - 1160, 1, 1162, 3, 4, 5, 81, 82, 83, 84, - 85, 1040, 1117, 1040, 27, 111, 42, 1138, 75, 1407, - 975, 108, 557, 49, 979, 1080, 108, 75, 55, 55, - 75, 57, 58, 111, 1089, 1130, 3, 4, 5, 6, - 111, 1136, 1137, 1098, 108, 1140, 1141, 108, 48, 1144, - 1222, 1078, 1079, 1080, 108, 55, 59, 57, 58, 1114, - 1087, 1088, 1089, 89, 108, 1093, 55, 1487, 8, 9, - 8, 1126, 93, 48, 14, 42, 109, 957, 65, 60, - 615, 93, 55, 1503, 964, 1040, 621, 1114, 623, 624, - 57, 58, 1147, 93, 109, 1147, 61, 37, 1270, 1126, - 37, 65, 65, 983, 65, 1160, 46, 1162, 61, 108, - 1222, 1204, 108, 63, 1117, 1170, 4, 5, 108, 65, - 1147, 65, 657, 111, 76, 1080, 4, 76, 1181, 60, - 978, 979, 775, 1160, 1089, 1162, 108, 1147, 108, 108, - 783, 76, 108, 1147, 1147, 63, 1356, 818, 108, 1204, - 76, 76, 108, 108, 1138, 63, 1603, 35, 1270, 1114, - 60, 108, 63, 1147, 42, 108, 1603, 55, 1588, 57, - 58, 1126, 1227, 7, 8, 9, 108, 55, 94, 57, - 14, 111, 109, 1405, 108, 1407, 1254, 858, 1406, 1609, - 111, 108, 1147, 864, 89, 1075, 75, 31, 1225, 1226, - 1227, 1081, 48, 37, 108, 1160, 108, 1162, 111, 1262, - 1265, 108, 46, 1265, 108, 1268, 1636, 108, 63, 1607, - 1275, 108, 1709, 1265, 1078, 1079, 1080, 4, 5, 109, - 61, 1079, 1080, 1087, 1088, 1089, 109, 60, 1265, 108, - 1088, 1089, 60, 65, 60, 108, 1273, 1274, 1275, 63, - 1670, 108, 93, 93, 31, 4, 5, 190, 136, 109, - 9, 1265, 140, 93, 93, 1292, 1293, 1322, 111, 108, - 1322, 48, 1227, 108, 8, 1695, 30, 31, 55, 33, - 57, 58, 31, 108, 108, 111, 33, 165, 108, 108, - 65, 169, 55, 108, 71, 1322, 108, 175, 176, 970, - 1405, 972, 1407, 57, 81, 59, 55, 108, 57, 58, - 1265, 65, 1322, 108, 107, 108, 93, 94, 1322, 1322, - 1275, 108, 71, 108, 823, 81, 82, 83, 84, 85, - 108, 63, 81, 1317, 108, 111, 1407, 48, 1322, 1392, - 1393, 108, 1222, 1398, 93, 223, 1398, 108, 55, 1444, - 1445, 1406, 96, 1408, 1607, 108, 1408, 63, 63, 61, - 1415, 61, 9, 1415, 61, 16, 1408, 1322, 1423, 108, - 108, 1398, 108, 1415, 111, 3, 4, 5, 1226, 1227, - 108, 1408, 108, 1580, 93, 93, 61, 141, 1415, 61, - 1270, 65, 146, 55, 1398, 149, 150, 151, 191, 93, - 93, 1583, 1584, 938, 1408, 17, 61, 55, 61, 4, - 5, 1415, 108, 108, 1526, 1295, 107, 952, 1513, 954, - 102, 956, 176, 108, 108, 1478, 1274, 1275, 182, 57, - 58, 59, 11, 93, 61, 1078, 1079, 1080, 1658, 61, - 194, 195, 196, 1398, 1087, 1088, 1089, 1500, 1501, 65, - 61, 108, 60, 1408, 49, 61, 210, 61, 108, 108, - 1415, 61, 57, 58, 218, 219, 0, 61, 175, 61, - 1525, 61, 0, 0, 407, 35, 2, 1589, 170, 1501, - 3, 4, 5, 6, 718, 363, 81, 1040, 1159, 169, - 1161, 1688, 165, 1028, 1691, 1657, 1523, 1524, 1525, 3, - 4, 5, 447, 1608, 1559, 851, 260, 94, 1254, 1564, - 1565, 1566, 1564, 1565, 1569, 1712, 223, 1569, 1715, 42, - 239, 139, 1564, 1486, 1577, 1724, 49, 1569, 1063, 1026, - 1585, 409, 1559, 304, 57, 58, 1607, 1564, 1565, 1566, - 333, 764, 1569, 1638, 243, 676, 1299, 1218, 1603, 1147, - 483, 55, 1112, 57, 58, 1610, 1583, 1584, 1610, 851, - 1564, 1565, 1319, 678, 1619, 1569, 89, 1619, 1610, 447, - 1525, 997, 625, 3, 4, 5, 1603, 1619, 201, 333, - 350, 124, 1408, 1610, 1, 1266, 3, 4, 5, 1678, - 1645, 1695, 1619, 1624, 1690, 1423, 792, 475, 476, 477, - 478, -1, -1, -1, 1559, 483, 1610, -1, -1, 1564, - 1565, 1566, -1, 491, 1569, 1619, 1671, -1, 1645, 1671, - 1119, 1120, -1, -1, -1, 55, 504, 57, 58, 1671, - -1, 48, 1303, -1, 512, -1, -1, 1308, 55, -1, - 57, 58, 59, 60, 1671, -1, 1526, 1146, 1603, -1, - -1, 529, 1151, -1, -1, 1610, 410, 411, -1, -1, - 1514, -1, -1, -1, 1619, -1, 1514, 1671, -1, 1724, - 424, -1, 1724, 427, 4, 5, 93, 31, -1, 433, - 434, 435, 1724, -1, -1, 439, -1, -1, -1, 1360, - 1645, -1, -1, 3, 4, 5, 6, 1724, 3, 4, - 5, -1, 409, -1, 3, 4, 5, -1, -1, 1589, - 643, 82, -1, 506, -1, 324, 1671, 650, -1, 49, - 1724, 1256, 476, 1258, 478, 1260, -1, 57, 58, 1583, - 1584, 1585, 42, -1, -1, -1, 1584, 1585, 492, 49, - -1, 495, -1, 497, 498, 499, -1, 57, 58, 503, - 55, 81, 57, 58, 59, 509, 510, 511, 57, 58, - 514, -1, -1, -1, 518, 558, -1, 560, 475, 1724, - 477, 478, 565, -1, -1, -1, -1, 531, -1, 89, - -1, -1, 1453, 1454, 491, 578, -1, 141, 159, -1, - -1, 669, 146, 500, 3, 4, 5, 504, 591, 1470, - -1, -1, 595, -1, 558, 512, 560, -1, -1, -1, - -1, -1, -1, 1312, 1313, -1, 1315, 1316, -1, 1318, - -1, 192, 576, 577, 578, 9, -1, -1, 12, 622, - -1, -1, 1367, -1, 205, 628, -1, 591, -1, -1, - 49, 195, 775, 3, 4, 5, 6, -1, 57, 58, - 783, 644, -1, -1, -1, 733, -1, -1, 1529, 1530, - 3, 4, 5, 6, 48, 3, 4, 5, -1, 7, - 190, 1514, -1, -1, 1545, 1546, 60, -1, 62, 63, - -1, 65, 42, 7, 8, 9, -1, 641, 642, 643, - 14, -1, 76, 686, 78, 55, 650, 57, 58, 42, - 38, 61, -1, 63, -1, 48, 260, 31, -1, 93, - 94, 71, 55, 37, 57, 58, 670, 55, -1, 57, - 58, 81, 46, -1, 108, -1, 859, -1, 71, 89, - -1, -1, 865, 93, -1, 1434, 1435, 61, 81, -1, - 1583, 1584, 1585, -1, -1, -1, 89, -1, -1, -1, - 93, 94, 77, 78, 79, 80, 81, 82, 83, 84, - 85, -1, 669, -1, -1, 843, -1, 845, 3, 4, - 5, -1, 850, 851, -1, 853, 3, 4, 5, 733, - 734, 3, 4, 5, 593, 594, -1, 596, 597, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 3, 4, 5, 6, 3, - 4, 5, 6, -1, 49, -1, -1, -1, -1, 773, - 774, 775, 57, 58, -1, -1, 733, -1, 55, 783, - 57, 58, -1, -1, -1, 57, 58, 1536, 1537, 1538, - -1, -1, 975, 797, 42, -1, 979, -1, 42, -1, - 804, 805, 806, 807, 808, 3, 4, 5, 812, 57, - 58, 55, -1, 57, 58, -1, 820, 61, -1, 823, - 424, -1, -1, 427, 3, 4, 5, 71, 7, 8, - 9, -1, -1, 194, 195, 439, -1, 81, -1, -1, - -1, 89, -1, 1592, 1593, 89, -1, 851, -1, 93, - -1, -1, 31, 3, 4, 5, 6, 1040, 37, 57, - 58, 4, 5, -1, -1, 8, 9, -1, 3, 4, - 5, 14, 7, 8, 9, -1, 55, -1, 57, 58, - 59, 502, -1, -1, -1, 28, 507, 30, 492, -1, - -1, 495, 42, 850, 37, -1, 466, 1080, -1, 942, - -1, -1, -1, 46, -1, 509, 1089, 57, 58, -1, - -1, 532, 55, 1662, 57, 58, 59, 538, -1, -1, - -1, -1, 57, 58, 103, 104, 105, -1, -1, 550, - 551, 1114, 553, 976, -1, -1, 979, -1, -1, 89, - -1, -1, -1, 1126, -1, -1, -1, 1075, -1, -1, - 93, -1, -1, -1, 958, -1, -1, 961, -1, -1, - -1, -1, 3, 4, 5, 6, 3, 4, 5, 973, - 7, 8, 9, 977, 978, 979, -1, 1160, -1, 1162, - 4, 5, -1, 7, 8, 9, -1, 557, 12, 1117, - 14, -1, -1, -1, 31, 3, 4, 5, 39, 40, - 37, 42, -1, -1, 28, -1, 30, 31, 3, 4, - 5, -1, -1, 37, 55, -1, 57, 58, -1, 1147, - 57, 58, 46, -1, 48, 646, 647, -1, -1, -1, - 651, 55, -1, 57, 58, 1039, 3, 4, 5, -1, - -1, -1, -1, -1, 1227, 615, 1089, 71, 89, 57, - 58, 621, -1, 623, 624, -1, -1, 81, -1, -1, - -1, -1, 57, 58, -1, 3, 4, 5, 6, 93, - 94, 9, 1076, 1077, 1078, 1079, 1080, -1, -1, -1, - 650, 1085, -1, 1087, 1088, 1089, -1, 657, -1, -1, - 57, 58, 1275, 31, -1, 1099, 1100, 1101, -1, 7, - 8, 9, -1, -1, 42, -1, 14, 3, 4, 5, - 6, -1, -1, 9, -1, 1119, 1120, 55, 1075, 57, - 58, -1, -1, 31, 1081, 3, 4, 5, 6, 37, - -1, 492, -1, 71, 495, 31, 497, 498, 46, -1, - -1, -1, 1146, 81, -1, -1, 42, 1151, 509, -1, - -1, 89, 48, 61, -1, 93, 777, 1200, -1, 55, - 1117, 57, 58, -1, 42, 4, 5, -1, -1, -1, - 774, 49, -1, -1, -1, 71, -1, -1, -1, 57, - 58, -1, -1, -1, -1, 81, 1314, 1046, -1, 810, - -1, 1319, -1, 89, 1322, -1, -1, 93, 94, -1, - 804, 805, -1, 81, 4, -1, 45, -1, 812, 4, - 5, 89, -1, 783, 14, -1, 55, -1, 57, 58, - -1, 1225, 1226, 1227, 24, -1, -1, 797, -1, -1, - 30, 31, -1, 33, -1, 35, 31, -1, -1, -1, - -1, -1, 42, -1, -1, 866, -1, 868, -1, -1, - -1, -1, -1, 48, -1, 55, -1, 57, -1, -1, - 55, -1, 57, 58, -1, 65, -1, 1271, 1272, 1273, - 1274, 1275, 72, -1, 1278, -1, 71, 1405, 1406, 1407, - -1, -1, -1, 83, 84, -1, 81, 48, 1292, 1293, - 1294, 1334, 1335, 1336, 1337, -1, -1, -1, 93, 94, - -1, 1344, -1, -1, -1, -1, 106, -1, 1312, 1313, - -1, 1315, 1316, 1270, 1318, -1, -1, -1, -1, 940, - 941, -1, 943, -1, -1, 1184, 87, 88, -1, -1, - 91, 92, 93, 94, 134, -1, 136, -1, 1295, -1, - 140, 141, 1525, -1, -1, 145, 146, -1, 1391, 149, - 150, 151, -1, 974, -1, -1, -1, 1314, -1, 7, - 8, 9, -1, -1, -1, 165, 14, -1, 938, 169, - -1, -1, -1, -1, -1, 175, 176, -1, -1, -1, - -1, -1, 952, 31, 954, -1, 956, -1, -1, 37, - -1, -1, -1, -1, 194, 195, 196, -1, 46, -1, - -1, -1, 1406, 1407, 79, 80, 81, 82, 83, 84, - 85, -1, 773, 774, 1418, 1419, -1, 1421, -1, -1, - 1603, -1, -1, 223, 4, 5, -1, -1, 8, 9, - 1434, 1435, -1, -1, 14, -1, -1, -1, -1, -1, - 240, -1, -1, 804, 805, 806, 807, -1, 1405, 249, - 1407, 812, -1, 1496, -1, -1, -1, 37, 1028, -1, - 260, -1, -1, 1084, -1, -1, 46, -1, 48, -1, - -1, -1, 1076, 1077, -1, 55, -1, 57, 58, -1, - 1608, 1085, -1, -1, 4, 5, -1, -1, 8, 9, - -1, 71, 1113, 1063, 14, -1, -1, -1, -1, -1, - -1, 81, 302, 303, 1125, -1, -1, -1, -1, -1, - 1514, -1, -1, 93, 94, -1, 1559, 37, -1, 1523, - 1524, 1525, 1565, 1566, -1, -1, 46, -1, 48, -1, - -1, -1, 1536, 1537, 1538, 55, -1, 57, 58, -1, - -1, -1, 1585, -1, -1, -1, 346, -1, -1, -1, - 350, 71, 352, 353, 354, -1, -1, -1, -1, -1, - -1, 81, -1, 363, 4, 5, -1, -1, -1, 1526, - -1, -1, -1, 93, 94, -1, -1, 107, 108, 1583, - 1584, 1585, -1, -1, -1, -1, -1, -1, 1592, 1593, - -1, 31, 1213, -1, 3, 4, 5, 6, 398, -1, - -1, -1, 1645, -1, -1, -1, -1, 407, -1, 409, - 410, -1, -1, -1, -1, 55, -1, 57, 58, -1, - -1, -1, 1665, -1, 424, -1, -1, 427, -1, -1, - -1, 71, 1589, 42, -1, -1, -1, -1, -1, 439, - -1, 81, -1, -1, 1687, -1, 55, 447, 57, 58, - -1, 1608, -1, 93, 63, 1276, 1699, 80, 1662, -1, - 190, -1, 71, -1, -1, -1, -1, 1271, 1272, -1, - -1, -1, 81, -1, 1278, 475, 476, 477, 478, 479, - 89, 104, -1, 483, 93, -1, 1256, -1, 1258, -1, - 1260, 491, 492, -1, -1, 495, -1, 497, 498, 499, - 500, -1, -1, 1324, 504, -1, -1, 1328, -1, 509, - 133, -1, 512, -1, -1, 1076, 1077, 1078, 1079, -1, - -1, 144, -1, -1, 1085, -1, 1087, 1088, -1, 529, - -1, 3, 4, 5, 6, 7, 8, 9, 1099, 1100, - 1101, 1362, 14, 79, 80, 81, 82, 83, 84, 85, - 3, 4, 5, 6, 554, -1, 28, -1, 30, 31, - -1, -1, -1, -1, -1, 37, 566, 567, 568, 569, - 42, -1, -1, -1, 46, -1, 48, -1, 31, -1, - -1, 204, -1, 55, -1, 57, 58, -1, -1, 42, - -1, -1, -1, -1, -1, -1, -1, 1367, -1, 71, - -1, -1, 55, 333, 57, 58, -1, -1, 1429, 81, - -1, -1, 1433, -1, -1, -1, 239, 89, 71, -1, - -1, 93, 94, 641, 642, 625, -1, 627, 81, 3, - 4, 5, 6, -1, 1455, 1456, 89, -1, -1, 639, - 93, 641, 642, 643, 267, -1, -1, -1, -1, -1, - 650, -1, -1, -1, 654, 74, 75, 31, 77, 78, - 79, 80, 81, 82, 83, 84, 85, -1, 42, 669, - -1, -1, -1, -1, 48, 4, 5, 407, -1, -1, - 9, 55, -1, 57, 58, 77, 78, 79, 80, 81, - 82, 83, 84, 85, -1, 4, 5, 71, -1, -1, - 9, -1, 31, -1, -1, -1, -1, 81, -1, -1, - 1271, 1272, 1273, 1274, -1, 89, -1, 1278, 718, 93, - 94, -1, 31, -1, -1, 725, 55, -1, 57, 58, - -1, 1292, 1293, 733, 734, 358, -1, -1, -1, 48, - -1, -1, 71, -1, 1514, -1, 55, -1, 57, 58, - -1, -1, 81, 483, -1, 773, 774, -1, -1, -1, - -1, -1, 71, -1, 93, -1, -1, -1, -1, -1, - -1, -1, 81, 773, 774, 775, -1, -1, -1, -1, - -1, 781, -1, 783, 93, 94, 68, 69, 70, 71, - 72, 73, 74, 75, 417, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 804, 805, 806, 807, 808, 73, - 74, 75, 812, 77, 78, 79, 80, 81, 82, 83, - 84, 85, -1, -1, 3, 4, 5, 6, 558, -1, - 560, 3, 4, 5, 6, 565, 566, 567, 568, 569, - 840, -1, -1, 843, -1, 845, -1, -1, 578, -1, - 850, 851, 31, 853, -1, -1, -1, 1418, 1419, 859, - 1421, 591, -1, 42, -1, 865, -1, -1, -1, 48, - 42, -1, 872, 873, 874, -1, 55, -1, 57, 58, - -1, -1, -1, 55, 884, 57, 58, 3, 4, 5, - 6, 63, 71, -1, 624, -1, -1, -1, -1, 71, - -1, -1, 81, 526, -1, -1, -1, -1, -1, 81, - 89, -1, -1, 643, 93, 94, -1, 89, -1, -1, - 650, 93, -1, 39, 40, -1, 42, -1, -1, 552, - -1, -1, -1, -1, 934, 3, 4, 5, 6, 55, - 958, 57, 58, 961, -1, -1, -1, -1, 3, 4, - 5, 6, -1, -1, 9, 973, -1, 957, 958, 977, - 978, 961, 1523, 1524, 964, -1, -1, -1, -1, 969, - -1, -1, -1, 973, 42, 975, 31, 977, 978, 979, - -1, 49, -1, 983, -1, 985, -1, 42, -1, 57, - 58, -1, -1, 48, -1, -1, 3, 4, 5, 6, - 55, -1, 57, 58, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 81, -1, 638, 71, 3, 4, 5, - 6, 89, 1583, 1584, 31, -1, 81, -1, -1, -1, - 653, -1, -1, -1, 89, 42, -1, -1, 93, 94, - 1040, -1, 1042, -1, -1, 775, -1, -1, 55, -1, - 57, 58, -1, 783, -1, -1, 42, -1, 1076, 1077, - 1078, 1079, -1, 49, 71, -1, -1, 1085, -1, 1087, - 1088, 57, 58, -1, 81, 1075, 1076, 1077, 1078, 1079, - 1080, 1081, 89, -1, -1, 1085, 93, 1087, 1088, 1089, - -1, -1, -1, 1093, -1, 81, -1, -1, 1098, 1099, - 1100, 1101, -1, 89, 3, 4, 5, 6, -1, -1, - 9, -1, -1, -1, 1114, -1, -1, 1117, -1, -1, - -1, -1, -1, -1, -1, -1, 1126, -1, -1, 859, - -1, -1, 31, -1, -1, 865, -1, -1, -1, 1139, - -1, -1, -1, 42, -1, -1, -1, 1147, -1, 48, - -1, -1, -1, -1, -1, -1, 55, 780, 57, 58, - 1160, -1, 1162, -1, 3, 4, 5, 6, -1, -1, - 1170, -1, 71, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 81, -1, -1, -1, 809, -1, -1, -1, - 89, -1, -1, -1, 93, 94, 1196, 1197, -1, 1199, - -1, -1, -1, 42, 934, -1, -1, 1225, 1226, -1, - 49, -1, -1, -1, -1, -1, -1, -1, 57, 58, - -1, -1, 1222, -1, -1, 1225, 1226, 1227, -1, -1, - 3, 4, 5, 6, -1, -1, 9, -1, -1, 969, - -1, -1, 81, -1, -1, 975, -1, -1, -1, 979, - 89, -1, 875, 1271, 1272, 1273, 1274, -1, 31, -1, - 1278, -1, -1, -1, -1, -1, -1, -1, -1, 42, - 1270, 1271, 1272, 1273, 1274, 1275, -1, -1, 1278, -1, - 4, -1, 55, -1, 57, 58, -1, -1, -1, -1, - 14, -1, 1292, 1293, 1294, 1295, -1, -1, 71, 23, - 24, 3, 4, 5, 6, -1, 30, 31, 81, 33, - 1040, 35, 1042, -1, 1314, -1, 89, -1, 42, 1319, - 93, -1, 1322, 3, 4, 5, 6, -1, -1, 31, - -1, 55, -1, 57, 3, 4, 5, 6, -1, -1, - 42, 65, -1, -1, -1, -1, 48, -1, 72, -1, - 1080, -1, -1, 55, -1, 57, 58, -1, -1, 1089, - 84, 984, 42, 986, -1, -1, -1, -1, 1098, 71, - -1, -1, -1, 42, -1, -1, -1, 57, 58, 81, - 49, -1, -1, -1, 1114, -1, -1, 89, 57, 58, - -1, 93, 94, -1, -1, -1, 1126, -1, -1, -1, - 1418, 1419, -1, 1421, -1, 1405, 1406, 1407, -1, 89, - -1, -1, 136, -1, -1, -1, 140, 141, 1418, 1419, - 89, 1421, 146, 1423, -1, 149, 150, 151, -1, -1, - 1160, -1, 1162, -1, -1, -1, -1, -1, -1, -1, - 1170, 165, -1, -1, -1, 169, -1, -1, -1, -1, - -1, 175, 176, -1, -1, -1, -1, -1, -1, -1, - 1083, -1, -1, 1086, -1, -1, -1, -1, -1, -1, - 194, 195, 196, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1, -1, -1, 4, 5, -1, -1, - 8, 9, -1, -1, -1, -1, 14, 1227, -1, 223, - -1, -1, -1, -1, -1, 1523, 1524, -1, -1, -1, - 28, -1, 30, -1, 1514, 1138, -1, -1, -1, 37, - -1, 39, 40, 1523, 1524, 1525, 1526, -1, 46, -1, - 48, -1, -1, -1, -1, -1, 260, 55, -1, 57, - 58, -1, 60, -1, -1, 1275, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, -1, -1, 87, - 88, 89, -1, 91, -1, -1, 94, -1, 302, 303, - -1, -1, -1, 1583, 1584, 1585, -1, -1, -1, 1589, - 4, 5, 110, -1, 8, 9, -1, -1, -1, -1, - 14, -1, -1, 1603, -1, -1, -1, -1, 1608, -1, - -1, -1, -1, -1, 28, -1, 30, -1, -1, -1, - -1, -1, 346, 37, -1, -1, 350, -1, 352, 353, - 354, -1, 46, -1, -1, 359, -1, -1, -1, 363, - -1, 55, -1, 57, 58, -1, -1, -1, -1, -1, - -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, - -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, - 3, 4, 5, 6, 398, -1, 9, 27, 28, 93, - 30, 31, 32, 407, -1, 409, 410, 37, -1, -1, - -1, -1, 42, 1423, 1317, 45, 46, 47, 31, 49, - 424, -1, -1, 427, -1, 55, -1, 57, 58, 42, - -1, 61, -1, -1, -1, 439, -1, -1, -1, -1, - -1, 71, 55, 447, 57, 58, -1, -1, -1, -1, - -1, 81, -1, -1, -1, -1, -1, -1, 71, 89, - -1, -1, -1, 93, -1, -1, -1, 97, 81, -1, - -1, 475, 476, 477, 478, 479, 89, -1, -1, 483, - 93, -1, 3, 4, 5, 6, -1, 491, 492, -1, - -1, 495, -1, 497, 498, 499, 500, -1, -1, -1, - 504, -1, -1, -1, -1, 509, -1, -1, 512, -1, - 31, -1, -1, -1, -1, 1525, -1, 1420, -1, -1, - -1, 42, -1, -1, 528, 529, -1, -1, -1, -1, - -1, -1, -1, -1, 55, -1, 57, 58, -1, -1, - 1, -1, 3, 4, 5, 6, 7, 8, 9, -1, - 71, -1, -1, 14, -1, -1, -1, -1, -1, -1, - 81, -1, 566, 567, 568, 569, -1, 28, 89, 30, - 31, 32, 93, -1, -1, 1585, 37, -1, -1, -1, - -1, 42, -1, -1, -1, 46, -1, -1, 49, -1, - -1, -1, -1, 1603, 55, -1, 57, 58, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 71, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 81, 625, -1, 627, -1, -1, -1, -1, 89, -1, - -1, -1, 93, -1, -1, -1, 97, 641, 642, 643, - -1, -1, -1, -1, -1, 1, 650, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 663, - -1, -1, -1, -1, -1, 669, -1, -1, -1, -1, - -1, -1, 28, 29, 30, 31, 32, -1, 34, 35, - 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, - 46, -1, 48, -1, 50, 51, 52, 53, 54, 55, - -1, 57, 58, 59, -1, -1, 62, -1, -1, -1, - -1, -1, 68, -1, 718, 71, -1, -1, -1, -1, - -1, -1, 726, 79, 80, 81, -1, -1, -1, 733, - 734, 87, 88, 89, -1, -1, -1, 93, 94, 3, - 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, - 14, -1, -1, 757, 110, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 28, -1, 30, 31, 32, 773, - 774, 775, -1, 37, -1, -1, -1, -1, 42, 783, - -1, -1, 46, -1, -1, 49, -1, -1, -1, -1, - -1, 55, -1, 57, 58, -1, 3, 4, 5, 6, - 804, 805, 806, 807, 808, -1, -1, 71, 812, -1, - -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, - -1, -1, -1, -1, 31, 89, -1, -1, -1, 93, - -1, -1, -1, 97, -1, 42, 840, -1, -1, 843, - -1, 845, -1, -1, -1, -1, 850, 851, 55, 853, - 57, 58, -1, -1, -1, 859, -1, -1, -1, -1, - -1, 865, -1, -1, 71, -1, -1, -1, 872, 873, - 874, -1, -1, -1, 81, -1, -1, -1, -1, -1, - 884, -1, 89, -1, -1, -1, 93, -1, 1, -1, - 3, 4, 5, 6, 7, 8, 9, 72, 73, 74, - 75, 14, 77, 78, 79, 80, 81, 82, 83, 84, - 85, -1, -1, -1, -1, 28, -1, 30, 31, 32, - -1, -1, -1, -1, 37, 38, -1, -1, -1, 42, - 934, -1, -1, 46, 47, -1, 49, -1, 3, 4, - 5, 6, 55, -1, 57, 58, -1, -1, 61, -1, - 63, -1, -1, 957, 958, -1, -1, 961, 71, -1, - 964, -1, -1, -1, -1, 969, -1, -1, 81, 973, - -1, 975, -1, 977, 978, 979, 89, 42, -1, 983, - 93, 985, -1, -1, 49, -1, -1, -1, -1, -1, - -1, -1, 57, 58, -1, -1, 109, -1, 1, -1, - 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, - -1, 14, -1, -1, -1, -1, 81, -1, -1, -1, - -1, -1, -1, -1, 89, 28, -1, 30, 31, 32, - -1, -1, -1, -1, 37, 38, 1040, -1, 1042, 42, - -1, -1, -1, 46, 47, -1, 49, -1, -1, -1, - -1, -1, 55, -1, 57, 58, -1, -1, 61, -1, - 63, 3, 4, 5, 6, -1, -1, -1, 71, -1, - -1, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 81, -1, - -1, 1085, -1, 1087, 1088, 1089, 89, -1, -1, 1093, - 93, -1, -1, -1, 1098, 1099, 1100, 1101, -1, -1, - 42, -1, -1, -1, -1, -1, 109, 49, 1112, -1, - 1114, -1, -1, 1117, -1, 57, 58, -1, -1, -1, - -1, -1, 1126, -1, -1, -1, -1, -1, -1, 3, - 4, 5, 6, 7, 8, 9, -1, -1, -1, 81, - 14, -1, -1, 1147, -1, -1, 1, 89, 3, 4, - 5, 6, 7, 8, 9, -1, 1160, 31, 1162, 14, - -1, -1, -1, 37, -1, -1, 1170, -1, 42, -1, - -1, -1, 46, 28, 48, 30, 31, -1, -1, -1, - -1, 55, 37, 57, 58, -1, -1, 42, -1, -1, - -1, 46, 1196, 1197, 49, 1199, -1, 71, -1, -1, - 55, -1, 57, 58, 4, -1, 61, 81, 3, 4, - 5, 6, -1, -1, 9, 89, 71, -1, 1222, 93, - 94, 1225, 1226, 1227, -1, -1, 81, -1, -1, -1, - 30, 31, -1, 33, 89, 35, 31, -1, 93, -1, - -1, -1, 42, -1, -1, -1, -1, 42, -1, -1, - 1254, -1, -1, 48, -1, 55, -1, 57, -1, -1, - 55, -1, 57, 58, -1, -1, 1270, 1271, 1272, 1273, - 1274, 1275, -1, -1, 1278, -1, 71, -1, -1, -1, - 80, -1, -1, 83, -1, -1, 81, -1, 1292, 1293, - 1294, 1295, -1, -1, 89, 1299, -1, -1, 93, 94, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1314, -1, -1, -1, -1, 1319, -1, -1, 1322, 3, - 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, - 14, -1, -1, 133, 134, -1, 136, -1, -1, -1, - 140, 141, -1, -1, 144, 145, 146, 31, -1, 149, - 150, 151, -1, 37, -1, -1, 156, -1, 42, -1, - -1, -1, 46, -1, 48, 165, -1, -1, -1, 169, - -1, 55, -1, 57, 58, 175, 176, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, - 1394, -1, -1, -1, 194, 195, 196, 81, -1, -1, - -1, 1405, 1406, 1407, 204, 89, -1, -1, -1, 93, - 94, -1, -1, -1, 1418, 1419, -1, 1421, -1, 1423, - -1, -1, -1, 223, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 1, -1, 3, - 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, - 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, -1, -1, -1, 28, 29, 30, 267, 32, -1, - 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, - 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, - 54, 55, -1, 57, 58, 59, -1, -1, 62, -1, - -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, - 1514, -1, -1, -1, -1, 79, 80, 81, -1, 1523, - 1524, 1525, 1526, 87, 88, 89, -1, -1, -1, 93, - 94, -1, -1, 333, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, - 350, 3, 4, 5, 6, -1, -1, -1, 358, -1, - -1, 4, 5, 363, -1, -1, 9, -1, 3, 4, - 5, 6, -1, -1, 9, -1, -1, -1, -1, 1583, - 1584, 1585, -1, -1, -1, 1589, -1, -1, 31, -1, - 42, -1, -1, -1, -1, -1, 31, -1, 398, 1603, - -1, -1, -1, 55, 1608, 57, 58, 42, -1, 409, - -1, 63, 55, 48, 57, 58, -1, 417, -1, 71, - 55, -1, 57, 58, 424, -1, -1, 427, 71, 81, - -1, -1, -1, 433, 434, 435, 71, 89, 81, 439, - -1, 93, -1, -1, -1, -1, 81, 447, -1, -1, - 93, -1, -1, -1, 89, -1, -1, -1, 93, 94, - -1, -1, 3, 4, 5, 6, 7, 8, 9, -1, - -1, -1, -1, 14, -1, 475, 476, 477, 478, 3, - 4, 5, 6, 483, -1, 9, -1, 28, -1, 30, - 31, 491, 492, -1, -1, 495, 37, 497, 498, 499, - 500, 42, -1, -1, 504, 46, -1, 31, -1, 509, - -1, -1, 512, -1, 55, 4, 57, 58, 42, -1, - 61, -1, -1, -1, 48, -1, -1, -1, -1, 529, - 71, 55, -1, 57, 58, -1, -1, -1, -1, -1, - 81, 30, 31, -1, 33, -1, 35, 71, 89, -1, - -1, -1, 93, 42, -1, -1, -1, 81, 558, -1, - 560, -1, -1, -1, -1, 89, 55, -1, 57, 93, - 94, -1, -1, -1, -1, -1, 576, 577, 578, 1, - -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, - -1, 591, 14, -1, 83, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 28, -1, 30, 31, - 32, -1, -1, -1, -1, 37, -1, -1, -1, -1, - 42, -1, -1, -1, 46, 47, -1, 49, -1, -1, - -1, -1, -1, 55, -1, 57, 58, -1, 638, 61, - -1, 63, -1, -1, -1, -1, -1, 136, -1, 71, - 650, 140, 141, -1, -1, -1, 145, 146, -1, 81, - 149, 150, 151, -1, -1, -1, -1, 89, -1, 669, - -1, 93, -1, -1, -1, -1, 165, 88, -1, 90, - 169, 92, -1, -1, -1, -1, 175, 176, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 194, 195, 196, 1, -1, - 3, 4, 5, 6, 7, 8, 9, -1, 718, -1, - -1, 14, -1, -1, -1, 725, 137, -1, 139, -1, - -1, -1, -1, 733, 223, 28, -1, 30, 31, 32, - -1, -1, -1, -1, 37, 38, -1, -1, -1, 42, - -1, -1, -1, 46, 47, -1, 49, -1, -1, -1, - -1, -1, 55, -1, 57, 58, -1, -1, 61, -1, - 63, 260, -1, 773, 774, 775, -1, -1, 71, -1, - 780, 781, -1, 783, -1, -1, -1, -1, 81, -1, - -1, -1, -1, -1, -1, -1, 89, 797, -1, -1, - 93, -1, -1, -1, 804, 805, 806, 807, 808, -1, - -1, -1, 812, -1, -1, -1, 109, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, - -1, 1, 9, 3, 4, 5, 6, 7, 8, 9, - -1, -1, -1, 843, 14, 845, -1, -1, -1, -1, - 850, 851, -1, 853, 31, -1, -1, -1, 28, -1, - 30, 31, 32, -1, -1, 42, -1, 37, 38, -1, - 359, -1, 42, -1, 363, -1, 46, 47, 55, 49, - 57, 58, -1, -1, -1, 55, -1, 57, 58, -1, - -1, 61, -1, 63, 71, -1, -1, -1, -1, 310, - 311, 71, -1, -1, 81, -1, -1, -1, -1, -1, - -1, 81, 89, 324, -1, 326, 93, -1, 329, 89, - 409, 332, -1, 93, 335, -1, -1, -1, 339, -1, - -1, -1, -1, -1, -1, 424, 347, -1, 427, 109, - -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, - 439, 362, 9, -1, -1, -1, -1, -1, 447, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 31, -1, -1, 977, 978, 979, - -1, -1, -1, 983, 984, 42, 475, 476, 477, 478, - -1, -1, -1, -1, 483, -1, -1, -1, 55, -1, - 57, 58, 491, 492, -1, -1, 495, -1, 497, 498, - 499, -1, -1, -1, 71, 504, -1, 4, 5, -1, - 509, 8, 9, 512, 81, -1, -1, 14, -1, -1, - -1, -1, 89, -1, -1, -1, 93, -1, -1, -1, - 529, 28, -1, 30, -1, -1, 4, 5, -1, -1, - 37, 9, -1, -1, -1, -1, -1, -1, -1, 46, - -1, 48, -1, -1, -1, -1, -1, -1, 55, -1, - 57, 58, -1, 31, -1, 1075, 1076, 1077, 1078, 1079, - 1080, 1081, -1, 1083, 71, 1085, 1086, 1087, 1088, 1089, - 48, -1, -1, 1093, 81, -1, -1, 55, 33, 57, - 58, -1, -1, -1, 4, 5, 93, 94, 8, 9, - -1, 522, -1, 71, 14, -1, -1, 1117, -1, -1, - 55, -1, -1, 81, -1, -1, -1, -1, 28, -1, - 30, -1, -1, -1, -1, 93, 94, 37, 1138, 1139, - -1, -1, -1, -1, -1, 556, 46, 1147, -1, -1, - 639, -1, -1, -1, -1, 55, -1, 57, 58, -1, - -1, -1, -1, -1, -1, 576, 577, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 588, -1, -1, - 669, -1, 593, 594, -1, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, - 611, 612, 613, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4, 5, 149, 150, 151, 9, -1, -1, - -1, -1, 1222, -1, -1, 1225, 1226, 1227, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, - 175, -1, -1, -1, 733, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 48, -1, -1, 194, - 195, 196, -1, 55, -1, 57, 58, -1, -1, -1, - 1270, 1271, 1272, 1273, 1274, 1275, -1, -1, 1278, 71, - -1, -1, -1, -1, 773, 774, 775, -1, 223, 81, - -1, -1, 781, -1, 783, -1, -1, -1, -1, -1, - -1, 93, 94, -1, -1, -1, -1, -1, -1, 720, - -1, -1, -1, -1, 1314, 804, 805, 1317, -1, 1319, - -1, -1, 1322, 812, 3, 4, 5, 6, 7, 8, - 9, -1, -1, 12, -1, 14, -1, -1, -1, -1, - -1, -1, -1, -1, 3, 4, 5, 6, -1, 28, - 9, 30, 31, -1, 843, -1, 845, -1, 37, -1, - -1, 850, 851, 42, 853, -1, -1, 46, 303, 48, - -1, -1, 31, -1, -1, -1, 55, -1, 57, 58, - -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, - -1, -1, 71, -1, -1, -1, 55, -1, 57, 58, - -1, -1, 81, -1, -1, 1405, 1406, 1407, -1, -1, - 89, -1, 71, -1, 93, 94, -1, 352, 353, 354, - -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, - 89, -1, -1, -1, 93, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 860, - 861, -1, 863, -1, -1, -1, -1, -1, -1, 1, - -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - -1, 13, 14, 15, 409, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, -1, 34, 35, 36, 37, 985, 39, 40, 41, - 42, 43, 44, 45, 46, 47, -1, -1, 50, 51, - 52, 53, 54, 55, 1514, 57, 58, 59, -1, 61, - 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, - -1, -1, -1, -1, -1, 946, -1, 79, 80, 81, - 475, -1, 477, 478, 479, 87, 88, 89, -1, -1, - -1, 93, -1, 95, -1, -1, 491, 492, -1, -1, - 495, -1, 497, 498, 499, 500, 977, 978, 110, 504, - 3, 4, 5, 6, 509, -1, -1, 512, -1, -1, - -1, -1, -1, 1583, 1584, 1585, 1075, 1076, 1077, 1078, - 1079, 1080, -1, -1, -1, -1, 1085, -1, 1087, 1088, - 1089, -1, -1, -1, 1093, -1, -1, -1, 1608, 42, - -1, -1, -1, -1, -1, -1, 49, -1, -1, -1, - -1, -1, -1, -1, 57, 58, -1, -1, 1117, -1, - -1, -1, 1043, -1, -1, 1046, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 81, -1, - 1139, -1, -1, -1, -1, -1, 89, -1, 1147, -1, - 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, -1, -1, 1087, 1088, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, - 31, 32, 627, 34, 35, 36, 37, -1, 39, 40, - 41, 42, 43, 44, -1, 46, 641, 642, 643, 50, - 51, 52, 53, 54, 55, 650, 57, 58, -1, -1, - -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, - 71, -1, -1, -1, 669, -1, -1, -1, 79, 80, - 81, 3, 4, 5, 6, -1, 87, 88, 89, -1, - -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 108, -1, 110, - -1, -1, 55, 1184, -1, -1, -1, -1, -1, -1, - 42, -1, 1271, 1272, -1, -1, -1, 49, -1, 1278, - -1, 1202, -1, 1204, -1, 57, 58, 80, 733, -1, - 83, -1, -1, -1, -1, -1, -1, 3, 4, 5, - 6, 7, 8, 9, -1, -1, 12, -1, 14, 81, - -1, 104, -1, 106, -1, 1314, -1, 89, -1, -1, - 1319, -1, 28, 1322, 30, 31, -1, -1, 773, 774, - 775, 37, -1, -1, -1, -1, 42, -1, 783, -1, - 46, -1, 48, -1, -1, 3, 4, 5, 6, 55, - -1, 57, 58, -1, -1, -1, -1, -1, -1, 804, - 805, 806, 807, 808, -1, 71, -1, 812, -1, -1, - -1, -1, -1, 31, -1, 81, -1, -1, -1, -1, - -1, -1, 175, 89, 42, -1, -1, 93, 94, -1, - -1, -1, -1, -1, -1, -1, -1, 55, -1, 57, - 58, 194, 195, 196, -1, 850, 1405, 1406, 1407, -1, - -1, 204, -1, 71, -1, 3, 4, 5, 6, 7, - 8, 9, -1, 81, 12, -1, 14, 872, 873, 874, - 223, 89, -1, -1, -1, 93, -1, -1, -1, 884, - 28, -1, 30, 31, -1, -1, -1, -1, -1, 37, - -1, -1, -1, -1, 42, -1, 249, -1, 46, -1, - 48, -1, -1, -1, -1, -1, -1, 55, -1, 57, - 58, -1, -1, -1, 267, -1, -1, 1398, 71, 72, - 73, 74, 75, 71, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 81, -1, -1, -1, -1, -1, -1, - -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, - -1, -1, 957, 958, -1, 1514, 961, -1, -1, 964, - 3, 4, 5, 6, 7, 8, 9, -1, 973, 12, - -1, 14, 977, 978, 979, -1, 4, 5, 983, -1, - 8, 9, -1, -1, -1, 28, 14, 30, 31, -1, - -1, -1, -1, -1, 37, -1, -1, -1, -1, 42, - 28, -1, 30, 46, -1, 358, 359, -1, -1, 37, - -1, -1, 55, -1, 57, 58, -1, -1, 46, -1, - -1, -1, -1, -1, 1583, 1584, 1585, 55, 71, 57, - 58, -1, 190, -1, -1, -1, -1, -1, 81, -1, - -1, -1, -1, -1, -1, -1, 89, -1, -1, 1608, - 93, -1, -1, -1, -1, -1, 409, -1, -1, -1, - -1, -1, 3, 4, 5, 6, -1, -1, 9, -1, - 1075, 1076, 1077, 1078, 1079, 1080, 1081, -1, -1, -1, - 1085, -1, 1087, 1088, 1089, -1, -1, -1, -1, -1, - 31, -1, -1, -1, 1099, 1100, 1101, -1, -1, -1, - -1, 42, 1583, 1584, -1, -1, -1, -1, -1, -1, - -1, -1, 1117, -1, 55, -1, 57, 58, -1, -1, - -1, -1, 475, -1, 477, 478, -1, -1, -1, -1, - 71, -1, -1, -1, -1, -1, -1, -1, 491, 492, - 81, -1, 495, -1, 497, 498, 499, 500, 89, -1, - -1, 504, 93, -1, -1, -1, 509, -1, -1, 512, - -1, -1, -1, -1, 3, 4, 5, 6, -1, -1, - -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, - -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, - -1, 1196, 1197, -1, 1199, -1, 28, -1, 30, 31, - -1, -1, -1, 42, -1, 37, -1, -1, -1, -1, - 42, 369, -1, -1, 46, -1, 55, 1222, 57, 58, - 1225, 1226, 1227, 55, -1, 57, 58, -1, -1, -1, - -1, 63, 71, -1, -1, -1, -1, -1, -1, 71, - -1, -1, 81, -1, -1, -1, -1, -1, -1, 81, - 89, -1, -1, -1, 93, -1, -1, 89, -1, -1, - -1, 93, -1, -1, -1, 1270, 1271, 1272, 1273, 1274, - 1275, -1, -1, 1278, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1292, 1293, 1294, - 1295, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 653, 654, -1, -1, -1, -1, -1, 465, 466, 1314, - -1, -1, -1, -1, -1, -1, 669, 1, -1, 3, - 4, 5, 6, 7, 8, 9, 10, 11, -1, 13, - 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, - 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, - 44, 45, 46, 47, -1, -1, 50, 51, 52, 53, - 54, 55, -1, 57, 58, 59, -1, 61, 62, -1, - 733, -1, -1, -1, 68, -1, -1, 71, -1, -1, - 3, 4, 5, 6, -1, 79, 80, 81, -1, 557, - 1405, -1, 1407, 87, 88, 89, 564, -1, -1, 93, - -1, 95, -1, 1418, 1419, -1, 1421, -1, -1, -1, - 773, 774, 775, -1, -1, 109, 110, 780, 781, 42, - 783, -1, 590, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 55, -1, 57, 58, -1, -1, 61, -1, - -1, 804, 805, 806, 807, 808, 809, 615, 71, 812, - -1, -1, -1, 621, -1, 623, 624, -1, 81, -1, - -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, - 93, -1, -1, -1, 837, -1, -1, -1, -1, -1, - -1, -1, 650, -1, -1, -1, -1, 850, -1, 657, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1514, - -1, -1, -1, -1, -1, -1, -1, -1, 1523, 1524, - 1525, 1526, -1, -1, 682, 683, 684, 685, -1, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 3, - 4, 5, 6, 14, -1, 9, 14, -1, 1583, 1584, - 1585, -1, -1, -1, 1589, 23, 24, 28, -1, 30, - 31, -1, 30, 31, -1, 33, 37, 31, -1, -1, - -1, 42, -1, 1608, -1, 46, 764, -1, 42, 12, - -1, -1, -1, -1, 55, -1, 57, 58, -1, -1, - 61, 55, -1, 57, 58, 783, -1, 65, -1, -1, - 71, 984, 985, 986, -1, -1, -1, 71, -1, 797, - 81, -1, -1, -1, -1, -1, -1, 81, 89, -1, - -1, -1, 93, -1, -1, 89, -1, -1, -1, 93, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, -1, 842, -1, 124, -1, 126, -1, - -1, -1, -1, -1, -1, 133, 134, -1, -1, -1, - -1, -1, 140, 141, -1, -1, 144, 145, 146, -1, - 148, 149, 150, 151, -1, -1, -1, -1, -1, -1, - -1, -1, 1075, 1076, 1077, 1078, 1079, 1080, 1081, -1, - 1083, -1, 1085, 1086, 1087, 1088, 1089, 352, 353, 354, - 1093, -1, 900, -1, -1, -1, 1099, 1100, 1101, -1, - -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, - 7, 8, 9, -1, 1117, -1, -1, 14, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 4, 5, 937, - 938, 28, 9, 30, 31, 1138, -1, -1, -1, -1, - 37, -1, -1, -1, 952, 42, 954, -1, 956, 46, - -1, 239, 240, -1, 31, -1, -1, -1, 55, -1, - 57, 58, -1, -1, -1, -1, -1, 3, 4, 5, - 6, 48, 260, 9, 71, -1, -1, -1, 55, -1, - 57, 58, -1, -1, 81, -1, -1, 995, -1, -1, - -1, -1, 89, -1, 71, 31, 93, -1, -1, -1, - -1, -1, -1, -1, 81, -1, 42, -1, -1, -1, - 475, -1, 477, 478, 479, 303, 93, 94, -1, 55, - 1028, 57, 58, -1, -1, -1, -1, -1, 69, 70, - 71, 72, 73, 74, 75, 71, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 81, -1, -1, -1, -1, - -1, -1, -1, 89, -1, 1063, -1, 93, -1, -1, - -1, -1, 350, -1, 352, 353, -1, 1270, 1271, 1272, - 1273, 1274, 1275, 4, 5, 1278, -1, -1, 9, -1, - -1, -1, -1, -1, -1, -1, -1, 1095, 1096, 1292, - 1293, 1294, 1295, -1, -1, -1, -1, -1, -1, -1, - 31, -1, -1, 3, 4, 5, 6, 7, 8, 9, - 398, 1314, -1, -1, 14, -1, -1, 48, -1, -1, - -1, 1129, -1, -1, 55, -1, 57, 58, 28, 417, - 30, 31, -1, -1, -1, -1, 424, 37, -1, 427, - 71, -1, 42, 4, 5, -1, 46, -1, 9, -1, - 81, 439, -1, -1, -1, 55, -1, 57, 58, -1, - -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, - 31, 71, 1180, 1181, -1, -1, 641, 642, 643, -1, - -1, 81, -1, -1, -1, 650, -1, 48, -1, 89, - -1, -1, -1, 93, 55, -1, 57, 58, -1, -1, - -1, -1, 1405, -1, 1407, -1, -1, -1, -1, -1, - 71, -1, -1, -1, -1, 1418, 1419, 1420, 1421, -1, - 81, -1, -1, -1, -1, -1, -1, -1, 1236, -1, - -1, -1, 93, 94, -1, -1, -1, -1, 526, -1, - 528, -1, -1, -1, -1, -1, -1, -1, 1256, -1, - 1258, -1, 1260, 4, 5, -1, 7, 8, 9, -1, - 1268, -1, -1, 14, 552, -1, 554, -1, 733, -1, - -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, - 31, -1, -1, -1, -1, -1, 37, -1, 1296, -1, - -1, -1, -1, -1, -1, 46, -1, -1, 49, -1, - -1, -1, 1310, 1311, 55, -1, 57, 58, 773, 774, - 775, 1514, -1, -1, -1, -1, -1, -1, 783, -1, - 1523, 1524, 1525, 1526, -1, -1, -1, -1, -1, -1, - 1338, -1, -1, 70, 71, 72, 73, 74, 75, 627, - 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, - 638, 639, -1, 641, 642, -1, -1, -1, -1, 1367, - -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, - -1, -1, 14, -1, -1, -1, -1, -1, -1, 1387, - 1583, 1584, 1585, -1, -1, -1, 1589, -1, -1, 31, - -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, - 42, -1, -1, -1, 46, 1608, 48, -1, -1, -1, - -1, -1, -1, 55, -1, 57, 58, -1, 1426, 884, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, - 718, -1, 1440, -1, -1, -1, -1, 725, 726, 81, - -1, -1, -1, -1, -1, -1, 734, 89, -1, -1, - -1, 93, -1, -1, -1, 1463, 4, 5, -1, 7, - 8, 9, -1, -1, 12, -1, 14, -1, -1, 757, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 28, -1, 30, 31, -1, -1, -1, -1, -1, 37, - -1, -1, 957, 958, -1, -1, 961, -1, 46, 964, - 48, -1, -1, -1, -1, -1, 1514, 55, 973, 57, - 58, -1, 977, 978, 979, -1, -1, -1, 983, -1, - -1, -1, -1, 71, -1, -1, 1534, 1535, 31, -1, - -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 93, 94, -1, -1, 837, - -1, -1, 840, -1, -1, -1, -1, -1, -1, 1567, - -1, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, -1, 872, 873, 874, 875, -1, -1, - 1598, -1, -1, -1, -1, -1, 884, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1075, 1076, 1077, 1078, 1079, 1080, 1081, -1, -1, -1, - 1085, -1, 1087, 1088, 1089, -1, 4, 5, -1, 7, - 8, 9, -1, -1, 12, -1, 14, -1, -1, 4, - 5, -1, 7, 8, 9, -1, -1, 12, -1, 14, - 28, -1, 30, 31, -1, -1, -1, -1, -1, 37, - -1, -1, -1, 28, -1, 30, 31, -1, 46, 957, - 958, -1, 37, 961, -1, -1, 964, 55, -1, 57, - 58, 46, -1, -1, -1, 973, -1, -1, -1, -1, - 55, -1, 57, 58, -1, 983, -1, -1, -1, 4, - 5, 1709, 7, 8, 9, -1, -1, -1, -1, 14, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 28, -1, 30, 31, -1, -1, -1, - -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, - -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, - 55, -1, 57, 58, -1, -1, -1, 1222, -1, -1, - 1225, 1226, 1227, -1, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, -1, -1, -1, -1, - 1, -1, 3, 4, 5, 6, 7, 8, 9, -1, - -1, 12, -1, 14, -1, 1270, 1271, 1272, 1273, 1274, - 1275, 111, -1, 1278, 25, -1, 27, -1, -1, -1, - 31, -1, -1, -1, 1112, -1, 37, -1, -1, -1, - -1, 42, -1, -1, -1, 46, -1, 48, -1, -1, - -1, -1, -1, -1, 55, -1, 57, 58, 59, 60, - 61, 1139, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, 87, 88, 89, -1, - 91, 92, 93, 94, 95, -1, -1, -1, -1, -1, - 101, 102, -1, -1, -1, -1, 107, 108, 109, -1, - 111, -1, -1, -1, -1, -1, -1, -1, 1196, 1197, - -1, 1199, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 1222, -1, -1, 1225, 1226, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1418, 1419, 107, 1421, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1254, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 1, -1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1299, 28, 29, 30, 31, 32, -1, 34, 35, - 36, 37, -1, 39, 40, 41, 42, 43, 44, 1317, - 46, 1319, 48, -1, 50, 51, 52, 53, 54, 55, - -1, 57, 58, 59, -1, -1, 62, -1, -1, -1, - -1, -1, 68, -1, -1, 71, -1, -1, 1523, 1524, - 1525, 1526, -1, 79, 80, 81, -1, -1, -1, -1, - -1, 87, 88, 89, -1, -1, -1, 93, 94, -1, - 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, -1, 13, 14, 110, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, - 31, 32, -1, 34, 35, 36, 37, -1, 39, 40, - 41, 42, 43, 44, 1589, 46, -1, -1, -1, 50, - 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, - 61, 62, -1, -1, -1, -1, -1, 68, -1, -1, - 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, - 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, - -1, 1, 93, 3, 4, 5, 6, -1, 8, 9, - 10, 11, -1, 13, 14, -1, -1, -1, -1, 110, - -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, - 30, 31, 32, -1, 34, 35, 36, 37, -1, 39, - 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, - 50, 51, 52, 53, 54, 55, -1, 57, 58, 59, - -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, - -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, - 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, - -1, -1, 1, 93, 3, 4, 5, 6, -1, 8, - 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, - 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, - 29, 30, -1, 32, -1, 34, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, -1, 93, 94, 1, -1, 3, 4, - 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, - -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, - 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, - -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 59, -1, -1, 62, -1, -1, - -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, -1, -1, 93, 1, - -1, 3, 4, 5, 6, 100, 8, 9, 10, 11, - -1, 13, 14, -1, -1, 110, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, - 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, - 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, - 52, 53, 54, 55, -1, 57, 58, 59, -1, -1, - 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, - -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, - -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, - 1, 93, 3, 4, 5, 6, -1, 8, 9, 10, - 11, -1, 13, 14, -1, -1, -1, 109, 110, -1, - -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, - -1, 32, -1, 34, 35, 36, 37, -1, 39, 40, - 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, - 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, - -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, - 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, - 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, - -1, 1, 93, 3, 4, 5, 6, -1, 8, 9, - 10, 11, -1, 13, 14, -1, -1, -1, 109, 110, - -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, - 30, 31, 32, -1, 34, 35, 36, 37, -1, 39, - 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, - 50, 51, 52, 53, 54, 55, -1, 57, 58, 59, - -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, - -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, - 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, - -1, -1, 1, 93, 3, 4, 5, 6, -1, 8, - 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, - 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, - 29, 30, -1, 32, -1, 34, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, 1, 93, 3, 4, 5, 6, -1, - 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, - -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, - 28, 29, 30, -1, 32, -1, 34, 35, 36, 37, - -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, - -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, - 58, -1, -1, -1, 62, 63, -1, -1, -1, -1, - 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, - -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, - 88, 89, -1, -1, 1, 93, 3, 4, 5, 6, - -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, - -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, - -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, - 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, - -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, -1, -1, 61, 62, -1, -1, -1, -1, - -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, - 87, 88, 89, -1, -1, 1, 93, 3, 4, 5, - 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, - -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, - -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, - 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, - 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, - -1, 57, 58, -1, -1, -1, 62, -1, -1, -1, - -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, - -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, - -1, 87, 88, 89, -1, -1, 1, 93, 3, 4, - 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, - -1, -1, 108, -1, 110, -1, -1, -1, -1, -1, - -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, - 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, - -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, -1, -1, -1, 62, -1, -1, - -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, -1, 1, 93, 3, - 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, - 14, -1, -1, -1, -1, 110, -1, -1, -1, -1, - -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, - 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, - 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, - 54, 55, -1, 57, 58, -1, -1, -1, 62, -1, - -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, - -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, - -1, -1, -1, 87, 88, 89, -1, -1, 1, 93, - 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, - 13, 14, -1, -1, -1, -1, 110, -1, -1, -1, - -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, - -1, 34, 35, 36, 37, -1, 39, 40, 41, 42, - 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, - 53, 54, 55, -1, 57, 58, -1, -1, -1, 62, - -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, - -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, - -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, - 93, 3, 4, 5, 6, -1, 8, 9, 10, 11, - -1, 13, 14, -1, -1, -1, -1, 110, -1, -1, - -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, - 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, - 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, - 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, - 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, - -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, - -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, - -1, 93, 3, 4, 5, 6, -1, 8, 9, 10, - 11, -1, 13, 14, -1, -1, -1, -1, 110, 111, - -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, - -1, 32, -1, 34, 35, 36, 37, -1, 39, 40, - 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, - 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, - -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, - 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, - 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, - -1, -1, 93, 3, 4, 5, 6, -1, 8, 9, - 10, 11, -1, 13, 14, -1, -1, -1, -1, 110, - 111, -1, -1, -1, -1, -1, -1, -1, 28, 29, - 30, -1, 32, -1, 34, 35, 36, 37, -1, 39, - 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, - 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, - -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, - -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, - 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, - -1, -1, -1, 93, 3, 4, 5, 6, -1, 8, - 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, - 110, 111, -1, -1, -1, -1, -1, -1, -1, 28, - 29, 30, -1, 32, -1, 34, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, -1, 93, 3, 4, 5, 6, -1, - 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, - -1, 110, 111, -1, -1, -1, -1, -1, -1, -1, - 28, 29, 30, -1, 32, -1, 34, 35, 36, 37, - -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, - -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, - 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, - 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, - -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, - 88, 89, -1, -1, -1, 93, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 110, 111, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, 13, 14, 15, -1, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, -1, 34, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - 59, -1, 61, 62, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, -1, 93, -1, 95, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 109, 110, 3, 4, 5, 6, 7, 8, 9, 10, - 11, -1, 13, 14, 15, -1, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, -1, 34, 35, 36, 37, -1, 39, 40, - 41, 42, 43, 44, 45, 46, 47, -1, -1, 50, - 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, - 61, 62, -1, -1, -1, -1, -1, 68, -1, -1, - 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, - 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, - -1, -1, 93, -1, 95, -1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, -1, 13, 14, 15, 110, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, -1, 34, 35, 36, - 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, - 47, -1, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, 59, -1, 61, 62, -1, -1, -1, -1, - -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, - 87, 88, 89, -1, -1, -1, 93, -1, 95, -1, - 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, - 13, 14, 15, 110, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - -1, 34, 35, 36, 37, -1, 39, 40, 41, 42, - 43, 44, 45, 46, 47, -1, -1, 50, 51, 52, - 53, 54, 55, -1, 57, 58, -1, -1, 61, 62, - -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, - -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, - -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, - 93, -1, 95, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, -1, -1, 110, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, - 30, 31, 32, -1, 34, 35, 36, 37, -1, 39, - 40, 41, 42, 43, 44, -1, 46, -1, 48, -1, - 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, - -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, - -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, - 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, - -1, -1, -1, 93, 94, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, - 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 28, 29, 30, 31, 32, -1, 34, 35, 36, 37, - -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, - 48, -1, 50, 51, 52, 53, 54, 55, -1, 57, - 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, - 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, - -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, - 88, 89, -1, -1, -1, 93, 94, 3, 4, 5, - 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, - -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 28, 29, 30, 31, 32, -1, 34, 35, - 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, - 46, -1, 48, -1, 50, 51, 52, 53, 54, 55, - -1, 57, 58, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, - -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, - -1, 87, 88, 89, -1, -1, -1, 93, 94, 3, - 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, - 14, -1, -1, -1, 110, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 28, 29, 30, 31, 32, -1, - 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, - 44, -1, 46, -1, 48, -1, 50, 51, 52, 53, - 54, 55, -1, 57, 58, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, - -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, - -1, -1, -1, 87, 88, 89, -1, -1, -1, 93, - 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, - -1, 13, 14, -1, -1, -1, 110, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, - 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, - 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, - 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, - 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, - -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, - -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, - -1, 93, 3, 4, 5, 6, -1, 8, 9, 10, - 11, -1, 13, 14, -1, -1, -1, -1, 110, -1, - -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, - -1, 32, -1, 34, 35, 36, 37, -1, 39, 40, - 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, - 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, - 61, 62, -1, -1, -1, -1, -1, 68, -1, -1, - 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, - 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, - -1, -1, 93, 3, 4, 5, 6, 7, 8, 9, - 10, 11, -1, 13, 14, -1, -1, -1, -1, 110, - -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, - 30, 31, 32, -1, 34, 35, 36, 37, -1, 39, - 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, - 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, - -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, - 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, - -1, -1, -1, 93, 3, 4, 5, 6, -1, 8, - 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, - 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, - 29, 30, 31, 32, -1, 34, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, -1, 93, 3, 4, 5, 6, -1, - 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, - -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, - 28, 29, 30, -1, 32, -1, 34, 35, 36, 37, - -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, - -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, - 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, - 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, - -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, - 88, 89, -1, -1, -1, 93, 3, 4, 5, 6, - -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, - -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, - -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, - 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, - -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, -1, -1, -1, 62, -1, -1, -1, -1, - -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, - 87, 88, 89, -1, -1, -1, 93, 3, 4, 5, - 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, - -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, - -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, - 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, - 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, - -1, 57, 58, -1, -1, -1, 62, -1, -1, -1, - -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, - -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, - -1, 87, 88, 89, -1, -1, -1, 93, 3, 4, - 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, - -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, - -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, - 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, - -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 59, -1, -1, -1, -1, -1, - -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, -1, -1, 93, 3, - 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, - 14, -1, -1, -1, -1, 110, -1, -1, -1, -1, - -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, - 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, - 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, - 54, 55, -1, 57, 58, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, - -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, - -1, -1, -1, 87, 88, 89, -1, -1, -1, 93, - 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, - -1, 13, 14, -1, -1, -1, 110, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, - 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, - 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, - 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, - 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, - -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, - -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, - -1, 93, 3, 4, 5, 6, -1, 8, 9, 10, - 11, -1, 13, 14, -1, -1, -1, -1, 110, -1, - -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, - 31, 32, -1, 34, 35, 36, 37, -1, 39, 40, - 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, - 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, - 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, - 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, - -1, -1, 93, 3, 4, 5, 6, -1, 8, 9, - 10, 11, -1, 13, 14, -1, -1, -1, -1, 110, - -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, - 30, -1, 32, -1, 34, 35, 36, 37, -1, 39, - 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, - 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, - -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, - -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, - 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, - -1, -1, -1, 93, 3, 4, 5, 6, -1, 8, - 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, - 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, - 29, 30, 31, 32, -1, 34, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, -1, 93, 3, 4, 5, 6, -1, - 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, - -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, - 28, 29, 30, -1, 32, -1, 34, 35, 36, 37, - -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, - -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, - 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, - -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, - 88, 89, -1, -1, -1, 93, 3, 4, 5, 6, - -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, - -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, - -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, - 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, - -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, - 87, 88, 89, -1, -1, -1, 93, 3, 4, 5, - 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, - -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, - -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, - 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, - 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, - -1, 57, 58, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, - -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, - -1, 87, 88, 89, -1, -1, -1, 93, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, 110, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 60, -1, -1, - -1, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/lib/bison.simple" -/* This file comes from bison-1.28. */ - -/* Skeleton output parser for bison, - Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ - -/* This is the parser code that is written into each bison parser - when the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -#ifndef YYSTACK_USE_ALLOCA -#ifdef alloca -#define YYSTACK_USE_ALLOCA -#else /* alloca not defined */ -#ifdef __GNUC__ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#else /* not GNU C. */ -#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) -#define YYSTACK_USE_ALLOCA -#include -#else /* not sparc */ -/* We think this test detects Watcom and Microsoft C. */ -/* This used to test MSDOS, but that is a bad idea - since that symbol is in the user namespace. */ -#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) -#if 0 /* No need for malloc.h, which pollutes the namespace; - instead, just don't use alloca. */ -#include -#endif -#else /* not MSDOS, or __TURBOC__ */ -#if defined(_AIX) -/* I don't know what this was needed for, but it pollutes the namespace. - So I turned it off. rms, 2 May 1997. */ -/* #include */ - #pragma alloca -#define YYSTACK_USE_ALLOCA -#else /* not MSDOS, or __TURBOC__, or _AIX */ -#if 0 -#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, - and on HPUX 10. Eventually we can turn this on. */ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#endif /* __hpux */ -#endif -#endif /* not _AIX */ -#endif /* not MSDOS, or __TURBOC__ */ -#endif /* not sparc */ -#endif /* not GNU C */ -#endif /* alloca not defined */ -#endif /* YYSTACK_USE_ALLOCA not defined */ - -#ifdef YYSTACK_USE_ALLOCA -#define YYSTACK_ALLOC alloca -#else -#define YYSTACK_ALLOC malloc -#endif - -/* Note: there must be only one dollar sign in this file. - It is replaced by the list of actions, each action - as one case of the switch. */ - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 -#define YYEOF 0 -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 -/* Like YYERROR except do call yyerror. - This remains here temporarily to ease the - transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ -#define YYFAIL goto yyerrlab -#define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(token, value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { yychar = (token), yylval = (value); \ - yychar1 = YYTRANSLATE (yychar); \ - YYPOPSTACK; \ - goto yybackup; \ - } \ - else \ - { yyerror ("syntax error: cannot back up"); YYERROR; } \ -while (0) - -#define YYTERROR 1 -#define YYERRCODE 256 - -#ifndef YYPURE -#define YYLEX yylex() -#endif - -#ifdef YYPURE -#ifdef YYLSP_NEEDED -#ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) -#else -#define YYLEX yylex(&yylval, &yylloc) -#endif -#else /* not YYLSP_NEEDED */ -#ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, YYLEX_PARAM) -#else -#define YYLEX yylex(&yylval) -#endif -#endif /* not YYLSP_NEEDED */ -#endif - -/* If nonreentrant, generate the variables here */ - -#ifndef YYPURE - -int yychar; /* the lookahead symbol */ -YYSTYPE yylval; /* the semantic value of the */ - /* lookahead symbol */ - -#ifdef YYLSP_NEEDED -YYLTYPE yylloc; /* location data for the lookahead */ - /* symbol */ -#endif - -int yynerrs; /* number of parse errors so far */ -#endif /* not YYPURE */ - -#if YYDEBUG != 0 -int yydebug; /* nonzero means print parse trace */ -/* Since this is uninitialized, it does not stop multiple parsers - from coexisting. */ -#endif - -/* YYINITDEPTH indicates the initial size of the parser's stacks */ - -#ifndef YYINITDEPTH -#define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH is the maximum size the stacks can grow to - (effective only if the built-in stack extension method is used). */ - -#if YYMAXDEPTH == 0 -#undef YYMAXDEPTH -#endif - -#ifndef YYMAXDEPTH -#define YYMAXDEPTH 10000 -#endif - -/* Define __yy_memcpy. Note that the size argument - should be passed with type unsigned int, because that is what the non-GCC - definitions require. With GCC, __builtin_memcpy takes an arg - of type size_t, but it can handle unsigned int. */ - -#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ -#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 (to, from, count) - char *to; - char *from; - unsigned int count; -{ - register char *f = from; - register char *t = to; - register int i = count; - - while (i-- > 0) - *t++ = *f++; -} - -#else /* __cplusplus */ - -/* This is the most reliable way to avoid incompatibilities - in available built-in functions on various systems. */ -static void -__yy_memcpy (char *to, char *from, unsigned int count) -{ - register char *t = to; - register char *f = from; - register int i = count; - - while (i-- > 0) - *t++ = *f++; -} - -#endif -#endif - -#line 217 "/usr/lib/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 *. - It should actually point to an object. - Grammar actions can access the variable by casting it - 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; -#endif /* not __cplusplus */ -#else /* not YYPARSE_PARAM */ -#define YYPARSE_PARAM_ARG -#define YYPARSE_PARAM_DECL -#endif /* not YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -#ifdef YYPARSE_PARAM -int yyparse (void *); -#else -int yyparse (void); -#endif -#endif - -int -yyparse(YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - register int yystate; - register int yyn; - register short *yyssp; - register YYSTYPE *yyvsp; - int yyerrstatus; /* number of tokens to shift before error messages enabled */ - int yychar1 = 0; /* lookahead token as an internal (translated) token number */ - - short yyssa[YYINITDEPTH]; /* the state stack */ - YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ - - short *yyss = yyssa; /* refer to the stacks thru separate pointers */ - YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ - -#ifdef YYLSP_NEEDED - YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; - -#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -#define YYPOPSTACK (yyvsp--, yyssp--) -#endif - - int yystacksize = YYINITDEPTH; - int yyfree_stacks = 0; - -#ifdef YYPURE - int yychar; - YYSTYPE yylval; - int yynerrs; -#ifdef YYLSP_NEEDED - YYLTYPE yylloc; -#endif -#endif - - YYSTYPE yyval; /* the variable used to return */ - /* semantic values from the action */ - /* routines */ - - int yylen; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Starting parse\n"); -#endif - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - - yyssp = yyss - 1; - yyvsp = yyvs; -#ifdef YYLSP_NEEDED - yylsp = yyls; -#endif - -/* Push a new state, which is found in yystate . */ -/* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. */ -yynewstate: - - *++yyssp = yystate; - - if (yyssp >= yyss + yystacksize - 1) - { - /* Give user a chance to reallocate the stack */ - /* Use copies of these so that the &'s don't force the real ones into memory. */ - YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; -#ifdef YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; -#endif - - /* Get the current used size of the three stacks, in elements. */ - int size = yyssp - yyss + 1; - -#ifdef yyoverflow - /* Each stack pointer address is followed by the size of - the data in use in that stack, in bytes. */ -#ifdef YYLSP_NEEDED - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yyls1, size * sizeof (*yylsp), - &yystacksize); -#else - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yystacksize); -#endif - - yyss = yyss1; yyvs = yyvs1; -#ifdef YYLSP_NEEDED - yyls = yyls1; -#endif -#else /* no yyoverflow */ - /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - { - yyerror("parser stack overflow"); - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 2; - } - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - yystacksize = YYMAXDEPTH; -#ifndef YYSTACK_USE_ALLOCA - yyfree_stacks = 1; -#endif - yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); - __yy_memcpy ((char *)yyss, (char *)yyss1, - size * (unsigned int) sizeof (*yyssp)); - yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); - __yy_memcpy ((char *)yyvs, (char *)yyvs1, - size * (unsigned int) sizeof (*yyvsp)); -#ifdef YYLSP_NEEDED - yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); - __yy_memcpy ((char *)yyls, (char *)yyls1, - size * (unsigned int) sizeof (*yylsp)); -#endif -#endif /* no yyoverflow */ - - yyssp = yyss + size - 1; - yyvsp = yyvs + size - 1; -#ifdef YYLSP_NEEDED - yylsp = yyls + size - 1; -#endif - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Stack size increased to %d\n", yystacksize); -#endif - - if (yyssp >= yyss + yystacksize - 1) - YYABORT; - } - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Entering state %d\n", yystate); -#endif - - goto yybackup; - yybackup: - -/* Do appropriate processing given the current state. */ -/* Read a lookahead token if we need one and don't already have one. */ -/* yyresume: */ - - /* First try to decide what to do without reference to lookahead token. */ - - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - - if (yychar == YYEMPTY) - { -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Reading a token: "); -#endif - yychar = YYLEX; - } - - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ - { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Now at end of input.\n"); -#endif - } - else - { - yychar1 = YYTRANSLATE(yychar); - -#if YYDEBUG != 0 - if (yydebug) - { - fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise meaning - of a token, for further debugging info. */ -#ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -#endif - fprintf (stderr, ")\n"); - } -#endif - } - - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; - - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the lookahead token. */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); -#endif - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* count tokens shifted since error; after three, turn off error status. */ - if (yyerrstatus) yyerrstatus--; - - yystate = yyn; - goto yynewstate; - -/* Do the default action for the current state. */ -yydefault: - - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - -/* Do a reduction. yyn is the number of a rule to reduce with. */ -yyreduce: - yylen = yyr2[yyn]; - if (yylen > 0) - yyval = yyvsp[1-yylen]; /* implement default value of the action */ - -#if YYDEBUG != 0 - if (yydebug) - { - int i; - - fprintf (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) - fprintf (stderr, "%s ", yytname[yyrhs[i]]); - fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - - switch (yyn) { - -case 1: -#line 435 "parse.y" -{ finish_translation_unit (); ; - break;} -case 2: -#line 437 "parse.y" -{ finish_translation_unit (); ; - break;} -case 3: -#line 445 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 4: -#line 447 "parse.y" -{ yyval.ttype = NULL_TREE; ggc_collect (); ; - break;} -case 5: -#line 449 "parse.y" -{ yyval.ttype = NULL_TREE; ggc_collect (); ; - break;} -case 8: -#line 458 "parse.y" -{ have_extern_spec = 1; - used_extern_spec = 0; - yyval.ttype = NULL_TREE; ; - break;} -case 9: -#line 463 "parse.y" -{ have_extern_spec = 0; ; - break;} -case 10: -#line 468 "parse.y" -{ yyval.itype = pedantic; - pedantic = 0; ; - break;} -case 12: -#line 477 "parse.y" -{ if (pending_lang_change) do_pending_lang_change(); - type_lookups = NULL_TREE; ; - break;} -case 13: -#line 480 "parse.y" -{ if (! toplevel_bindings_p ()) - pop_everything (); ; - break;} -case 14: -#line 486 "parse.y" -{ if (pending_inlines) do_pending_inlines (); ; - break;} -case 15: -#line 488 "parse.y" -{ if (pending_inlines) do_pending_inlines (); ; - break;} -case 16: -#line 490 "parse.y" -{ if (pending_inlines) do_pending_inlines (); ; - break;} -case 17: -#line 492 "parse.y" -{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype); - assemble_asm (yyvsp[-2].ttype); ; - break;} -case 18: -#line 495 "parse.y" -{ pop_lang_context (); ; - break;} -case 19: -#line 497 "parse.y" -{ if (pending_inlines) do_pending_inlines (); - pop_lang_context (); ; - break;} -case 20: -#line 500 "parse.y" -{ if (pending_inlines) do_pending_inlines (); - pop_lang_context (); ; - break;} -case 21: -#line 503 "parse.y" -{ push_namespace (yyvsp[-1].ttype); ; - break;} -case 22: -#line 505 "parse.y" -{ pop_namespace (); ; - break;} -case 23: -#line 507 "parse.y" -{ push_namespace (NULL_TREE); ; - break;} -case 24: -#line 509 "parse.y" -{ pop_namespace (); ; - break;} -case 26: -#line 512 "parse.y" -{ do_toplevel_using_decl (yyvsp[-1].ttype); ; - break;} -case 28: -#line 515 "parse.y" -{ pedantic = yyvsp[-1].itype; ; - break;} -case 29: -#line 520 "parse.y" -{ begin_only_namespace_names (); ; - break;} -case 30: -#line 522 "parse.y" -{ - end_only_namespace_names (); - if (lastiddecl) - yyvsp[-1].ttype = lastiddecl; - do_namespace_alias (yyvsp[-4].ttype, yyvsp[-1].ttype); - ; - break;} -case 31: -#line 532 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 32: -#line 534 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 33: -#line 536 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 34: -#line 541 "parse.y" -{ yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 35: -#line 543 "parse.y" -{ yyval.ttype = build_parse_node (SCOPE_REF, global_namespace, yyvsp[0].ttype); ; - break;} -case 36: -#line 545 "parse.y" -{ yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 37: -#line 550 "parse.y" -{ begin_only_namespace_names (); ; - break;} -case 38: -#line 552 "parse.y" -{ - end_only_namespace_names (); - /* If no declaration was found, the using-directive is - invalid. Since that was not reported, we need the - identifier for the error message. */ - if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE && lastiddecl) - yyvsp[-1].ttype = lastiddecl; - do_using_directive (yyvsp[-1].ttype); - ; - break;} -case 39: -#line 565 "parse.y" -{ - if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) - yyval.ttype = lastiddecl; - got_scope = yyval.ttype; - ; - break;} -case 40: -#line 571 "parse.y" -{ - yyval.ttype = yyvsp[-1].ttype; - if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) - yyval.ttype = lastiddecl; - got_scope = yyval.ttype; - ; - break;} -case 43: -#line 582 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 44: -#line 584 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 45: -#line 589 "parse.y" -{ push_lang_context (yyvsp[0].ttype); ; - break;} -case 46: -#line 591 "parse.y" -{ if (current_lang_name != yyvsp[0].ttype) - cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name); - pop_lang_context (); push_lang_context (yyvsp[0].ttype); ; - break;} -case 47: -#line 598 "parse.y" -{ begin_template_parm_list (); ; - break;} -case 48: -#line 600 "parse.y" -{ yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ; - break;} -case 49: -#line 602 "parse.y" -{ begin_specialization(); - yyval.ttype = NULL_TREE; ; - break;} -case 50: -#line 608 "parse.y" -{ yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 51: -#line 610 "parse.y" -{ yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 52: -#line 615 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 53: -#line 617 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 54: -#line 621 "parse.y" -{ yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 55: -#line 623 "parse.y" -{ yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ; - break;} -case 56: -#line 628 "parse.y" -{ yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 57: -#line 640 "parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 58: -#line 642 "parse.y" -{ yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ; - break;} -case 59: -#line 644 "parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ; - break;} -case 60: -#line 646 "parse.y" -{ yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ; - break;} -case 61: -#line 648 "parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 62: -#line 650 "parse.y" -{ - if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL - && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM - && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL) - { - error ("invalid default template argument"); - yyvsp[0].ttype = error_mark_node; - } - yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype); - ; - break;} -case 63: -#line 664 "parse.y" -{ finish_template_decl (yyvsp[-1].ttype); ; - break;} -case 64: -#line 666 "parse.y" -{ finish_template_decl (yyvsp[-1].ttype); ; - break;} -case 65: -#line 671 "parse.y" -{ if (pending_inlines) do_pending_inlines (); ; - break;} -case 66: -#line 673 "parse.y" -{ if (pending_inlines) do_pending_inlines (); ; - break;} -case 67: -#line 675 "parse.y" -{ if (pending_inlines) do_pending_inlines (); ; - break;} -case 68: -#line 677 "parse.y" -{ if (pending_inlines) do_pending_inlines (); - pop_lang_context (); ; - break;} -case 69: -#line 680 "parse.y" -{ if (pending_inlines) do_pending_inlines (); - pop_lang_context (); ; - break;} -case 70: -#line 683 "parse.y" -{ pedantic = yyvsp[-1].itype; ; - break;} -case 72: -#line 689 "parse.y" -{; - break;} -case 73: -#line 691 "parse.y" -{ note_list_got_semicolon (yyvsp[-2].ftype.t); ; - break;} -case 74: -#line 693 "parse.y" -{ maybe_process_partial_specialization (yyvsp[-1].ftype.t); - note_got_semicolon (yyvsp[-1].ftype.t); ; - break;} -case 76: -#line 700 "parse.y" -{; - break;} -case 77: -#line 702 "parse.y" -{ note_list_got_semicolon (yyvsp[-2].ftype.t); ; - break;} -case 78: -#line 704 "parse.y" -{ pedwarn ("empty declaration"); ; - break;} -case 80: -#line 707 "parse.y" -{ - tree t, attrs; - split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs); - shadow_tag (t); - note_list_got_semicolon (yyvsp[-1].ftype.t); - ; - break;} -case 84: -#line 720 "parse.y" -{ yyval.itype = 0; ; - break;} -case 85: -#line 722 "parse.y" -{ yyval.itype = 1; ; - break;} -case 91: -#line 738 "parse.y" -{ expand_body (finish_function ((int)yyvsp[-1].itype)); ; - break;} -case 92: -#line 740 "parse.y" -{ expand_body (finish_function ((int)yyvsp[0].itype)); ; - break;} -case 93: -#line 742 "parse.y" -{ ; - break;} -case 94: -#line 747 "parse.y" -{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ; - break;} -case 95: -#line 749 "parse.y" -{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 96: -#line 751 "parse.y" -{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); - yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); - ; - break;} -case 97: -#line 755 "parse.y" -{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ; - break;} -case 98: -#line 757 "parse.y" -{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 99: -#line 759 "parse.y" -{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); - yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); - ; - break;} -case 100: -#line 763 "parse.y" -{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ; - break;} -case 101: -#line 765 "parse.y" -{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 102: -#line 767 "parse.y" -{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); - yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); - ; - break;} -case 103: -#line 771 "parse.y" -{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ; - break;} -case 104: -#line 773 "parse.y" -{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 105: -#line 775 "parse.y" -{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); - yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); - ; - break;} -case 106: -#line 782 "parse.y" -{ check_for_new_type ("return type", yyvsp[-1].ftype); - if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype)) - YYERROR1; ; - break;} -case 107: -#line 786 "parse.y" -{ if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype)) - YYERROR1; ; - break;} -case 108: -#line 789 "parse.y" -{ if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype)) - YYERROR1; ; - break;} -case 109: -#line 792 "parse.y" -{ if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype)) - YYERROR1; ; - break;} -case 110: -#line 795 "parse.y" -{ if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype)) - YYERROR1; ; - break;} -case 111: -#line 801 "parse.y" -{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 112: -#line 803 "parse.y" -{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 113: -#line 805 "parse.y" -{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 114: -#line 807 "parse.y" -{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 115: -#line 814 "parse.y" -{ yyval.ttype = parse_method (yyvsp[0].ttype, yyvsp[-1].ftype.t, yyvsp[-1].ftype.lookups); - rest_of_mdef: - if (! yyval.ttype) - YYERROR1; - if (yychar == YYEMPTY) - yychar = YYLEX; - reinit_parse_for_method (yychar, yyval.ttype); ; - break;} -case 116: -#line 822 "parse.y" -{ yyval.ttype = parse_method (yyvsp[0].ttype, NULL_TREE, NULL_TREE); - goto rest_of_mdef; ; - break;} -case 117: -#line 825 "parse.y" -{ yyval.ttype = parse_method (yyvsp[0].ttype, yyvsp[-1].ftype.t, yyvsp[-1].ftype.lookups); goto rest_of_mdef;; - break;} -case 118: -#line 827 "parse.y" -{ yyval.ttype = parse_method (yyvsp[0].ttype, yyvsp[-1].ftype.t, yyvsp[-1].ftype.lookups); goto rest_of_mdef;; - break;} -case 119: -#line 829 "parse.y" -{ yyval.ttype = parse_method (yyvsp[0].ttype, NULL_TREE, NULL_TREE); - goto rest_of_mdef; ; - break;} -case 120: -#line 832 "parse.y" -{ yyval.ttype = parse_method (yyvsp[0].ttype, yyvsp[-1].ftype.t, yyvsp[-1].ftype.lookups); goto rest_of_mdef;; - break;} -case 121: -#line 834 "parse.y" -{ yyval.ttype = parse_method (yyvsp[0].ttype, NULL_TREE, NULL_TREE); - goto rest_of_mdef; ; - break;} -case 122: -#line 840 "parse.y" -{ - if (! current_function_parms_stored) - store_parm_decls (); - yyval.ttype = yyvsp[0].ttype; - ; - break;} -case 123: -#line 849 "parse.y" -{ finish_named_return_value (yyval.ttype, yyvsp[0].ttype); ; - break;} -case 124: -#line 851 "parse.y" -{ finish_named_return_value (yyval.ttype, yyvsp[-1].ttype); ; - break;} -case 125: -#line 853 "parse.y" -{ finish_named_return_value (yyval.ttype, NULL_TREE); ; - break;} -case 126: -#line 858 "parse.y" -{ - if (yyvsp[0].ftype.new_type_flag == 0) - error ("no base or member initializers given following ':'"); - - finish_mem_initializers (yyvsp[0].ftype.t); - ; - break;} -case 127: -#line 868 "parse.y" -{ - if (! current_function_parms_stored) - store_parm_decls (); - - if (DECL_CONSTRUCTOR_P (current_function_decl)) - /* Make a contour for the initializer list. */ - do_pushlevel (); - else if (current_class_type == NULL_TREE) - error ("base initializers not allowed for non-member functions"); - else if (! DECL_CONSTRUCTOR_P (current_function_decl)) - error ("only constructors take base initializers"); - ; - break;} -case 128: -#line 884 "parse.y" -{ - yyval.ftype.new_type_flag = 0; - yyval.ftype.t = NULL_TREE; - ; - break;} -case 129: -#line 889 "parse.y" -{ - yyval.ftype.new_type_flag = 1; - yyval.ftype.t = yyvsp[0].ttype; - ; - break;} -case 130: -#line 894 "parse.y" -{ - if (yyvsp[0].ttype) - { - yyval.ftype.new_type_flag = 1; - TREE_CHAIN (yyvsp[0].ttype) = yyvsp[-2].ftype.t; - yyval.ftype.t = yyvsp[0].ttype; - } - else - yyval.ftype = yyvsp[-2].ftype; - ; - break;} -case 132: -#line 909 "parse.y" -{ - if (current_class_name) - pedwarn ("anachronistic old style base class initializer"); - yyval.ttype = expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype); - ; - break;} -case 133: -#line 915 "parse.y" -{ - if (current_class_name) - pedwarn ("anachronistic old style base class initializer"); - yyval.ttype = expand_member_init (current_class_ref, - NULL_TREE, - void_type_node); - ; - break;} -case 134: -#line 923 "parse.y" -{ yyval.ttype = expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 135: -#line 925 "parse.y" -{ yyval.ttype = expand_member_init (current_class_ref, yyvsp[-1].ttype, - void_type_node); ; - break;} -case 136: -#line 928 "parse.y" -{ yyval.ttype = expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 137: -#line 930 "parse.y" -{ yyval.ttype = expand_member_init (current_class_ref, yyvsp[-1].ttype, - void_type_node); ; - break;} -case 138: -#line 933 "parse.y" -{ yyval.ttype = expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 139: -#line 935 "parse.y" -{ yyval.ttype = expand_member_init (current_class_ref, yyvsp[-1].ttype, - void_type_node); ; - break;} -case 140: -#line 938 "parse.y" -{ yyval.ttype = NULL_TREE ; - break;} -case 152: -#line 963 "parse.y" -{ do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE); - yyungetc (';', 1); ; - break;} -case 154: -#line 967 "parse.y" -{ tree specs = strip_attrs (yyvsp[-1].ftype.t); - do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 156: -#line 971 "parse.y" -{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 158: -#line 974 "parse.y" -{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 160: -#line 977 "parse.y" -{ do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype); - yyungetc (';', 1); ; - break;} -case 162: -#line 982 "parse.y" -{ tree specs = strip_attrs (yyvsp[-1].ftype.t); - do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ; - break;} -case 164: -#line 986 "parse.y" -{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ; - break;} -case 166: -#line 989 "parse.y" -{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ; - break;} -case 168: -#line 994 "parse.y" -{ begin_explicit_instantiation(); ; - break;} -case 169: -#line 997 "parse.y" -{ end_explicit_instantiation(); ; - break;} -case 170: -#line 1006 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 171: -#line 1009 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 174: -#line 1017 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 175: -#line 1022 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 176: -#line 1026 "parse.y" -{ - if (yychar == YYEMPTY) - yychar = YYLEX; - - yyval.ttype = finish_template_type (yyvsp[-3].ttype, yyvsp[-1].ttype, - yychar == SCOPE); - ; - break;} -case 178: -#line 1037 "parse.y" -{ - /* Handle `Class>' without space in the `>>' */ - pedwarn ("`>>' should be `> >' in template class name"); - yyungetc ('>', 1); - ; - break;} -case 179: -#line 1046 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 181: -#line 1052 "parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; - break;} -case 182: -#line 1054 "parse.y" -{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; - break;} -case 183: -#line 1059 "parse.y" -{ yyval.ttype = groktypename (yyvsp[0].ftype.t); ; - break;} -case 184: -#line 1061 "parse.y" -{ - yyval.ttype = lastiddecl; - if (DECL_TEMPLATE_TEMPLATE_PARM_P (yyval.ttype)) - yyval.ttype = TREE_TYPE (yyval.ttype); - ; - break;} -case 186: -#line 1071 "parse.y" -{ yyval.code = NEGATE_EXPR; ; - break;} -case 187: -#line 1073 "parse.y" -{ yyval.code = CONVERT_EXPR; ; - break;} -case 188: -#line 1075 "parse.y" -{ yyval.code = PREINCREMENT_EXPR; ; - break;} -case 189: -#line 1077 "parse.y" -{ yyval.code = PREDECREMENT_EXPR; ; - break;} -case 190: -#line 1079 "parse.y" -{ yyval.code = TRUTH_NOT_EXPR; ; - break;} -case 191: -#line 1084 "parse.y" -{ yyval.ttype = build_x_compound_expr (yyval.ttype); ; - break;} -case 193: -#line 1090 "parse.y" -{ error ("ISO C++ forbids an empty condition for `%s'", - cond_stmt_keyword); - yyval.ttype = integer_zero_node; ; - break;} -case 194: -#line 1094 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 195: -#line 1099 "parse.y" -{ error ("ISO C++ forbids an empty condition for `%s'", - cond_stmt_keyword); - yyval.ttype = integer_zero_node; ; - break;} -case 196: -#line 1103 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 197: -#line 1108 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 199: -#line 1111 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 200: -#line 1116 "parse.y" -{ { - tree d; - for (d = getdecls (); d; d = TREE_CHAIN (d)) - if (TREE_CODE (d) == TYPE_DECL) { - tree s = TREE_TYPE (d); - if (TREE_CODE (s) == RECORD_TYPE) - cp_error ("definition of class `%T' in condition", s); - else if (TREE_CODE (s) == ENUMERAL_TYPE) - cp_error ("definition of enum `%T' in condition", s); - } - } - current_declspecs = yyvsp[-4].ftype.t; - yyval.ttype = parse_decl (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); - ; - break;} -case 201: -#line 1131 "parse.y" -{ - parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype); - yyval.ttype = convert_from_reference (yyvsp[-1].ttype); - if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE) - cp_error ("definition of array `%#D' in condition", yyval.ttype); - ; - break;} -case 207: -#line 1149 "parse.y" -{ yyval.ttype = begin_compound_stmt (1); ; - break;} -case 208: -#line 1151 "parse.y" -{ finish_compound_stmt (1, yyvsp[-1].ttype); ; - break;} -case 210: -#line 1158 "parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, - build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; - break;} -case 211: -#line 1161 "parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, - build_tree_list (NULL_TREE, error_mark_node)); ; - break;} -case 212: -#line 1164 "parse.y" -{ chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; - break;} -case 213: -#line 1166 "parse.y" -{ chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ; - break;} -case 214: -#line 1171 "parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; - break;} -case 216: -#line 1177 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 217: -#line 1180 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; - pedantic = yyvsp[-1].itype; ; - break;} -case 218: -#line 1183 "parse.y" -{ yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ; - break;} -case 219: -#line 1185 "parse.y" -{ yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ; - break;} -case 220: -#line 1187 "parse.y" -{ yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ; - break;} -case 221: -#line 1189 "parse.y" -{ yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ; - break;} -case 222: -#line 1192 "parse.y" -{ if (pedantic) - pedwarn ("ISO C++ forbids `&&'"); - yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ; - break;} -case 223: -#line 1196 "parse.y" -{ yyval.ttype = expr_sizeof (yyvsp[0].ttype); ; - break;} -case 224: -#line 1198 "parse.y" -{ yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); - check_for_new_type ("sizeof", yyvsp[-1].ftype); ; - break;} -case 225: -#line 1201 "parse.y" -{ yyval.ttype = grok_alignof (yyvsp[0].ttype); ; - break;} -case 226: -#line 1203 "parse.y" -{ yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); - check_for_new_type ("alignof", yyvsp[-1].ftype); ; - break;} -case 227: -#line 1209 "parse.y" -{ yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); - check_for_new_type ("new", yyvsp[0].ftype); ; - break;} -case 228: -#line 1212 "parse.y" -{ yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); - check_for_new_type ("new", yyvsp[-1].ftype); ; - break;} -case 229: -#line 1215 "parse.y" -{ yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); - check_for_new_type ("new", yyvsp[0].ftype); ; - break;} -case 230: -#line 1218 "parse.y" -{ yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); - check_for_new_type ("new", yyvsp[-1].ftype); ; - break;} -case 231: -#line 1222 "parse.y" -{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t), - NULL_TREE, yyvsp[-3].itype); - check_for_new_type ("new", yyvsp[-1].ftype); ; - break;} -case 232: -#line 1226 "parse.y" -{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype); - check_for_new_type ("new", yyvsp[-2].ftype); ; - break;} -case 233: -#line 1229 "parse.y" -{ yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype); - check_for_new_type ("new", yyvsp[-1].ftype); ; - break;} -case 234: -#line 1232 "parse.y" -{ yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); - check_for_new_type ("new", yyvsp[-2].ftype); ; - break;} -case 235: -#line 1236 "parse.y" -{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ; - break;} -case 236: -#line 1238 "parse.y" -{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype); - if (yychar == YYEMPTY) - yychar = YYLEX; ; - break;} -case 237: -#line 1242 "parse.y" -{ yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype); - if (yychar == YYEMPTY) - yychar = YYLEX; ; - break;} -case 238: -#line 1246 "parse.y" -{ yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ; - break;} -case 239: -#line 1248 "parse.y" -{ yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ; - break;} -case 240: -#line 1250 "parse.y" -{ yyval.ttype = build_x_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ftype.t)); - check_for_new_type ("__builtin_va_arg", yyvsp[-1].ftype); ; - break;} -case 241: -#line 1256 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 242: -#line 1258 "parse.y" -{ cp_pedwarn ("old style placement syntax, use () instead"); - yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 243: -#line 1264 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 244: -#line 1266 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 245: -#line 1268 "parse.y" -{ - cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t); - yyval.ttype = error_mark_node; - ; - break;} -case 246: -#line 1276 "parse.y" -{ - if (pedantic) - pedwarn ("ISO C++ forbids initialization of new expression with `='"); - if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST - && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR) - yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); - else - yyval.ttype = yyvsp[0].ttype; - ; - break;} -case 247: -#line 1290 "parse.y" -{ yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); - yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE); - check_for_new_type ("cast", yyvsp[-1].ftype); ; - break;} -case 248: -#line 1294 "parse.y" -{ yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); - yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE); - check_for_new_type ("cast", yyvsp[-1].ftype); ; - break;} -case 250: -#line 1302 "parse.y" -{ yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ; - break;} -case 251: -#line 1304 "parse.y" -{ - tree init = build_nt (CONSTRUCTOR, NULL_TREE, - nreverse (yyvsp[-2].ttype)); - if (pedantic) - pedwarn ("ISO C++ forbids constructor-expressions"); - /* Indicate that this was a GNU C constructor expression. */ - TREE_HAS_CONSTRUCTOR (init) = 1; - - yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init); - ; - break;} -case 253: -#line 1320 "parse.y" -{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 254: -#line 1322 "parse.y" -{ yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ; - break;} -case 255: -#line 1324 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 256: -#line 1326 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 257: -#line 1328 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 258: -#line 1330 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 259: -#line 1332 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 260: -#line 1334 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 261: -#line 1336 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 262: -#line 1338 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 263: -#line 1340 "parse.y" -{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 264: -#line 1342 "parse.y" -{ yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 265: -#line 1344 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 266: -#line 1346 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 267: -#line 1348 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 268: -#line 1350 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 269: -#line 1352 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 270: -#line 1354 "parse.y" -{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 271: -#line 1356 "parse.y" -{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 272: -#line 1358 "parse.y" -{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 273: -#line 1360 "parse.y" -{ yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); - if (yyval.ttype != error_mark_node) - C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ; - break;} -case 274: -#line 1364 "parse.y" -{ yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ; - break;} -case 275: -#line 1366 "parse.y" -{ yyval.ttype = build_throw (NULL_TREE); ; - break;} -case 276: -#line 1368 "parse.y" -{ yyval.ttype = build_throw (yyvsp[0].ttype); ; - break;} -case 278: -#line 1375 "parse.y" -{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 279: -#line 1377 "parse.y" -{ yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ; - break;} -case 280: -#line 1379 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 281: -#line 1381 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 282: -#line 1383 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 283: -#line 1385 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 284: -#line 1387 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 285: -#line 1389 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 286: -#line 1391 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 287: -#line 1393 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 288: -#line 1395 "parse.y" -{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 289: -#line 1397 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 290: -#line 1399 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 291: -#line 1401 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 292: -#line 1403 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 293: -#line 1405 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 294: -#line 1407 "parse.y" -{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 295: -#line 1409 "parse.y" -{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 296: -#line 1411 "parse.y" -{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 297: -#line 1413 "parse.y" -{ yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); - if (yyval.ttype != error_mark_node) - C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ; - break;} -case 298: -#line 1417 "parse.y" -{ yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ; - break;} -case 299: -#line 1419 "parse.y" -{ yyval.ttype = build_throw (NULL_TREE); ; - break;} -case 300: -#line 1421 "parse.y" -{ yyval.ttype = build_throw (yyvsp[0].ttype); ; - break;} -case 301: -#line 1426 "parse.y" -{ yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ; - break;} -case 302: -#line 1428 "parse.y" -{ yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ; - break;} -case 308: -#line 1437 "parse.y" -{ - /* If lastiddecl is a TREE_LIST, it's a baselink, which - means that we're in an expression like S::f, so - don't do_identifier; we only do that for unqualified - identifiers. */ - if (lastiddecl && TREE_CODE (lastiddecl) != TREE_LIST) - yyval.ttype = do_identifier (yyvsp[-1].ttype, 1, NULL_TREE); - else - yyval.ttype = yyvsp[-1].ttype; - ; - break;} -case 309: -#line 1450 "parse.y" -{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; - break;} -case 310: -#line 1452 "parse.y" -{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; - break;} -case 311: -#line 1457 "parse.y" -{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 312: -#line 1459 "parse.y" -{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 313: -#line 1462 "parse.y" -{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 318: -#line 1474 "parse.y" -{ - /* Provide support for '(' attributes '*' declarator ')' - etc */ - yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); - ; - break;} -case 320: -#line 1484 "parse.y" -{ yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ; - break;} -case 321: -#line 1486 "parse.y" -{ yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ; - break;} -case 322: -#line 1488 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 323: -#line 1493 "parse.y" -{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 324: -#line 1495 "parse.y" -{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 328: -#line 1505 "parse.y" -{ yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ; - break;} -case 329: -#line 1510 "parse.y" -{ - if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR) - yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0)); - else - yyval.ttype = finish_id_expr (yyvsp[0].ttype); - ; - break;} -case 332: -#line 1519 "parse.y" -{ - yyval.ttype = combine_strings (yyval.ttype); - /* combine_strings doesn't set up TYPE_MAIN_VARIANT of - a const array the way we want, so fix it. */ - if (flag_const_strings) - TREE_TYPE (yyval.ttype) = build_cplus_array_type - (TREE_TYPE (TREE_TYPE (yyval.ttype)), - TYPE_DOMAIN (TREE_TYPE (yyval.ttype))); - ; - break;} -case 333: -#line 1529 "parse.y" -{ yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ; - break;} -case 334: -#line 1531 "parse.y" -{ yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype); - yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ; - break;} -case 335: -#line 1534 "parse.y" -{ yyval.ttype = error_mark_node; ; - break;} -case 336: -#line 1536 "parse.y" -{ tree scope = current_scope (); - if (!scope || TREE_CODE (scope) != FUNCTION_DECL) - { - error ("braced-group within expression allowed only inside a function"); - YYERROR; - } - if (pedantic) - pedwarn ("ISO C++ forbids braced-groups within expressions"); - yyval.ttype = begin_stmt_expr (); - ; - break;} -case 337: -#line 1547 "parse.y" -{ yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype); ; - break;} -case 338: -#line 1552 "parse.y" -{ yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ; - break;} -case 339: -#line 1554 "parse.y" -{ yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ; - break;} -case 340: -#line 1556 "parse.y" -{ yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ; - break;} -case 341: -#line 1558 "parse.y" -{ yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ; - break;} -case 342: -#line 1560 "parse.y" -{ yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ; - break;} -case 343: -#line 1562 "parse.y" -{ yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ; - break;} -case 344: -#line 1564 "parse.y" -{ yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ; - break;} -case 345: -#line 1567 "parse.y" -{ yyval.ttype = finish_this_expr (); ; - break;} -case 346: -#line 1569 "parse.y" -{ - /* This is a C cast in C++'s `functional' notation - using the "implicit int" extension so that: - `const (3)' is equivalent to `const int (3)'. */ - tree type; - - type = hash_tree_cons (NULL_TREE, yyvsp[-3].ttype, NULL_TREE); - type = groktypename (build_decl_list (type, NULL_TREE)); - yyval.ttype = build_functional_cast (type, yyvsp[-1].ttype); - ; - break;} -case 348: -#line 1581 "parse.y" -{ tree type = groktypename (yyvsp[-4].ftype.t); - check_for_new_type ("dynamic_cast", yyvsp[-4].ftype); - yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ; - break;} -case 349: -#line 1585 "parse.y" -{ tree type = groktypename (yyvsp[-4].ftype.t); - check_for_new_type ("static_cast", yyvsp[-4].ftype); - yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ; - break;} -case 350: -#line 1589 "parse.y" -{ tree type = groktypename (yyvsp[-4].ftype.t); - check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype); - yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ; - break;} -case 351: -#line 1593 "parse.y" -{ tree type = groktypename (yyvsp[-4].ftype.t); - check_for_new_type ("const_cast", yyvsp[-4].ftype); - yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ; - break;} -case 352: -#line 1597 "parse.y" -{ yyval.ttype = build_typeid (yyvsp[-1].ttype); ; - break;} -case 353: -#line 1599 "parse.y" -{ tree type = groktypename (yyvsp[-1].ftype.t); - check_for_new_type ("typeid", yyvsp[-1].ftype); - yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ; - break;} -case 354: -#line 1603 "parse.y" -{ yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ; - break;} -case 355: -#line 1605 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 356: -#line 1607 "parse.y" -{ - got_scope = NULL_TREE; - if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) - yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); - else - yyval.ttype = yyvsp[0].ttype; - ; - break;} -case 357: -#line 1615 "parse.y" -{ yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ; - break;} -case 358: -#line 1617 "parse.y" -{ yyval.ttype = finish_qualified_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 359: -#line 1619 "parse.y" -{ yyval.ttype = finish_qualified_call_expr (yyvsp[-1].ttype, NULL_TREE); ; - break;} -case 360: -#line 1621 "parse.y" -{ - yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); - ; - break;} -case 361: -#line 1625 "parse.y" -{ yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; - break;} -case 362: -#line 1627 "parse.y" -{ yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ; - break;} -case 363: -#line 1629 "parse.y" -{ yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ; - break;} -case 364: -#line 1631 "parse.y" -{ if (processing_template_decl) - yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, yyvsp[0].ttype); - else - yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ; - break;} -case 365: -#line 1636 "parse.y" -{ yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; - break;} -case 366: -#line 1638 "parse.y" -{ yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ; - break;} -case 367: -#line 1640 "parse.y" -{ yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; - break;} -case 368: -#line 1642 "parse.y" -{ yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ; - break;} -case 369: -#line 1645 "parse.y" -{ yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 370: -#line 1647 "parse.y" -{ yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; - break;} -case 371: -#line 1649 "parse.y" -{ - yyval.ttype = error_mark_node; - ; - break;} -case 372: -#line 1694 "parse.y" -{ yyval.itype = 0; ; - break;} -case 373: -#line 1696 "parse.y" -{ got_scope = NULL_TREE; yyval.itype = 1; ; - break;} -case 374: -#line 1701 "parse.y" -{ yyval.itype = 0; ; - break;} -case 375: -#line 1703 "parse.y" -{ got_scope = NULL_TREE; yyval.itype = 1; ; - break;} -case 376: -#line 1708 "parse.y" -{ yyval.ttype = boolean_true_node; ; - break;} -case 377: -#line 1710 "parse.y" -{ yyval.ttype = boolean_false_node; ; - break;} -case 379: -#line 1717 "parse.y" -{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; - break;} -case 380: -#line 1722 "parse.y" -{ - if (! current_function_parms_stored) - store_parm_decls (); - setup_vtbl_ptr (NULL_TREE, NULL_TREE); - ; - break;} -case 381: -#line 1731 "parse.y" -{ got_object = TREE_TYPE (yyval.ttype); ; - break;} -case 382: -#line 1733 "parse.y" -{ - yyval.ttype = build_x_arrow (yyval.ttype); - got_object = TREE_TYPE (yyval.ttype); - ; - break;} -case 383: -#line 1741 "parse.y" -{ - if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t))) - note_got_semicolon (yyvsp[-2].ftype.t); - ; - break;} -case 384: -#line 1746 "parse.y" -{ - note_list_got_semicolon (yyvsp[-2].ftype.t); - ; - break;} -case 385: -#line 1750 "parse.y" -{; - break;} -case 386: -#line 1752 "parse.y" -{ - shadow_tag (yyvsp[-1].ftype.t); - note_list_got_semicolon (yyvsp[-1].ftype.t); - ; - break;} -case 387: -#line 1757 "parse.y" -{ warning ("empty declaration"); ; - break;} -case 388: -#line 1759 "parse.y" -{ pedantic = yyvsp[-1].itype; ; - break;} -case 391: -#line 1773 "parse.y" -{ yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (), - NULL_TREE, NULL_TREE); ; - break;} -case 392: -#line 1776 "parse.y" -{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE, - NULL_TREE); ; - break;} -case 393: -#line 1783 "parse.y" -{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; - break;} -case 394: -#line 1786 "parse.y" -{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; - break;} -case 395: -#line 1789 "parse.y" -{ yyval.ftype.t = build_decl_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t), - yyvsp[0].ttype); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; - break;} -case 396: -#line 1793 "parse.y" -{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); - yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; - break;} -case 397: -#line 1796 "parse.y" -{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); - yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; - break;} -case 398: -#line 1807 "parse.y" -{ yyval.ftype.lookups = type_lookups; ; - break;} -case 399: -#line 1809 "parse.y" -{ yyval.ftype.lookups = type_lookups; ; - break;} -case 400: -#line 1814 "parse.y" -{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); - yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; - break;} -case 401: -#line 1817 "parse.y" -{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; - break;} -case 402: -#line 1820 "parse.y" -{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); - yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; - break;} -case 403: -#line 1823 "parse.y" -{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; - break;} -case 404: -#line 1826 "parse.y" -{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; - break;} -case 405: -#line 1829 "parse.y" -{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, - chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ftype.t))); - yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; - break;} -case 406: -#line 1836 "parse.y" -{ if (extra_warnings) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER (yyval.ttype)); - yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ; - break;} -case 407: -#line 1841 "parse.y" -{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ; - break;} -case 408: -#line 1843 "parse.y" -{ if (extra_warnings) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER (yyvsp[0].ttype)); - yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; - break;} -case 409: -#line 1848 "parse.y" -{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 410: -#line 1850 "parse.y" -{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; - break;} -case 411: -#line 1869 "parse.y" -{ yyval.ftype.lookups = NULL_TREE; TREE_STATIC (yyval.ftype.t) = 1; ; - break;} -case 412: -#line 1871 "parse.y" -{ - yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); - yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; - ; - break;} -case 413: -#line 1876 "parse.y" -{ - yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); - TREE_STATIC (yyval.ftype.t) = 1; - ; - break;} -case 414: -#line 1881 "parse.y" -{ - if (extra_warnings && TREE_STATIC (yyval.ftype.t)) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER (yyvsp[0].ttype)); - yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); - TREE_STATIC (yyval.ftype.t) = TREE_STATIC (yyvsp[-1].ftype.t); - ; - break;} -case 415: -#line 1889 "parse.y" -{ yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ftype.t); ; - break;} -case 416: -#line 1891 "parse.y" -{ - yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); - yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; - ; - break;} -case 417: -#line 1905 "parse.y" -{ yyval.ftype.t = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); - yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; - break;} -case 418: -#line 1908 "parse.y" -{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); - yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; - break;} -case 419: -#line 1911 "parse.y" -{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; - break;} -case 420: -#line 1914 "parse.y" -{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; - break;} -case 421: -#line 1920 "parse.y" -{ yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ; - break;} -case 422: -#line 1922 "parse.y" -{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ; - break;} -case 423: -#line 1931 "parse.y" -{ yyval.ftype.lookups = NULL_TREE; ; - break;} -case 424: -#line 1933 "parse.y" -{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ; - break;} -case 425: -#line 1935 "parse.y" -{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ; - break;} -case 426: -#line 1937 "parse.y" -{ yyval.ftype.t = finish_typeof (yyvsp[-1].ttype); - yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ; - break;} -case 427: -#line 1940 "parse.y" -{ yyval.ftype.t = groktypename (yyvsp[-1].ftype.t); - yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ; - break;} -case 428: -#line 1943 "parse.y" -{ tree type = TREE_TYPE (yyvsp[-1].ttype); - - yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; - if (IS_AGGR_TYPE (type)) - { - sorry ("sigof type specifier"); - yyval.ftype.t = type; - } - else - { - error ("`sigof' applied to non-aggregate expression"); - yyval.ftype.t = error_mark_node; - } - ; - break;} -case 429: -#line 1958 "parse.y" -{ tree type = groktypename (yyvsp[-1].ftype.t); - - yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; - if (IS_AGGR_TYPE (type)) - { - sorry ("sigof type specifier"); - yyval.ftype.t = type; - } - else - { - error("`sigof' applied to non-aggregate type"); - yyval.ftype.t = error_mark_node; - } - ; - break;} -case 430: -#line 1978 "parse.y" -{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; - break;} -case 431: -#line 1980 "parse.y" -{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; - break;} -case 434: -#line 1987 "parse.y" -{ check_multiple_declarators (); ; - break;} -case 436: -#line 1993 "parse.y" -{ check_multiple_declarators (); ; - break;} -case 438: -#line 1999 "parse.y" -{ check_multiple_declarators (); ; - break;} -case 439: -#line 2004 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 440: -#line 2006 "parse.y" -{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 441: -#line 2011 "parse.y" -{ yyval.ttype = parse_decl (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ; - break;} -case 442: -#line 2014 "parse.y" -{ parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; - break;} -case 443: -#line 2016 "parse.y" -{ - yyval.ttype = parse_decl (yyvsp[-2].ttype, yyvsp[0].ttype, 0); - parse_end_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype); - ; - break;} -case 444: -#line 2030 "parse.y" -{ yyval.ttype = parse_decl0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, - yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, 1); ; - break;} -case 445: -#line 2035 "parse.y" -{ parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; - break;} -case 446: -#line 2037 "parse.y" -{ tree d = parse_decl0 (yyvsp[-2].ttype, yyvsp[-3].ftype.t, - yyvsp[-3].ftype.lookups, yyvsp[0].ttype, 0); - parse_end_decl (d, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 447: -#line 2044 "parse.y" -{; - break;} -case 448: -#line 2049 "parse.y" -{; - break;} -case 449: -#line 2054 "parse.y" -{ /* Set things up as initdcl0_innards expects. */ - yyvsp[0].ttype = yyvsp[-1].ttype; - yyvsp[-1].ttype = NULL_TREE; ; - break;} -case 450: -#line 2058 "parse.y" -{; - break;} -case 451: -#line 2060 "parse.y" -{ tree d = parse_decl0 (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, yyvsp[0].ttype, 0); - parse_end_decl (d, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 452: -#line 2068 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 453: -#line 2070 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 454: -#line 2075 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 455: -#line 2077 "parse.y" -{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 456: -#line 2082 "parse.y" -{ yyval.ttype = yyvsp[-2].ttype; ; - break;} -case 457: -#line 2087 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 458: -#line 2089 "parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 459: -#line 2094 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 460: -#line 2096 "parse.y" -{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; - break;} -case 461: -#line 2098 "parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; - break;} -case 462: -#line 2100 "parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; - break;} -case 463: -#line 2102 "parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 468: -#line 2118 "parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 469: -#line 2120 "parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; - break;} -case 470: -#line 2125 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 471: -#line 2127 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 473: -#line 2135 "parse.y" -{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE); - TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; - break;} -case 474: -#line 2138 "parse.y" -{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype)); - TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; - break;} -case 475: -#line 2141 "parse.y" -{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); - TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; - break;} -case 476: -#line 2144 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 477: -#line 2151 "parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; - break;} -case 478: -#line 2153 "parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; - break;} -case 479: -#line 2156 "parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 480: -#line 2158 "parse.y" -{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ; - break;} -case 481: -#line 2160 "parse.y" -{ yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ; - break;} -case 482: -#line 2165 "parse.y" -{ start_function (NULL_TREE, yyvsp[0].pi->fndecl, NULL_TREE, - (SF_DEFAULT | SF_PRE_PARSED - | SF_INCLASS_INLINE)); ; - break;} -case 483: -#line 2171 "parse.y" -{ - expand_body (finish_function ((int)yyvsp[-1].itype | 2)); - process_next_inline (yyvsp[-3].pi); - ; - break;} -case 484: -#line 2176 "parse.y" -{ - expand_body (finish_function ((int)yyvsp[0].itype | 2)); - process_next_inline (yyvsp[-2].pi); - ; - break;} -case 485: -#line 2181 "parse.y" -{ - finish_function (2); - process_next_inline (yyvsp[-2].pi); ; - break;} -case 488: -#line 2195 "parse.y" -{ replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ; - break;} -case 489: -#line 2197 "parse.y" -{ replace_defarg (yyvsp[-2].ttype, error_mark_node); ; - break;} -case 491: -#line 2202 "parse.y" -{ do_pending_defargs (); ; - break;} -case 492: -#line 2204 "parse.y" -{ do_pending_defargs (); ; - break;} -case 493: -#line 2209 "parse.y" -{ yyval.ttype = current_enum_type; - current_enum_type = start_enum (yyvsp[-1].ttype); ; - break;} -case 494: -#line 2212 "parse.y" -{ yyval.ftype.t = finish_enum (current_enum_type); - yyval.ftype.new_type_flag = 1; - current_enum_type = yyvsp[-2].ttype; - check_for_missing_semicolon (yyval.ftype.t); ; - break;} -case 495: -#line 2217 "parse.y" -{ yyval.ttype = current_enum_type; - current_enum_type = start_enum (make_anon_name ()); ; - break;} -case 496: -#line 2220 "parse.y" -{ yyval.ftype.t = finish_enum (current_enum_type); - yyval.ftype.new_type_flag = 1; - current_enum_type = yyvsp[-2].ttype; - check_for_missing_semicolon (yyval.ftype.t); ; - break;} -case 497: -#line 2225 "parse.y" -{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); - yyval.ftype.new_type_flag = 0; ; - break;} -case 498: -#line 2228 "parse.y" -{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); - yyval.ftype.new_type_flag = 0; ; - break;} -case 499: -#line 2231 "parse.y" -{ yyval.ftype.t = yyvsp[0].ttype; - yyval.ftype.new_type_flag = 0; - if (!processing_template_decl) - cp_pedwarn ("using `typename' outside of template"); ; - break;} -case 500: -#line 2237 "parse.y" -{ yyvsp[-1].ftype.t = begin_class_definition (yyvsp[-1].ftype.t); ; - break;} -case 501: -#line 2239 "parse.y" -{ - int semi; - - if (yychar == YYEMPTY) - yychar = YYLEX; - semi = yychar == ';'; - - yyval.ttype = finish_class_definition (yyvsp[-5].ftype.t, yyvsp[0].ttype, semi, - yyvsp[-5].ftype.new_type_flag); - ; - break;} -case 502: -#line 2250 "parse.y" -{ - begin_inline_definitions (); - ; - break;} -case 503: -#line 2254 "parse.y" -{ - finish_inline_definitions (); - yyval.ftype.t = yyvsp[-3].ttype; - yyval.ftype.new_type_flag = 1; - ; - break;} -case 504: -#line 2260 "parse.y" -{ - if (yyvsp[0].ftype.new_type_flag && yyvsp[0].ftype.t != error_mark_node) - pop_scope (CP_DECL_CONTEXT (TYPE_MAIN_DECL (yyvsp[0].ftype.t))); - yyval.ftype.new_type_flag = 0; - if (yyvsp[0].ftype.t == error_mark_node) - yyval.ftype.t = yyvsp[0].ftype.t; - else if (TYPE_BINFO (yyvsp[0].ftype.t) == NULL_TREE) - { - cp_error ("%T is not a class type", yyvsp[0].ftype.t); - yyval.ftype.t = error_mark_node; - } - else - { - yyval.ftype.t = yyvsp[0].ftype.t; - /* struct B: public A; is not accepted by the standard grammar. */ - if (CLASS_TYPE_P (yyval.ftype.t) - && TYPE_BINFO_BASETYPES (yyval.ftype.t) - && !COMPLETE_TYPE_P (yyval.ftype.t) - && ! TYPE_BEING_DEFINED (yyval.ftype.t)) - cp_error ("base clause without member specification for `%#T'", - yyval.ftype.t); - } - ; - break;} -case 508: -#line 2293 "parse.y" -{ if (pedantic && !in_system_header) - pedwarn ("comma at end of enumerator list"); ; - break;} -case 510: -#line 2300 "parse.y" -{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; - break;} -case 511: -#line 2302 "parse.y" -{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; - break;} -case 512: -#line 2304 "parse.y" -{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; - break;} -case 513: -#line 2306 "parse.y" -{ error ("no body nor ';' separates two class, struct or union declarations"); ; - break;} -case 514: -#line 2308 "parse.y" -{ yyval.ttype = build_decl_list (yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 515: -#line 2313 "parse.y" -{ - current_aggr = yyvsp[-1].ttype; - yyval.ttype = yyvsp[0].ttype; - ; - break;} -case 516: -#line 2321 "parse.y" -{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; - break;} -case 517: -#line 2323 "parse.y" -{ yyungetc ('{', 1); ; - break;} -case 518: -#line 2325 "parse.y" -{ yyungetc (':', 1); ; - break;} -case 519: -#line 2330 "parse.y" -{ - current_aggr = yyvsp[-2].ttype; - yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); - yyval.ftype.new_type_flag = 1; - ; - break;} -case 520: -#line 2336 "parse.y" -{ - current_aggr = yyvsp[-3].ttype; - yyval.ftype.t = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); - yyval.ftype.new_type_flag = 1; - ; - break;} -case 521: -#line 2342 "parse.y" -{ - current_aggr = yyvsp[-2].ttype; - yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype); - yyval.ftype.new_type_flag = 1; - ; - break;} -case 522: -#line 2348 "parse.y" -{ - current_aggr = yyvsp[-1].ttype; - yyval.ftype.t = yyvsp[0].ttype; - yyval.ftype.new_type_flag = 0; - ; - break;} -case 523: -#line 2354 "parse.y" -{ - current_aggr = yyvsp[-2].ttype; - yyval.ftype.t = yyvsp[0].ttype; - if (CP_DECL_CONTEXT (yyval.ftype.t)) - push_scope (CP_DECL_CONTEXT (yyval.ftype.t)); - yyval.ftype.new_type_flag = 1; - ; - break;} -case 524: -#line 2365 "parse.y" -{ - yyval.ftype.t = xref_tag (current_aggr, yyvsp[0].ttype, 1); - yyval.ftype.new_type_flag = 0; - ; - break;} -case 525: -#line 2370 "parse.y" -{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, 0); ; - break;} -case 526: -#line 2374 "parse.y" -{ - yyval.ftype.t = yyvsp[-1].ttype; - yyval.ftype.new_type_flag = 0; - if (yyvsp[0].ttype) - xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); - ; - break;} -case 527: -#line 2382 "parse.y" -{ - if (yyvsp[-1].ftype.t != error_mark_node) - { - yyval.ftype.t = TREE_TYPE (yyvsp[-1].ftype.t); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; - if (current_aggr == union_type_node - && TREE_CODE (yyval.ftype.t) != UNION_TYPE) - cp_pedwarn ("`union' tag used in declaring `%#T'", - yyval.ftype.t); - else if (TREE_CODE (yyval.ftype.t) == UNION_TYPE - && current_aggr != union_type_node) - cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ftype); - else if (TREE_CODE (yyval.ftype.t) == RECORD_TYPE) - /* We might be specializing a template with a different - class-key; deal. */ - CLASSTYPE_DECLARED_CLASS (yyval.ftype.t) - = (current_aggr == class_type_node); - if (yyvsp[0].ttype) - { - maybe_process_partial_specialization (yyval.ftype.t); - xref_basetypes (current_aggr, yyvsp[-1].ftype.t, yyval.ftype.t, yyvsp[0].ttype); - } - } - ; - break;} -case 528: -#line 2410 "parse.y" -{ yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), 0); - yyungetc ('{', 1); ; - break;} -case 529: -#line 2420 "parse.y" -{ - yyval.ftype.t = yyvsp[0].ttype; - yyval.ftype.new_type_flag = 0; - ; - break;} -case 531: -#line 2429 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 532: -#line 2431 "parse.y" -{ yyungetc(':', 1); yyval.ttype = NULL_TREE; ; - break;} -case 533: -#line 2433 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 535: -#line 2439 "parse.y" -{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; - break;} -case 536: -#line 2444 "parse.y" -{ yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype); ; - break;} -case 537: -#line 2446 "parse.y" -{ yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 538: -#line 2451 "parse.y" -{ if (yyval.ttype == error_mark_node) - ; - else if (!TYPE_P (yyval.ttype)) - yyval.ttype = error_mark_node; - else - yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ; - break;} -case 541: -#line 2463 "parse.y" -{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) - cp_error ("`%D' access", yyvsp[-1].ttype); - yyval.ttype = access_default_virtual_node; ; - break;} -case 542: -#line 2467 "parse.y" -{ - if (yyvsp[-2].ttype != access_default_virtual_node) - error ("multiple access specifiers"); - else if (yyvsp[-1].ttype == access_public_node) - yyval.ttype = access_public_virtual_node; - else if (yyvsp[-1].ttype == access_protected_node) - yyval.ttype = access_protected_virtual_node; - else /* $2 == access_private_node */ - yyval.ttype = access_private_virtual_node; - ; - break;} -case 543: -#line 2478 "parse.y" -{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) - cp_error ("`%D' access", yyvsp[-1].ttype); - else if (yyval.ttype == access_public_node) - yyval.ttype = access_public_virtual_node; - else if (yyval.ttype == access_protected_node) - yyval.ttype = access_protected_virtual_node; - else if (yyval.ttype == access_private_node) - yyval.ttype = access_private_virtual_node; - else - error ("multiple `virtual' specifiers"); - ; - break;} -case 548: -#line 2499 "parse.y" -{ - current_access_specifier = yyvsp[-1].ttype; - ; - break;} -case 549: -#line 2508 "parse.y" -{ - finish_member_declaration (yyvsp[0].ttype); - ; - break;} -case 550: -#line 2512 "parse.y" -{ - finish_member_declaration (yyvsp[0].ttype); - ; - break;} -case 552: -#line 2520 "parse.y" -{ error ("missing ';' before right brace"); - yyungetc ('}', 0); ; - break;} -case 553: -#line 2525 "parse.y" -{ yyval.ttype = finish_method (yyval.ttype); ; - break;} -case 554: -#line 2527 "parse.y" -{ yyval.ttype = finish_method (yyval.ttype); ; - break;} -case 555: -#line 2529 "parse.y" -{ yyval.ttype = finish_method (yyval.ttype); ; - break;} -case 556: -#line 2531 "parse.y" -{ yyval.ttype = finish_method (yyval.ttype); ; - break;} -case 557: -#line 2533 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 558: -#line 2535 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; - pedantic = yyvsp[-1].itype; ; - break;} -case 559: -#line 2538 "parse.y" -{ - if (yyvsp[0].ttype) - yyval.ttype = finish_member_template_decl (yyvsp[0].ttype); - else - /* The component was already processed. */ - yyval.ttype = NULL_TREE; - - finish_template_decl (yyvsp[-1].ttype); - ; - break;} -case 560: -#line 2548 "parse.y" -{ - yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t); - finish_template_decl (yyvsp[-2].ttype); - ; - break;} -case 561: -#line 2559 "parse.y" -{ - /* Most of the productions for component_decl only - allow the creation of one new member, so we call - finish_member_declaration in component_decl_list. - For this rule and the next, however, there can be - more than one member, e.g.: - - int i, j; - - and we need the first member to be fully - registered before the second is processed. - Therefore, the rules for components take care of - this processing. To avoid registering the - components more than once, we send NULL_TREE up - here; that lets finish_member_declaration know - that there is nothing to do. */ - if (!yyvsp[0].itype) - grok_x_components (yyvsp[-1].ftype.t); - yyval.ttype = NULL_TREE; - ; - break;} -case 562: -#line 2580 "parse.y" -{ - if (!yyvsp[0].itype) - grok_x_components (yyvsp[-1].ftype.t); - yyval.ttype = NULL_TREE; - ; - break;} -case 563: -#line 2586 "parse.y" -{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, - build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; - break;} -case 564: -#line 2589 "parse.y" -{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, - build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; - break;} -case 565: -#line 2592 "parse.y" -{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; - break;} -case 566: -#line 2594 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 567: -#line 2605 "parse.y" -{ tree specs, attrs; - split_specs_attrs (yyvsp[-4].ftype.t, &specs, &attrs); - yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype, - build_tree_list (yyvsp[-1].ttype, attrs)); ; - break;} -case 568: -#line 2610 "parse.y" -{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, - build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; - break;} -case 569: -#line 2613 "parse.y" -{ yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ; - break;} -case 570: -#line 2619 "parse.y" -{ yyval.itype = 0; ; - break;} -case 571: -#line 2621 "parse.y" -{ - if (PROCESSING_REAL_TEMPLATE_DECL_P ()) - yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype); - finish_member_declaration (yyvsp[0].ttype); - yyval.itype = 1; - ; - break;} -case 572: -#line 2628 "parse.y" -{ - check_multiple_declarators (); - if (PROCESSING_REAL_TEMPLATE_DECL_P ()) - yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype); - finish_member_declaration (yyvsp[0].ttype); - yyval.itype = 2; - ; - break;} -case 573: -#line 2639 "parse.y" -{ yyval.itype = 0; ; - break;} -case 574: -#line 2641 "parse.y" -{ - if (PROCESSING_REAL_TEMPLATE_DECL_P ()) - yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype); - finish_member_declaration (yyvsp[0].ttype); - yyval.itype = 1; - ; - break;} -case 575: -#line 2648 "parse.y" -{ - check_multiple_declarators (); - if (PROCESSING_REAL_TEMPLATE_DECL_P ()) - yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype); - finish_member_declaration (yyvsp[0].ttype); - yyval.itype = 2; - ; - break;} -case 580: -#line 2669 "parse.y" -{ yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, - yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 581: -#line 2672 "parse.y" -{ yyval.ttype = parse_bitfield0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, - yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 582: -#line 2678 "parse.y" -{ yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, - yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 583: -#line 2681 "parse.y" -{ yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, - yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 584: -#line 2684 "parse.y" -{ yyval.ttype = parse_bitfield0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, - yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 585: -#line 2687 "parse.y" -{ yyval.ttype = parse_bitfield0 (NULL_TREE, yyvsp[-3].ftype.t, - yyvsp[-3].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 586: -#line 2693 "parse.y" -{ yyval.ttype = parse_field (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 587: -#line 2695 "parse.y" -{ yyval.ttype = parse_bitfield (yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 588: -#line 2700 "parse.y" -{ yyval.ttype = parse_field (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 589: -#line 2702 "parse.y" -{ yyval.ttype = parse_bitfield (yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 590: -#line 2704 "parse.y" -{ yyval.ttype = parse_bitfield (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 595: -#line 2723 "parse.y" -{ build_enumerator (yyvsp[0].ttype, NULL_TREE, current_enum_type); ; - break;} -case 596: -#line 2725 "parse.y" -{ build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype, current_enum_type); ; - break;} -case 597: -#line 2731 "parse.y" -{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; - break;} -case 598: -#line 2734 "parse.y" -{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); - yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; - break;} -case 599: -#line 2739 "parse.y" -{ - if (pedantic) - pedwarn ("ISO C++ forbids array dimensions with parenthesized type in new"); - yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype); - yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t); - yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag; - ; - break;} -case 600: -#line 2750 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 601: -#line 2752 "parse.y" -{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; - break;} -case 602: -#line 2757 "parse.y" -{ yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); - yyval.ftype.new_type_flag = 0; ; - break;} -case 603: -#line 2760 "parse.y" -{ yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; - break;} -case 604: -#line 2770 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 605: -#line 2772 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 606: -#line 2774 "parse.y" -{ yyval.ttype = empty_parms (); ; - break;} -case 607: -#line 2776 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 609: -#line 2784 "parse.y" -{ - /* Provide support for '(' attributes '*' declarator ')' - etc */ - yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); - ; - break;} -case 610: -#line 2794 "parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; - break;} -case 611: -#line 2796 "parse.y" -{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; - break;} -case 612: -#line 2798 "parse.y" -{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 613: -#line 2800 "parse.y" -{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 614: -#line 2802 "parse.y" -{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); - yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); - ; - break;} -case 616: -#line 2810 "parse.y" -{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 617: -#line 2812 "parse.y" -{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; - break;} -case 618: -#line 2814 "parse.y" -{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; - break;} -case 619: -#line 2816 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 620: -#line 2818 "parse.y" -{ push_nested_class (yyvsp[-1].ttype, 3); - yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); - TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ; - break;} -case 622: -#line 2826 "parse.y" -{ - if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) - { - yyval.ttype = lookup_name (yyvsp[0].ttype, 1); - maybe_note_name_used_in_class (yyvsp[0].ttype, yyval.ttype); - } - else - yyval.ttype = yyvsp[0].ttype; - ; - break;} -case 623: -#line 2836 "parse.y" -{ - if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) - yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); - else - yyval.ttype = yyvsp[0].ttype; - got_scope = NULL_TREE; - ; - break;} -case 626: -#line 2849 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 627: -#line 2854 "parse.y" -{ yyval.ttype = get_type_decl (yyvsp[0].ttype); ; - break;} -case 629: -#line 2863 "parse.y" -{ - /* Provide support for '(' attributes '*' declarator ')' - etc */ - yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); - ; - break;} -case 630: -#line 2872 "parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; - break;} -case 631: -#line 2874 "parse.y" -{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; - break;} -case 632: -#line 2876 "parse.y" -{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 633: -#line 2878 "parse.y" -{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 634: -#line 2880 "parse.y" -{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); - yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); - ; - break;} -case 636: -#line 2888 "parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; - break;} -case 637: -#line 2890 "parse.y" -{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; - break;} -case 638: -#line 2892 "parse.y" -{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 639: -#line 2894 "parse.y" -{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 640: -#line 2896 "parse.y" -{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); - yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); - ; - break;} -case 642: -#line 2904 "parse.y" -{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 643: -#line 2906 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 644: -#line 2908 "parse.y" -{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; - break;} -case 645: -#line 2910 "parse.y" -{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; - break;} -case 646: -#line 2912 "parse.y" -{ enter_scope_of (yyvsp[0].ttype); ; - break;} -case 647: -#line 2914 "parse.y" -{ enter_scope_of (yyvsp[0].ttype); yyval.ttype = yyvsp[0].ttype;; - break;} -case 648: -#line 2916 "parse.y" -{ yyval.ttype = build_parse_node (SCOPE_REF, global_namespace, yyvsp[0].ttype); - enter_scope_of (yyval.ttype); - ; - break;} -case 649: -#line 2920 "parse.y" -{ got_scope = NULL_TREE; - yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); - enter_scope_of (yyval.ttype); - ; - break;} -case 650: -#line 2928 "parse.y" -{ got_scope = NULL_TREE; - yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 651: -#line 2931 "parse.y" -{ got_scope = NULL_TREE; - yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 652: -#line 2937 "parse.y" -{ got_scope = NULL_TREE; - yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; - break;} -case 653: -#line 2940 "parse.y" -{ got_scope = NULL_TREE; - yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 655: -#line 2947 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 656: -#line 2952 "parse.y" -{ yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; - break;} -case 657: -#line 2954 "parse.y" -{ yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; - break;} -case 658: -#line 2956 "parse.y" -{ yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; - break;} -case 663: -#line 2968 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 664: -#line 2970 "parse.y" -{ got_scope = yyval.ttype - = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, /*complain=*/1); ; - break;} -case 665: -#line 2978 "parse.y" -{ - if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) - { - yyval.ttype = lastiddecl; - maybe_note_name_used_in_class (yyvsp[-1].ttype, yyval.ttype); - } - got_scope = yyval.ttype = - complete_type (TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype))); - ; - break;} -case 666: -#line 2988 "parse.y" -{ - if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) - yyval.ttype = lastiddecl; - got_scope = yyval.ttype = TREE_TYPE (yyval.ttype); - ; - break;} -case 667: -#line 2994 "parse.y" -{ - if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) - yyval.ttype = lastiddecl; - got_scope = yyval.ttype; - ; - break;} -case 668: -#line 3000 "parse.y" -{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ; - break;} -case 670: -#line 3016 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 671: -#line 3021 "parse.y" -{ - if (TYPE_P (yyvsp[-1].ttype)) - yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, /*complain=*/1); - else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) - cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype); - else - { - yyval.ttype = yyvsp[0].ttype; - if (TREE_CODE (yyval.ttype) == TYPE_DECL) - yyval.ttype = TREE_TYPE (yyval.ttype); - } - ; - break;} -case 672: -#line 3034 "parse.y" -{ yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ; - break;} -case 673: -#line 3036 "parse.y" -{ yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, /*complain=*/1); ; - break;} -case 674: -#line 3038 "parse.y" -{ yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype, /*complain=*/1); ; - break;} -case 675: -#line 3043 "parse.y" -{ - if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) - cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype); - ; - break;} -case 676: -#line 3048 "parse.y" -{ - if (TYPE_P (yyvsp[-1].ttype)) - yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, /*complain=*/1); - else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) - cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype); - else - { - yyval.ttype = yyvsp[0].ttype; - if (TREE_CODE (yyval.ttype) == TYPE_DECL) - yyval.ttype = TREE_TYPE (yyval.ttype); - } - ; - break;} -case 677: -#line 3061 "parse.y" -{ got_scope = yyval.ttype - = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, /*complain=*/1); ; - break;} -case 678: -#line 3064 "parse.y" -{ got_scope = yyval.ttype - = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, /*complain=*/1); ; - break;} -case 679: -#line 3070 "parse.y" -{ - if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE) - yyvsp[-1].ttype = lastiddecl; - - /* Retrieve the type for the identifier, which might involve - some computation. */ - got_scope = yyval.ttype = complete_type (IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype)); - - if (yyval.ttype == error_mark_node) - cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype); - ; - break;} -case 680: -#line 3082 "parse.y" -{ - if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE) - yyval.ttype = lastiddecl; - got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); - ; - break;} -case 681: -#line 3088 "parse.y" -{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ; - break;} -case 684: -#line 3092 "parse.y" -{ - if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) - yyval.ttype = lastiddecl; - got_scope = yyval.ttype; - ; - break;} -case 685: -#line 3101 "parse.y" -{ yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 686: -#line 3106 "parse.y" -{ - if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) - yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); - else - yyval.ttype = yyvsp[0].ttype; - got_scope = NULL_TREE; - ; - break;} -case 688: -#line 3115 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 689: -#line 3120 "parse.y" -{ got_scope = NULL_TREE; ; - break;} -case 690: -#line 3122 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ; - break;} -case 691: -#line 3129 "parse.y" -{ got_scope = void_type_node; ; - break;} -case 692: -#line 3135 "parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 693: -#line 3137 "parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; - break;} -case 694: -#line 3139 "parse.y" -{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 695: -#line 3141 "parse.y" -{ yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ; - break;} -case 696: -#line 3143 "parse.y" -{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); - yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg); - ; - break;} -case 697: -#line 3147 "parse.y" -{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); - yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); - ; - break;} -case 699: -#line 3156 "parse.y" -{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 700: -#line 3158 "parse.y" -{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; - break;} -case 702: -#line 3164 "parse.y" -{ - /* Provide support for '(' attributes '*' declarator ')' - etc */ - yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); - ; - break;} -case 703: -#line 3174 "parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; - break;} -case 704: -#line 3176 "parse.y" -{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 705: -#line 3178 "parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ; - break;} -case 706: -#line 3180 "parse.y" -{ yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ; - break;} -case 707: -#line 3182 "parse.y" -{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; - break;} -case 708: -#line 3184 "parse.y" -{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 709: -#line 3186 "parse.y" -{ yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ; - break;} -case 710: -#line 3188 "parse.y" -{ yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ; - break;} -case 711: -#line 3190 "parse.y" -{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); - yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg); - ; - break;} -case 712: -#line 3194 "parse.y" -{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); - yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); - ; - break;} -case 714: -#line 3203 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 715: -#line 3206 "parse.y" -{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 716: -#line 3208 "parse.y" -{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 717: -#line 3210 "parse.y" -{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; - break;} -case 718: -#line 3212 "parse.y" -{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; - break;} -case 719: -#line 3214 "parse.y" -{ yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 720: -#line 3216 "parse.y" -{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 721: -#line 3218 "parse.y" -{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 722: -#line 3220 "parse.y" -{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 723: -#line 3222 "parse.y" -{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ; - break;} -case 730: -#line 3245 "parse.y" -{ if (pedantic) - pedwarn ("ISO C++ forbids label declarations"); ; - break;} -case 733: -#line 3256 "parse.y" -{ - while (yyvsp[-1].ttype) - { - finish_label_decl (TREE_VALUE (yyvsp[-1].ttype)); - yyvsp[-1].ttype = TREE_CHAIN (yyvsp[-1].ttype); - } - ; - break;} -case 734: -#line 3269 "parse.y" -{; - break;} -case 736: -#line 3275 "parse.y" -{ yyval.ttype = begin_compound_stmt (0); ; - break;} -case 737: -#line 3277 "parse.y" -{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ; - break;} -case 738: -#line 3282 "parse.y" -{ - yyval.ttype = begin_if_stmt (); - cond_stmt_keyword = "if"; - ; - break;} -case 739: -#line 3287 "parse.y" -{ finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 740: -#line 3289 "parse.y" -{ yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ; - break;} -case 742: -#line 3294 "parse.y" -{ yyval.ttype = begin_compound_stmt (0); ; - break;} -case 743: -#line 3296 "parse.y" -{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ; - break;} -case 744: -#line 3301 "parse.y" -{; - break;} -case 746: -#line 3307 "parse.y" -{ finish_stmt (); ; - break;} -case 747: -#line 3309 "parse.y" -{ finish_expr_stmt (yyvsp[-1].ttype); ; - break;} -case 748: -#line 3311 "parse.y" -{ begin_else_clause (); ; - break;} -case 749: -#line 3313 "parse.y" -{ - finish_else_clause (yyvsp[-3].ttype); - finish_if_stmt (); - ; - break;} -case 750: -#line 3318 "parse.y" -{ finish_if_stmt (); ; - break;} -case 751: -#line 3320 "parse.y" -{ - yyval.ttype = begin_while_stmt (); - cond_stmt_keyword = "while"; - ; - break;} -case 752: -#line 3325 "parse.y" -{ finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 753: -#line 3327 "parse.y" -{ finish_while_stmt (yyvsp[-3].ttype); ; - break;} -case 754: -#line 3329 "parse.y" -{ yyval.ttype = begin_do_stmt (); ; - break;} -case 755: -#line 3331 "parse.y" -{ - finish_do_body (yyvsp[-2].ttype); - cond_stmt_keyword = "do"; - ; - break;} -case 756: -#line 3336 "parse.y" -{ finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ; - break;} -case 757: -#line 3338 "parse.y" -{ yyval.ttype = begin_for_stmt (); ; - break;} -case 758: -#line 3340 "parse.y" -{ finish_for_init_stmt (yyvsp[-2].ttype); ; - break;} -case 759: -#line 3342 "parse.y" -{ finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ; - break;} -case 760: -#line 3344 "parse.y" -{ finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ; - break;} -case 761: -#line 3346 "parse.y" -{ finish_for_stmt (yyvsp[-10].ttype); ; - break;} -case 762: -#line 3348 "parse.y" -{ yyval.ttype = begin_switch_stmt (); ; - break;} -case 763: -#line 3350 "parse.y" -{ finish_switch_cond (yyvsp[-1].ttype, yyvsp[-3].ttype); ; - break;} -case 764: -#line 3352 "parse.y" -{ finish_switch_stmt (yyvsp[-5].ttype); ; - break;} -case 765: -#line 3354 "parse.y" -{ finish_case_label (yyvsp[-1].ttype, NULL_TREE); ; - break;} -case 767: -#line 3357 "parse.y" -{ finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 769: -#line 3360 "parse.y" -{ finish_case_label (NULL_TREE, NULL_TREE); ; - break;} -case 771: -#line 3363 "parse.y" -{ finish_break_stmt (); ; - break;} -case 772: -#line 3365 "parse.y" -{ finish_continue_stmt (); ; - break;} -case 773: -#line 3367 "parse.y" -{ finish_return_stmt (NULL_TREE); ; - break;} -case 774: -#line 3369 "parse.y" -{ finish_return_stmt (yyvsp[-1].ttype); ; - break;} -case 775: -#line 3371 "parse.y" -{ - finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, - NULL_TREE); - ; - break;} -case 776: -#line 3377 "parse.y" -{ - finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, - NULL_TREE); - ; - break;} -case 777: -#line 3383 "parse.y" -{ finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ; - break;} -case 778: -#line 3385 "parse.y" -{ finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, NULL_TREE, yyvsp[-2].ttype, NULL_TREE); ; - break;} -case 779: -#line 3389 "parse.y" -{ finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ; - break;} -case 780: -#line 3392 "parse.y" -{ finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, NULL_TREE, yyvsp[-4].ttype, yyvsp[-2].ttype); ; - break;} -case 781: -#line 3395 "parse.y" -{ finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, NULL_TREE, yyvsp[-2].ttype); ; - break;} -case 782: -#line 3397 "parse.y" -{ - if (pedantic) - pedwarn ("ISO C++ forbids computed gotos"); - finish_goto_stmt (yyvsp[-1].ttype); - ; - break;} -case 783: -#line 3403 "parse.y" -{ finish_goto_stmt (yyvsp[-1].ttype); ; - break;} -case 785: -#line 3406 "parse.y" -{ error ("label must be followed by statement"); - yyungetc ('}', 0); ; - break;} -case 786: -#line 3409 "parse.y" -{ finish_stmt (); ; - break;} -case 789: -#line 3413 "parse.y" -{ do_local_using_decl (yyvsp[0].ttype); ; - break;} -case 791: -#line 3419 "parse.y" -{ yyval.ttype = begin_function_try_block (); ; - break;} -case 792: -#line 3421 "parse.y" -{ finish_function_try_block (yyvsp[-2].ttype); ; - break;} -case 793: -#line 3423 "parse.y" -{ - finish_function_handler_sequence (yyvsp[-4].ttype); - yyval.itype = yyvsp[-3].itype; - ; - break;} -case 794: -#line 3431 "parse.y" -{ yyval.ttype = begin_try_block (); ; - break;} -case 795: -#line 3433 "parse.y" -{ finish_try_block (yyvsp[-1].ttype); ; - break;} -case 796: -#line 3435 "parse.y" -{ finish_handler_sequence (yyvsp[-3].ttype); ; - break;} -case 799: -#line 3445 "parse.y" -{ yyval.ttype = begin_handler(); ; - break;} -case 800: -#line 3447 "parse.y" -{ yyval.ttype = finish_handler_parms (yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 801: -#line 3449 "parse.y" -{ finish_handler (yyvsp[-1].ttype, yyvsp[-3].ttype); ; - break;} -case 804: -#line 3459 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 805: -#line 3475 "parse.y" -{ - check_for_new_type ("inside exception declarations", yyvsp[-1].ftype); - yyval.ttype = start_handler_parms (TREE_PURPOSE (yyvsp[-1].ftype.t), - TREE_VALUE (yyvsp[-1].ftype.t)); - ; - break;} -case 806: -#line 3484 "parse.y" -{ finish_label_stmt (yyvsp[-1].ttype); ; - break;} -case 807: -#line 3486 "parse.y" -{ finish_label_stmt (yyvsp[-1].ttype); ; - break;} -case 808: -#line 3488 "parse.y" -{ finish_label_stmt (yyvsp[-1].ttype); ; - break;} -case 809: -#line 3490 "parse.y" -{ finish_label_stmt (yyvsp[-1].ttype); ; - break;} -case 810: -#line 3495 "parse.y" -{ finish_expr_stmt (yyvsp[-1].ttype); ; - break;} -case 812: -#line 3498 "parse.y" -{ if (pedantic) - pedwarn ("ISO C++ forbids compound statements inside for initializations"); - ; - break;} -case 813: -#line 3507 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 815: -#line 3513 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 817: -#line 3516 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 818: -#line 3523 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 821: -#line 3530 "parse.y" -{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; - break;} -case 822: -#line 3535 "parse.y" -{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ; - break;} -case 823: -#line 3540 "parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE);; - break;} -case 824: -#line 3542 "parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; - break;} -case 825: -#line 3553 "parse.y" -{ - yyval.ttype = empty_parms(); - ; - break;} -case 827: -#line 3558 "parse.y" -{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0); - check_for_new_type ("inside parameter list", yyvsp[0].ftype); ; - break;} -case 828: -#line 3566 "parse.y" -{ yyval.ttype = finish_parmlist (yyval.ttype, 0); ; - break;} -case 829: -#line 3568 "parse.y" -{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ; - break;} -case 830: -#line 3571 "parse.y" -{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ; - break;} -case 831: -#line 3573 "parse.y" -{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, - yyvsp[-1].ftype.t), 1); ; - break;} -case 832: -#line 3576 "parse.y" -{ yyval.ttype = finish_parmlist (NULL_TREE, 1); ; - break;} -case 833: -#line 3578 "parse.y" -{ - /* This helps us recover from really nasty - parse errors, for example, a missing right - parenthesis. */ - yyerror ("possibly missing ')'"); - yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 0); - yyungetc (':', 0); - yychar = ')'; - ; - break;} -case 834: -#line 3588 "parse.y" -{ - /* This helps us recover from really nasty - parse errors, for example, a missing right - parenthesis. */ - yyerror ("possibly missing ')'"); - yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, - yyvsp[-1].ftype.t), 0); - yyungetc (':', 0); - yychar = ')'; - ; - break;} -case 835: -#line 3603 "parse.y" -{ maybe_snarf_defarg (); ; - break;} -case 836: -#line 3605 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 839: -#line 3616 "parse.y" -{ check_for_new_type ("in a parameter list", yyvsp[0].ftype); - yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ; - break;} -case 840: -#line 3619 "parse.y" -{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype); - yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ; - break;} -case 841: -#line 3622 "parse.y" -{ check_for_new_type ("in a parameter list", yyvsp[0].ftype); - yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ; - break;} -case 842: -#line 3625 "parse.y" -{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; - break;} -case 843: -#line 3627 "parse.y" -{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ; - break;} -case 845: -#line 3633 "parse.y" -{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype); - yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ; - break;} -case 846: -#line 3643 "parse.y" -{ tree specs = strip_attrs (yyvsp[-1].ftype.t); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; - yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ; - break;} -case 847: -#line 3647 "parse.y" -{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; - break;} -case 848: -#line 3650 "parse.y" -{ yyval.ftype.t = build_tree_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t), - yyvsp[0].ttype); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; - break;} -case 849: -#line 3654 "parse.y" -{ tree specs = strip_attrs (yyvsp[-1].ftype.t); - yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; - break;} -case 850: -#line 3658 "parse.y" -{ tree specs = strip_attrs (yyvsp[0].ftype.t); - yyval.ftype.t = build_tree_list (specs, NULL_TREE); - yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; - break;} -case 851: -#line 3662 "parse.y" -{ tree specs = strip_attrs (yyvsp[-1].ftype.t); - yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); - yyval.ftype.new_type_flag = 0; ; - break;} -case 852: -#line 3669 "parse.y" -{ yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); - yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; - break;} -case 853: -#line 3672 "parse.y" -{ yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); - yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; - break;} -case 856: -#line 3683 "parse.y" -{ see_typename (); ; - break;} -case 857: -#line 3688 "parse.y" -{ - error ("type specifier omitted for parameter"); - yyval.ttype = build_tree_list (integer_type_node, NULL_TREE); - ; - break;} -case 858: -#line 3693 "parse.y" -{ - error ("type specifier omitted for parameter"); - if (TREE_CODE (yyval.ttype) == SCOPE_REF - && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM - || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM)) - cp_error (" perhaps you want `typename %E' to make it a type", yyval.ttype); - yyval.ttype = build_tree_list (integer_type_node, yyval.ttype); - ; - break;} -case 859: -#line 3705 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 860: -#line 3707 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 861: -#line 3709 "parse.y" -{ yyval.ttype = empty_except_spec; ; - break;} -case 862: -#line 3714 "parse.y" -{ - check_for_new_type ("exception specifier", yyvsp[0].ftype); - yyval.ttype = groktypename (yyvsp[0].ftype.t); - ; - break;} -case 863: -#line 3722 "parse.y" -{ yyval.ttype = add_exception_specifier (NULL_TREE, yyvsp[0].ttype, 1); ; - break;} -case 864: -#line 3724 "parse.y" -{ yyval.ttype = add_exception_specifier (yyvsp[-2].ttype, yyvsp[0].ttype, 1); ; - break;} -case 865: -#line 3729 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 866: -#line 3731 "parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 867: -#line 3733 "parse.y" -{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 868: -#line 3735 "parse.y" -{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); - yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); - ; - break;} -case 869: -#line 3742 "parse.y" -{ got_scope = NULL_TREE; ; - break;} -case 870: -#line 3747 "parse.y" -{ yyval.ttype = ansi_opname (MULT_EXPR); ; - break;} -case 871: -#line 3749 "parse.y" -{ yyval.ttype = ansi_opname (TRUNC_DIV_EXPR); ; - break;} -case 872: -#line 3751 "parse.y" -{ yyval.ttype = ansi_opname (TRUNC_MOD_EXPR); ; - break;} -case 873: -#line 3753 "parse.y" -{ yyval.ttype = ansi_opname (PLUS_EXPR); ; - break;} -case 874: -#line 3755 "parse.y" -{ yyval.ttype = ansi_opname (MINUS_EXPR); ; - break;} -case 875: -#line 3757 "parse.y" -{ yyval.ttype = ansi_opname (BIT_AND_EXPR); ; - break;} -case 876: -#line 3759 "parse.y" -{ yyval.ttype = ansi_opname (BIT_IOR_EXPR); ; - break;} -case 877: -#line 3761 "parse.y" -{ yyval.ttype = ansi_opname (BIT_XOR_EXPR); ; - break;} -case 878: -#line 3763 "parse.y" -{ yyval.ttype = ansi_opname (BIT_NOT_EXPR); ; - break;} -case 879: -#line 3765 "parse.y" -{ yyval.ttype = ansi_opname (COMPOUND_EXPR); ; - break;} -case 880: -#line 3767 "parse.y" -{ yyval.ttype = ansi_opname (yyvsp[0].code); ; - break;} -case 881: -#line 3769 "parse.y" -{ yyval.ttype = ansi_opname (LT_EXPR); ; - break;} -case 882: -#line 3771 "parse.y" -{ yyval.ttype = ansi_opname (GT_EXPR); ; - break;} -case 883: -#line 3773 "parse.y" -{ yyval.ttype = ansi_opname (yyvsp[0].code); ; - break;} -case 884: -#line 3775 "parse.y" -{ yyval.ttype = ansi_assopname (yyvsp[0].code); ; - break;} -case 885: -#line 3777 "parse.y" -{ yyval.ttype = ansi_assopname (NOP_EXPR); ; - break;} -case 886: -#line 3779 "parse.y" -{ yyval.ttype = ansi_opname (yyvsp[0].code); ; - break;} -case 887: -#line 3781 "parse.y" -{ yyval.ttype = ansi_opname (yyvsp[0].code); ; - break;} -case 888: -#line 3783 "parse.y" -{ yyval.ttype = ansi_opname (POSTINCREMENT_EXPR); ; - break;} -case 889: -#line 3785 "parse.y" -{ yyval.ttype = ansi_opname (PREDECREMENT_EXPR); ; - break;} -case 890: -#line 3787 "parse.y" -{ yyval.ttype = ansi_opname (TRUTH_ANDIF_EXPR); ; - break;} -case 891: -#line 3789 "parse.y" -{ yyval.ttype = ansi_opname (TRUTH_ORIF_EXPR); ; - break;} -case 892: -#line 3791 "parse.y" -{ yyval.ttype = ansi_opname (TRUTH_NOT_EXPR); ; - break;} -case 893: -#line 3793 "parse.y" -{ yyval.ttype = ansi_opname (COND_EXPR); ; - break;} -case 894: -#line 3795 "parse.y" -{ yyval.ttype = ansi_opname (yyvsp[0].code); ; - break;} -case 895: -#line 3797 "parse.y" -{ yyval.ttype = ansi_opname (COMPONENT_REF); ; - break;} -case 896: -#line 3799 "parse.y" -{ yyval.ttype = ansi_opname (MEMBER_REF); ; - break;} -case 897: -#line 3801 "parse.y" -{ yyval.ttype = ansi_opname (CALL_EXPR); ; - break;} -case 898: -#line 3803 "parse.y" -{ yyval.ttype = ansi_opname (ARRAY_REF); ; - break;} -case 899: -#line 3805 "parse.y" -{ yyval.ttype = ansi_opname (NEW_EXPR); ; - break;} -case 900: -#line 3807 "parse.y" -{ yyval.ttype = ansi_opname (DELETE_EXPR); ; - break;} -case 901: -#line 3809 "parse.y" -{ yyval.ttype = ansi_opname (VEC_NEW_EXPR); ; - break;} -case 902: -#line 3811 "parse.y" -{ yyval.ttype = ansi_opname (VEC_DELETE_EXPR); ; - break;} -case 903: -#line 3814 "parse.y" -{ yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; - break;} -case 904: -#line 3816 "parse.y" -{ yyval.ttype = ansi_opname (ERROR_MARK); ; - break;} -} - /* the action file gets copied in in place of this dollarsign */ -#line 543 "/usr/lib/bison.simple" - - yyvsp -= yylen; - yyssp -= yylen; -#ifdef YYLSP_NEEDED - yylsp -= yylen; -#endif - -#if YYDEBUG != 0 - if (yydebug) - { - short *ssp1 = yyss - 1; - fprintf (stderr, "state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif - - *++yyvsp = yyval; - -#ifdef YYLSP_NEEDED - yylsp++; - if (yylen == 0) - { - yylsp->first_line = yylloc.first_line; - yylsp->first_column = yylloc.first_column; - yylsp->last_line = (yylsp-1)->last_line; - yylsp->last_column = (yylsp-1)->last_column; - yylsp->text = 0; - } - else - { - yylsp->last_line = (yylsp+yylen-1)->last_line; - yylsp->last_column = (yylsp+yylen-1)->last_column; - } -#endif - - /* Now "shift" the result of the reduction. - Determine what state that goes to, - based on the state we popped back to - and the rule number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; - - goto yynewstate; - -yyerrlab: /* here on detecting error */ - - if (! yyerrstatus) - /* If not already recovering from an error, report this error. */ - { - ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - int size = 0; - char *msg; - int x, count; - - count = 0; - /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - size += strlen(yytname[x]) + 15, count++; - msg = (char *) malloc(size + 15); - if (msg != 0) - { - strcpy(msg, "parse error"); - - if (count < 5) - { - count = 0; - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - { - strcat(msg, count == 0 ? ", expecting `" : " or `"); - strcat(msg, yytname[x]); - strcat(msg, "'"); - count++; - } - } - yyerror(msg); - free(msg); - } - else - yyerror ("parse error; also virtual memory exceeded"); - } - else -#endif /* YYERROR_VERBOSE */ - yyerror("parse error"); - } - - goto yyerrlab1; -yyerrlab1: /* here on error raised explicitly by an action */ - - if (yyerrstatus == 3) - { - /* if just tried and failed to reuse lookahead token after an error, discard it. */ - - /* return failure if at end of input */ - if (yychar == YYEOF) - YYABORT; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); -#endif - - yychar = YYEMPTY; - } - - /* Else will try to reuse lookahead token - after shifting the error token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - -yyerrdefault: /* current state does not do anything special for the error token. */ - -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ - if (yyn) goto yydefault; -#endif - -yyerrpop: /* pop the current state because it cannot handle the error token */ - - if (yyssp == yyss) YYABORT; - yyvsp--; - yystate = *--yyssp; -#ifdef YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG != 0 - if (yydebug) - { - short *ssp1 = yyss - 1; - fprintf (stderr, "Error: state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif - -yyerrhandle: - - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - - if (yyn == YYFINAL) - YYACCEPT; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting error token, "); -#endif - - *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - yystate = yyn; - goto yynewstate; - - yyacceptlab: - /* YYACCEPT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 0; - - yyabortlab: - /* YYABORT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 1; -} -#line 3819 "parse.y" - - -#ifdef SPEW_DEBUG -const char * -debug_yytranslate (value) - int value; -{ - return yytname[YYTRANSLATE (value)]; -} - -#endif diff --git a/gcc/cp/parse.h b/gcc/cp/parse.h deleted file mode 100644 index 67d0f575df1..00000000000 --- a/gcc/cp/parse.h +++ /dev/null @@ -1,97 +0,0 @@ -typedef union { - long itype; - tree ttype; - char *strtype; - enum tree_code code; - flagged_type_tree ftype; - struct pending_inline *pi; -} YYSTYPE; -#define IDENTIFIER 257 -#define TYPENAME 258 -#define SELFNAME 259 -#define PFUNCNAME 260 -#define SCSPEC 261 -#define TYPESPEC 262 -#define CV_QUALIFIER 263 -#define CONSTANT 264 -#define STRING 265 -#define ELLIPSIS 266 -#define SIZEOF 267 -#define ENUM 268 -#define IF 269 -#define ELSE 270 -#define WHILE 271 -#define DO 272 -#define FOR 273 -#define SWITCH 274 -#define CASE 275 -#define DEFAULT 276 -#define BREAK 277 -#define CONTINUE 278 -#define RETURN_KEYWORD 279 -#define GOTO 280 -#define ASM_KEYWORD 281 -#define TYPEOF 282 -#define ALIGNOF 283 -#define SIGOF 284 -#define ATTRIBUTE 285 -#define EXTENSION 286 -#define LABEL 287 -#define REALPART 288 -#define IMAGPART 289 -#define VA_ARG 290 -#define AGGR 291 -#define VISSPEC 292 -#define DELETE 293 -#define NEW 294 -#define THIS 295 -#define OPERATOR 296 -#define CXX_TRUE 297 -#define CXX_FALSE 298 -#define NAMESPACE 299 -#define TYPENAME_KEYWORD 300 -#define USING 301 -#define LEFT_RIGHT 302 -#define TEMPLATE 303 -#define TYPEID 304 -#define DYNAMIC_CAST 305 -#define STATIC_CAST 306 -#define REINTERPRET_CAST 307 -#define CONST_CAST 308 -#define SCOPE 309 -#define EMPTY 310 -#define PTYPENAME 311 -#define NSNAME 312 -#define THROW 313 -#define ASSIGN 314 -#define OROR 315 -#define ANDAND 316 -#define MIN_MAX 317 -#define EQCOMPARE 318 -#define ARITHCOMPARE 319 -#define LSHIFT 320 -#define RSHIFT 321 -#define POINTSAT_STAR 322 -#define DOT_STAR 323 -#define UNARY 324 -#define PLUSPLUS 325 -#define MINUSMINUS 326 -#define HYPERUNARY 327 -#define POINTSAT 328 -#define TRY 329 -#define CATCH 330 -#define EXTERN_LANG_STRING 331 -#define ALL 332 -#define PRE_PARSED_CLASS_DECL 333 -#define DEFARG 334 -#define DEFARG_MARKER 335 -#define PRE_PARSED_FUNCTION_DECL 336 -#define TYPENAME_DEFN 337 -#define IDENTIFIER_DEFN 338 -#define PTYPENAME_DEFN 339 -#define END_OF_LINE 340 -#define END_OF_SAVED_INPUT 341 - - -extern YYSTYPE yylval; -#define YYEMPTY -2 diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index a733757b284..621fbcc8ca0 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,7 @@ +2000-07-12 Mark Mitchell + + * parse-scan.c: Remove. + 2000-07-10 Alexandre Petit-Bianco * jcf-write.c (generate_classfile): Don't install ConstantValue diff --git a/gcc/java/parse-scan.c b/gcc/java/parse-scan.c deleted file mode 100644 index 649c18160d7..00000000000 --- a/gcc/java/parse-scan.c +++ /dev/null @@ -1,2571 +0,0 @@ - -/* A Bison parser, made from ./parse-scan.y - by GNU Bison version 1.28 */ - -#define YYBISON 1 /* Identify Bison output. */ - -#define PLUS_TK 257 -#define MINUS_TK 258 -#define MULT_TK 259 -#define DIV_TK 260 -#define REM_TK 261 -#define LS_TK 262 -#define SRS_TK 263 -#define ZRS_TK 264 -#define AND_TK 265 -#define XOR_TK 266 -#define OR_TK 267 -#define BOOL_AND_TK 268 -#define BOOL_OR_TK 269 -#define EQ_TK 270 -#define NEQ_TK 271 -#define GT_TK 272 -#define GTE_TK 273 -#define LT_TK 274 -#define LTE_TK 275 -#define PLUS_ASSIGN_TK 276 -#define MINUS_ASSIGN_TK 277 -#define MULT_ASSIGN_TK 278 -#define DIV_ASSIGN_TK 279 -#define REM_ASSIGN_TK 280 -#define LS_ASSIGN_TK 281 -#define SRS_ASSIGN_TK 282 -#define ZRS_ASSIGN_TK 283 -#define AND_ASSIGN_TK 284 -#define XOR_ASSIGN_TK 285 -#define OR_ASSIGN_TK 286 -#define PUBLIC_TK 287 -#define PRIVATE_TK 288 -#define PROTECTED_TK 289 -#define STATIC_TK 290 -#define FINAL_TK 291 -#define SYNCHRONIZED_TK 292 -#define VOLATILE_TK 293 -#define TRANSIENT_TK 294 -#define NATIVE_TK 295 -#define PAD_TK 296 -#define ABSTRACT_TK 297 -#define MODIFIER_TK 298 -#define DECR_TK 299 -#define INCR_TK 300 -#define DEFAULT_TK 301 -#define IF_TK 302 -#define THROW_TK 303 -#define BOOLEAN_TK 304 -#define DO_TK 305 -#define IMPLEMENTS_TK 306 -#define THROWS_TK 307 -#define BREAK_TK 308 -#define IMPORT_TK 309 -#define ELSE_TK 310 -#define INSTANCEOF_TK 311 -#define RETURN_TK 312 -#define VOID_TK 313 -#define CATCH_TK 314 -#define INTERFACE_TK 315 -#define CASE_TK 316 -#define EXTENDS_TK 317 -#define FINALLY_TK 318 -#define SUPER_TK 319 -#define WHILE_TK 320 -#define CLASS_TK 321 -#define SWITCH_TK 322 -#define CONST_TK 323 -#define TRY_TK 324 -#define FOR_TK 325 -#define NEW_TK 326 -#define CONTINUE_TK 327 -#define GOTO_TK 328 -#define PACKAGE_TK 329 -#define THIS_TK 330 -#define BYTE_TK 331 -#define SHORT_TK 332 -#define INT_TK 333 -#define LONG_TK 334 -#define CHAR_TK 335 -#define INTEGRAL_TK 336 -#define FLOAT_TK 337 -#define DOUBLE_TK 338 -#define FP_TK 339 -#define ID_TK 340 -#define REL_QM_TK 341 -#define REL_CL_TK 342 -#define NOT_TK 343 -#define NEG_TK 344 -#define ASSIGN_ANY_TK 345 -#define ASSIGN_TK 346 -#define OP_TK 347 -#define CP_TK 348 -#define OCB_TK 349 -#define CCB_TK 350 -#define OSB_TK 351 -#define CSB_TK 352 -#define SC_TK 353 -#define C_TK 354 -#define DOT_TK 355 -#define STRING_LIT_TK 356 -#define CHAR_LIT_TK 357 -#define INT_LIT_TK 358 -#define FP_LIT_TK 359 -#define TRUE_TK 360 -#define FALSE_TK 361 -#define BOOL_LIT_TK 362 -#define NULL_TK 363 - -#line 37 "./parse-scan.y" - -#define JC1_LITE - -#include "config.h" -#include "system.h" - -#include "obstack.h" -#include "toplev.h" - -extern char *input_filename; -extern FILE *finput, *out; - -/* Obstack for the lexer. */ -struct obstack temporary_obstack; - -/* The current parser context. */ -static struct parser_ctxt *ctxp; - -/* Error and warning counts, current line number, because they're used - elsewhere */ -int java_error_count; -int java_warning_count; -int lineno; - -/* Tweak default rules when necessary. */ -static int absorber; -#define USE_ABSORBER absorber = 0 - -/* Keep track of the current class name and package name. */ -static const char *current_class; -static const char *package_name; - -/* Keep track of the current inner class qualifier. */ -static char *inner_qualifier; -static int inner_qualifier_length; - -/* Keep track of whether things have be listed before. */ -static int previous_output; - -/* Record modifier uses */ -static int modifier_value; - -/* Keep track of number of bracket pairs after a variable declarator - id. */ -static int bracket_count; - -/* Record a method declaration */ -struct method_declarator { - const char *method_name; - const char *args; -}; -#define NEW_METHOD_DECLARATOR(D,N,A) \ -{ \ - (D) = \ - (struct method_declarator *)xmalloc (sizeof (struct method_declarator)); \ - (D)->method_name = (N); \ - (D)->args = (A); \ -} - -/* Two actions for this grammar */ -static void report_class_declaration PARAMS ((const char *)); -static void report_main_declaration PARAMS ((struct method_declarator *)); -static void push_class_context PARAMS ((const char *)); -static void pop_class_context PARAMS ((void)); - -#include "lex.h" -#include "parse.h" - -#line 106 "./parse-scan.y" -typedef union { - char *node; - struct method_declarator *declarator; - int value; /* For modifiers */ -} YYSTYPE; -#line 112 "./parse-scan.y" - -#include "lex.c" -#ifndef YYDEBUG -#define YYDEBUG 1 -#endif - -#include - -#ifndef __cplusplus -#ifndef __STDC__ -#define const -#endif -#endif - - - -#define YYFINAL 605 -#define YYFLAG -32768 -#define YYNTBASE 110 - -#define YYTRANSLATE(x) ((unsigned)(x) <= 363 ? yytranslate[x] : 257) - -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, 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, 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, - 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, 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, 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, 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, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 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, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109 -}; - -#if YYDEBUG != 0 -static const short yyprhs[] = { 0, - 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, - 20, 22, 24, 26, 28, 30, 32, 34, 38, 42, - 46, 48, 50, 52, 56, 58, 59, 61, 63, 65, - 68, 71, 74, 78, 80, 83, 85, 88, 92, 94, - 96, 100, 106, 108, 110, 112, 114, 117, 118, 126, - 127, 134, 135, 138, 139, 142, 144, 148, 151, 155, - 157, 160, 162, 164, 166, 168, 170, 172, 174, 176, - 180, 185, 187, 191, 193, 197, 199, 203, 205, 207, - 210, 214, 218, 223, 228, 232, 237, 241, 243, 247, - 250, 254, 255, 258, 260, 264, 266, 269, 271, 274, - 278, 280, 284, 289, 294, 300, 304, 309, 312, 316, - 320, 325, 330, 336, 344, 351, 353, 355, 356, 361, - 362, 368, 369, 375, 376, 383, 386, 390, 393, 397, - 399, 402, 404, 406, 408, 410, 412, 415, 418, 422, - 426, 431, 433, 437, 440, 444, 446, 449, 451, 453, - 455, 458, 461, 465, 467, 469, 471, 473, 475, 477, - 479, 481, 483, 485, 487, 489, 491, 493, 495, 497, - 499, 501, 503, 505, 507, 509, 511, 514, 517, 520, - 523, 525, 527, 529, 531, 533, 535, 537, 543, 551, - 559, 565, 568, 572, 576, 581, 583, 586, 589, 591, - 594, 598, 601, 606, 609, 612, 614, 622, 630, 637, - 645, 652, 655, 658, 659, 661, 663, 664, 666, 668, - 672, 675, 679, 682, 686, 689, 693, 697, 703, 709, - 711, 715, 719, 724, 726, 729, 735, 738, 740, 742, - 744, 746, 750, 752, 754, 756, 758, 762, 766, 770, - 774, 780, 785, 792, 798, 803, 809, 815, 822, 826, - 830, 832, 836, 840, 844, 848, 853, 858, 863, 868, - 870, 873, 877, 880, 884, 888, 892, 896, 901, 907, - 914, 920, 927, 932, 937, 939, 941, 943, 945, 948, - 951, 953, 955, 958, 961, 963, 966, 969, 971, 974, - 977, 979, 985, 990, 995, 1001, 1003, 1007, 1011, 1015, - 1017, 1021, 1025, 1027, 1031, 1035, 1039, 1041, 1045, 1049, - 1053, 1057, 1061, 1063, 1067, 1071, 1073, 1077, 1079, 1083, - 1085, 1089, 1091, 1095, 1097, 1101, 1103, 1109, 1111, 1113, - 1117, 1119, 1121, 1123, 1125, 1127, 1129 -}; - -static const short yyrhs[] = { 123, - 0, 104, 0, 105, 0, 108, 0, 103, 0, 102, - 0, 109, 0, 113, 0, 114, 0, 82, 0, 85, - 0, 50, 0, 115, 0, 118, 0, 119, 0, 115, - 0, 115, 0, 113, 97, 98, 0, 119, 97, 98, - 0, 118, 97, 98, 0, 120, 0, 121, 0, 122, - 0, 119, 101, 122, 0, 86, 0, 0, 126, 0, - 124, 0, 125, 0, 126, 124, 0, 126, 125, 0, - 124, 125, 0, 126, 124, 125, 0, 127, 0, 124, - 127, 0, 130, 0, 125, 130, 0, 75, 119, 99, - 0, 128, 0, 129, 0, 55, 119, 99, 0, 55, - 119, 101, 5, 99, 0, 132, 0, 162, 0, 99, - 0, 44, 0, 131, 44, 0, 0, 131, 67, 122, - 135, 136, 133, 138, 0, 0, 67, 122, 135, 136, - 134, 138, 0, 0, 63, 116, 0, 0, 52, 137, - 0, 117, 0, 137, 100, 117, 0, 95, 96, 0, - 95, 139, 96, 0, 140, 0, 139, 140, 0, 141, - 0, 155, 0, 157, 0, 175, 0, 142, 0, 147, - 0, 132, 0, 162, 0, 112, 143, 99, 0, 131, - 112, 143, 99, 0, 144, 0, 143, 100, 144, 0, - 145, 0, 145, 92, 146, 0, 122, 0, 145, 97, - 98, 0, 255, 0, 173, 0, 148, 154, 0, 112, - 149, 152, 0, 59, 149, 152, 0, 131, 112, 149, - 152, 0, 131, 59, 149, 152, 0, 122, 93, 94, - 0, 122, 93, 150, 94, 0, 149, 97, 98, 0, - 151, 0, 150, 100, 151, 0, 112, 145, 0, 131, - 112, 145, 0, 0, 53, 153, 0, 116, 0, 153, - 100, 116, 0, 175, 0, 175, 99, 0, 99, 0, - 156, 175, 0, 156, 175, 99, 0, 44, 0, 158, - 152, 159, 0, 131, 158, 152, 159, 0, 158, 152, - 159, 99, 0, 131, 158, 152, 159, 99, 0, 120, - 93, 94, 0, 120, 93, 150, 94, 0, 95, 96, - 0, 95, 160, 96, 0, 95, 176, 96, 0, 95, - 160, 176, 96, 0, 161, 93, 94, 99, 0, 161, - 93, 224, 94, 99, 0, 119, 101, 65, 93, 224, - 94, 99, 0, 119, 101, 65, 93, 94, 99, 0, - 76, 0, 65, 0, 0, 61, 122, 163, 168, 0, - 0, 131, 61, 122, 164, 168, 0, 0, 61, 122, - 167, 165, 168, 0, 0, 131, 61, 122, 167, 166, - 168, 0, 63, 117, 0, 167, 100, 117, 0, 95, - 96, 0, 95, 169, 96, 0, 170, 0, 169, 170, - 0, 171, 0, 172, 0, 132, 0, 162, 0, 142, - 0, 148, 99, 0, 95, 96, 0, 95, 174, 96, - 0, 95, 100, 96, 0, 95, 174, 100, 96, 0, - 146, 0, 174, 100, 146, 0, 95, 96, 0, 95, - 176, 96, 0, 177, 0, 176, 177, 0, 178, 0, - 180, 0, 132, 0, 179, 99, 0, 112, 143, 0, - 131, 112, 143, 0, 182, 0, 185, 0, 189, 0, - 190, 0, 199, 0, 203, 0, 182, 0, 186, 0, - 191, 0, 200, 0, 204, 0, 175, 0, 183, 0, - 187, 0, 192, 0, 202, 0, 210, 0, 211, 0, - 212, 0, 214, 0, 213, 0, 216, 0, 99, 0, - 122, 88, 0, 184, 180, 0, 184, 181, 0, 188, - 99, 0, 252, 0, 236, 0, 237, 0, 233, 0, - 234, 0, 230, 0, 222, 0, 48, 93, 255, 94, - 180, 0, 48, 93, 255, 94, 181, 56, 180, 0, - 48, 93, 255, 94, 181, 56, 181, 0, 68, 93, - 255, 94, 193, 0, 95, 96, 0, 95, 196, 96, - 0, 95, 194, 96, 0, 95, 194, 196, 96, 0, - 195, 0, 194, 195, 0, 196, 176, 0, 197, 0, - 196, 197, 0, 62, 256, 88, 0, 47, 88, 0, - 66, 93, 255, 94, 0, 198, 180, 0, 198, 181, - 0, 51, 0, 201, 180, 66, 93, 255, 94, 99, - 0, 206, 99, 255, 99, 208, 94, 180, 0, 206, - 99, 99, 208, 94, 180, 0, 206, 99, 255, 99, - 208, 94, 181, 0, 206, 99, 99, 208, 94, 181, - 0, 71, 93, 0, 205, 207, 0, 0, 209, 0, - 179, 0, 0, 209, 0, 188, 0, 209, 100, 188, - 0, 54, 99, 0, 54, 122, 99, 0, 73, 99, - 0, 73, 122, 99, 0, 58, 99, 0, 58, 255, - 99, 0, 49, 255, 99, 0, 215, 93, 255, 94, - 175, 0, 215, 93, 255, 94, 1, 0, 44, 0, - 70, 175, 217, 0, 70, 175, 219, 0, 70, 175, - 217, 219, 0, 218, 0, 217, 218, 0, 60, 93, - 151, 94, 175, 0, 64, 175, 0, 221, 0, 225, - 0, 111, 0, 76, 0, 93, 255, 94, 0, 222, - 0, 229, 0, 230, 0, 231, 0, 119, 101, 67, - 0, 113, 101, 67, 0, 59, 101, 67, 0, 119, - 101, 76, 0, 72, 116, 93, 224, 94, 0, 72, - 116, 93, 94, 0, 72, 116, 93, 224, 94, 138, - 0, 72, 116, 93, 94, 138, 0, 223, 122, 93, - 94, 0, 223, 122, 93, 94, 138, 0, 223, 122, - 93, 224, 94, 0, 223, 122, 93, 224, 94, 138, - 0, 119, 101, 72, 0, 220, 101, 72, 0, 255, - 0, 224, 100, 255, 0, 224, 100, 1, 0, 72, - 113, 226, 0, 72, 115, 226, 0, 72, 113, 226, - 228, 0, 72, 115, 226, 228, 0, 72, 115, 228, - 173, 0, 72, 113, 228, 173, 0, 227, 0, 226, - 227, 0, 97, 255, 98, 0, 97, 98, 0, 228, - 97, 98, 0, 220, 101, 122, 0, 65, 101, 122, - 0, 119, 93, 94, 0, 119, 93, 224, 94, 0, - 220, 101, 122, 93, 94, 0, 220, 101, 122, 93, - 224, 94, 0, 65, 101, 122, 93, 94, 0, 65, - 101, 122, 93, 224, 94, 0, 119, 97, 255, 98, - 0, 221, 97, 255, 98, 0, 220, 0, 119, 0, - 233, 0, 234, 0, 232, 46, 0, 232, 45, 0, - 236, 0, 237, 0, 3, 235, 0, 4, 235, 0, - 238, 0, 46, 235, 0, 45, 235, 0, 232, 0, - 89, 235, 0, 90, 235, 0, 239, 0, 93, 113, - 228, 94, 235, 0, 93, 113, 94, 235, 0, 93, - 255, 94, 238, 0, 93, 119, 228, 94, 238, 0, - 235, 0, 240, 5, 235, 0, 240, 6, 235, 0, - 240, 7, 235, 0, 240, 0, 241, 3, 240, 0, - 241, 4, 240, 0, 241, 0, 242, 8, 241, 0, - 242, 9, 241, 0, 242, 10, 241, 0, 242, 0, - 243, 20, 242, 0, 243, 18, 242, 0, 243, 21, - 242, 0, 243, 19, 242, 0, 243, 57, 114, 0, - 243, 0, 244, 16, 243, 0, 244, 17, 243, 0, - 244, 0, 245, 11, 244, 0, 245, 0, 246, 12, - 245, 0, 246, 0, 247, 13, 246, 0, 247, 0, - 248, 14, 247, 0, 248, 0, 249, 15, 248, 0, - 249, 0, 249, 87, 255, 88, 250, 0, 250, 0, - 252, 0, 253, 254, 251, 0, 119, 0, 229, 0, - 231, 0, 91, 0, 92, 0, 251, 0, 255, 0 -}; - -#endif - -#if YYDEBUG != 0 -static const short yyrline[] = { 0, - 181, 186, 188, 189, 190, 191, 192, 196, 198, 201, - 207, 212, 219, 221, 224, 228, 232, 236, 238, 242, - 249, 251, 254, 258, 265, 270, 271, 272, 273, 274, - 275, 276, 277, 280, 282, 285, 287, 290, 295, 297, - 300, 304, 308, 310, 311, 317, 326, 337, 344, 344, - 347, 349, 350, 353, 354, 357, 360, 364, 367, 371, - 373, 376, 378, 379, 380, 383, 385, 386, 387, 391, - 394, 398, 401, 404, 406, 409, 412, 416, 418, 422, - 426, 429, 430, 432, 439, 446, 452, 455, 457, 463, - 479, 495, 496, 499, 502, 506, 508, 509, 513, 515, - 518, 528, 530, 533, 535, 541, 544, 548, 550, 551, - 552, 556, 558, 561, 563, 567, 569, 574, 578, 578, - 581, 581, 584, 584, 587, 589, 591, 594, 597, 601, - 603, 606, 608, 609, 610, 613, 617, 622, 624, 625, - 626, 629, 631, 635, 637, 640, 642, 645, 647, 648, - 651, 655, 658, 662, 664, 665, 666, 667, 668, 671, - 673, 674, 675, 676, 679, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 693, 697, 702, 706, 712, - 716, 718, 719, 720, 721, 722, 723, 726, 730, 734, - 738, 742, 744, 745, 746, 749, 751, 754, 759, 761, - 764, 766, 769, 773, 777, 781, 785, 789, 791, 794, - 796, 799, 803, 806, 807, 808, 811, 812, 815, 817, - 820, 822, 825, 827, 830, 832, 835, 839, 841, 844, - 849, 851, 852, 855, 857, 860, 864, 869, 871, 874, - 876, 877, 878, 879, 880, 881, 885, 887, 889, 893, - 897, 899, 903, 904, 908, 909, 910, 911, 914, 917, - 920, 922, 923, 926, 928, 929, 930, 933, 934, 937, - 939, 942, 946, 948, 951, 953, 956, 959, 961, 962, - 963, 964, 967, 970, 973, 975, 977, 978, 981, 985, - 989, 991, 992, 993, 994, 997, 1001, 1005, 1007, 1008, - 1009, 1012, 1014, 1015, 1016, 1019, 1021, 1022, 1023, 1026, - 1028, 1029, 1032, 1034, 1035, 1036, 1039, 1041, 1042, 1043, - 1044, 1045, 1048, 1050, 1051, 1054, 1056, 1059, 1061, 1064, - 1066, 1069, 1071, 1074, 1076, 1079, 1081, 1084, 1086, 1089, - 1093, 1096, 1097, 1100, 1102, 1105, 1109 -}; -#endif - - -#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) - -static const char * const yytname[] = { "$","error","$undefined.","PLUS_TK", -"MINUS_TK","MULT_TK","DIV_TK","REM_TK","LS_TK","SRS_TK","ZRS_TK","AND_TK","XOR_TK", -"OR_TK","BOOL_AND_TK","BOOL_OR_TK","EQ_TK","NEQ_TK","GT_TK","GTE_TK","LT_TK", -"LTE_TK","PLUS_ASSIGN_TK","MINUS_ASSIGN_TK","MULT_ASSIGN_TK","DIV_ASSIGN_TK", -"REM_ASSIGN_TK","LS_ASSIGN_TK","SRS_ASSIGN_TK","ZRS_ASSIGN_TK","AND_ASSIGN_TK", -"XOR_ASSIGN_TK","OR_ASSIGN_TK","PUBLIC_TK","PRIVATE_TK","PROTECTED_TK","STATIC_TK", -"FINAL_TK","SYNCHRONIZED_TK","VOLATILE_TK","TRANSIENT_TK","NATIVE_TK","PAD_TK", -"ABSTRACT_TK","MODIFIER_TK","DECR_TK","INCR_TK","DEFAULT_TK","IF_TK","THROW_TK", -"BOOLEAN_TK","DO_TK","IMPLEMENTS_TK","THROWS_TK","BREAK_TK","IMPORT_TK","ELSE_TK", -"INSTANCEOF_TK","RETURN_TK","VOID_TK","CATCH_TK","INTERFACE_TK","CASE_TK","EXTENDS_TK", -"FINALLY_TK","SUPER_TK","WHILE_TK","CLASS_TK","SWITCH_TK","CONST_TK","TRY_TK", -"FOR_TK","NEW_TK","CONTINUE_TK","GOTO_TK","PACKAGE_TK","THIS_TK","BYTE_TK","SHORT_TK", -"INT_TK","LONG_TK","CHAR_TK","INTEGRAL_TK","FLOAT_TK","DOUBLE_TK","FP_TK","ID_TK", -"REL_QM_TK","REL_CL_TK","NOT_TK","NEG_TK","ASSIGN_ANY_TK","ASSIGN_TK","OP_TK", -"CP_TK","OCB_TK","CCB_TK","OSB_TK","CSB_TK","SC_TK","C_TK","DOT_TK","STRING_LIT_TK", -"CHAR_LIT_TK","INT_LIT_TK","FP_LIT_TK","TRUE_TK","FALSE_TK","BOOL_LIT_TK","NULL_TK", -"goal","literal","type","primitive_type","reference_type","class_or_interface_type", -"class_type","interface_type","array_type","name","simple_name","qualified_name", -"identifier","compilation_unit","import_declarations","type_declarations","package_declaration", -"import_declaration","single_type_import_declaration","type_import_on_demand_declaration", -"type_declaration","modifiers","class_declaration","@1","@2","super","interfaces", -"interface_type_list","class_body","class_body_declarations","class_body_declaration", -"class_member_declaration","field_declaration","variable_declarators","variable_declarator", -"variable_declarator_id","variable_initializer","method_declaration","method_header", -"method_declarator","formal_parameter_list","formal_parameter","throws","class_type_list", -"method_body","static_initializer","static","constructor_declaration","constructor_declarator", -"constructor_body","explicit_constructor_invocation","this_or_super","interface_declaration", -"@3","@4","@5","@6","extends_interfaces","interface_body","interface_member_declarations", -"interface_member_declaration","constant_declaration","abstract_method_declaration", -"array_initializer","variable_initializers","block","block_statements","block_statement", -"local_variable_declaration_statement","local_variable_declaration","statement", -"statement_nsi","statement_without_trailing_substatement","empty_statement", -"label_decl","labeled_statement","labeled_statement_nsi","expression_statement", -"statement_expression","if_then_statement","if_then_else_statement","if_then_else_statement_nsi", -"switch_statement","switch_block","switch_block_statement_groups","switch_block_statement_group", -"switch_labels","switch_label","while_expression","while_statement","while_statement_nsi", -"do_statement_begin","do_statement","for_statement","for_statement_nsi","for_header", -"for_begin","for_init","for_update","statement_expression_list","break_statement", -"continue_statement","return_statement","throw_statement","synchronized_statement", -"synchronized","try_statement","catches","catch_clause","finally","primary", -"primary_no_new_array","class_instance_creation_expression","something_dot_new", -"argument_list","array_creation_expression","dim_exprs","dim_expr","dims","field_access", -"method_invocation","array_access","postfix_expression","post_increment_expression", -"post_decrement_expression","unary_expression","pre_increment_expression","pre_decrement_expression", -"unary_expression_not_plus_minus","cast_expression","multiplicative_expression", -"additive_expression","shift_expression","relational_expression","equality_expression", -"and_expression","exclusive_or_expression","inclusive_or_expression","conditional_and_expression", -"conditional_or_expression","conditional_expression","assignment_expression", -"assignment","left_hand_side","assignment_operator","expression","constant_expression", NULL -}; -#endif - -static const short yyr1[] = { 0, - 110, 111, 111, 111, 111, 111, 111, 112, 112, 113, - 113, 113, 114, 114, 115, 116, 117, 118, 118, 118, - 119, 119, 120, 121, 122, 123, 123, 123, 123, 123, - 123, 123, 123, 124, 124, 125, 125, 126, 127, 127, - 128, 129, 130, 130, 130, 131, 131, 133, 132, 134, - 132, 135, 135, 136, 136, 137, 137, 138, 138, 139, - 139, 140, 140, 140, 140, 141, 141, 141, 141, 142, - 142, 143, 143, 144, 144, 145, 145, 146, 146, 147, - 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, - 151, 152, 152, 153, 153, 154, 154, 154, 155, 155, - 156, 157, 157, 157, 157, 158, 158, 159, 159, 159, - 159, 160, 160, 160, 160, 161, 161, 163, 162, 164, - 162, 165, 162, 166, 162, 167, 167, 168, 168, 169, - 169, 170, 170, 170, 170, 171, 172, 173, 173, 173, - 173, 174, 174, 175, 175, 176, 176, 177, 177, 177, - 178, 179, 179, 180, 180, 180, 180, 180, 180, 181, - 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 183, 184, 185, 186, 187, - 188, 188, 188, 188, 188, 188, 188, 189, 190, 191, - 192, 193, 193, 193, 193, 194, 194, 195, 196, 196, - 197, 197, 198, 199, 200, 201, 202, 203, 203, 204, - 204, 205, 206, 207, 207, 207, 208, 208, 209, 209, - 210, 210, 211, 211, 212, 212, 213, 214, 214, 215, - 216, 216, 216, 217, 217, 218, 219, 220, 220, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 222, 222, 222, 222, 222, 222, 222, 222, 223, 223, - 224, 224, 224, 225, 225, 225, 225, 225, 225, 226, - 226, 227, 228, 228, 229, 229, 230, 230, 230, 230, - 230, 230, 231, 231, 232, 232, 232, 232, 233, 234, - 235, 235, 235, 235, 235, 236, 237, 238, 238, 238, - 238, 239, 239, 239, 239, 240, 240, 240, 240, 241, - 241, 241, 242, 242, 242, 242, 243, 243, 243, 243, - 243, 243, 244, 244, 244, 245, 245, 246, 246, 247, - 247, 248, 248, 249, 249, 250, 250, 251, 251, 252, - 253, 253, 253, 254, 254, 255, 256 -}; - -static const short yyr2[] = { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, - 1, 1, 1, 3, 1, 0, 1, 1, 1, 2, - 2, 2, 3, 1, 2, 1, 2, 3, 1, 1, - 3, 5, 1, 1, 1, 1, 2, 0, 7, 0, - 6, 0, 2, 0, 2, 1, 3, 2, 3, 1, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 4, 1, 3, 1, 3, 1, 3, 1, 1, 2, - 3, 3, 4, 4, 3, 4, 3, 1, 3, 2, - 3, 0, 2, 1, 3, 1, 2, 1, 2, 3, - 1, 3, 4, 4, 5, 3, 4, 2, 3, 3, - 4, 4, 5, 7, 6, 1, 1, 0, 4, 0, - 5, 0, 5, 0, 6, 2, 3, 2, 3, 1, - 2, 1, 1, 1, 1, 1, 2, 2, 3, 3, - 4, 1, 3, 2, 3, 1, 2, 1, 1, 1, - 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 1, 1, 1, 1, 1, 1, 1, 5, 7, 7, - 5, 2, 3, 3, 4, 1, 2, 2, 1, 2, - 3, 2, 4, 2, 2, 1, 7, 7, 6, 7, - 6, 2, 2, 0, 1, 1, 0, 1, 1, 3, - 2, 3, 2, 3, 2, 3, 3, 5, 5, 1, - 3, 3, 4, 1, 2, 5, 2, 1, 1, 1, - 1, 3, 1, 1, 1, 1, 3, 3, 3, 3, - 5, 4, 6, 5, 4, 5, 5, 6, 3, 3, - 1, 3, 3, 3, 3, 4, 4, 4, 4, 1, - 2, 3, 2, 3, 3, 3, 3, 4, 5, 6, - 5, 6, 4, 4, 1, 1, 1, 1, 2, 2, - 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, - 1, 5, 4, 4, 5, 1, 3, 3, 3, 1, - 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, - 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, - 3, 1, 3, 1, 3, 1, 5, 1, 1, 3, - 1, 1, 1, 1, 1, 1, 1 -}; - -static const short yydefact[] = { 26, - 46, 0, 0, 0, 0, 45, 1, 28, 29, 27, - 34, 39, 40, 36, 0, 43, 44, 25, 0, 21, - 22, 23, 118, 52, 0, 32, 35, 37, 30, 31, - 47, 0, 0, 41, 0, 0, 0, 122, 0, 54, - 38, 0, 33, 120, 52, 0, 24, 17, 126, 15, - 0, 119, 0, 0, 16, 53, 0, 50, 0, 124, - 54, 42, 12, 0, 10, 11, 128, 0, 8, 9, - 13, 14, 15, 0, 134, 136, 0, 135, 0, 130, - 132, 133, 127, 123, 56, 55, 0, 121, 0, 48, - 0, 92, 76, 0, 72, 74, 92, 0, 0, 0, - 0, 0, 137, 129, 131, 0, 0, 51, 125, 0, - 0, 0, 0, 82, 70, 0, 0, 0, 81, 18, - 20, 19, 92, 0, 92, 57, 46, 0, 58, 21, - 0, 68, 0, 60, 62, 66, 67, 0, 63, 0, - 64, 92, 69, 65, 49, 85, 0, 0, 0, 88, - 94, 93, 87, 76, 73, 0, 0, 0, 0, 0, - 0, 0, 241, 0, 0, 0, 0, 6, 5, 2, - 3, 4, 7, 240, 0, 286, 75, 79, 285, 238, - 243, 0, 239, 244, 245, 246, 298, 287, 288, 306, - 291, 292, 295, 301, 310, 313, 317, 323, 326, 328, - 330, 332, 334, 336, 338, 346, 339, 0, 78, 77, - 84, 71, 83, 46, 0, 0, 206, 0, 0, 0, - 0, 0, 0, 0, 0, 144, 176, 0, 8, 286, - 23, 0, 150, 165, 0, 146, 148, 0, 149, 154, - 166, 0, 155, 167, 0, 156, 157, 168, 0, 158, - 0, 169, 159, 214, 0, 170, 171, 172, 174, 173, - 0, 175, 243, 245, 0, 184, 185, 182, 183, 181, - 0, 92, 59, 61, 98, 80, 96, 99, 0, 90, - 0, 86, 0, 0, 286, 244, 246, 293, 294, 297, - 296, 0, 0, 0, 16, 0, 299, 300, 0, 286, - 0, 138, 0, 142, 0, 0, 0, 0, 0, 0, - 0, 0, 290, 289, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 344, 345, 0, 0, 0, - 221, 0, 225, 0, 0, 0, 0, 212, 223, 0, - 0, 152, 0, 177, 0, 145, 147, 151, 230, 178, - 180, 204, 0, 0, 216, 219, 213, 215, 0, 0, - 106, 0, 0, 97, 100, 0, 102, 91, 89, 95, - 249, 276, 0, 264, 270, 0, 265, 0, 0, 0, - 0, 0, 0, 0, 242, 140, 139, 0, 248, 277, - 0, 261, 0, 247, 259, 250, 260, 275, 0, 0, - 307, 308, 309, 311, 312, 314, 315, 316, 319, 321, - 318, 320, 0, 322, 324, 325, 327, 329, 331, 333, - 335, 0, 340, 0, 227, 222, 226, 0, 0, 0, - 0, 231, 234, 232, 224, 242, 153, 0, 0, 217, - 0, 0, 107, 103, 117, 241, 108, 286, 0, 0, - 0, 104, 0, 273, 0, 271, 266, 0, 269, 267, - 268, 252, 0, 303, 0, 0, 304, 141, 143, 278, - 0, 283, 0, 284, 255, 0, 0, 0, 203, 0, - 0, 237, 235, 233, 0, 220, 0, 218, 217, 0, - 105, 0, 109, 0, 0, 110, 281, 0, 272, 274, - 254, 251, 302, 305, 263, 262, 279, 0, 256, 257, - 337, 0, 188, 0, 154, 0, 161, 162, 0, 163, - 164, 0, 0, 191, 0, 0, 0, 0, 229, 228, - 0, 111, 0, 0, 282, 253, 280, 258, 0, 0, - 179, 205, 0, 0, 0, 192, 0, 196, 0, 199, - 0, 0, 209, 0, 0, 112, 0, 0, 189, 217, - 0, 202, 347, 0, 194, 197, 0, 193, 198, 200, - 236, 207, 208, 0, 0, 113, 0, 0, 217, 201, - 195, 115, 0, 0, 0, 0, 114, 0, 211, 0, - 190, 210, 0, 0, 0 -}; - -static const short yydefgoto[] = { 603, - 174, 228, 175, 70, 71, 56, 49, 72, 176, 20, - 21, 22, 7, 8, 9, 10, 11, 12, 13, 14, - 232, 233, 110, 87, 40, 58, 86, 108, 133, 134, - 135, 76, 94, 95, 96, 177, 137, 77, 92, 149, - 150, 114, 152, 276, 139, 140, 141, 142, 377, 459, - 460, 17, 37, 59, 54, 89, 38, 52, 79, 80, - 81, 82, 178, 305, 234, 579, 236, 237, 238, 239, - 524, 240, 241, 242, 243, 527, 244, 245, 246, 247, - 528, 248, 534, 557, 558, 559, 560, 249, 250, 530, - 251, 252, 253, 531, 254, 255, 367, 497, 498, 256, - 257, 258, 259, 260, 261, 262, 442, 443, 444, 179, - 180, 181, 182, 401, 183, 384, 385, 386, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 338, 402, 574 -}; - -static const short yypact[] = { 206, --32768, -59, -59, -59, -59,-32768,-32768, 84, -10, 84, --32768,-32768,-32768,-32768, 149,-32768,-32768,-32768, 113,-32768, --32768,-32768, -27, 16, 155, -10,-32768,-32768, 84, -10, --32768, -59, -59,-32768, 6, -59, -23, -13, -59, 44, --32768, -59, -10, -27, 16, 28,-32768,-32768,-32768, 55, - 751,-32768, -59, -23,-32768,-32768, -59,-32768, -23, -13, - 44,-32768,-32768, -59,-32768,-32768,-32768, -59, 94,-32768, --32768, 127, 179, 834,-32768,-32768, 66,-32768, 822,-32768, --32768,-32768,-32768,-32768,-32768, 81, 134,-32768, -23,-32768, - 154, -35, 154, 290,-32768, 27, -35, 166, 177, 187, - -59, -59,-32768,-32768,-32768, -59, 485,-32768,-32768, 134, - 207, -59, 225,-32768,-32768, -59, 1549, 238,-32768,-32768, --32768,-32768, -35, 353, -35,-32768, 271, 2494,-32768, 293, - 834,-32768, 579,-32768,-32768,-32768,-32768, 213,-32768, 286, --32768, 374,-32768,-32768,-32768,-32768, -59, 68, 21,-32768, --32768, 336,-32768,-32768,-32768, 2296, 2296, 2296, 2296, 342, - 363, 294,-32768, 2296, 2296, 2296, 1419,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 366, 338,-32768,-32768, 368, 381, --32768, -59,-32768, 204,-32768, 419, 474,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 443, 518, 505, 310, 508, 472, - 479, 481, 482, 4,-32768,-32768,-32768, 436,-32768,-32768, --32768,-32768,-32768, 405, 407, 2296,-32768, 102, 1600, 412, - 414, 286, 440, 121, 2296,-32768,-32768, -59, 224, 354, - 450, 568,-32768,-32768, 2560,-32768,-32768, 456,-32768,-32768, --32768, 2956,-32768,-32768, 458,-32768,-32768,-32768, 2956,-32768, - 2956,-32768,-32768, 3088, 465,-32768,-32768,-32768,-32768,-32768, - 475,-32768, 215, 284, 474, 496, 517,-32768,-32768,-32768, - 283, 374,-32768,-32768,-32768,-32768, 467, 476, 477, 480, - -59,-32768, 173, -59, 148,-32768,-32768,-32768,-32768,-32768, --32768, 511, -59, 486, 486, 493,-32768,-32768, 171, 369, - 494,-32768, 483,-32768, 226, 522, 1665, 2296, 9, 100, - 2296, 497,-32768,-32768, 2296, 2296, 2296, 2296, 2296, 2296, - 2296, 2296, 2296, 2296, 2296, 2296, 294, 2296, 2296, 2296, - 2296, 2296, 2296, 2296, 2296,-32768,-32768, 2296, 2296, 492, --32768, 495,-32768, 500, 2296, 2296, 287,-32768,-32768, 503, - 499, 504, 1716,-32768, -59,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 530, 68,-32768,-32768,-32768, 509, 1781, 2296, --32768, 200, 477,-32768,-32768, 2626, 506, 480,-32768,-32768, --32768, 515, 1832, 486,-32768, 362, 486, 362, 1897, 2296, - 512, 52, 1832, 125, 3154,-32768,-32768, 1484,-32768,-32768, - 203,-32768, 513,-32768,-32768,-32768,-32768, 520, 519, 1948, --32768,-32768,-32768, 443, 443, 518, 518, 518, 505, 505, - 505, 505, 94,-32768, 310, 310, 508, 472, 479, 481, - 482, 527,-32768, 526,-32768,-32768,-32768, 528, 532, 531, - 286, 287,-32768,-32768,-32768,-32768, 504, 534, 3113, 3113, - 535, 536,-32768, 540, 363, 538,-32768, 411, 2692, 548, - 2758,-32768, 2013,-32768, 523,-32768, 546, 547,-32768, 546, --32768, 134, 245,-32768, 2296, 3154,-32768,-32768,-32768,-32768, - 1368,-32768, 2064,-32768, 134, 260, 2296, 3022,-32768, 552, - 173,-32768,-32768,-32768, 2296,-32768, 554, 509, 3113, 12, --32768, 352,-32768, 2824, 2129,-32768,-32768, 270,-32768,-32768, --32768, 134,-32768,-32768,-32768,-32768,-32768, 288,-32768, 134, --32768, 558,-32768, 596, 600, 3022,-32768,-32768, 3022,-32768, --32768, 560, 13,-32768, 566, 572, 2956, 573,-32768,-32768, - 569,-32768, 574, 291,-32768,-32768,-32768,-32768, 2296, 2956, --32768,-32768, 2180, 584, 2296,-32768, 20,-32768, 2362,-32768, - 286, 578,-32768, 2956, 2245,-32768, 582, 589,-32768, 3113, - 585,-32768,-32768, 602,-32768,-32768, 2428,-32768, 2890,-32768, --32768,-32768,-32768, 593, 326,-32768, 3022, 599, 3113,-32768, --32768,-32768, 597, 639, 3022, 604,-32768, 3022,-32768, 3022, --32768,-32768, 701, 702,-32768 -}; - -static const short yypgoto[] = {-32768, --32768, -1, 209, 376, -22, -106, -20,-32768, 78, -79, --32768, -3,-32768, 694, 30,-32768, 126,-32768,-32768, 329, - 15, 831,-32768,-32768, 660, 645,-32768, -98,-32768, 577, --32768, -87, -92, 591, -138, -160,-32768, -65, 96, 445, - -278, -54,-32768,-32768,-32768,-32768,-32768, 580, 341,-32768, --32768, -30,-32768,-32768,-32768,-32768, 673, 79,-32768, 640, --32768,-32768, 35,-32768, -85, -124, -233,-32768, 469, -55, - -321, -425,-32768, -424,-32768,-32768,-32768, -246,-32768,-32768, --32768,-32768,-32768,-32768, 164, 168, -436, -418,-32768,-32768, --32768,-32768,-32768,-32768,-32768, -296,-32768, -496, 478,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 289, 295,-32768, --32768, 99,-32768, -363,-32768, 431, 29, -100, 973, 183, - 1061, 230, 365, 473, 2, 557, 616, -379,-32768, 212, - 196, 163, 222, 398, 399, 403, 406, 402,-32768, 251, - 408, 663,-32768,-32768, 862,-32768 -}; - - -#define YYLAST 3263 - - -static const short yytable[] = { 23, - 24, 357, 538, 235, 379, 151, 304, 366, 280, 124, - 46, 145, 539, 48, 15, 477, 55, 112, 334, 136, - 78, 144, 15, 15, 15, 473, 18, 130, 44, 45, - 48, 47, 83, 1, 48, 36, 85, 26, 47, 30, - 15, 138, 119, 15, 15, 136, 486, 144, 78, 68, - 3, 130, 277, 130, 278, 296, 4, 15, 43, 554, - 91, 113, 525, 526, 93, 74, 554, 138, 211, 529, - 213, 51, 102, 588, 555, 404, 143, 68, 39, 19, - 405, 555, 25, 48, 406, 126, 53, 279, 6, 55, - 335, 18, 596, 74, 18, 57, 514, 91, 93, 508, - 525, 526, 143, 525, 526, 68, 128, 529, 556, 147, - 529, 31, 154, 50, 282, 575, 50, 63, 117, 518, - 283, 131, 580, 118, 231, 148, 62, 1, 73, 102, - 50, 68, 84, 27, 50, 352, 347, 88, 2, 295, - 580, 544, 378, 154, 3, 475, 281, 131, 468, 65, - 4, 73, 66, 18, 27, 42, 73, 288, 289, 290, - 291, 525, 526, 97, 103, 297, 298, 109, 529, 525, - 526, 407, 525, 526, 525, 526, 529, 380, 312, 529, - 106, 529, 6, 50, 73, 18, 360, 18, 73, 50, - 98, 532, 31, 362, 388, 363, 123, 125, 392, 394, - 341, 585, 496, 366, 551, 230, 18, 552, 73, 32, - 73, 34, 535, 35, 342, 33, 1, 373, 476, 349, - 350, 468, 63, 99, 154, 73, 263, 357, 107, 532, - 355, 231, 532, 285, 285, 285, 285, 479, 231, 50, - 307, 285, 285, 300, 308, 231, 111, 231, 309, 1, - 1, 461, 366, 41, 65, 42, 63, 66, 18, 69, - 2, 55, 447, 120, 390, 594, 3, 391, 364, 147, - 357, 306, 4, 599, 121, 100, 601, 154, 602, 42, - 5, 147, 69, 467, 122, 148, 470, 69, 65, 382, - 532, 66, 18, 453, -342, -342, 480, 148, 532, 283, - 146, 532, 481, 532, 6, 47, 408, 128, -187, 73, - 264, 275, 230, -187, -187, 69, 411, 412, 413, 69, - 98, 397, 153, 366, 306, 398, 1, 323, 324, 325, - 326, 230, 63, 263, 504, 210, 229, 28, 512, 69, - 263, 69, 366, 63, 481, 357, 440, 263, 73, 263, - 441, 154, 263, 520, 28, 492, 69, 265, 28, 481, - 73, 50, 355, 545, 65, -101, 327, 66, 18, 481, - 294, 28, 231, 511, 299, 65, 371, -186, 66, 18, - 128, 547, -186, -186, 567, 271, 519, 481, 115, 116, - 481, 474, 285, 285, 285, 285, 285, 285, 285, 285, - 285, 285, 285, 285, 73, 285, 285, 285, 285, 285, - 285, 285, 466, 546, 540, 466, 541, 264, 404, 593, - 469, 548, 471, 405, 264, 481, 112, 406, -341, -341, - 307, 264, 523, 264, 308, 284, 264, 18, 309, -15, - 69, 73, 292, 229, -341, -341, 307, 315, 316, 317, - 353, 212, 116, 458, 309, 231, 167, 231, 468, -341, - -341, 307, 229, 293, 265, 393, 306, 285, 310, 309, - 360, 265, 285, 362, 263, 581, 513, 311, 265, 69, - 265, 563, 330, 265, 231, 419, 420, 421, 422, 147, - 331, 69, 266, 332, 569, 333, -15, -230, 47, 339, - 231, -341, -341, 307, 345, 148, 346, 353, 583, -343, - -343, 502, 320, 321, 322, 416, 417, 418, 313, 314, - 318, 319, 231, 328, 329, 231, 336, 337, 127, 414, - 415, 523, 348, 231, 63, 423, 230, 354, 230, 563, - -287, -287, 569, 64, 583, 3, 231, 263, 263, 425, - 426, 4, 285, 285, 358, 231, 361, 263, 264, 263, - 231, -288, -288, 369, 285, 374, 65, 370, 73, 66, - 18, 376, 69, 231, 375, 231, 118, 381, 396, 128, - 129, 230, 383, 231, 229, 389, 263, 395, 399, 410, - 435, 231, 446, 436, 231, 448, 231, 263, 437, 266, - 267, 445, 263, 116, 462, 265, 266, 463, 449, 464, - 482, 31, 483, 266, 487, 266, 484, 63, 266, 488, - 509, 489, 127, 491, 263, 490, 495, 263, 63, 500, - -116, 264, 264, 499, 33, 263, 230, 64, 501, 3, - 505, 264, 468, 264, 510, 4, 533, 537, 263, 65, - 549, 550, 66, 18, 230, -160, 230, 263, 553, 561, - 65, 565, 263, 66, 18, 562, 564, 229, 263, 229, - 264, 572, 566, 128, 273, 263, 582, 263, 265, 265, - 586, 264, 587, 589, 268, 263, 264, 263, 265, 590, - 265, 592, 595, 263, 598, 597, 263, 600, 263, 69, - 604, 605, 424, 29, 61, 90, 155, 267, 264, 274, - 272, 264, 229, 454, 267, 372, 60, 265, 105, 264, - 576, 267, 365, 267, 577, 387, 267, 427, 265, 428, - 493, 368, 264, 265, 429, 431, 494, 521, 430, 0, - 266, 264, 0, 269, 0, 433, 264, 0, 0, 0, - 0, 0, 264, 0, 0, 265, 0, 0, 265, 264, - 0, 264, 0, 0, 0, 0, 265, 229, 0, 264, - 0, 264, 0, 0, 0, 0, 0, 264, 0, 265, - 264, 0, 264, 0, 0, 229, 0, 229, 265, 0, - 270, 268, 0, 265, 1, 0, 0, 0, 268, 265, - 63, 0, 0, 0, 0, 268, 265, 268, 265, 64, - 268, 3, 0, 266, 266, 0, 265, 4, 265, 0, - 0, 0, 0, 266, 265, 266, 0, 265, 0, 265, - 16, 0, 65, 0, 0, 66, 18, 0, 16, 16, - 16, 0, 0, 0, 0, 0, 67, 0, 267, 0, - 269, 0, 266, 0, 0, 0, 16, 269, 0, 16, - 16, 0, 0, 266, 269, 1, 269, 0, 266, 269, - 0, 63, 0, 16, 0, 0, 0, 31, 0, 0, - 64, 75, 3, 63, 0, 0, 0, 0, 4, 0, - 266, 0, 101, 266, 32, 0, 0, 270, 0, 0, - 33, 266, 0, 65, 270, 0, 66, 18, 0, 75, - 0, 270, 0, 270, 266, 65, 270, 104, 66, 18, - 0, 267, 267, 266, 0, 0, 0, 0, 266, 0, - 0, 267, 268, 267, 266, 0, 0, 132, 0, 0, - 0, 266, 0, 266, 0, 0, 0, 0, 0, 0, - 0, 266, 0, 266, 0, 0, 0, 0, 0, 266, - 267, 0, 266, 132, 266, 0, 0, 0, 0, 0, - 0, 267, 0, 0, 0, 0, 267, 0, 209, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 269, 0, 0, 0, 0, 0, 0, 267, 0, - 0, 267, 0, 0, 0, 268, 268, 0, 0, 267, - 0, 0, 0, 0, 0, 268, 0, 268, 0, 0, - 0, 0, 267, 0, 0, 0, 0, 301, 209, 0, - 0, 267, 0, 0, 0, 0, 267, 0, 270, 0, - 0, 0, 267, 0, 268, 0, 0, 0, 0, 267, - 0, 267, 0, 0, 0, 268, 0, 0, 0, 267, - 268, 267, 0, 0, 269, 269, 0, 267, 0, 0, - 267, 0, 267, 0, 269, 0, 269, 340, 0, 0, - 344, 0, 268, 0, 0, 268, 351, 0, 0, 0, - 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 269, 0, 0, 268, 0, 0, 0, - 0, 270, 270, 0, 269, 268, 0, 0, 0, 269, - 268, 270, 0, 270, 0, 0, 268, 0, 286, 286, - 286, 286, 0, 268, 0, 268, 286, 286, 0, 0, - 0, 269, 0, 268, 269, 268, 0, 0, 0, 0, - 270, 268, 269, 0, 268, 0, 268, 0, 0, 0, - 0, 270, 0, 0, 0, 269, 270, 0, 0, 403, - 0, 0, 409, 0, 269, 0, 0, 0, 0, 269, - 0, 0, 0, 0, 0, 269, 0, 0, 270, 0, - 0, 270, 269, 0, 269, 0, 432, 0, 0, 270, - 434, 0, 269, 0, 269, 0, 438, 439, 0, 0, - 269, 0, 270, 269, 403, 269, 287, 287, 287, 287, - 0, 270, 0, 0, 287, 287, 270, 0, 0, 0, - 451, 452, 270, 0, 0, 0, 0, 0, 0, 270, - 0, 270, 0, 0, 465, 0, 0, 0, 0, 270, - 0, 270, 0, 0, 403, 0, 0, 270, 0, 209, - 270, 0, 270, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 0, - 286, 286, 286, 286, 286, 286, 286, 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, 516, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, - 0, 0, 286, 0, 0, 0, 0, 286, 515, 0, - 156, 157, 0, 0, 0, 287, 287, 287, 287, 287, - 287, 287, 287, 287, 287, 287, 287, 0, 287, 287, - 287, 287, 287, 287, 287, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 568, 0, 158, 159, 571, 0, 573, 63, 0, 0, - 0, 156, 157, 0, 0, 0, 160, 0, 0, 0, - 0, 0, 161, 0, 0, 0, 0, 0, 0, 162, - 0, 0, 0, 163, 0, 0, 0, 286, 286, 65, - 287, 0, 66, 18, 0, 287, 164, 165, 0, 286, - 166, 0, 0, 158, 159, 0, 0, 0, 63, 168, - 169, 170, 171, 0, 0, 172, 173, 160, 0, 0, - 0, 0, 0, 161, 0, 0, 156, 157, 0, 0, - 162, 0, 0, 0, 163, 0, 0, 0, 0, 0, - 65, 0, 0, 66, 18, 0, 0, 164, 165, 0, - 0, 166, 0, 167, 302, 0, 0, 0, 303, 0, - 168, 169, 170, 171, 0, 0, 172, 173, 158, 159, - 0, 0, 0, 63, 0, 287, 287, 0, 0, 0, - 0, 0, 160, 0, 0, 0, 0, 287, 161, 0, - 0, 156, 157, 0, 0, 162, 0, 0, 0, 163, - 0, 0, 0, 0, 0, 65, 0, 0, 66, 18, - 0, 0, 164, 165, 0, 0, 166, 0, 167, 478, - 0, 0, 0, 0, 0, 168, 169, 170, 171, 0, - 0, 172, 173, 158, 159, 0, 0, 0, 63, 0, - 0, 0, 156, 157, 0, 0, 0, 160, 0, 0, - 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, - 162, 0, 0, 0, 163, 0, 0, 0, 0, 0, - 65, 0, 0, 66, 18, 0, 0, 164, 165, 0, - 0, 166, 0, 167, 158, 159, 0, 0, 0, 63, - 168, 169, 170, 171, 0, 0, 172, 173, 160, 0, - 0, 0, 0, 0, 161, 0, 0, 156, 157, 0, - 0, 162, 0, 0, 0, 163, 0, 0, 0, 0, - 0, 65, 0, 0, 66, 18, 0, 0, 164, 165, - 0, 0, 166, 0, 0, 0, 0, 0, 343, 0, - 0, 168, 169, 170, 171, 0, 0, 172, 173, 158, - 159, 0, 0, 0, 63, 0, 0, 0, 156, 157, - 0, 0, 0, 160, 0, 0, 0, 0, 0, 161, - 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, - 163, 0, 0, 0, 0, 0, 65, 0, 0, 66, - 18, 0, 0, 164, 165, 0, 0, 166, 400, 0, - 158, 159, 0, 0, 0, 63, 168, 169, 170, 171, - 0, 0, 172, 173, 160, 0, 0, 0, 0, 0, - 161, 0, 0, 156, 157, 0, 0, 162, 0, 0, - 0, 163, 0, 0, 0, 0, 0, 65, 0, 0, - 66, 18, 0, 0, 164, 165, 0, 0, 166, 0, - 0, 0, 0, 122, 0, 0, 0, 168, 169, 170, - 171, 0, 0, 172, 173, 158, 159, 0, 0, 0, - 63, 0, 0, 0, 156, 157, 0, 0, 0, 160, - 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, - 0, 0, 162, 0, 0, 0, 163, 0, 0, 0, - 0, 0, 65, 0, 0, 66, 18, 0, 0, 164, - 165, 0, 0, 166, 0, 0, 158, 159, 0, 450, - 0, 63, 168, 169, 170, 171, 0, 0, 172, 173, - 160, 0, 0, 0, 0, 0, 161, 0, 0, 156, - 157, 0, 0, 162, 0, 0, 0, 163, 0, 0, - 0, 0, 0, 65, 0, 0, 66, 18, 0, 0, - 164, 165, 0, 0, 166, 0, 0, 0, 0, 464, - 0, 0, 0, 168, 169, 170, 171, 0, 0, 172, - 173, 158, 159, 0, 0, 0, 63, 0, 0, 0, - 156, 157, 0, 0, 0, 160, 0, 0, 0, 0, - 0, 161, 0, 0, 0, 0, 0, 0, 162, 0, - 0, 0, 163, 0, 0, 0, 0, 0, 65, 0, - 0, 66, 18, 0, 0, 164, 165, 0, 0, 166, - 472, 0, 158, 159, 0, 0, 0, 63, 168, 169, - 170, 171, 0, 0, 172, 173, 160, 0, 0, 0, - 0, 0, 161, 0, 0, 156, 157, 0, 0, 162, - 0, 0, 0, 163, 0, 0, 0, 0, 0, 65, - 0, 0, 66, 18, 0, 0, 164, 165, 0, 0, - 166, 485, 0, 0, 0, 0, 0, 0, 0, 168, - 169, 170, 171, 0, 0, 172, 173, 158, 159, 0, - 0, 0, 63, 0, 0, 0, 156, 157, 0, 0, - 0, 160, 0, 0, 0, 0, 0, 161, 0, 0, - 0, 0, 0, 0, 162, 0, 0, 0, 163, 0, - 0, 0, 0, 0, 65, 0, 0, 66, 18, 0, - 0, 164, 165, 0, 0, 166, 507, 0, 158, 159, - 0, 0, 0, 63, 168, 169, 170, 171, 0, 0, - 172, 173, 160, 0, 0, 0, 0, 0, 161, 0, - 0, 156, 157, 0, 0, 162, 0, 0, 0, 163, - 0, 0, 0, 0, 0, 65, 0, 0, 66, 18, - 0, 0, 164, 165, 0, 0, 166, 517, 0, 0, - 0, 0, 0, 0, 0, 168, 169, 170, 171, 0, - 0, 172, 173, 158, 159, 0, 0, 0, 63, 0, - 0, 0, 156, 157, 0, 0, 0, 160, 0, 0, - 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, - 162, 0, 0, 0, 163, 0, 0, 0, 0, 0, - 65, 0, 0, 66, 18, 0, 0, 164, 165, 0, - 0, 166, 543, 0, 158, 159, 0, 0, 0, 63, - 168, 169, 170, 171, 0, 0, 172, 173, 160, 0, - 0, 0, 0, 0, 161, 0, 0, 156, 157, 0, - 0, 162, 0, 0, 0, 163, 0, 0, 0, 0, - 0, 65, 0, 0, 66, 18, 0, 0, 164, 165, - 0, 0, 166, 0, 0, 0, 0, 0, 570, 0, - 0, 168, 169, 170, 171, 0, 0, 172, 173, 158, - 159, 0, 0, 0, 63, 0, 0, 0, 156, 157, - 0, 0, 0, 160, 0, 0, 0, 0, 0, 161, - 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, - 163, 0, 0, 0, 0, 0, 65, 0, 0, 66, - 18, 0, 0, 164, 165, 0, 0, 166, 584, 0, - 158, 159, 0, 0, 0, 63, 168, 169, 170, 171, - 0, 0, 172, 173, 160, 0, 0, 0, 0, 0, - 161, 0, 0, 0, 0, 0, 0, 162, 0, 0, - 0, 163, 0, 0, 0, 0, 0, 65, 0, 0, - 66, 18, 0, 0, 164, 165, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 0, 0, 168, 169, 170, - 171, 0, 0, 172, 173, 214, 158, 159, 554, 215, - 216, 63, 217, 0, 0, 218, 0, 0, 0, 219, - 160, 0, 0, 555, 0, 0, 161, 220, 4, 221, - 0, 222, 223, 162, 224, 0, 0, 163, 0, 0, - 0, 0, 0, 65, 0, 0, 66, 18, 0, 0, - 0, 0, 0, 0, 225, 0, 128, 578, 0, 0, - 227, 0, 0, 168, 169, 170, 171, 0, 0, 172, - 173, 214, 158, 159, 554, 215, 216, 63, 217, 0, - 0, 218, 0, 0, 0, 219, 160, 0, 0, 555, - 0, 0, 161, 220, 4, 221, 0, 222, 223, 162, - 224, 0, 0, 163, 0, 0, 0, 0, 0, 65, - 0, 0, 66, 18, 0, 0, 0, 0, 0, 0, - 225, 0, 128, 591, 0, 0, 227, 0, 0, 168, - 169, 170, 171, 0, 0, 172, 173, 214, 158, 159, - 0, 215, 216, 63, 217, 0, 0, 218, 0, 0, - 0, 219, 160, 0, 0, 0, 0, 0, 161, 220, - 4, 221, 0, 222, 223, 162, 224, 0, 0, 163, - 0, 0, 0, 0, 0, 65, 0, 0, 66, 18, - 0, 0, 0, 0, 0, 0, 225, 0, 128, 226, - 0, 0, 227, 0, 0, 168, 169, 170, 171, 0, - 0, 172, 173, 214, 158, 159, 0, 215, 216, 63, - 217, 0, 0, 218, 0, 0, 0, 219, 160, 0, - 0, 0, 0, 0, 161, 220, 4, 221, 0, 222, - 223, 162, 224, 0, 0, 163, 0, 0, 0, 0, - 0, 65, 0, 0, 66, 18, 0, 0, 0, 0, - 0, 0, 225, 0, 128, 356, 0, 0, 227, 0, - 0, 168, 169, 170, 171, 0, 0, 172, 173, 214, - 158, 159, 0, 215, 216, 63, 217, 0, 0, 218, - 0, 0, 0, 219, 160, 0, 0, 0, 0, 0, - 455, 220, 4, 221, 0, 222, 223, 162, 224, 0, - 0, 456, 0, 0, 0, 0, 0, 65, 0, 0, - 66, 18, 0, 0, 0, 0, 0, 0, 225, 0, - 128, 457, 0, 0, 227, 0, 0, 168, 169, 170, - 171, 0, 0, 172, 173, 214, 158, 159, 0, 215, - 216, 63, 217, 0, 0, 218, 0, 0, 0, 219, - 160, 0, 0, 0, 0, 0, 161, 220, 4, 221, - 0, 222, 223, 162, 224, 0, 0, 163, 0, 0, - 0, 0, 0, 65, 0, 0, 66, 18, 0, 0, - 0, 0, 0, 0, 225, 0, 128, 503, 0, 0, - 227, 0, 0, 168, 169, 170, 171, 0, 0, 172, - 173, 214, 158, 159, 0, 215, 216, 63, 217, 0, - 0, 218, 0, 0, 0, 219, 160, 0, 0, 0, - 0, 0, 161, 220, 4, 221, 0, 222, 223, 162, - 224, 0, 0, 163, 0, 0, 0, 0, 0, 65, - 0, 0, 66, 18, 0, 0, 0, 0, 0, 0, - 225, 0, 128, 506, 0, 0, 227, 0, 0, 168, - 169, 170, 171, 0, 0, 172, 173, 214, 158, 159, - 0, 215, 216, 63, 217, 0, 0, 218, 0, 0, - 0, 219, 160, 0, 0, 0, 0, 0, 161, 220, - 4, 221, 0, 222, 223, 162, 224, 0, 0, 163, - 0, 0, 0, 0, 0, 65, 0, 0, 66, 18, - 0, 0, 0, 0, 0, 0, 225, 0, 128, 542, - 0, 0, 227, 0, 0, 168, 169, 170, 171, 0, - 0, 172, 173, 214, 158, 159, 0, 215, 216, 63, - 217, 0, 0, 218, 0, 0, 0, 219, 160, 0, - 0, 0, 0, 0, 161, 220, 4, 221, 0, 222, - 223, 162, 224, 0, 0, 163, 0, 0, 0, 0, - 0, 65, 0, 0, 66, 18, 0, 0, 0, 0, - 0, 0, 225, 0, 128, 0, 0, 0, 227, 0, - 0, 168, 169, 170, 171, 0, 0, 172, 173, 359, - 158, 159, 0, 215, 216, 63, 217, 0, 0, 218, - 0, 0, 0, 219, 160, 0, 0, 0, 0, 0, - 161, 220, 0, 221, 0, 222, 223, 162, 224, 0, - 0, 163, 0, 0, 0, 0, 0, 65, 0, 0, - 66, 18, 0, 0, 0, 0, 0, 0, 225, 0, - 128, 0, 0, 0, 227, 0, 0, 168, 169, 170, - 171, 0, 0, 172, 173, 359, 158, 159, 0, 522, - 216, 63, 217, 0, 0, 218, 0, 0, 0, 219, - 160, 0, 0, 0, 0, 0, 161, 220, 0, 221, - 0, 222, 223, 162, 224, 0, 0, 163, 0, 0, - 0, 0, 0, 65, 0, 0, 66, 18, 0, 0, - 0, 0, 0, 0, 225, 0, 128, 0, 0, 0, - 227, 0, 0, 168, 169, 170, 171, 0, 0, 172, - 173, 1, 158, 159, 0, 0, 0, 63, 0, 0, - 0, 0, 0, 0, 0, 0, 160, 0, 0, 0, - 0, 0, 161, 0, 0, 0, 0, 158, 159, 162, - 0, 0, 63, 163, 0, 0, 0, 0, 0, 65, - 0, 160, 66, 18, 0, 0, 0, 161, 0, 0, - 225, 0, 0, 0, 162, 0, 0, 0, 163, 168, - 169, 170, 171, 0, 65, 172, 173, 66, 18, 0, - 0, 0, 0, 63, 0, 225, 0, 0, 0, 0, - 0, 0, 160, 0, 168, 169, 170, 171, 161, 0, - 172, 173, 0, 0, 0, 162, 0, 0, 0, 163, - 0, 0, 0, 0, 0, 65, 0, 0, 66, 18, - 0, 0, 164, 165, 0, 0, 166, 0, 0, 0, - 0, 0, 0, 0, 0, 168, 169, 170, 171, 0, - 0, 172, 173 -}; - -static const short yycheck[] = { 3, - 4, 235, 499, 128, 283, 112, 167, 254, 147, 102, - 5, 110, 1, 36, 0, 395, 39, 53, 15, 107, - 51, 107, 8, 9, 10, 389, 86, 107, 32, 33, - 53, 35, 53, 44, 57, 63, 57, 8, 42, 10, - 26, 107, 97, 29, 30, 133, 410, 133, 79, 51, - 61, 131, 138, 133, 140, 162, 67, 43, 29, 47, - 64, 97, 488, 488, 68, 51, 47, 133, 123, 488, - 125, 95, 74, 570, 62, 67, 107, 79, 63, 2, - 72, 62, 5, 106, 76, 106, 100, 142, 99, 112, - 87, 86, 589, 79, 86, 52, 476, 101, 102, 463, - 526, 526, 133, 529, 529, 107, 95, 526, 96, 111, - 529, 44, 116, 36, 94, 96, 39, 50, 92, 483, - 100, 107, 559, 97, 128, 111, 99, 44, 51, 131, - 53, 133, 54, 8, 57, 228, 222, 59, 55, 162, - 577, 505, 281, 147, 61, 94, 148, 133, 97, 82, - 67, 74, 85, 86, 29, 101, 79, 156, 157, 158, - 159, 587, 587, 68, 99, 164, 165, 89, 587, 595, - 595, 72, 598, 598, 600, 600, 595, 284, 182, 598, - 100, 600, 99, 106, 107, 86, 242, 86, 111, 112, - 97, 488, 44, 249, 295, 251, 101, 102, 299, 300, - 99, 565, 449, 450, 526, 128, 86, 529, 131, 61, - 133, 99, 491, 101, 218, 67, 44, 272, 94, 99, - 224, 97, 50, 97, 228, 148, 128, 461, 95, 526, - 232, 235, 529, 156, 157, 158, 159, 398, 242, 162, - 93, 164, 165, 166, 97, 249, 93, 251, 101, 44, - 44, 376, 499, 99, 82, 101, 50, 85, 86, 51, - 55, 284, 355, 98, 94, 587, 61, 97, 254, 271, - 504, 101, 67, 595, 98, 97, 598, 281, 600, 101, - 75, 283, 74, 384, 98, 271, 387, 79, 82, 293, - 587, 85, 86, 94, 91, 92, 94, 283, 595, 100, - 94, 598, 100, 600, 99, 309, 310, 95, 94, 232, - 128, 99, 235, 99, 100, 107, 315, 316, 317, 111, - 97, 96, 98, 570, 101, 100, 44, 18, 19, 20, - 21, 254, 50, 235, 459, 98, 128, 9, 94, 131, - 242, 133, 589, 50, 100, 579, 60, 249, 271, 251, - 64, 355, 254, 94, 26, 441, 148, 128, 30, 100, - 283, 284, 364, 94, 82, 95, 57, 85, 86, 100, - 162, 43, 376, 472, 166, 82, 94, 94, 85, 86, - 95, 94, 99, 100, 94, 93, 485, 100, 99, 100, - 100, 390, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 384, 512, 500, 387, 65, 235, 67, 94, - 386, 520, 388, 72, 242, 100, 53, 76, 91, 92, - 93, 249, 488, 251, 97, 100, 254, 86, 101, 86, - 232, 364, 101, 235, 91, 92, 93, 5, 6, 7, - 97, 99, 100, 376, 101, 459, 95, 461, 97, 91, - 92, 93, 254, 101, 235, 97, 101, 390, 101, 101, - 526, 242, 395, 529, 376, 561, 475, 97, 249, 271, - 251, 537, 11, 254, 488, 323, 324, 325, 326, 491, - 12, 283, 128, 13, 550, 14, 86, 93, 502, 93, - 504, 91, 92, 93, 93, 491, 93, 97, 564, 91, - 92, 101, 8, 9, 10, 320, 321, 322, 45, 46, - 3, 4, 526, 16, 17, 529, 91, 92, 44, 318, - 319, 587, 93, 537, 50, 327, 459, 88, 461, 595, - 45, 46, 598, 59, 600, 61, 550, 449, 450, 328, - 329, 67, 475, 476, 99, 559, 99, 459, 376, 461, - 564, 45, 46, 99, 487, 99, 82, 93, 491, 85, - 86, 95, 364, 577, 99, 579, 97, 67, 96, 95, - 96, 504, 97, 587, 376, 93, 488, 94, 67, 93, - 99, 595, 94, 99, 598, 66, 600, 499, 99, 235, - 128, 99, 504, 100, 99, 376, 242, 93, 100, 98, - 98, 44, 93, 249, 88, 251, 98, 50, 254, 94, - 98, 94, 44, 93, 526, 94, 93, 529, 50, 94, - 93, 449, 450, 99, 67, 537, 559, 59, 99, 61, - 93, 459, 97, 461, 98, 67, 95, 94, 550, 82, - 93, 56, 85, 86, 577, 56, 579, 559, 99, 94, - 82, 93, 564, 85, 86, 94, 94, 459, 570, 461, - 488, 88, 99, 95, 96, 577, 99, 579, 449, 450, - 99, 499, 94, 99, 128, 587, 504, 589, 459, 88, - 461, 99, 94, 595, 56, 99, 598, 94, 600, 491, - 0, 0, 327, 10, 45, 61, 116, 235, 526, 133, - 131, 529, 504, 373, 242, 271, 44, 488, 79, 537, - 557, 249, 254, 251, 557, 295, 254, 330, 499, 331, - 442, 254, 550, 504, 332, 334, 442, 487, 333, -1, - 376, 559, -1, 128, -1, 338, 564, -1, -1, -1, - -1, -1, 570, -1, -1, 526, -1, -1, 529, 577, - -1, 579, -1, -1, -1, -1, 537, 559, -1, 587, - -1, 589, -1, -1, -1, -1, -1, 595, -1, 550, - 598, -1, 600, -1, -1, 577, -1, 579, 559, -1, - 128, 235, -1, 564, 44, -1, -1, -1, 242, 570, - 50, -1, -1, -1, -1, 249, 577, 251, 579, 59, - 254, 61, -1, 449, 450, -1, 587, 67, 589, -1, - -1, -1, -1, 459, 595, 461, -1, 598, -1, 600, - 0, -1, 82, -1, -1, 85, 86, -1, 8, 9, - 10, -1, -1, -1, -1, -1, 96, -1, 376, -1, - 235, -1, 488, -1, -1, -1, 26, 242, -1, 29, - 30, -1, -1, 499, 249, 44, 251, -1, 504, 254, - -1, 50, -1, 43, -1, -1, -1, 44, -1, -1, - 59, 51, 61, 50, -1, -1, -1, -1, 67, -1, - 526, -1, 59, 529, 61, -1, -1, 235, -1, -1, - 67, 537, -1, 82, 242, -1, 85, 86, -1, 79, - -1, 249, -1, 251, 550, 82, 254, 96, 85, 86, - -1, 449, 450, 559, -1, -1, -1, -1, 564, -1, - -1, 459, 376, 461, 570, -1, -1, 107, -1, -1, - -1, 577, -1, 579, -1, -1, -1, -1, -1, -1, - -1, 587, -1, 589, -1, -1, -1, -1, -1, 595, - 488, -1, 598, 133, 600, -1, -1, -1, -1, -1, - -1, 499, -1, -1, -1, -1, 504, -1, 117, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 376, -1, -1, -1, -1, -1, -1, 526, -1, - -1, 529, -1, -1, -1, 449, 450, -1, -1, 537, - -1, -1, -1, -1, -1, 459, -1, 461, -1, -1, - -1, -1, 550, -1, -1, -1, -1, 166, 167, -1, - -1, 559, -1, -1, -1, -1, 564, -1, 376, -1, - -1, -1, 570, -1, 488, -1, -1, -1, -1, 577, - -1, 579, -1, -1, -1, 499, -1, -1, -1, 587, - 504, 589, -1, -1, 449, 450, -1, 595, -1, -1, - 598, -1, 600, -1, 459, -1, 461, 216, -1, -1, - 219, -1, 526, -1, -1, 529, 225, -1, -1, -1, - -1, -1, -1, 537, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 488, -1, -1, 550, -1, -1, -1, - -1, 449, 450, -1, 499, 559, -1, -1, -1, 504, - 564, 459, -1, 461, -1, -1, 570, -1, 156, 157, - 158, 159, -1, 577, -1, 579, 164, 165, -1, -1, - -1, 526, -1, 587, 529, 589, -1, -1, -1, -1, - 488, 595, 537, -1, 598, -1, 600, -1, -1, -1, - -1, 499, -1, -1, -1, 550, 504, -1, -1, 308, - -1, -1, 311, -1, 559, -1, -1, -1, -1, 564, - -1, -1, -1, -1, -1, 570, -1, -1, 526, -1, - -1, 529, 577, -1, 579, -1, 335, -1, -1, 537, - 339, -1, 587, -1, 589, -1, 345, 346, -1, -1, - 595, -1, 550, 598, 353, 600, 156, 157, 158, 159, - -1, 559, -1, -1, 164, 165, 564, -1, -1, -1, - 369, 370, 570, -1, -1, -1, -1, -1, -1, 577, - -1, 579, -1, -1, 383, -1, -1, -1, -1, 587, - -1, 589, -1, -1, 393, -1, -1, 595, -1, 398, - 598, -1, 600, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, - 328, 329, 330, 331, 332, 333, 334, -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, 481, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 495, -1, -1, -1, - -1, -1, 390, -1, -1, -1, -1, 395, 1, -1, - 3, 4, -1, -1, -1, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 549, -1, 45, 46, 553, -1, 555, 50, -1, -1, - -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, - -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, - -1, -1, -1, 76, -1, -1, -1, 475, 476, 82, - 390, -1, 85, 86, -1, 395, 89, 90, -1, 487, - 93, -1, -1, 45, 46, -1, -1, -1, 50, 102, - 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, - -1, -1, -1, 65, -1, -1, 3, 4, -1, -1, - 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, - 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, 95, 96, -1, -1, -1, 100, -1, - 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, - -1, -1, -1, 50, -1, 475, 476, -1, -1, -1, - -1, -1, 59, -1, -1, -1, -1, 487, 65, -1, - -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, 95, 96, - -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, - -1, -1, 3, 4, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, - 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, - 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, 95, 45, 46, -1, -1, -1, 50, - 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, - -1, -1, -1, -1, 65, -1, -1, 3, 4, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, -1, -1, -1, 99, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, - 46, -1, -1, -1, 50, -1, -1, -1, 3, 4, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, - 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, - 86, -1, -1, 89, 90, -1, -1, 93, 94, -1, - 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, - -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, - 65, -1, -1, 3, 4, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, - 50, -1, -1, -1, 3, 4, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, - -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, - -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, 45, 46, -1, 99, - -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, - 59, -1, -1, -1, -1, -1, 65, -1, -1, 3, - 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, -1, -1, -1, -1, 98, - -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 45, 46, -1, -1, -1, 50, -1, -1, -1, - 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, - -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, - -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - 94, -1, 45, 46, -1, -1, -1, 50, 102, 103, - 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, - -1, -1, 65, -1, -1, 3, 4, -1, -1, 72, - -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, - -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, 94, -1, -1, -1, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, - -1, -1, 50, -1, -1, -1, 3, 4, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, - -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, 94, -1, 45, 46, - -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, - 108, 109, 59, -1, -1, -1, -1, -1, 65, -1, - -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, 94, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, - -1, -1, 3, 4, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, - 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, - 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, 94, -1, 45, 46, -1, -1, -1, 50, - 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, - -1, -1, -1, -1, 65, -1, -1, 3, 4, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, -1, -1, -1, 99, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, - 46, -1, -1, -1, 50, -1, -1, -1, 3, 4, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, - 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, - 86, -1, -1, 89, 90, -1, -1, 93, 94, -1, - 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, - -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, - 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 44, 45, 46, 47, 48, - 49, 50, 51, -1, -1, 54, -1, -1, -1, 58, - 59, -1, -1, 62, -1, -1, 65, 66, 67, 68, - -1, 70, 71, 72, 73, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - -1, -1, -1, -1, 93, -1, 95, 96, -1, -1, - 99, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 44, 45, 46, 47, 48, 49, 50, 51, -1, - -1, 54, -1, -1, -1, 58, 59, -1, -1, 62, - -1, -1, 65, 66, 67, 68, -1, 70, 71, 72, - 73, -1, -1, 76, -1, -1, -1, -1, -1, 82, - -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, - 93, -1, 95, 96, -1, -1, 99, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 44, 45, 46, - -1, 48, 49, 50, 51, -1, -1, 54, -1, -1, - -1, 58, 59, -1, -1, -1, -1, -1, 65, 66, - 67, 68, -1, 70, 71, 72, 73, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, -1, -1, -1, -1, 93, -1, 95, 96, - -1, -1, 99, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, 44, 45, 46, -1, 48, 49, 50, - 51, -1, -1, 54, -1, -1, -1, 58, 59, -1, - -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, - 71, 72, 73, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, -1, -1, - -1, -1, 93, -1, 95, 96, -1, -1, 99, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 44, - 45, 46, -1, 48, 49, 50, 51, -1, -1, 54, - -1, -1, -1, 58, 59, -1, -1, -1, -1, -1, - 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, -1, -1, -1, -1, 93, -1, - 95, 96, -1, -1, 99, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 44, 45, 46, -1, 48, - 49, 50, 51, -1, -1, 54, -1, -1, -1, 58, - 59, -1, -1, -1, -1, -1, 65, 66, 67, 68, - -1, 70, 71, 72, 73, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - -1, -1, -1, -1, 93, -1, 95, 96, -1, -1, - 99, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 44, 45, 46, -1, 48, 49, 50, 51, -1, - -1, 54, -1, -1, -1, 58, 59, -1, -1, -1, - -1, -1, 65, 66, 67, 68, -1, 70, 71, 72, - 73, -1, -1, 76, -1, -1, -1, -1, -1, 82, - -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, - 93, -1, 95, 96, -1, -1, 99, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 44, 45, 46, - -1, 48, 49, 50, 51, -1, -1, 54, -1, -1, - -1, 58, 59, -1, -1, -1, -1, -1, 65, 66, - 67, 68, -1, 70, 71, 72, 73, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, -1, -1, -1, -1, 93, -1, 95, 96, - -1, -1, 99, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, 44, 45, 46, -1, 48, 49, 50, - 51, -1, -1, 54, -1, -1, -1, 58, 59, -1, - -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, - 71, 72, 73, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, -1, -1, - -1, -1, 93, -1, 95, -1, -1, -1, 99, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 44, - 45, 46, -1, 48, 49, 50, 51, -1, -1, 54, - -1, -1, -1, 58, 59, -1, -1, -1, -1, -1, - 65, 66, -1, 68, -1, 70, 71, 72, 73, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, -1, -1, -1, -1, 93, -1, - 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 44, 45, 46, -1, 48, - 49, 50, 51, -1, -1, 54, -1, -1, -1, 58, - 59, -1, -1, -1, -1, -1, 65, 66, -1, 68, - -1, 70, 71, 72, 73, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - -1, -1, -1, -1, 93, -1, 95, -1, -1, -1, - 99, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 44, 45, 46, -1, -1, -1, 50, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, 65, -1, -1, -1, -1, 45, 46, 72, - -1, -1, 50, 76, -1, -1, -1, -1, -1, 82, - -1, 59, 85, 86, -1, -1, -1, 65, -1, -1, - 93, -1, -1, -1, 72, -1, -1, -1, 76, 102, - 103, 104, 105, -1, 82, 108, 109, 85, 86, -1, - -1, -1, -1, 50, -1, 93, -1, -1, -1, -1, - -1, -1, 59, -1, 102, 103, 104, 105, 65, -1, - 108, 109, -1, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109 -}; -#define YYPURE 1 - -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/lib/bison.simple" -/* This file comes from bison-1.28. */ - -/* Skeleton output parser for bison, - Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ - -/* This is the parser code that is written into each bison parser - when the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -#ifndef YYSTACK_USE_ALLOCA -#ifdef alloca -#define YYSTACK_USE_ALLOCA -#else /* alloca not defined */ -#ifdef __GNUC__ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#else /* not GNU C. */ -#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) -#define YYSTACK_USE_ALLOCA -#include -#else /* not sparc */ -/* We think this test detects Watcom and Microsoft C. */ -/* This used to test MSDOS, but that is a bad idea - since that symbol is in the user namespace. */ -#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) -#if 0 /* No need for malloc.h, which pollutes the namespace; - instead, just don't use alloca. */ -#include -#endif -#else /* not MSDOS, or __TURBOC__ */ -#if defined(_AIX) -/* I don't know what this was needed for, but it pollutes the namespace. - So I turned it off. rms, 2 May 1997. */ -/* #include */ - #pragma alloca -#define YYSTACK_USE_ALLOCA -#else /* not MSDOS, or __TURBOC__, or _AIX */ -#if 0 -#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, - and on HPUX 10. Eventually we can turn this on. */ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#endif /* __hpux */ -#endif -#endif /* not _AIX */ -#endif /* not MSDOS, or __TURBOC__ */ -#endif /* not sparc */ -#endif /* not GNU C */ -#endif /* alloca not defined */ -#endif /* YYSTACK_USE_ALLOCA not defined */ - -#ifdef YYSTACK_USE_ALLOCA -#define YYSTACK_ALLOC alloca -#else -#define YYSTACK_ALLOC malloc -#endif - -/* Note: there must be only one dollar sign in this file. - It is replaced by the list of actions, each action - as one case of the switch. */ - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 -#define YYEOF 0 -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 -/* Like YYERROR except do call yyerror. - This remains here temporarily to ease the - transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ -#define YYFAIL goto yyerrlab -#define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(token, value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { yychar = (token), yylval = (value); \ - yychar1 = YYTRANSLATE (yychar); \ - YYPOPSTACK; \ - goto yybackup; \ - } \ - else \ - { yyerror ("syntax error: cannot back up"); YYERROR; } \ -while (0) - -#define YYTERROR 1 -#define YYERRCODE 256 - -#ifndef YYPURE -#define YYLEX yylex() -#endif - -#ifdef YYPURE -#ifdef YYLSP_NEEDED -#ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) -#else -#define YYLEX yylex(&yylval, &yylloc) -#endif -#else /* not YYLSP_NEEDED */ -#ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, YYLEX_PARAM) -#else -#define YYLEX yylex(&yylval) -#endif -#endif /* not YYLSP_NEEDED */ -#endif - -/* If nonreentrant, generate the variables here */ - -#ifndef YYPURE - -int yychar; /* the lookahead symbol */ -YYSTYPE yylval; /* the semantic value of the */ - /* lookahead symbol */ - -#ifdef YYLSP_NEEDED -YYLTYPE yylloc; /* location data for the lookahead */ - /* symbol */ -#endif - -int yynerrs; /* number of parse errors so far */ -#endif /* not YYPURE */ - -#if YYDEBUG != 0 -int yydebug; /* nonzero means print parse trace */ -/* Since this is uninitialized, it does not stop multiple parsers - from coexisting. */ -#endif - -/* YYINITDEPTH indicates the initial size of the parser's stacks */ - -#ifndef YYINITDEPTH -#define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH is the maximum size the stacks can grow to - (effective only if the built-in stack extension method is used). */ - -#if YYMAXDEPTH == 0 -#undef YYMAXDEPTH -#endif - -#ifndef YYMAXDEPTH -#define YYMAXDEPTH 10000 -#endif - -/* Define __yy_memcpy. Note that the size argument - should be passed with type unsigned int, because that is what the non-GCC - definitions require. With GCC, __builtin_memcpy takes an arg - of type size_t, but it can handle unsigned int. */ - -#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ -#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 (to, from, count) - char *to; - char *from; - unsigned int count; -{ - register char *f = from; - register char *t = to; - register int i = count; - - while (i-- > 0) - *t++ = *f++; -} - -#else /* __cplusplus */ - -/* This is the most reliable way to avoid incompatibilities - in available built-in functions on various systems. */ -static void -__yy_memcpy (char *to, char *from, unsigned int count) -{ - register char *t = to; - register char *f = from; - register int i = count; - - while (i-- > 0) - *t++ = *f++; -} - -#endif -#endif - -#line 217 "/usr/lib/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 *. - It should actually point to an object. - Grammar actions can access the variable by casting it - 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; -#endif /* not __cplusplus */ -#else /* not YYPARSE_PARAM */ -#define YYPARSE_PARAM_ARG -#define YYPARSE_PARAM_DECL -#endif /* not YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -#ifdef YYPARSE_PARAM -int yyparse (void *); -#else -int yyparse (void); -#endif -#endif - -int -yyparse(YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - register int yystate; - register int yyn; - register short *yyssp; - register YYSTYPE *yyvsp; - int yyerrstatus; /* number of tokens to shift before error messages enabled */ - int yychar1 = 0; /* lookahead token as an internal (translated) token number */ - - short yyssa[YYINITDEPTH]; /* the state stack */ - YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ - - short *yyss = yyssa; /* refer to the stacks thru separate pointers */ - YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ - -#ifdef YYLSP_NEEDED - YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; - -#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -#define YYPOPSTACK (yyvsp--, yyssp--) -#endif - - int yystacksize = YYINITDEPTH; - int yyfree_stacks = 0; - -#ifdef YYPURE - int yychar; - YYSTYPE yylval; - int yynerrs; -#ifdef YYLSP_NEEDED - YYLTYPE yylloc; -#endif -#endif - - YYSTYPE yyval; /* the variable used to return */ - /* semantic values from the action */ - /* routines */ - - int yylen; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Starting parse\n"); -#endif - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - - yyssp = yyss - 1; - yyvsp = yyvs; -#ifdef YYLSP_NEEDED - yylsp = yyls; -#endif - -/* Push a new state, which is found in yystate . */ -/* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. */ -yynewstate: - - *++yyssp = yystate; - - if (yyssp >= yyss + yystacksize - 1) - { - /* Give user a chance to reallocate the stack */ - /* Use copies of these so that the &'s don't force the real ones into memory. */ - YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; -#ifdef YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; -#endif - - /* Get the current used size of the three stacks, in elements. */ - int size = yyssp - yyss + 1; - -#ifdef yyoverflow - /* Each stack pointer address is followed by the size of - the data in use in that stack, in bytes. */ -#ifdef YYLSP_NEEDED - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yyls1, size * sizeof (*yylsp), - &yystacksize); -#else - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yystacksize); -#endif - - yyss = yyss1; yyvs = yyvs1; -#ifdef YYLSP_NEEDED - yyls = yyls1; -#endif -#else /* no yyoverflow */ - /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - { - yyerror("parser stack overflow"); - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 2; - } - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - yystacksize = YYMAXDEPTH; -#ifndef YYSTACK_USE_ALLOCA - yyfree_stacks = 1; -#endif - yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); - __yy_memcpy ((char *)yyss, (char *)yyss1, - size * (unsigned int) sizeof (*yyssp)); - yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); - __yy_memcpy ((char *)yyvs, (char *)yyvs1, - size * (unsigned int) sizeof (*yyvsp)); -#ifdef YYLSP_NEEDED - yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); - __yy_memcpy ((char *)yyls, (char *)yyls1, - size * (unsigned int) sizeof (*yylsp)); -#endif -#endif /* no yyoverflow */ - - yyssp = yyss + size - 1; - yyvsp = yyvs + size - 1; -#ifdef YYLSP_NEEDED - yylsp = yyls + size - 1; -#endif - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Stack size increased to %d\n", yystacksize); -#endif - - if (yyssp >= yyss + yystacksize - 1) - YYABORT; - } - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Entering state %d\n", yystate); -#endif - - goto yybackup; - yybackup: - -/* Do appropriate processing given the current state. */ -/* Read a lookahead token if we need one and don't already have one. */ -/* yyresume: */ - - /* First try to decide what to do without reference to lookahead token. */ - - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - - if (yychar == YYEMPTY) - { -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Reading a token: "); -#endif - yychar = YYLEX; - } - - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ - { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Now at end of input.\n"); -#endif - } - else - { - yychar1 = YYTRANSLATE(yychar); - -#if YYDEBUG != 0 - if (yydebug) - { - fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise meaning - of a token, for further debugging info. */ -#ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -#endif - fprintf (stderr, ")\n"); - } -#endif - } - - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; - - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the lookahead token. */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); -#endif - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* count tokens shifted since error; after three, turn off error status. */ - if (yyerrstatus) yyerrstatus--; - - yystate = yyn; - goto yynewstate; - -/* Do the default action for the current state. */ -yydefault: - - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - -/* Do a reduction. yyn is the number of a rule to reduce with. */ -yyreduce: - yylen = yyr2[yyn]; - if (yylen > 0) - yyval = yyvsp[1-yylen]; /* implement default value of the action */ - -#if YYDEBUG != 0 - if (yydebug) - { - int i; - - fprintf (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) - fprintf (stderr, "%s ", yytname[yyrhs[i]]); - fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - - switch (yyn) { - -case 10: -#line 203 "./parse-scan.y" -{ - /* use preset global here. FIXME */ - yyval.node = xstrdup ("int"); - ; - break;} -case 11: -#line 208 "./parse-scan.y" -{ - /* use preset global here. FIXME */ - yyval.node = xstrdup ("double"); - ; - break;} -case 12: -#line 213 "./parse-scan.y" -{ - /* use preset global here. FIXME */ - yyval.node = xstrdup ("boolean"); - ; - break;} -case 19: -#line 239 "./parse-scan.y" -{ - yyval.node = concat ("[", yyvsp[-2].node, NULL); - ; - break;} -case 20: -#line 243 "./parse-scan.y" -{ - yyval.node = concat ("[", yyvsp[-2].node, NULL); - ; - break;} -case 24: -#line 260 "./parse-scan.y" -{ - yyval.node = concat (yyvsp[-2].node, ".", yyvsp[0].node, NULL); - ; - break;} -case 38: -#line 292 "./parse-scan.y" -{ package_name = yyvsp[-1].node; ; - break;} -case 46: -#line 319 "./parse-scan.y" -{ - if (yyvsp[0].value == PUBLIC_TK) - modifier_value++; - if (yyvsp[0].value == STATIC_TK) - modifier_value++; - USE_ABSORBER; - ; - break;} -case 47: -#line 327 "./parse-scan.y" -{ - if (yyvsp[0].value == PUBLIC_TK) - modifier_value++; - if (yyvsp[0].value == STATIC_TK) - modifier_value++; - USE_ABSORBER; - ; - break;} -case 48: -#line 339 "./parse-scan.y" -{ - report_class_declaration(yyvsp[-2].node); - modifier_value = 0; - ; - break;} -case 50: -#line 345 "./parse-scan.y" -{ report_class_declaration(yyvsp[-2].node); ; - break;} -case 56: -#line 359 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 57: -#line 361 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 58: -#line 366 "./parse-scan.y" -{ pop_class_context (); ; - break;} -case 59: -#line 368 "./parse-scan.y" -{ pop_class_context (); ; - break;} -case 70: -#line 393 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 71: -#line 395 "./parse-scan.y" -{ modifier_value = 0; ; - break;} -case 76: -#line 411 "./parse-scan.y" -{ bracket_count = 0; USE_ABSORBER; ; - break;} -case 77: -#line 413 "./parse-scan.y" -{ ++bracket_count; ; - break;} -case 81: -#line 428 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 83: -#line 431 "./parse-scan.y" -{ modifier_value = 0; ; - break;} -case 84: -#line 433 "./parse-scan.y" -{ - report_main_declaration (yyvsp[-1].declarator); - modifier_value = 0; - ; - break;} -case 85: -#line 441 "./parse-scan.y" -{ - struct method_declarator *d; - NEW_METHOD_DECLARATOR (d, yyvsp[-2].node, NULL); - yyval.declarator = d; - ; - break;} -case 86: -#line 447 "./parse-scan.y" -{ - struct method_declarator *d; - NEW_METHOD_DECLARATOR (d, yyvsp[-3].node, yyvsp[-1].node); - yyval.declarator = d; - ; - break;} -case 89: -#line 458 "./parse-scan.y" -{ - yyval.node = concat (yyvsp[-2].node, ",", yyvsp[0].node, NULL); - ; - break;} -case 90: -#line 465 "./parse-scan.y" -{ - USE_ABSORBER; - if (bracket_count) - { - int i; - char *n = xmalloc (bracket_count + 1 + strlen (yyval.node)); - for (i = 0; i < bracket_count; ++i) - n[i] = '['; - strcpy (n + bracket_count, yyval.node); - yyval.node = n; - } - else - yyval.node = yyvsp[-1].node; - ; - break;} -case 91: -#line 480 "./parse-scan.y" -{ - if (bracket_count) - { - int i; - char *n = xmalloc (bracket_count + 1 + strlen (yyval.node)); - for (i = 0; i < bracket_count; ++i) - n[i] = '['; - strcpy (n + bracket_count, yyval.node); - yyval.node = n; - } - else - yyval.node = yyvsp[-1].node; - ; - break;} -case 94: -#line 501 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 95: -#line 503 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 101: -#line 520 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 103: -#line 531 "./parse-scan.y" -{ modifier_value = 0; ; - break;} -case 105: -#line 536 "./parse-scan.y" -{ modifier_value = 0; ; - break;} -case 106: -#line 543 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 107: -#line 545 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 114: -#line 562 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 115: -#line 564 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 118: -#line 576 "./parse-scan.y" -{ report_class_declaration (yyvsp[0].node); modifier_value = 0; ; - break;} -case 120: -#line 579 "./parse-scan.y" -{ report_class_declaration (yyvsp[0].node); modifier_value = 0; ; - break;} -case 122: -#line 582 "./parse-scan.y" -{ report_class_declaration (yyvsp[-1].node); modifier_value = 0; ; - break;} -case 124: -#line 585 "./parse-scan.y" -{ report_class_declaration (yyvsp[-1].node); modifier_value = 0; ; - break;} -case 128: -#line 596 "./parse-scan.y" -{ pop_class_context (); ; - break;} -case 129: -#line 598 "./parse-scan.y" -{ pop_class_context (); ; - break;} -case 152: -#line 657 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 153: -#line 659 "./parse-scan.y" -{ modifier_value = 0; ; - break;} -case 177: -#line 699 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 230: -#line 846 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 247: -#line 886 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 248: -#line 888 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 250: -#line 894 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 259: -#line 916 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 277: -#line 958 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 278: -#line 960 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 283: -#line 969 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 286: -#line 976 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -case 341: -#line 1095 "./parse-scan.y" -{ USE_ABSORBER; ; - break;} -} - /* the action file gets copied in in place of this dollarsign */ -#line 543 "/usr/lib/bison.simple" - - yyvsp -= yylen; - yyssp -= yylen; -#ifdef YYLSP_NEEDED - yylsp -= yylen; -#endif - -#if YYDEBUG != 0 - if (yydebug) - { - short *ssp1 = yyss - 1; - fprintf (stderr, "state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif - - *++yyvsp = yyval; - -#ifdef YYLSP_NEEDED - yylsp++; - if (yylen == 0) - { - yylsp->first_line = yylloc.first_line; - yylsp->first_column = yylloc.first_column; - yylsp->last_line = (yylsp-1)->last_line; - yylsp->last_column = (yylsp-1)->last_column; - yylsp->text = 0; - } - else - { - yylsp->last_line = (yylsp+yylen-1)->last_line; - yylsp->last_column = (yylsp+yylen-1)->last_column; - } -#endif - - /* Now "shift" the result of the reduction. - Determine what state that goes to, - based on the state we popped back to - and the rule number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; - - goto yynewstate; - -yyerrlab: /* here on detecting error */ - - if (! yyerrstatus) - /* If not already recovering from an error, report this error. */ - { - ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - int size = 0; - char *msg; - int x, count; - - count = 0; - /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - size += strlen(yytname[x]) + 15, count++; - msg = (char *) malloc(size + 15); - if (msg != 0) - { - strcpy(msg, "parse error"); - - if (count < 5) - { - count = 0; - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - { - strcat(msg, count == 0 ? ", expecting `" : " or `"); - strcat(msg, yytname[x]); - strcat(msg, "'"); - count++; - } - } - yyerror(msg); - free(msg); - } - else - yyerror ("parse error; also virtual memory exceeded"); - } - else -#endif /* YYERROR_VERBOSE */ - yyerror("parse error"); - } - - goto yyerrlab1; -yyerrlab1: /* here on error raised explicitly by an action */ - - if (yyerrstatus == 3) - { - /* if just tried and failed to reuse lookahead token after an error, discard it. */ - - /* return failure if at end of input */ - if (yychar == YYEOF) - YYABORT; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); -#endif - - yychar = YYEMPTY; - } - - /* Else will try to reuse lookahead token - after shifting the error token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - -yyerrdefault: /* current state does not do anything special for the error token. */ - -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ - if (yyn) goto yydefault; -#endif - -yyerrpop: /* pop the current state because it cannot handle the error token */ - - if (yyssp == yyss) YYABORT; - yyvsp--; - yystate = *--yyssp; -#ifdef YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG != 0 - if (yydebug) - { - short *ssp1 = yyss - 1; - fprintf (stderr, "Error: state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif - -yyerrhandle: - - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - - if (yyn == YYFINAL) - YYACCEPT; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting error token, "); -#endif - - *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - yystate = yyn; - goto yynewstate; - - yyacceptlab: - /* YYACCEPT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 0; - - yyabortlab: - /* YYABORT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 1; -} -#line 1113 "./parse-scan.y" - - -/* Create a new parser context */ - -void -java_push_parser_context () -{ - struct parser_ctxt *new = - (struct parser_ctxt *) xcalloc (1, sizeof (struct parser_ctxt)); - - new->next = ctxp; - ctxp = new; -} - -static void -push_class_context (name) - const char *name; -{ - size_t name_length = strlen (name); - inner_qualifier = xrealloc (inner_qualifier, - inner_qualifier_length + name_length+2); - memcpy (inner_qualifier+inner_qualifier_length, name, name_length); - inner_qualifier_length += name_length; - inner_qualifier [inner_qualifier_length] = '$'; - inner_qualifier [++inner_qualifier_length] = '\0'; -} - -static void -pop_class_context () -{ - while (--inner_qualifier_length > 0 - && inner_qualifier [inner_qualifier_length-1] != '$') - ; - inner_qualifier = xrealloc (inner_qualifier, inner_qualifier_length+1); - if (inner_qualifier_length == -1) - inner_qualifier_length = 0; - inner_qualifier [inner_qualifier_length] = '\0'; -} - -/* Actions defined here */ -#define INNER_QUALIFIER (inner_qualifier ? inner_qualifier : "") - -static void -report_class_declaration (name) - const char * name; -{ - extern int flag_dump_class, flag_list_filename; - - if (flag_dump_class) - { - if (!previous_output) - { - if (flag_list_filename) - fprintf (out, "%s: ", input_filename); - previous_output = 1; - } - - if (package_name) - fprintf (out, "%s.%s%s ", package_name, INNER_QUALIFIER, name); - else - fprintf (out, "%s%s ", INNER_QUALIFIER, name); - } - - push_class_context (name); - current_class = name; -} - -static void -report_main_declaration (declarator) - struct method_declarator *declarator; -{ - extern int flag_find_main; - - if (flag_find_main - && modifier_value == 2 - && !strcmp (declarator->method_name, "main") - && declarator->args - && declarator->args [0] == '[' - && (! strcmp (declarator->args+1, "String") - || ! strcmp (declarator->args + 1, "java.lang.String")) - && current_class) - { - if (!previous_output) - { - if (package_name) - fprintf (out, "%s.%s ", package_name, current_class); - else - fprintf (out, "%s", current_class); - previous_output = 1; - } - } -} - -/* Reset global status used by the report functions. */ - -void reset_report () -{ - previous_output = 0; - current_class = package_name = NULL; -} - -void -yyerror (msg) - const char *msg ATTRIBUTE_UNUSED; -{ - fprintf (stderr, "%s: %d: %s\n", input_filename, lineno, msg); - exit (1); -} diff --git a/gcc/objc/objc-parse.c b/gcc/objc/objc-parse.c deleted file mode 100644 index ed1eb18bfe2..00000000000 --- a/gcc/objc/objc-parse.c +++ /dev/null @@ -1,5102 +0,0 @@ - -/* A Bison parser, made from objc-parse.y - by GNU Bison version 1.28 */ - -#define YYBISON 1 /* Identify Bison output. */ - -#define IDENTIFIER 257 -#define TYPENAME 258 -#define SCSPEC 259 -#define TYPESPEC 260 -#define TYPE_QUAL 261 -#define CONSTANT 262 -#define STRING 263 -#define ELLIPSIS 264 -#define SIZEOF 265 -#define ENUM 266 -#define STRUCT 267 -#define UNION 268 -#define IF 269 -#define ELSE 270 -#define WHILE 271 -#define DO 272 -#define FOR 273 -#define SWITCH 274 -#define CASE 275 -#define DEFAULT 276 -#define BREAK 277 -#define CONTINUE 278 -#define RETURN 279 -#define GOTO 280 -#define ASM_KEYWORD 281 -#define TYPEOF 282 -#define ALIGNOF 283 -#define ATTRIBUTE 284 -#define EXTENSION 285 -#define LABEL 286 -#define REALPART 287 -#define IMAGPART 288 -#define VA_ARG 289 -#define PTR_VALUE 290 -#define PTR_BASE 291 -#define PTR_EXTENT 292 -#define END_OF_LINE 293 -#define ASSIGN 294 -#define OROR 295 -#define ANDAND 296 -#define EQCOMPARE 297 -#define ARITHCOMPARE 298 -#define LSHIFT 299 -#define RSHIFT 300 -#define UNARY 301 -#define PLUSPLUS 302 -#define MINUSMINUS 303 -#define HYPERUNARY 304 -#define POINTSAT 305 -#define INTERFACE 306 -#define IMPLEMENTATION 307 -#define END 308 -#define SELECTOR 309 -#define DEFS 310 -#define ENCODE 311 -#define CLASSNAME 312 -#define PUBLIC 313 -#define PRIVATE 314 -#define PROTECTED 315 -#define PROTOCOL 316 -#define OBJECTNAME 317 -#define CLASS 318 -#define ALIAS 319 -#define OBJC_STRING 320 - -#line 34 "objc-parse.y" - -#include "config.h" -#include "system.h" -#include -#include "tree.h" -#include "input.h" -#include "c-lex.h" -#include "c-tree.h" -#include "flags.h" -#include "output.h" -#include "toplev.h" -#include "ggc.h" - -#ifdef MULTIBYTE_CHARS -#include -#endif - -#include "objc-act.h" - -/* Since parsers are distinct for each language, put the language string - definition here. */ -const char * const language_string = "GNU Obj-C"; - -/* Like YYERROR but do call yyerror. */ -#define YYERROR1 { yyerror ("syntax error"); YYERROR; } - -/* Cause the `yydebug' variable to be defined. */ -#define YYDEBUG 1 - -#line 66 "objc-parse.y" -typedef union {long itype; tree ttype; enum tree_code code; - const char *filename; int lineno; int ends_in_label; } YYSTYPE; -#line 198 "objc-parse.y" - -/* Number of statements (loosely speaking) and compound statements - seen so far. */ -static int stmt_count; -static int compstmt_count; - -/* Input file and line number of the end of the body of last simple_if; - used by the stmt-rule immediately after simple_if returns. */ -static const char *if_stmt_file; -static int if_stmt_line; - -/* List of types and structure classes of the current declaration. */ -static tree current_declspecs = NULL_TREE; -static tree prefix_attributes = NULL_TREE; - -/* Stack of saved values of current_declspecs and prefix_attributes. */ -static tree declspec_stack; - -/* For __extension__, save/restore the warning flags which are - controlled by __extension__. */ -#define SAVE_WARN_FLAGS() \ - size_int (pedantic | (warn_pointer_arith << 1)) -#define RESTORE_WARN_FLAGS(tval) \ - do { \ - int val = tree_low_cst (tval, 0); \ - pedantic = val & 1; \ - warn_pointer_arith = (val >> 1) & 1; \ - } while (0) - -/* Objective-C specific information */ - -tree objc_interface_context; -tree objc_implementation_context; -tree objc_method_context; -tree objc_ivar_chain; -tree objc_ivar_context; -enum tree_code objc_inherit_code; -int objc_receiver_context; -int objc_public_flag; - - -/* Tell yyparse how to print a token's value, if yydebug is set. */ - -#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL) -extern void yyprint PARAMS ((FILE *, int, YYSTYPE)); - -/* Add GC roots for variables local to this file. */ -void -c_parse_init () -{ - ggc_add_tree_root (&declspec_stack, 1); - ggc_add_tree_root (¤t_declspecs, 1); - ggc_add_tree_root (&prefix_attributes, 1); - ggc_add_tree_root (&objc_interface_context, 1); - ggc_add_tree_root (&objc_implementation_context, 1); - ggc_add_tree_root (&objc_method_context, 1); - ggc_add_tree_root (&objc_ivar_chain, 1); - ggc_add_tree_root (&objc_ivar_context, 1); -} - -#include - -#ifndef __cplusplus -#ifndef __STDC__ -#define const -#endif -#endif - - - -#define YYFINAL 969 -#define YYFLAG -32768 -#define YYNTBASE 89 - -#define YYTRANSLATE(x) ((unsigned)(x) <= 320 ? yytranslate[x] : 317) - -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, 85, 2, 2, 2, 57, 48, 2, 64, - 81, 55, 53, 86, 54, 63, 56, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 43, 82, 2, - 41, 2, 42, 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, - 65, 2, 88, 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, - 2, 2, 87, 46, 83, 84, 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, - 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, 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, 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, 1, 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, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 44, 45, 49, 50, 51, 52, - 58, 59, 60, 61, 62, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80 -}; - -#if YYDEBUG != 0 -static const short yyprhs[] = { 0, - 0, 1, 3, 4, 7, 8, 12, 14, 16, 18, - 24, 27, 31, 36, 41, 44, 47, 50, 53, 55, - 56, 57, 65, 70, 71, 72, 80, 85, 86, 87, - 94, 98, 100, 102, 104, 106, 108, 110, 112, 114, - 116, 118, 120, 122, 123, 125, 127, 131, 133, 136, - 139, 142, 145, 148, 153, 156, 161, 164, 167, 174, - 176, 178, 180, 185, 186, 194, 196, 200, 204, 208, - 212, 216, 220, 224, 228, 232, 236, 240, 244, 245, - 250, 251, 256, 257, 258, 266, 267, 273, 277, 281, - 283, 285, 287, 291, 295, 299, 303, 308, 313, 317, - 321, 324, 327, 329, 331, 333, 335, 337, 339, 342, - 344, 347, 348, 350, 353, 357, 359, 361, 364, 367, - 372, 377, 380, 383, 387, 389, 391, 394, 397, 398, - 399, 404, 409, 413, 417, 420, 423, 426, 429, 433, - 434, 437, 440, 443, 446, 450, 451, 454, 457, 459, - 461, 464, 467, 469, 471, 474, 477, 480, 484, 485, - 488, 490, 492, 494, 497, 500, 502, 507, 512, 514, - 516, 518, 520, 524, 526, 530, 531, 536, 537, 544, - 548, 549, 556, 560, 561, 563, 565, 568, 575, 577, - 581, 582, 584, 589, 596, 601, 603, 605, 607, 609, - 611, 612, 617, 619, 620, 623, 625, 629, 633, 636, - 637, 642, 644, 645, 650, 652, 654, 656, 659, 662, - 663, 664, 670, 671, 672, 678, 680, 682, 686, 690, - 695, 699, 703, 707, 709, 711, 715, 720, 724, 728, - 732, 734, 738, 742, 746, 751, 755, 759, 761, 763, - 766, 768, 771, 773, 776, 777, 785, 791, 794, 795, - 803, 809, 812, 813, 822, 823, 831, 834, 835, 837, - 838, 840, 842, 845, 846, 850, 853, 858, 862, 868, - 872, 874, 876, 879, 881, 885, 890, 897, 903, 905, - 909, 911, 913, 917, 920, 923, 924, 926, 928, 931, - 932, 935, 939, 943, 946, 950, 955, 959, 962, 966, - 969, 973, 975, 977, 980, 983, 984, 986, 989, 990, - 991, 993, 995, 998, 1002, 1004, 1007, 1009, 1011, 1017, - 1022, 1027, 1030, 1033, 1036, 1039, 1044, 1045, 1050, 1051, - 1052, 1056, 1061, 1065, 1067, 1069, 1071, 1073, 1076, 1077, - 1082, 1084, 1088, 1089, 1090, 1098, 1104, 1107, 1108, 1109, - 1110, 1123, 1124, 1131, 1134, 1137, 1140, 1144, 1151, 1160, - 1171, 1184, 1188, 1193, 1195, 1197, 1198, 1205, 1209, 1215, - 1218, 1222, 1223, 1225, 1226, 1228, 1229, 1231, 1233, 1237, - 1242, 1244, 1248, 1249, 1252, 1255, 1256, 1261, 1264, 1265, - 1267, 1269, 1273, 1275, 1279, 1284, 1289, 1294, 1299, 1304, - 1305, 1308, 1310, 1313, 1315, 1319, 1321, 1325, 1327, 1329, - 1331, 1333, 1335, 1337, 1339, 1341, 1345, 1349, 1354, 1355, - 1356, 1367, 1368, 1375, 1376, 1377, 1390, 1391, 1400, 1401, - 1408, 1411, 1412, 1421, 1426, 1427, 1437, 1443, 1444, 1451, - 1452, 1454, 1458, 1462, 1464, 1466, 1468, 1470, 1471, 1475, - 1478, 1482, 1486, 1488, 1489, 1491, 1495, 1497, 1501, 1504, - 1505, 1506, 1507, 1515, 1516, 1517, 1518, 1526, 1527, 1528, - 1531, 1533, 1535, 1538, 1539, 1543, 1545, 1547, 1548, 1549, - 1555, 1556, 1557, 1563, 1568, 1570, 1576, 1579, 1580, 1583, - 1584, 1586, 1588, 1590, 1593, 1596, 1601, 1604, 1607, 1609, - 1613, 1616, 1619, 1622, 1623, 1626, 1627, 1631, 1633, 1635, - 1638, 1640, 1642, 1644, 1646, 1648, 1650, 1652, 1654, 1656, - 1658, 1660, 1662, 1664, 1666, 1668, 1670, 1672, 1674, 1676, - 1678, 1680, 1682, 1684, 1686, 1688, 1695, 1699, 1705, 1708, - 1710, 1712, 1714, 1717, 1719, 1723, 1726, 1728, 1730, 1731, - 1732, 1739, 1741, 1743, 1745, 1748, 1751, 1753, 1758, 1763 -}; - -static const short yyrhs[] = { -1, - 90, 0, 0, 91, 93, 0, 0, 90, 92, 93, - 0, 95, 0, 94, 0, 248, 0, 27, 64, 104, - 81, 82, 0, 247, 93, 0, 127, 141, 82, 0, - 134, 127, 141, 82, 0, 130, 127, 140, 82, 0, - 134, 82, 0, 130, 82, 0, 1, 82, 0, 1, - 83, 0, 82, 0, 0, 0, 130, 127, 169, 96, - 121, 97, 203, 0, 130, 127, 169, 1, 0, 0, - 0, 134, 127, 172, 98, 121, 99, 203, 0, 134, - 127, 172, 1, 0, 0, 0, 127, 172, 100, 121, - 101, 203, 0, 127, 172, 1, 0, 3, 0, 4, - 0, 77, 0, 72, 0, 48, 0, 54, 0, 53, - 0, 59, 0, 60, 0, 84, 0, 85, 0, 106, - 0, 0, 106, 0, 112, 0, 106, 86, 112, 0, - 118, 0, 55, 110, 0, 247, 110, 0, 103, 110, - 0, 45, 102, 0, 108, 107, 0, 108, 64, 190, - 81, 0, 109, 107, 0, 109, 64, 190, 81, 0, - 33, 110, 0, 34, 110, 0, 35, 64, 112, 86, - 190, 81, 0, 11, 0, 29, 0, 107, 0, 64, - 190, 81, 110, 0, 0, 64, 190, 81, 87, 111, - 155, 83, 0, 110, 0, 112, 53, 112, 0, 112, - 54, 112, 0, 112, 55, 112, 0, 112, 56, 112, - 0, 112, 57, 112, 0, 112, 51, 112, 0, 112, - 52, 112, 0, 112, 50, 112, 0, 112, 49, 112, - 0, 112, 48, 112, 0, 112, 46, 112, 0, 112, - 47, 112, 0, 0, 112, 45, 113, 112, 0, 0, - 112, 44, 114, 112, 0, 0, 0, 112, 42, 115, - 104, 43, 116, 112, 0, 0, 112, 42, 117, 43, - 112, 0, 112, 41, 112, 0, 112, 40, 112, 0, - 3, 0, 8, 0, 119, 0, 64, 104, 81, 0, - 64, 1, 81, 0, 206, 205, 81, 0, 206, 1, - 81, 0, 118, 64, 105, 81, 0, 118, 65, 104, - 88, 0, 118, 63, 102, 0, 118, 62, 102, 0, - 118, 59, 0, 118, 60, 0, 308, 0, 314, 0, - 315, 0, 316, 0, 120, 0, 9, 0, 119, 9, - 0, 80, 0, 120, 80, 0, 0, 123, 0, 123, - 10, 0, 212, 213, 124, 0, 122, 0, 198, 0, - 123, 122, 0, 122, 198, 0, 132, 127, 140, 82, - 0, 135, 127, 141, 82, 0, 132, 82, 0, 135, - 82, 0, 212, 213, 129, 0, 125, 0, 198, 0, - 126, 125, 0, 125, 198, 0, 0, 0, 130, 127, - 140, 82, 0, 134, 127, 141, 82, 0, 130, 127, - 163, 0, 134, 127, 166, 0, 130, 82, 0, 134, - 82, 0, 247, 129, 0, 138, 131, 0, 134, 138, - 131, 0, 0, 131, 139, 0, 131, 5, 0, 131, - 148, 0, 138, 133, 0, 135, 138, 133, 0, 0, - 133, 139, 0, 133, 5, 0, 135, 0, 148, 0, - 134, 135, 0, 134, 148, 0, 7, 0, 5, 0, - 135, 7, 0, 135, 5, 0, 138, 137, 0, 192, - 138, 137, 0, 0, 137, 139, 0, 6, 0, 176, - 0, 4, 0, 72, 264, 0, 77, 264, 0, 265, - 0, 28, 64, 104, 81, 0, 28, 64, 190, 81, - 0, 6, 0, 7, 0, 176, 0, 143, 0, 140, - 86, 143, 0, 145, 0, 141, 86, 143, 0, 0, - 27, 64, 119, 81, 0, 0, 169, 142, 147, 41, - 144, 153, 0, 169, 142, 147, 0, 0, 172, 142, - 147, 41, 146, 153, 0, 172, 142, 147, 0, 0, - 148, 0, 149, 0, 148, 149, 0, 30, 64, 64, - 150, 81, 81, 0, 151, 0, 150, 86, 151, 0, - 0, 152, 0, 152, 64, 3, 81, 0, 152, 64, - 3, 86, 106, 81, 0, 152, 64, 105, 81, 0, - 102, 0, 5, 0, 6, 0, 7, 0, 112, 0, - 0, 87, 154, 155, 83, 0, 1, 0, 0, 156, - 181, 0, 157, 0, 156, 86, 157, 0, 161, 41, - 159, 0, 162, 159, 0, 0, 102, 43, 158, 159, - 0, 159, 0, 0, 87, 160, 155, 83, 0, 112, - 0, 1, 0, 162, 0, 161, 162, 0, 63, 102, - 0, 0, 0, 169, 164, 121, 165, 207, 0, 0, - 0, 172, 167, 121, 168, 207, 0, 170, 0, 172, - 0, 64, 170, 81, 0, 170, 64, 242, 0, 170, - 65, 104, 88, 0, 170, 65, 88, 0, 55, 193, - 170, 0, 148, 128, 170, 0, 4, 0, 77, 0, - 171, 64, 242, 0, 171, 65, 104, 88, 0, 171, - 65, 88, 0, 55, 193, 171, 0, 148, 128, 171, - 0, 4, 0, 172, 64, 242, 0, 64, 172, 81, - 0, 55, 193, 172, 0, 172, 65, 104, 88, 0, - 172, 65, 88, 0, 148, 128, 172, 0, 3, 0, - 13, 0, 13, 148, 0, 14, 0, 14, 148, 0, - 12, 0, 12, 148, 0, 0, 173, 102, 87, 177, - 183, 83, 147, 0, 173, 87, 183, 83, 147, 0, - 173, 102, 0, 0, 174, 102, 87, 178, 183, 83, - 147, 0, 174, 87, 183, 83, 147, 0, 174, 102, - 0, 0, 175, 102, 87, 179, 188, 182, 83, 147, - 0, 0, 175, 87, 180, 188, 182, 83, 147, 0, - 175, 102, 0, 0, 86, 0, 0, 86, 0, 184, - 0, 184, 185, 0, 0, 184, 185, 82, 0, 184, - 82, 0, 70, 64, 72, 81, 0, 136, 127, 186, - 0, 136, 127, 212, 213, 147, 0, 192, 127, 186, - 0, 192, 0, 1, 0, 247, 185, 0, 187, 0, - 186, 86, 187, 0, 212, 213, 169, 147, 0, 212, - 213, 169, 43, 112, 147, 0, 212, 213, 43, 112, - 147, 0, 189, 0, 188, 86, 189, 0, 1, 0, - 102, 0, 102, 41, 112, 0, 136, 191, 0, 192, - 191, 0, 0, 194, 0, 7, 0, 192, 7, 0, - 0, 193, 7, 0, 64, 194, 81, 0, 55, 193, - 194, 0, 55, 193, 0, 194, 64, 235, 0, 194, - 65, 104, 88, 0, 194, 65, 88, 0, 64, 235, - 0, 65, 104, 88, 0, 65, 88, 0, 148, 128, - 194, 0, 196, 0, 215, 0, 196, 215, 0, 196, - 198, 0, 0, 195, 0, 1, 82, 0, 0, 0, - 201, 0, 202, 0, 201, 202, 0, 32, 246, 82, - 0, 207, 0, 1, 207, 0, 87, 0, 83, 0, - 199, 200, 126, 197, 83, 0, 199, 200, 1, 83, - 0, 199, 200, 195, 83, 0, 64, 87, 0, 204, - 205, 0, 209, 214, 0, 209, 1, 0, 15, 64, - 104, 81, 0, 0, 18, 211, 214, 17, 0, 0, - 0, 212, 213, 217, 0, 212, 213, 228, 214, 0, - 212, 213, 216, 0, 217, 0, 228, 0, 207, 0, - 225, 0, 104, 82, 0, 0, 208, 16, 218, 214, - 0, 208, 0, 208, 16, 1, 0, 0, 0, 17, - 219, 64, 104, 81, 220, 214, 0, 210, 64, 104, - 81, 82, 0, 210, 1, 0, 0, 0, 0, 19, - 64, 230, 82, 221, 230, 82, 222, 230, 81, 223, - 214, 0, 0, 20, 64, 104, 81, 224, 214, 0, - 23, 82, 0, 24, 82, 0, 25, 82, 0, 25, - 104, 82, 0, 27, 229, 64, 104, 81, 82, 0, - 27, 229, 64, 104, 43, 231, 81, 82, 0, 27, - 229, 64, 104, 43, 231, 43, 231, 81, 82, 0, - 27, 229, 64, 104, 43, 231, 43, 231, 43, 234, - 81, 82, 0, 26, 102, 82, 0, 26, 55, 104, - 82, 0, 82, 0, 226, 0, 0, 19, 64, 118, - 81, 227, 214, 0, 21, 112, 43, 0, 21, 112, - 10, 112, 43, 0, 22, 43, 0, 102, 43, 147, - 0, 0, 7, 0, 0, 104, 0, 0, 232, 0, - 233, 0, 232, 86, 233, 0, 9, 64, 104, 81, - 0, 119, 0, 234, 86, 119, 0, 0, 236, 237, - 0, 239, 81, 0, 0, 240, 82, 238, 237, 0, - 1, 81, 0, 0, 10, 0, 240, 0, 240, 86, - 10, 0, 241, 0, 240, 86, 241, 0, 130, 127, - 171, 147, 0, 130, 127, 172, 147, 0, 130, 127, - 191, 147, 0, 134, 127, 172, 147, 0, 134, 127, - 191, 147, 0, 0, 243, 244, 0, 237, 0, 245, - 81, 0, 3, 0, 245, 86, 3, 0, 102, 0, - 246, 86, 102, 0, 31, 0, 252, 0, 250, 0, - 251, 0, 262, 0, 272, 0, 68, 0, 102, 0, - 249, 86, 102, 0, 78, 249, 82, 0, 79, 102, - 102, 82, 0, 0, 0, 66, 102, 264, 87, 253, - 266, 83, 254, 279, 68, 0, 0, 66, 102, 264, - 255, 279, 68, 0, 0, 0, 66, 102, 43, 102, - 264, 87, 256, 266, 83, 257, 279, 68, 0, 0, - 66, 102, 43, 102, 264, 258, 279, 68, 0, 0, - 67, 102, 87, 259, 266, 83, 0, 67, 102, 0, - 0, 67, 102, 43, 102, 87, 260, 266, 83, 0, - 67, 102, 43, 102, 0, 0, 66, 102, 64, 102, - 81, 264, 261, 279, 68, 0, 67, 102, 64, 102, - 81, 0, 0, 76, 102, 264, 263, 279, 68, 0, - 0, 265, 0, 50, 249, 50, 0, 266, 267, 268, - 0, 268, 0, 74, 0, 75, 0, 73, 0, 0, - 268, 269, 82, 0, 268, 82, 0, 136, 127, 270, - 0, 192, 127, 270, 0, 1, 0, 0, 271, 0, - 270, 86, 271, 0, 169, 0, 169, 43, 112, 0, - 43, 112, 0, 0, 0, 0, 53, 273, 289, 274, - 290, 275, 203, 0, 0, 0, 0, 54, 276, 289, - 277, 290, 278, 203, 0, 0, 0, 280, 281, 0, - 284, 0, 94, 0, 281, 284, 0, 0, 281, 282, - 94, 0, 82, 0, 1, 0, 0, 0, 53, 285, - 289, 286, 283, 0, 0, 0, 54, 287, 289, 288, - 283, 0, 64, 190, 81, 298, 0, 298, 0, 64, - 190, 81, 299, 296, 0, 299, 296, 0, 0, 82, - 291, 0, 0, 292, 0, 293, 0, 198, 0, 292, - 293, 0, 293, 198, 0, 130, 127, 294, 82, 0, - 130, 82, 0, 134, 82, 0, 295, 0, 294, 86, - 295, 0, 171, 147, 0, 172, 147, 0, 191, 147, - 0, 0, 86, 10, 0, 0, 86, 297, 239, 0, - 300, 0, 302, 0, 299, 302, 0, 3, 0, 4, - 0, 77, 0, 301, 0, 12, 0, 13, 0, 14, - 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, - 0, 20, 0, 21, 0, 22, 0, 23, 0, 24, - 0, 25, 0, 26, 0, 27, 0, 11, 0, 28, - 0, 29, 0, 6, 0, 7, 0, 300, 43, 64, - 190, 81, 102, 0, 300, 43, 102, 0, 43, 64, - 190, 81, 102, 0, 43, 102, 0, 300, 0, 304, - 0, 306, 0, 304, 306, 0, 106, 0, 300, 43, - 305, 0, 43, 305, 0, 104, 0, 72, 0, 0, - 0, 65, 309, 307, 310, 303, 88, 0, 300, 0, - 312, 0, 313, 0, 312, 313, 0, 300, 43, 0, - 43, 0, 69, 64, 311, 81, 0, 76, 64, 102, - 81, 0, 71, 64, 190, 81, 0 -}; - -#endif - -#if YYDEBUG != 0 -static const short yyrline[] = { 0, - 261, 266, 280, 282, 282, 283, 285, 287, 288, 289, - 297, 301, 311, 315, 319, 321, 323, 324, 325, 330, - 337, 339, 343, 347, 353, 355, 359, 363, 369, 371, - 375, 381, 383, 384, 385, 388, 390, 392, 394, 396, - 398, 400, 404, 408, 411, 414, 417, 421, 423, 426, - 429, 433, 461, 467, 470, 473, 476, 478, 480, 484, - 488, 492, 494, 497, 501, 528, 530, 532, 534, 536, - 538, 540, 542, 544, 546, 548, 550, 552, 554, 558, - 560, 564, 566, 569, 573, 575, 582, 585, 593, 604, - 611, 612, 614, 620, 622, 645, 654, 656, 658, 670, - 684, 686, 688, 690, 692, 694, 696, 701, 703, 710, - 712, 716, 718, 719, 729, 734, 736, 737, 738, 745, - 750, 754, 757, 765, 770, 772, 773, 774, 781, 791, - 795, 800, 804, 808, 812, 814, 816, 825, 828, 832, - 834, 836, 841, 845, 848, 852, 855, 857, 869, 872, - 874, 876, 880, 884, 886, 889, 902, 905, 909, 911, - 919, 920, 921, 925, 927, 932, 934, 936, 942, 943, - 944, 947, 949, 952, 954, 957, 960, 966, 973, 975, - 982, 989, 992, 999, 1002, 1006, 1009, 1013, 1018, 1021, - 1025, 1028, 1030, 1032, 1034, 1041, 1043, 1044, 1045, 1050, - 1052, 1054, 1056, 1061, 1065, 1068, 1070, 1075, 1077, 1078, - 1081, 1081, 1084, 1087, 1089, 1091, 1094, 1096, 1099, 1107, - 1121, 1129, 1133, 1147, 1155, 1162, 1164, 1169, 1172, 1177, - 1179, 1181, 1188, 1190, 1191, 1199, 1205, 1207, 1209, 1216, - 1218, 1224, 1230, 1232, 1234, 1236, 1243, 1245, 1248, 1251, - 1255, 1258, 1262, 1265, 1269, 1274, 1276, 1280, 1282, 1284, - 1286, 1290, 1292, 1294, 1297, 1299, 1302, 1306, 1308, 1311, - 1313, 1318, 1321, 1326, 1328, 1330, 1334, 1358, 1364, 1377, - 1382, 1387, 1389, 1394, 1396, 1400, 1404, 1408, 1418, 1420, - 1425, 1430, 1433, 1437, 1440, 1444, 1447, 1450, 1453, 1457, - 1460, 1464, 1468, 1470, 1472, 1474, 1476, 1478, 1480, 1482, - 1486, 1494, 1502, 1504, 1506, 1510, 1512, 1515, 1518, 1530, - 1532, 1537, 1539, 1542, 1556, 1559, 1562, 1564, 1566, 1570, - 1574, 1580, 1598, 1603, 1608, 1611, 1625, 1634, 1638, 1642, - 1646, 1652, 1656, 1661, 1664, 1669, 1672, 1673, 1689, 1694, - 1697, 1709, 1711, 1721, 1731, 1732, 1739, 1741, 1753, 1757, - 1771, 1777, 1783, 1784, 1788, 1792, 1796, 1800, 1811, 1818, - 1825, 1832, 1843, 1849, 1852, 1857, 1880, 1910, 1916, 1922, - 1928, 1942, 1946, 1950, 1953, 1958, 1960, 1963, 1965, 1969, - 1974, 1977, 1983, 1988, 1993, 1995, 2004, 2005, 2011, 2013, - 2023, 2025, 2029, 2032, 2038, 2047, 2055, 2063, 2072, 2085, - 2090, 2095, 2097, 2106, 2109, 2114, 2117, 2121, 2130, 2132, - 2133, 2134, 2135, 2136, 2150, 2153, 2157, 2163, 2169, 2176, - 2181, 2187, 2194, 2200, 2206, 2211, 2217, 2224, 2230, 2236, - 2242, 2250, 2256, 2262, 2270, 2277, 2283, 2292, 2299, 2307, - 2312, 2315, 2325, 2327, 2330, 2332, 2333, 2336, 2341, 2342, - 2359, 2365, 2370, 2374, 2377, 2378, 2381, 2389, 2395, 2404, - 2414, 2421, 2425, 2430, 2439, 2446, 2450, 2460, 2462, 2463, - 2465, 2467, 2468, 2469, 2470, 2472, 2474, 2477, 2485, 2492, - 2492, 2499, 2505, 2507, 2513, 2518, 2523, 2532, 2534, 2540, - 2542, 2545, 2547, 2548, 2549, 2552, 2557, 2559, 2563, 2566, - 2573, 2579, 2584, 2591, 2596, 2601, 2606, 2613, 2617, 2620, - 2626, 2628, 2629, 2630, 2633, 2635, 2636, 2637, 2638, 2639, - 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, - 2650, 2651, 2652, 2653, 2653, 2656, 2662, 2667, 2672, 2678, - 2680, 2683, 2685, 2692, 2704, 2709, 2715, 2717, 2723, 2727, - 2728, 2734, 2736, 2739, 2741, 2747, 2752, 2758, 2765, 2774 -}; -#endif - - -#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) - -static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER", -"TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF", -"ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT", -"BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE", -"EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","PTR_VALUE","PTR_BASE","PTR_EXTENT", -"END_OF_LINE","ASSIGN","'='","'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE", -"ARITHCOMPARE","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS", -"MINUSMINUS","HYPERUNARY","POINTSAT","'.'","'('","'['","INTERFACE","IMPLEMENTATION", -"END","SELECTOR","DEFS","ENCODE","CLASSNAME","PUBLIC","PRIVATE","PROTECTED", -"PROTOCOL","OBJECTNAME","CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'", -"'!'","','","'{'","']'","program","extdefs","@1","@2","extdef","datadef","fndef", -"@3","@4","@5","@6","@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist", -"unary_expr","sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11", -"@12","@13","@14","primary","string","objc_string","old_style_parm_decls","lineno_datadecl", -"datadecls","datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs", -"reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr", -"declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals", -"typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm", -"initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute", -"attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1", -"initelt","@18","initval","@19","designator_list","designator","nested_function", -"@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator", -"parm_declarator","notype_declarator","struct_head","union_head","enum_head", -"structsp","@24","@25","@26","@27","maybecomma","maybecomma_warn","component_decl_list", -"component_decl_list2","component_decl","components","component_declarator", -"enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals", -"absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls", -"label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt_nostart", -"compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start", -"@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label", -"stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt", -"all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands", -"nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1", -"@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1", -"identifiers","identifiers_or_typenames","extension","objcdef","identifier_list", -"classdecl","aliasdecl","classdef","@40","@41","@42","@43","@44","@45","@46", -"@47","@48","protocoldef","@49","protocolrefs","non_empty_protocolrefs","ivar_decl_list", -"visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator","methoddef", -"@50","@51","@52","@53","@54","@55","methodprotolist","@56","methodprotolist2", -"@57","semi_or_error","methodproto","@58","@59","@60","@61","methoddecl","optarglist", -"myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@62","unaryselector", -"keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist", -"keywordexpr","keywordarg","receiver","objcmessageexpr","@63","@64","selectorarg", -"keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr", NULL -}; -#endif - -static const short yyr1[] = { 0, - 89, 89, 91, 90, 92, 90, 93, 93, 93, 93, - 93, 94, 94, 94, 94, 94, 94, 94, 94, 96, - 97, 95, 95, 98, 99, 95, 95, 100, 101, 95, - 95, 102, 102, 102, 102, 103, 103, 103, 103, 103, - 103, 103, 104, 105, 105, 106, 106, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 108, - 109, 110, 110, 111, 110, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 113, 112, - 114, 112, 115, 116, 112, 117, 112, 112, 112, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 119, 119, 120, - 120, 121, 121, 121, 122, 123, 123, 123, 123, 124, - 124, 124, 124, 125, 126, 126, 126, 126, 127, 128, - 129, 129, 129, 129, 129, 129, 129, 130, 130, 131, - 131, 131, 131, 132, 132, 133, 133, 133, 134, 134, - 134, 134, 135, 135, 135, 135, 136, 136, 137, 137, - 138, 138, 138, 138, 138, 138, 138, 138, 139, 139, - 139, 140, 140, 141, 141, 142, 142, 144, 143, 143, - 146, 145, 145, 147, 147, 148, 148, 149, 150, 150, - 151, 151, 151, 151, 151, 152, 152, 152, 152, 153, - 154, 153, 153, 155, 155, 156, 156, 157, 157, 158, - 157, 157, 160, 159, 159, 159, 161, 161, 162, 164, - 165, 163, 167, 168, 166, 169, 169, 170, 170, 170, - 170, 170, 170, 170, 170, 171, 171, 171, 171, 171, - 171, 172, 172, 172, 172, 172, 172, 172, 173, 173, - 174, 174, 175, 175, 177, 176, 176, 176, 178, 176, - 176, 176, 179, 176, 180, 176, 176, 181, 181, 182, - 182, 183, 183, 184, 184, 184, 184, 185, 185, 185, - 185, 185, 185, 186, 186, 187, 187, 187, 188, 188, - 188, 189, 189, 190, 190, 191, 191, 192, 192, 193, - 193, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 195, 196, 196, 196, 197, 197, 198, 199, 200, - 200, 201, 201, 202, 203, 203, 204, 205, 205, 205, - 205, 206, 207, 208, 208, 209, 211, 210, 212, 213, - 214, 214, 215, 216, 216, 217, 217, 217, 218, 217, - 217, 217, 219, 220, 217, 217, 217, 221, 222, 223, - 217, 224, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 225, 227, 226, 228, 228, 228, - 228, 229, 229, 230, 230, 231, 231, 232, 232, 233, - 234, 234, 236, 235, 237, 238, 237, 237, 239, 239, - 239, 239, 240, 240, 241, 241, 241, 241, 241, 243, - 242, 244, 244, 245, 245, 246, 246, 247, 248, 248, - 248, 248, 248, 248, 249, 249, 250, 251, 253, 254, - 252, 255, 252, 256, 257, 252, 258, 252, 259, 252, - 252, 260, 252, 252, 261, 252, 252, 263, 262, 264, - 264, 265, 266, 266, 267, 267, 267, 268, 268, 268, - 269, 269, 269, 270, 270, 270, 271, 271, 271, 273, - 274, 275, 272, 276, 277, 278, 272, 279, 280, 279, - 281, 281, 281, 282, 281, 283, 283, 285, 286, 284, - 287, 288, 284, 289, 289, 289, 289, 290, 290, 291, - 291, 292, 292, 292, 292, 293, 293, 293, 294, 294, - 295, 295, 295, 296, 296, 297, 296, 298, 299, 299, - 300, 300, 300, 300, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 302, 302, 302, 302, 303, - 303, 304, 304, 305, 306, 306, 307, 307, 309, 310, - 308, 311, 311, 312, 312, 313, 313, 314, 315, 316 -}; - -static const short yyr2[] = { 0, - 0, 1, 0, 2, 0, 3, 1, 1, 1, 5, - 2, 3, 4, 4, 2, 2, 2, 2, 1, 0, - 0, 7, 4, 0, 0, 7, 4, 0, 0, 6, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 1, 1, 3, 1, 2, 2, - 2, 2, 2, 4, 2, 4, 2, 2, 6, 1, - 1, 1, 4, 0, 7, 1, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 0, 4, - 0, 4, 0, 0, 7, 0, 5, 3, 3, 1, - 1, 1, 3, 3, 3, 3, 4, 4, 3, 3, - 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, - 2, 0, 1, 2, 3, 1, 1, 2, 2, 4, - 4, 2, 2, 3, 1, 1, 2, 2, 0, 0, - 4, 4, 3, 3, 2, 2, 2, 2, 3, 0, - 2, 2, 2, 2, 3, 0, 2, 2, 1, 1, - 2, 2, 1, 1, 2, 2, 2, 3, 0, 2, - 1, 1, 1, 2, 2, 1, 4, 4, 1, 1, - 1, 1, 3, 1, 3, 0, 4, 0, 6, 3, - 0, 6, 3, 0, 1, 1, 2, 6, 1, 3, - 0, 1, 4, 6, 4, 1, 1, 1, 1, 1, - 0, 4, 1, 0, 2, 1, 3, 3, 2, 0, - 4, 1, 0, 4, 1, 1, 1, 2, 2, 0, - 0, 5, 0, 0, 5, 1, 1, 3, 3, 4, - 3, 3, 3, 1, 1, 3, 4, 3, 3, 3, - 1, 3, 3, 3, 4, 3, 3, 1, 1, 2, - 1, 2, 1, 2, 0, 7, 5, 2, 0, 7, - 5, 2, 0, 8, 0, 7, 2, 0, 1, 0, - 1, 1, 2, 0, 3, 2, 4, 3, 5, 3, - 1, 1, 2, 1, 3, 4, 6, 5, 1, 3, - 1, 1, 3, 2, 2, 0, 1, 1, 2, 0, - 2, 3, 3, 2, 3, 4, 3, 2, 3, 2, - 3, 1, 1, 2, 2, 0, 1, 2, 0, 0, - 1, 1, 2, 3, 1, 2, 1, 1, 5, 4, - 4, 2, 2, 2, 2, 4, 0, 4, 0, 0, - 3, 4, 3, 1, 1, 1, 1, 2, 0, 4, - 1, 3, 0, 0, 7, 5, 2, 0, 0, 0, - 12, 0, 6, 2, 2, 2, 3, 6, 8, 10, - 12, 3, 4, 1, 1, 0, 6, 3, 5, 2, - 3, 0, 1, 0, 1, 0, 1, 1, 3, 4, - 1, 3, 0, 2, 2, 0, 4, 2, 0, 1, - 1, 3, 1, 3, 4, 4, 4, 4, 4, 0, - 2, 1, 2, 1, 3, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 3, 4, 0, 0, - 10, 0, 6, 0, 0, 12, 0, 8, 0, 6, - 2, 0, 8, 4, 0, 9, 5, 0, 6, 0, - 1, 3, 3, 1, 1, 1, 1, 0, 3, 2, - 3, 3, 1, 0, 1, 3, 1, 3, 2, 0, - 0, 0, 7, 0, 0, 0, 7, 0, 0, 2, - 1, 1, 2, 0, 3, 1, 1, 0, 0, 5, - 0, 0, 5, 4, 1, 5, 2, 0, 2, 0, - 1, 1, 1, 2, 2, 4, 2, 2, 1, 3, - 2, 2, 2, 0, 2, 0, 3, 1, 1, 2, - 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, 6, 3, 5, 2, 1, - 1, 1, 2, 1, 3, 2, 1, 1, 0, 0, - 6, 1, 1, 1, 2, 2, 1, 4, 4, 4 -}; - -static const short yydefact[] = { 3, - 5, 0, 0, 0, 163, 154, 161, 153, 253, 249, - 251, 0, 0, 0, 418, 0, 470, 474, 0, 0, - 424, 450, 0, 450, 0, 0, 19, 4, 8, 7, - 0, 129, 129, 149, 140, 150, 186, 0, 0, 0, - 162, 0, 9, 420, 421, 419, 422, 166, 423, 6, - 17, 18, 254, 250, 252, 0, 0, 0, 32, 33, - 35, 34, 425, 0, 0, 0, 450, 441, 164, 451, - 450, 165, 0, 0, 248, 300, 0, 0, 174, 130, - 0, 16, 0, 15, 0, 151, 140, 152, 156, 155, - 138, 187, 274, 258, 274, 262, 265, 267, 11, 90, - 91, 108, 60, 61, 0, 0, 0, 0, 36, 38, - 37, 0, 39, 40, 0, 559, 0, 0, 0, 110, - 41, 42, 0, 0, 43, 62, 0, 0, 66, 46, - 48, 92, 107, 0, 0, 103, 104, 105, 106, 298, - 0, 296, 159, 0, 296, 191, 452, 0, 521, 522, - 544, 545, 541, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 542, - 543, 0, 0, 523, 471, 495, 514, 518, 524, 519, - 475, 0, 0, 432, 0, 0, 439, 448, 427, 0, - 0, 0, 12, 0, 0, 31, 0, 410, 0, 0, - 184, 234, 300, 0, 235, 0, 172, 130, 0, 226, - 227, 0, 0, 139, 142, 169, 170, 141, 143, 171, - 0, 0, 0, 255, 0, 259, 0, 263, 57, 58, - 0, 52, 49, 0, 332, 0, 0, 0, 0, 0, - 0, 51, 0, 0, 0, 53, 0, 55, 0, 0, - 83, 81, 79, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 101, 102, 0, 0, 44, - 0, 109, 111, 0, 328, 320, 0, 50, 167, 300, - 393, 0, 130, 294, 297, 157, 168, 299, 159, 295, - 197, 198, 199, 196, 0, 189, 192, 426, 0, 549, - 0, 498, 516, 497, 0, 520, 0, 498, 450, 0, - 429, 479, 444, 0, 458, 479, 428, 301, 244, 243, - 175, 176, 247, 0, 242, 0, 246, 0, 0, 29, - 0, 339, 117, 340, 183, 185, 0, 0, 14, 0, - 0, 23, 0, 184, 410, 0, 13, 27, 0, 0, - 184, 282, 276, 129, 273, 129, 0, 274, 184, 274, - 291, 292, 270, 289, 0, 0, 94, 93, 0, 558, - 557, 560, 567, 562, 0, 563, 564, 0, 0, 10, - 47, 0, 0, 89, 88, 0, 0, 0, 0, 77, - 78, 76, 75, 74, 72, 73, 67, 68, 69, 70, - 71, 100, 99, 0, 45, 0, 96, 0, 0, 321, - 322, 95, 304, 0, 308, 0, 310, 0, 0, 393, - 0, 160, 158, 0, 191, 44, 0, 0, 0, 472, - 515, 399, 0, 547, 476, 437, 450, 458, 0, 0, - 442, 447, 0, 0, 0, 0, 0, 414, 400, 129, - 129, 412, 0, 401, 403, 411, 0, 245, 318, 0, - 119, 114, 118, 0, 181, 232, 228, 173, 233, 21, - 180, 229, 231, 0, 25, 0, 257, 339, 275, 339, - 283, 0, 261, 0, 0, 271, 0, 270, 0, 64, - 63, 0, 566, 568, 0, 565, 570, 569, 54, 56, - 0, 0, 82, 80, 97, 98, 416, 0, 0, 0, - 339, 0, 0, 126, 340, 313, 323, 303, 302, 394, - 309, 311, 305, 307, 0, 188, 190, 90, 0, 0, - 494, 514, 129, 0, 503, 499, 501, 0, 0, 517, - 401, 0, 0, 434, 479, 445, 0, 433, 488, 491, - 482, 0, 129, 129, 484, 481, 458, 457, 455, 456, - 440, 458, 463, 460, 129, 129, 0, 449, 177, 398, - 296, 296, 395, 396, 0, 413, 0, 0, 327, 30, - 319, 325, 115, 129, 129, 146, 0, 0, 178, 230, - 0, 277, 278, 284, 340, 280, 340, 184, 184, 293, - 290, 184, 0, 0, 0, 0, 550, 0, 551, 552, - 84, 87, 324, 0, 330, 128, 127, 317, 0, 331, - 315, 340, 314, 0, 306, 193, 0, 195, 548, 496, - 507, 296, 508, 504, 505, 473, 0, 477, 458, 0, - 479, 430, 0, 0, 176, 0, 0, 0, 483, 0, - 0, 464, 464, 459, 241, 300, 393, 130, 184, 184, - 184, 300, 130, 184, 184, 0, 402, 404, 415, 326, - 333, 122, 0, 123, 0, 146, 144, 203, 201, 200, - 182, 22, 0, 26, 339, 184, 0, 256, 260, 266, - 184, 59, 216, 90, 0, 213, 0, 215, 0, 268, - 206, 212, 0, 0, 554, 556, 0, 561, 0, 553, - 0, 417, 329, 0, 163, 0, 353, 337, 0, 0, - 0, 0, 0, 0, 0, 0, 382, 450, 450, 374, - 0, 0, 124, 129, 129, 346, 351, 0, 0, 343, - 344, 347, 375, 345, 0, 0, 184, 184, 184, 0, - 509, 546, 0, 438, 0, 479, 489, 492, 485, 443, - 0, 467, 461, 465, 462, 304, 0, 410, 0, 405, - 406, 407, 304, 0, 408, 409, 397, 0, 0, 145, - 148, 147, 0, 179, 285, 0, 279, 130, 184, 264, - 219, 0, 210, 65, 0, 205, 0, 218, 209, 555, - 85, 0, 0, 339, 384, 0, 0, 380, 364, 365, - 366, 0, 0, 0, 383, 0, 184, 348, 135, 0, - 136, 0, 0, 335, 340, 334, 357, 0, 137, 194, - 511, 512, 513, 506, 296, 435, 446, 0, 0, 0, - 469, 0, 0, 239, 240, 236, 238, 0, 120, 121, - 0, 184, 0, 286, 0, 0, 207, 208, 0, 0, - 0, 385, 48, 0, 0, 0, 378, 367, 0, 372, - 0, 381, 0, 133, 220, 0, 134, 223, 352, 339, - 0, 0, 510, 479, 431, 487, 486, 490, 493, 468, - 466, 237, 202, 288, 184, 214, 211, 336, 0, 338, - 376, 358, 362, 0, 373, 0, 131, 0, 132, 0, - 350, 341, 339, 0, 0, 287, 354, 339, 384, 339, - 379, 386, 0, 221, 224, 342, 356, 436, 339, 377, - 0, 363, 0, 0, 387, 388, 368, 0, 0, 355, - 359, 0, 386, 0, 0, 222, 225, 384, 0, 0, - 369, 389, 0, 390, 0, 0, 360, 391, 0, 370, - 339, 0, 0, 361, 371, 392, 0, 0, 0 -}; - -static const short yydefgoto[] = { 967, - 1, 2, 3, 28, 29, 30, 343, 588, 349, 591, - 200, 460, 697, 123, 236, 404, 125, 126, 127, 128, - 129, 605, 130, 389, 388, 386, 711, 387, 131, 132, - 133, 330, 331, 332, 583, 510, 511, 31, 341, 733, - 450, 91, 584, 677, 451, 34, 142, 286, 35, 218, - 206, 78, 201, 207, 683, 79, 587, 335, 336, 37, - 295, 296, 297, 681, 783, 699, 700, 701, 856, 702, - 792, 703, 704, 874, 908, 938, 877, 910, 939, 322, - 210, 747, 211, 38, 39, 40, 41, 358, 360, 365, - 227, 796, 487, 222, 223, 355, 593, 594, 363, 364, - 144, 749, 145, 191, 285, 512, 513, 619, 333, 276, - 409, 410, 411, 580, 581, 277, 134, 582, 737, 738, - 739, 804, 825, 464, 826, 516, 740, 741, 880, 803, - 929, 919, 948, 961, 920, 742, 743, 918, 744, 816, - 864, 934, 935, 936, 959, 415, 416, 452, 666, 453, - 454, 455, 325, 326, 456, 457, 508, 135, 43, 64, - 44, 45, 46, 438, 756, 312, 639, 884, 545, 315, - 557, 641, 47, 316, 69, 48, 443, 562, 444, 567, - 763, 764, 49, 65, 302, 539, 66, 308, 543, 439, - 440, 555, 648, 888, 556, 643, 839, 644, 840, 175, - 430, 536, 537, 538, 750, 751, 304, 432, 176, 177, - 178, 179, 180, 608, 609, 706, 610, 372, 136, 238, - 492, 375, 376, 377, 137, 138, 139 -}; - -static const short yypact[] = { 102, - 124, 3399, 3399, 214,-32768,-32768,-32768,-32768, 70, 70, - 70, 114, 145, 206,-32768, 152,-32768,-32768, 152, 152, --32768, 94, 152, 94, 152, 152,-32768,-32768,-32768,-32768, - 189, 197, 1269, 271,-32768, 70,-32768, 135, 230, 306, --32768, 3399,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 70, 70, 70, 3083, 2906, 223,-32768,-32768, --32768,-32768,-32768, 61, 3667, 3667, 131, 50,-32768,-32768, - 94,-32768, 252, 152,-32768,-32768, 189, 293,-32768, 70, - 2040,-32768, 479,-32768, 189, 271,-32768, 70,-32768,-32768, - 910,-32768, 224, 219, 224, 229,-32768, 242,-32768,-32768, --32768,-32768,-32768,-32768, 3083, 3083, 313, 152,-32768,-32768, --32768, 3083,-32768,-32768, 1620,-32768, 322, 332, 346,-32768, --32768,-32768, 3083, 254, 330,-32768, 3142, 3201,-32768, 3961, - 523, 335, 347, 985, 3083,-32768,-32768,-32768,-32768,-32768, - 349, 434,-32768, 360, 3794, 343,-32768, 152,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 368, 3874,-32768,-32768,-32768, 2795, 415,-32768,-32768, --32768, 152, 152, 362, 152, 152,-32768,-32768,-32768, 386, - 503, 292,-32768, 479, 189,-32768, 402,-32768, 2224, 255, - 70,-32768,-32768, 479,-32768, 337,-32768, 70, 2143, 406, - 475, 418, 2059, 910,-32768,-32768,-32768,-32768, 70,-32768, - 416, 408, 1966,-32768, 420,-32768, 119,-32768,-32768,-32768, - 3083,-32768,-32768, 424,-32768, 451, 472, 2965, 3700, 3874, - 152,-32768, 477, 3083, 1620,-32768, 1620,-32768, 3083, 3083, - 514,-32768,-32768, 3083, 3083, 3083, 3083, 3083, 3083, 3083, - 3083, 3083, 3083, 3083, 3083,-32768,-32768, 152, 152, 3083, - 3083,-32768,-32768, 483,-32768, 539, 496,-32768,-32768,-32768, - 434, 2288, 70,-32768, 486, 666,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 222,-32768, 525,-32768, 3874,-32768, - 513, 519, 593,-32768, 415,-32768, 443, 519, 94, 527, --32768, 543, 537, 544,-32768, 543,-32768,-32768, 475,-32768, --32768, 600, 475, 626,-32768, 103,-32768, 573, 603,-32768, - 793, 80,-32768,-32768, 646, 70, 384, 325,-32768, 479, - 479,-32768, 255, 70,-32768, 2352,-32768,-32768, 255, 617, - 70,-32768,-32768,-32768, 611, 354, 3600, 224, 70, 224, --32768, 662, 620,-32768, 119, 1283,-32768,-32768, 2710,-32768, --32768,-32768,-32768, 664, 630, 3700,-32768, 633, 654,-32768, - 3961, 655, 657, 3961, 3961, 3083, 665, 3083, 3083, 1588, - 1391, 672, 1068, 1257, 688, 688, 627, 627,-32768,-32768, --32768,-32768,-32768, 667, 330, 663,-32768, 152, 1185, 539, --32768,-32768, 388, 448,-32768, 3553,-32768, 670, 434,-32768, - 2416,-32768, 666, 671, 343, 3260, 673, 3735, 2162,-32768, --32768, 3371, 3874,-32768,-32768, 668, 94,-32768, 685, 3479, --32768,-32768, 487, 3342, 691, 79, 680,-32768,-32768,-32768, - 3824,-32768, 682, 436,-32768,-32768, 273,-32768,-32768, 77, --32768,-32768,-32768, 3863,-32768, 406,-32768,-32768, 406,-32768, - 723,-32768,-32768, 677,-32768, 686,-32768,-32768,-32768,-32768, --32768, 683,-32768, 690, 3083, 152, 694, 620, 3874,-32768, --32768, 3768,-32768,-32768, 664,-32768,-32768,-32768,-32768,-32768, - 735, 3083, 1125, 1238,-32768,-32768,-32768, 437, 509, 1082, - 697, 699, 1341,-32768,-32768,-32768,-32768, 486,-32768,-32768, --32768, 486,-32768,-32768, 696,-32768,-32768, 283, 705, 152, --32768, 2795, 706, 2174,-32768,-32768, 3824, 2193, 77,-32768, - 701, 709, 77,-32768, 543,-32768, 555,-32768,-32768,-32768, --32768, 189, 197, 1269, 258,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 3891, 710,-32768,-32768,-32768, - 227, 298,-32768,-32768, 3813,-32768, 790, 708,-32768,-32768, - 713,-32768,-32768, 730, 3583,-32768, 873, 77,-32768,-32768, - 77,-32768, 733,-32768,-32768, 733,-32768, 70, 70, 3961, --32768, 70, 737, 741, 1705, 3083, 773, 740, 3768,-32768, --32768, 1673,-32768, 152,-32768,-32768,-32768,-32768, 746,-32768, --32768,-32768,-32768, 2566,-32768,-32768, 3083,-32768,-32768,-32768, --32768, 227,-32768,-32768,-32768,-32768, 152,-32768,-32768, 755, - 543,-32768, 3667, 3667, 98, 479, 189, 3498,-32768, 577, - 3359, 447, 447,-32768,-32768,-32768, 298, 70, 259, 370, - 70,-32768, 70, 370, 70, 3553,-32768,-32768,-32768,-32768, --32768,-32768, 479,-32768, 189,-32768, 1143,-32768,-32768, 3961, --32768,-32768, 873,-32768,-32768, 471, 471,-32768,-32768,-32768, - 70,-32768,-32768, 788, 152,-32768, 791, 3961, 752, 750, --32768,-32768, 87, 1875, 330,-32768, 3083,-32768, 773,-32768, - 3083,-32768,-32768, 2651, 795, 775,-32768,-32768, 777, 778, - 3083, 801, 765, 780, 3024, 243, 861, 76, 200,-32768, - 826, 789,-32768, 796, 3572,-32768, 856, 1450, 95,-32768, --32768,-32768,-32768,-32768, 2823, 336, 259, 370, 70, 490, --32768,-32768, 581,-32768, 805, 543,-32768,-32768,-32768,-32768, - 3083, 832, 797,-32768, 797, 602, 227,-32768, 2480,-32768, --32768,-32768, 640, 298,-32768,-32768,-32768, 536, 554, 1143, --32768,-32768, 1705,-32768,-32768, 3083,-32768, 122, 75,-32768, --32768, 1705,-32768,-32768, 1790,-32768, 1955,-32768,-32768,-32768, - 1673, 3083, 813,-32768, 3083, 3083, 921,-32768,-32768,-32768, --32768, 803, 3083, 806,-32768, 825, 70,-32768,-32768, 479, --32768, 189, 1535,-32768,-32768,-32768,-32768, 3083,-32768,-32768, --32768,-32768,-32768,-32768, 227,-32768,-32768, 822, 83, 83, - 3961, 3083, 447, 610, 610,-32768,-32768, 807,-32768,-32768, - 808, 3925, 3083,-32768, 810, 1955,-32768,-32768, 816, 3083, - 877,-32768, 482, 817, 819, 3083,-32768,-32768, 821,-32768, - 3083,-32768, 560,-32768, 236, 562,-32768, 744,-32768,-32768, - 2651, 820,-32768, 543,-32768,-32768,-32768,-32768,-32768, 3961, --32768,-32768,-32768,-32768, 3925,-32768,-32768,-32768, 824,-32768, --32768,-32768,-32768, 3943,-32768, 160,-32768, 255,-32768, 255, --32768,-32768,-32768, 827, 830,-32768,-32768,-32768, 3083,-32768, --32768, 901, 829,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 831,-32768, 848, 168, 828,-32768,-32768, 708, 708,-32768, --32768, 3083, 901, 837, 901,-32768,-32768, 3083, 839, 171, --32768,-32768, 849,-32768, 626, 847,-32768, 335, 373,-32768, --32768, 852, 626,-32768,-32768, 335, 935, 939,-32768 -}; - -static const short yypgoto[] = {-32768, --32768,-32768,-32768, 100, -375,-32768,-32768,-32768,-32768,-32768, --32768,-32768, -14,-32768, -56, 515, -226, 280,-32768,-32768, - -74,-32768, 596,-32768,-32768,-32768,-32768,-32768, 140, -310, --32768, -313, 614,-32768,-32768, 439,-32768, 248, -46, 202, - 15, 864,-32768, 272, 38, -26, -172, 698, 492, -244, - -602, -82, -181, -120,-32768,-32768,-32768, -262, 44, -32, --32768, 529,-32768, 269,-32768, -638,-32768, 164,-32768, -631, --32768,-32768, 276,-32768,-32768,-32768,-32768,-32768,-32768, -73, - -109, -502, 2,-32768,-32768,-32768, -78,-32768,-32768,-32768, --32768,-32768, 467, -27,-32768, 623, 521, 310, 656, 538, - -24, -75, -159, -168, -236, 511,-32768,-32768, -239,-32768, --32768,-32768, 613, -22,-32768, 444,-32768, -526,-32768,-32768, --32768,-32768, -192, -449, -719, 516,-32768, 146,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 147,-32768, - -818, 88,-32768, 89,-32768, 612,-32768, -353,-32768, 604, - 605, 466, -306,-32768,-32768,-32768,-32768, 17,-32768, 1017, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, -9, 5, -355,-32768, 481,-32768, - 394, 205,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -300, --32768,-32768,-32768, 211, 497,-32768,-32768,-32768,-32768, -23, - 745,-32768,-32768, 518,-32768, 225, 531,-32768, 631, 636, - -140,-32768, -127,-32768,-32768, 359, 462,-32768,-32768,-32768, --32768,-32768,-32768, 700,-32768,-32768,-32768 -}; - - -#define YYLAST 4018 - - -static const short yytable[] = { 124, - 141, 63, 212, 92, 67, 68, 86, 334, 71, 209, - 63, 74, 220, 446, 72, 445, 32, 32, 42, 42, - 92, 92, 92, 94, 96, 98, 70, 344, 70, 470, - 229, 230, 81, 195, 337, 475, 305, 233, 472, 33, - 33, 422, 181, 405, 414, 36, 36, 92, 242, 306, - 354, 670, 53, 54, 55, 92, 32, 184, 42, 190, - 278, 188, 520, 356, 551, 624, 284, 225, 659, 290, - 778, 70, 799, 321, 80, 70, 88, 578, 192, 33, - -113, 471, 547, 886, 861, 36, 213, 272, 477, 462, - 237, 461, 185, 232, 338, 827, 483, 736, 374, 14, - 931, -1, 50, 447, 14, 448, 5, 6, 7, 8, - 147, 413, 449, 186, 9, 10, 11, 853, -35, 361, - 80, 59, 60, -2, 197, 16, 208, 797, 80, 953, - 13, 294, 14, 298, 219, 220, 187, 59, 60, 334, - 344, 99, 328, 16, 851, 686, 148, 687, 301, 695, - 334, 14, 16, 855, 59, 60, 334, 300, 828, 569, - 911, 198, 199, 579, 887, 858, -113, 309, 310, 514, - 313, 314, 714, 182, 22, 92, 518, 56, 422, 24, - 16, 371, 522, -399, 354, 283, 92, 736, 283, 535, - 61, 75, 319, 926, 183, 62, 323, 356, 930, 405, - 932, 650, 922, -185, -185, 192, 61, 220, 57, 940, - 943, 62, 362, 955, 406, 378, 515, 873, 14, 468, - 382, 93, 383, 61, 897, 418, 379, 466, 62, 75, - 655, 469, 59, 60, 80, 495, 419, 208, 80, 357, - 923, 964, -34, 76, 640, 59, 60, 208, 944, 16, - 92, 956, 77, 402, 403, 329, 14, 219, -339, -339, - -339, -339, 197, 844, 845, -176, -339, -339, -339, 58, - 616, 565, 759, 621, 427, 89, -176, 90, 82, 83, - 85, 656, -339, 753, 566, 595, 146, 597, 14, 474, - 657, 282, 434, 221, 491, 51, 52, 813, 635, 436, - 75, 61, 424, 92, -339, 224, 62, 425, 59, 60, - 549, 550, 777, 70, 61, 226, 95, -176, 515, 62, - 622, -176, 768, 769, 283, -480, -339, 14, 228, 501, - 482, -339, 484, 189, 243, 688, 689, 148, 319, 690, - 755, -112, 323, 272, 220, 59, 60, 291, 292, 293, - 362, 607, 662, 576, 736, 198, 199, 5, 577, 7, - 288, 657, 282, 626, 525, 9, 10, 11, 627, 36, - 59, 60, 320, 357, 193, 881, 231, 61, 194, 705, - 208, 13, 62, 208, 208, 239, 75, 202, 345, 346, - 318, 305, 97, 507, 318, 240, 770, 771, 772, 14, - 746, 775, 776, 16, 306, 467, 246, 248, 542, 241, - 294, 946, 947, 14, 61, 244, 830, 14, 339, 62, - 414, 244, 340, 787, 86, 22, 273, 546, 790, 279, - 24, 299, 782, 198, 199, -281, -281, 585, 203, 61, - 287, 70, 280, 533, 62, 59, 60, 204, 311, 75, - 202, 281, 282, 962, 553, 838, 283, 307, 963, 36, - 205, 846, 283, 14, 604, 324, 534, 317, 709, 345, - 346, 362, 36, 75, 202, 36, 14, 554, 565, 350, - 705, 75, 202, 36, 831, 832, 833, 766, 280, 761, - 351, 566, 597, 773, 88, 661, 665, 281, 282, 347, - 14, 203, 359, 194, 367, 75, 433, 86, 14, 318, - 204, 420, 421, 786, 61, 629, 636, 574, 613, 62, - 638, 575, 614, 205, 87, 203, 854, 86, 519, 518, - 522, 368, 14, 203, 204, 782, 518, 522, 198, 199, - 266, 267, 204, 268, 269, 270, 271, 205, 143, 420, - 421, 533, 369, 645, 872, 205, -86, 76, 380, 558, - 559, 560, 901, 407, 212, 682, 77, 732, 684, 561, - 408, 834, 660, 664, 534, 835, 412, 88, 762, 762, - 36, 266, 267, 915, 268, 269, 270, 271, 426, 894, - 459, 615, 779, 428, 924, 80, 925, 88, 220, 712, - 429, 478, 431, 480, 75, 655, 143, 437, 318, 731, - -478, 767, 789, 789, 658, 663, 774, 849, 36, 757, - 758, 340, 752, 441, 442, 92, 197, 558, 559, 560, - 92, 14, 916, 748, 102, 850, 289, 642, 734, 194, - 745, 907, 75, 909, 958, 340, 318, 194, 645, 558, - 559, 560, 966, 558, 559, 560, 656, 732, 192, 760, - 458, 735, 553, 836, 143, 657, 282, 36, 812, 14, - 278, 216, 217, 768, 769, 658, 645, 9, 10, 11, - 791, 263, 264, 265, 459, 554, 465, 552, 476, 208, - 80, 36, 479, 344, 662, 208, 208, 571, 572, 731, - 663, 220, 485, 657, 282, 486, 493, 502, 86, 36, - 494, 814, 848, 497, 143, 334, 208, 334, 80, 72, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 788, - 208, 143, 70, 70, 498, 499, 143, 500, 143, 876, - 261, 262, 263, 264, 265, 859, 875, 505, 862, 865, - 506, 526, 548, 530, 544, 92, 869, 521, 568, 734, - 570, 745, 573, 589, 590, 598, 592, 319, 323, 762, - 197, 882, 599, -176, 319, 323, 602, 611, 88, -316, - 632, 620, 735, 625, -176, 628, 575, 631, 36, 637, - 143, 654, 669, 329, 579, 275, -116, -116, -116, -116, - 646, 647, -116, 899, -116, -116, -116, 198, 199, 658, - 658, 672, 652, 653, 906, 707, 663, 663, 685, 691, - -116, 692, 754, 878, 732, -176, 366, 708, 713, -176, - -32, 673, 675, 793, 794, 795, 748, -33, 802, 381, - 805, 806, -116, 808, 384, 385, 809, 289, 143, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 810, 862, 208, -116, 80, 731, 815, 817, -116, - 818, 823, 837, 678, 842, 100, 860, 819, 658, -116, - 101, 102, 843, 103, 868, 949, 208, 870, 871, 885, - 893, 862, 896, 900, 892, 552, 898, 928, 902, 903, - 914, 104, 905, 15, 917, 105, 106, 107, 927, 933, - 937, 942, 941, 945, 215, 216, 217, 108, 951, 954, - 109, 9, 10, 11, 143, 110, 111, 112, 960, 957, - 866, 113, 114, 965, 968, 143, 115, 116, 969, 14, - 529, 117, 87, 118, 863, 463, 829, 780, 119, 617, - 214, 784, 120, 527, 603, 586, 121, 122, 857, 679, - 249, 250, 251, 867, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 798, 481, - 143, 820, 822, 503, 504, 274, 423, -319, -319, -319, - -319, -319, -319, -319, 785, -319, -319, -319, -319, -319, - 596, -319, -319, -319, -319, -319, -319, -319, -319, -319, - -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, - 488, 618, 517, 601, 671, 87, 912, 913, 623, -319, - 950, 523, -319, 952, -319, 540, 541, -319, -319, -319, - 668, 73, 651, -319, -319, 87, 765, 891, -319, -319, - 889, 649, 435, -319, 634, -319, -319, 289, 531, 883, - -319, -319, 630, 532, -319, 800, -319, 275, -319, -319, - 710, -319, 0, 0, 0, 496, 676, 0, 0, 0, - 600, 0, 329, 0, -125, -125, -125, -125, -125, -125, - -125, 0, -125, -125, -125, -125, -125, 612, -125, -125, - -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, - -125, -125, -125, 0, -125, -125, -125, 258, 259, 260, - 261, 262, 263, 264, 265, 0, -125, 0, 0, -125, - 0, -125, 0, 0, -125, -125, -125, 0, 0, 0, - -125, -125, 143, 0, 0, -125, -125, 781, 216, 217, - -125, 0, -125, -125, 9, 10, 11, -125, -125, 0, - 0, -125, 0, -125, -125, -125, -125, 0, -125, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 680, 0, 0, 509, 0, -339, -339, -339, - -339, -339, -339, -339, 0, -339, -339, -339, -339, -339, - 698, -339, -339, -339, -339, -339, -339, -339, -339, -339, - -339, -339, -339, -339, -339, -339, 0, -339, -339, -339, - 0, 0, 0, 0, 0, 0, 87, 0, 0, -339, - 0, 0, -339, 0, -339, 0, 0, -339, -339, -339, - 0, 0, 0, -339, -339, 0, 0, 0, -339, -339, - 0, 0, 0, -339, 0, -339, -339, 0, 0, 0, - -339, -339, 0, 0, -339, 0, -339, 0, -339, -339, - 0, -339, 5, 6, 7, 8, 0, 0, 680, 0, - 9, 10, 11, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 0, 13, 0, 14, 698, - 0, 0, 0, 0, 0, 0, 801, 259, 260, 261, - 262, 263, 264, 265, 0, 0, 807, 0, 16, 0, - 0, 0, 249, 250, 251, 0, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 22, 329, 0, -339, -339, 24, 0, 0, -339, -339, - 84, -339, 0, 0, 0, -339, 841, -339, -339, -339, - -339, -339, -339, -339, -339, -339, -339, -339, 489, -339, - 0, -339, 0, -339, -339, -339, 0, 0, 698, 0, - 0, 852, 0, 0, 0, -339, 0, 698, -339, 0, - 698, 0, 698, -339, -339, -339, 0, 0, 0, -339, - -339, 0, 0, 0, -339, -339, 0, 0, 0, -339, - 0, -339, -339, 0, 0, 0, -339, -339, 0, 0, - -339, 0, -339, -312, -339, -339, 0, -339, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 890, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 895, 0, - 824, 698, -339, -339, 0, 0, 0, -339, -339, 0, - -339, 904, 0, 0, -339, 0, -339, -339, -339, -339, - -339, -339, -339, -339, -339, -339, -339, 0, -339, 0, - -339, 0, -339, -339, -339, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -339, 0, 0, -339, 0, 0, - 0, 0, -339, -339, -339, 0, 0, 0, -339, -339, - 0, 0, 0, -339, -339, 0, 0, 0, -339, 0, - -339, -339, 0, 0, 0, -339, -339, 0, 0, -339, - 0, -339, 0, -339, -339, 879, -339, -349, -349, 0, - 0, 0, -349, -349, 0, -349, 0, 0, 0, -349, - 0, -349, -349, -349, -349, -349, -349, -349, -349, -349, - -349, -349, 0, -349, 0, -349, 0, -349, -349, -349, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -349, - 0, 0, -349, 0, 0, 0, 0, -349, -349, -349, - 0, 0, 0, -349, -349, 0, 0, 0, -349, -349, - 0, 0, 0, -349, 0, -349, -349, 0, 0, 0, - -349, -349, 0, 0, -349, 0, -349, 0, -349, -349, - 234, -349, 100, 5, 0, 7, 140, 101, 102, 0, - 103, 9, 10, 11, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 0, 0, 13, 104, 0, - 15, 0, 105, 106, 107, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 108, 0, 0, 109, 0, 16, - 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, - 0, 0, 0, 115, 116, 0, 0, 0, 117, 0, - 118, 22, 0, 0, 0, 119, 24, 0, 0, 120, - 0, 0, 0, 121, 122, 693, 235, 694, 60, 0, - 0, 0, 101, 102, 251, 103, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 0, 0, 0, 104, 0, 15, 0, 105, 106, 107, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, - 0, 0, 109, 0, 0, 0, 0, 110, 111, 112, - 0, 0, 0, 113, 114, 0, 0, 695, 115, 116, - 0, 0, 0, 117, 0, 118, 61, 0, 0, 0, - 119, 62, 0, 0, 120, 0, 0, -204, 121, 122, - 693, 696, 694, 60, 0, 0, 0, 101, 102, 0, - 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 104, 0, - 15, 0, 105, 106, 107, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 108, 0, 0, 109, 0, 0, - 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, - 0, 0, 695, 115, 116, 0, 0, 0, 117, 0, - 118, 61, 0, 0, 0, 119, 62, 0, 0, 120, - 0, 0, -269, 121, 122, 693, 696, 100, 0, 0, - 0, 0, 101, 102, 0, 103, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 104, 0, 15, 0, 105, 106, 107, - 0, 0, 0, 0, 0, -217, 0, 0, 0, 108, - 0, 0, 109, 0, 0, 0, 0, 110, 111, 112, - 0, 0, 0, 113, 114, 0, 0, -217, 115, 116, - 0, 0, 0, 117, 0, 118, 0, 0, 0, 0, - 119, 0, 0, 0, 120, 693, 0, 100, 121, 122, - 0, 696, 101, 102, 0, 103, 352, 0, 0, 5, - 0, 7, 140, 0, 0, 0, 0, 9, 10, 11, - 0, 0, 0, 104, 0, 15, 0, 105, 106, 107, - 0, 0, 0, 13, 0, 0, 15, 0, 0, 108, - 0, 0, 109, 0, 0, 0, 0, 110, 111, 112, - 0, 0, 0, 113, 114, 16, 0, 0, 115, 116, - 0, 0, 0, 117, 0, 118, 0, 0, 0, 0, - 119, 0, 0, 0, 120, 0, 0, 22, 121, 122, - 196, 696, 24, -28, -28, -28, -28, 353, -272, 0, - 0, -28, -28, -28, 0, 0, 0, 0, 0, 348, - 0, 0, -24, -24, -24, -24, 197, -28, 0, -176, - -24, -24, -24, 0, 0, 0, 0, 0, 0, 0, - -176, 0, 0, 0, 0, 197, -24, 0, -176, -28, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -176, - 0, 0, 0, 198, 199, 0, 0, 0, -24, 0, - 0, -28, 0, 0, 0, 0, -28, 0, 0, 0, - 0, -176, 198, 199, 0, -176, -28, 0, 0, 0, - -24, 0, 0, 0, 0, -24, 0, 0, 0, 0, - -176, 0, 0, 342, -176, -24, -20, -20, -20, -20, - 0, 0, 0, 0, -20, -20, -20, 0, 0, 0, - 0, 0, 329, 0, 0, 5, 6, 7, 8, 197, - -20, 0, -176, 9, 10, 11, 0, 5, 6, 7, - 8, 0, 0, -176, 0, 9, 10, 11, 0, 13, - 0, 14, -20, 329, 0, 0, -502, -502, -502, -502, - 0, 13, 0, 14, -502, -502, -502, 0, 0, 0, - 0, 16, 0, 0, -20, 0, 0, 0, 0, -20, - -502, 0, -502, 16, -176, 0, 100, 0, -176, -20, - 0, 101, 102, 22, 103, 0, 0, 0, 24, 0, - 0, 0, -502, 0, 0, 22, 0, 0, -500, 0, - 24, 0, 104, 0, 15, 633, 105, 106, 107, 0, - 0, 0, 0, 0, -502, 0, 0, 0, 108, -502, - 0, 109, 0, 0, 0, 0, 110, 111, 112, -502, - 0, 0, 113, 114, 0, 0, 0, 115, 116, 0, - 100, 0, 117, 0, 118, 101, 102, 0, 103, 119, - 0, 0, 0, 120, 0, 0, 0, 121, 122, 0, - 0, 327, 0, 0, 0, 0, 104, 0, 15, 0, - 105, 106, 107, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 108, 0, 0, 109, 0, 0, 0, 0, - 110, 111, 112, 0, 0, 0, 113, 114, 0, 0, - 0, 115, 116, 0, 100, 0, 117, 0, 118, 101, - 102, 0, 103, 119, 0, 0, 0, 120, 0, 0, - 0, 121, 122, 0, 0, 417, 0, 0, 0, 0, - 104, 0, 15, 0, 105, 106, 107, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 108, 0, 0, 109, - 0, 0, 0, 0, 110, 111, 112, 0, 0, 0, - 113, 114, 0, 0, 0, 115, 116, 0, 100, 0, - 117, 0, 118, 101, 102, 0, 103, 119, 0, 0, - 0, 120, 0, 0, 0, 121, 122, 0, 0, 473, - 0, 0, 0, 0, 104, 0, 15, 0, 105, 106, - 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 108, 0, 0, 109, 0, 0, 0, 0, 110, 111, - 112, 0, 0, 0, 113, 114, 0, 0, 0, 115, - 116, 0, 100, 0, 117, 0, 118, 101, 102, 0, - 103, 119, 0, 0, 0, 120, 0, 0, 0, 121, - 122, 0, 0, 524, 0, 0, 0, 0, 104, 0, - 15, 0, 105, 106, 107, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 108, 0, 0, 109, 0, 0, - 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, - 0, 0, 0, 115, 116, 0, 0, 0, 117, 0, - 118, 0, 0, 0, 0, 119, 0, 0, 0, 120, - 0, 0, 0, 121, 122, 0, 0, 847, 694, 715, - 6, 7, 8, 101, 102, 0, 103, 9, 10, 11, - 716, 0, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 13, 104, 14, 15, 0, 105, 106, - 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 108, 0, 0, 109, 0, 16, 0, 0, 110, 111, - 112, 0, 0, 0, 113, 114, 0, 0, 0, 115, - 116, 0, 0, 0, 117, 0, 118, 728, 0, 0, - 0, 119, 729, 0, 0, 120, 0, 730, 0, 121, - 122, 0, 579, 694, 60, 0, 0, 0, 101, 102, - 0, 103, 0, 0, 0, 716, 0, 717, 718, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 0, 104, - 0, 15, 0, 105, 106, 107, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 108, 0, 0, 109, 0, - 0, 0, 0, 110, 111, 112, 0, 0, 0, 113, - 114, 0, 100, 0, 115, 116, 0, 101, 102, 117, - 103, 118, 61, 0, 0, 0, 119, 62, 0, 0, - 120, 0, 730, 0, 121, 122, 0, 579, 104, 0, - 15, 0, 105, 106, 107, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 108, 0, 0, 109, 0, 0, - 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, - 0, 0, 0, 115, 116, 0, 0, 0, 117, 0, - 118, 0, 0, 0, 0, 119, 0, 0, 0, 120, - 0, 0, 0, 121, 122, 0, 490, 149, 150, 0, - 151, 152, 0, 0, 0, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 0, 100, 5, 6, 7, 8, - 101, 102, 0, 103, 9, 10, 11, 172, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 104, 14, 15, 0, 105, 106, 107, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, - 109, 174, 16, 0, 0, 110, 111, 112, 0, 0, - 303, 113, 114, 0, 0, 0, 115, 116, 0, 0, - 0, 117, 0, 118, 22, 0, 0, 0, 119, 24, - 0, 0, 120, 0, 0, 0, 121, 122, 100, 5, - 0, 7, 140, 101, 102, 0, 103, 9, 10, 11, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 13, 104, 0, 15, 0, 105, 106, - 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 108, 0, 0, 109, 0, 16, 0, 0, 110, 111, - 112, 0, 0, 0, 113, 114, 0, 100, 0, 115, - 116, 0, 101, 102, 117, 103, 118, 22, 0, 0, - 0, 119, 24, 0, 0, 120, 0, 0, 0, 121, - 122, 0, 0, 104, 0, 15, 0, 105, 106, 107, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, - 0, 0, 109, 0, 0, 0, 0, 110, 111, 112, - 0, 0, 0, 113, 114, 0, 100, 0, 115, 116, - 0, 101, 102, 117, 103, 118, 370, 0, 0, 0, - 119, 0, 0, 0, 120, 0, 0, 0, 121, 122, - 0, 0, 104, 0, 15, 0, 105, 106, 107, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, - 0, 109, 0, 0, 0, 0, 110, 111, 112, 0, - 0, 0, 113, 114, 0, 100, 0, 115, 116, 0, - 101, 102, 117, 103, 118, 0, 0, 0, 0, 119, - 0, 0, 0, 120, 0, 811, 0, 121, 122, 0, - 0, 104, 0, 15, 0, 105, 106, 107, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, - 109, 0, 0, 0, 0, 110, 111, 112, 0, 0, - 0, 113, 114, 0, 100, 0, 115, 116, 0, 101, - 102, 117, 103, 118, 0, 0, 0, 0, 119, 0, - 0, 0, 120, 0, 0, 0, 121, 122, 0, 0, - 104, 0, 15, 0, 105, 106, 107, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 108, 0, 0, 109, - 0, 0, 0, 0, 110, 111, 112, 0, 0, 0, - 113, 114, 0, 100, 0, 245, 116, 0, 101, 102, - 117, 103, 118, 0, 0, 0, 0, 119, 0, 0, - 0, 120, 0, 0, 0, 121, 122, 0, 0, 104, - 0, 15, 0, 105, 106, 107, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 108, 0, 0, 109, 0, - 0, 0, 0, 110, 111, 112, 0, 0, 0, 113, - 114, 0, 528, 0, 247, 116, 0, 101, 102, 117, - 103, 118, 0, 0, 0, 0, 119, 0, 0, 0, - 120, 0, 0, 0, 121, 122, 0, 0, 104, 0, - 15, 0, 105, 106, 107, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 108, 0, 0, 109, 0, 0, - 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, - 0, 0, 0, 115, 116, 0, 0, 0, 117, 0, - 118, 0, 0, 0, 0, 119, 0, 0, 0, 120, - 0, 0, 563, 121, 122, 5, 0, 7, 140, 0, - 0, 0, 0, 9, 10, 11, 0, 0, 0, 563, - 0, 0, 5, 0, 7, 140, 0, 0, 0, 13, - 9, 10, 11, 0, 5, 6, 7, 8, 0, 0, - 449, 0, 9, 10, 11, 0, 13, 0, 0, 0, - 0, 16, 0, 0, 0, 0, 0, 0, 13, 4, - 14, -129, 5, 6, 7, 8, 0, 0, 16, 0, - 9, 10, 11, 22, -454, -454, -454, 0, 24, 0, - 16, 0, 0, 564, -454, 12, 13, 0, 14, 15, - 22, -453, -453, -453, 0, 24, 0, 0, 0, 0, - 564, -453, 22, 0, 0, 0, 0, 24, 16, 0, - 0, 17, 18, -129, 0, 0, 0, 0, 0, 0, - 0, 0, -129, 0, 19, 20, 21, 0, 0, 0, - 22, 0, 0, 0, 23, 24, 25, 26, 0, 4, - 27, -129, 5, 6, 7, 8, 0, 0, 0, 0, - 9, 10, 11, 0, 0, 0, 0, 0, 4, 0, - -129, 5, 6, 7, 8, 0, 13, 0, 14, 9, - 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13, 0, 14, 16, 0, - 0, 549, 550, -129, 0, 0, 0, 0, 0, 0, - 0, 0, -129, 0, 0, 0, 0, 16, 0, 0, - 22, 0, -129, 447, 0, 24, 5, 6, 7, 8, - 27, -129, 449, 0, 9, 10, 11, 0, 0, 22, - 0, 0, 0, 0, 24, 5, 6, 7, 8, 27, - 13, 0, 14, 9, 10, 11, 5, 89, 7, 90, - 0, 0, 0, 0, 9, 10, 11, 0, 0, 13, - 352, 14, 16, 5, 0, 7, 140, 0, 0, 0, - 13, 9, 10, 11, 0, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 22, 0, 0, 13, 0, 24, - 15, 0, 16, -399, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 0, 0, 0, 0, 24, 16, - 0, 0, 0, 821, 22, 0, 0, 0, 0, 24, - 0, 0, 0, 0, 674, 0, 0, 0, 0, 149, - 150, 22, 151, 152, 0, 0, 24, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 0, 0, 0, 0, - 0, 0, 149, 150, 0, 151, 152, 0, 0, 172, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, - 173, 0, 0, 0, 0, 0, 0, 149, 150, 0, - 151, 152, 373, 174, 0, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 0, 0, 0, 0, 0, 0, - 149, 150, 0, 151, 152, 0, 174, 172, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 5, 0, 7, - 288, 0, 0, 0, 0, 9, 10, 11, 0, 0, - 606, 174, 0, 0, 0, 0, 5, 6, 7, 8, - 0, 13, 667, 14, 9, 10, 11, 5, 6, 7, - 8, 0, 0, 0, 0, 9, 10, 11, 0, 0, - 13, 0, 14, 16, 174, 0, 0, 0, 280, 0, - 0, 13, 0, 14, 0, 0, 0, 281, 282, 0, - 0, 0, 16, 0, 0, 22, 5, 6, 7, 8, - 24, 0, 0, 16, 9, 10, 11, 5, 0, 7, - 140, 0, 0, 0, 22, 9, 10, 11, 0, 24, - 13, 0, 0, 0, 5, 22, 7, 288, 0, 0, - 24, 13, 9, 10, 11, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, 0, 0, 13, 0, - 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 22, 0, 0, 0, 0, 24, - 16, 0, 0, 0, 0, 22, 0, 0, 0, 0, - 24, 0, 0, 0, 14, 0, 0, 0, 0, 0, - 0, 0, 22, 0, 249, 250, 251, 24, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 249, 250, 251, 921, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265 -}; - -static const short yycheck[] = { 56, - 57, 16, 85, 36, 19, 20, 33, 200, 23, 83, - 25, 26, 91, 324, 24, 316, 2, 3, 2, 3, - 53, 54, 55, 38, 39, 40, 22, 209, 24, 343, - 105, 106, 31, 80, 203, 349, 177, 112, 345, 2, - 3, 286, 66, 270, 281, 2, 3, 80, 123, 177, - 223, 578, 9, 10, 11, 88, 42, 67, 42, 74, - 135, 71, 416, 223, 440, 515, 142, 95, 571, 145, - 673, 67, 704, 194, 31, 71, 33, 1, 77, 42, - 1, 344, 438, 1, 804, 42, 85, 9, 351, 10, - 115, 331, 43, 108, 204, 1, 359, 624, 239, 30, - 919, 0, 3, 1, 30, 3, 4, 5, 6, 7, - 50, 280, 10, 64, 12, 13, 14, 43, 43, 1, - 77, 3, 4, 0, 27, 50, 83, 41, 85, 948, - 28, 146, 30, 148, 91, 214, 87, 3, 4, 332, - 322, 42, 199, 50, 783, 595, 86, 597, 173, 63, - 343, 30, 50, 792, 3, 4, 349, 172, 64, 81, - 880, 64, 65, 87, 82, 797, 87, 182, 183, 409, - 185, 186, 622, 43, 72, 208, 413, 64, 423, 77, - 50, 238, 419, 81, 357, 142, 219, 714, 145, 429, - 72, 3, 191, 913, 64, 77, 195, 357, 918, 426, - 920, 557, 43, 82, 83, 204, 72, 286, 64, 929, - 43, 77, 227, 43, 271, 240, 409, 820, 30, 340, - 245, 87, 247, 72, 856, 282, 241, 337, 77, 3, - 4, 341, 3, 4, 191, 376, 283, 194, 195, 223, - 81, 961, 43, 55, 545, 3, 4, 204, 81, 50, - 283, 81, 64, 268, 269, 1, 30, 214, 4, 5, - 6, 7, 27, 766, 767, 30, 12, 13, 14, 64, - 510, 444, 648, 513, 299, 5, 41, 7, 82, 32, - 33, 55, 28, 639, 444, 478, 64, 480, 30, 346, - 64, 65, 307, 70, 369, 82, 83, 55, 538, 309, - 3, 72, 81, 336, 50, 87, 77, 86, 3, 4, - 53, 54, 666, 309, 72, 87, 87, 82, 511, 77, - 513, 86, 64, 65, 281, 68, 72, 30, 87, 386, - 358, 77, 360, 82, 81, 598, 599, 86, 337, 602, - 641, 87, 341, 9, 423, 3, 4, 5, 6, 7, - 365, 492, 55, 81, 881, 64, 65, 4, 86, 6, - 7, 64, 65, 81, 421, 12, 13, 14, 86, 326, - 3, 4, 81, 357, 82, 825, 64, 72, 86, 606, - 337, 28, 77, 340, 341, 64, 3, 4, 64, 65, - 7, 532, 87, 408, 7, 64, 659, 660, 661, 30, - 627, 664, 665, 50, 532, 81, 127, 128, 433, 64, - 425, 938, 939, 30, 72, 86, 81, 30, 82, 77, - 657, 86, 86, 686, 451, 72, 80, 437, 691, 81, - 77, 64, 677, 64, 65, 82, 83, 464, 55, 72, - 81, 437, 55, 429, 77, 3, 4, 64, 87, 3, - 4, 64, 65, 81, 440, 756, 413, 43, 86, 416, - 77, 768, 419, 30, 489, 64, 429, 82, 609, 64, - 65, 486, 429, 3, 4, 432, 30, 440, 651, 64, - 707, 3, 4, 440, 747, 748, 749, 656, 55, 43, - 83, 651, 685, 662, 451, 571, 572, 64, 65, 82, - 30, 55, 83, 86, 81, 3, 64, 534, 30, 7, - 64, 64, 65, 43, 72, 530, 539, 82, 82, 77, - 543, 86, 86, 77, 33, 55, 789, 554, 81, 766, - 767, 81, 30, 55, 64, 780, 773, 774, 64, 65, - 59, 60, 64, 62, 63, 64, 65, 77, 57, 64, - 65, 537, 81, 552, 817, 77, 43, 55, 82, 73, - 74, 75, 81, 81, 647, 588, 64, 624, 591, 83, - 32, 82, 571, 572, 537, 86, 81, 534, 652, 653, - 537, 59, 60, 884, 62, 63, 64, 65, 64, 852, - 82, 83, 675, 81, 908, 552, 910, 554, 677, 614, - 82, 354, 10, 356, 3, 4, 115, 81, 7, 624, - 68, 658, 686, 687, 571, 572, 663, 82, 575, 643, - 644, 86, 637, 87, 81, 658, 27, 73, 74, 75, - 663, 30, 895, 632, 9, 82, 145, 83, 624, 86, - 624, 82, 3, 82, 955, 86, 7, 86, 647, 73, - 74, 75, 963, 73, 74, 75, 55, 714, 657, 83, - 88, 624, 648, 83, 173, 64, 65, 624, 725, 30, - 745, 6, 7, 64, 65, 632, 675, 12, 13, 14, - 695, 55, 56, 57, 82, 648, 41, 440, 72, 646, - 647, 648, 82, 875, 55, 652, 653, 450, 451, 714, - 657, 780, 41, 64, 65, 86, 43, 43, 735, 666, - 81, 726, 769, 81, 223, 908, 673, 910, 675, 729, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 686, - 687, 240, 728, 729, 81, 81, 245, 81, 247, 822, - 53, 54, 55, 56, 57, 802, 820, 81, 805, 806, - 88, 81, 68, 81, 87, 788, 813, 88, 68, 745, - 81, 745, 81, 41, 88, 83, 81, 766, 767, 843, - 27, 828, 83, 30, 773, 774, 83, 43, 735, 83, - 533, 83, 745, 88, 41, 81, 86, 82, 745, 81, - 299, 82, 3, 1, 87, 83, 4, 5, 6, 7, - 553, 554, 10, 860, 12, 13, 14, 64, 65, 766, - 767, 82, 565, 566, 871, 43, 773, 774, 86, 83, - 28, 81, 68, 822, 881, 82, 231, 88, 83, 86, - 43, 584, 585, 43, 83, 86, 835, 43, 64, 244, - 64, 64, 50, 43, 249, 250, 82, 356, 357, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 82, 919, 820, 72, 822, 881, 7, 43, 77, - 82, 16, 68, 1, 43, 3, 64, 82, 835, 87, - 8, 9, 86, 11, 82, 942, 843, 82, 64, 68, - 83, 948, 83, 17, 88, 648, 81, 68, 82, 81, - 81, 29, 82, 31, 81, 33, 34, 35, 82, 9, - 82, 64, 82, 86, 5, 6, 7, 45, 82, 81, - 48, 12, 13, 14, 433, 53, 54, 55, 82, 81, - 10, 59, 60, 82, 0, 444, 64, 65, 0, 30, - 426, 69, 451, 71, 805, 332, 745, 676, 76, 511, - 87, 683, 80, 425, 488, 464, 84, 85, 795, 87, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 703, 357, - 489, 734, 735, 388, 389, 1, 289, 3, 4, 5, - 6, 7, 8, 9, 685, 11, 12, 13, 14, 15, - 480, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 365, 511, 410, 486, 581, 534, 881, 881, 513, 45, - 943, 420, 48, 945, 50, 432, 432, 53, 54, 55, - 575, 25, 562, 59, 60, 554, 653, 843, 64, 65, - 840, 555, 308, 69, 537, 71, 72, 566, 428, 835, - 76, 77, 532, 428, 80, 707, 82, 83, 84, 85, - 609, 87, -1, -1, -1, 376, 585, -1, -1, -1, - 485, -1, 1, -1, 3, 4, 5, 6, 7, 8, - 9, -1, 11, 12, 13, 14, 15, 502, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, -1, 33, 34, 35, 50, 51, 52, - 53, 54, 55, 56, 57, -1, 45, -1, -1, 48, - -1, 50, -1, -1, 53, 54, 55, -1, -1, -1, - 59, 60, 651, -1, -1, 64, 65, 5, 6, 7, - 69, -1, 71, 72, 12, 13, 14, 76, 77, -1, - -1, 80, -1, 82, 83, 84, 85, -1, 87, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 587, -1, -1, 1, -1, 3, 4, 5, - 6, 7, 8, 9, -1, 11, 12, 13, 14, 15, - 605, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, -1, 33, 34, 35, - -1, -1, -1, -1, -1, -1, 735, -1, -1, 45, - -1, -1, 48, -1, 50, -1, -1, 53, 54, 55, - -1, -1, -1, 59, 60, -1, -1, -1, 64, 65, - -1, -1, -1, 69, -1, 71, 72, -1, -1, -1, - 76, 77, -1, -1, 80, -1, 82, -1, 84, 85, - -1, 87, 4, 5, 6, 7, -1, -1, 683, -1, - 12, 13, 14, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, -1, 28, -1, 30, 704, - -1, -1, -1, -1, -1, -1, 711, 51, 52, 53, - 54, 55, 56, 57, -1, -1, 721, -1, 50, -1, - -1, -1, 40, 41, 42, -1, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 72, 1, -1, 3, 4, 77, -1, -1, 8, 9, - 82, 11, -1, -1, -1, 15, 761, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 86, 29, - -1, 31, -1, 33, 34, 35, -1, -1, 783, -1, - -1, 786, -1, -1, -1, 45, -1, 792, 48, -1, - 795, -1, 797, 53, 54, 55, -1, -1, -1, 59, - 60, -1, -1, -1, 64, 65, -1, -1, -1, 69, - -1, 71, 72, -1, -1, -1, 76, 77, -1, -1, - 80, -1, 82, 83, 84, 85, -1, 87, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 842, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 853, -1, - 1, 856, 3, 4, -1, -1, -1, 8, 9, -1, - 11, 866, -1, -1, 15, -1, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, -1, 29, -1, - 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 45, -1, -1, 48, -1, -1, - -1, -1, 53, 54, 55, -1, -1, -1, 59, 60, - -1, -1, -1, 64, 65, -1, -1, -1, 69, -1, - 71, 72, -1, -1, -1, 76, 77, -1, -1, 80, - -1, 82, -1, 84, 85, 1, 87, 3, 4, -1, - -1, -1, 8, 9, -1, 11, -1, -1, -1, 15, - -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, -1, 29, -1, 31, -1, 33, 34, 35, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, - -1, -1, 48, -1, -1, -1, -1, 53, 54, 55, - -1, -1, -1, 59, 60, -1, -1, -1, 64, 65, - -1, -1, -1, 69, -1, 71, 72, -1, -1, -1, - 76, 77, -1, -1, 80, -1, 82, -1, 84, 85, - 1, 87, 3, 4, -1, 6, 7, 8, 9, -1, - 11, 12, 13, 14, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, -1, -1, 28, 29, -1, - 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 45, -1, -1, 48, -1, 50, - -1, -1, 53, 54, 55, -1, -1, -1, 59, 60, - -1, -1, -1, 64, 65, -1, -1, -1, 69, -1, - 71, 72, -1, -1, -1, 76, 77, -1, -1, 80, - -1, -1, -1, 84, 85, 1, 87, 3, 4, -1, - -1, -1, 8, 9, 42, 11, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, - -1, -1, 48, -1, -1, -1, -1, 53, 54, 55, - -1, -1, -1, 59, 60, -1, -1, 63, 64, 65, - -1, -1, -1, 69, -1, 71, 72, -1, -1, -1, - 76, 77, -1, -1, 80, -1, -1, 83, 84, 85, - 1, 87, 3, 4, -1, -1, -1, 8, 9, -1, - 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, - 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 45, -1, -1, 48, -1, -1, - -1, -1, 53, 54, 55, -1, -1, -1, 59, 60, - -1, -1, 63, 64, 65, -1, -1, -1, 69, -1, - 71, 72, -1, -1, -1, 76, 77, -1, -1, 80, - -1, -1, 83, 84, 85, 1, 87, 3, -1, -1, - -1, -1, 8, 9, -1, 11, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, - -1, -1, -1, -1, -1, 41, -1, -1, -1, 45, - -1, -1, 48, -1, -1, -1, -1, 53, 54, 55, - -1, -1, -1, 59, 60, -1, -1, 63, 64, 65, - -1, -1, -1, 69, -1, 71, -1, -1, -1, -1, - 76, -1, -1, -1, 80, 1, -1, 3, 84, 85, - -1, 87, 8, 9, -1, 11, 1, -1, -1, 4, - -1, 6, 7, -1, -1, -1, -1, 12, 13, 14, - -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, - -1, -1, -1, 28, -1, -1, 31, -1, -1, 45, - -1, -1, 48, -1, -1, -1, -1, 53, 54, 55, - -1, -1, -1, 59, 60, 50, -1, -1, 64, 65, - -1, -1, -1, 69, -1, 71, -1, -1, -1, -1, - 76, -1, -1, -1, 80, -1, -1, 72, 84, 85, - 1, 87, 77, 4, 5, 6, 7, 82, 83, -1, - -1, 12, 13, 14, -1, -1, -1, -1, -1, 1, - -1, -1, 4, 5, 6, 7, 27, 28, -1, 30, - 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, - 41, -1, -1, -1, -1, 27, 28, -1, 30, 50, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, - -1, -1, -1, 64, 65, -1, -1, -1, 50, -1, - -1, 72, -1, -1, -1, -1, 77, -1, -1, -1, - -1, 82, 64, 65, -1, 86, 87, -1, -1, -1, - 72, -1, -1, -1, -1, 77, -1, -1, -1, -1, - 82, -1, -1, 1, 86, 87, 4, 5, 6, 7, - -1, -1, -1, -1, 12, 13, 14, -1, -1, -1, - -1, -1, 1, -1, -1, 4, 5, 6, 7, 27, - 28, -1, 30, 12, 13, 14, -1, 4, 5, 6, - 7, -1, -1, 41, -1, 12, 13, 14, -1, 28, - -1, 30, 50, 1, -1, -1, 4, 5, 6, 7, - -1, 28, -1, 30, 12, 13, 14, -1, -1, -1, - -1, 50, -1, -1, 72, -1, -1, -1, -1, 77, - 28, -1, 30, 50, 82, -1, 3, -1, 86, 87, - -1, 8, 9, 72, 11, -1, -1, -1, 77, -1, - -1, -1, 50, -1, -1, 72, -1, -1, 87, -1, - 77, -1, 29, -1, 31, 82, 33, 34, 35, -1, - -1, -1, -1, -1, 72, -1, -1, -1, 45, 77, - -1, 48, -1, -1, -1, -1, 53, 54, 55, 87, - -1, -1, 59, 60, -1, -1, -1, 64, 65, -1, - 3, -1, 69, -1, 71, 8, 9, -1, 11, 76, - -1, -1, -1, 80, -1, -1, -1, 84, 85, -1, - -1, 88, -1, -1, -1, -1, 29, -1, 31, -1, - 33, 34, 35, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 45, -1, -1, 48, -1, -1, -1, -1, - 53, 54, 55, -1, -1, -1, 59, 60, -1, -1, - -1, 64, 65, -1, 3, -1, 69, -1, 71, 8, - 9, -1, 11, 76, -1, -1, -1, 80, -1, -1, - -1, 84, 85, -1, -1, 88, -1, -1, -1, -1, - 29, -1, 31, -1, 33, 34, 35, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 45, -1, -1, 48, - -1, -1, -1, -1, 53, 54, 55, -1, -1, -1, - 59, 60, -1, -1, -1, 64, 65, -1, 3, -1, - 69, -1, 71, 8, 9, -1, 11, 76, -1, -1, - -1, 80, -1, -1, -1, 84, 85, -1, -1, 88, - -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, - 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, -1, -1, 48, -1, -1, -1, -1, 53, 54, - 55, -1, -1, -1, 59, 60, -1, -1, -1, 64, - 65, -1, 3, -1, 69, -1, 71, 8, 9, -1, - 11, 76, -1, -1, -1, 80, -1, -1, -1, 84, - 85, -1, -1, 88, -1, -1, -1, -1, 29, -1, - 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 45, -1, -1, 48, -1, -1, - -1, -1, 53, 54, 55, -1, -1, -1, 59, 60, - -1, -1, -1, 64, 65, -1, -1, -1, 69, -1, - 71, -1, -1, -1, -1, 76, -1, -1, -1, 80, - -1, -1, -1, 84, 85, -1, -1, 88, 3, 4, - 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, - 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, -1, 33, 34, - 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, -1, -1, 48, -1, 50, -1, -1, 53, 54, - 55, -1, -1, -1, 59, 60, -1, -1, -1, 64, - 65, -1, -1, -1, 69, -1, 71, 72, -1, -1, - -1, 76, 77, -1, -1, 80, -1, 82, -1, 84, - 85, -1, 87, 3, 4, -1, -1, -1, 8, 9, - -1, 11, -1, -1, -1, 15, -1, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, - -1, 31, -1, 33, 34, 35, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 45, -1, -1, 48, -1, - -1, -1, -1, 53, 54, 55, -1, -1, -1, 59, - 60, -1, 3, -1, 64, 65, -1, 8, 9, 69, - 11, 71, 72, -1, -1, -1, 76, 77, -1, -1, - 80, -1, 82, -1, 84, 85, -1, 87, 29, -1, - 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 45, -1, -1, 48, -1, -1, - -1, -1, 53, 54, 55, -1, -1, -1, 59, 60, - -1, -1, -1, 64, 65, -1, -1, -1, 69, -1, - 71, -1, -1, -1, -1, 76, -1, -1, -1, 80, - -1, -1, -1, 84, 85, -1, 87, 3, 4, -1, - 6, 7, -1, -1, -1, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, -1, 3, 4, 5, 6, 7, - 8, 9, -1, 11, 12, 13, 14, 43, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 28, 29, 30, 31, -1, 33, 34, 35, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 45, -1, -1, - 48, 77, 50, -1, -1, 53, 54, 55, -1, -1, - 86, 59, 60, -1, -1, -1, 64, 65, -1, -1, - -1, 69, -1, 71, 72, -1, -1, -1, 76, 77, - -1, -1, 80, -1, -1, -1, 84, 85, 3, 4, - -1, 6, 7, 8, 9, -1, 11, 12, 13, 14, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 28, 29, -1, 31, -1, 33, 34, - 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, -1, -1, 48, -1, 50, -1, -1, 53, 54, - 55, -1, -1, -1, 59, 60, -1, 3, -1, 64, - 65, -1, 8, 9, 69, 11, 71, 72, -1, -1, - -1, 76, 77, -1, -1, 80, -1, -1, -1, 84, - 85, -1, -1, 29, -1, 31, -1, 33, 34, 35, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, - -1, -1, 48, -1, -1, -1, -1, 53, 54, 55, - -1, -1, -1, 59, 60, -1, 3, -1, 64, 65, - -1, 8, 9, 69, 11, 71, 72, -1, -1, -1, - 76, -1, -1, -1, 80, -1, -1, -1, 84, 85, - -1, -1, 29, -1, 31, -1, 33, 34, 35, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 45, -1, - -1, 48, -1, -1, -1, -1, 53, 54, 55, -1, - -1, -1, 59, 60, -1, 3, -1, 64, 65, -1, - 8, 9, 69, 11, 71, -1, -1, -1, -1, 76, - -1, -1, -1, 80, -1, 82, -1, 84, 85, -1, - -1, 29, -1, 31, -1, 33, 34, 35, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 45, -1, -1, - 48, -1, -1, -1, -1, 53, 54, 55, -1, -1, - -1, 59, 60, -1, 3, -1, 64, 65, -1, 8, - 9, 69, 11, 71, -1, -1, -1, -1, 76, -1, - -1, -1, 80, -1, -1, -1, 84, 85, -1, -1, - 29, -1, 31, -1, 33, 34, 35, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 45, -1, -1, 48, - -1, -1, -1, -1, 53, 54, 55, -1, -1, -1, - 59, 60, -1, 3, -1, 64, 65, -1, 8, 9, - 69, 11, 71, -1, -1, -1, -1, 76, -1, -1, - -1, 80, -1, -1, -1, 84, 85, -1, -1, 29, - -1, 31, -1, 33, 34, 35, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 45, -1, -1, 48, -1, - -1, -1, -1, 53, 54, 55, -1, -1, -1, 59, - 60, -1, 3, -1, 64, 65, -1, 8, 9, 69, - 11, 71, -1, -1, -1, -1, 76, -1, -1, -1, - 80, -1, -1, -1, 84, 85, -1, -1, 29, -1, - 31, -1, 33, 34, 35, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 45, -1, -1, 48, -1, -1, - -1, -1, 53, 54, 55, -1, -1, -1, 59, 60, - -1, -1, -1, 64, 65, -1, -1, -1, 69, -1, - 71, -1, -1, -1, -1, 76, -1, -1, -1, 80, - -1, -1, 1, 84, 85, 4, -1, 6, 7, -1, - -1, -1, -1, 12, 13, 14, -1, -1, -1, 1, - -1, -1, 4, -1, 6, 7, -1, -1, -1, 28, - 12, 13, 14, -1, 4, 5, 6, 7, -1, -1, - 10, -1, 12, 13, 14, -1, 28, -1, -1, -1, - -1, 50, -1, -1, -1, -1, -1, -1, 28, 1, - 30, 3, 4, 5, 6, 7, -1, -1, 50, -1, - 12, 13, 14, 72, 73, 74, 75, -1, 77, -1, - 50, -1, -1, 82, 83, 27, 28, -1, 30, 31, - 72, 73, 74, 75, -1, 77, -1, -1, -1, -1, - 82, 83, 72, -1, -1, -1, -1, 77, 50, -1, - -1, 53, 54, 55, -1, -1, -1, -1, -1, -1, - -1, -1, 64, -1, 66, 67, 68, -1, -1, -1, - 72, -1, -1, -1, 76, 77, 78, 79, -1, 1, - 82, 3, 4, 5, 6, 7, -1, -1, -1, -1, - 12, 13, 14, -1, -1, -1, -1, -1, 1, -1, - 3, 4, 5, 6, 7, -1, 28, -1, 30, 12, - 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 28, -1, 30, 50, -1, - -1, 53, 54, 55, -1, -1, -1, -1, -1, -1, - -1, -1, 64, -1, -1, -1, -1, 50, -1, -1, - 72, -1, 55, 1, -1, 77, 4, 5, 6, 7, - 82, 64, 10, -1, 12, 13, 14, -1, -1, 72, - -1, -1, -1, -1, 77, 4, 5, 6, 7, 82, - 28, -1, 30, 12, 13, 14, 4, 5, 6, 7, - -1, -1, -1, -1, 12, 13, 14, -1, -1, 28, - 1, 30, 50, 4, -1, 6, 7, -1, -1, -1, - 28, 12, 13, 14, -1, -1, -1, -1, -1, -1, - -1, 50, -1, -1, 72, -1, -1, 28, -1, 77, - 31, -1, 50, 81, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 72, -1, -1, -1, -1, 77, 50, - -1, -1, -1, 82, 72, -1, -1, -1, -1, 77, - -1, -1, -1, -1, 82, -1, -1, -1, -1, 3, - 4, 72, 6, 7, -1, -1, 77, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, - -1, -1, 3, 4, -1, 6, 7, -1, -1, 43, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, - 64, -1, -1, -1, -1, -1, -1, 3, 4, -1, - 6, 7, 43, 77, -1, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, - 3, 4, -1, 6, 7, -1, 77, 43, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 4, -1, 6, - 7, -1, -1, -1, -1, 12, 13, 14, -1, -1, - 43, 77, -1, -1, -1, -1, 4, 5, 6, 7, - -1, 28, 10, 30, 12, 13, 14, 4, 5, 6, - 7, -1, -1, -1, -1, 12, 13, 14, -1, -1, - 28, -1, 30, 50, 77, -1, -1, -1, 55, -1, - -1, 28, -1, 30, -1, -1, -1, 64, 65, -1, - -1, -1, 50, -1, -1, 72, 4, 5, 6, 7, - 77, -1, -1, 50, 12, 13, 14, 4, -1, 6, - 7, -1, -1, -1, 72, 12, 13, 14, -1, 77, - 28, -1, -1, -1, 4, 72, 6, 7, -1, -1, - 77, 28, 12, 13, 14, -1, -1, -1, -1, -1, - -1, -1, 50, -1, -1, -1, -1, -1, 28, -1, - -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 72, -1, -1, -1, -1, 77, - 50, -1, -1, -1, -1, 72, -1, -1, -1, -1, - 77, -1, -1, -1, 30, -1, -1, -1, -1, -1, - -1, -1, 72, -1, 40, 41, 42, 77, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 40, 41, 42, -1, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/misc/bison.simple" -/* This file comes from bison-1.28. */ - -/* Skeleton output parser for bison, - Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ - -/* This is the parser code that is written into each bison parser - when the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -#ifndef YYSTACK_USE_ALLOCA -#ifdef alloca -#define YYSTACK_USE_ALLOCA -#else /* alloca not defined */ -#ifdef __GNUC__ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#else /* not GNU C. */ -#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) -#define YYSTACK_USE_ALLOCA -#include -#else /* not sparc */ -/* We think this test detects Watcom and Microsoft C. */ -/* This used to test MSDOS, but that is a bad idea - since that symbol is in the user namespace. */ -#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) -#if 0 /* No need for malloc.h, which pollutes the namespace; - instead, just don't use alloca. */ -#include -#endif -#else /* not MSDOS, or __TURBOC__ */ -#if defined(_AIX) -/* I don't know what this was needed for, but it pollutes the namespace. - So I turned it off. rms, 2 May 1997. */ -/* #include */ - #pragma alloca -#define YYSTACK_USE_ALLOCA -#else /* not MSDOS, or __TURBOC__, or _AIX */ -#if 0 -#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, - and on HPUX 10. Eventually we can turn this on. */ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#endif /* __hpux */ -#endif -#endif /* not _AIX */ -#endif /* not MSDOS, or __TURBOC__ */ -#endif /* not sparc */ -#endif /* not GNU C */ -#endif /* alloca not defined */ -#endif /* YYSTACK_USE_ALLOCA not defined */ - -#ifdef YYSTACK_USE_ALLOCA -#define YYSTACK_ALLOC alloca -#else -#define YYSTACK_ALLOC malloc -#endif - -/* Note: there must be only one dollar sign in this file. - It is replaced by the list of actions, each action - as one case of the switch. */ - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 -#define YYEOF 0 -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 -/* Like YYERROR except do call yyerror. - This remains here temporarily to ease the - transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ -#define YYFAIL goto yyerrlab -#define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(token, value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { yychar = (token), yylval = (value); \ - yychar1 = YYTRANSLATE (yychar); \ - YYPOPSTACK; \ - goto yybackup; \ - } \ - else \ - { yyerror ("syntax error: cannot back up"); YYERROR; } \ -while (0) - -#define YYTERROR 1 -#define YYERRCODE 256 - -#ifndef YYPURE -#define YYLEX yylex() -#endif - -#ifdef YYPURE -#ifdef YYLSP_NEEDED -#ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) -#else -#define YYLEX yylex(&yylval, &yylloc) -#endif -#else /* not YYLSP_NEEDED */ -#ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, YYLEX_PARAM) -#else -#define YYLEX yylex(&yylval) -#endif -#endif /* not YYLSP_NEEDED */ -#endif - -/* If nonreentrant, generate the variables here */ - -#ifndef YYPURE - -int yychar; /* the lookahead symbol */ -YYSTYPE yylval; /* the semantic value of the */ - /* lookahead symbol */ - -#ifdef YYLSP_NEEDED -YYLTYPE yylloc; /* location data for the lookahead */ - /* symbol */ -#endif - -int yynerrs; /* number of parse errors so far */ -#endif /* not YYPURE */ - -#if YYDEBUG != 0 -int yydebug; /* nonzero means print parse trace */ -/* Since this is uninitialized, it does not stop multiple parsers - from coexisting. */ -#endif - -/* YYINITDEPTH indicates the initial size of the parser's stacks */ - -#ifndef YYINITDEPTH -#define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH is the maximum size the stacks can grow to - (effective only if the built-in stack extension method is used). */ - -#if YYMAXDEPTH == 0 -#undef YYMAXDEPTH -#endif - -#ifndef YYMAXDEPTH -#define YYMAXDEPTH 10000 -#endif - -/* Define __yy_memcpy. Note that the size argument - should be passed with type unsigned int, because that is what the non-GCC - definitions require. With GCC, __builtin_memcpy takes an arg - of type size_t, but it can handle unsigned int. */ - -#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ -#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 (to, from, count) - char *to; - char *from; - unsigned int count; -{ - register char *f = from; - register char *t = to; - register int i = count; - - while (i-- > 0) - *t++ = *f++; -} - -#else /* __cplusplus */ - -/* This is the most reliable way to avoid incompatibilities - in available built-in functions on various systems. */ -static void -__yy_memcpy (char *to, char *from, unsigned int count) -{ - register char *t = to; - register char *f = from; - register int i = count; - - while (i-- > 0) - *t++ = *f++; -} - -#endif -#endif - -#line 217 "/usr/share/misc/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 *. - It should actually point to an object. - Grammar actions can access the variable by casting it - 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; -#endif /* not __cplusplus */ -#else /* not YYPARSE_PARAM */ -#define YYPARSE_PARAM_ARG -#define YYPARSE_PARAM_DECL -#endif /* not YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -#ifdef YYPARSE_PARAM -int yyparse (void *); -#else -int yyparse (void); -#endif -#endif - -int -yyparse(YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - register int yystate; - register int yyn; - register short *yyssp; - register YYSTYPE *yyvsp; - int yyerrstatus; /* number of tokens to shift before error messages enabled */ - int yychar1 = 0; /* lookahead token as an internal (translated) token number */ - - short yyssa[YYINITDEPTH]; /* the state stack */ - YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ - - short *yyss = yyssa; /* refer to the stacks thru separate pointers */ - YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ - -#ifdef YYLSP_NEEDED - YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; - -#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -#define YYPOPSTACK (yyvsp--, yyssp--) -#endif - - int yystacksize = YYINITDEPTH; - int yyfree_stacks = 0; - -#ifdef YYPURE - int yychar; - YYSTYPE yylval; - int yynerrs; -#ifdef YYLSP_NEEDED - YYLTYPE yylloc; -#endif -#endif - - YYSTYPE yyval; /* the variable used to return */ - /* semantic values from the action */ - /* routines */ - - int yylen; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Starting parse\n"); -#endif - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - - yyssp = yyss - 1; - yyvsp = yyvs; -#ifdef YYLSP_NEEDED - yylsp = yyls; -#endif - -/* Push a new state, which is found in yystate . */ -/* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. */ -yynewstate: - - *++yyssp = yystate; - - if (yyssp >= yyss + yystacksize - 1) - { - /* Give user a chance to reallocate the stack */ - /* Use copies of these so that the &'s don't force the real ones into memory. */ - YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; -#ifdef YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; -#endif - - /* Get the current used size of the three stacks, in elements. */ - int size = yyssp - yyss + 1; - -#ifdef yyoverflow - /* Each stack pointer address is followed by the size of - the data in use in that stack, in bytes. */ -#ifdef YYLSP_NEEDED - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yyls1, size * sizeof (*yylsp), - &yystacksize); -#else - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yystacksize); -#endif - - yyss = yyss1; yyvs = yyvs1; -#ifdef YYLSP_NEEDED - yyls = yyls1; -#endif -#else /* no yyoverflow */ - /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - { - yyerror("parser stack overflow"); - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 2; - } - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - yystacksize = YYMAXDEPTH; -#ifndef YYSTACK_USE_ALLOCA - yyfree_stacks = 1; -#endif - yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); - __yy_memcpy ((char *)yyss, (char *)yyss1, - size * (unsigned int) sizeof (*yyssp)); - yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); - __yy_memcpy ((char *)yyvs, (char *)yyvs1, - size * (unsigned int) sizeof (*yyvsp)); -#ifdef YYLSP_NEEDED - yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); - __yy_memcpy ((char *)yyls, (char *)yyls1, - size * (unsigned int) sizeof (*yylsp)); -#endif -#endif /* no yyoverflow */ - - yyssp = yyss + size - 1; - yyvsp = yyvs + size - 1; -#ifdef YYLSP_NEEDED - yylsp = yyls + size - 1; -#endif - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Stack size increased to %d\n", yystacksize); -#endif - - if (yyssp >= yyss + yystacksize - 1) - YYABORT; - } - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Entering state %d\n", yystate); -#endif - - goto yybackup; - yybackup: - -/* Do appropriate processing given the current state. */ -/* Read a lookahead token if we need one and don't already have one. */ -/* yyresume: */ - - /* First try to decide what to do without reference to lookahead token. */ - - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - - if (yychar == YYEMPTY) - { -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Reading a token: "); -#endif - yychar = YYLEX; - } - - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ - { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Now at end of input.\n"); -#endif - } - else - { - yychar1 = YYTRANSLATE(yychar); - -#if YYDEBUG != 0 - if (yydebug) - { - fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise meaning - of a token, for further debugging info. */ -#ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -#endif - fprintf (stderr, ")\n"); - } -#endif - } - - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; - - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the lookahead token. */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); -#endif - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* count tokens shifted since error; after three, turn off error status. */ - if (yyerrstatus) yyerrstatus--; - - yystate = yyn; - goto yynewstate; - -/* Do the default action for the current state. */ -yydefault: - - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - -/* Do a reduction. yyn is the number of a rule to reduce with. */ -yyreduce: - yylen = yyr2[yyn]; - if (yylen > 0) - yyval = yyvsp[1-yylen]; /* implement default value of the action */ - -#if YYDEBUG != 0 - if (yydebug) - { - int i; - - fprintf (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) - fprintf (stderr, "%s ", yytname[yyrhs[i]]); - fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - - switch (yyn) { - -case 1: -#line 262 "objc-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids an empty source file"); - finish_file (); - ; - break;} -case 2: -#line 267 "objc-parse.y" -{ - /* In case there were missing closebraces, - get us back to the global binding level. */ - while (! global_bindings_p ()) - poplevel (0, 0, 0); - finish_file (); - ; - break;} -case 3: -#line 281 "objc-parse.y" -{yyval.ttype = NULL_TREE; ; - break;} -case 5: -#line 282 "objc-parse.y" -{yyval.ttype = NULL_TREE; ; - break;} -case 10: -#line 290 "objc-parse.y" -{ STRIP_NOPS (yyvsp[-2].ttype); - if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR - && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST) - || TREE_CODE (yyvsp[-2].ttype) == STRING_CST) - assemble_asm (yyvsp[-2].ttype); - else - error ("argument of `asm' is not a constant string"); ; - break;} -case 11: -#line 298 "objc-parse.y" -{ RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; - break;} -case 12: -#line 303 "objc-parse.y" -{ if (pedantic) - error ("ANSI C forbids data definition with no type or storage class"); - else if (!flag_traditional) - warning ("data definition has no type or storage class"); - - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 13: -#line 312 "objc-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 14: -#line 316 "objc-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 15: -#line 320 "objc-parse.y" -{ pedwarn ("empty declaration"); ; - break;} -case 16: -#line 322 "objc-parse.y" -{ shadow_tag (yyvsp[-1].ttype); ; - break;} -case 19: -#line 326 "objc-parse.y" -{ if (pedantic) - pedwarn ("ANSI C does not allow extra `;' outside of a function"); ; - break;} -case 20: -#line 332 "objc-parse.y" -{ if (! start_function (current_declspecs, yyvsp[0].ttype, - prefix_attributes, NULL_TREE)) - YYERROR1; - reinit_parse_for_function (); ; - break;} -case 21: -#line 337 "objc-parse.y" -{ store_parm_decls (); ; - break;} -case 22: -#line 339 "objc-parse.y" -{ finish_function (0); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 23: -#line 344 "objc-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 24: -#line 348 "objc-parse.y" -{ if (! start_function (current_declspecs, yyvsp[0].ttype, - prefix_attributes, NULL_TREE)) - YYERROR1; - reinit_parse_for_function (); ; - break;} -case 25: -#line 353 "objc-parse.y" -{ store_parm_decls (); ; - break;} -case 26: -#line 355 "objc-parse.y" -{ finish_function (0); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 27: -#line 360 "objc-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 28: -#line 364 "objc-parse.y" -{ if (! start_function (NULL_TREE, yyvsp[0].ttype, - prefix_attributes, NULL_TREE)) - YYERROR1; - reinit_parse_for_function (); ; - break;} -case 29: -#line 369 "objc-parse.y" -{ store_parm_decls (); ; - break;} -case 30: -#line 371 "objc-parse.y" -{ finish_function (0); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 31: -#line 376 "objc-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 36: -#line 389 "objc-parse.y" -{ yyval.code = ADDR_EXPR; ; - break;} -case 37: -#line 391 "objc-parse.y" -{ yyval.code = NEGATE_EXPR; ; - break;} -case 38: -#line 393 "objc-parse.y" -{ yyval.code = CONVERT_EXPR; ; - break;} -case 39: -#line 395 "objc-parse.y" -{ yyval.code = PREINCREMENT_EXPR; ; - break;} -case 40: -#line 397 "objc-parse.y" -{ yyval.code = PREDECREMENT_EXPR; ; - break;} -case 41: -#line 399 "objc-parse.y" -{ yyval.code = BIT_NOT_EXPR; ; - break;} -case 42: -#line 401 "objc-parse.y" -{ yyval.code = TRUTH_NOT_EXPR; ; - break;} -case 43: -#line 405 "objc-parse.y" -{ yyval.ttype = build_compound_expr (yyvsp[0].ttype); ; - break;} -case 44: -#line 410 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 46: -#line 416 "objc-parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 47: -#line 418 "objc-parse.y" -{ chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; - break;} -case 49: -#line 424 "objc-parse.y" -{ yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ; - break;} -case 50: -#line 427 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; - RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; - break;} -case 51: -#line 430 "objc-parse.y" -{ yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0); - overflow_warning (yyval.ttype); ; - break;} -case 52: -#line 434 "objc-parse.y" -{ tree label = lookup_label (yyvsp[0].ttype); - if (pedantic) - pedwarn ("ANSI C forbids `&&'"); - if (label == 0) - yyval.ttype = null_pointer_node; - else - { - TREE_USED (label) = 1; - yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label); - TREE_CONSTANT (yyval.ttype) = 1; - } - ; - break;} -case 53: -#line 462 "objc-parse.y" -{ skip_evaluation--; - if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF - && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1))) - error ("`sizeof' applied to a bit-field"); - yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ; - break;} -case 54: -#line 468 "objc-parse.y" -{ skip_evaluation--; - yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ; - break;} -case 55: -#line 471 "objc-parse.y" -{ skip_evaluation--; - yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ; - break;} -case 56: -#line 474 "objc-parse.y" -{ skip_evaluation--; - yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ; - break;} -case 57: -#line 477 "objc-parse.y" -{ yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ; - break;} -case 58: -#line 479 "objc-parse.y" -{ yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ; - break;} -case 59: -#line 481 "objc-parse.y" -{ yyval.ttype = build_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ttype)); ; - break;} -case 60: -#line 485 "objc-parse.y" -{ skip_evaluation++; ; - break;} -case 61: -#line 489 "objc-parse.y" -{ skip_evaluation++; ; - break;} -case 63: -#line 495 "objc-parse.y" -{ tree type = groktypename (yyvsp[-2].ttype); - yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ; - break;} -case 64: -#line 498 "objc-parse.y" -{ start_init (NULL_TREE, NULL, 0); - yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype); - really_start_incremental_init (yyvsp[-2].ttype); ; - break;} -case 65: -#line 502 "objc-parse.y" -{ const char *name; - tree result = pop_init_level (0); - tree type = yyvsp[-5].ttype; - finish_init (); - - if (pedantic && ! flag_isoc99) - pedwarn ("ANSI C forbids constructor expressions"); - if (TYPE_NAME (type) != 0) - { - if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE) - name = IDENTIFIER_POINTER (TYPE_NAME (type)); - else - name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type))); - } - else - name = ""; - yyval.ttype = result; - if (TREE_CODE (type) == ARRAY_TYPE && !COMPLETE_TYPE_P (type)) - { - int failure = complete_array_type (type, yyval.ttype, 1); - if (failure) - abort (); - } - ; - break;} -case 67: -#line 531 "objc-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 68: -#line 533 "objc-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 69: -#line 535 "objc-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 70: -#line 537 "objc-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 71: -#line 539 "objc-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 72: -#line 541 "objc-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 73: -#line 543 "objc-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 74: -#line 545 "objc-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 75: -#line 547 "objc-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 76: -#line 549 "objc-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 77: -#line 551 "objc-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 78: -#line 553 "objc-parse.y" -{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 79: -#line 555 "objc-parse.y" -{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); - skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; - break;} -case 80: -#line 558 "objc-parse.y" -{ skip_evaluation -= yyvsp[-3].ttype == boolean_false_node; - yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; - break;} -case 81: -#line 561 "objc-parse.y" -{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); - skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; - break;} -case 82: -#line 564 "objc-parse.y" -{ skip_evaluation -= yyvsp[-3].ttype == boolean_true_node; - yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; - break;} -case 83: -#line 567 "objc-parse.y" -{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); - skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; - break;} -case 84: -#line 570 "objc-parse.y" -{ skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node) - - (yyvsp[-4].ttype == boolean_false_node)); ; - break;} -case 85: -#line 573 "objc-parse.y" -{ skip_evaluation -= yyvsp[-6].ttype == boolean_true_node; - yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; - break;} -case 86: -#line 576 "objc-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids omitting the middle term of a ?: expression"); - /* Make sure first operand is calculated only once. */ - yyvsp[0].ttype = save_expr (yyvsp[-1].ttype); - yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype)); - skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; - break;} -case 87: -#line 583 "objc-parse.y" -{ skip_evaluation -= yyvsp[-4].ttype == boolean_true_node; - yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; - break;} -case 88: -#line 586 "objc-parse.y" -{ char class; - yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype); - class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); - if (class == 'e' || class == '1' - || class == '2' || class == '<') - C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); - ; - break;} -case 89: -#line 594 "objc-parse.y" -{ char class; - yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype); - /* This inhibits warnings in truthvalue_conversion. */ - class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); - if (class == 'e' || class == '1' - || class == '2' || class == '<') - C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); - ; - break;} -case 90: -#line 606 "objc-parse.y" -{ - if (yychar == YYEMPTY) - yychar = YYLEX; - yyval.ttype = build_external_ref (yyvsp[0].ttype, yychar == '('); - ; - break;} -case 92: -#line 613 "objc-parse.y" -{ yyval.ttype = combine_strings (yyvsp[0].ttype); ; - break;} -case 93: -#line 615 "objc-parse.y" -{ char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)); - if (class == 'e' || class == '1' - || class == '2' || class == '<') - C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK); - yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 94: -#line 621 "objc-parse.y" -{ yyval.ttype = error_mark_node; ; - break;} -case 95: -#line 623 "objc-parse.y" -{ tree rtl_exp; - if (pedantic) - pedwarn ("ANSI C forbids braced-groups within expressions"); - pop_iterator_stack (); - pop_label_level (); - rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype); - /* The statements have side effects, so the group does. */ - TREE_SIDE_EFFECTS (rtl_exp) = 1; - - if (TREE_CODE (yyvsp[-1].ttype) == BLOCK) - { - /* Make a BIND_EXPR for the BLOCK already made. */ - yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp), - NULL_TREE, rtl_exp, yyvsp[-1].ttype); - /* Remove the block from the tree at this point. - It gets put back at the proper place - when the BIND_EXPR is expanded. */ - delete_block (yyvsp[-1].ttype); - } - else - yyval.ttype = yyvsp[-1].ttype; - ; - break;} -case 96: -#line 646 "objc-parse.y" -{ - /* Make sure we call expand_end_stmt_expr. Otherwise - we are likely to lose sequences and crash later. */ - pop_iterator_stack (); - pop_label_level (); - expand_end_stmt_expr (yyvsp[-2].ttype); - yyval.ttype = error_mark_node; - ; - break;} -case 97: -#line 655 "objc-parse.y" -{ yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 98: -#line 657 "objc-parse.y" -{ yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 99: -#line 659 "objc-parse.y" -{ - if (doing_objc_thang) - { - if (is_public (yyvsp[-2].ttype, yyvsp[0].ttype)) - yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype); - else - yyval.ttype = error_mark_node; - } - else - yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype); - ; - break;} -case 100: -#line 671 "objc-parse.y" -{ - tree expr = build_indirect_ref (yyvsp[-2].ttype, "->"); - - if (doing_objc_thang) - { - if (is_public (expr, yyvsp[0].ttype)) - yyval.ttype = build_component_ref (expr, yyvsp[0].ttype); - else - yyval.ttype = error_mark_node; - } - else - yyval.ttype = build_component_ref (expr, yyvsp[0].ttype); - ; - break;} -case 101: -#line 685 "objc-parse.y" -{ yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ; - break;} -case 102: -#line 687 "objc-parse.y" -{ yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ; - break;} -case 103: -#line 689 "objc-parse.y" -{ yyval.ttype = build_message_expr (yyvsp[0].ttype); ; - break;} -case 104: -#line 691 "objc-parse.y" -{ yyval.ttype = build_selector_expr (yyvsp[0].ttype); ; - break;} -case 105: -#line 693 "objc-parse.y" -{ yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ; - break;} -case 106: -#line 695 "objc-parse.y" -{ yyval.ttype = build_encode_expr (yyvsp[0].ttype); ; - break;} -case 107: -#line 697 "objc-parse.y" -{ yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ; - break;} -case 109: -#line 704 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); - ; - break;} -case 111: -#line 713 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 114: -#line 721 "objc-parse.y" -{ c_mark_varargs (); - if (pedantic) - pedwarn ("ANSI C does not permit use of `varargs.h'"); ; - break;} -case 115: -#line 731 "objc-parse.y" -{ ; - break;} -case 120: -#line 747 "objc-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 121: -#line 751 "objc-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 122: -#line 755 "objc-parse.y" -{ shadow_tag_warned (yyvsp[-1].ttype, 1); - pedwarn ("empty declaration"); ; - break;} -case 123: -#line 758 "objc-parse.y" -{ pedwarn ("empty declaration"); ; - break;} -case 124: -#line 767 "objc-parse.y" -{ ; - break;} -case 129: -#line 782 "objc-parse.y" -{ pending_xref_error (); - declspec_stack = tree_cons (prefix_attributes, - current_declspecs, - declspec_stack); - split_specs_attrs (yyvsp[0].ttype, - ¤t_declspecs, &prefix_attributes); ; - break;} -case 130: -#line 792 "objc-parse.y" -{ prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ; - break;} -case 131: -#line 797 "objc-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 132: -#line 801 "objc-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 133: -#line 805 "objc-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 134: -#line 809 "objc-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 135: -#line 813 "objc-parse.y" -{ shadow_tag (yyvsp[-1].ttype); ; - break;} -case 136: -#line 815 "objc-parse.y" -{ pedwarn ("empty declaration"); ; - break;} -case 137: -#line 817 "objc-parse.y" -{ RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; - break;} -case 138: -#line 827 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 139: -#line 829 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; - break;} -case 140: -#line 833 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 141: -#line 835 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 142: -#line 837 "objc-parse.y" -{ if (extra_warnings) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER (yyvsp[0].ttype)); - yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 143: -#line 842 "objc-parse.y" -{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 144: -#line 847 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 145: -#line 849 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; - break;} -case 146: -#line 854 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 147: -#line 856 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 148: -#line 858 "objc-parse.y" -{ if (extra_warnings) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER (yyvsp[0].ttype)); - yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 149: -#line 871 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 150: -#line 873 "objc-parse.y" -{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; - break;} -case 151: -#line 875 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 152: -#line 877 "objc-parse.y" -{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 153: -#line 882 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); - TREE_STATIC (yyval.ttype) = 1; ; - break;} -case 154: -#line 885 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 155: -#line 887 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); - TREE_STATIC (yyval.ttype) = 1; ; - break;} -case 156: -#line 890 "objc-parse.y" -{ if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER (yyvsp[0].ttype)); - yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); - TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; - break;} -case 157: -#line 904 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 158: -#line 906 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ; - break;} -case 159: -#line 910 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 160: -#line 912 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 163: -#line 922 "objc-parse.y" -{ /* For a typedef name, record the meaning, not the name. - In case of `foo foo, bar;'. */ - yyval.ttype = lookup_name (yyvsp[0].ttype); ; - break;} -case 164: -#line 926 "objc-parse.y" -{ yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 165: -#line 928 "objc-parse.y" -{ yyval.ttype = get_object_reference (yyvsp[0].ttype); ; - break;} -case 166: -#line 933 "objc-parse.y" -{ yyval.ttype = get_object_reference (yyvsp[0].ttype); ; - break;} -case 167: -#line 935 "objc-parse.y" -{ yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ; - break;} -case 168: -#line 937 "objc-parse.y" -{ yyval.ttype = groktypename (yyvsp[-1].ttype); ; - break;} -case 176: -#line 959 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 177: -#line 961 "objc-parse.y" -{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); - yyval.ttype = yyvsp[-1].ttype; - ; - break;} -case 178: -#line 968 "objc-parse.y" -{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, - yyvsp[-1].ttype, prefix_attributes); - start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; - break;} -case 179: -#line 973 "objc-parse.y" -{ finish_init (); - finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; - break;} -case 180: -#line 976 "objc-parse.y" -{ tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, - yyvsp[0].ttype, prefix_attributes); - finish_decl (d, NULL_TREE, yyvsp[-1].ttype); - ; - break;} -case 181: -#line 984 "objc-parse.y" -{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, - yyvsp[-1].ttype, prefix_attributes); - start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; - break;} -case 182: -#line 989 "objc-parse.y" -{ finish_init (); - decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes); - finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; - break;} -case 183: -#line 993 "objc-parse.y" -{ tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, - yyvsp[0].ttype, prefix_attributes); - finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 184: -#line 1001 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 185: -#line 1003 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 186: -#line 1008 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 187: -#line 1010 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 188: -#line 1015 "objc-parse.y" -{ yyval.ttype = yyvsp[-2].ttype; ; - break;} -case 189: -#line 1020 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 190: -#line 1022 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 191: -#line 1027 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 192: -#line 1029 "objc-parse.y" -{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; - break;} -case 193: -#line 1031 "objc-parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; - break;} -case 194: -#line 1033 "objc-parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; - break;} -case 195: -#line 1035 "objc-parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 201: -#line 1053 "objc-parse.y" -{ really_start_incremental_init (NULL_TREE); ; - break;} -case 202: -#line 1055 "objc-parse.y" -{ yyval.ttype = pop_init_level (0); ; - break;} -case 203: -#line 1057 "objc-parse.y" -{ yyval.ttype = error_mark_node; ; - break;} -case 204: -#line 1063 "objc-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids empty initializer braces"); ; - break;} -case 210: -#line 1079 "objc-parse.y" -{ set_init_label (yyvsp[-1].ttype); ; - break;} -case 213: -#line 1086 "objc-parse.y" -{ push_init_level (0); ; - break;} -case 214: -#line 1088 "objc-parse.y" -{ process_init_element (pop_init_level (0)); ; - break;} -case 215: -#line 1090 "objc-parse.y" -{ process_init_element (yyvsp[0].ttype); ; - break;} -case 219: -#line 1101 "objc-parse.y" -{ set_init_label (yyvsp[0].ttype); ; - break;} -case 220: -#line 1109 "objc-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids nested functions"); - - push_function_context (); - if (! start_function (current_declspecs, yyvsp[0].ttype, - prefix_attributes, NULL_TREE)) - { - pop_function_context (); - YYERROR1; - } - reinit_parse_for_function (); ; - break;} -case 221: -#line 1121 "objc-parse.y" -{ store_parm_decls (); ; - break;} -case 222: -#line 1129 "objc-parse.y" -{ finish_function (1); - pop_function_context (); ; - break;} -case 223: -#line 1135 "objc-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids nested functions"); - - push_function_context (); - if (! start_function (current_declspecs, yyvsp[0].ttype, - prefix_attributes, NULL_TREE)) - { - pop_function_context (); - YYERROR1; - } - reinit_parse_for_function (); ; - break;} -case 224: -#line 1147 "objc-parse.y" -{ store_parm_decls (); ; - break;} -case 225: -#line 1155 "objc-parse.y" -{ finish_function (1); - pop_function_context (); ; - break;} -case 228: -#line 1171 "objc-parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 229: -#line 1173 "objc-parse.y" -{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 230: -#line 1178 "objc-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 231: -#line 1180 "objc-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; - break;} -case 232: -#line 1182 "objc-parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 233: -#line 1189 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 236: -#line 1201 "objc-parse.y" -{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 237: -#line 1206 "objc-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 238: -#line 1208 "objc-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; - break;} -case 239: -#line 1210 "objc-parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 240: -#line 1217 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 242: -#line 1226 "objc-parse.y" -{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 243: -#line 1231 "objc-parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 244: -#line 1233 "objc-parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 245: -#line 1235 "objc-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 246: -#line 1237 "objc-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; - break;} -case 247: -#line 1244 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 249: -#line 1250 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 250: -#line 1252 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 251: -#line 1257 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 252: -#line 1259 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 253: -#line 1264 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 254: -#line 1266 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 255: -#line 1271 "objc-parse.y" -{ yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype); - /* Start scope of tag before parsing components. */ - ; - break;} -case 256: -#line 1275 "objc-parse.y" -{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; - break;} -case 257: -#line 1277 "objc-parse.y" -{ yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE), - yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); - ; - break;} -case 258: -#line 1281 "objc-parse.y" -{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ; - break;} -case 259: -#line 1283 "objc-parse.y" -{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ; - break;} -case 260: -#line 1285 "objc-parse.y" -{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; - break;} -case 261: -#line 1287 "objc-parse.y" -{ yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE), - yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); - ; - break;} -case 262: -#line 1291 "objc-parse.y" -{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ; - break;} -case 263: -#line 1293 "objc-parse.y" -{ yyval.ttype = start_enum (yyvsp[-1].ttype); ; - break;} -case 264: -#line 1295 "objc-parse.y" -{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), - chainon (yyvsp[-7].ttype, yyvsp[0].ttype)); ; - break;} -case 265: -#line 1298 "objc-parse.y" -{ yyval.ttype = start_enum (NULL_TREE); ; - break;} -case 266: -#line 1300 "objc-parse.y" -{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), - chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; - break;} -case 267: -#line 1303 "objc-parse.y" -{ yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ; - break;} -case 271: -#line 1314 "objc-parse.y" -{ if (pedantic && ! flag_isoc99) - pedwarn ("comma at end of enumerator list"); ; - break;} -case 272: -#line 1320 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 273: -#line 1322 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); - pedwarn ("no semicolon at end of struct or union"); ; - break;} -case 274: -#line 1327 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 275: -#line 1329 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ; - break;} -case 276: -#line 1331 "objc-parse.y" -{ if (pedantic) - pedwarn ("extra semicolon in struct or union specified"); ; - break;} -case 277: -#line 1335 "objc-parse.y" -{ - tree interface = lookup_interface (yyvsp[-1].ttype); - - if (interface) - yyval.ttype = get_class_ivars (interface); - else - { - error ("Cannot find interface declaration for `%s'", - IDENTIFIER_POINTER (yyvsp[-1].ttype)); - yyval.ttype = NULL_TREE; - } - ; - break;} -case 278: -#line 1360 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 279: -#line 1365 "objc-parse.y" -{ - /* Support for unnamed structs or unions as members of - structs or unions (which is [a] useful and [b] supports - MS P-SDK). */ - if (pedantic) - pedwarn ("ANSI C doesn't support unnamed structs/unions"); - - yyval.ttype = grokfield(yyvsp[-2].filename, yyvsp[-1].lineno, NULL, current_declspecs, NULL_TREE); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); - ; - break;} -case 280: -#line 1378 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 281: -#line 1383 "objc-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids member declarations with no members"); - shadow_tag(yyvsp[0].ttype); - yyval.ttype = NULL_TREE; ; - break;} -case 282: -#line 1388 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 283: -#line 1390 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; - RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; - break;} -case 285: -#line 1397 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 286: -#line 1402 "objc-parse.y" -{ yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE); - decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; - break;} -case 287: -#line 1406 "objc-parse.y" -{ yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype); - decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; - break;} -case 288: -#line 1409 "objc-parse.y" -{ yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype); - decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; - break;} -case 290: -#line 1421 "objc-parse.y" -{ if (yyvsp[-2].ttype == error_mark_node) - yyval.ttype = yyvsp[-2].ttype; - else - yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ; - break;} -case 291: -#line 1426 "objc-parse.y" -{ yyval.ttype = error_mark_node; ; - break;} -case 292: -#line 1432 "objc-parse.y" -{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ; - break;} -case 293: -#line 1434 "objc-parse.y" -{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 294: -#line 1439 "objc-parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 295: -#line 1441 "objc-parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 296: -#line 1446 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 298: -#line 1452 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 299: -#line 1454 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 300: -#line 1459 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 301: -#line 1461 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; - break;} -case 302: -#line 1466 "objc-parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 303: -#line 1469 "objc-parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 304: -#line 1471 "objc-parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; - break;} -case 305: -#line 1473 "objc-parse.y" -{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 306: -#line 1475 "objc-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 307: -#line 1477 "objc-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ; - break;} -case 308: -#line 1479 "objc-parse.y" -{ yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; - break;} -case 309: -#line 1481 "objc-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 310: -#line 1483 "objc-parse.y" -{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ; - break;} -case 311: -#line 1487 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 312: -#line 1496 "objc-parse.y" -{ - if (pedantic && yyvsp[0].ends_in_label) - pedwarn ("ANSI C forbids label at end of compound statement"); - ; - break;} -case 314: -#line 1505 "objc-parse.y" -{ yyval.ends_in_label = yyvsp[0].ends_in_label; ; - break;} -case 315: -#line 1507 "objc-parse.y" -{ yyval.ends_in_label = 0; ; - break;} -case 319: -#line 1519 "objc-parse.y" -{ emit_line_note (input_filename, lineno); - pushlevel (0); - clear_last_expr (); - expand_start_bindings (0); - if (objc_method_context) - add_objc_decls (); - ; - break;} -case 321: -#line 1533 "objc-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids label declarations"); ; - break;} -case 324: -#line 1544 "objc-parse.y" -{ tree link; - for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) - { - tree label = shadow_label (TREE_VALUE (link)); - C_DECLARED_LABEL_FLAG (label) = 1; - declare_nonlocal_label (label); - } - ; - break;} -case 325: -#line 1558 "objc-parse.y" -{; - break;} -case 327: -#line 1562 "objc-parse.y" -{ compstmt_count++; ; - break;} -case 328: -#line 1565 "objc-parse.y" -{ yyval.ttype = convert (void_type_node, integer_zero_node); ; - break;} -case 329: -#line 1567 "objc-parse.y" -{ emit_line_note (input_filename, lineno); - expand_end_bindings (getdecls (), 1, 0); - yyval.ttype = poplevel (1, 1, 0); ; - break;} -case 330: -#line 1571 "objc-parse.y" -{ emit_line_note (input_filename, lineno); - expand_end_bindings (getdecls (), kept_level_p (), 0); - yyval.ttype = poplevel (kept_level_p (), 0, 0); ; - break;} -case 331: -#line 1575 "objc-parse.y" -{ emit_line_note (input_filename, lineno); - expand_end_bindings (getdecls (), kept_level_p (), 0); - yyval.ttype = poplevel (kept_level_p (), 0, 0); ; - break;} -case 332: -#line 1582 "objc-parse.y" -{ if (current_function_decl == 0) - { - error ("braced-group within expression allowed only inside a function"); - YYERROR; - } - /* We must force a BLOCK for this level - so that, if it is not expanded later, - there is a way to turn off the entire subtree of blocks - that are contained in it. */ - keep_next_level (); - push_iterator_stack (); - push_label_level (); - yyval.ttype = expand_start_stmt_expr (); - compstmt_count++; - ; - break;} -case 333: -#line 1599 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 336: -#line 1613 "objc-parse.y" -{ emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); - c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, - compstmt_count); - yyval.itype = stmt_count; - if_stmt_file = yyvsp[-5].filename; - if_stmt_line = yyvsp[-4].lineno; - position_after_white_space (); ; - break;} -case 337: -#line 1627 "objc-parse.y" -{ stmt_count++; - compstmt_count++; - emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); - /* See comment in `while' alternative, above. */ - emit_nop (); - expand_start_loop_continue_elsewhere (1); - position_after_white_space (); ; - break;} -case 338: -#line 1635 "objc-parse.y" -{ expand_loop_continue_here (); ; - break;} -case 339: -#line 1639 "objc-parse.y" -{ yyval.filename = input_filename; ; - break;} -case 340: -#line 1643 "objc-parse.y" -{ yyval.lineno = lineno; ; - break;} -case 341: -#line 1648 "objc-parse.y" -{ ; - break;} -case 342: -#line 1653 "objc-parse.y" -{ ; - break;} -case 343: -#line 1658 "objc-parse.y" -{ yyval.ends_in_label = yyvsp[0].ends_in_label; ; - break;} -case 344: -#line 1663 "objc-parse.y" -{ yyval.ends_in_label = 0; ; - break;} -case 345: -#line 1665 "objc-parse.y" -{ yyval.ends_in_label = 1; ; - break;} -case 346: -#line 1671 "objc-parse.y" -{ stmt_count++; ; - break;} -case 348: -#line 1674 "objc-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); -/* It appears that this should not be done--that a non-lvalue array - shouldn't get an error if the value isn't used. - Section 3.2.2.1 says that an array lvalue gets converted to a pointer - if it appears as a top-level expression, - but says nothing about non-lvalue arrays. */ -#if 0 - /* Call default_conversion to get an error - on referring to a register array if pedantic. */ - if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE - || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE) - yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype); -#endif - iterator_expand (yyvsp[-1].ttype); ; - break;} -case 349: -#line 1690 "objc-parse.y" -{ c_expand_start_else (); - yyvsp[-1].itype = stmt_count; - position_after_white_space (); ; - break;} -case 350: -#line 1694 "objc-parse.y" -{ c_expand_end_cond (); - if (extra_warnings && stmt_count == yyvsp[-3].itype) - warning ("empty body in an else-statement"); ; - break;} -case 351: -#line 1698 "objc-parse.y" -{ c_expand_end_cond (); - /* This warning is here instead of in simple_if, because we - do not want a warning if an empty if is followed by an - else statement. Increment stmt_count so we don't - give a second error if this is a nested `if'. */ - if (extra_warnings && stmt_count++ == yyvsp[0].itype) - warning_with_file_and_line (if_stmt_file, if_stmt_line, - "empty body in an if-statement"); ; - break;} -case 352: -#line 1710 "objc-parse.y" -{ c_expand_end_cond (); ; - break;} -case 353: -#line 1712 "objc-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno); - /* The emit_nop used to come before emit_line_note, - but that made the nop seem like part of the preceding line. - And that was confusing when the preceding line was - inside of an if statement and was not really executed. - I think it ought to work to put the nop after the line number. - We will see. --rms, July 15, 1991. */ - emit_nop (); ; - break;} -case 354: -#line 1722 "objc-parse.y" -{ /* Don't start the loop till we have succeeded - in parsing the end test. This is to make sure - that we end every loop we start. */ - expand_start_loop (1); - emit_line_note (input_filename, lineno); - expand_exit_loop_if_false (NULL_PTR, - truthvalue_conversion (yyvsp[-1].ttype)); - position_after_white_space (); ; - break;} -case 355: -#line 1731 "objc-parse.y" -{ expand_end_loop (); ; - break;} -case 356: -#line 1734 "objc-parse.y" -{ emit_line_note (input_filename, lineno); - expand_exit_loop_if_false (NULL_PTR, - truthvalue_conversion (yyvsp[-2].ttype)); - expand_end_loop (); ; - break;} -case 357: -#line 1740 "objc-parse.y" -{ expand_end_loop (); ; - break;} -case 358: -#line 1743 "objc-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); - /* See comment in `while' alternative, above. */ - emit_nop (); - if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype); - /* Next step is to call expand_start_loop_continue_elsewhere, - but wait till after we parse the entire for (...). - Otherwise, invalid input might cause us to call that - fn without calling expand_end_loop. */ - ; - break;} -case 359: -#line 1755 "objc-parse.y" -{ yyvsp[0].lineno = lineno; - yyval.filename = input_filename; ; - break;} -case 360: -#line 1758 "objc-parse.y" -{ - /* Start the loop. Doing this after parsing - all the expressions ensures we will end the loop. */ - expand_start_loop_continue_elsewhere (1); - /* Emit the end-test, with a line number. */ - emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno); - if (yyvsp[-4].ttype) - expand_exit_loop_if_false (NULL_PTR, - truthvalue_conversion (yyvsp[-4].ttype)); - yyvsp[-3].lineno = lineno; - yyvsp[-2].filename = input_filename; - position_after_white_space (); ; - break;} -case 361: -#line 1771 "objc-parse.y" -{ /* Emit the increment expression, with a line number. */ - emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno); - expand_loop_continue_here (); - if (yyvsp[-3].ttype) - c_expand_expr_stmt (yyvsp[-3].ttype); - expand_end_loop (); ; - break;} -case 362: -#line 1778 "objc-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); - c_expand_start_case (yyvsp[-1].ttype); - position_after_white_space (); ; - break;} -case 363: -#line 1783 "objc-parse.y" -{ expand_end_case (yyvsp[-3].ttype); ; - break;} -case 364: -#line 1785 "objc-parse.y" -{ tree break_stmt = build_break_stmt (); - stmt_count++; - genrtl_break_stmt (); ; - break;} -case 365: -#line 1789 "objc-parse.y" -{ tree continue_stmt = build_continue_stmt (); - stmt_count++; - genrtl_continue_stmt (); ; - break;} -case 366: -#line 1793 "objc-parse.y" -{ tree return_stmt = build_return_stmt (NULL_TREE); - stmt_count++; - genrtl_return_stmt (RETURN_EXPR(return_stmt)); ; - break;} -case 367: -#line 1797 "objc-parse.y" -{ tree return_stmt = build_return_stmt (yyvsp[-1].ttype); - stmt_count++; - genrtl_return_stmt (RETURN_EXPR(return_stmt)); ; - break;} -case 368: -#line 1801 "objc-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno); - STRIP_NOPS (yyvsp[-2].ttype); - if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR - && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST) - || TREE_CODE (yyvsp[-2].ttype) == STRING_CST) - expand_asm (yyvsp[-2].ttype); - else - error ("argument of `asm' is not a constant string"); ; - break;} -case 369: -#line 1812 "objc-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno); - c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, - yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); ; - break;} -case 370: -#line 1819 "objc-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno); - c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, - yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); ; - break;} -case 371: -#line 1827 "objc-parse.y" -{ stmt_count++; - emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno); - c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, - yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); ; - break;} -case 372: -#line 1833 "objc-parse.y" -{ tree decl; - stmt_count++; - emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); - decl = lookup_label (yyvsp[-1].ttype); - if (decl != 0) - { - TREE_USED (decl) = 1; - expand_goto (decl); - } - ; - break;} -case 373: -#line 1844 "objc-parse.y" -{ if (pedantic) - pedwarn ("ANSI C forbids `goto *expr;'"); - stmt_count++; - emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno); - expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ; - break;} -case 376: -#line 1859 "objc-parse.y" -{ - /* The value returned by this action is */ - /* 1 if everything is OK */ - /* 0 in case of error or already bound iterator */ - - yyval.itype = 0; - if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL) - error ("invalid `for (ITERATOR)' syntax"); - else if (! ITERATOR_P (yyvsp[-1].ttype)) - error ("`%s' is not an iterator", - IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype))); - else if (ITERATOR_BOUND_P (yyvsp[-1].ttype)) - error ("`for (%s)' inside expansion of same iterator", - IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype))); - else - { - yyval.itype = 1; - iterator_for_loop_start (yyvsp[-1].ttype); - } - ; - break;} -case 377: -#line 1880 "objc-parse.y" -{ - if (yyvsp[-1].itype) - iterator_for_loop_end (yyvsp[-3].ttype); - ; - break;} -case 378: -#line 1911 "objc-parse.y" -{ tree case_label_tree = build_case_label (yyvsp[-1].ttype, NULL_TREE); - stmt_count++; - genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree)); - position_after_white_space (); - ; - break;} -case 379: -#line 1917 "objc-parse.y" -{ tree case_label_tree = build_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); - stmt_count++; - genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree)); - position_after_white_space (); - ; - break;} -case 380: -#line 1923 "objc-parse.y" -{ tree case_label_tree = build_case_label (NULL_TREE, NULL_TREE); - stmt_count++; - genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree)); - position_after_white_space (); - ; - break;} -case 381: -#line 1929 "objc-parse.y" -{ tree label = define_label (input_filename, lineno, yyvsp[-2].ttype); - stmt_count++; - emit_nop (); - if (label) - { - expand_label (label); - decl_attributes (label, yyvsp[0].ttype, NULL_TREE); - } - position_after_white_space (); ; - break;} -case 382: -#line 1944 "objc-parse.y" -{ emit_line_note (input_filename, lineno); - yyval.ttype = NULL_TREE; ; - break;} -case 383: -#line 1947 "objc-parse.y" -{ emit_line_note (input_filename, lineno); ; - break;} -case 384: -#line 1952 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 386: -#line 1959 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 389: -#line 1966 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 390: -#line 1971 "objc-parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 391: -#line 1976 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ; - break;} -case 392: -#line 1978 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; - break;} -case 393: -#line 1984 "objc-parse.y" -{ pushlevel (0); - clear_parm_order (); - declare_parm_level (0); ; - break;} -case 394: -#line 1988 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; - parmlist_tags_warning (); - poplevel (0, 0, 0); ; - break;} -case 396: -#line 1996 "objc-parse.y" -{ tree parm; - if (pedantic) - pedwarn ("ANSI C forbids forward parameter declarations"); - /* Mark the forward decls as such. */ - for (parm = getdecls (); parm; parm = TREE_CHAIN (parm)) - TREE_ASM_WRITTEN (parm) = 1; - clear_parm_order (); ; - break;} -case 397: -#line 2004 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; - break;} -case 398: -#line 2006 "objc-parse.y" -{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; - break;} -case 399: -#line 2012 "objc-parse.y" -{ yyval.ttype = get_parm_info (0); ; - break;} -case 400: -#line 2014 "objc-parse.y" -{ yyval.ttype = get_parm_info (0); - /* Gcc used to allow this as an extension. However, it does - not work for all targets, and thus has been disabled. - Also, since func (...) and func () are indistinguishable, - it caused problems with the code in expand_builtin which - tries to verify that BUILT_IN_NEXT_ARG is being used - correctly. */ - error ("ANSI C requires a named argument before `...'"); - ; - break;} -case 401: -#line 2024 "objc-parse.y" -{ yyval.ttype = get_parm_info (1); ; - break;} -case 402: -#line 2026 "objc-parse.y" -{ yyval.ttype = get_parm_info (0); ; - break;} -case 403: -#line 2031 "objc-parse.y" -{ push_parm_decl (yyvsp[0].ttype); ; - break;} -case 404: -#line 2033 "objc-parse.y" -{ push_parm_decl (yyvsp[0].ttype); ; - break;} -case 405: -#line 2040 "objc-parse.y" -{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, - yyvsp[-1].ttype), - build_tree_list (prefix_attributes, - yyvsp[0].ttype)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 406: -#line 2048 "objc-parse.y" -{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, - yyvsp[-1].ttype), - build_tree_list (prefix_attributes, - yyvsp[0].ttype)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 407: -#line 2056 "objc-parse.y" -{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, - yyvsp[-1].ttype), - build_tree_list (prefix_attributes, - yyvsp[0].ttype)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 408: -#line 2064 "objc-parse.y" -{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, - yyvsp[-1].ttype), - build_tree_list (prefix_attributes, - yyvsp[0].ttype)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 409: -#line 2073 "objc-parse.y" -{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, - yyvsp[-1].ttype), - build_tree_list (prefix_attributes, - yyvsp[0].ttype)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 410: -#line 2086 "objc-parse.y" -{ pushlevel (0); - clear_parm_order (); - declare_parm_level (1); ; - break;} -case 411: -#line 2090 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; - parmlist_tags_warning (); - poplevel (0, 0, 0); ; - break;} -case 413: -#line 2098 "objc-parse.y" -{ tree t; - for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t)) - if (TREE_VALUE (t) == NULL_TREE) - error ("`...' in old-style identifier list"); - yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ; - break;} -case 414: -#line 2108 "objc-parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 415: -#line 2110 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; - break;} -case 416: -#line 2116 "objc-parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 417: -#line 2118 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; - break;} -case 418: -#line 2123 "objc-parse.y" -{ yyval.ttype = SAVE_WARN_FLAGS(); - pedantic = 0; - warn_pointer_arith = 0; ; - break;} -case 424: -#line 2137 "objc-parse.y" -{ - if (objc_implementation_context) - { - finish_class (objc_implementation_context); - objc_ivar_chain = NULL_TREE; - objc_implementation_context = NULL_TREE; - } - else - warning ("`@end' must appear in an implementation context"); - ; - break;} -case 425: -#line 2152 "objc-parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} -case 426: -#line 2154 "objc-parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; - break;} -case 427: -#line 2159 "objc-parse.y" -{ - objc_declare_class (yyvsp[-1].ttype); - ; - break;} -case 428: -#line 2165 "objc-parse.y" -{ - objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype); - ; - break;} -case 429: -#line 2171 "objc-parse.y" -{ - objc_interface_context = objc_ivar_context - = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype); - objc_public_flag = 0; - ; - break;} -case 430: -#line 2177 "objc-parse.y" -{ - continue_class (objc_interface_context); - ; - break;} -case 431: -#line 2182 "objc-parse.y" -{ - finish_class (objc_interface_context); - objc_interface_context = NULL_TREE; - ; - break;} -case 432: -#line 2188 "objc-parse.y" -{ - objc_interface_context - = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype); - continue_class (objc_interface_context); - ; - break;} -case 433: -#line 2195 "objc-parse.y" -{ - finish_class (objc_interface_context); - objc_interface_context = NULL_TREE; - ; - break;} -case 434: -#line 2201 "objc-parse.y" -{ - objc_interface_context = objc_ivar_context - = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); - objc_public_flag = 0; - ; - break;} -case 435: -#line 2207 "objc-parse.y" -{ - continue_class (objc_interface_context); - ; - break;} -case 436: -#line 2212 "objc-parse.y" -{ - finish_class (objc_interface_context); - objc_interface_context = NULL_TREE; - ; - break;} -case 437: -#line 2218 "objc-parse.y" -{ - objc_interface_context - = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); - continue_class (objc_interface_context); - ; - break;} -case 438: -#line 2225 "objc-parse.y" -{ - finish_class (objc_interface_context); - objc_interface_context = NULL_TREE; - ; - break;} -case 439: -#line 2231 "objc-parse.y" -{ - objc_implementation_context = objc_ivar_context - = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); - objc_public_flag = 0; - ; - break;} -case 440: -#line 2237 "objc-parse.y" -{ - objc_ivar_chain - = continue_class (objc_implementation_context); - ; - break;} -case 441: -#line 2243 "objc-parse.y" -{ - objc_implementation_context - = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE); - objc_ivar_chain - = continue_class (objc_implementation_context); - ; - break;} -case 442: -#line 2251 "objc-parse.y" -{ - objc_implementation_context = objc_ivar_context - = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); - objc_public_flag = 0; - ; - break;} -case 443: -#line 2257 "objc-parse.y" -{ - objc_ivar_chain - = continue_class (objc_implementation_context); - ; - break;} -case 444: -#line 2263 "objc-parse.y" -{ - objc_implementation_context - = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); - objc_ivar_chain - = continue_class (objc_implementation_context); - ; - break;} -case 445: -#line 2271 "objc-parse.y" -{ - objc_interface_context - = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); - continue_class (objc_interface_context); - ; - break;} -case 446: -#line 2278 "objc-parse.y" -{ - finish_class (objc_interface_context); - objc_interface_context = NULL_TREE; - ; - break;} -case 447: -#line 2284 "objc-parse.y" -{ - objc_implementation_context - = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); - objc_ivar_chain - = continue_class (objc_implementation_context); - ; - break;} -case 448: -#line 2294 "objc-parse.y" -{ - remember_protocol_qualifiers (); - objc_interface_context - = start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype); - ; - break;} -case 449: -#line 2300 "objc-parse.y" -{ - forget_protocol_qualifiers(); - finish_protocol(objc_interface_context); - objc_interface_context = NULL_TREE; - ; - break;} -case 450: -#line 2309 "objc-parse.y" -{ - yyval.ttype = NULL_TREE; - ; - break;} -case 452: -#line 2317 "objc-parse.y" -{ - if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR) - yyval.ttype = yyvsp[-1].ttype; - else - YYERROR1; - ; - break;} -case 455: -#line 2331 "objc-parse.y" -{ objc_public_flag = 2; ; - break;} -case 456: -#line 2332 "objc-parse.y" -{ objc_public_flag = 0; ; - break;} -case 457: -#line 2333 "objc-parse.y" -{ objc_public_flag = 1; ; - break;} -case 458: -#line 2338 "objc-parse.y" -{ - yyval.ttype = NULL_TREE; - ; - break;} -case 460: -#line 2343 "objc-parse.y" -{ - if (pedantic) - pedwarn ("extra semicolon in struct or union specified"); - ; - break;} -case 461: -#line 2361 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 462: -#line 2366 "objc-parse.y" -{ yyval.ttype = yyvsp[0].ttype; - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 463: -#line 2371 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 464: -#line 2376 "objc-parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 467: -#line 2383 "objc-parse.y" -{ - yyval.ttype = add_instance_variable (objc_ivar_context, - objc_public_flag, - yyvsp[0].ttype, current_declspecs, - NULL_TREE); - ; - break;} -case 468: -#line 2390 "objc-parse.y" -{ - yyval.ttype = add_instance_variable (objc_ivar_context, - objc_public_flag, - yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype); - ; - break;} -case 469: -#line 2396 "objc-parse.y" -{ - yyval.ttype = add_instance_variable (objc_ivar_context, - objc_public_flag, - NULL_TREE, - current_declspecs, yyvsp[0].ttype); - ; - break;} -case 470: -#line 2406 "objc-parse.y" -{ - remember_protocol_qualifiers (); - if (objc_implementation_context) - objc_inherit_code = CLASS_METHOD_DECL; - else - fatal ("method definition not in class context"); - ; - break;} -case 471: -#line 2414 "objc-parse.y" -{ - forget_protocol_qualifiers (); - add_class_method (objc_implementation_context, yyvsp[0].ttype); - start_method_def (yyvsp[0].ttype); - objc_method_context = yyvsp[0].ttype; - ; - break;} -case 472: -#line 2421 "objc-parse.y" -{ - continue_method_def (); - ; - break;} -case 473: -#line 2425 "objc-parse.y" -{ - finish_method_def (); - objc_method_context = NULL_TREE; - ; - break;} -case 474: -#line 2431 "objc-parse.y" -{ - remember_protocol_qualifiers (); - if (objc_implementation_context) - objc_inherit_code = INSTANCE_METHOD_DECL; - else - fatal ("method definition not in class context"); - ; - break;} -case 475: -#line 2439 "objc-parse.y" -{ - forget_protocol_qualifiers (); - add_instance_method (objc_implementation_context, yyvsp[0].ttype); - start_method_def (yyvsp[0].ttype); - objc_method_context = yyvsp[0].ttype; - ; - break;} -case 476: -#line 2446 "objc-parse.y" -{ - continue_method_def (); - ; - break;} -case 477: -#line 2450 "objc-parse.y" -{ - finish_method_def (); - objc_method_context = NULL_TREE; - ; - break;} -case 479: -#line 2462 "objc-parse.y" -{yyval.ttype = NULL_TREE; ; - break;} -case 484: -#line 2469 "objc-parse.y" -{yyval.ttype = NULL_TREE; ; - break;} -case 488: -#line 2479 "objc-parse.y" -{ - /* Remember protocol qualifiers in prototypes. */ - remember_protocol_qualifiers (); - objc_inherit_code = CLASS_METHOD_DECL; - ; - break;} -case 489: -#line 2485 "objc-parse.y" -{ - /* Forget protocol qualifiers here. */ - forget_protocol_qualifiers (); - add_class_method (objc_interface_context, yyvsp[0].ttype); - ; - break;} -case 491: -#line 2493 "objc-parse.y" -{ - /* Remember protocol qualifiers in prototypes. */ - remember_protocol_qualifiers (); - objc_inherit_code = INSTANCE_METHOD_DECL; - ; - break;} -case 492: -#line 2499 "objc-parse.y" -{ - /* Forget protocol qualifiers here. */ - forget_protocol_qualifiers (); - add_instance_method (objc_interface_context, yyvsp[0].ttype); - ; - break;} -case 494: -#line 2509 "objc-parse.y" -{ - yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); - ; - break;} -case 495: -#line 2514 "objc-parse.y" -{ - yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE); - ; - break;} -case 496: -#line 2519 "objc-parse.y" -{ - yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); - ; - break;} -case 497: -#line 2524 "objc-parse.y" -{ - yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); - ; - break;} -case 506: -#line 2554 "objc-parse.y" -{ current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); ; - break;} -case 507: -#line 2558 "objc-parse.y" -{ shadow_tag (yyvsp[-1].ttype); ; - break;} -case 508: -#line 2560 "objc-parse.y" -{ pedwarn ("empty declaration"); ; - break;} -case 509: -#line 2565 "objc-parse.y" -{ push_parm_decl (yyvsp[0].ttype); ; - break;} -case 510: -#line 2567 "objc-parse.y" -{ push_parm_decl (yyvsp[0].ttype); ; - break;} -case 511: -#line 2575 "objc-parse.y" -{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, - yyvsp[-1].ttype), - build_tree_list (prefix_attributes, - yyvsp[0].ttype)); ; - break;} -case 512: -#line 2580 "objc-parse.y" -{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, - yyvsp[-1].ttype), - build_tree_list (prefix_attributes, - yyvsp[0].ttype)); ; - break;} -case 513: -#line 2585 "objc-parse.y" -{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, - yyvsp[-1].ttype), - build_tree_list (prefix_attributes, - yyvsp[0].ttype)); ; - break;} -case 514: -#line 2593 "objc-parse.y" -{ - yyval.ttype = NULL_TREE; - ; - break;} -case 515: -#line 2597 "objc-parse.y" -{ - /* oh what a kludge! */ - yyval.ttype = objc_ellipsis_node; - ; - break;} -case 516: -#line 2602 "objc-parse.y" -{ - pushlevel (0); - ; - break;} -case 517: -#line 2606 "objc-parse.y" -{ - /* returns a tree list node generated by get_parm_info */ - yyval.ttype = yyvsp[0].ttype; - poplevel (0, 0, 0); - ; - break;} -case 520: -#line 2621 "objc-parse.y" -{ - yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); - ; - break;} -case 525: -#line 2634 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 526: -#line 2635 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 527: -#line 2636 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 528: -#line 2637 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 529: -#line 2638 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 530: -#line 2639 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 531: -#line 2640 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 532: -#line 2641 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 533: -#line 2642 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 534: -#line 2643 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 535: -#line 2644 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 536: -#line 2645 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 537: -#line 2646 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 538: -#line 2647 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 539: -#line 2648 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 540: -#line 2649 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 541: -#line 2650 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 542: -#line 2651 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 543: -#line 2652 "objc-parse.y" -{ yyval.ttype = get_identifier (token_buffer); ; - break;} -case 546: -#line 2658 "objc-parse.y" -{ - yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); - ; - break;} -case 547: -#line 2663 "objc-parse.y" -{ - yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype); - ; - break;} -case 548: -#line 2668 "objc-parse.y" -{ - yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); - ; - break;} -case 549: -#line 2673 "objc-parse.y" -{ - yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype); - ; - break;} -case 553: -#line 2686 "objc-parse.y" -{ - yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); - ; - break;} -case 554: -#line 2694 "objc-parse.y" -{ - if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE) - /* just return the expr., remove a level of indirection */ - yyval.ttype = TREE_VALUE (yyvsp[0].ttype); - else - /* we have a comma expr., we will collapse later */ - yyval.ttype = yyvsp[0].ttype; - ; - break;} -case 555: -#line 2706 "objc-parse.y" -{ - yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); - ; - break;} -case 556: -#line 2710 "objc-parse.y" -{ - yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); - ; - break;} -case 558: -#line 2718 "objc-parse.y" -{ - yyval.ttype = get_class_reference (yyvsp[0].ttype); - ; - break;} -case 559: -#line 2725 "objc-parse.y" -{ objc_receiver_context = 1; ; - break;} -case 560: -#line 2727 "objc-parse.y" -{ objc_receiver_context = 0; ; - break;} -case 561: -#line 2729 "objc-parse.y" -{ - yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); - ; - break;} -case 565: -#line 2742 "objc-parse.y" -{ - yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); - ; - break;} -case 566: -#line 2749 "objc-parse.y" -{ - yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE); - ; - break;} -case 567: -#line 2753 "objc-parse.y" -{ - yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE); - ; - break;} -case 568: -#line 2760 "objc-parse.y" -{ - yyval.ttype = yyvsp[-1].ttype; - ; - break;} -case 569: -#line 2767 "objc-parse.y" -{ - yyval.ttype = yyvsp[-1].ttype; - ; - break;} -case 570: -#line 2776 "objc-parse.y" -{ - yyval.ttype = groktypename (yyvsp[-1].ttype); - ; - break;} -} - /* the action file gets copied in in place of this dollarsign */ -#line 543 "/usr/share/misc/bison.simple" - - yyvsp -= yylen; - yyssp -= yylen; -#ifdef YYLSP_NEEDED - yylsp -= yylen; -#endif - -#if YYDEBUG != 0 - if (yydebug) - { - short *ssp1 = yyss - 1; - fprintf (stderr, "state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif - - *++yyvsp = yyval; - -#ifdef YYLSP_NEEDED - yylsp++; - if (yylen == 0) - { - yylsp->first_line = yylloc.first_line; - yylsp->first_column = yylloc.first_column; - yylsp->last_line = (yylsp-1)->last_line; - yylsp->last_column = (yylsp-1)->last_column; - yylsp->text = 0; - } - else - { - yylsp->last_line = (yylsp+yylen-1)->last_line; - yylsp->last_column = (yylsp+yylen-1)->last_column; - } -#endif - - /* Now "shift" the result of the reduction. - Determine what state that goes to, - based on the state we popped back to - and the rule number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; - - goto yynewstate; - -yyerrlab: /* here on detecting error */ - - if (! yyerrstatus) - /* If not already recovering from an error, report this error. */ - { - ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - int size = 0; - char *msg; - int x, count; - - count = 0; - /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - size += strlen(yytname[x]) + 15, count++; - msg = (char *) malloc(size + 15); - if (msg != 0) - { - strcpy(msg, "parse error"); - - if (count < 5) - { - count = 0; - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - { - strcat(msg, count == 0 ? ", expecting `" : " or `"); - strcat(msg, yytname[x]); - strcat(msg, "'"); - count++; - } - } - yyerror(msg); - free(msg); - } - else - yyerror ("parse error; also virtual memory exceeded"); - } - else -#endif /* YYERROR_VERBOSE */ - yyerror("parse error"); - } - - goto yyerrlab1; -yyerrlab1: /* here on error raised explicitly by an action */ - - if (yyerrstatus == 3) - { - /* if just tried and failed to reuse lookahead token after an error, discard it. */ - - /* return failure if at end of input */ - if (yychar == YYEOF) - YYABORT; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); -#endif - - yychar = YYEMPTY; - } - - /* Else will try to reuse lookahead token - after shifting the error token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - -yyerrdefault: /* current state does not do anything special for the error token. */ - -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ - if (yyn) goto yydefault; -#endif - -yyerrpop: /* pop the current state because it cannot handle the error token */ - - if (yyssp == yyss) YYABORT; - yyvsp--; - yystate = *--yyssp; -#ifdef YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG != 0 - if (yydebug) - { - short *ssp1 = yyss - 1; - fprintf (stderr, "Error: state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif - -yyerrhandle: - - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - - if (yyn == YYFINAL) - YYACCEPT; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting error token, "); -#endif - - *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - yystate = yyn; - goto yynewstate; - - yyacceptlab: - /* YYACCEPT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 0; - - yyabortlab: - /* YYABORT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 1; -} -#line 2781 "objc-parse.y" - diff --git a/gcc/objc/objc-parse.y b/gcc/objc/objc-parse.y deleted file mode 100644 index 91324bb48b0..00000000000 --- a/gcc/objc/objc-parse.y +++ /dev/null @@ -1,2781 +0,0 @@ -/*WARNING: This file is automatically generated!*/ -/* YACC parser for C syntax and for Objective C. -*-c-*- - Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, - 1997, 1998, 1999, 2000 Free Software Foundation, Inc. - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* This file defines the grammar of C and that of Objective C. - ifobjc ... end ifobjc conditionals contain code for Objective C only. - ifc ... end ifc conditionals contain code for C only. - Sed commands in Makefile.in are used to convert this file into - c-parse.y and into objc-parse.y. */ - -/* To whomever it may concern: I have heard that such a thing was once - written by AT&T, but I have never seen it. */ - -%expect 74 - -%{ -#include "config.h" -#include "system.h" -#include -#include "tree.h" -#include "input.h" -#include "c-lex.h" -#include "c-tree.h" -#include "flags.h" -#include "output.h" -#include "toplev.h" -#include "ggc.h" - -#ifdef MULTIBYTE_CHARS -#include -#endif - -#include "objc-act.h" - -/* Since parsers are distinct for each language, put the language string - definition here. */ -const char * const language_string = "GNU Obj-C"; - -/* Like YYERROR but do call yyerror. */ -#define YYERROR1 { yyerror ("syntax error"); YYERROR; } - -/* Cause the `yydebug' variable to be defined. */ -#define YYDEBUG 1 -%} - -%start program - -%union {long itype; tree ttype; enum tree_code code; - const char *filename; int lineno; int ends_in_label; } - -/* All identifiers that are not reserved words - and are not declared typedefs in the current block */ -%token IDENTIFIER - -/* All identifiers that are declared typedefs in the current block. - In some contexts, they are treated just like IDENTIFIER, - but they can also serve as typespecs in declarations. */ -%token TYPENAME - -/* Reserved words that specify storage class. - yylval contains an IDENTIFIER_NODE which indicates which one. */ -%token SCSPEC - -/* Reserved words that specify type. - yylval contains an IDENTIFIER_NODE which indicates which one. */ -%token TYPESPEC - -/* Reserved words that qualify type: "const", "volatile", or "restrict". - yylval contains an IDENTIFIER_NODE which indicates which one. */ -%token TYPE_QUAL - -/* Character or numeric constants. - yylval is the node for the constant. */ -%token CONSTANT - -/* String constants in raw form. - yylval is a STRING_CST node. */ -%token STRING - -/* "...", used for functions with variable arglists. */ -%token ELLIPSIS - -/* the reserved words */ -/* SCO include files test "ASM", so use something else. */ -%token SIZEOF ENUM STRUCT UNION IF ELSE WHILE DO FOR SWITCH CASE DEFAULT -%token BREAK CONTINUE RETURN GOTO ASM_KEYWORD TYPEOF ALIGNOF -%token ATTRIBUTE EXTENSION LABEL -%token REALPART IMAGPART VA_ARG -%token PTR_VALUE PTR_BASE PTR_EXTENT - -/* Used in c-lex.c for parsing pragmas. */ -%token END_OF_LINE - -/* Add precedence rules to solve dangling else s/r conflict */ -%nonassoc IF -%nonassoc ELSE - -/* Define the operator tokens and their precedences. - The value is an integer because, if used, it is the tree code - to use in the expression made from the operator. */ - -%right ASSIGN '=' -%right '?' ':' -%left OROR -%left ANDAND -%left '|' -%left '^' -%left '&' -%left EQCOMPARE -%left ARITHCOMPARE -%left LSHIFT RSHIFT -%left '+' '-' -%left '*' '/' '%' -%right UNARY PLUSPLUS MINUSMINUS -%left HYPERUNARY -%left POINTSAT '.' '(' '[' - -/* The Objective-C keywords. These are included in C and in - Objective C, so that the token codes are the same in both. */ -%token INTERFACE IMPLEMENTATION END SELECTOR DEFS ENCODE -%token CLASSNAME PUBLIC PRIVATE PROTECTED PROTOCOL OBJECTNAME CLASS ALIAS - -/* Objective-C string constants in raw form. - yylval is an OBJC_STRING_CST node. */ -%token OBJC_STRING - - -%type unop - -%type identifier IDENTIFIER TYPENAME CONSTANT expr nonnull_exprlist exprlist -%type expr_no_commas cast_expr unary_expr primary string STRING -%type typed_declspecs reserved_declspecs -%type typed_typespecs reserved_typespecquals -%type declmods typespec typespecqual_reserved -%type typed_declspecs_no_prefix_attr reserved_declspecs_no_prefix_attr -%type declmods_no_prefix_attr -%type SCSPEC TYPESPEC TYPE_QUAL nonempty_type_quals maybe_type_qual -%type initdecls notype_initdecls initdcl notype_initdcl -%type init maybeasm -%type asm_operands nonnull_asm_operands asm_operand asm_clobbers -%type maybe_attribute attributes attribute attribute_list attrib -%type any_word extension - -%type compstmt compstmt_nostart compstmt_primary_start - -%type declarator -%type notype_declarator after_type_declarator -%type parm_declarator - -%type structsp component_decl_list component_decl_list2 -%type component_decl components component_declarator -%type enumlist enumerator -%type struct_head union_head enum_head -%type typename absdcl absdcl1 type_quals -%type xexpr parms parm identifiers - -%type parmlist parmlist_1 parmlist_2 -%type parmlist_or_identifiers parmlist_or_identifiers_1 -%type identifiers_or_typenames - -%type setspecs - -%type lineno_stmt_or_label lineno_stmt_or_labels stmt_or_label - -%type save_filename -%type save_lineno - -/* the Objective-C nonterminals */ - -%type ivar_decl_list ivar_decls ivar_decl ivars ivar_declarator -%type methoddecl unaryselector keywordselector selector -%type keyworddecl receiver objcmessageexpr messageargs -%type keywordexpr keywordarglist keywordarg -%type myparms myparm optparmlist reservedwords objcselectorexpr -%type selectorarg keywordnamelist keywordname objcencodeexpr -%type objc_string non_empty_protocolrefs protocolrefs identifier_list objcprotocolexpr - -%type CLASSNAME OBJC_STRING OBJECTNAME - -%{ -/* Number of statements (loosely speaking) and compound statements - seen so far. */ -static int stmt_count; -static int compstmt_count; - -/* Input file and line number of the end of the body of last simple_if; - used by the stmt-rule immediately after simple_if returns. */ -static const char *if_stmt_file; -static int if_stmt_line; - -/* List of types and structure classes of the current declaration. */ -static tree current_declspecs = NULL_TREE; -static tree prefix_attributes = NULL_TREE; - -/* Stack of saved values of current_declspecs and prefix_attributes. */ -static tree declspec_stack; - -/* For __extension__, save/restore the warning flags which are - controlled by __extension__. */ -#define SAVE_WARN_FLAGS() \ - size_int (pedantic | (warn_pointer_arith << 1)) -#define RESTORE_WARN_FLAGS(tval) \ - do { \ - int val = tree_low_cst (tval, 0); \ - pedantic = val & 1; \ - warn_pointer_arith = (val >> 1) & 1; \ - } while (0) - -/* Objective-C specific information */ - -tree objc_interface_context; -tree objc_implementation_context; -tree objc_method_context; -tree objc_ivar_chain; -tree objc_ivar_context; -enum tree_code objc_inherit_code; -int objc_receiver_context; -int objc_public_flag; - - -/* Tell yyparse how to print a token's value, if yydebug is set. */ - -#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL) -extern void yyprint PARAMS ((FILE *, int, YYSTYPE)); - -/* Add GC roots for variables local to this file. */ -void -c_parse_init () -{ - ggc_add_tree_root (&declspec_stack, 1); - ggc_add_tree_root (¤t_declspecs, 1); - ggc_add_tree_root (&prefix_attributes, 1); - ggc_add_tree_root (&objc_interface_context, 1); - ggc_add_tree_root (&objc_implementation_context, 1); - ggc_add_tree_root (&objc_method_context, 1); - ggc_add_tree_root (&objc_ivar_chain, 1); - ggc_add_tree_root (&objc_ivar_context, 1); -} - -%} - -%% -program: /* empty */ - { if (pedantic) - pedwarn ("ANSI C forbids an empty source file"); - finish_file (); - } - | extdefs - { - /* In case there were missing closebraces, - get us back to the global binding level. */ - while (! global_bindings_p ()) - poplevel (0, 0, 0); - finish_file (); - } - ; - -/* the reason for the strange actions in this rule - is so that notype_initdecls when reached via datadef - can find a valid list of type and sc specs in $0. */ - -extdefs: - {$$ = NULL_TREE; } extdef - | extdefs {$$ = NULL_TREE; } extdef - ; - -extdef: - fndef - | datadef - | objcdef - | ASM_KEYWORD '(' expr ')' ';' - { STRIP_NOPS ($3); - if ((TREE_CODE ($3) == ADDR_EXPR - && TREE_CODE (TREE_OPERAND ($3, 0)) == STRING_CST) - || TREE_CODE ($3) == STRING_CST) - assemble_asm ($3); - else - error ("argument of `asm' is not a constant string"); } - | extension extdef - { RESTORE_WARN_FLAGS ($1); } - ; - -datadef: - setspecs notype_initdecls ';' - { if (pedantic) - error ("ANSI C forbids data definition with no type or storage class"); - else if (!flag_traditional) - warning ("data definition has no type or storage class"); - - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods setspecs notype_initdecls ';' - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs setspecs initdecls ';' - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods ';' - { pedwarn ("empty declaration"); } - | typed_declspecs ';' - { shadow_tag ($1); } - | error ';' - | error '}' - | ';' - { if (pedantic) - pedwarn ("ANSI C does not allow extra `;' outside of a function"); } - ; - -fndef: - typed_declspecs setspecs declarator - { if (! start_function (current_declspecs, $3, - prefix_attributes, NULL_TREE)) - YYERROR1; - reinit_parse_for_function (); } - old_style_parm_decls - { store_parm_decls (); } - compstmt_or_error - { finish_function (0); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs setspecs declarator error - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods setspecs notype_declarator - { if (! start_function (current_declspecs, $3, - prefix_attributes, NULL_TREE)) - YYERROR1; - reinit_parse_for_function (); } - old_style_parm_decls - { store_parm_decls (); } - compstmt_or_error - { finish_function (0); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods setspecs notype_declarator error - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | setspecs notype_declarator - { if (! start_function (NULL_TREE, $2, - prefix_attributes, NULL_TREE)) - YYERROR1; - reinit_parse_for_function (); } - old_style_parm_decls - { store_parm_decls (); } - compstmt_or_error - { finish_function (0); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | setspecs notype_declarator error - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - ; - -identifier: - IDENTIFIER - | TYPENAME - | OBJECTNAME - | CLASSNAME - ; - -unop: '&' - { $$ = ADDR_EXPR; } - | '-' - { $$ = NEGATE_EXPR; } - | '+' - { $$ = CONVERT_EXPR; } - | PLUSPLUS - { $$ = PREINCREMENT_EXPR; } - | MINUSMINUS - { $$ = PREDECREMENT_EXPR; } - | '~' - { $$ = BIT_NOT_EXPR; } - | '!' - { $$ = TRUTH_NOT_EXPR; } - ; - -expr: nonnull_exprlist - { $$ = build_compound_expr ($1); } - ; - -exprlist: - /* empty */ - { $$ = NULL_TREE; } - | nonnull_exprlist - ; - -nonnull_exprlist: - expr_no_commas - { $$ = build_tree_list (NULL_TREE, $1); } - | nonnull_exprlist ',' expr_no_commas - { chainon ($1, build_tree_list (NULL_TREE, $3)); } - ; - -unary_expr: - primary - | '*' cast_expr %prec UNARY - { $$ = build_indirect_ref ($2, "unary *"); } - /* __extension__ turns off -pedantic for following primary. */ - | extension cast_expr %prec UNARY - { $$ = $2; - RESTORE_WARN_FLAGS ($1); } - | unop cast_expr %prec UNARY - { $$ = build_unary_op ($1, $2, 0); - overflow_warning ($$); } - /* Refer to the address of a label as a pointer. */ - | ANDAND identifier - { tree label = lookup_label ($2); - if (pedantic) - pedwarn ("ANSI C forbids `&&'"); - if (label == 0) - $$ = null_pointer_node; - else - { - TREE_USED (label) = 1; - $$ = build1 (ADDR_EXPR, ptr_type_node, label); - TREE_CONSTANT ($$) = 1; - } - } -/* This seems to be impossible on some machines, so let's turn it off. - You can use __builtin_next_arg to find the anonymous stack args. - | '&' ELLIPSIS - { tree types = TYPE_ARG_TYPES (TREE_TYPE (current_function_decl)); - $$ = error_mark_node; - if (TREE_VALUE (tree_last (types)) == void_type_node) - error ("`&...' used in function with fixed number of arguments"); - else - { - if (pedantic) - pedwarn ("ANSI C forbids `&...'"); - $$ = tree_last (DECL_ARGUMENTS (current_function_decl)); - $$ = build_unary_op (ADDR_EXPR, $$, 0); - } } -*/ - | sizeof unary_expr %prec UNARY - { skip_evaluation--; - if (TREE_CODE ($2) == COMPONENT_REF - && DECL_C_BIT_FIELD (TREE_OPERAND ($2, 1))) - error ("`sizeof' applied to a bit-field"); - $$ = c_sizeof (TREE_TYPE ($2)); } - | sizeof '(' typename ')' %prec HYPERUNARY - { skip_evaluation--; - $$ = c_sizeof (groktypename ($3)); } - | alignof unary_expr %prec UNARY - { skip_evaluation--; - $$ = c_alignof_expr ($2); } - | alignof '(' typename ')' %prec HYPERUNARY - { skip_evaluation--; - $$ = c_alignof (groktypename ($3)); } - | REALPART cast_expr %prec UNARY - { $$ = build_unary_op (REALPART_EXPR, $2, 0); } - | IMAGPART cast_expr %prec UNARY - { $$ = build_unary_op (IMAGPART_EXPR, $2, 0); } - | VA_ARG '(' expr_no_commas ',' typename ')' - { $$ = build_va_arg ($3, groktypename ($5)); } - ; - -sizeof: - SIZEOF { skip_evaluation++; } - ; - -alignof: - ALIGNOF { skip_evaluation++; } - ; - -cast_expr: - unary_expr - | '(' typename ')' cast_expr %prec UNARY - { tree type = groktypename ($2); - $$ = build_c_cast (type, $4); } - | '(' typename ')' '{' - { start_init (NULL_TREE, NULL, 0); - $2 = groktypename ($2); - really_start_incremental_init ($2); } - initlist_maybe_comma '}' %prec UNARY - { const char *name; - tree result = pop_init_level (0); - tree type = $2; - finish_init (); - - if (pedantic && ! flag_isoc99) - pedwarn ("ANSI C forbids constructor expressions"); - if (TYPE_NAME (type) != 0) - { - if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE) - name = IDENTIFIER_POINTER (TYPE_NAME (type)); - else - name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type))); - } - else - name = ""; - $$ = result; - if (TREE_CODE (type) == ARRAY_TYPE && !COMPLETE_TYPE_P (type)) - { - int failure = complete_array_type (type, $$, 1); - if (failure) - abort (); - } - } - ; - -expr_no_commas: - cast_expr - | expr_no_commas '+' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas '-' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas '*' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas '/' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas '%' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas LSHIFT expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas RSHIFT expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas ARITHCOMPARE expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas EQCOMPARE expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas '&' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas '|' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas '^' expr_no_commas - { $$ = parser_build_binary_op ($2, $1, $3); } - | expr_no_commas ANDAND - { $1 = truthvalue_conversion (default_conversion ($1)); - skip_evaluation += $1 == boolean_false_node; } - expr_no_commas - { skip_evaluation -= $1 == boolean_false_node; - $$ = parser_build_binary_op (TRUTH_ANDIF_EXPR, $1, $4); } - | expr_no_commas OROR - { $1 = truthvalue_conversion (default_conversion ($1)); - skip_evaluation += $1 == boolean_true_node; } - expr_no_commas - { skip_evaluation -= $1 == boolean_true_node; - $$ = parser_build_binary_op (TRUTH_ORIF_EXPR, $1, $4); } - | expr_no_commas '?' - { $1 = truthvalue_conversion (default_conversion ($1)); - skip_evaluation += $1 == boolean_false_node; } - expr ':' - { skip_evaluation += (($1 == boolean_true_node) - - ($1 == boolean_false_node)); } - expr_no_commas - { skip_evaluation -= $1 == boolean_true_node; - $$ = build_conditional_expr ($1, $4, $7); } - | expr_no_commas '?' - { if (pedantic) - pedwarn ("ANSI C forbids omitting the middle term of a ?: expression"); - /* Make sure first operand is calculated only once. */ - $2 = save_expr ($1); - $1 = truthvalue_conversion (default_conversion ($2)); - skip_evaluation += $1 == boolean_true_node; } - ':' expr_no_commas - { skip_evaluation -= $1 == boolean_true_node; - $$ = build_conditional_expr ($1, $2, $5); } - | expr_no_commas '=' expr_no_commas - { char class; - $$ = build_modify_expr ($1, NOP_EXPR, $3); - class = TREE_CODE_CLASS (TREE_CODE ($$)); - if (class == 'e' || class == '1' - || class == '2' || class == '<') - C_SET_EXP_ORIGINAL_CODE ($$, MODIFY_EXPR); - } - | expr_no_commas ASSIGN expr_no_commas - { char class; - $$ = build_modify_expr ($1, $2, $3); - /* This inhibits warnings in truthvalue_conversion. */ - class = TREE_CODE_CLASS (TREE_CODE ($$)); - if (class == 'e' || class == '1' - || class == '2' || class == '<') - C_SET_EXP_ORIGINAL_CODE ($$, ERROR_MARK); - } - ; - -primary: - IDENTIFIER - { - if (yychar == YYEMPTY) - yychar = YYLEX; - $$ = build_external_ref ($1, yychar == '('); - } - | CONSTANT - | string - { $$ = combine_strings ($1); } - | '(' expr ')' - { char class = TREE_CODE_CLASS (TREE_CODE ($2)); - if (class == 'e' || class == '1' - || class == '2' || class == '<') - C_SET_EXP_ORIGINAL_CODE ($2, ERROR_MARK); - $$ = $2; } - | '(' error ')' - { $$ = error_mark_node; } - | compstmt_primary_start compstmt_nostart ')' - { tree rtl_exp; - if (pedantic) - pedwarn ("ANSI C forbids braced-groups within expressions"); - pop_iterator_stack (); - pop_label_level (); - rtl_exp = expand_end_stmt_expr ($1); - /* The statements have side effects, so the group does. */ - TREE_SIDE_EFFECTS (rtl_exp) = 1; - - if (TREE_CODE ($2) == BLOCK) - { - /* Make a BIND_EXPR for the BLOCK already made. */ - $$ = build (BIND_EXPR, TREE_TYPE (rtl_exp), - NULL_TREE, rtl_exp, $2); - /* Remove the block from the tree at this point. - It gets put back at the proper place - when the BIND_EXPR is expanded. */ - delete_block ($2); - } - else - $$ = $2; - } - | compstmt_primary_start error ')' - { - /* Make sure we call expand_end_stmt_expr. Otherwise - we are likely to lose sequences and crash later. */ - pop_iterator_stack (); - pop_label_level (); - expand_end_stmt_expr ($1); - $$ = error_mark_node; - } - | primary '(' exprlist ')' %prec '.' - { $$ = build_function_call ($1, $3); } - | primary '[' expr ']' %prec '.' - { $$ = build_array_ref ($1, $3); } - | primary '.' identifier - { - if (doing_objc_thang) - { - if (is_public ($1, $3)) - $$ = build_component_ref ($1, $3); - else - $$ = error_mark_node; - } - else - $$ = build_component_ref ($1, $3); - } - | primary POINTSAT identifier - { - tree expr = build_indirect_ref ($1, "->"); - - if (doing_objc_thang) - { - if (is_public (expr, $3)) - $$ = build_component_ref (expr, $3); - else - $$ = error_mark_node; - } - else - $$ = build_component_ref (expr, $3); - } - | primary PLUSPLUS - { $$ = build_unary_op (POSTINCREMENT_EXPR, $1, 0); } - | primary MINUSMINUS - { $$ = build_unary_op (POSTDECREMENT_EXPR, $1, 0); } - | objcmessageexpr - { $$ = build_message_expr ($1); } - | objcselectorexpr - { $$ = build_selector_expr ($1); } - | objcprotocolexpr - { $$ = build_protocol_expr ($1); } - | objcencodeexpr - { $$ = build_encode_expr ($1); } - | objc_string - { $$ = build_objc_string_object ($1); } - ; - -/* Produces a STRING_CST with perhaps more STRING_CSTs chained onto it. */ -string: - STRING - | string STRING - { $$ = chainon ($1, $2); - } - ; - -/* Produces an OBJC_STRING_CST with perhaps more OBJC_STRING_CSTs chained - onto it. */ -objc_string: - OBJC_STRING - | objc_string OBJC_STRING - { $$ = chainon ($1, $2); } - ; - -old_style_parm_decls: - /* empty */ - | datadecls - | datadecls ELLIPSIS - /* ... is used here to indicate a varargs function. */ - { c_mark_varargs (); - if (pedantic) - pedwarn ("ANSI C does not permit use of `varargs.h'"); } - ; - -/* The following are analogous to lineno_decl, decls and decl - except that they do not allow nested functions. - They are used for old-style parm decls. */ -lineno_datadecl: - save_filename save_lineno datadecl - { } - ; - -datadecls: - lineno_datadecl - | errstmt - | datadecls lineno_datadecl - | lineno_datadecl errstmt - ; - -/* We don't allow prefix attributes here because they cause reduce/reduce - conflicts: we can't know whether we're parsing a function decl with - attribute suffix, or function defn with attribute prefix on first old - style parm. */ -datadecl: - typed_declspecs_no_prefix_attr setspecs initdecls ';' - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods_no_prefix_attr setspecs notype_initdecls ';' - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs_no_prefix_attr ';' - { shadow_tag_warned ($1, 1); - pedwarn ("empty declaration"); } - | declmods_no_prefix_attr ';' - { pedwarn ("empty declaration"); } - ; - -/* This combination which saves a lineno before a decl - is the normal thing to use, rather than decl itself. - This is to avoid shift/reduce conflicts in contexts - where statement labels are allowed. */ -lineno_decl: - save_filename save_lineno decl - { } - ; - -decls: - lineno_decl - | errstmt - | decls lineno_decl - | lineno_decl errstmt - ; - -/* records the type and storage class specs to use for processing - the declarators that follow. - Maintains a stack of outer-level values of current_declspecs, - for the sake of parm declarations nested in function declarators. */ -setspecs: /* empty */ - { pending_xref_error (); - declspec_stack = tree_cons (prefix_attributes, - current_declspecs, - declspec_stack); - split_specs_attrs ($0, - ¤t_declspecs, &prefix_attributes); } - ; - -/* ??? Yuck. See after_type_declarator. */ -setattrs: /* empty */ - { prefix_attributes = chainon (prefix_attributes, $0); } - ; - -decl: - typed_declspecs setspecs initdecls ';' - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods setspecs notype_initdecls ';' - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs setspecs nested_function - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods setspecs notype_nested_function - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs ';' - { shadow_tag ($1); } - | declmods ';' - { pedwarn ("empty declaration"); } - | extension decl - { RESTORE_WARN_FLAGS ($1); } - ; - -/* Declspecs which contain at least one type specifier or typedef name. - (Just `const' or `volatile' is not enough.) - A typedef'd name following these is taken as a name to be declared. - Declspecs have a non-NULL TREE_VALUE, attributes do not. */ - -typed_declspecs: - typespec reserved_declspecs - { $$ = tree_cons (NULL_TREE, $1, $2); } - | declmods typespec reserved_declspecs - { $$ = chainon ($3, tree_cons (NULL_TREE, $2, $1)); } - ; - -reserved_declspecs: /* empty */ - { $$ = NULL_TREE; } - | reserved_declspecs typespecqual_reserved - { $$ = tree_cons (NULL_TREE, $2, $1); } - | reserved_declspecs SCSPEC - { if (extra_warnings) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER ($2)); - $$ = tree_cons (NULL_TREE, $2, $1); } - | reserved_declspecs attributes - { $$ = tree_cons ($2, NULL_TREE, $1); } - ; - -typed_declspecs_no_prefix_attr: - typespec reserved_declspecs_no_prefix_attr - { $$ = tree_cons (NULL_TREE, $1, $2); } - | declmods_no_prefix_attr typespec reserved_declspecs_no_prefix_attr - { $$ = chainon ($3, tree_cons (NULL_TREE, $2, $1)); } - ; - -reserved_declspecs_no_prefix_attr: - /* empty */ - { $$ = NULL_TREE; } - | reserved_declspecs_no_prefix_attr typespecqual_reserved - { $$ = tree_cons (NULL_TREE, $2, $1); } - | reserved_declspecs_no_prefix_attr SCSPEC - { if (extra_warnings) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER ($2)); - $$ = tree_cons (NULL_TREE, $2, $1); } - ; - -/* List of just storage classes, type modifiers, and prefix attributes. - A declaration can start with just this, but then it cannot be used - to redeclare a typedef-name. - Declspecs have a non-NULL TREE_VALUE, attributes do not. */ - -declmods: - declmods_no_prefix_attr - { $$ = $1; } - | attributes - { $$ = tree_cons ($1, NULL_TREE, NULL_TREE); } - | declmods declmods_no_prefix_attr - { $$ = chainon ($2, $1); } - | declmods attributes - { $$ = tree_cons ($2, NULL_TREE, $1); } - ; - -declmods_no_prefix_attr: - TYPE_QUAL - { $$ = tree_cons (NULL_TREE, $1, NULL_TREE); - TREE_STATIC ($$) = 1; } - | SCSPEC - { $$ = tree_cons (NULL_TREE, $1, NULL_TREE); } - | declmods_no_prefix_attr TYPE_QUAL - { $$ = tree_cons (NULL_TREE, $2, $1); - TREE_STATIC ($$) = 1; } - | declmods_no_prefix_attr SCSPEC - { if (extra_warnings && TREE_STATIC ($1)) - warning ("`%s' is not at beginning of declaration", - IDENTIFIER_POINTER ($2)); - $$ = tree_cons (NULL_TREE, $2, $1); - TREE_STATIC ($$) = TREE_STATIC ($1); } - ; - - -/* Used instead of declspecs where storage classes are not allowed - (that is, for typenames and structure components). - Don't accept a typedef-name if anything but a modifier precedes it. */ - -typed_typespecs: - typespec reserved_typespecquals - { $$ = tree_cons (NULL_TREE, $1, $2); } - | nonempty_type_quals typespec reserved_typespecquals - { $$ = chainon ($3, tree_cons (NULL_TREE, $2, $1)); } - ; - -reserved_typespecquals: /* empty */ - { $$ = NULL_TREE; } - | reserved_typespecquals typespecqual_reserved - { $$ = tree_cons (NULL_TREE, $2, $1); } - ; - -/* A typespec (but not a type qualifier). - Once we have seen one of these in a declaration, - if a typedef name appears then it is being redeclared. */ - -typespec: TYPESPEC - | structsp - | TYPENAME - { /* For a typedef name, record the meaning, not the name. - In case of `foo foo, bar;'. */ - $$ = lookup_name ($1); } - | CLASSNAME protocolrefs - { $$ = get_static_reference ($1, $2); } - | OBJECTNAME protocolrefs - { $$ = get_object_reference ($2); } - -/* Make "" equivalent to "id " - - nisse@lysator.liu.se */ - | non_empty_protocolrefs - { $$ = get_object_reference ($1); } - | TYPEOF '(' expr ')' - { $$ = TREE_TYPE ($3); } - | TYPEOF '(' typename ')' - { $$ = groktypename ($3); } - ; - -/* A typespec that is a reserved word, or a type qualifier. */ - -typespecqual_reserved: TYPESPEC - | TYPE_QUAL - | structsp - ; - -initdecls: - initdcl - | initdecls ',' initdcl - ; - -notype_initdecls: - notype_initdcl - | notype_initdecls ',' initdcl - ; - -maybeasm: - /* empty */ - { $$ = NULL_TREE; } - | ASM_KEYWORD '(' string ')' - { if (TREE_CHAIN ($3)) $3 = combine_strings ($3); - $$ = $3; - } - ; - -initdcl: - declarator maybeasm maybe_attribute '=' - { $$ = start_decl ($1, current_declspecs, 1, - $3, prefix_attributes); - start_init ($$, $2, global_bindings_p ()); } - init -/* Note how the declaration of the variable is in effect while its init is parsed! */ - { finish_init (); - finish_decl ($5, $6, $2); } - | declarator maybeasm maybe_attribute - { tree d = start_decl ($1, current_declspecs, 0, - $3, prefix_attributes); - finish_decl (d, NULL_TREE, $2); - } - ; - -notype_initdcl: - notype_declarator maybeasm maybe_attribute '=' - { $$ = start_decl ($1, current_declspecs, 1, - $3, prefix_attributes); - start_init ($$, $2, global_bindings_p ()); } - init -/* Note how the declaration of the variable is in effect while its init is parsed! */ - { finish_init (); - decl_attributes ($5, $3, prefix_attributes); - finish_decl ($5, $6, $2); } - | notype_declarator maybeasm maybe_attribute - { tree d = start_decl ($1, current_declspecs, 0, - $3, prefix_attributes); - finish_decl (d, NULL_TREE, $2); } - ; -/* the * rules are dummies to accept the Apollo extended syntax - so that the header files compile. */ -maybe_attribute: - /* empty */ - { $$ = NULL_TREE; } - | attributes - { $$ = $1; } - ; - -attributes: - attribute - { $$ = $1; } - | attributes attribute - { $$ = chainon ($1, $2); } - ; - -attribute: - ATTRIBUTE '(' '(' attribute_list ')' ')' - { $$ = $4; } - ; - -attribute_list: - attrib - { $$ = $1; } - | attribute_list ',' attrib - { $$ = chainon ($1, $3); } - ; - -attrib: - /* empty */ - { $$ = NULL_TREE; } - | any_word - { $$ = build_tree_list ($1, NULL_TREE); } - | any_word '(' IDENTIFIER ')' - { $$ = build_tree_list ($1, build_tree_list (NULL_TREE, $3)); } - | any_word '(' IDENTIFIER ',' nonnull_exprlist ')' - { $$ = build_tree_list ($1, tree_cons (NULL_TREE, $3, $5)); } - | any_word '(' exprlist ')' - { $$ = build_tree_list ($1, $3); } - ; - -/* This still leaves out most reserved keywords, - shouldn't we include them? */ - -any_word: - identifier - | SCSPEC - | TYPESPEC - | TYPE_QUAL - ; - -/* Initializers. `init' is the entry point. */ - -init: - expr_no_commas - | '{' - { really_start_incremental_init (NULL_TREE); } - initlist_maybe_comma '}' - { $$ = pop_init_level (0); } - | error - { $$ = error_mark_node; } - ; - -/* `initlist_maybe_comma' is the guts of an initializer in braces. */ -initlist_maybe_comma: - /* empty */ - { if (pedantic) - pedwarn ("ANSI C forbids empty initializer braces"); } - | initlist1 maybecomma - ; - -initlist1: - initelt - | initlist1 ',' initelt - ; - -/* `initelt' is a single element of an initializer. - It may use braces. */ -initelt: - designator_list '=' initval - | designator initval - | identifier ':' - { set_init_label ($1); } - initval - | initval - ; - -initval: - '{' - { push_init_level (0); } - initlist_maybe_comma '}' - { process_init_element (pop_init_level (0)); } - | expr_no_commas - { process_init_element ($1); } - | error - ; - -designator_list: - designator - | designator_list designator - ; - -designator: - '.' identifier - { set_init_label ($2); } - /* These are for labeled elements. The syntax for an array element - initializer conflicts with the syntax for an Objective-C message, - so don't include these productions in the Objective-C grammar. */ - ; - -nested_function: - declarator - { if (pedantic) - pedwarn ("ANSI C forbids nested functions"); - - push_function_context (); - if (! start_function (current_declspecs, $1, - prefix_attributes, NULL_TREE)) - { - pop_function_context (); - YYERROR1; - } - reinit_parse_for_function (); } - old_style_parm_decls - { store_parm_decls (); } -/* This used to use compstmt_or_error. - That caused a bug with input `f(g) int g {}', - where the use of YYERROR1 above caused an error - which then was handled by compstmt_or_error. - There followed a repeated execution of that same rule, - which called YYERROR1 again, and so on. */ - compstmt - { finish_function (1); - pop_function_context (); } - ; - -notype_nested_function: - notype_declarator - { if (pedantic) - pedwarn ("ANSI C forbids nested functions"); - - push_function_context (); - if (! start_function (current_declspecs, $1, - prefix_attributes, NULL_TREE)) - { - pop_function_context (); - YYERROR1; - } - reinit_parse_for_function (); } - old_style_parm_decls - { store_parm_decls (); } -/* This used to use compstmt_or_error. - That caused a bug with input `f(g) int g {}', - where the use of YYERROR1 above caused an error - which then was handled by compstmt_or_error. - There followed a repeated execution of that same rule, - which called YYERROR1 again, and so on. */ - compstmt - { finish_function (1); - pop_function_context (); } - ; - -/* Any kind of declarator (thus, all declarators allowed - after an explicit typespec). */ - -declarator: - after_type_declarator - | notype_declarator - ; - -/* A declarator that is allowed only after an explicit typespec. */ - -after_type_declarator: - '(' after_type_declarator ')' - { $$ = $2; } - | after_type_declarator '(' parmlist_or_identifiers %prec '.' - { $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); } -/* | after_type_declarator '(' error ')' %prec '.' - { $$ = build_nt (CALL_EXPR, $1, NULL_TREE, NULL_TREE); - poplevel (0, 0, 0); } */ - | after_type_declarator '[' expr ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, $3); } - | after_type_declarator '[' ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, NULL_TREE); } - | '*' type_quals after_type_declarator %prec UNARY - { $$ = make_pointer_declarator ($2, $3); } - /* ??? Yuck. setattrs is a quick hack. We can't use - prefix_attributes because $1 only applies to this - declarator. We assume setspecs has already been done. - setattrs also avoids 5 reduce/reduce conflicts (otherwise multiple - attributes could be recognized here or in `attributes'). */ - | attributes setattrs after_type_declarator - { $$ = $3; } - | TYPENAME - | OBJECTNAME - ; - -/* Kinds of declarator that can appear in a parameter list - in addition to notype_declarator. This is like after_type_declarator - but does not allow a typedef name in parentheses as an identifier - (because it would conflict with a function with that typedef as arg). */ - -parm_declarator: - parm_declarator '(' parmlist_or_identifiers %prec '.' - { $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); } -/* | parm_declarator '(' error ')' %prec '.' - { $$ = build_nt (CALL_EXPR, $1, NULL_TREE, NULL_TREE); - poplevel (0, 0, 0); } */ - | parm_declarator '[' expr ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, $3); } - | parm_declarator '[' ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, NULL_TREE); } - | '*' type_quals parm_declarator %prec UNARY - { $$ = make_pointer_declarator ($2, $3); } - /* ??? Yuck. setattrs is a quick hack. We can't use - prefix_attributes because $1 only applies to this - declarator. We assume setspecs has already been done. - setattrs also avoids 5 reduce/reduce conflicts (otherwise multiple - attributes could be recognized here or in `attributes'). */ - | attributes setattrs parm_declarator - { $$ = $3; } - | TYPENAME - ; - -/* A declarator allowed whether or not there has been - an explicit typespec. These cannot redeclare a typedef-name. */ - -notype_declarator: - notype_declarator '(' parmlist_or_identifiers %prec '.' - { $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); } -/* | notype_declarator '(' error ')' %prec '.' - { $$ = build_nt (CALL_EXPR, $1, NULL_TREE, NULL_TREE); - poplevel (0, 0, 0); } */ - | '(' notype_declarator ')' - { $$ = $2; } - | '*' type_quals notype_declarator %prec UNARY - { $$ = make_pointer_declarator ($2, $3); } - | notype_declarator '[' expr ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, $3); } - | notype_declarator '[' ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, NULL_TREE); } - /* ??? Yuck. setattrs is a quick hack. We can't use - prefix_attributes because $1 only applies to this - declarator. We assume setspecs has already been done. - setattrs also avoids 5 reduce/reduce conflicts (otherwise multiple - attributes could be recognized here or in `attributes'). */ - | attributes setattrs notype_declarator - { $$ = $3; } - | IDENTIFIER - ; - -struct_head: - STRUCT - { $$ = NULL_TREE; } - | STRUCT attributes - { $$ = $2; } - ; - -union_head: - UNION - { $$ = NULL_TREE; } - | UNION attributes - { $$ = $2; } - ; - -enum_head: - ENUM - { $$ = NULL_TREE; } - | ENUM attributes - { $$ = $2; } - ; - -structsp: - struct_head identifier '{' - { $$ = start_struct (RECORD_TYPE, $2); - /* Start scope of tag before parsing components. */ - } - component_decl_list '}' maybe_attribute - { $$ = finish_struct ($4, $5, chainon ($1, $7)); } - | struct_head '{' component_decl_list '}' maybe_attribute - { $$ = finish_struct (start_struct (RECORD_TYPE, NULL_TREE), - $3, chainon ($1, $5)); - } - | struct_head identifier - { $$ = xref_tag (RECORD_TYPE, $2); } - | union_head identifier '{' - { $$ = start_struct (UNION_TYPE, $2); } - component_decl_list '}' maybe_attribute - { $$ = finish_struct ($4, $5, chainon ($1, $7)); } - | union_head '{' component_decl_list '}' maybe_attribute - { $$ = finish_struct (start_struct (UNION_TYPE, NULL_TREE), - $3, chainon ($1, $5)); - } - | union_head identifier - { $$ = xref_tag (UNION_TYPE, $2); } - | enum_head identifier '{' - { $$ = start_enum ($2); } - enumlist maybecomma_warn '}' maybe_attribute - { $$ = finish_enum ($4, nreverse ($5), - chainon ($1, $8)); } - | enum_head '{' - { $$ = start_enum (NULL_TREE); } - enumlist maybecomma_warn '}' maybe_attribute - { $$ = finish_enum ($3, nreverse ($4), - chainon ($1, $7)); } - | enum_head identifier - { $$ = xref_tag (ENUMERAL_TYPE, $2); } - ; - -maybecomma: - /* empty */ - | ',' - ; - -maybecomma_warn: - /* empty */ - | ',' - { if (pedantic && ! flag_isoc99) - pedwarn ("comma at end of enumerator list"); } - ; - -component_decl_list: - component_decl_list2 - { $$ = $1; } - | component_decl_list2 component_decl - { $$ = chainon ($1, $2); - pedwarn ("no semicolon at end of struct or union"); } - ; - -component_decl_list2: /* empty */ - { $$ = NULL_TREE; } - | component_decl_list2 component_decl ';' - { $$ = chainon ($1, $2); } - | component_decl_list2 ';' - { if (pedantic) - pedwarn ("extra semicolon in struct or union specified"); } - /* foo(sizeof(struct{ @defs(ClassName)})); */ - | DEFS '(' CLASSNAME ')' - { - tree interface = lookup_interface ($3); - - if (interface) - $$ = get_class_ivars (interface); - else - { - error ("Cannot find interface declaration for `%s'", - IDENTIFIER_POINTER ($3)); - $$ = NULL_TREE; - } - } - ; - -/* There is a shift-reduce conflict here, because `components' may - start with a `typename'. It happens that shifting (the default resolution) - does the right thing, because it treats the `typename' as part of - a `typed_typespecs'. - - It is possible that this same technique would allow the distinction - between `notype_initdecls' and `initdecls' to be eliminated. - But I am being cautious and not trying it. */ - -component_decl: - typed_typespecs setspecs components - { $$ = $3; - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_typespecs setspecs save_filename save_lineno maybe_attribute - { - /* Support for unnamed structs or unions as members of - structs or unions (which is [a] useful and [b] supports - MS P-SDK). */ - if (pedantic) - pedwarn ("ANSI C doesn't support unnamed structs/unions"); - - $$ = grokfield($3, $4, NULL, current_declspecs, NULL_TREE); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); - } - | nonempty_type_quals setspecs components - { $$ = $3; - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | nonempty_type_quals - { if (pedantic) - pedwarn ("ANSI C forbids member declarations with no members"); - shadow_tag($1); - $$ = NULL_TREE; } - | error - { $$ = NULL_TREE; } - | extension component_decl - { $$ = $2; - RESTORE_WARN_FLAGS ($1); } - ; - -components: - component_declarator - | components ',' component_declarator - { $$ = chainon ($1, $3); } - ; - -component_declarator: - save_filename save_lineno declarator maybe_attribute - { $$ = grokfield ($1, $2, $3, current_declspecs, NULL_TREE); - decl_attributes ($$, $4, prefix_attributes); } - | save_filename save_lineno - declarator ':' expr_no_commas maybe_attribute - { $$ = grokfield ($1, $2, $3, current_declspecs, $5); - decl_attributes ($$, $6, prefix_attributes); } - | save_filename save_lineno ':' expr_no_commas maybe_attribute - { $$ = grokfield ($1, $2, NULL_TREE, current_declspecs, $4); - decl_attributes ($$, $5, prefix_attributes); } - ; - -/* We chain the enumerators in reverse order. - They are put in forward order where enumlist is used. - (The order used to be significant, but no longer is so. - However, we still maintain the order, just to be clean.) */ - -enumlist: - enumerator - | enumlist ',' enumerator - { if ($1 == error_mark_node) - $$ = $1; - else - $$ = chainon ($3, $1); } - | error - { $$ = error_mark_node; } - ; - - -enumerator: - identifier - { $$ = build_enumerator ($1, NULL_TREE); } - | identifier '=' expr_no_commas - { $$ = build_enumerator ($1, $3); } - ; - -typename: - typed_typespecs absdcl - { $$ = build_tree_list ($1, $2); } - | nonempty_type_quals absdcl - { $$ = build_tree_list ($1, $2); } - ; - -absdcl: /* an absolute declarator */ - /* empty */ - { $$ = NULL_TREE; } - | absdcl1 - ; - -nonempty_type_quals: - TYPE_QUAL - { $$ = tree_cons (NULL_TREE, $1, NULL_TREE); } - | nonempty_type_quals TYPE_QUAL - { $$ = tree_cons (NULL_TREE, $2, $1); } - ; - -type_quals: - /* empty */ - { $$ = NULL_TREE; } - | type_quals TYPE_QUAL - { $$ = tree_cons (NULL_TREE, $2, $1); } - ; - -absdcl1: /* a nonempty absolute declarator */ - '(' absdcl1 ')' - { $$ = $2; } - /* `(typedef)1' is `int'. */ - | '*' type_quals absdcl1 %prec UNARY - { $$ = make_pointer_declarator ($2, $3); } - | '*' type_quals %prec UNARY - { $$ = make_pointer_declarator ($2, NULL_TREE); } - | absdcl1 '(' parmlist %prec '.' - { $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); } - | absdcl1 '[' expr ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, $3); } - | absdcl1 '[' ']' %prec '.' - { $$ = build_nt (ARRAY_REF, $1, NULL_TREE); } - | '(' parmlist %prec '.' - { $$ = build_nt (CALL_EXPR, NULL_TREE, $2, NULL_TREE); } - | '[' expr ']' %prec '.' - { $$ = build_nt (ARRAY_REF, NULL_TREE, $2); } - | '[' ']' %prec '.' - { $$ = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); } - /* ??? It appears we have to support attributes here, however - using prefix_attributes is wrong. */ - | attributes setattrs absdcl1 - { $$ = $3; } - ; - -/* at least one statement, the first of which parses without error. */ -/* stmts is used only after decls, so an invalid first statement - is actually regarded as an invalid decl and part of the decls. */ - -stmts: - lineno_stmt_or_labels - { - if (pedantic && $1) - pedwarn ("ANSI C forbids label at end of compound statement"); - } - ; - -lineno_stmt_or_labels: - lineno_stmt_or_label - | lineno_stmt_or_labels lineno_stmt_or_label - { $$ = $2; } - | lineno_stmt_or_labels errstmt - { $$ = 0; } - ; - -xstmts: - /* empty */ - | stmts - ; - -errstmt: error ';' - ; - -pushlevel: /* empty */ - { emit_line_note (input_filename, lineno); - pushlevel (0); - clear_last_expr (); - expand_start_bindings (0); - if (objc_method_context) - add_objc_decls (); - } - ; - -/* Read zero or more forward-declarations for labels - that nested functions can jump to. */ -maybe_label_decls: - /* empty */ - | label_decls - { if (pedantic) - pedwarn ("ANSI C forbids label declarations"); } - ; - -label_decls: - label_decl - | label_decls label_decl - ; - -label_decl: - LABEL identifiers_or_typenames ';' - { tree link; - for (link = $2; link; link = TREE_CHAIN (link)) - { - tree label = shadow_label (TREE_VALUE (link)); - C_DECLARED_LABEL_FLAG (label) = 1; - declare_nonlocal_label (label); - } - } - ; - -/* This is the body of a function definition. - It causes syntax errors to ignore to the next openbrace. */ -compstmt_or_error: - compstmt - {} - | error compstmt - ; - -compstmt_start: '{' { compstmt_count++; } - -compstmt_nostart: '}' - { $$ = convert (void_type_node, integer_zero_node); } - | pushlevel maybe_label_decls decls xstmts '}' - { emit_line_note (input_filename, lineno); - expand_end_bindings (getdecls (), 1, 0); - $$ = poplevel (1, 1, 0); } - | pushlevel maybe_label_decls error '}' - { emit_line_note (input_filename, lineno); - expand_end_bindings (getdecls (), kept_level_p (), 0); - $$ = poplevel (kept_level_p (), 0, 0); } - | pushlevel maybe_label_decls stmts '}' - { emit_line_note (input_filename, lineno); - expand_end_bindings (getdecls (), kept_level_p (), 0); - $$ = poplevel (kept_level_p (), 0, 0); } - ; - -compstmt_primary_start: - '(' '{' - { if (current_function_decl == 0) - { - error ("braced-group within expression allowed only inside a function"); - YYERROR; - } - /* We must force a BLOCK for this level - so that, if it is not expanded later, - there is a way to turn off the entire subtree of blocks - that are contained in it. */ - keep_next_level (); - push_iterator_stack (); - push_label_level (); - $$ = expand_start_stmt_expr (); - compstmt_count++; - } - -compstmt: compstmt_start compstmt_nostart - { $$ = $2; } - ; - -/* Value is number of statements counted as of the closeparen. */ -simple_if: - if_prefix lineno_labeled_stmt -/* Make sure c_expand_end_cond is run once - for each call to c_expand_start_cond. - Otherwise a crash is likely. */ - | if_prefix error - ; - -if_prefix: - IF '(' expr ')' - { emit_line_note ($-1, $0); - c_expand_start_cond (truthvalue_conversion ($3), 0, - compstmt_count); - $$ = stmt_count; - if_stmt_file = $-1; - if_stmt_line = $0; - position_after_white_space (); } - ; - -/* This is a subroutine of stmt. - It is used twice, once for valid DO statements - and once for catching errors in parsing the end test. */ -do_stmt_start: - DO - { stmt_count++; - compstmt_count++; - emit_line_note ($-1, $0); - /* See comment in `while' alternative, above. */ - emit_nop (); - expand_start_loop_continue_elsewhere (1); - position_after_white_space (); } - lineno_labeled_stmt WHILE - { expand_loop_continue_here (); } - ; - -save_filename: - { $$ = input_filename; } - ; - -save_lineno: - { $$ = lineno; } - ; - -lineno_labeled_stmt: - save_filename save_lineno stmt - { } -/* | save_filename save_lineno error - { } -*/ - | save_filename save_lineno label lineno_labeled_stmt - { } - ; - -lineno_stmt_or_label: - save_filename save_lineno stmt_or_label - { $$ = $3; } - ; - -stmt_or_label: - stmt - { $$ = 0; } - | label - { $$ = 1; } - ; - -/* Parse a single real statement, not including any labels. */ -stmt: - compstmt - { stmt_count++; } - | all_iter_stmt - | expr ';' - { stmt_count++; - emit_line_note ($-1, $0); -/* It appears that this should not be done--that a non-lvalue array - shouldn't get an error if the value isn't used. - Section 3.2.2.1 says that an array lvalue gets converted to a pointer - if it appears as a top-level expression, - but says nothing about non-lvalue arrays. */ -#if 0 - /* Call default_conversion to get an error - on referring to a register array if pedantic. */ - if (TREE_CODE (TREE_TYPE ($1)) == ARRAY_TYPE - || TREE_CODE (TREE_TYPE ($1)) == FUNCTION_TYPE) - $1 = default_conversion ($1); -#endif - iterator_expand ($1); } - | simple_if ELSE - { c_expand_start_else (); - $1 = stmt_count; - position_after_white_space (); } - lineno_labeled_stmt - { c_expand_end_cond (); - if (extra_warnings && stmt_count == $1) - warning ("empty body in an else-statement"); } - | simple_if %prec IF - { c_expand_end_cond (); - /* This warning is here instead of in simple_if, because we - do not want a warning if an empty if is followed by an - else statement. Increment stmt_count so we don't - give a second error if this is a nested `if'. */ - if (extra_warnings && stmt_count++ == $1) - warning_with_file_and_line (if_stmt_file, if_stmt_line, - "empty body in an if-statement"); } -/* Make sure c_expand_end_cond is run once - for each call to c_expand_start_cond. - Otherwise a crash is likely. */ - | simple_if ELSE error - { c_expand_end_cond (); } - | WHILE - { stmt_count++; - emit_line_note ($-1, $0); - /* The emit_nop used to come before emit_line_note, - but that made the nop seem like part of the preceding line. - And that was confusing when the preceding line was - inside of an if statement and was not really executed. - I think it ought to work to put the nop after the line number. - We will see. --rms, July 15, 1991. */ - emit_nop (); } - '(' expr ')' - { /* Don't start the loop till we have succeeded - in parsing the end test. This is to make sure - that we end every loop we start. */ - expand_start_loop (1); - emit_line_note (input_filename, lineno); - expand_exit_loop_if_false (NULL_PTR, - truthvalue_conversion ($4)); - position_after_white_space (); } - lineno_labeled_stmt - { expand_end_loop (); } - | do_stmt_start - '(' expr ')' ';' - { emit_line_note (input_filename, lineno); - expand_exit_loop_if_false (NULL_PTR, - truthvalue_conversion ($3)); - expand_end_loop (); } -/* This rule is needed to make sure we end every loop we start. */ - | do_stmt_start error - { expand_end_loop (); } - | FOR - '(' xexpr ';' - { stmt_count++; - emit_line_note ($-1, $0); - /* See comment in `while' alternative, above. */ - emit_nop (); - if ($3) c_expand_expr_stmt ($3); - /* Next step is to call expand_start_loop_continue_elsewhere, - but wait till after we parse the entire for (...). - Otherwise, invalid input might cause us to call that - fn without calling expand_end_loop. */ - } - xexpr ';' - /* Can't emit now; wait till after expand_start_loop... */ - { $7 = lineno; - $$ = input_filename; } - xexpr ')' - { - /* Start the loop. Doing this after parsing - all the expressions ensures we will end the loop. */ - expand_start_loop_continue_elsewhere (1); - /* Emit the end-test, with a line number. */ - emit_line_note ($8, $7); - if ($6) - expand_exit_loop_if_false (NULL_PTR, - truthvalue_conversion ($6)); - $7 = lineno; - $8 = input_filename; - position_after_white_space (); } - lineno_labeled_stmt - { /* Emit the increment expression, with a line number. */ - emit_line_note ($8, $7); - expand_loop_continue_here (); - if ($9) - c_expand_expr_stmt ($9); - expand_end_loop (); } - | SWITCH '(' expr ')' - { stmt_count++; - emit_line_note ($-1, $0); - c_expand_start_case ($3); - position_after_white_space (); } - lineno_labeled_stmt - { expand_end_case ($3); } - | BREAK ';' - { tree break_stmt = build_break_stmt (); - stmt_count++; - genrtl_break_stmt (); } - | CONTINUE ';' - { tree continue_stmt = build_continue_stmt (); - stmt_count++; - genrtl_continue_stmt (); } - | RETURN ';' - { tree return_stmt = build_return_stmt (NULL_TREE); - stmt_count++; - genrtl_return_stmt (RETURN_EXPR(return_stmt)); } - | RETURN expr ';' - { tree return_stmt = build_return_stmt ($2); - stmt_count++; - genrtl_return_stmt (RETURN_EXPR(return_stmt)); } - | ASM_KEYWORD maybe_type_qual '(' expr ')' ';' - { stmt_count++; - emit_line_note ($-1, $0); - STRIP_NOPS ($4); - if ((TREE_CODE ($4) == ADDR_EXPR - && TREE_CODE (TREE_OPERAND ($4, 0)) == STRING_CST) - || TREE_CODE ($4) == STRING_CST) - expand_asm ($4); - else - error ("argument of `asm' is not a constant string"); } - /* This is the case with just output operands. */ - | ASM_KEYWORD maybe_type_qual '(' expr ':' asm_operands ')' ';' - { stmt_count++; - emit_line_note ($-1, $0); - c_expand_asm_operands ($4, $6, NULL_TREE, NULL_TREE, - $2 == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); } - /* This is the case with input operands as well. */ - | ASM_KEYWORD maybe_type_qual '(' expr ':' asm_operands ':' asm_operands ')' ';' - { stmt_count++; - emit_line_note ($-1, $0); - c_expand_asm_operands ($4, $6, $8, NULL_TREE, - $2 == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); } - /* This is the case with clobbered registers as well. */ - | ASM_KEYWORD maybe_type_qual '(' expr ':' asm_operands ':' - asm_operands ':' asm_clobbers ')' ';' - { stmt_count++; - emit_line_note ($-1, $0); - c_expand_asm_operands ($4, $6, $8, $10, - $2 == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); } - | GOTO identifier ';' - { tree decl; - stmt_count++; - emit_line_note ($-1, $0); - decl = lookup_label ($2); - if (decl != 0) - { - TREE_USED (decl) = 1; - expand_goto (decl); - } - } - | GOTO '*' expr ';' - { if (pedantic) - pedwarn ("ANSI C forbids `goto *expr;'"); - stmt_count++; - emit_line_note ($-1, $0); - expand_computed_goto (convert (ptr_type_node, $3)); } - | ';' - ; - -all_iter_stmt: - all_iter_stmt_simple -/* | all_iter_stmt_with_decl */ - ; - -all_iter_stmt_simple: - FOR '(' primary ')' - { - /* The value returned by this action is */ - /* 1 if everything is OK */ - /* 0 in case of error or already bound iterator */ - - $$ = 0; - if (TREE_CODE ($3) != VAR_DECL) - error ("invalid `for (ITERATOR)' syntax"); - else if (! ITERATOR_P ($3)) - error ("`%s' is not an iterator", - IDENTIFIER_POINTER (DECL_NAME ($3))); - else if (ITERATOR_BOUND_P ($3)) - error ("`for (%s)' inside expansion of same iterator", - IDENTIFIER_POINTER (DECL_NAME ($3))); - else - { - $$ = 1; - iterator_for_loop_start ($3); - } - } - lineno_labeled_stmt - { - if ($5) - iterator_for_loop_end ($3); - } - -/* This really should allow any kind of declaration, - for generality. Fix it before turning it back on. - -all_iter_stmt_with_decl: - FOR '(' ITERATOR pushlevel setspecs iterator_spec ')' - { -*/ /* The value returned by this action is */ - /* 1 if everything is OK */ - /* 0 in case of error or already bound iterator */ -/* - iterator_for_loop_start ($6); - } - lineno_labeled_stmt - { - iterator_for_loop_end ($6); - emit_line_note (input_filename, lineno); - expand_end_bindings (getdecls (), 1, 0); - $$ = poplevel (1, 1, 0); - } -*/ - -/* Any kind of label, including jump labels and case labels. - ANSI C accepts labels only before statements, but we allow them - also at the end of a compound statement. */ - -label: CASE expr_no_commas ':' - { tree case_label_tree = build_case_label ($2, NULL_TREE); - stmt_count++; - genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree)); - position_after_white_space (); - } - | CASE expr_no_commas ELLIPSIS expr_no_commas ':' - { tree case_label_tree = build_case_label ($2, $4); - stmt_count++; - genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree)); - position_after_white_space (); - } - | DEFAULT ':' - { tree case_label_tree = build_case_label (NULL_TREE, NULL_TREE); - stmt_count++; - genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree)); - position_after_white_space (); - } - | identifier ':' maybe_attribute - { tree label = define_label (input_filename, lineno, $1); - stmt_count++; - emit_nop (); - if (label) - { - expand_label (label); - decl_attributes (label, $3, NULL_TREE); - } - position_after_white_space (); } - ; - -/* Either a type-qualifier or nothing. First thing in an `asm' statement. */ - -maybe_type_qual: - /* empty */ - { emit_line_note (input_filename, lineno); - $$ = NULL_TREE; } - | TYPE_QUAL - { emit_line_note (input_filename, lineno); } - ; - -xexpr: - /* empty */ - { $$ = NULL_TREE; } - | expr - ; - -/* These are the operands other than the first string and colon - in asm ("addextend %2,%1": "=dm" (x), "0" (y), "g" (*x)) */ -asm_operands: /* empty */ - { $$ = NULL_TREE; } - | nonnull_asm_operands - ; - -nonnull_asm_operands: - asm_operand - | nonnull_asm_operands ',' asm_operand - { $$ = chainon ($1, $3); } - ; - -asm_operand: - STRING '(' expr ')' - { $$ = build_tree_list ($1, $3); } - ; - -asm_clobbers: - string - { $$ = tree_cons (NULL_TREE, combine_strings ($1), NULL_TREE); } - | asm_clobbers ',' string - { $$ = tree_cons (NULL_TREE, combine_strings ($3), $1); } - ; - -/* This is what appears inside the parens in a function declarator. - Its value is a list of ..._TYPE nodes. */ -parmlist: - { pushlevel (0); - clear_parm_order (); - declare_parm_level (0); } - parmlist_1 - { $$ = $2; - parmlist_tags_warning (); - poplevel (0, 0, 0); } - ; - -parmlist_1: - parmlist_2 ')' - | parms ';' - { tree parm; - if (pedantic) - pedwarn ("ANSI C forbids forward parameter declarations"); - /* Mark the forward decls as such. */ - for (parm = getdecls (); parm; parm = TREE_CHAIN (parm)) - TREE_ASM_WRITTEN (parm) = 1; - clear_parm_order (); } - parmlist_1 - { $$ = $4; } - | error ')' - { $$ = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); } - ; - -/* This is what appears inside the parens in a function declarator. - Is value is represented in the format that grokdeclarator expects. */ -parmlist_2: /* empty */ - { $$ = get_parm_info (0); } - | ELLIPSIS - { $$ = get_parm_info (0); - /* Gcc used to allow this as an extension. However, it does - not work for all targets, and thus has been disabled. - Also, since func (...) and func () are indistinguishable, - it caused problems with the code in expand_builtin which - tries to verify that BUILT_IN_NEXT_ARG is being used - correctly. */ - error ("ANSI C requires a named argument before `...'"); - } - | parms - { $$ = get_parm_info (1); } - | parms ',' ELLIPSIS - { $$ = get_parm_info (0); } - ; - -parms: - parm - { push_parm_decl ($1); } - | parms ',' parm - { push_parm_decl ($3); } - ; - -/* A single parameter declaration or parameter type name, - as found in a parmlist. */ -parm: - typed_declspecs setspecs parm_declarator maybe_attribute - { $$ = build_tree_list (build_tree_list (current_declspecs, - $3), - build_tree_list (prefix_attributes, - $4)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs setspecs notype_declarator maybe_attribute - { $$ = build_tree_list (build_tree_list (current_declspecs, - $3), - build_tree_list (prefix_attributes, - $4)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs setspecs absdcl maybe_attribute - { $$ = build_tree_list (build_tree_list (current_declspecs, - $3), - build_tree_list (prefix_attributes, - $4)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | declmods setspecs notype_declarator maybe_attribute - { $$ = build_tree_list (build_tree_list (current_declspecs, - $3), - build_tree_list (prefix_attributes, - $4)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - - | declmods setspecs absdcl maybe_attribute - { $$ = build_tree_list (build_tree_list (current_declspecs, - $3), - build_tree_list (prefix_attributes, - $4)); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - ; - -/* This is used in a function definition - where either a parmlist or an identifier list is ok. - Its value is a list of ..._TYPE nodes or a list of identifiers. */ -parmlist_or_identifiers: - { pushlevel (0); - clear_parm_order (); - declare_parm_level (1); } - parmlist_or_identifiers_1 - { $$ = $2; - parmlist_tags_warning (); - poplevel (0, 0, 0); } - ; - -parmlist_or_identifiers_1: - parmlist_1 - | identifiers ')' - { tree t; - for (t = $1; t; t = TREE_CHAIN (t)) - if (TREE_VALUE (t) == NULL_TREE) - error ("`...' in old-style identifier list"); - $$ = tree_cons (NULL_TREE, NULL_TREE, $1); } - ; - -/* A nonempty list of identifiers. */ -identifiers: - IDENTIFIER - { $$ = build_tree_list (NULL_TREE, $1); } - | identifiers ',' IDENTIFIER - { $$ = chainon ($1, build_tree_list (NULL_TREE, $3)); } - ; - -/* A nonempty list of identifiers, including typenames. */ -identifiers_or_typenames: - identifier - { $$ = build_tree_list (NULL_TREE, $1); } - | identifiers_or_typenames ',' identifier - { $$ = chainon ($1, build_tree_list (NULL_TREE, $3)); } - ; - -extension: - EXTENSION - { $$ = SAVE_WARN_FLAGS(); - pedantic = 0; - warn_pointer_arith = 0; } - ; - -/* Objective-C productions. */ - -objcdef: - classdef - | classdecl - | aliasdecl - | protocoldef - | methoddef - | END - { - if (objc_implementation_context) - { - finish_class (objc_implementation_context); - objc_ivar_chain = NULL_TREE; - objc_implementation_context = NULL_TREE; - } - else - warning ("`@end' must appear in an implementation context"); - } - ; - -/* A nonempty list of identifiers. */ -identifier_list: - identifier - { $$ = build_tree_list (NULL_TREE, $1); } - | identifier_list ',' identifier - { $$ = chainon ($1, build_tree_list (NULL_TREE, $3)); } - ; - -classdecl: - CLASS identifier_list ';' - { - objc_declare_class ($2); - } - -aliasdecl: - ALIAS identifier identifier ';' - { - objc_declare_alias ($2, $3); - } - -classdef: - INTERFACE identifier protocolrefs '{' - { - objc_interface_context = objc_ivar_context - = start_class (CLASS_INTERFACE_TYPE, $2, NULL_TREE, $3); - objc_public_flag = 0; - } - ivar_decl_list '}' - { - continue_class (objc_interface_context); - } - methodprotolist - END - { - finish_class (objc_interface_context); - objc_interface_context = NULL_TREE; - } - - | INTERFACE identifier protocolrefs - { - objc_interface_context - = start_class (CLASS_INTERFACE_TYPE, $2, NULL_TREE, $3); - continue_class (objc_interface_context); - } - methodprotolist - END - { - finish_class (objc_interface_context); - objc_interface_context = NULL_TREE; - } - - | INTERFACE identifier ':' identifier protocolrefs '{' - { - objc_interface_context = objc_ivar_context - = start_class (CLASS_INTERFACE_TYPE, $2, $4, $5); - objc_public_flag = 0; - } - ivar_decl_list '}' - { - continue_class (objc_interface_context); - } - methodprotolist - END - { - finish_class (objc_interface_context); - objc_interface_context = NULL_TREE; - } - - | INTERFACE identifier ':' identifier protocolrefs - { - objc_interface_context - = start_class (CLASS_INTERFACE_TYPE, $2, $4, $5); - continue_class (objc_interface_context); - } - methodprotolist - END - { - finish_class (objc_interface_context); - objc_interface_context = NULL_TREE; - } - - | IMPLEMENTATION identifier '{' - { - objc_implementation_context = objc_ivar_context - = start_class (CLASS_IMPLEMENTATION_TYPE, $2, NULL_TREE, NULL_TREE); - objc_public_flag = 0; - } - ivar_decl_list '}' - { - objc_ivar_chain - = continue_class (objc_implementation_context); - } - - | IMPLEMENTATION identifier - { - objc_implementation_context - = start_class (CLASS_IMPLEMENTATION_TYPE, $2, NULL_TREE, NULL_TREE); - objc_ivar_chain - = continue_class (objc_implementation_context); - } - - | IMPLEMENTATION identifier ':' identifier '{' - { - objc_implementation_context = objc_ivar_context - = start_class (CLASS_IMPLEMENTATION_TYPE, $2, $4, NULL_TREE); - objc_public_flag = 0; - } - ivar_decl_list '}' - { - objc_ivar_chain - = continue_class (objc_implementation_context); - } - - | IMPLEMENTATION identifier ':' identifier - { - objc_implementation_context - = start_class (CLASS_IMPLEMENTATION_TYPE, $2, $4, NULL_TREE); - objc_ivar_chain - = continue_class (objc_implementation_context); - } - - | INTERFACE identifier '(' identifier ')' protocolrefs - { - objc_interface_context - = start_class (CATEGORY_INTERFACE_TYPE, $2, $4, $6); - continue_class (objc_interface_context); - } - methodprotolist - END - { - finish_class (objc_interface_context); - objc_interface_context = NULL_TREE; - } - - | IMPLEMENTATION identifier '(' identifier ')' - { - objc_implementation_context - = start_class (CATEGORY_IMPLEMENTATION_TYPE, $2, $4, NULL_TREE); - objc_ivar_chain - = continue_class (objc_implementation_context); - } - ; - -protocoldef: - PROTOCOL identifier protocolrefs - { - remember_protocol_qualifiers (); - objc_interface_context - = start_protocol(PROTOCOL_INTERFACE_TYPE, $2, $3); - } - methodprotolist END - { - forget_protocol_qualifiers(); - finish_protocol(objc_interface_context); - objc_interface_context = NULL_TREE; - } - ; - -protocolrefs: - /* empty */ - { - $$ = NULL_TREE; - } - | non_empty_protocolrefs - ; - -non_empty_protocolrefs: - ARITHCOMPARE identifier_list ARITHCOMPARE - { - if ($1 == LT_EXPR && $3 == GT_EXPR) - $$ = $2; - else - YYERROR1; - } - ; - -ivar_decl_list: - ivar_decl_list visibility_spec ivar_decls - | ivar_decls - ; - -visibility_spec: - PRIVATE { objc_public_flag = 2; } - | PROTECTED { objc_public_flag = 0; } - | PUBLIC { objc_public_flag = 1; } - ; - -ivar_decls: - /* empty */ - { - $$ = NULL_TREE; - } - | ivar_decls ivar_decl ';' - | ivar_decls ';' - { - if (pedantic) - pedwarn ("extra semicolon in struct or union specified"); - } - ; - - -/* There is a shift-reduce conflict here, because `components' may - start with a `typename'. It happens that shifting (the default resolution) - does the right thing, because it treats the `typename' as part of - a `typed_typespecs'. - - It is possible that this same technique would allow the distinction - between `notype_initdecls' and `initdecls' to be eliminated. - But I am being cautious and not trying it. */ - -ivar_decl: - typed_typespecs setspecs ivars - { $$ = $3; - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | nonempty_type_quals setspecs ivars - { $$ = $3; - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | error - { $$ = NULL_TREE; } - ; - -ivars: - /* empty */ - { $$ = NULL_TREE; } - | ivar_declarator - | ivars ',' ivar_declarator - ; - -ivar_declarator: - declarator - { - $$ = add_instance_variable (objc_ivar_context, - objc_public_flag, - $1, current_declspecs, - NULL_TREE); - } - | declarator ':' expr_no_commas - { - $$ = add_instance_variable (objc_ivar_context, - objc_public_flag, - $1, current_declspecs, $3); - } - | ':' expr_no_commas - { - $$ = add_instance_variable (objc_ivar_context, - objc_public_flag, - NULL_TREE, - current_declspecs, $2); - } - ; - -methoddef: - '+' - { - remember_protocol_qualifiers (); - if (objc_implementation_context) - objc_inherit_code = CLASS_METHOD_DECL; - else - fatal ("method definition not in class context"); - } - methoddecl - { - forget_protocol_qualifiers (); - add_class_method (objc_implementation_context, $3); - start_method_def ($3); - objc_method_context = $3; - } - optarglist - { - continue_method_def (); - } - compstmt_or_error - { - finish_method_def (); - objc_method_context = NULL_TREE; - } - - | '-' - { - remember_protocol_qualifiers (); - if (objc_implementation_context) - objc_inherit_code = INSTANCE_METHOD_DECL; - else - fatal ("method definition not in class context"); - } - methoddecl - { - forget_protocol_qualifiers (); - add_instance_method (objc_implementation_context, $3); - start_method_def ($3); - objc_method_context = $3; - } - optarglist - { - continue_method_def (); - } - compstmt_or_error - { - finish_method_def (); - objc_method_context = NULL_TREE; - } - ; - -/* the reason for the strange actions in this rule - is so that notype_initdecls when reached via datadef - can find a valid list of type and sc specs in $0. */ - -methodprotolist: - /* empty */ - | {$$ = NULL_TREE; } methodprotolist2 - ; - -methodprotolist2: /* eliminates a shift/reduce conflict */ - methodproto - | datadef - | methodprotolist2 methodproto - | methodprotolist2 {$$ = NULL_TREE; } datadef - ; - -semi_or_error: - ';' - | error - ; - -methodproto: - '+' - { - /* Remember protocol qualifiers in prototypes. */ - remember_protocol_qualifiers (); - objc_inherit_code = CLASS_METHOD_DECL; - } - methoddecl - { - /* Forget protocol qualifiers here. */ - forget_protocol_qualifiers (); - add_class_method (objc_interface_context, $3); - } - semi_or_error - - | '-' - { - /* Remember protocol qualifiers in prototypes. */ - remember_protocol_qualifiers (); - objc_inherit_code = INSTANCE_METHOD_DECL; - } - methoddecl - { - /* Forget protocol qualifiers here. */ - forget_protocol_qualifiers (); - add_instance_method (objc_interface_context, $3); - } - semi_or_error - ; - -methoddecl: - '(' typename ')' unaryselector - { - $$ = build_method_decl (objc_inherit_code, $2, $4, NULL_TREE); - } - - | unaryselector - { - $$ = build_method_decl (objc_inherit_code, NULL_TREE, $1, NULL_TREE); - } - - | '(' typename ')' keywordselector optparmlist - { - $$ = build_method_decl (objc_inherit_code, $2, $4, $5); - } - - | keywordselector optparmlist - { - $$ = build_method_decl (objc_inherit_code, NULL_TREE, $1, $2); - } - ; - -/* "optarglist" assumes that start_method_def has already been called... - if it is not, the "xdecls" will not be placed in the proper scope */ - -optarglist: - /* empty */ - | ';' myxdecls - ; - -/* to get around the following situation: "int foo (int a) int b; {}" that - is synthesized when parsing "- a:a b:b; id c; id d; { ... }" */ - -myxdecls: - /* empty */ - | mydecls - ; - -mydecls: - mydecl - | errstmt - | mydecls mydecl - | mydecl errstmt - ; - -mydecl: - typed_declspecs setspecs myparms ';' - { current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); } - | typed_declspecs ';' - { shadow_tag ($1); } - | declmods ';' - { pedwarn ("empty declaration"); } - ; - -myparms: - myparm - { push_parm_decl ($1); } - | myparms ',' myparm - { push_parm_decl ($3); } - ; - -/* A single parameter declaration or parameter type name, - as found in a parmlist. DOES NOT ALLOW AN INITIALIZER OR ASMSPEC */ - -myparm: - parm_declarator maybe_attribute - { $$ = build_tree_list (build_tree_list (current_declspecs, - $1), - build_tree_list (prefix_attributes, - $2)); } - | notype_declarator maybe_attribute - { $$ = build_tree_list (build_tree_list (current_declspecs, - $1), - build_tree_list (prefix_attributes, - $2)); } - | absdcl maybe_attribute - { $$ = build_tree_list (build_tree_list (current_declspecs, - $1), - build_tree_list (prefix_attributes, - $2)); } - ; - -optparmlist: - /* empty */ - { - $$ = NULL_TREE; - } - | ',' ELLIPSIS - { - /* oh what a kludge! */ - $$ = objc_ellipsis_node; - } - | ',' - { - pushlevel (0); - } - parmlist_2 - { - /* returns a tree list node generated by get_parm_info */ - $$ = $3; - poplevel (0, 0, 0); - } - ; - -unaryselector: - selector - ; - -keywordselector: - keyworddecl - - | keywordselector keyworddecl - { - $$ = chainon ($1, $2); - } - ; - -selector: - IDENTIFIER - | TYPENAME - | OBJECTNAME - | reservedwords - ; - -reservedwords: - ENUM { $$ = get_identifier (token_buffer); } - | STRUCT { $$ = get_identifier (token_buffer); } - | UNION { $$ = get_identifier (token_buffer); } - | IF { $$ = get_identifier (token_buffer); } - | ELSE { $$ = get_identifier (token_buffer); } - | WHILE { $$ = get_identifier (token_buffer); } - | DO { $$ = get_identifier (token_buffer); } - | FOR { $$ = get_identifier (token_buffer); } - | SWITCH { $$ = get_identifier (token_buffer); } - | CASE { $$ = get_identifier (token_buffer); } - | DEFAULT { $$ = get_identifier (token_buffer); } - | BREAK { $$ = get_identifier (token_buffer); } - | CONTINUE { $$ = get_identifier (token_buffer); } - | RETURN { $$ = get_identifier (token_buffer); } - | GOTO { $$ = get_identifier (token_buffer); } - | ASM_KEYWORD { $$ = get_identifier (token_buffer); } - | SIZEOF { $$ = get_identifier (token_buffer); } - | TYPEOF { $$ = get_identifier (token_buffer); } - | ALIGNOF { $$ = get_identifier (token_buffer); } - | TYPESPEC | TYPE_QUAL - ; - -keyworddecl: - selector ':' '(' typename ')' identifier - { - $$ = build_keyword_decl ($1, $4, $6); - } - - | selector ':' identifier - { - $$ = build_keyword_decl ($1, NULL_TREE, $3); - } - - | ':' '(' typename ')' identifier - { - $$ = build_keyword_decl (NULL_TREE, $3, $5); - } - - | ':' identifier - { - $$ = build_keyword_decl (NULL_TREE, NULL_TREE, $2); - } - ; - -messageargs: - selector - | keywordarglist - ; - -keywordarglist: - keywordarg - | keywordarglist keywordarg - { - $$ = chainon ($1, $2); - } - ; - - -keywordexpr: - nonnull_exprlist - { - if (TREE_CHAIN ($1) == NULL_TREE) - /* just return the expr., remove a level of indirection */ - $$ = TREE_VALUE ($1); - else - /* we have a comma expr., we will collapse later */ - $$ = $1; - } - ; - -keywordarg: - selector ':' keywordexpr - { - $$ = build_tree_list ($1, $3); - } - | ':' keywordexpr - { - $$ = build_tree_list (NULL_TREE, $2); - } - ; - -receiver: - expr - | CLASSNAME - { - $$ = get_class_reference ($1); - } - ; - -objcmessageexpr: - '[' - { objc_receiver_context = 1; } - receiver - { objc_receiver_context = 0; } - messageargs ']' - { - $$ = build_tree_list ($3, $5); - } - ; - -selectorarg: - selector - | keywordnamelist - ; - -keywordnamelist: - keywordname - | keywordnamelist keywordname - { - $$ = chainon ($1, $2); - } - ; - -keywordname: - selector ':' - { - $$ = build_tree_list ($1, NULL_TREE); - } - | ':' - { - $$ = build_tree_list (NULL_TREE, NULL_TREE); - } - ; - -objcselectorexpr: - SELECTOR '(' selectorarg ')' - { - $$ = $3; - } - ; - -objcprotocolexpr: - PROTOCOL '(' identifier ')' - { - $$ = $3; - } - ; - -/* extension to support C-structures in the archiver */ - -objcencodeexpr: - ENCODE '(' typename ')' - { - $$ = groktypename ($3); - } - ; - -%%