00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #define YYBISON 1
00038
00039
00040 #define YYSKELETON_NAME "yacc.c"
00041
00042
00043 #define YYPURE 0
00044
00045
00046 #define YYLSP_NEEDED 0
00047
00048
00049
00050
00051 #ifndef YYTOKENTYPE
00052 # define YYTOKENTYPE
00053
00054
00055 enum yytokentype {
00056 FUNC_CALL = 258,
00057 NAME = 259,
00058 REGEXP = 260,
00059 ERROR = 261,
00060 YNUMBER = 262,
00061 YSTRING = 263,
00062 RELOP = 264,
00063 IO_OUT = 265,
00064 IO_IN = 266,
00065 ASSIGNOP = 267,
00066 ASSIGN = 268,
00067 MATCHOP = 269,
00068 CONCAT_OP = 270,
00069 LEX_BEGIN = 271,
00070 LEX_END = 272,
00071 LEX_IF = 273,
00072 LEX_ELSE = 274,
00073 LEX_RETURN = 275,
00074 LEX_DELETE = 276,
00075 LEX_SWITCH = 277,
00076 LEX_CASE = 278,
00077 LEX_DEFAULT = 279,
00078 LEX_WHILE = 280,
00079 LEX_DO = 281,
00080 LEX_FOR = 282,
00081 LEX_BREAK = 283,
00082 LEX_CONTINUE = 284,
00083 LEX_PRINT = 285,
00084 LEX_PRINTF = 286,
00085 LEX_NEXT = 287,
00086 LEX_EXIT = 288,
00087 LEX_FUNCTION = 289,
00088 LEX_GETLINE = 290,
00089 LEX_NEXTFILE = 291,
00090 LEX_IN = 292,
00091 LEX_AND = 293,
00092 LEX_OR = 294,
00093 INCREMENT = 295,
00094 DECREMENT = 296,
00095 LEX_BUILTIN = 297,
00096 LEX_LENGTH = 298,
00097 NEWLINE = 299,
00098 SLASH_BEFORE_EQUAL = 300,
00099 UNARY = 301
00100 };
00101 #endif
00102 #define FUNC_CALL 258
00103 #define NAME 259
00104 #define REGEXP 260
00105 #define ERROR 261
00106 #define YNUMBER 262
00107 #define YSTRING 263
00108 #define RELOP 264
00109 #define IO_OUT 265
00110 #define IO_IN 266
00111 #define ASSIGNOP 267
00112 #define ASSIGN 268
00113 #define MATCHOP 269
00114 #define CONCAT_OP 270
00115 #define LEX_BEGIN 271
00116 #define LEX_END 272
00117 #define LEX_IF 273
00118 #define LEX_ELSE 274
00119 #define LEX_RETURN 275
00120 #define LEX_DELETE 276
00121 #define LEX_SWITCH 277
00122 #define LEX_CASE 278
00123 #define LEX_DEFAULT 279
00124 #define LEX_WHILE 280
00125 #define LEX_DO 281
00126 #define LEX_FOR 282
00127 #define LEX_BREAK 283
00128 #define LEX_CONTINUE 284
00129 #define LEX_PRINT 285
00130 #define LEX_PRINTF 286
00131 #define LEX_NEXT 287
00132 #define LEX_EXIT 288
00133 #define LEX_FUNCTION 289
00134 #define LEX_GETLINE 290
00135 #define LEX_NEXTFILE 291
00136 #define LEX_IN 292
00137 #define LEX_AND 293
00138 #define LEX_OR 294
00139 #define INCREMENT 295
00140 #define DECREMENT 296
00141 #define LEX_BUILTIN 297
00142 #define LEX_LENGTH 298
00143 #define NEWLINE 299
00144 #define SLASH_BEFORE_EQUAL 300
00145 #define UNARY 301
00146
00147
00148
00149
00150
00151 #line 26 "awkgram.y"
00152
00153 #ifdef GAWKDEBUG
00154 #define YYDEBUG 12
00155 #endif
00156
00157 #include "awk.h"
00158
00159 #define CAN_FREE TRUE
00160 #define DONT_FREE FALSE
00161
00162 #if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__
00163 static void yyerror(const char *m, ...) ATTRIBUTE_PRINTF_1;
00164 #else
00165 static void yyerror();
00166 #endif
00167 static char *get_src_buf P((void));
00168 static int yylex P((void));
00169 static NODE *node_common P((NODETYPE op));
00170 static NODE *snode P((NODE *subn, NODETYPE op, int sindex));
00171 static NODE *make_for_loop P((NODE *init, NODE *cond, NODE *incr));
00172 static NODE *append_right P((NODE *list, NODE *new));
00173 static inline NODE *append_pattern P((NODE **list, NODE *patt));
00174 static void func_install P((NODE *params, NODE *def));
00175 static void pop_var P((NODE *np, int freeit));
00176 static void pop_params P((NODE *params));
00177 static NODE *make_param P((char *name));
00178 static NODE *mk_rexp P((NODE *exp));
00179 static int dup_parms P((NODE *func));
00180 static void param_sanity P((NODE *arglist));
00181 static int parms_shadow P((const char *fname, NODE *func));
00182 static int isnoeffect P((NODETYPE t));
00183 static int isassignable P((NODE *n));
00184 static void dumpintlstr P((const char *str, size_t len));
00185 static void dumpintlstr2 P((const char *str1, size_t len1, const char *str2, size_t len2));
00186 static void count_args P((NODE *n));
00187 static int isarray P((NODE *n));
00188
00189 enum defref { FUNC_DEFINE, FUNC_USE };
00190 static void func_use P((const char *name, enum defref how));
00191 static void check_funcs P((void));
00192
00193 static int want_regexp;
00194 static int can_return;
00195 static int begin_or_end_rule = FALSE;
00196 static int parsing_end_rule = FALSE;
00197 static int in_print = FALSE;
00198 static int in_parens = 0;
00199 static char *lexptr;
00200 static char *lexend;
00201 static char *lexptr_begin;
00202 static char *lexeme;
00203 static char *thisline = NULL;
00204 #define YYDEBUG_LEXER_TEXT (lexeme)
00205 static int param_counter;
00206 static char *tokstart = NULL;
00207 static char *tok = NULL;
00208 static char *tokend;
00209
00210 static long func_count;
00211
00212 #define HASHSIZE 1021
00213 NODE *variables[HASHSIZE];
00214 static int var_count;
00215
00216 extern char *source;
00217 extern int sourceline;
00218 extern struct src *srcfiles;
00219 extern int numfiles;
00220 extern int errcount;
00221 extern NODE *begin_block;
00222 extern NODE *end_block;
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233 static char builtin_func[] = "@builtin";
00234
00235
00236
00237 #ifndef YYDEBUG
00238 # define YYDEBUG 0
00239 #endif
00240
00241
00242 #ifdef YYERROR_VERBOSE
00243 # undef YYERROR_VERBOSE
00244 # define YYERROR_VERBOSE 1
00245 #else
00246 # define YYERROR_VERBOSE 0
00247 #endif
00248
00249 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
00250 #line 110 "awkgram.y"
00251 typedef union YYSTYPE {
00252 long lval;
00253 AWKNUM fval;
00254 NODE *nodeval;
00255 NODETYPE nodetypeval;
00256 char *sval;
00257 NODE *(*ptrval) P((void));
00258 } YYSTYPE;
00259
00260 #line 260 "y.tab.c"
00261 # define yystype YYSTYPE
00262 # define YYSTYPE_IS_DECLARED 1
00263 # define YYSTYPE_IS_TRIVIAL 1
00264 #endif
00265
00266
00267
00268
00269
00270
00271
00272 #line 272 "y.tab.c"
00273
00274 #if ! defined (yyoverflow) || YYERROR_VERBOSE
00275
00276
00277
00278 #undef YYSTACK_USE_ALLOCA
00279
00280 # if YYSTACK_USE_ALLOCA
00281 # define YYSTACK_ALLOC alloca
00282 # else
00283 # ifndef YYSTACK_USE_ALLOCA
00284 # if defined (alloca) || defined (_ALLOCA_H)
00285 # define YYSTACK_ALLOC alloca
00286 # else
00287 # ifdef __GNUC__
00288 # define YYSTACK_ALLOC __builtin_alloca
00289 # endif
00290 # endif
00291 # endif
00292 # endif
00293
00294 # ifdef YYSTACK_ALLOC
00295
00296 # define YYSTACK_FREE(Ptr) do { ; } while (0)
00297 # else
00298 # if defined (__STDC__) || defined (__cplusplus)
00299 # include <stdlib.h>
00300 # define YYSIZE_T size_t
00301 # endif
00302 # define YYSTACK_ALLOC malloc
00303 # define YYSTACK_FREE free
00304 # endif
00305 #endif
00306
00307
00308 #if (! defined (yyoverflow) \
00309 && (! defined (__cplusplus) \
00310 || (YYSTYPE_IS_TRIVIAL)))
00311
00312
00313 union yyalloc
00314 {
00315 short yyss;
00316 YYSTYPE yyvs;
00317 };
00318
00319
00320 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00321
00322
00323
00324 # define YYSTACK_BYTES(N) \
00325 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
00326 + YYSTACK_GAP_MAXIMUM)
00327
00328
00329
00330 # ifndef YYCOPY
00331 # if 1 < __GNUC__
00332 # define YYCOPY(To, From, Count) \
00333 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00334 # else
00335 # define YYCOPY(To, From, Count) \
00336 do \
00337 { \
00338 register YYSIZE_T yyi; \
00339 for (yyi = 0; yyi < (Count); yyi++) \
00340 (To)[yyi] = (From)[yyi]; \
00341 } \
00342 while (0)
00343 # endif
00344 # endif
00345
00346
00347
00348
00349
00350
00351 # define YYSTACK_RELOCATE(Stack) \
00352 do \
00353 { \
00354 YYSIZE_T yynewbytes; \
00355 YYCOPY (&yyptr->Stack, Stack, yysize); \
00356 Stack = &yyptr->Stack; \
00357 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00358 yyptr += yynewbytes / sizeof (*yyptr); \
00359 } \
00360 while (0)
00361
00362 #endif
00363
00364 #if defined (__STDC__) || defined (__cplusplus)
00365 typedef signed char yysigned_char;
00366 #else
00367 typedef short yysigned_char;
00368 #endif
00369
00370
00371 #define YYFINAL 5
00372
00373 #define YYLAST 1008
00374
00375
00376 #define YYNTOKENS 67
00377
00378 #define YYNNTS 53
00379
00380 #define YYNRULES 155
00381
00382 #define YYNSTATES 293
00383
00384
00385 #define YYUNDEFTOK 2
00386 #define YYMAXUTOK 301
00387
00388 #define YYTRANSLATE(YYX) \
00389 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00390
00391
00392 static const unsigned char yytranslate[] =
00393 {
00394 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00395 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00396 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00397 2, 2, 2, 56, 2, 2, 59, 55, 2, 2,
00398 60, 61, 53, 51, 48, 52, 2, 54, 2, 2,
00399 2, 2, 2, 2, 2, 2, 2, 2, 47, 66,
00400 49, 2, 50, 46, 2, 2, 2, 2, 2, 2,
00401 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00402 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00403 2, 62, 2, 63, 58, 2, 2, 2, 2, 2,
00404 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00405 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00406 2, 2, 2, 64, 2, 65, 2, 2, 2, 2,
00407 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00408 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00409 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00410 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00411 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00412 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00413 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00414 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00415 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00416 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00417 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00418 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00419 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
00420 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00421 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
00422 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
00423 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
00424 45, 57
00425 };
00426
00427 #if YYDEBUG
00428
00429
00430 static const unsigned short yyprhs[] =
00431 {
00432 0, 0, 3, 7, 8, 11, 14, 17, 20, 23,
00433 24, 26, 30, 32, 34, 40, 42, 44, 46, 48,
00434 50, 51, 59, 60, 64, 66, 68, 69, 72, 75,
00435 77, 80, 83, 87, 89, 99, 106, 115, 124, 137,
00436 149, 152, 155, 158, 161, 165, 166, 171, 174, 175,
00437 180, 186, 189, 194, 196, 197, 199, 201, 202, 205,
00438 208, 214, 219, 221, 224, 227, 229, 231, 233, 235,
00439 237, 243, 244, 245, 249, 256, 266, 268, 271, 272,
00440 274, 275, 278, 279, 281, 283, 287, 289, 292, 296,
00441 297, 299, 300, 302, 304, 308, 310, 313, 317, 321,
00442 325, 329, 333, 337, 341, 345, 351, 353, 355, 357,
00443 360, 362, 364, 366, 368, 370, 373, 379, 381, 384,
00444 386, 390, 394, 398, 402, 406, 410, 414, 419, 422,
00445 425, 428, 432, 437, 442, 444, 449, 451, 454, 457,
00446 459, 461, 464, 467, 468, 470, 472, 477, 480, 483,
00447 486, 488, 489, 491, 493, 495
00448 };
00449
00450
00451 static const yysigned_char yyrhs[] =
00452 {
00453 68, 0, -1, 97, 69, 97, -1, -1, 69, 70,
00454 -1, 69, 1, -1, 71, 72, -1, 71, 81, -1,
00455 75, 72, -1, -1, 104, -1, 104, 48, 104, -1,
00456 16, -1, 17, -1, 113, 80, 114, 116, 97, -1,
00457 4, -1, 3, -1, 74, -1, 42, -1, 43, -1,
00458 -1, 34, 76, 73, 60, 99, 115, 97, -1, -1,
00459 79, 78, 5, -1, 54, -1, 45, -1, -1, 80,
00460 82, -1, 80, 1, -1, 96, -1, 117, 97, -1,
00461 117, 97, -1, 113, 80, 114, -1, 95, -1, 22,
00462 60, 104, 115, 97, 113, 87, 97, 114, -1, 25,
00463 60, 104, 115, 97, 82, -1, 26, 97, 82, 25,
00464 60, 104, 115, 97, -1, 27, 60, 4, 37, 4,
00465 115, 97, 82, -1, 27, 60, 86, 117, 97, 104,
00466 117, 97, 86, 115, 97, 82, -1, 27, 60, 86,
00467 117, 97, 117, 97, 86, 115, 97, 82, -1, 28,
00468 81, -1, 29, 81, -1, 32, 81, -1, 36, 81,
00469 -1, 33, 101, 81, -1, -1, 20, 83, 101, 81,
00470 -1, 84, 81, -1, -1, 91, 85, 92, 93, -1,
00471 21, 4, 62, 103, 63, -1, 21, 4, -1, 21,
00472 60, 4, 61, -1, 104, -1, -1, 84, -1, 88,
00473 -1, -1, 88, 89, -1, 88, 1, -1, 23, 90,
00474 118, 97, 80, -1, 24, 118, 97, 80, -1, 7,
00475 -1, 52, 7, -1, 51, 7, -1, 8, -1, 77,
00476 -1, 30, -1, 31, -1, 102, -1, 60, 104, 119,
00477 103, 115, -1, -1, -1, 10, 94, 108, -1, 18,
00478 60, 104, 115, 97, 82, -1, 18, 60, 104, 115,
00479 97, 82, 19, 97, 82, -1, 44, -1, 96, 44,
00480 -1, -1, 96, -1, -1, 49, 109, -1, -1, 100,
00481 -1, 4, -1, 100, 119, 4, -1, 1, -1, 100,
00482 1, -1, 100, 119, 1, -1, -1, 104, -1, -1,
00483 103, -1, 104, -1, 103, 119, 104, -1, 1, -1,
00484 103, 1, -1, 103, 1, 104, -1, 103, 119, 1,
00485 -1, 112, 105, 104, -1, 104, 38, 104, -1, 104,
00486 39, 104, -1, 104, 14, 104, -1, 104, 37, 4,
00487 -1, 104, 107, 104, -1, 104, 46, 104, 47, 104,
00488 -1, 108, -1, 13, -1, 12, -1, 45, 13, -1,
00489 9, -1, 49, -1, 106, -1, 50, -1, 77, -1,
00490 56, 77, -1, 60, 103, 115, 37, 4, -1, 109,
00491 -1, 108, 109, -1, 110, -1, 109, 58, 109, -1,
00492 109, 53, 109, -1, 109, 54, 109, -1, 109, 55,
00493 109, -1, 109, 51, 109, -1, 109, 52, 109, -1,
00494 35, 111, 98, -1, 109, 11, 35, 111, -1, 112,
00495 40, -1, 112, 41, -1, 56, 109, -1, 60, 104,
00496 115, -1, 42, 60, 102, 115, -1, 43, 60, 102,
00497 115, -1, 43, -1, 3, 60, 102, 115, -1, 112,
00498 -1, 40, 112, -1, 41, 112, -1, 7, -1, 8,
00499 -1, 52, 109, -1, 51, 109, -1, -1, 112, -1,
00500 4, -1, 4, 62, 103, 63, -1, 59, 110, -1,
00501 64, 97, -1, 65, 97, -1, 61, -1, -1, 117,
00502 -1, 66, -1, 47, -1, 48, 97, -1
00503 };
00504
00505
00506 static const unsigned short yyrline[] =
00507 {
00508 0, 171, 171, 177, 179, 184, 196, 200, 215, 226,
00509 229, 233, 243, 248, 256, 261, 263, 265, 276, 277,
00510 282, 281, 305, 304, 327, 328, 333, 334, 352, 357,
00511 358, 362, 364, 366, 368, 370, 372, 374, 416, 420,
00512 425, 428, 431, 440, 460, 463, 462, 469, 481, 481,
00513 512, 514, 528, 543, 549, 550, 555, 608, 609, 626,
00514 631, 633, 638, 640, 645, 647, 649, 654, 655, 663,
00515 664, 670, 675, 675, 686, 691, 698, 699, 702, 704,
00516 709, 710, 716, 717, 722, 724, 726, 728, 730, 737,
00517 738, 744, 745, 750, 752, 758, 760, 762, 764, 769,
00518 775, 777, 779, 785, 787, 793, 795, 800, 802, 804,
00519 809, 811, 815, 816, 821, 823, 831, 833, 835, 840,
00520 842, 844, 846, 848, 850, 852, 854, 860, 865, 867,
00521 872, 874, 876, 879, 881, 889, 897, 898, 900, 902,
00522 904, 907, 915, 927, 928, 933, 935, 949, 954, 958,
00523 962, 965, 967, 971, 975, 978
00524 };
00525 #endif
00526
00527 #if YYDEBUG || YYERROR_VERBOSE
00528
00529
00530 static const char *const yytname[] =
00531 {
00532 "$end", "error", "$undefined", "FUNC_CALL", "NAME", "REGEXP", "ERROR",
00533 "YNUMBER", "YSTRING", "RELOP", "IO_OUT", "IO_IN", "ASSIGNOP", "ASSIGN",
00534 "MATCHOP", "CONCAT_OP", "LEX_BEGIN", "LEX_END", "LEX_IF", "LEX_ELSE",
00535 "LEX_RETURN", "LEX_DELETE", "LEX_SWITCH", "LEX_CASE", "LEX_DEFAULT",
00536 "LEX_WHILE", "LEX_DO", "LEX_FOR", "LEX_BREAK", "LEX_CONTINUE",
00537 "LEX_PRINT", "LEX_PRINTF", "LEX_NEXT", "LEX_EXIT", "LEX_FUNCTION",
00538 "LEX_GETLINE", "LEX_NEXTFILE", "LEX_IN", "LEX_AND", "LEX_OR",
00539 "INCREMENT", "DECREMENT", "LEX_BUILTIN", "LEX_LENGTH", "NEWLINE",
00540 "SLASH_BEFORE_EQUAL", "'?'", "':'", "','", "'<'", "'>'", "'+'", "'-'",
00541 "'*'", "'/'", "'%'", "'!'", "UNARY", "'^'", "'$'", "'('", "')'", "'['",
00542 "']'", "'{'", "'}'", "';'", "$accept", "start", "program", "rule",
00543 "pattern", "action", "func_name", "lex_builtin", "function_prologue",
00544 "@1", "regexp", "@2", "a_slash", "statements", "statement_term",
00545 "statement", "@3", "simple_stmt", "@4", "opt_simple_stmt",
00546 "switch_body", "case_statements", "case_statement", "case_value",
00547 "print", "print_expression_list", "output_redir", "@5", "if_statement",
00548 "nls", "opt_nls", "input_redir", "opt_param_list", "param_list",
00549 "opt_exp", "opt_expression_list", "expression_list", "exp",
00550 "assign_operator", "relop_or_less", "a_relop", "common_exp", "simp_exp",
00551 "non_post_simp_exp", "opt_variable", "variable", "l_brace", "r_brace",
00552 "r_paren", "opt_semi", "semi", "colon", "comma", 0
00553 };
00554 #endif
00555
00556 # ifdef YYPRINT
00557
00558
00559 static const unsigned short yytoknum[] =
00560 {
00561 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
00562 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
00563 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
00564 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
00565 295, 296, 297, 298, 299, 300, 63, 58, 44, 60,
00566 62, 43, 45, 42, 47, 37, 33, 301, 94, 36,
00567 40, 41, 91, 93, 123, 125, 59
00568 };
00569 # endif
00570
00571
00572 static const unsigned char yyr1[] =
00573 {
00574 0, 67, 68, 69, 69, 69, 70, 70, 70, 71,
00575 71, 71, 71, 71, 72, 73, 73, 73, 74, 74,
00576 76, 75, 78, 77, 79, 79, 80, 80, 80, 81,
00577 81, 82, 82, 82, 82, 82, 82, 82, 82, 82,
00578 82, 82, 82, 82, 82, 83, 82, 82, 85, 84,
00579 84, 84, 84, 84, 86, 86, 87, 88, 88, 88,
00580 89, 89, 90, 90, 90, 90, 90, 91, 91, 92,
00581 92, 93, 94, 93, 95, 95, 96, 96, 97, 97,
00582 98, 98, 99, 99, 100, 100, 100, 100, 100, 101,
00583 101, 102, 102, 103, 103, 103, 103, 103, 103, 104,
00584 104, 104, 104, 104, 104, 104, 104, 105, 105, 105,
00585 106, 106, 107, 107, 108, 108, 108, 108, 108, 109,
00586 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
00587 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
00588 110, 110, 110, 111, 111, 112, 112, 112, 113, 114,
00589 115, 116, 116, 117, 118, 119
00590 };
00591
00592
00593 static const unsigned char yyr2[] =
00594 {
00595 0, 2, 3, 0, 2, 2, 2, 2, 2, 0,
00596 1, 3, 1, 1, 5, 1, 1, 1, 1, 1,
00597 0, 7, 0, 3, 1, 1, 0, 2, 2, 1,
00598 2, 2, 3, 1, 9, 6, 8, 8, 12, 11,
00599 2, 2, 2, 2, 3, 0, 4, 2, 0, 4,
00600 5, 2, 4, 1, 0, 1, 1, 0, 2, 2,
00601 5, 4, 1, 2, 2, 1, 1, 1, 1, 1,
00602 5, 0, 0, 3, 6, 9, 1, 2, 0, 1,
00603 0, 2, 0, 1, 1, 3, 1, 2, 3, 0,
00604 1, 0, 1, 1, 3, 1, 2, 3, 3, 3,
00605 3, 3, 3, 3, 3, 5, 1, 1, 1, 2,
00606 1, 1, 1, 1, 1, 2, 5, 1, 2, 1,
00607 3, 3, 3, 3, 3, 3, 3, 4, 2, 2,
00608 2, 3, 4, 4, 1, 4, 1, 2, 2, 1,
00609 1, 2, 2, 0, 1, 1, 4, 2, 2, 2,
00610 1, 0, 1, 1, 1, 2
00611 };
00612
00613
00614
00615
00616 static const unsigned char yydefact[] =
00617 {
00618 78, 76, 0, 79, 3, 1, 77, 0, 5, 0,
00619 145, 139, 140, 12, 13, 20, 143, 0, 0, 0,
00620 134, 25, 0, 0, 24, 0, 0, 0, 4, 0,
00621 0, 114, 22, 2, 10, 106, 117, 119, 136, 0,
00622 0, 0, 80, 144, 137, 138, 0, 0, 0, 0,
00623 142, 136, 141, 115, 130, 147, 136, 95, 0, 93,
00624 78, 153, 6, 7, 29, 26, 78, 8, 0, 110,
00625 0, 0, 0, 0, 0, 0, 111, 113, 112, 0,
00626 118, 0, 0, 0, 0, 0, 0, 0, 108, 107,
00627 128, 129, 0, 0, 0, 0, 93, 0, 16, 15,
00628 18, 19, 0, 17, 0, 126, 0, 0, 0, 96,
00629 78, 150, 0, 0, 131, 148, 0, 30, 23, 102,
00630 103, 100, 101, 0, 11, 104, 143, 124, 125, 121,
00631 122, 123, 120, 109, 99, 135, 146, 0, 81, 132,
00632 133, 97, 155, 0, 98, 94, 28, 0, 45, 0,
00633 0, 0, 78, 0, 0, 0, 67, 68, 0, 89,
00634 0, 78, 27, 0, 48, 33, 53, 26, 151, 78,
00635 0, 127, 86, 84, 0, 0, 116, 0, 89, 51,
00636 0, 0, 0, 0, 54, 40, 41, 42, 0, 90,
00637 43, 149, 47, 0, 0, 78, 152, 31, 105, 78,
00638 87, 0, 0, 0, 0, 0, 0, 0, 0, 145,
00639 55, 0, 44, 0, 71, 69, 32, 14, 21, 88,
00640 85, 78, 46, 0, 52, 78, 78, 0, 0, 78,
00641 93, 72, 49, 0, 50, 0, 0, 0, 0, 0,
00642 0, 0, 74, 57, 35, 0, 78, 0, 78, 0,
00643 73, 78, 78, 0, 78, 0, 78, 54, 70, 0,
00644 0, 59, 0, 0, 58, 36, 37, 54, 0, 75,
00645 34, 62, 65, 0, 0, 66, 0, 154, 78, 0,
00646 78, 64, 63, 78, 26, 78, 0, 26, 0, 0,
00647 39, 0, 38
00648 };
00649
00650
00651 static const short yydefgoto[] =
00652 {
00653 -1, 2, 7, 28, 29, 62, 102, 103, 30, 41,
00654 31, 68, 32, 116, 63, 162, 178, 163, 193, 211,
00655 252, 253, 264, 276, 164, 214, 232, 241, 165, 3,
00656 4, 105, 174, 175, 188, 94, 95, 166, 93, 78,
00657 79, 35, 36, 37, 42, 38, 167, 168, 114, 195,
00658 169, 278, 113
00659 };
00660
00661
00662
00663 #define YYPACT_NINF -236
00664 static const short yypact[] =
00665 {
00666 -15, -236, 31, -3, -236, -236, -236, 292, -236, -8,
00667 -2, -236, -236, -236, -236, -236, 26, 26, 26, 4,
00668 6, -236, 934, 934, -236, 876, 262, 717, -236, -16,
00669 3, -236, -236, -236, 769, 934, 480, -236, 554, 656,
00670 717, 33, 49, -236, -236, -236, 656, 656, 934, 905,
00671 41, -1, 41, -236, 41, -236, -236, -236, 117, 695,
00672 -15, -236, -236, -236, -3, -236, -15, -236, 101, -236,
00673 905, 103, 905, 905, 905, 905, -236, -236, -236, 905,
00674 480, 74, 934, 934, 934, 934, 934, 934, -236, -236,
00675 -236, -236, 100, 905, 54, 17, 958, 32, -236, -236,
00676 -236, -236, 56, -236, 934, -236, 54, 54, 695, 905,
00677 -15, -236, 86, 739, -236, -236, 454, -236, -236, 133,
00678 -236, 184, 166, 823, 958, 7, 26, 136, 136, 41,
00679 41, 41, 41, -236, 958, -236, -236, 43, 538, -236,
00680 -236, 958, -236, 121, -236, 958, -236, 68, -236, 2,
00681 69, 70, -15, 71, 61, 61, -236, -236, 61, 905,
00682 61, -15, -236, 61, -236, -236, 958, -236, 73, -15,
00683 905, -236, -236, -236, 54, 123, -236, 905, 905, 81,
00684 131, 905, 905, 580, 793, -236, -236, -236, 61, 958,
00685 -236, -236, -236, 520, 454, -15, -236, -236, 958, -15,
00686 -236, 45, 695, 61, 717, 83, 695, 695, 130, -11,
00687 -236, 73, -236, 717, 147, -236, -236, -236, -236, -236,
00688 -236, -15, -236, 34, -236, -15, -15, 108, 169, -15,
00689 508, -236, -236, 580, -236, 3, 580, 905, 54, 634,
00690 717, 905, 155, -236, -236, 695, -15, 502, -15, 117,
00691 934, -15, -15, 19, -15, 580, -15, 847, -236, 580,
00692 111, -236, 201, 132, -236, -236, -236, 847, 54, -236,
00693 -236, -236, -236, 178, 179, -236, 132, -236, -15, 54,
00694 -15, -236, -236, -15, -236, -15, 580, -236, 346, 580,
00695 -236, 400, -236
00696 };
00697
00698
00699 static const short yypgoto[] =
00700 {
00701 -236, -236, -236, -236, -236, 165, -236, -236, -236, -236,
00702 -24, -236, -236, -150, 152, -178, -236, -165, -236, -235,
00703 -236, -236, -236, -236, -236, -236, -236, -236, -236, -22,
00704 -7, -236, -236, -236, 21, -32, -17, 47, -236, -236,
00705 -236, -41, 66, 175, 76, -14, -5, -181, 52, -236,
00706 9, -71, -130
00707 };
00708
00709
00710
00711
00712
00713 #define YYTABLE_NINF -93
00714 static const short yytable[] =
00715 {
00716 33, 53, 43, 44, 45, 208, 179, 64, 51, 51,
00717 58, 51, 56, 216, 106, 107, -93, 194, 109, 210,
00718 261, 51, 268, 97, 65, 65, 228, -92, 1, 1,
00719 10, 5, 279, 109, 51, 109, 98, 99, 66, 90,
00720 91, 6, 262, 263, 172, 201, 219, 173, 60, 220,
00721 61, 40, 39, 115, 34, 242, -93, -93, 244, 117,
00722 40, -92, 180, -56, 46, 110, 47, 60, 51, 51,
00723 51, 51, 51, 51, 59, 100, 101, 266, -92, 270,
00724 110, 269, 110, -92, -56, 26, 96, 96, 50, 52,
00725 51, 54, 210, 96, 96, 136, 108, 234, 104, 87,
00726 240, 80, 210, 142, -82, 1, 118, 120, 290, 126,
00727 112, 292, 43, 133, 54, 111, 137, 119, 109, 121,
00728 122, 123, 124, 143, 200, 176, 125, 61, 177, 181,
00729 182, 184, 64, 64, 288, 205, 64, 291, 64, 61,
00730 134, 64, 69, 204, 224, 183, 135, -93, 127, 128,
00731 129, 130, 131, 132, 191, 227, 141, 231, 139, 140,
00732 145, 215, 197, 66, 66, 110, 64, 66, 237, 66,
00733 138, 110, 66, 238, 251, 69, 161, 196, 111, 277,
00734 70, 64, 76, 77, -83, 281, 282, 223, 217, 84,
00735 85, 86, 218, 69, 87, 67, 58, 66, 70, 203,
00736 250, 55, 171, 71, 72, 283, 189, 0, 271, 272,
00737 0, 0, 66, 0, 233, 76, 77, 198, 235, 236,
00738 229, 71, 239, 249, 202, 189, 199, 51, 206, 207,
00739 243, 0, 0, 76, 77, 0, 51, 0, 275, 255,
00740 96, 257, 0, 0, 259, 260, 21, 265, 248, 267,
00741 0, 96, 273, 274, 221, 24, 256, 0, 225, 226,
00742 230, 0, 0, 0, 0, 9, 10, 0, 0, 11,
00743 12, 284, 0, 286, 0, 0, 287, 0, 289, 0,
00744 0, 0, 0, 0, 245, 0, 247, 96, 0, 0,
00745 246, 0, -78, 8, 0, 9, 10, 254, 0, 11,
00746 12, 258, 17, 18, 19, 20, 185, 186, 13, 14,
00747 187, 0, 190, 22, 23, 192, 80, 0, 48, 0,
00748 280, 26, 49, 0, 0, 0, 15, 16, 0, 0,
00749 0, 285, 17, 18, 19, 20, 1, 21, 0, 0,
00750 212, 0, 0, 22, 23, 0, 24, 146, 25, 9,
00751 10, 26, 27, 11, 12, 222, -9, 0, -9, 0,
00752 0, 0, 0, 0, 147, 0, 148, 149, 150, -61,
00753 -61, 151, 152, 153, 154, 155, 156, 157, 158, 159,
00754 0, 16, 160, 0, 0, 0, 17, 18, 19, 20,
00755 -61, 21, 0, 0, 0, 0, 0, 22, 23, 0,
00756 24, 146, 25, 9, 10, 26, 27, 11, 12, 0,
00757 60, -61, 61, 0, 0, 0, 0, 0, 147, 0,
00758 148, 149, 150, -60, -60, 151, 152, 153, 154, 155,
00759 156, 157, 158, 159, 0, 16, 160, 0, 0, 0,
00760 17, 18, 19, 20, -60, 21, 0, 0, 0, 0,
00761 0, 22, 23, 0, 24, 146, 25, 9, 10, 26,
00762 27, 11, 12, 0, 60, -60, 61, 0, 0, 0,
00763 0, 0, 147, 0, 148, 149, 150, 0, 0, 151,
00764 152, 153, 154, 155, 156, 157, 158, 159, 0, 16,
00765 160, 81, 0, 0, 17, 18, 19, 20, 0, 21,
00766 0, 0, 0, 0, 0, 22, 23, 0, 24, 0,
00767 25, 69, 0, 26, 27, 0, 70, 69, 60, 161,
00768 61, 57, 70, 9, 10, 0, 0, 11, 12, 0,
00769 -91, 82, 83, 84, 85, 86, 0, 0, 87, 71,
00770 72, 73, 0, 0, 0, 71, 72, 73, 74, -93,
00771 0, 76, 77, 0, 74, 16, 110, 76, 77, 0,
00772 17, 18, 19, 20, -91, 21, 88, 89, 61, 111,
00773 0, 22, 23, 0, 24, 0, 25, 0, 0, 26,
00774 213, -91, 0, 9, 10, 0, -91, 11, 12, 82,
00775 83, 84, 85, 86, 90, 91, 87, 0, 147, 92,
00776 148, 149, 150, 0, 0, 151, 152, 153, 154, 155,
00777 156, 157, 158, 159, 0, 16, 160, 0, 0, 0,
00778 17, 18, 19, 20, 0, 21, 0, 0, 0, 0,
00779 0, 22, 23, 0, 24, 0, 25, 9, 10, 26,
00780 27, 11, 12, 0, 60, 0, 61, 0, 0, 0,
00781 0, 0, 0, 0, 0, 0, 0, 57, 0, 9,
00782 10, 0, 0, 11, 12, 0, 0, 0, 0, 16,
00783 0, 0, 0, 0, 17, 18, 19, 20, 0, 21,
00784 0, 0, 0, 0, 0, 22, 23, 0, 24, 0,
00785 25, 16, 0, 26, 27, 0, 17, 18, 19, 20,
00786 61, 21, 0, 0, 69, 0, 0, 22, 23, 70,
00787 24, 0, 25, 0, 0, 26, 27, -91, 57, 0,
00788 9, 10, 0, 0, 11, 12, 0, 0, 0, 0,
00789 0, 0, 71, 72, 73, 0, 0, 0, 0, 0,
00790 144, 74, 9, 10, 76, 77, 11, 12, 0, 0,
00791 0, 0, 16, 0, 0, 0, 111, 17, 18, 19,
00792 20, 0, 21, 0, 0, 0, 0, 0, 22, 23,
00793 0, 24, 0, 25, 16, 0, 26, 27, 69, 17,
00794 18, 19, 20, 70, 21, 0, 0, 0, 0, 0,
00795 22, 23, 0, 24, 0, 25, 9, 209, 26, 27,
00796 11, 12, 0, 0, 0, 0, 71, 72, 73, 0,
00797 0, 0, 0, 0, 149, 74, 0, 75, 76, 77,
00798 0, 0, 0, 156, 157, 0, 0, 0, 16, 0,
00799 0, 0, 69, 17, 18, 19, 20, 70, 21, 0,
00800 0, 0, 0, 0, 22, 23, 0, 24, 0, 25,
00801 9, 10, 26, 27, 11, 12, 0, 0, 0, 0,
00802 71, 72, 73, 0, 0, 0, 0, 0, 149, 74,
00803 170, 0, 76, 77, 0, 0, 0, 156, 157, 9,
00804 10, 0, 16, 11, 12, 0, 0, 17, 18, 19,
00805 20, 0, 21, 0, 0, 0, 0, 0, 22, 23,
00806 0, 24, 0, 25, 0, 0, 26, 27, 9, 10,
00807 0, 16, 11, 12, 0, 0, 17, 18, 19, 20,
00808 0, 21, 0, 0, 0, 0, 0, 22, 23, 0,
00809 24, 0, 48, 0, 0, 26, 49, 9, 10, 0,
00810 16, 11, 12, 0, 0, 17, 18, 19, 20, 0,
00811 21, 0, 0, 0, 0, 0, 22, 23, 0, 24,
00812 0, 25, 0, 0, 26, 27, 0, 69, 0, 16,
00813 0, 0, 70, 0, 17, 18, 19, 20, 0, 0,
00814 0, 0, 0, 0, 0, 22, 23, 0, 0, 0,
00815 48, 0, 0, 26, 49, 71, 72, 73, 0, 0,
00816 0, 0, 0, 0, 74, 0, 0, 76, 77
00817 };
00818
00819 static const short yycheck[] =
00820 {
00821 7, 25, 16, 17, 18, 183, 4, 29, 22, 23,
00822 27, 25, 26, 194, 46, 47, 9, 167, 1, 184,
00823 1, 35, 257, 40, 29, 30, 37, 10, 44, 44,
00824 4, 0, 267, 1, 48, 1, 3, 4, 29, 40,
00825 41, 44, 23, 24, 1, 175, 1, 4, 64, 4,
00826 66, 62, 60, 60, 7, 233, 49, 50, 236, 66,
00827 62, 44, 60, 44, 60, 48, 60, 64, 82, 83,
00828 84, 85, 86, 87, 27, 42, 43, 255, 61, 260,
00829 48, 259, 48, 66, 65, 59, 39, 40, 22, 23,
00830 104, 25, 257, 46, 47, 63, 49, 63, 49, 58,
00831 230, 35, 267, 110, 61, 44, 5, 4, 286, 35,
00832 58, 289, 126, 13, 48, 61, 60, 70, 1, 72,
00833 73, 74, 75, 37, 1, 4, 79, 66, 60, 60,
00834 60, 60, 154, 155, 284, 4, 158, 287, 160, 66,
00835 93, 163, 9, 62, 61, 152, 94, 14, 82, 83,
00836 84, 85, 86, 87, 161, 25, 109, 10, 106, 107,
00837 113, 193, 169, 154, 155, 48, 188, 158, 60, 160,
00838 104, 48, 163, 4, 19, 9, 65, 168, 61, 47,
00839 14, 203, 49, 50, 61, 7, 7, 204, 195, 53,
00840 54, 55, 199, 9, 58, 30, 213, 188, 14, 178,
00841 241, 26, 126, 37, 38, 276, 159, -1, 7, 8,
00842 -1, -1, 203, -1, 221, 49, 50, 170, 225, 226,
00843 211, 37, 229, 240, 177, 178, 174, 241, 181, 182,
00844 235, -1, -1, 49, 50, -1, 250, -1, 262, 246,
00845 193, 248, -1, -1, 251, 252, 45, 254, 239, 256,
00846 -1, 204, 51, 52, 202, 54, 247, -1, 206, 207,
00847 213, -1, -1, -1, -1, 3, 4, -1, -1, 7,
00848 8, 278, -1, 280, -1, -1, 283, -1, 285, -1,
00849 -1, -1, -1, -1, 237, -1, 239, 240, -1, -1,
00850 238, -1, 0, 1, -1, 3, 4, 245, -1, 7,
00851 8, 249, 40, 41, 42, 43, 154, 155, 16, 17,
00852 158, -1, 160, 51, 52, 163, 250, -1, 56, -1,
00853 268, 59, 60, -1, -1, -1, 34, 35, -1, -1,
00854 -1, 279, 40, 41, 42, 43, 44, 45, -1, -1,
00855 188, -1, -1, 51, 52, -1, 54, 1, 56, 3,
00856 4, 59, 60, 7, 8, 203, 64, -1, 66, -1,
00857 -1, -1, -1, -1, 18, -1, 20, 21, 22, 23,
00858 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
00859 -1, 35, 36, -1, -1, -1, 40, 41, 42, 43,
00860 44, 45, -1, -1, -1, -1, -1, 51, 52, -1,
00861 54, 1, 56, 3, 4, 59, 60, 7, 8, -1,
00862 64, 65, 66, -1, -1, -1, -1, -1, 18, -1,
00863 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
00864 30, 31, 32, 33, -1, 35, 36, -1, -1, -1,
00865 40, 41, 42, 43, 44, 45, -1, -1, -1, -1,
00866 -1, 51, 52, -1, 54, 1, 56, 3, 4, 59,
00867 60, 7, 8, -1, 64, 65, 66, -1, -1, -1,
00868 -1, -1, 18, -1, 20, 21, 22, -1, -1, 25,
00869 26, 27, 28, 29, 30, 31, 32, 33, -1, 35,
00870 36, 11, -1, -1, 40, 41, 42, 43, -1, 45,
00871 -1, -1, -1, -1, -1, 51, 52, -1, 54, -1,
00872 56, 9, -1, 59, 60, -1, 14, 9, 64, 65,
00873 66, 1, 14, 3, 4, -1, -1, 7, 8, -1,
00874 10, 51, 52, 53, 54, 55, -1, -1, 58, 37,
00875 38, 39, -1, -1, -1, 37, 38, 39, 46, 11,
00876 -1, 49, 50, -1, 46, 35, 48, 49, 50, -1,
00877 40, 41, 42, 43, 44, 45, 12, 13, 66, 61,
00878 -1, 51, 52, -1, 54, -1, 56, -1, -1, 59,
00879 60, 61, -1, 3, 4, -1, 66, 7, 8, 51,
00880 52, 53, 54, 55, 40, 41, 58, -1, 18, 45,
00881 20, 21, 22, -1, -1, 25, 26, 27, 28, 29,
00882 30, 31, 32, 33, -1, 35, 36, -1, -1, -1,
00883 40, 41, 42, 43, -1, 45, -1, -1, -1, -1,
00884 -1, 51, 52, -1, 54, -1, 56, 3, 4, 59,
00885 60, 7, 8, -1, 64, -1, 66, -1, -1, -1,
00886 -1, -1, -1, -1, -1, -1, -1, 1, -1, 3,
00887 4, -1, -1, 7, 8, -1, -1, -1, -1, 35,
00888 -1, -1, -1, -1, 40, 41, 42, 43, -1, 45,
00889 -1, -1, -1, -1, -1, 51, 52, -1, 54, -1,
00890 56, 35, -1, 59, 60, -1, 40, 41, 42, 43,
00891 66, 45, -1, -1, 9, -1, -1, 51, 52, 14,
00892 54, -1, 56, -1, -1, 59, 60, 61, 1, -1,
00893 3, 4, -1, -1, 7, 8, -1, -1, -1, -1,
00894 -1, -1, 37, 38, 39, -1, -1, -1, -1, -1,
00895 1, 46, 3, 4, 49, 50, 7, 8, -1, -1,
00896 -1, -1, 35, -1, -1, -1, 61, 40, 41, 42,
00897 43, -1, 45, -1, -1, -1, -1, -1, 51, 52,
00898 -1, 54, -1, 56, 35, -1, 59, 60, 9, 40,
00899 41, 42, 43, 14, 45, -1, -1, -1, -1, -1,
00900 51, 52, -1, 54, -1, 56, 3, 4, 59, 60,
00901 7, 8, -1, -1, -1, -1, 37, 38, 39, -1,
00902 -1, -1, -1, -1, 21, 46, -1, 48, 49, 50,
00903 -1, -1, -1, 30, 31, -1, -1, -1, 35, -1,
00904 -1, -1, 9, 40, 41, 42, 43, 14, 45, -1,
00905 -1, -1, -1, -1, 51, 52, -1, 54, -1, 56,
00906 3, 4, 59, 60, 7, 8, -1, -1, -1, -1,
00907 37, 38, 39, -1, -1, -1, -1, -1, 21, 46,
00908 47, -1, 49, 50, -1, -1, -1, 30, 31, 3,
00909 4, -1, 35, 7, 8, -1, -1, 40, 41, 42,
00910 43, -1, 45, -1, -1, -1, -1, -1, 51, 52,
00911 -1, 54, -1, 56, -1, -1, 59, 60, 3, 4,
00912 -1, 35, 7, 8, -1, -1, 40, 41, 42, 43,
00913 -1, 45, -1, -1, -1, -1, -1, 51, 52, -1,
00914 54, -1, 56, -1, -1, 59, 60, 3, 4, -1,
00915 35, 7, 8, -1, -1, 40, 41, 42, 43, -1,
00916 45, -1, -1, -1, -1, -1, 51, 52, -1, 54,
00917 -1, 56, -1, -1, 59, 60, -1, 9, -1, 35,
00918 -1, -1, 14, -1, 40, 41, 42, 43, -1, -1,
00919 -1, -1, -1, -1, -1, 51, 52, -1, -1, -1,
00920 56, -1, -1, 59, 60, 37, 38, 39, -1, -1,
00921 -1, -1, -1, -1, 46, -1, -1, 49, 50
00922 };
00923
00924
00925
00926 static const unsigned char yystos[] =
00927 {
00928 0, 44, 68, 96, 97, 0, 44, 69, 1, 3,
00929 4, 7, 8, 16, 17, 34, 35, 40, 41, 42,
00930 43, 45, 51, 52, 54, 56, 59, 60, 70, 71,
00931 75, 77, 79, 97, 104, 108, 109, 110, 112, 60,
00932 62, 76, 111, 112, 112, 112, 60, 60, 56, 60,
00933 109, 112, 109, 77, 109, 110, 112, 1, 103, 104,
00934 64, 66, 72, 81, 96, 113, 117, 72, 78, 9,
00935 14, 37, 38, 39, 46, 48, 49, 50, 106, 107,
00936 109, 11, 51, 52, 53, 54, 55, 58, 12, 13,
00937 40, 41, 45, 105, 102, 103, 104, 103, 3, 4,
00938 42, 43, 73, 74, 49, 98, 102, 102, 104, 1,
00939 48, 61, 115, 119, 115, 97, 80, 97, 5, 104,
00940 4, 104, 104, 104, 104, 104, 35, 109, 109, 109,
00941 109, 109, 109, 13, 104, 115, 63, 60, 109, 115,
00942 115, 104, 97, 37, 1, 104, 1, 18, 20, 21,
00943 22, 25, 26, 27, 28, 29, 30, 31, 32, 33,
00944 36, 65, 82, 84, 91, 95, 104, 113, 114, 117,
00945 47, 111, 1, 4, 99, 100, 4, 60, 83, 4,
00946 60, 60, 60, 97, 60, 81, 81, 81, 101, 104,
00947 81, 97, 81, 85, 80, 116, 117, 97, 104, 115,
00948 1, 119, 104, 101, 62, 4, 104, 104, 82, 4,
00949 84, 86, 81, 60, 92, 102, 114, 97, 97, 1,
00950 4, 115, 81, 103, 61, 115, 115, 25, 37, 117,
00951 104, 10, 93, 97, 63, 97, 97, 60, 4, 97,
00952 119, 94, 82, 113, 82, 104, 115, 104, 117, 103,
00953 108, 19, 87, 88, 115, 97, 117, 97, 115, 97,
00954 97, 1, 23, 24, 89, 97, 82, 97, 86, 82,
00955 114, 7, 8, 51, 52, 77, 90, 47, 118, 86,
00956 115, 7, 7, 118, 97, 115, 97, 97, 80, 97,
00957 82, 80, 82
00958 };
00959
00960 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
00961 # define YYSIZE_T __SIZE_TYPE__
00962 #endif
00963 #if ! defined (YYSIZE_T) && defined (size_t)
00964 # define YYSIZE_T size_t
00965 #endif
00966 #if ! defined (YYSIZE_T)
00967 # if defined (__STDC__) || defined (__cplusplus)
00968 # include <stddef.h>
00969 # define YYSIZE_T size_t
00970 # endif
00971 #endif
00972 #if ! defined (YYSIZE_T)
00973 # define YYSIZE_T unsigned int
00974 #endif
00975
00976 #define yyerrok (yyerrstatus = 0)
00977 #define yyclearin (yychar = YYEMPTY)
00978 #define YYEMPTY (-2)
00979 #define YYEOF 0
00980
00981 #define YYACCEPT goto yyacceptlab
00982 #define YYABORT goto yyabortlab
00983 #define YYERROR goto yyerrlab1
00984
00985
00986
00987
00988
00989 #define YYFAIL goto yyerrlab
00990
00991 #define YYRECOVERING() (!!yyerrstatus)
00992
00993 #define YYBACKUP(Token, Value) \
00994 do \
00995 if (yychar == YYEMPTY && yylen == 1) \
00996 { \
00997 yychar = (Token); \
00998 yylval = (Value); \
00999 yytoken = YYTRANSLATE (yychar); \
01000 YYPOPSTACK; \
01001 goto yybackup; \
01002 } \
01003 else \
01004 { \
01005 yyerror ("syntax error: cannot back up");\
01006 YYERROR; \
01007 } \
01008 while (0)
01009
01010 #define YYTERROR 1
01011 #define YYERRCODE 256
01012
01013
01014
01015
01016 #ifndef YYLLOC_DEFAULT
01017 # define YYLLOC_DEFAULT(Current, Rhs, N) \
01018 Current.first_line = Rhs[1].first_line; \
01019 Current.first_column = Rhs[1].first_column; \
01020 Current.last_line = Rhs[N].last_line; \
01021 Current.last_column = Rhs[N].last_column;
01022 #endif
01023
01024
01025
01026 #ifdef YYLEX_PARAM
01027 # define YYLEX yylex (YYLEX_PARAM)
01028 #else
01029 # define YYLEX yylex ()
01030 #endif
01031
01032
01033 #if YYDEBUG
01034
01035 # ifndef YYFPRINTF
01036 # include <stdio.h>
01037 # define YYFPRINTF fprintf
01038 # endif
01039
01040 # define YYDPRINTF(Args) \
01041 do { \
01042 if (yydebug) \
01043 YYFPRINTF Args; \
01044 } while (0)
01045
01046 # define YYDSYMPRINT(Args) \
01047 do { \
01048 if (yydebug) \
01049 yysymprint Args; \
01050 } while (0)
01051
01052 # define YYDSYMPRINTF(Title, Token, Value, Location) \
01053 do { \
01054 if (yydebug) \
01055 { \
01056 YYFPRINTF (stderr, "%s ", Title); \
01057 yysymprint (stderr, \
01058 Token, Value); \
01059 YYFPRINTF (stderr, "\n"); \
01060 } \
01061 } while (0)
01062
01063
01064
01065
01066
01067
01068 #if defined (__STDC__) || defined (__cplusplus)
01069 static void
01070 yy_stack_print (short *bottom, short *top)
01071 #else
01072 static void
01073 yy_stack_print (bottom, top)
01074 short *bottom;
01075 short *top;
01076 #endif
01077 {
01078 YYFPRINTF (stderr, "Stack now");
01079 for (; bottom <= top; ++bottom)
01080 YYFPRINTF (stderr, " %d", *bottom);
01081 YYFPRINTF (stderr, "\n");
01082 }
01083
01084 # define YY_STACK_PRINT(Bottom, Top) \
01085 do { \
01086 if (yydebug) \
01087 yy_stack_print ((Bottom), (Top)); \
01088 } while (0)
01089
01090
01091
01092
01093
01094
01095 #if defined (__STDC__) || defined (__cplusplus)
01096 static void
01097 yy_reduce_print (int yyrule)
01098 #else
01099 static void
01100 yy_reduce_print (yyrule)
01101 int yyrule;
01102 #endif
01103 {
01104 int yyi;
01105 unsigned int yylineno = yyrline[yyrule];
01106 YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
01107 yyrule - 1, yylineno);
01108
01109 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
01110 YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
01111 YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
01112 }
01113
01114 # define YY_REDUCE_PRINT(Rule) \
01115 do { \
01116 if (yydebug) \
01117 yy_reduce_print (Rule); \
01118 } while (0)
01119
01120
01121
01122 int yydebug;
01123 #else
01124 # define YYDPRINTF(Args)
01125 # define YYDSYMPRINT(Args)
01126 # define YYDSYMPRINTF(Title, Token, Value, Location)
01127