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
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 #define YYBISON 1
00048
00049
00050 #define YYBISON_VERSION "2.3"
00051
00052
00053 #define YYSKELETON_NAME "yacc.c"
00054
00055
00056 #define YYPURE 0
00057
00058
00059 #define YYLSP_NEEDED 0
00060
00061
00062
00063
00064 #ifndef YYTOKENTYPE
00065 # define YYTOKENTYPE
00066
00067
00068 enum yytokentype {
00069 vSYMBOL_ID = 258,
00070 vNUMBER_ID = 259,
00071 vDELAY_ID = 260,
00072 vALWAYS = 261,
00073 vAND = 262,
00074 vASSIGN = 263,
00075 vBEGIN = 264,
00076 vCASE = 265,
00077 vDEFAULT = 266,
00078 vDEFINE = 267,
00079 vELSE = 268,
00080 vEND = 269,
00081 vENDCASE = 270,
00082 vENDMODULE = 271,
00083 vIF = 272,
00084 vINOUT = 273,
00085 vINPUT = 274,
00086 vMODULE = 275,
00087 vNAND = 276,
00088 vNEGEDGE = 277,
00089 vNOR = 278,
00090 vNOT = 279,
00091 vOR = 280,
00092 vOUTPUT = 281,
00093 vPARAMETER = 282,
00094 vPOSEDGE = 283,
00095 vREG = 284,
00096 vWIRE = 285,
00097 vXNOR = 286,
00098 vXOR = 287,
00099 vDEFPARAM = 288,
00100 voANDAND = 289,
00101 voOROR = 290,
00102 voLTE = 291,
00103 voGTE = 292,
00104 voSLEFT = 293,
00105 voSRIGHT = 294,
00106 voEQUAL = 295,
00107 voNOTEQUAL = 296,
00108 voCASEEQUAL = 297,
00109 voCASENOTEQUAL = 298,
00110 voXNOR = 299,
00111 voNAND = 300,
00112 voNOR = 301,
00113 vNOT_SUPPORT = 302,
00114 LOWER_THAN_ELSE = 303
00115 };
00116 #endif
00117
00118 #define vSYMBOL_ID 258
00119 #define vNUMBER_ID 259
00120 #define vDELAY_ID 260
00121 #define vALWAYS 261
00122 #define vAND 262
00123 #define vASSIGN 263
00124 #define vBEGIN 264
00125 #define vCASE 265
00126 #define vDEFAULT 266
00127 #define vDEFINE 267
00128 #define vELSE 268
00129 #define vEND 269
00130 #define vENDCASE 270
00131 #define vENDMODULE 271
00132 #define vIF 272
00133 #define vINOUT 273
00134 #define vINPUT 274
00135 #define vMODULE 275
00136 #define vNAND 276
00137 #define vNEGEDGE 277
00138 #define vNOR 278
00139 #define vNOT 279
00140 #define vOR 280
00141 #define vOUTPUT 281
00142 #define vPARAMETER 282
00143 #define vPOSEDGE 283
00144 #define vREG 284
00145 #define vWIRE 285
00146 #define vXNOR 286
00147 #define vXOR 287
00148 #define vDEFPARAM 288
00149 #define voANDAND 289
00150 #define voOROR 290
00151 #define voLTE 291
00152 #define voGTE 292
00153 #define voSLEFT 293
00154 #define voSRIGHT 294
00155 #define voEQUAL 295
00156 #define voNOTEQUAL 296
00157 #define voCASEEQUAL 297
00158 #define voCASENOTEQUAL 298
00159 #define voXNOR 299
00160 #define voNAND 300
00161 #define voNOR 301
00162 #define vNOT_SUPPORT 302
00163 #define LOWER_THAN_ELSE 303
00164
00165
00166
00167
00168
00169 #line 1 "SRC/verilog_bison.y"
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195 #include <stdlib.h>
00196 #include <stdio.h>
00197 #include <string.h>
00198 #include "types.h"
00199 #include "parse_making_ast.h"
00200
00201 #define PARSE {printf("here\n");}
00202
00203 #ifndef YYLINENO
00204 int yylineno;
00205 #define YYLINENO yylineno
00206 #else
00207 extern int yylineno;
00208 #endif
00209
00210 void yyerror(const char *str);
00211 int yywrap();
00212 int yyparse();
00213 int yylex(void);
00214
00215
00216 void yyerror(const char *str)
00217 {
00218 fprintf(stderr,"error in parsing: %s - on line number %d\n",str, yylineno);
00219 exit(-1);
00220 }
00221
00222
00223 int yywrap()
00224 {
00225 return 1;
00226 }
00227
00228
00229
00230
00231 #ifndef YYDEBUG
00232 # define YYDEBUG 1
00233 #endif
00234
00235
00236 #ifdef YYERROR_VERBOSE
00237 # undef YYERROR_VERBOSE
00238 # define YYERROR_VERBOSE 1
00239 #else
00240 # define YYERROR_VERBOSE 0
00241 #endif
00242
00243
00244 #ifndef YYTOKEN_TABLE
00245 # define YYTOKEN_TABLE 0
00246 #endif
00247
00248 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
00249 typedef union YYSTYPE
00250 #line 61 "SRC/verilog_bison.y"
00251 {
00252 char *id_name;
00253 char *num_value;
00254 ast_node_t *node;
00255 }
00256
00257 #line 258 "SRC/verilog_bison.c"
00258 YYSTYPE;
00259 # define yystype YYSTYPE
00260 # define YYSTYPE_IS_DECLARED 1
00261 # define YYSTYPE_IS_TRIVIAL 1
00262 #endif
00263
00264
00265
00266
00267
00268
00269
00270 #line 271 "SRC/verilog_bison.c"
00271
00272 #ifdef short
00273 # undef short
00274 #endif
00275
00276 #ifdef YYTYPE_UINT8
00277 typedef YYTYPE_UINT8 yytype_uint8;
00278 #else
00279 typedef unsigned char yytype_uint8;
00280 #endif
00281
00282 #ifdef YYTYPE_INT8
00283 typedef YYTYPE_INT8 yytype_int8;
00284 #elif (defined __STDC__ || defined __C99__FUNC__ \
00285 || defined __cplusplus || defined _MSC_VER)
00286 typedef signed char yytype_int8;
00287 #else
00288 typedef short int yytype_int8;
00289 #endif
00290
00291 #ifdef YYTYPE_UINT16
00292 typedef YYTYPE_UINT16 yytype_uint16;
00293 #else
00294 typedef unsigned short int yytype_uint16;
00295 #endif
00296
00297 #ifdef YYTYPE_INT16
00298 typedef YYTYPE_INT16 yytype_int16;
00299 #else
00300 typedef short int yytype_int16;
00301 #endif
00302
00303 #ifndef YYSIZE_T
00304 # ifdef __SIZE_TYPE__
00305 # define YYSIZE_T __SIZE_TYPE__
00306 # elif defined size_t
00307 # define YYSIZE_T size_t
00308 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
00309 || defined __cplusplus || defined _MSC_VER)
00310 # include <stddef.h>
00311 # define YYSIZE_T size_t
00312 # else
00313 # define YYSIZE_T unsigned int
00314 # endif
00315 #endif
00316
00317 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
00318
00319 #ifndef YY_
00320 # if defined YYENABLE_NLS && YYENABLE_NLS
00321 # if ENABLE_NLS
00322 # include <libintl.h>
00323 # define YY_(msgid) dgettext ("bison-runtime", msgid)
00324 # endif
00325 # endif
00326 # ifndef YY_
00327 # define YY_(msgid) msgid
00328 # endif
00329 #endif
00330
00331
00332 #if ! defined lint || defined __GNUC__
00333 # define YYUSE(e) ((void) (e))
00334 #else
00335 # define YYUSE(e)
00336 #endif
00337
00338
00339 #ifndef lint
00340 # define YYID(n) (n)
00341 #else
00342 #if (defined __STDC__ || defined __C99__FUNC__ \
00343 || defined __cplusplus || defined _MSC_VER)
00344 static int
00345 YYID (int i)
00346 #else
00347 static int
00348 YYID (i)
00349 int i;
00350 #endif
00351 {
00352 return i;
00353 }
00354 #endif
00355
00356 #if ! defined yyoverflow || YYERROR_VERBOSE
00357
00358
00359
00360 # ifdef YYSTACK_USE_ALLOCA
00361 # if YYSTACK_USE_ALLOCA
00362 # ifdef __GNUC__
00363 # define YYSTACK_ALLOC __builtin_alloca
00364 # elif defined __BUILTIN_VA_ARG_INCR
00365 # include <alloca.h>
00366 # elif defined _AIX
00367 # define YYSTACK_ALLOC __alloca
00368 # elif defined _MSC_VER
00369 # include <malloc.h>
00370 # define alloca _alloca
00371 # else
00372 # define YYSTACK_ALLOC alloca
00373 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00374 || defined __cplusplus || defined _MSC_VER)
00375 # include <stdlib.h>
00376 # ifndef _STDLIB_H
00377 # define _STDLIB_H 1
00378 # endif
00379 # endif
00380 # endif
00381 # endif
00382 # endif
00383
00384 # ifdef YYSTACK_ALLOC
00385
00386 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
00387 # ifndef YYSTACK_ALLOC_MAXIMUM
00388
00389
00390
00391
00392 # define YYSTACK_ALLOC_MAXIMUM 4032
00393 # endif
00394 # else
00395 # define YYSTACK_ALLOC YYMALLOC
00396 # define YYSTACK_FREE YYFREE
00397 # ifndef YYSTACK_ALLOC_MAXIMUM
00398 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
00399 # endif
00400 # if (defined __cplusplus && ! defined _STDLIB_H \
00401 && ! ((defined YYMALLOC || defined malloc) \
00402 && (defined YYFREE || defined free)))
00403 # include <stdlib.h>
00404 # ifndef _STDLIB_H
00405 # define _STDLIB_H 1
00406 # endif
00407 # endif
00408 # ifndef YYMALLOC
00409 # define YYMALLOC malloc
00410 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00411 || defined __cplusplus || defined _MSC_VER)
00412 void *malloc (YYSIZE_T);
00413 # endif
00414 # endif
00415 # ifndef YYFREE
00416 # define YYFREE free
00417 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00418 || defined __cplusplus || defined _MSC_VER)
00419 void free (void *);
00420 # endif
00421 # endif
00422 # endif
00423 #endif
00424
00425
00426 #if (! defined yyoverflow \
00427 && (! defined __cplusplus \
00428 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
00429
00430
00431 union yyalloc
00432 {
00433 yytype_int16 yyss;
00434 YYSTYPE yyvs;
00435 };
00436
00437
00438 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00439
00440
00441
00442 # define YYSTACK_BYTES(N) \
00443 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
00444 + YYSTACK_GAP_MAXIMUM)
00445
00446
00447
00448 # ifndef YYCOPY
00449 # if defined __GNUC__ && 1 < __GNUC__
00450 # define YYCOPY(To, From, Count) \
00451 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00452 # else
00453 # define YYCOPY(To, From, Count) \
00454 do \
00455 { \
00456 YYSIZE_T yyi; \
00457 for (yyi = 0; yyi < (Count); yyi++) \
00458 (To)[yyi] = (From)[yyi]; \
00459 } \
00460 while (YYID (0))
00461 # endif
00462 # endif
00463
00464
00465
00466
00467
00468
00469 # define YYSTACK_RELOCATE(Stack) \
00470 do \
00471 { \
00472 YYSIZE_T yynewbytes; \
00473 YYCOPY (&yyptr->Stack, Stack, yysize); \
00474 Stack = &yyptr->Stack; \
00475 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00476 yyptr += yynewbytes / sizeof (*yyptr); \
00477 } \
00478 while (YYID (0))
00479
00480 #endif
00481
00482
00483 #define YYFINAL 9
00484
00485 #define YYLAST 1279
00486
00487
00488 #define YYNTOKENS 74
00489
00490 #define YYNNTS 35
00491
00492 #define YYNRULES 123
00493
00494 #define YYNSTATES 289
00495
00496
00497 #define YYUNDEFTOK 2
00498 #define YYMAXUTOK 303
00499
00500 #define YYTRANSLATE(YYX) \
00501 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00502
00503
00504 static const yytype_uint8 yytranslate[] =
00505 {
00506 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00507 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00508 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00509 2, 2, 2, 67, 2, 2, 2, 59, 52, 2,
00510 60, 61, 57, 55, 70, 56, 72, 58, 2, 2,
00511 2, 2, 2, 2, 2, 2, 2, 2, 49, 69,
00512 53, 71, 54, 48, 73, 2, 2, 2, 2, 2,
00513 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00514 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00515 2, 64, 2, 65, 51, 2, 2, 2, 2, 2,
00516 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00517 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00518 2, 2, 2, 62, 50, 63, 66, 2, 2, 2,
00519 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00520 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00521 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00522 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00523 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00524 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00525 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00526 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00527 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00528 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00529 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00530 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00531 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
00532 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00533 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
00534 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
00535 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
00536 45, 46, 47, 68
00537 };
00538
00539 #if YYDEBUG
00540
00541
00542 static const yytype_uint16 yyprhs[] =
00543 {
00544 0, 0, 3, 5, 8, 11, 13, 15, 19, 28,
00545 38, 46, 49, 51, 53, 55, 57, 59, 61, 63,
00546 65, 67, 69, 73, 77, 81, 85, 89, 93, 97,
00547 99, 101, 108, 120, 129, 133, 137, 141, 145, 149,
00548 153, 157, 161, 165, 174, 182, 189, 195, 198, 204,
00549 209, 213, 215, 221, 223, 227, 229, 232, 235, 241,
00550 249, 256, 258, 262, 267, 271, 276, 279, 281, 285,
00551 289, 293, 296, 298, 303, 307, 309, 311, 314, 317,
00552 319, 322, 325, 328, 331, 334, 337, 340, 343, 346,
00553 349, 353, 357, 361, 365, 369, 373, 377, 381, 385,
00554 389, 393, 397, 401, 405, 409, 413, 417, 421, 425,
00555 429, 433, 437, 441, 447, 451, 458, 465, 467, 469,
00556 474, 481, 485, 489
00557 };
00558
00559
00560 static const yytype_int8 yyrhs[] =
00561 {
00562 75, 0, -1, 76, -1, 76, 78, -1, 76, 77,
00563 -1, 78, -1, 77, -1, 12, 3, 4, -1, 20,
00564 3, 60, 86, 61, 69, 79, 16, -1, 20, 3,
00565 60, 86, 70, 61, 69, 79, 16, -1, 20, 3,
00566 60, 61, 69, 79, 16, -1, 79, 80, -1, 80,
00567 -1, 81, -1, 82, -1, 83, -1, 84, -1, 85,
00568 -1, 88, -1, 89, -1, 91, -1, 95, -1, 27,
00569 86, 69, -1, 19, 86, 69, -1, 26, 86, 69,
00570 -1, 18, 86, 69, -1, 30, 86, 69, -1, 29,
00571 86, 69, -1, 86, 70, 87, -1, 87, -1, 3,
00572 -1, 64, 106, 49, 106, 65, 3, -1, 64, 106,
00573 49, 106, 65, 3, 64, 106, 49, 106, 65, -1,
00574 64, 106, 49, 106, 65, 3, 71, 107, -1, 3,
00575 71, 107, -1, 8, 97, 69, -1, 7, 90, 69,
00576 -1, 21, 90, 69, -1, 23, 90, 69, -1, 24,
00577 90, 69, -1, 25, 90, 69, -1, 31, 90, 69,
00578 -1, 32, 90, 69, -1, 3, 60, 106, 70, 106,
00579 70, 106, 61, -1, 60, 106, 70, 106, 70, 106,
00580 61, -1, 3, 60, 106, 70, 106, 61, -1, 60,
00581 106, 70, 106, 61, -1, 3, 92, -1, 3, 60,
00582 93, 61, 69, -1, 3, 60, 61, 69, -1, 93,
00583 70, 94, -1, 94, -1, 72, 3, 60, 106, 61,
00584 -1, 106, -1, 6, 103, 96, -1, 101, -1, 97,
00585 69, -1, 98, 69, -1, 17, 60, 106, 61, 96,
00586 -1, 17, 60, 106, 61, 96, 13, 96, -1, 10,
00587 60, 106, 61, 99, 15, -1, 69, -1, 107, 71,
00588 106, -1, 107, 71, 5, 106, -1, 107, 36, 106,
00589 -1, 107, 36, 5, 106, -1, 99, 100, -1, 100,
00590 -1, 106, 49, 96, -1, 11, 49, 96, -1, 9,
00591 102, 14, -1, 102, 96, -1, 96, -1, 73, 60,
00592 104, 61, -1, 104, 25, 105, -1, 105, -1, 107,
00593 -1, 28, 3, -1, 22, 3, -1, 107, -1, 55,
00594 106, -1, 56, 106, -1, 66, 106, -1, 52, 106,
00595 -1, 50, 106, -1, 45, 106, -1, 46, 106, -1,
00596 44, 106, -1, 67, 106, -1, 51, 106, -1, 106,
00597 51, 106, -1, 106, 57, 106, -1, 106, 58, 106,
00598 -1, 106, 59, 106, -1, 106, 55, 106, -1, 106,
00599 56, 106, -1, 106, 52, 106, -1, 106, 50, 106,
00600 -1, 106, 45, 106, -1, 106, 46, 106, -1, 106,
00601 44, 106, -1, 106, 53, 106, -1, 106, 54, 106,
00602 -1, 106, 39, 106, -1, 106, 38, 106, -1, 106,
00603 40, 106, -1, 106, 41, 106, -1, 106, 36, 106,
00604 -1, 106, 37, 106, -1, 106, 42, 106, -1, 106,
00605 43, 106, -1, 106, 35, 106, -1, 106, 34, 106,
00606 -1, 106, 48, 106, 49, 106, -1, 60, 106, 61,
00607 -1, 62, 106, 62, 106, 63, 63, -1, 62, 106,
00608 62, 108, 63, 63, -1, 4, -1, 3, -1, 3,
00609 64, 106, 65, -1, 3, 64, 106, 49, 106, 65,
00610 -1, 62, 108, 63, -1, 108, 70, 106, -1, 106,
00611 -1
00612 };
00613
00614
00615 static const yytype_uint16 yyrline[] =
00616 {
00617 0, 97, 97, 100, 110, 111, 112, 115, 118, 119,
00618 120, 123, 124, 127, 128, 129, 130, 131, 132, 133,
00619 134, 135, 139, 142, 145, 148, 151, 152, 155, 156,
00620 159, 160, 161, 162, 163, 166, 170, 171, 172, 173,
00621 174, 175, 176, 179, 180, 181, 182, 186, 189, 190,
00622 193, 194, 197, 198, 202, 205, 206, 207, 208, 209,
00623 210, 211, 214, 215, 218, 219, 222, 223, 226, 227,
00624 230, 233, 234, 237, 241, 242, 245, 246, 247, 250,
00625 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
00626 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
00627 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
00628 281, 282, 283, 284, 285, 289, 290, 293, 294, 295,
00629 296, 297, 300, 301
00630 };
00631 #endif
00632
00633 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
00634
00635
00636 static const char *const yytname[] =
00637 {
00638 "$end", "error", "$undefined", "vSYMBOL_ID", "vNUMBER_ID", "vDELAY_ID",
00639 "vALWAYS", "vAND", "vASSIGN", "vBEGIN", "vCASE", "vDEFAULT", "vDEFINE",
00640 "vELSE", "vEND", "vENDCASE", "vENDMODULE", "vIF", "vINOUT", "vINPUT",
00641 "vMODULE", "vNAND", "vNEGEDGE", "vNOR", "vNOT", "vOR", "vOUTPUT",
00642 "vPARAMETER", "vPOSEDGE", "vREG", "vWIRE", "vXNOR", "vXOR", "vDEFPARAM",
00643 "voANDAND", "voOROR", "voLTE", "voGTE", "voSLEFT", "voSRIGHT", "voEQUAL",
00644 "voNOTEQUAL", "voCASEEQUAL", "voCASENOTEQUAL", "voXNOR", "voNAND",
00645 "voNOR", "vNOT_SUPPORT", "'?'", "':'", "'|'", "'^'", "'&'", "'<'", "'>'",
00646 "'+'", "'-'", "'*'", "'/'", "'%'", "'('", "')'", "'{'", "'}'", "'['",
00647 "']'", "'~'", "'!'", "LOWER_THAN_ELSE", "';'", "','", "'='", "'.'",
00648 "'@'", "$accept", "source_text", "items", "define", "module",
00649 "list_of_module_items", "module_item", "parameter_declaration",
00650 "input_declaration", "output_declaration", "inout_declaration",
00651 "net_declaration", "variable_list", "variable", "continuous_assign",
00652 "gate_declaration", "gate_instance", "module_instantiation",
00653 "module_instance", "list_of_module_connections", "module_connection",
00654 "always", "statement", "blocking_assignment", "non_blocking_assignment",
00655 "case_item_list", "case_items", "seq_block", "stmt_list",
00656 "delay_control", "event_expression_list", "event_expression",
00657 "expression", "primary", "expression_list", 0
00658 };
00659 #endif
00660
00661 # ifdef YYPRINT
00662
00663
00664 static const yytype_uint16 yytoknum[] =
00665 {
00666 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
00667 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
00668 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
00669 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
00670 295, 296, 297, 298, 299, 300, 301, 302, 63, 58,
00671 124, 94, 38, 60, 62, 43, 45, 42, 47, 37,
00672 40, 41, 123, 125, 91, 93, 126, 33, 303, 59,
00673 44, 61, 46, 64
00674 };
00675 # endif
00676
00677
00678 static const yytype_uint8 yyr1[] =
00679 {
00680 0, 74, 75, 76, 76, 76, 76, 77, 78, 78,
00681 78, 79, 79, 80, 80, 80, 80, 80, 80, 80,
00682 80, 80, 81, 82, 83, 84, 85, 85, 86, 86,
00683 87, 87, 87, 87, 87, 88, 89, 89, 89, 89,
00684 89, 89, 89, 90, 90, 90, 90, 91, 92, 92,
00685 93, 93, 94, 94, 95, 96, 96, 96, 96, 96,
00686 96, 96, 97, 97, 98, 98, 99, 99, 100, 100,
00687 101, 102, 102, 103, 104, 104, 105, 105, 105, 106,
00688 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
00689 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
00690 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
00691 106, 106, 106, 106, 106, 106, 106, 107, 107, 107,
00692 107, 107, 108, 108
00693 };
00694
00695
00696 static const yytype_uint8 yyr2[] =
00697 {
00698 0, 2, 1, 2, 2, 1, 1, 3, 8, 9,
00699 7, 2, 1, 1, 1, 1, 1, 1, 1, 1,
00700 1, 1, 3, 3, 3, 3, 3, 3, 3, 1,
00701 1, 6, 11, 8, 3, 3, 3, 3, 3, 3,
00702 3, 3, 3, 8, 7, 6, 5, 2, 5, 4,
00703 3, 1, 5, 1, 3, 1, 2, 2, 5, 7,
00704 6, 1, 3, 4, 3, 4, 2, 1, 3, 3,
00705 3, 2, 1, 4, 3, 1, 1, 2, 2, 1,
00706 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00707 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
00708 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
00709 3, 3, 3, 5, 3, 6, 6, 1, 1, 4,
00710 6, 3, 3, 1
00711 };
00712
00713
00714
00715
00716 static const yytype_uint8 yydefact[] =
00717 {
00718 0, 0, 0, 0, 2, 6, 5, 0, 0, 1,
00719 4, 3, 7, 0, 30, 0, 0, 0, 29, 0,
00720 0, 118, 117, 0, 0, 0, 0, 0, 0, 0,
00721 0, 0, 0, 0, 0, 0, 79, 0, 0, 0,
00722 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00723 0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
00724 14, 15, 16, 17, 18, 19, 20, 21, 0, 87,
00725 85, 86, 84, 89, 83, 80, 81, 0, 123, 0,
00726 82, 88, 0, 0, 0, 0, 0, 0, 0, 0,
00727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00728 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,
00729 123, 0, 47, 0, 0, 0, 0, 0, 0, 0,
00730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00731 0, 0, 10, 11, 0, 114, 0, 121, 0, 112,
00732 111, 107, 108, 104, 103, 105, 106, 109, 110, 100,
00733 98, 99, 0, 0, 97, 90, 96, 101, 102, 94,
00734 95, 91, 92, 93, 0, 0, 0, 0, 0, 0,
00735 0, 61, 54, 0, 0, 55, 0, 0, 0, 36,
00736 35, 0, 25, 0, 23, 37, 38, 39, 40, 24,
00737 22, 27, 26, 41, 42, 0, 119, 123, 0, 122,
00738 0, 0, 8, 0, 0, 0, 0, 51, 53, 0,
00739 0, 0, 75, 76, 72, 0, 0, 0, 56, 57,
00740 0, 0, 0, 0, 62, 0, 0, 0, 113, 31,
00741 9, 49, 0, 0, 0, 78, 77, 0, 73, 70,
00742 71, 0, 0, 0, 64, 0, 0, 63, 120, 115,
00743 116, 0, 0, 0, 48, 50, 74, 0, 0, 65,
00744 0, 46, 0, 0, 33, 0, 0, 0, 67, 0,
00745 58, 45, 0, 0, 0, 52, 0, 60, 66, 0,
00746 0, 0, 44, 0, 69, 68, 59, 43, 32
00747 };
00748
00749
00750 static const yytype_int16 yydefgoto[] =
00751 {
00752 -1, 3, 4, 5, 6, 57, 58, 59, 60, 61,
00753 62, 63, 17, 18, 64, 65, 117, 66, 112, 206,
00754 207, 67, 172, 173, 174, 267, 268, 175, 215, 114,
00755 211, 212, 208, 36, 79
00756 };
00757
00758
00759
00760 #define YYPACT_NINF -127
00761 static const yytype_int16 yypact[] =
00762 {
00763 14, 2, 32, 41, 14, -127, -127, 56, 33, -127,
00764 -127, -127, -127, 21, 28, 69, 332, 31, -127, 3,
00765 790, 77, -127, 332, 332, 332, 332, 332, 332, 332,
00766 332, 332, 332, 332, 332, 986, -127, 86, 36, 332,
00767 -127, 160, 92, -2, 3, 0, 0, -2, -2, -2,
00768 -2, 0, 0, 0, 0, -2, -2, 700, -127, -127,
00769 -127, -127, -127, -127, -127, -127, -127, -127, 332, 1188,
00770 1212, 1188, 1164, 1188, 1212, 116, 116, 818, 789, 67,
00771 -127, -127, 332, 332, 332, 332, 332, 332, 332, 332,
00772 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
00773 332, 332, 332, 332, 332, 332, 332, 790, 98, -127,
00774 1090, 126, -127, 130, 142, 131, 332, 107, 123, 127,
00775 -61, -48, 134, 136, 137, 138, -32, 91, 115, 119,
00776 139, 141, -127, -127, 514, -127, 332, -127, 332, 1140,
00777 1116, -26, -26, 124, 124, 1220, 1220, 1220, 1220, 1188,
00778 1212, 1188, 1012, 546, 1164, 1188, 1212, -26, -26, 116,
00779 116, -127, -127, -127, 730, 790, 11, 140, 142, 133,
00780 135, -127, -127, 143, 144, -127, 62, 332, 440, -127,
00781 -127, 224, -127, 0, -127, -127, -127, -127, -127, -127,
00782 -127, -127, -127, -127, -127, 332, -127, 642, 94, 1090,
00783 332, 196, -127, 760, 145, 197, 70, -127, 1090, 206,
00784 213, -21, -127, -127, -127, 125, 332, 332, -127, -127,
00785 295, 477, 332, 332, 1090, 578, 154, 156, 1090, 23,
00786 -127, -127, 161, 153, 24, -127, -127, 140, -127, -127,
00787 -127, 846, 874, 332, 1090, 332, 366, 1090, -127, -127,
00788 -127, 332, 3, 332, -127, -127, -127, 319, 142, 1090,
00789 403, -127, 332, 1038, -127, 902, 174, 251, -127, 1064,
00790 211, -127, 332, 930, 332, -127, 142, -127, -127, 142,
00791 142, 958, -127, 610, -127, -127, -127, -127, -127
00792 };
00793
00794
00795 static const yytype_int16 yypgoto[] =
00796 {
00797 -127, -127, -127, 221, 222, -84, -37, -127, -127, -127,
00798 -127, -127, -35, -36, -127, -127, 122, -127, -127, -127,
00799 -4, -127, -126, 187, -127, -127, -33, -127, -127, -127,
00800 -127, -5, 20, -19, 99
00801 };
00802
00803
00804
00805
00806
00807 #define YYTABLE_NINF -1
00808 static const yytype_uint16 yytable[] =
00809 {
00810 40, 115, 109, 14, 237, 7, 21, 22, 182, 183,
00811 120, 121, 86, 87, 21, 22, 126, 127, 128, 129,
00812 133, 184, 183, 164, 14, 119, 1, 21, 22, 102,
00813 103, 104, 105, 106, 2, 8, 35, 189, 183, 14,
00814 238, 9, 214, 69, 70, 71, 72, 73, 74, 75,
00815 76, 77, 78, 80, 81, 23, 24, 25, 116, 110,
00816 12, 26, 27, 28, 16, 39, 29, 30, 23, 24,
00817 25, 31, 204, 32, 26, 27, 28, 33, 34, 29,
00818 30, 203, 15, 205, 31, 16, 32, 251, 134, 240,
00819 33, 34, 37, 13, 252, 176, 205, 108, 220, 19,
00820 16, 38, 139, 140, 141, 142, 143, 144, 145, 146,
00821 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
00822 157, 158, 159, 160, 161, 162, 163, 133, 21, 22,
00823 137, 233, 270, 181, 168, 169, 178, 138, 20, 239,
00824 234, 68, 170, 21, 22, 21, 22, 109, 213, 176,
00825 284, 168, 169, 285, 286, 107, 197, 227, 199, 170,
00826 190, 183, 209, 111, 138, 113, 133, 165, 210, 122,
00827 123, 124, 125, 104, 105, 106, 179, 130, 131, 102,
00828 103, 104, 105, 106, 191, 183, 166, 39, 192, 183,
00829 167, 177, 180, 216, 171, 217, 176, 221, 181, 229,
00830 232, 224, 39, 185, 39, 186, 187, 188, 193, 235,
00831 194, 171, 218, 219, 231, 225, 236, 249, 213, 250,
00832 228, 253, 254, 276, 280, 10, 11, 21, 22, 223,
00833 255, 118, 256, 264, 278, 198, 241, 242, 0, 176,
00834 244, 0, 246, 247, 0, 0, 0, 0, 0, 0,
00835 0, 0, 0, 0, 21, 22, 0, 176, 0, 0,
00836 176, 176, 266, 259, 0, 260, 277, 0, 23, 24,
00837 25, 263, 0, 265, 26, 27, 28, 269, 0, 29,
00838 30, 0, 273, 0, 31, 0, 32, 269, 0, 0,
00839 33, 34, 281, 0, 283, 23, 24, 25, 21, 22,
00840 243, 26, 27, 28, 0, 0, 29, 30, 0, 0,
00841 0, 31, 0, 32, 0, 0, 0, 33, 34, 0,
00842 0, 0, 21, 22, 0, 0, 0, 0, 0, 0,
00843 266, 0, 0, 0, 0, 21, 22, 0, 0, 23,
00844 24, 25, 0, 0, 0, 26, 27, 28, 0, 0,
00845 29, 30, 0, 0, 0, 31, 0, 32, 0, 0,
00846 0, 33, 34, 23, 24, 25, 0, 0, 0, 26,
00847 27, 28, 0, 0, 29, 30, 23, 24, 25, 31,
00848 0, 32, 26, 27, 28, 33, 34, 29, 30, 0,
00849 0, 0, 31, 0, 32, 0, 0, 0, 33, 34,
00850 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
00851 92, 93, 94, 0, 95, 0, 97, 98, 99, 100,
00852 101, 102, 103, 104, 105, 106, 0, 261, 0, 0,
00853 0, 0, 0, 0, 0, 0, 262, 82, 83, 84,
00854 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
00855 0, 95, 0, 97, 98, 99, 100, 101, 102, 103,
00856 104, 105, 106, 0, 271, 0, 0, 0, 0, 0,
00857 0, 0, 0, 272, 82, 83, 84, 85, 86, 87,
00858 88, 89, 90, 91, 92, 93, 94, 0, 95, 0,
00859 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
00860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00861 222, 82, 83, 84, 85, 86, 87, 88, 89, 90,
00862 91, 92, 93, 94, 0, 95, 0, 97, 98, 99,
00863 100, 101, 102, 103, 104, 105, 106, 0, 0, 0,
00864 0, 0, 0, 0, 0, 0, 0, 245, 82, 83,
00865 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
00866 94, 0, 95, 195, 97, 98, 99, 100, 101, 102,
00867 103, 104, 105, 106, 0, 0, 0, 0, 0, 196,
00868 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
00869 92, 93, 94, 0, 95, 0, 97, 98, 99, 100,
00870 101, 102, 103, 104, 105, 106, 0, 0, 0, 0,
00871 0, 201, 82, 83, 84, 85, 86, 87, 88, 89,
00872 90, 91, 92, 93, 94, 0, 95, 0, 97, 98,
00873 99, 100, 101, 102, 103, 104, 105, 106, 0, 0,
00874 0, 0, 0, 248, 82, 83, 84, 85, 86, 87,
00875 88, 89, 90, 91, 92, 93, 94, 0, 95, 0,
00876 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
00877 0, 0, 0, 0, 0, 288, 82, 83, 84, 85,
00878 86, 87, 88, 89, 90, 91, 92, 93, 94, 0,
00879 95, 0, 97, 98, 99, 100, 101, 102, 103, 104,
00880 105, 106, 0, 41, 0, 226, 42, 43, 44, 0,
00881 0, 0, 0, 0, 0, 0, 132, 0, 45, 46,
00882 0, 47, 0, 48, 49, 50, 51, 52, 0, 53,
00883 54, 55, 56, 41, 0, 0, 42, 43, 44, 0,
00884 0, 0, 0, 0, 0, 0, 202, 0, 45, 46,
00885 0, 47, 0, 48, 49, 50, 51, 52, 0, 53,
00886 54, 55, 56, 41, 0, 0, 42, 43, 44, 0,
00887 0, 0, 0, 0, 0, 0, 230, 0, 45, 46,
00888 0, 47, 0, 48, 49, 50, 51, 52, 0, 53,
00889 54, 55, 56, 41, 0, 0, 42, 43, 44, 0,
00890 0, 0, 0, 0, 0, 0, 0, 0, 45, 46,
00891 0, 47, 0, 48, 49, 50, 51, 52, 0, 53,
00892 54, 55, 56, 82, 83, 84, 85, 86, 87, 88,
00893 89, 90, 91, 92, 93, 94, 0, 95, 0, 97,
00894 98, 99, 100, 101, 102, 103, 104, 105, 106, 0,
00895 0, 136, 82, 83, 84, 85, 86, 87, 88, 89,
00896 90, 91, 92, 93, 94, 0, 95, 0, 97, 98,
00897 99, 100, 101, 102, 103, 104, 105, 106, 0, 135,
00898 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
00899 92, 93, 94, 0, 95, 0, 97, 98, 99, 100,
00900 101, 102, 103, 104, 105, 106, 0, 257, 82, 83,
00901 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
00902 94, 0, 95, 0, 97, 98, 99, 100, 101, 102,
00903 103, 104, 105, 106, 0, 258, 82, 83, 84, 85,
00904 86, 87, 88, 89, 90, 91, 92, 93, 94, 0,
00905 95, 0, 97, 98, 99, 100, 101, 102, 103, 104,
00906 105, 106, 0, 275, 82, 83, 84, 85, 86, 87,
00907 88, 89, 90, 91, 92, 93, 94, 0, 95, 0,
00908 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
00909 0, 282, 82, 83, 84, 85, 86, 87, 88, 89,
00910 90, 91, 92, 93, 94, 0, 95, 0, 97, 98,
00911 99, 100, 101, 102, 103, 104, 105, 106, 0, 287,
00912 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
00913 92, 93, 94, 0, 95, 96, 97, 98, 99, 100,
00914 101, 102, 103, 104, 105, 106, 82, 83, 84, 85,
00915 86, 87, 88, 89, 90, 91, 92, 93, 94, 0,
00916 95, 200, 97, 98, 99, 100, 101, 102, 103, 104,
00917 105, 106, 82, 83, 84, 85, 86, 87, 88, 89,
00918 90, 91, 92, 93, 94, 0, 95, 274, 97, 98,
00919 99, 100, 101, 102, 103, 104, 105, 106, 82, 83,
00920 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
00921 94, 0, 95, 279, 97, 98, 99, 100, 101, 102,
00922 103, 104, 105, 106, 82, 83, 84, 85, 86, 87,
00923 88, 89, 90, 91, 92, 93, 94, 0, 95, 0,
00924 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
00925 82, 0, 84, 85, 86, 87, 88, 89, 90, 91,
00926 92, 93, 94, 0, 0, 0, 97, 98, 99, 100,
00927 101, 102, 103, 104, 105, 106, 84, 85, 86, 87,
00928 88, 89, 90, 91, 92, 93, 94, 0, 0, 0,
00929 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
00930 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
00931 94, 0, 0, 0, 0, 98, 99, 100, 101, 102,
00932 103, 104, 105, 106, 84, 85, 86, 87, 88, 89,
00933 90, 91, 0, 93, 0, 0, 0, 0, 0, 0,
00934 99, 100, 101, 102, 103, 104, 105, 106, 84, 85,
00935 86, 87, 88, 89, 90, 91, 84, 85, 86, 87,
00936 0, 0, 0, 0, 0, 100, 101, 102, 103, 104,
00937 105, 106, 0, 100, 101, 102, 103, 104, 105, 106
00938 };
00939
00940 static const yytype_int16 yycheck[] =
00941 {
00942 19, 3, 38, 3, 25, 3, 3, 4, 69, 70,
00943 45, 46, 38, 39, 3, 4, 51, 52, 53, 54,
00944 57, 69, 70, 107, 3, 44, 12, 3, 4, 55,
00945 56, 57, 58, 59, 20, 3, 16, 69, 70, 3,
00946 61, 0, 168, 23, 24, 25, 26, 27, 28, 29,
00947 30, 31, 32, 33, 34, 44, 45, 46, 60, 39,
00948 4, 50, 51, 52, 64, 62, 55, 56, 44, 45,
00949 46, 60, 61, 62, 50, 51, 52, 66, 67, 55,
00950 56, 165, 61, 72, 60, 64, 62, 64, 68, 215,
00951 66, 67, 61, 60, 71, 114, 72, 61, 36, 71,
00952 64, 70, 82, 83, 84, 85, 86, 87, 88, 89,
00953 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
00954 100, 101, 102, 103, 104, 105, 106, 164, 3, 4,
00955 63, 61, 258, 71, 9, 10, 116, 70, 69, 14,
00956 70, 64, 17, 3, 4, 3, 4, 183, 167, 168,
00957 276, 9, 10, 279, 280, 69, 136, 63, 138, 17,
00958 69, 70, 22, 3, 70, 73, 203, 69, 28, 47,
00959 48, 49, 50, 57, 58, 59, 69, 55, 56, 55,
00960 56, 57, 58, 59, 69, 70, 60, 62, 69, 70,
00961 60, 60, 69, 60, 69, 60, 215, 177, 71, 3,
00962 3, 181, 62, 69, 62, 69, 69, 69, 69, 3,
00963 69, 69, 69, 69, 69, 195, 3, 63, 237, 63,
00964 200, 60, 69, 49, 13, 4, 4, 3, 4, 5,
00965 234, 44, 237, 252, 267, 136, 216, 217, -1, 258,
00966 220, -1, 222, 223, -1, -1, -1, -1, -1, -1,
00967 -1, -1, -1, -1, 3, 4, -1, 276, -1, -1,
00968 279, 280, 11, 243, -1, 245, 15, -1, 44, 45,
00969 46, 251, -1, 253, 50, 51, 52, 257, -1, 55,
00970 56, -1, 262, -1, 60, -1, 62, 267, -1, -1,
00971 66, 67, 272, -1, 274, 44, 45, 46, 3, 4,
00972 5, 50, 51, 52, -1, -1, 55, 56, -1, -1,
00973 -1, 60, -1, 62, -1, -1, -1, 66, 67, -1,
00974 -1, -1, 3, 4, -1, -1, -1, -1, -1, -1,
00975 11, -1, -1, -1, -1, 3, 4, -1, -1, 44,
00976 45, 46, -1, -1, -1, 50, 51, 52, -1, -1,
00977 55, 56, -1, -1, -1, 60, -1, 62, -1, -1,
00978 -1, 66, 67, 44, 45, 46, -1, -1, -1, 50,
00979 51, 52, -1, -1, 55, 56, 44, 45, 46, 60,
00980 -1, 62, 50, 51, 52, 66, 67, 55, 56, -1,
00981 -1, -1, 60, -1, 62, -1, -1, -1, 66, 67,
00982 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
00983 44, 45, 46, -1, 48, -1, 50, 51, 52, 53,
00984 54, 55, 56, 57, 58, 59, -1, 61, -1, -1,
00985 -1, -1, -1, -1, -1, -1, 70, 34, 35, 36,
00986 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
00987 -1, 48, -1, 50, 51, 52, 53, 54, 55, 56,
00988 57, 58, 59, -1, 61, -1, -1, -1, -1, -1,
00989 -1, -1, -1, 70, 34, 35, 36, 37, 38, 39,
00990 40, 41, 42, 43, 44, 45, 46, -1, 48, -1,
00991 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
00992 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00993 70, 34, 35, 36, 37, 38, 39, 40, 41, 42,
00994 43, 44, 45, 46, -1, 48, -1, 50, 51, 52,
00995 53, 54, 55, 56, 57, 58, 59, -1, -1, -1,
00996 -1, -1, -1, -1, -1, -1, -1, 70, 34, 35,
00997 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
00998 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
00999 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
01000 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
01001 44, 45, 46, -1, 48, -1, 50, 51, 52, 53,
01002 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
01003 -1, 65, 34, 35, 36, 37, 38, 39, 40, 41,
01004 42, 43, 44, 45, 46, -1, 48, -1, 50, 51,
01005 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
01006 -1, -1, -1, 65, 34, 35, 36, 37, 38, 39,
01007 40, 41, 42, 43, 44, 45, 46, -1, 48, -1,
01008 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
01009 -1, -1, -1, -1, -1, 65, 34, 35, 36, 37,
01010 38, 39, 40, 41, 42, 43, 44, 45, 46, -1,
01011 48, -1, 50, 51, 52, 53, 54, 55, 56, 57,
01012 58, 59, -1, 3, -1, 63, 6, 7, 8, -1,
01013 -1, -1, -1, -1, -1, -1, 16, -1, 18, 19,
01014 -1, 21, -1, 23, 24, 25, 26, 27, -1, 29,
01015 30, 31, 32, 3, -1, -1, 6, 7, 8, -1,
01016 -1, -1, -1, -1, -1, -1, 16, -1, 18, 19,
01017 -1, 21, -1, 23, 24, 25, 26, 27, -1, 29,
01018 30, 31, 32, 3, -1, -1, 6, 7, 8, -1,
01019 -1, -1, -1, -1, -1, -1, 16, -1, 18, 19,
01020 -1, 21, -1, 23, 24, 25, 26, 27, -1, 29,
01021 30, 31, 32, 3, -1, -1, 6, 7, 8, -1,
01022 -1, -1, -1, -1, -1, -1, -1, -1, 18, 19,
01023 -1, 21, -1, 23, 24, 25, 26, 27, -1, 29,
01024 30, 31, 32, 34, 35, 36, 37, 38, 39, 40,
01025 41, 42, 43, 44, 45, 46, -1, 48, -1, 50,
01026 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
01027 -1, 62, 34, 35, 36, 37, 38, 39, 40, 41,
01028 42, 43, 44, 45, 46, -1, 48, -1, 50, 51,
01029 52, 53, 54, 55, 56, 57, 58, 59, -1, 61,
01030 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
01031 44, 45, 46, -1, 48, -1, 50, 51, 52, 53,
01032 54, 55, 56, 57, 58, 59, -1, 61, 34, 35,
01033 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
01034 46, -1, 48, -1, 50, 51, 52, 53, 54, 55,
01035 56, 57, 58, 59, -1, 61, 34, 35, 36, 37,
01036 38, 39, 40, 41, 42, 43, 44, 45, 46, -1,
01037 48, -1, 50, 51, 52, 53, 54, 55, 56, 57,
01038 58, 59, -1, 61, 34, 35, 36, 37, 38, 39,
01039 40, 41, 42, 43, 44, 45, 46, -1, 48, -1,
01040 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
01041 -1, 61, 34, 35, 36, 37, 38, 39, 40, 41,
01042 42, 43, 44, 45, 46, -1, 48, -1, 50, 51,
01043 52, 53, 54, 55, 56, 57, 58, 59, -1, 61,
01044 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
01045 44, 45, 46, -1, 48, 49, 50, 51, 52, 53,
01046 54, 55, 56, 57, 58, 59, 34, 35, 36, 37,
01047 38, 39, 40, 41, 42, 43, 44, 45, 46, -1,
01048 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
01049 58, 59, 34, 35, 36, 37, 38, 39, 40, 41,
01050 42, 43, 44, 45, 46, -1, 48, 49, 50, 51,
01051 52, 53, 54, 55, 56, 57, 58, 59, 34, 35,
01052 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
01053 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
01054 56, 57, 58, 59, 34, 35, 36, 37, 38, 39,
01055 40, 41, 42, 43, 44, 45, 46, -1, 48, -1,
01056 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
01057 34, -1, 36, 37, 38, 39, 40, 41, 42, 43,
01058 44, 45, 46, -1, -1, -1, 50, 51, 52, 53,
01059 54, 55, 56, 57, 58, 59, 36, 37, 38, 39,
01060 40, 41, 42, 43, 44, 45, 46, -1, -1, -1,
01061 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
01062 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
01063 46, -1, -1, -1, -1, 51, 52, 53, 54, 55,
01064 56, 57, 58, 59, 36, 37, 38, 39, 40, 41,
01065 42, 43, -1, 45, -1, -1, -1, -1, -1, -1,
01066 52, 53, 54, 55, 56, 57, 58, 59, 36, 37,
01067 38, 39, 40, 41, 42, 43, 36, 37, 38, 39,
01068 -1, -1, -1, -1, -1, 53, 54, 55, 56, 57,
01069 58, 59, -1, 53, 54, 55, 56, 57, 58, 59
01070 };
01071
01072
01073
01074 static const yytype_uint8 yystos[] =
01075 {
01076 0, 12, 20, 75, 76, 77, 78, 3, 3, 0,
01077 77, 78, 4, 60, 3, 61, 64, 86, 87, 71,
01078 69, 3, 4, 44, 45, 46, 50, 51, 52, 55,
01079 56, 60, 62, 66, 67, 106, 107, 61, 70, 62,
01080 107, 3, 6, 7, 8, 18, 19, 21, 23, 24,
01081 25, 26, 27, 29, 30, 31, 32, 79, 80, 81,
01082 82, 83, 84, 85, 88, 89, 91, 95, 64, 106,
01083 106, 106, 106, 106, 106, 106, 106, 106, 106, 108,
01084 106, 106, 34, 35, 36, 37, 38, 39, 40, 41,
01085 42, 43, 44, 45, 46, 48, 49, 50, 51, 52,
01086 53, 54, 55, 56, 57, 58, 59, 69, 61, 87,
01087 106, 3, 92, 73, 103, 3, 60, 90, 97, 107,
01088 86, 86, 90, 90, 90, 90, 86, 86, 86, 86,
01089 90, 90, 16, 80, 106, 61, 62, 63, 70, 106,
01090 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
01091 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
01092 106, 106, 106, 106, 79, 69, 60, 60, 9, 10,
01093 17, 69, 96, 97, 98, 101, 107, 60, 106, 69,
01094 69, 71, 69, 70, 69, 69, 69, 69, 69, 69,
01095 69, 69, 69, 69, 69, 49, 65, 106, 108, 106,
01096 49, 65, 16, 79, 61, 72, 93, 94, 106, 22,
01097 28, 104, 105, 107, 96, 102, 60, 60, 69, 69,
01098 36, 106, 70, 5, 106, 106, 63, 63, 106, 3,
01099 16, 69, 3, 61, 70, 3, 3, 25, 61, 14,
01100 96, 106, 106, 5, 106, 70, 106, 106, 65, 63,
01101 63, 64, 71, 60, 69, 94, 105, 61, 61, 106,
01102 106, 61, 70, 106, 107, 106, 11, 99, 100, 106,
01103 96, 61, 70, 106, 49, 61, 49, 15, 100, 49,
01104 13, 106, 61, 106, 96, 96, 96, 61, 65
01105 };
01106
01107 #define yyerrok (yyerrstatus = 0)
01108 #define yyclearin (yychar = YYEMPTY)
01109 #define YYEMPTY (-2)
01110 #define YYEOF 0
01111
01112 #define YYACCEPT goto yyacceptlab
01113 #define YYABORT goto yyabortlab
01114 #define YYERROR goto yyerrorlab
01115
01116
01117
01118
01119
01120
01121 #define YYFAIL goto yyerrlab
01122
01123 #define YYRECOVERING() (!!yyerrstatus)
01124
01125 #define YYBACKUP(Token, Value) \
01126 do \
01127 if (yychar == YYEMPTY && yylen == 1) \
01128 { \
01129 yychar = (Token); \
01130 yylval = (Value); \
01131 yytoken = YYTRANSLATE (yychar); \
01132 YYPOPSTACK (1); \
01133 goto yybackup; \
01134 } \
01135 else \
01136 { \
01137 yyerror (YY_("syntax error: cannot back up")); \
01138 YYERROR; \
01139 } \
01140 while (YYID (0))
01141
01142
01143 #define YYTERROR 1
01144 #define YYERRCODE 256
01145
01146
01147
01148
01149
01150
01151 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
01152 #ifndef YYLLOC_DEFAULT
01153 # define YYLLOC_DEFAULT(Current, Rhs, N) \
01154 do \
01155 if (YYID (N)) \
01156 { \
01157 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
01158 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
01159 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
01160 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
01161 } \
01162 else \
01163 { \
01164 (Current).first_line = (Current).last_line = \
01165 YYRHSLOC (Rhs, 0).last_line; \
01166 (Current).first_column = (Current).last_column = \
01167 YYRHSLOC (Rhs, 0).last_column; \
01168 } \
01169 while (YYID (0))
01170 #endif
01171
01172
01173
01174
01175
01176
01177 #ifndef YY_LOCATION_PRINT
01178 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
01179 # define YY_LOCATION_PRINT(File, Loc) \
01180 fprintf (File, "%d.%d-%d.%d", \
01181 (Loc).first_line, (Loc).first_column, \
01182 (Loc).last_line, (Loc).last_column)
01183 # else
01184 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
01185 # endif
01186 #endif
01187
01188
01189
01190
01191 #ifdef YYLEX_PARAM
01192 # define YYLEX yylex (YYLEX_PARAM)
01193 #else
01194 # define YYLEX yylex ()
01195 #endif
01196
01197
01198 #if YYDEBUG
01199
01200 # ifndef YYFPRINTF
01201 # include <stdio.h>
01202 # define YYFPRINTF fprintf
01203 # endif
01204
01205 # define YYDPRINTF(Args) \
01206 do { \
01207 if (yydebug) \
01208 YYFPRINTF Args; \
01209 } while (YYID (0))
01210
01211 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
01212 do { \
01213 if (yydebug) \
01214 { \
01215 YYFPRINTF (stderr, "%s ", Title); \
01216 yy_symbol_print (stderr, \
01217 Type, Value); \
01218 YYFPRINTF (stderr, "\n"); \
01219 } \
01220 } while (YYID (0))
01221
01222
01223
01224
01225
01226
01227
01228 #if (defined __STDC__ || defined __C99__FUNC__ \
01229 || defined __cplusplus || defined _MSC_VER)
01230 static void
01231 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
01232 #else
01233 static void
01234 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
01235 FILE *yyoutput;
01236 int yytype;
01237 YYSTYPE const * const yyvaluep;
01238 #endif
01239 {
01240 if (!yyvaluep)
01241 return;
01242 # ifdef YYPRINT
01243 if (yytype < YYNTOKENS)
01244 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
01245 # else
01246 YYUSE (yyoutput);
01247 # endif
01248 switch (yytype)
01249 {
01250 default:
01251 break;
01252 }
01253 }
01254
01255
01256
01257
01258
01259
01260 #if (defined __STDC__ || defined __C99__FUNC__ \
01261 || defined __cplusplus || defined _MSC_VER)
01262 static void
01263 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
01264 #else
01265 static void
01266 yy_symbol_print (yyoutput, yytype, yyvaluep)
01267 FILE *yyoutput;
01268 int yytype;
01269 YYSTYPE const * const yyvaluep;
01270 #endif
01271 {
01272 if (yytype < YYNTOKENS)
01273 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
01274 else
01275 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
01276
01277 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
01278 YYFPRINTF (yyoutput, ")");
01279 }
01280
01281
01282
01283
01284
01285
01286 #if (defined __STDC__ || defined __C99__FUNC__ \
01287 || defined __cplusplus || defined _MSC_VER)
01288 static void
01289 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
01290 #else
01291 static void
01292 yy_stack_print (bottom, top)
01293 yytype_int16 *bottom;
01294 yytype_int16 *top;
01295 #endif
01296 {
01297 YYFPRINTF (stderr, "Stack now");
01298 for (; bottom <= top; ++bottom)
01299 YYFPRINTF (stderr, " %d", *bottom);
01300 YYFPRINTF (stderr, "\n");
01301 }
01302
01303 # define YY_STACK_PRINT(Bottom, Top) \
01304 do { \
01305 if (yydebug) \
01306 yy_stack_print ((Bottom), (Top)); \
01307 } while (YYID (0))
01308
01309
01310
01311
01312
01313
01314 #if (defined __STDC__ || defined __C99__FUNC__ \
01315 || defined __cplusplus || defined _MSC_VER)
01316 static void
01317 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
01318 #else
01319 static void
01320 yy_reduce_print (yyvsp, yyrule)
01321 YYSTYPE *yyvsp;
01322 int yyrule;
01323 #endif
01324 {
01325 int yynrhs = yyr2[yyrule];
01326 int yyi;
01327 unsigned long int yylno = yyrline[yyrule];
01328 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
01329 yyrule - 1, yylno);
01330
01331 for (yyi = 0; yyi < yynrhs; yyi++)
01332 {
01333 fprintf (stderr, " $%d = ", yyi + 1);
01334 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
01335 &(yyvsp[(yyi + 1) - (yynrhs)])
01336 );
01337 fprintf (stderr, "\n");
01338 }
01339 }
01340
01341 # define YY_REDUCE_PRINT(Rule) \
01342 do { \
01343 if (yydebug) \
01344 yy_reduce_print (yyvsp, Rule); \
01345 } while (YYID (0))
01346
01347
01348
01349 int yydebug;
01350 #else
01351 # define YYDPRINTF(Args)
01352 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
01353 # define YY_STACK_PRINT(Bottom, Top)
01354 # define YY_REDUCE_PRINT(Rule)
01355 #endif
01356
01357
01358
01359 #ifndef YYINITDEPTH
01360 # define YYINITDEPTH 200
01361 #endif
01362
01363
01364
01365
01366
01367
01368
01369
01370 #ifndef YYMAXDEPTH
01371 # define YYMAXDEPTH 10000
01372 #endif
01373
01374
01375
01376 #if YYERROR_VERBOSE
01377
01378 # ifndef yystrlen
01379 # if defined __GLIBC__ && defined _STRING_H
01380 # define yystrlen strlen
01381 # else
01382
01383 #if (defined __STDC__ || defined __C99__FUNC__ \
01384 || defined __cplusplus || defined _MSC_VER)
01385 static YYSIZE_T
01386 yystrlen (const char *yystr)
01387 #else
01388 static YYSIZE_T
01389 yystrlen (yystr)
01390 const char *yystr;
01391 #endif
01392 {
01393 YYSIZE_T yylen;
01394 for (yylen = 0; yystr[yylen]; yylen++)
01395 continue;
01396 return yylen;
01397 }
01398 # endif
01399 # endif
01400
01401 # ifndef yystpcpy
01402 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
01403 # define yystpcpy stpcpy
01404 # else
01405
01406
01407 #if (defined __STDC__ || defined __C99__FUNC__ \
01408 || defined __cplusplus || defined _MSC_VER)
01409 static char *
01410 yystpcpy (char *yydest, const char *yysrc)
01411 #else
01412 static char *
01413 yystpcpy (yydest, yysrc)
01414 char *yydest;
01415 const char *yysrc;
01416 #endif
01417 {
01418 char *yyd = yydest;
01419 const char *yys = yysrc;
01420
01421 while ((*yyd++ = *yys++) != '\0')
01422 continue;
01423
01424 return yyd - 1;
01425 }
01426 # endif
01427 # endif
01428
01429 # ifndef yytnamerr
01430
01431
01432
01433
01434
01435
01436
01437 static YYSIZE_T
01438 yytnamerr (char *yyres, const char *yystr)
01439 {
01440 if (*yystr == '"')
01441 {
01442 YYSIZE_T yyn = 0;
01443 char const *yyp = yystr;
01444
01445 for (;;)
01446 switch (*++yyp)
01447 {
01448 case '\'':
01449 case ',':
01450 goto do_not_strip_quotes;
01451
01452 case '\\':
01453 if (*++yyp != '\\')
01454 goto do_not_strip_quotes;
01455
01456 default:
01457 if (yyres)
01458 yyres[yyn] = *yyp;
01459 yyn++;
01460 break;
01461
01462 case '"':
01463 if (yyres)
01464 yyres[yyn] = '\0';
01465 return yyn;
01466 }
01467 do_not_strip_quotes: ;
01468 }
01469
01470 if (! yyres)
01471 return yystrlen (yystr);
01472
01473 return yystpcpy (yyres, yystr) - yyres;
01474 }
01475 # endif
01476
01477
01478
01479
01480
01481
01482
01483
01484 static YYSIZE_T
01485 yysyntax_error (char *yyresult, int yystate, int yychar)
01486 {
01487 int yyn = yypact[yystate];
01488
01489 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
01490 return 0;
01491 else
01492 {
01493 int yytype = YYTRANSLATE (yychar);
01494 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
01495 YYSIZE_T yysize = yysize0;
01496 YYSIZE_T yysize1;
01497 int yysize_overflow = 0;
01498 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
01499 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
01500 int yyx;
01501
01502 # if 0
01503
01504
01505 YY_("syntax error, unexpected %s");
01506 YY_("syntax error, unexpected %s, expecting %s");
01507 YY_("syntax error, unexpected %s, expecting %s or %s");
01508 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
01509 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
01510 # endif
01511 char *yyfmt;
01512 char const *yyf;
01513 static char const yyunexpected[] = "syntax error, unexpected %s";
01514 static char const yyexpecting[] = ", expecting %s";
01515 static char const yyor[] = " or %s";
01516 char yyformat[sizeof yyunexpected
01517 + sizeof yyexpecting - 1
01518 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
01519 * (sizeof yyor - 1))];
01520 char const *yyprefix = yyexpecting;
01521
01522
01523
01524 int yyxbegin = yyn < 0 ? -yyn : 0;
01525
01526
01527 int yychecklim = YYLAST - yyn + 1;
01528 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
01529 int yycount = 1;
01530
01531 yyarg[0] = yytname[yytype];
01532 yyfmt = yystpcpy (yyformat, yyunexpected);
01533
01534 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
01535 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
01536 {
01537 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
01538 {
01539 yycount = 1;
01540 yysize = yysize0;
01541 yyformat[sizeof yyunexpected - 1] = '\0';
01542 break;
01543 }
01544 yyarg[yycount++] = yytname[yyx];
01545 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
01546 yysize_overflow |= (yysize1 < yysize);
01547 yysize = yysize1;
01548 yyfmt = yystpcpy (yyfmt, yyprefix);
01549 yyprefix = yyor;
01550 }
01551
01552 yyf = YY_(yyformat);
01553 yysize1 = yysize + yystrlen (yyf);
01554 yysize_overflow |= (yysize1 < yysize);
01555 yysize = yysize1;
01556
01557 if (yysize_overflow)
01558 return YYSIZE_MAXIMUM;
01559
01560 if (yyresult)
01561 {
01562
01563
01564
01565 char *yyp = yyresult;
01566 int yyi = 0;
01567 while ((*yyp = *yyf) != '\0')
01568 {
01569 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
01570 {
01571 yyp += yytnamerr (yyp, yyarg[yyi++]);
01572 yyf += 2;
01573 }
01574 else
01575 {
01576 yyp++;
01577 yyf++;
01578 }
01579 }
01580 }
01581 return yysize;
01582 }
01583 }
01584 #endif
01585
01586
01587
01588
01589
01590
01591
01592 #if (defined __STDC__ || defined __C99__FUNC__ \
01593 || defined __cplusplus || defined _MSC_VER)
01594 static void
01595 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
01596 #else
01597 static void
01598 yydestruct (yymsg, yytype, yyvaluep)
01599 const char *yymsg;
01600 int yytype;
01601 YYSTYPE *yyvaluep;
01602 #endif
01603 {
01604 YYUSE (yyvaluep);
01605
01606 if (!yymsg)
01607 yymsg = "Deleting";
01608 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
01609
01610 switch (yytype)
01611 {
01612
01613 default:
01614 break;
01615 }
01616 }
01617
01618
01619
01620
01621 #ifdef YYPARSE_PARAM
01622 #if defined __STDC__ || defined __cplusplus
01623 int yyparse (void *YYPARSE_PARAM);
01624 #else
01625 int yyparse ();
01626 #endif
01627 #else
01628 #if defined __STDC__ || defined __cplusplus
01629 int yyparse (void);
01630 #else
01631 int yyparse ();
01632 #endif
01633 #endif
01634
01635
01636
01637
01638 int yychar;
01639
01640
01641 YYSTYPE yylval;
01642
01643
01644 int yynerrs;
01645
01646
01647
01648
01649
01650
01651
01652 #ifdef YYPARSE_PARAM
01653 #if (defined __STDC__ || defined __C99__FUNC__ \
01654 || defined __cplusplus || defined _MSC_VER)
01655 int
01656 yyparse (void *YYPARSE_PARAM)
01657 #else
01658 int
01659 yyparse (YYPARSE_PARAM)
01660 void *YYPARSE_PARAM;
01661 #endif
01662 #else
01663 #if (defined __STDC__ || defined __C99__FUNC__ \
01664 || defined __cplusplus || defined _MSC_VER)
01665 int
01666 yyparse (void)
01667 #else
01668 int
01669 yyparse ()
01670
01671 #endif
01672 #endif
01673 {
01674
01675 int yystate;
01676 int yyn;
01677 int yyresult;
01678
01679 int yyerrstatus;
01680
01681 int yytoken = 0;
01682 #if YYERROR_VERBOSE
01683
01684 char yymsgbuf[128];
01685 char *yymsg = yymsgbuf;
01686 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
01687 #endif
01688
01689
01690
01691
01692
01693
01694
01695
01696
01697
01698 yytype_int16 yyssa[YYINITDEPTH];
01699 yytype_int16 *yyss = yyssa;
01700 yytype_int16 *yyssp;
01701
01702
01703 YYSTYPE yyvsa[YYINITDEPTH];
01704 YYSTYPE *yyvs = yyvsa;
01705 YYSTYPE *yyvsp;
01706
01707
01708
01709 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
01710
01711 YYSIZE_T yystacksize = YYINITDEPTH;
01712
01713
01714
01715 YYSTYPE yyval;
01716
01717
01718
01719
01720 int yylen = 0;
01721
01722 YYDPRINTF ((stderr, "Starting parse\n"));
01723
01724 yystate = 0;
01725 yyerrstatus = 0;
01726 yynerrs = 0;
01727 yychar = YYEMPTY;
01728
01729
01730
01731
01732
01733
01734 yyssp = yyss;
01735 yyvsp = yyvs;
01736
01737 goto yysetstate;
01738
01739
01740
01741
01742 yynewstate:
01743
01744
01745 yyssp++;
01746
01747 yysetstate:
01748 *yyssp = yystate;
01749
01750 if (yyss + yystacksize - 1 <= yyssp)
01751 {
01752
01753 YYSIZE_T yysize = yyssp - yyss + 1;
01754
01755 #ifdef yyoverflow
01756 {
01757
01758
01759
01760 YYSTYPE *yyvs1 = yyvs;
01761 yytype_int16 *yyss1 = yyss;
01762
01763
01764
01765
01766
01767
01768 yyoverflow (YY_("memory exhausted"),
01769 &yyss1, yysize * sizeof (*yyssp),
01770 &yyvs1, yysize * sizeof (*yyvsp),
01771
01772 &yystacksize);
01773
01774 yyss = yyss1;
01775 yyvs = yyvs1;
01776 }
01777 #else
01778 # ifndef YYSTACK_RELOCATE
01779 goto yyexhaustedlab;
01780 # else
01781
01782 if (YYMAXDEPTH <= yystacksize)
01783 goto yyexhaustedlab;
01784 yystacksize *= 2;
01785 if (YYMAXDEPTH < yystacksize)
01786 yystacksize = YYMAXDEPTH;
01787
01788 {
01789 yytype_int16 *yyss1 = yyss;
01790 union yyalloc *yyptr =
01791 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
01792 if (! yyptr)
01793 goto yyexhaustedlab;
01794 YYSTACK_RELOCATE (yyss);
01795 YYSTACK_RELOCATE (yyvs);
01796
01797 # undef YYSTACK_RELOCATE
01798 if (yyss1 != yyssa)
01799 YYSTACK_FREE (yyss1);
01800 }
01801 # endif
01802 #endif
01803
01804 yyssp = yyss + yysize - 1;
01805 yyvsp = yyvs + yysize - 1;
01806
01807
01808 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
01809 (unsigned long int) yystacksize));
01810
01811 if (yyss + yystacksize - 1 <= yyssp)
01812 YYABORT;
01813 }
01814
01815 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
01816
01817 goto yybackup;
01818
01819
01820
01821
01822 yybackup:
01823
01824
01825
01826
01827
01828 yyn = yypact[yystate];
01829 if (yyn == YYPACT_NINF)
01830 goto yydefault;
01831
01832
01833
01834
01835 if (yychar == YYEMPTY)
01836 {
01837 YYDPRINTF ((stderr, "Reading a token: "));
01838 yychar = YYLEX;
01839 }
01840
01841 if (yychar <= YYEOF)
01842 {
01843 yychar = yytoken = YYEOF;
01844 YYDPRINTF ((stderr, "Now at end of input.\n"));
01845 }
01846 else
01847 {
01848 yytoken = YYTRANSLATE (yychar);
01849 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
01850 }
01851
01852
01853
01854 yyn += yytoken;
01855 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
01856 goto yydefault;
01857 yyn = yytable[yyn];
01858 if (yyn <= 0)
01859 {
01860 if (yyn == 0 || yyn == YYTABLE_NINF)
01861 goto yyerrlab;
01862 yyn = -yyn;
01863 goto yyreduce;
01864 }
01865
01866 if (yyn == YYFINAL)
01867 YYACCEPT;
01868
01869
01870
01871 if (yyerrstatus)
01872 yyerrstatus--;
01873
01874
01875 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
01876
01877
01878 if (yychar != YYEOF)
01879 yychar = YYEMPTY;
01880
01881 yystate = yyn;
01882 *++yyvsp = yylval;
01883
01884 goto yynewstate;
01885
01886
01887
01888
01889
01890 yydefault:
01891 yyn = yydefact[yystate];
01892 if (yyn == 0)
01893 goto yyerrlab;
01894 goto yyreduce;
01895
01896
01897
01898
01899
01900 yyreduce:
01901
01902 yylen = yyr2[yyn];
01903
01904
01905
01906
01907
01908
01909
01910
01911
01912 yyval = yyvsp[1-yylen];
01913
01914
01915 YY_REDUCE_PRINT (yyn);
01916 switch (yyn)
01917 {
01918 case 2:
01919 #line 97 "SRC/verilog_bison.y"
01920 {next_parsed_verilog_file((yyvsp[(1) - (1)].node));;}
01921 break;
01922
01923 case 3:
01924 #line 100 "SRC/verilog_bison.y"
01925 {
01926 if ((yyvsp[(1) - (2)].node) != NULL)
01927 {
01928 (yyval.node) = newList_entry((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
01929 }
01930 else
01931 {
01932 (yyval.node) = newList(FILE_ITEMS, (yyvsp[(2) - (2)].node));
01933 }
01934 ;}
01935 break;
01936
01937 case 4:
01938 #line 110 "SRC/verilog_bison.y"
01939 {(yyval.node) = (yyvsp[(1) - (2)].node);;}
01940 break;
01941
01942 case 5:
01943 #line 111 "SRC/verilog_bison.y"
01944 {(yyval.node) = newList(FILE_ITEMS, (yyvsp[(1) - (1)].node));;}
01945 break;
01946
01947 case 6:
01948 #line 112 "SRC/verilog_bison.y"
01949 {(yyval.node) = NULL;;}
01950 break;
01951
01952 case 7:
01953 #line 115 "SRC/verilog_bison.y"
01954 {(yyval.node) = NULL; newConstant((yyvsp[(2) - (3)].id_name), (yyvsp[(3) - (3)].num_value), yylineno);;}
01955 break;
01956
01957 case 8:
01958 #line 118 "SRC/verilog_bison.y"
01959 {(yyval.node) = newModule((yyvsp[(2) - (8)].id_name), (yyvsp[(4) - (8)].node), (yyvsp[(7) - (8)].node), yylineno);;}
01960 break;
01961
01962 case 9:
01963 #line 119 "SRC/verilog_bison.y"
01964 {(yyval.node) = newModule((yyvsp[(2) - (9)].id_name), (yyvsp[(4) - (9)].node), (yyvsp[(8) - (9)].node), yylineno);;}
01965 break;
01966
01967 case 10:
01968 #line 120 "SRC/verilog_bison.y"
01969 {(yyval.node) = newModule((yyvsp[(2) - (7)].id_name), NULL, (yyvsp[(6) - (7)].node), yylineno);;}
01970 break;
01971
01972 case 11:
01973 #line 123 "SRC/verilog_bison.y"
01974 {(yyval.node) = newList_entry((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));;}
01975 break;
01976
01977 case 12:
01978 #line 124 "SRC/verilog_bison.y"
01979 {(yyval.node) = newList(MODULE_ITEMS, (yyvsp[(1) - (1)].node));;}
01980 break;
01981
01982 case 13:
01983 #line 127 "SRC/verilog_bison.y"
01984 {(yyval.node) = (yyvsp[(1) - (1)].node);;}
01985 break;
01986
01987 case 14:
01988 #line 128 "SRC/verilog_bison.y"
01989 {(yyval.node) = (yyvsp[(1) - (1)].node);;}
01990 break;
01991
01992 case 15:
01993 #line 129 "SRC/verilog_bison.y"
01994 {(yyval.node) = (yyvsp[(1) - (1)].node);;}
01995 break;
01996
01997 case 16:
01998 #line 130 "SRC/verilog_bison.y"
01999 {(yyval.node) = (yyvsp[(1) - (1)].node);;}
02000 break;
02001
02002 case 17:
02003 #line 131 "SRC/verilog_bison.y"
02004 {(yyval.node) = (yyvsp[(1) - (1)].node);;}
02005 break;
02006
02007 case 18:
02008 #line 132 "SRC/verilog_bison.y"
02009 {(yyval.node) = (yyvsp[(1) - (1)].node);;}
02010 break;
02011
02012 case 19:
02013 #line 133 "SRC/verilog_bison.y"
02014 {(yyval.node) = (yyvsp[(1) - (1)].node);;}
02015 break;
02016
02017 case 20:
02018 #line 134 "SRC/verilog_bison.y"
02019 {(yyval.node) = (yyvsp[(1) - (1)].node);;}
02020 break;
02021
02022 case 21:
02023 #line 135 "SRC/verilog_bison.y"
02024 {(yyval.node) = (yyvsp[(1) - (1)].node);;}
02025 break;
02026
02027 case 22:
02028 #line 139 "SRC/verilog_bison.y"
02029 {(yyval.node) = markAndProcessSymbolListWith(PARAMETER, (yyvsp[(2) - (3)].node));;}
02030 break;
02031
02032 case 23:
02033 #line 142 "SRC/verilog_bison.y"
02034 {(yyval.node) = markAndProcessSymbolListWith(INPUT, (yyvsp[(2) - (3)].node));;}
02035 break;
02036
02037 case 24:
02038 #line 145 "SRC/verilog_bison.y"
02039 {(yyval.node) = markAndProcessSymbolListWith(OUTPUT, (yyvsp[(2) - (3)].node));;}
02040 break;
02041
02042 case 25:
02043 #line 148 "SRC/verilog_bison.y"
02044 {(yyval.node) = markAndProcessSymbolListWith(INOUT, (yyvsp[(2) - (3)].node));;}
02045 break;
02046
02047 case 26:
02048 #line 151 "SRC/verilog_bison.y"
02049 {(yyval.node) = markAndProcessSymbolListWith(WIRE, (yyvsp[(2) - (3)].node));;}
02050 break;
02051
02052 case 27:
02053 #line 152 "SRC/verilog_bison.y"
02054 {(yyval.node) = markAndProcessSymbolListWith(REG, (yyvsp[(2) - (3)].node));;}
02055 break;
02056
02057 case 28:
02058 #line 155 "SRC/verilog_bison.y"
02059 {(yyval.node) = newList_entry((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));;}
02060 break;
02061
02062 case 29:
02063 #line 156 "SRC/verilog_bison.y"
02064 {(yyval.node) = newList(VAR_DECLARE_LIST, (yyvsp[(1) - (1)].node));;}
02065 break;
02066
02067 case 30:
02068 #line 159 "SRC/verilog_bison.y"
02069 {(yyval.node) = newVarDeclare((yyvsp[(1) - (1)].id_name), NULL, NULL, NULL, NULL, NULL, yylineno);;}
02070 break;
02071
02072 case 31:
02073 #line 160 "SRC/verilog_bison.y"
02074 {(yyval.node) = newVarDeclare((yyvsp[(6) - (6)].id_name), (yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), NULL, NULL, NULL, yylineno);;}
02075 break;
02076
02077 case 32:
02078 #line 161 "SRC/verilog_bison.y"
02079 {(yyval.node) = newVarDeclare((yyvsp[(6) - (11)].id_name), (yyvsp[(2) - (11)].node), (yyvsp[(4) - (11)].node), (yyvsp[(8) - (11)].node), (yyvsp[(10) - (11)].node), NULL, yylineno);;}
02080 break;
02081
02082 case 33:
02083 #line 162 "SRC/verilog_bison.y"
02084 {(yyval.node) = newVarDeclare((yyvsp[(6) - (8)].id_name), (yyvsp[(2) - (8)].node), (yyvsp[(4) - (8)].node), NULL, NULL, (yyvsp[(8) - (8)].node), yylineno);;}
02085 break;
02086
02087 case 34:
02088 #line 163 "SRC/verilog_bison.y"
02089 {(yyval.node) = newVarDeclare((yyvsp[(1) - (3)].id_name), NULL, NULL, NULL, NULL, (yyvsp[(3) - (3)].node), yylineno);;}
02090 break;
02091
02092 case 35:
02093 #line 166 "SRC/verilog_bison.y"
02094 {(yyval.node) = newAssign((yyvsp[(2) - (3)].node), yylineno);;}
02095 break;
02096
02097 case 36:
02098 #line 170 "SRC/verilog_bison.y"
02099 {(yyval.node) = newGate(BITWISE_AND, (yyvsp[(2) - (3)].node), yylineno);;}
02100 break;
02101
02102 case 37:
02103 #line 171 "SRC/verilog_bison.y"
02104 {(yyval.node) = newGate(BITWISE_NAND, (yyvsp[(2) - (3)].node), yylineno);;}
02105 break;
02106
02107 case 38:
02108 #line 172 "SRC/verilog_bison.y"
02109 {(yyval.node) = newGate(BITWISE_NOR, (yyvsp[(2) - (3)].node), yylineno);;}
02110 break;
02111
02112 case 39:
02113 #line 173 "SRC/verilog_bison.y"
02114 {(yyval.node) = newGate(BITWISE_NOT, (yyvsp[(2) - (3)].node), yylineno);;}
02115 break;
02116
02117 case 40:
02118 #line 174 "SRC/verilog_bison.y"
02119 {(yyval.node) = newGate(BITWISE_OR, (yyvsp[(2) - (3)].node), yylineno);;}
02120 break;
02121
02122 case 41:
02123 #line 175 "SRC/verilog_bison.y"
02124 {(yyval.node) = newGate(BITWISE_XNOR, (yyvsp[(2) - (3)].node), yylineno);;}
02125 break;
02126
02127 case 42:
02128 #line 176 "SRC/verilog_bison.y"
02129 {(yyval.node) = newGate(BITWISE_XOR, (yyvsp[(2) - (3)].node), yylineno);;}
02130 break;
02131
02132 case 43:
02133 #line 179 "SRC/verilog_bison.y"
02134 {(yyval.node) = newGateInstance((yyvsp[(1) - (8)].id_name), (yyvsp[(3) - (8)].node), (yyvsp[(5) - (8)].node), (yyvsp[(7) - (8)].node), yylineno);;}
02135 break;
02136
02137 case 44:
02138 #line 180 "SRC/verilog_bison.y"
02139 {(yyval.node) = newGateInstance(NULL, (yyvsp[(2) - (7)].node), (yyvsp[(4) - (7)].node), (yyvsp[(6) - (7)].node), yylineno);;}
02140 break;
02141
02142 case 45:
02143 #line 181 "SRC/verilog_bison.y"
02144 {(yyval.node) = newGateInstance((yyvsp[(1) - (6)].id_name), (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), NULL, yylineno);;}
02145 break;
02146
02147 case 46:
02148 #line 182 "SRC/verilog_bison.y"
02149 {(yyval.node) = newGateInstance(NULL, (yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].node), NULL, yylineno);;}
02150 break;
02151
02152 case 47:
02153 #line 186 "SRC/verilog_bison.y"
02154 {(yyval.node) = newModuleInstance((yyvsp[(1) - (2)].id_name), (yyvsp[(2) - (2)].node), yylineno);;}
02155 break;
02156
02157 case 48:
02158 #line 189 "SRC/verilog_bison.y"
02159 {(yyval.node) = newModuleNamedInstance((yyvsp[(1) - (5)].id_name), (yyvsp[(3) - (5)].node), yylineno);;}
02160 break;
02161
02162 case 49:
02163 #line 190 "SRC/verilog_bison.y"
02164 {(yyval.node) = newModuleNamedInstance((yyvsp[(1) - (4)].id_name), NULL, yylineno);;}
02165 break;
02166
02167 case 50:
02168 #line 193 "SRC/verilog_bison.y"
02169 {(yyval.node) = newList_entry((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));;}
02170 break;
02171
02172 case 51:
02173 #line 194 "SRC/verilog_bison.y"
02174 {(yyval.node) = newList(MODULE_CONNECT_LIST, (yyvsp[(1) - (1)].node));;}
02175 break;
02176
02177 case 52:
02178 #line 197 "SRC/verilog_bison.y"
02179 {(yyval.node) = newModuleConnection((yyvsp[(2) - (5)].id_name), (yyvsp[(4) - (5)].node), yylineno);;}
02180 break;
02181
02182 case 53:
02183 #line 198 "SRC/verilog_bison.y"
02184 {(yyval.node) = newModuleConnection(NULL, (yyvsp[(1) - (1)].node), yylineno);;}
02185 break;
02186
02187 case 54:
02188 #line 202 "SRC/verilog_bison.y"
02189 {(yyval.node) = newAlways((yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02190 break;
02191
02192 case 55:
02193 #line 205 "SRC/verilog_bison.y"
02194 {(yyval.node) = (yyvsp[(1) - (1)].node);;}
02195 break;
02196
02197 case 56:
02198 #line 206 "SRC/verilog_bison.y"
02199 {(yyval.node) = (yyvsp[(1) - (2)].node);;}
02200 break;
02201
02202 case 57:
02203 #line 207 "SRC/verilog_bison.y"
02204 {(yyval.node) = (yyvsp[(1) - (2)].node);;}
02205 break;
02206
02207 case 58:
02208 #line 208 "SRC/verilog_bison.y"
02209 {(yyval.node) = newIf((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node), NULL, yylineno);;}
02210 break;
02211
02212 case 59:
02213 #line 209 "SRC/verilog_bison.y"
02214 {(yyval.node) = newIf((yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node), yylineno);;}
02215 break;
02216
02217 case 60:
02218 #line 210 "SRC/verilog_bison.y"
02219 {(yyval.node) = newCase((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), yylineno);;}
02220 break;
02221
02222 case 61:
02223 #line 211 "SRC/verilog_bison.y"
02224 {(yyval.node) = NULL;;}
02225 break;
02226
02227 case 62:
02228 #line 214 "SRC/verilog_bison.y"
02229 {(yyval.node) = newBlocking((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02230 break;
02231
02232 case 63:
02233 #line 215 "SRC/verilog_bison.y"
02234 {(yyval.node) = newBlocking((yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), yylineno);;}
02235 break;
02236
02237 case 64:
02238 #line 218 "SRC/verilog_bison.y"
02239 {(yyval.node) = newNonBlocking((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02240 break;
02241
02242 case 65:
02243 #line 219 "SRC/verilog_bison.y"
02244 {(yyval.node) = newNonBlocking((yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), yylineno);;}
02245 break;
02246
02247 case 66:
02248 #line 222 "SRC/verilog_bison.y"
02249 {(yyval.node) = newList_entry((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));;}
02250 break;
02251
02252 case 67:
02253 #line 223 "SRC/verilog_bison.y"
02254 {(yyval.node) = newList(CASE_LIST, (yyvsp[(1) - (1)].node));;}
02255 break;
02256
02257 case 68:
02258 #line 226 "SRC/verilog_bison.y"
02259 {(yyval.node) = newCaseItem((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02260 break;
02261
02262 case 69:
02263 #line 227 "SRC/verilog_bison.y"
02264 {(yyval.node) = newDefaultCase((yyvsp[(3) - (3)].node), yylineno);;}
02265 break;
02266
02267 case 70:
02268 #line 230 "SRC/verilog_bison.y"
02269 {(yyval.node) = (yyvsp[(2) - (3)].node);;}
02270 break;
02271
02272 case 71:
02273 #line 233 "SRC/verilog_bison.y"
02274 {(yyval.node) = newList_entry((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));;}
02275 break;
02276
02277 case 72:
02278 #line 234 "SRC/verilog_bison.y"
02279 {(yyval.node) = newList(BLOCK, (yyvsp[(1) - (1)].node));;}
02280 break;
02281
02282 case 73:
02283 #line 237 "SRC/verilog_bison.y"
02284 {(yyval.node) = (yyvsp[(3) - (4)].node);;}
02285 break;
02286
02287 case 74:
02288 #line 241 "SRC/verilog_bison.y"
02289 {(yyval.node) = newList_entry((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));;}
02290 break;
02291
02292 case 75:
02293 #line 242 "SRC/verilog_bison.y"
02294 {(yyval.node) = newList(DELAY_CONTROL, (yyvsp[(1) - (1)].node));;}
02295 break;
02296
02297 case 76:
02298 #line 245 "SRC/verilog_bison.y"
02299 {(yyval.node) = (yyvsp[(1) - (1)].node);;}
02300 break;
02301
02302 case 77:
02303 #line 246 "SRC/verilog_bison.y"
02304 {(yyval.node) = newPosedgeSymbol((yyvsp[(2) - (2)].id_name), yylineno);;}
02305 break;
02306
02307 case 78:
02308 #line 247 "SRC/verilog_bison.y"
02309 {(yyval.node) = newNegedgeSymbol((yyvsp[(2) - (2)].id_name), yylineno);;}
02310 break;
02311
02312 case 79:
02313 #line 250 "SRC/verilog_bison.y"
02314 {(yyval.node) = (yyvsp[(1) - (1)].node);;}
02315 break;
02316
02317 case 80:
02318 #line 251 "SRC/verilog_bison.y"
02319 {(yyval.node) = newUnaryOperation(ADD, (yyvsp[(2) - (2)].node), yylineno);;}
02320 break;
02321
02322 case 81:
02323 #line 252 "SRC/verilog_bison.y"
02324 {(yyval.node) = newUnaryOperation(MINUS, (yyvsp[(2) - (2)].node), yylineno);;}
02325 break;
02326
02327 case 82:
02328 #line 253 "SRC/verilog_bison.y"
02329 {(yyval.node) = newUnaryOperation(BITWISE_NOT, (yyvsp[(2) - (2)].node), yylineno);;}
02330 break;
02331
02332 case 83:
02333 #line 254 "SRC/verilog_bison.y"
02334 {(yyval.node) = newUnaryOperation(BITWISE_AND, (yyvsp[(2) - (2)].node), yylineno);;}
02335 break;
02336
02337 case 84:
02338 #line 255 "SRC/verilog_bison.y"
02339 {(yyval.node) = newUnaryOperation(BITWISE_OR, (yyvsp[(2) - (2)].node), yylineno);;}
02340 break;
02341
02342 case 85:
02343 #line 256 "SRC/verilog_bison.y"
02344 {(yyval.node) = newUnaryOperation(BITWISE_NAND, (yyvsp[(2) - (2)].node), yylineno);;}
02345 break;
02346
02347 case 86:
02348 #line 257 "SRC/verilog_bison.y"
02349 {(yyval.node) = newUnaryOperation(BITWISE_NOR, (yyvsp[(2) - (2)].node), yylineno);;}
02350 break;
02351
02352 case 87:
02353 #line 258 "SRC/verilog_bison.y"
02354 {(yyval.node) = newUnaryOperation(BITWISE_XNOR, (yyvsp[(2) - (2)].node), yylineno);;}
02355 break;
02356
02357 case 88:
02358 #line 259 "SRC/verilog_bison.y"
02359 {(yyval.node) = newUnaryOperation(LOGICAL_NOT, (yyvsp[(2) - (2)].node), yylineno);;}
02360 break;
02361
02362 case 89:
02363 #line 260 "SRC/verilog_bison.y"
02364 {(yyval.node) = newUnaryOperation(BITWISE_XOR, (yyvsp[(2) - (2)].node), yylineno);;}
02365 break;
02366
02367 case 90:
02368 #line 261 "SRC/verilog_bison.y"
02369 {(yyval.node) = newBinaryOperation(BITWISE_XOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02370 break;
02371
02372 case 91:
02373 #line 262 "SRC/verilog_bison.y"
02374 {(yyval.node) = newBinaryOperation(MULTIPLY, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02375 break;
02376
02377 case 92:
02378 #line 263 "SRC/verilog_bison.y"
02379 {(yyval.node) = newBinaryOperation(DIVIDE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02380 break;
02381
02382 case 93:
02383 #line 264 "SRC/verilog_bison.y"
02384 {(yyval.node) = newBinaryOperation(MODULO, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02385 break;
02386
02387 case 94:
02388 #line 265 "SRC/verilog_bison.y"
02389 {(yyval.node) = newBinaryOperation(ADD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02390 break;
02391
02392 case 95:
02393 #line 266 "SRC/verilog_bison.y"
02394 {(yyval.node) = newBinaryOperation(MINUS, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02395 break;
02396
02397 case 96:
02398 #line 267 "SRC/verilog_bison.y"
02399 {(yyval.node) = newBinaryOperation(BITWISE_AND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02400 break;
02401
02402 case 97:
02403 #line 268 "SRC/verilog_bison.y"
02404 {(yyval.node) = newBinaryOperation(BITWISE_OR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02405 break;
02406
02407 case 98:
02408 #line 269 "SRC/verilog_bison.y"
02409 {(yyval.node) = newBinaryOperation(BITWISE_NAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02410 break;
02411
02412 case 99:
02413 #line 270 "SRC/verilog_bison.y"
02414 {(yyval.node) = newBinaryOperation(BITWISE_NOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02415 break;
02416
02417 case 100:
02418 #line 271 "SRC/verilog_bison.y"
02419 {(yyval.node) = newBinaryOperation(BITWISE_XNOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02420 break;
02421
02422 case 101:
02423 #line 272 "SRC/verilog_bison.y"
02424 {(yyval.node) = newBinaryOperation(LT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02425 break;
02426
02427 case 102:
02428 #line 273 "SRC/verilog_bison.y"
02429 {(yyval.node) = newBinaryOperation(GT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02430 break;
02431
02432 case 103:
02433 #line 274 "SRC/verilog_bison.y"
02434 {(yyval.node) = newBinaryOperation(SR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02435 break;
02436
02437 case 104:
02438 #line 275 "SRC/verilog_bison.y"
02439 {(yyval.node) = newBinaryOperation(SL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02440 break;
02441
02442 case 105:
02443 #line 276 "SRC/verilog_bison.y"
02444 {(yyval.node) = newBinaryOperation(LOGICAL_EQUAL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02445 break;
02446
02447 case 106:
02448 #line 277 "SRC/verilog_bison.y"
02449 {(yyval.node) = newBinaryOperation(NOT_EQUAL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02450 break;
02451
02452 case 107:
02453 #line 278 "SRC/verilog_bison.y"
02454 {(yyval.node) = newBinaryOperation(LTE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02455 break;
02456
02457 case 108:
02458 #line 279 "SRC/verilog_bison.y"
02459 {(yyval.node) = newBinaryOperation(GTE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02460 break;
02461
02462 case 109:
02463 #line 280 "SRC/verilog_bison.y"
02464 {(yyval.node) = newBinaryOperation(CASE_EQUAL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02465 break;
02466
02467 case 110:
02468 #line 281 "SRC/verilog_bison.y"
02469 {(yyval.node) = newBinaryOperation(CASE_NOT_EQUAL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02470 break;
02471
02472 case 111:
02473 #line 282 "SRC/verilog_bison.y"
02474 {(yyval.node) = newBinaryOperation(LOGICAL_OR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02475 break;
02476
02477 case 112:
02478 #line 283 "SRC/verilog_bison.y"
02479 {(yyval.node) = newBinaryOperation(LOGICAL_AND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), yylineno);;}
02480 break;
02481
02482 case 113:
02483 #line 284 "SRC/verilog_bison.y"
02484 {(yyval.node) = newIfQuestion((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node), yylineno);;}
02485 break;
02486
02487 case 114:
02488 #line 285 "SRC/verilog_bison.y"
02489 {(yyval.node) = (yyvsp[(2) - (3)].node);;}
02490 break;
02491
02492 case 115:
02493 #line 289 "SRC/verilog_bison.y"
02494 {(yyval.node) = newListReplicate( (yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node) ); ;}
02495 break;
02496
02497 case 116:
02498 #line 290 "SRC/verilog_bison.y"
02499 {(yyval.node) = newListReplicate( (yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node) ); ;}
02500 break;
02501
02502 case 117:
02503 #line 293 "SRC/verilog_bison.y"
02504 {(yyval.node) = newNumberNode((yyvsp[(1) - (1)].num_value), yylineno);;}
02505 break;
02506
02507 case 118:
02508 #line 294 "SRC/verilog_bison.y"
02509 {(yyval.node) = newSymbolNode((yyvsp[(1) - (1)].id_name), yylineno);;}
02510 break;
02511
02512 case 119:
02513 #line 295 "SRC/verilog_bison.y"
02514 {(yyval.node) = newArrayRef((yyvsp[(1) - (4)].id_name), (yyvsp[(3) - (4)].node), yylineno);;}
02515 break;
02516
02517 case 120:
02518 #line 296 "SRC/verilog_bison.y"
02519 {(yyval.node) = newRangeRef((yyvsp[(1) - (6)].id_name), (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), yylineno);;}
02520 break;
02521
02522 case 121:
02523 #line 297 "SRC/verilog_bison.y"
02524 {(yyval.node) = (yyvsp[(2) - (3)].node); ((yyvsp[(2) - (3)].node))->types.concat.num_bit_strings = -1;;}
02525 break;
02526
02527 case 122:
02528 #line 300 "SRC/verilog_bison.y"
02529 {(yyval.node) = newList_entry((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;}
02530 break;
02531
02532 case 123:
02533 #line 301 "SRC/verilog_bison.y"
02534 {(yyval.node) = newList(CONCATENATE, (yyvsp[(1) - (1)].node));;}
02535 break;
02536
02537
02538
02539 #line 2540 "SRC/verilog_bison.c"
02540 default: break;
02541 }
02542 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
02543
02544 YYPOPSTACK (yylen);
02545 yylen = 0;
02546 YY_STACK_PRINT (yyss, yyssp);
02547
02548 *++yyvsp = yyval;
02549
02550
02551
02552
02553
02554
02555 yyn = yyr1[yyn];
02556
02557 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
02558 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
02559 yystate = yytable[yystate];
02560 else
02561 yystate = yydefgoto[yyn - YYNTOKENS];
02562
02563 goto yynewstate;
02564
02565
02566
02567
02568
02569 yyerrlab:
02570
02571 if (!yyerrstatus)
02572 {
02573 ++yynerrs;
02574 #if ! YYERROR_VERBOSE
02575 yyerror (YY_("syntax error"));
02576 #else
02577 {
02578 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
02579 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
02580 {
02581 YYSIZE_T yyalloc = 2 * yysize;
02582 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
02583 yyalloc = YYSTACK_ALLOC_MAXIMUM;
02584 if (yymsg != yymsgbuf)
02585 YYSTACK_FREE (yymsg);
02586 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
02587 if (yymsg)
02588 yymsg_alloc = yyalloc;
02589 else
02590 {
02591 yymsg = yymsgbuf;
02592 yymsg_alloc = sizeof yymsgbuf;
02593 }
02594 }
02595
02596 if (0 < yysize && yysize <= yymsg_alloc)
02597 {
02598 (void) yysyntax_error (yymsg, yystate, yychar);
02599 yyerror (yymsg);
02600 }
02601 else
02602 {
02603 yyerror (YY_("syntax error"));
02604 if (yysize != 0)
02605 goto yyexhaustedlab;
02606 }
02607 }
02608 #endif
02609 }
02610
02611
02612
02613 if (yyerrstatus == 3)
02614 {
02615
02616
02617
02618 if (yychar <= YYEOF)
02619 {
02620
02621 if (yychar == YYEOF)
02622 YYABORT;
02623 }
02624 else
02625 {
02626 yydestruct ("Error: discarding",
02627 yytoken, &yylval);
02628 yychar = YYEMPTY;
02629 }
02630 }
02631
02632
02633
02634 goto yyerrlab1;
02635
02636
02637
02638
02639
02640 yyerrorlab:
02641
02642
02643
02644
02645 if ( 0)
02646 goto yyerrorlab;
02647
02648
02649
02650 YYPOPSTACK (yylen);
02651 yylen = 0;
02652 YY_STACK_PRINT (yyss, yyssp);
02653 yystate = *yyssp;
02654 goto yyerrlab1;
02655
02656
02657
02658
02659
02660 yyerrlab1:
02661 yyerrstatus = 3;
02662
02663 for (;;)
02664 {
02665 yyn = yypact[yystate];
02666 if (yyn != YYPACT_NINF)
02667 {
02668 yyn += YYTERROR;
02669 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
02670 {
02671 yyn = yytable[yyn];
02672 if (0 < yyn)
02673 break;
02674 }
02675 }
02676
02677
02678 if (yyssp == yyss)
02679 YYABORT;
02680
02681
02682 yydestruct ("Error: popping",
02683 yystos[yystate], yyvsp);
02684 YYPOPSTACK (1);
02685 yystate = *yyssp;
02686 YY_STACK_PRINT (yyss, yyssp);
02687 }
02688
02689 if (yyn == YYFINAL)
02690 YYACCEPT;
02691
02692 *++yyvsp = yylval;
02693
02694
02695
02696 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
02697
02698 yystate = yyn;
02699 goto yynewstate;
02700
02701
02702
02703
02704
02705 yyacceptlab:
02706 yyresult = 0;
02707 goto yyreturn;
02708
02709
02710
02711
02712 yyabortlab:
02713 yyresult = 1;
02714 goto yyreturn;
02715
02716 #ifndef yyoverflow
02717
02718
02719
02720 yyexhaustedlab:
02721 yyerror (YY_("memory exhausted"));
02722 yyresult = 2;
02723
02724 #endif
02725
02726 yyreturn:
02727 if (yychar != YYEOF && yychar != YYEMPTY)
02728 yydestruct ("Cleanup: discarding lookahead",
02729 yytoken, &yylval);
02730
02731
02732 YYPOPSTACK (yylen);
02733 YY_STACK_PRINT (yyss, yyssp);
02734 while (yyssp != yyss)
02735 {
02736 yydestruct ("Cleanup: popping",
02737 yystos[*yyssp], yyvsp);
02738 YYPOPSTACK (1);
02739 }
02740 #ifndef yyoverflow
02741 if (yyss != yyssa)
02742 YYSTACK_FREE (yyss);
02743 #endif
02744 #if YYERROR_VERBOSE
02745 if (yymsg != yymsgbuf)
02746 YYSTACK_FREE (yymsg);
02747 #endif
02748
02749 return YYID (yyresult);
02750 }
02751
02752
02753 #line 304 "SRC/verilog_bison.y"
02754
02755