00001
00002
00003
00004
00005 #define YYBISON 1
00006
00007 #define yyparse ylparse
00008 #define yylex yllex
00009 #define yyerror ylerror
00010 #define yylval yllval
00011 #define yychar ylchar
00012 #define yydebug yldebug
00013 #define yynerrs ylnerrs
00014 #define simpleOp 257
00015 #define PREFIX_OP 258
00016 #define POSTFIX_OP 259
00017 #define LLT_MULOP 260
00018 #define LLT_SEMI 261
00019 #define LLT_VERTICALBAR 262
00020 #define ITERATION_OP 263
00021 #define LLT_LPAR 264
00022 #define LLT_LBRACKET 265
00023 #define selectSym 266
00024 #define LLT_IF_THEN_ELSE 267
00025 #define logicalOp 268
00026 #define eqSepSym 269
00027 #define equationSym 270
00028 #define commentSym 271
00029 #define LLT_WHITESPACE 272
00030 #define LLT_EOL 273
00031 #define LLT_TYPEDEF_NAME 274
00032 #define quantifierSym 275
00033 #define openSym 276
00034 #define closeSym 277
00035 #define sepSym 278
00036 #define simpleId 279
00037 #define mapSym 280
00038 #define markerSym 281
00039 #define preSym 282
00040 #define postSym 283
00041 #define anySym 284
00042 #define LLT_COLON 285
00043 #define LLT_COMMA 286
00044 #define LLT_EQUALS 287
00045 #define LLT_LBRACE 288
00046 #define LLT_RBRACE 289
00047 #define LLT_RBRACKET 290
00048 #define LLT_RPAR 291
00049 #define LLT_QUOTE 292
00050 #define eqOp 293
00051 #define LLT_CCHAR 294
00052 #define LLT_CFLOAT 295
00053 #define LLT_CINTEGER 296
00054 #define LLT_LCSTRING 297
00055 #define LLT_ALL 298
00056 #define LLT_ANYTHING 299
00057 #define LLT_BE 300
00058 #define LLT_BODY 301
00059 #define LLT_CLAIMS 302
00060 #define LLT_CHECKS 303
00061 #define LLT_CONSTANT 304
00062 #define LLT_ELSE 305
00063 #define LLT_ENSURES 306
00064 #define LLT_FOR 307
00065 #define LLT_FRESH 308
00066 #define LLT_IF 309
00067 #define LLT_IMMUTABLE 310
00068 #define LLT_IMPORTS 311
00069 #define LLT_CONSTRAINT 312
00070 #define LLT_ISSUB 313
00071 #define LLT_LET 314
00072 #define LLT_MODIFIES 315
00073 #define LLT_MUTABLE 316
00074 #define LLT_NOTHING 317
00075 #define LLT_INTERNAL 318
00076 #define LLT_FILESYS 319
00077 #define LLT_OBJ 320
00078 #define LLT_OUT 321
00079 #define LLT_SEF 322
00080 #define LLT_ONLY 323
00081 #define LLT_PARTIAL 324
00082 #define LLT_OWNED 325
00083 #define LLT_DEPENDENT 326
00084 #define LLT_KEEP 327
00085 #define LLT_KEPT 328
00086 #define LLT_TEMP 329
00087 #define LLT_SHARED 330
00088 #define LLT_UNIQUE 331
00089 #define LLT_UNUSED 332
00090 #define LLT_EXITS 333
00091 #define LLT_MAYEXIT 334
00092 #define LLT_NEVEREXIT 335
00093 #define LLT_TRUEEXIT 336
00094 #define LLT_FALSEEXIT 337
00095 #define LLT_UNDEF 338
00096 #define LLT_KILLED 339
00097 #define LLT_CHECKMOD 340
00098 #define LLT_CHECKED 341
00099 #define LLT_UNCHECKED 342
00100 #define LLT_CHECKEDSTRICT 343
00101 #define LLT_TRUENULL 344
00102 #define LLT_FALSENULL 345
00103 #define LLT_LNULL 346
00104 #define LLT_LNOTNULL 347
00105 #define LLT_RETURNED 348
00106 #define LLT_OBSERVER 349
00107 #define LLT_EXPOSED 350
00108 #define LLT_REFCOUNTED 351
00109 #define LLT_REFS 352
00110 #define LLT_RELNULL 353
00111 #define LLT_RELDEF 354
00112 #define LLT_KILLREF 355
00113 #define LLT_TEMPREF 356
00114 #define LLT_NEWREF 357
00115 #define LLT_PRIVATE 358
00116 #define LLT_REQUIRES 359
00117 #define LLT_RESULT 360
00118 #define LLT_SIZEOF 361
00119 #define LLT_SPEC 362
00120 #define LLT_TAGGEDUNION 363
00121 #define LLT_THEN 364
00122 #define LLT_TYPE 365
00123 #define LLT_TYPEDEF 366
00124 #define LLT_UNCHANGED 367
00125 #define LLT_USES 368
00126 #define LLT_CHAR 369
00127 #define LLT_CONST 370
00128 #define LLT_DOUBLE 371
00129 #define LLT_ENUM 372
00130 #define LLT_FLOAT 373
00131 #define LLT_INT 374
00132 #define LLT_ITER 375
00133 #define LLT_YIELD 376
00134 #define LLT_LONG 377
00135 #define LLT_SHORT 378
00136 #define LLT_SIGNED 379
00137 #define LLT_UNKNOWN 380
00138 #define LLT_STRUCT 381
00139 #define LLT_TELIPSIS 382
00140 #define LLT_UNION 383
00141 #define LLT_UNSIGNED 384
00142 #define LLT_VOID 385
00143 #define LLT_VOLATILE 386
00144 #define LLT_PRINTFLIKE 387
00145 #define LLT_SCANFLIKE 388
00146 #define LLT_MESSAGELIKE 389
00147
00148 #line 36 "llgrammar.y"
00149
00150
00151 # include "lclintMacros.nf"
00152 # include "llbasic.h"
00153 # include "lclscan.h"
00154 # include "checking.h"
00155 # include "lslparse.h"
00156 # include "lh.h"
00157 # include "usymtab_interface.h"
00158
00159
00160 static void yyprint ();
00161
00162
00163
00164 void ylerror (char *) ;
00165
00166
00167 bool g_inTypeDef = FALSE;
00168
00169
00170 # define YYDEBUG 1
00171
00172
00173 # define YYPRINT(file, type, value) yyprint (file, type, value)
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183 # ifdef WIN32
00184 # undef malloc
00185 # undef calloc
00186 # undef realloc
00187 # endif
00188
00189
00190 #line 78 "llgrammar.y"
00191 typedef union
00192 {
00193 ltoken ltok;
00194 qual typequal;
00195 unsigned int count;
00196 ltokenList ltokenList;
00197 abstDeclaratorNode abstDecl;
00198 declaratorNode declare;
00199 declaratorNodeList declarelist;
00200 typeExpr typeexpr;
00201 arrayQualNode array;
00202 quantifierNode quantifier;
00203 quantifierNodeList quantifiers;
00204 varNode var;
00205 varNodeList vars;
00206 storeRefNode storeref;
00207 storeRefNodeList storereflist;
00208 termNode term;
00209 termNodeList termlist;
00210 programNode program;
00211 stmtNode stmt;
00212 claimNode claim;
00213 typeNode type;
00214 iterNode iter;
00215 fcnNode fcn;
00216 fcnNodeList fcns;
00217 letDeclNode letdecl;
00218 letDeclNodeList letdecls;
00219 lclPredicateNode lclpredicate;
00220 modifyNode modify;
00221 paramNode param;
00222 paramNodeList paramlist;
00223 declaratorInvNodeList declaratorinvs;
00224 declaratorInvNode declaratorinv;
00225 abstBodyNode abstbody;
00226 abstractNode abstract;
00227 exposedNode exposed;
00228
00229 globalList globals;
00230 constDeclarationNode constdeclaration;
00231 varDeclarationNode vardeclaration;
00232 varDeclarationNodeList vardeclarationlist;
00233 initDeclNodeList initdecls;
00234 initDeclNode initdecl;
00235 stDeclNodeList structdecls;
00236 stDeclNode structdecl;
00237 strOrUnionNode structorunion;
00238 enumSpecNode enumspec;
00239 lclTypeSpecNode lcltypespec;
00240 typeNameNode typname;
00241 opFormNode opform;
00242 sigNode signature;
00243 nameNode name;
00244 typeNameNodeList namelist;
00245 replaceNode replace;
00246 replaceNodeList replacelist;
00247 renamingNode renaming;
00248 traitRefNode traitref;
00249 traitRefNodeList traitreflist;
00250 importNode import;
00251 importNodeList importlist;
00252 interfaceNode iface;
00253 interfaceNodeList interfacelist;
00254 CTypesNode ctypes;
00255 } YYSTYPE;
00256 #ifndef YYDEBUG
00257 #define YYDEBUG 1
00258 #endif
00259
00260 #include <stdio.h>
00261
00262 #ifndef __cplusplus
00263 #ifndef __STDC__
00264 #define const
00265 #endif
00266 #endif
00267
00268
00269
00270 #define YYFINAL 683
00271 #define YYFLAG -32768
00272 #define YYNTBASE 136
00273
00274 #define YYTRANSLATE(x) ((unsigned)(x) <= 389 ? yytranslate[x] : 290)
00275
00276 static const short yytranslate[] = { 0,
00277 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00278 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00279 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00280 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00281 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00282 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00283 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00284 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00285 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00286 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00287 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00288 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00289 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00290 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00291 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00292 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00293 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00294 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00295 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00296 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00297 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00298 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00299 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00300 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00301 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00302 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
00303 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00304 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
00305 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
00306 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
00307 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
00308 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
00309 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
00310 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
00311 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
00312 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
00313 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
00314 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
00315 127, 128, 129, 130, 131, 132, 133, 134, 135
00316 };
00317
00318 #if YYDEBUG != 0
00319 static const short yyprhs[] = { 0,
00320 0, 1, 5, 6, 9, 11, 13, 14, 17, 20,
00321 21, 24, 26, 28, 30, 34, 38, 40, 42, 44,
00322 46, 48, 50, 57, 58, 60, 62, 66, 69, 71,
00323 72, 76, 78, 80, 82, 84, 89, 93, 98, 103,
00324 105, 107, 109, 111, 113, 114, 128, 129, 144, 145,
00325 159, 164, 165, 166, 173, 174, 175, 183, 184, 185,
00326 193, 194, 195, 202, 203, 204, 211, 214, 217, 219,
00327 223, 225, 229, 231, 233, 237, 239, 241, 245, 247,
00328 252, 256, 263, 265, 269, 271, 273, 277, 279, 283,
00329 285, 289, 293, 297, 302, 304, 306, 308, 310, 312,
00330 316, 318, 322, 323, 326, 330, 333, 336, 337, 340,
00331 345, 346, 350, 352, 356, 362, 366, 368, 369, 373,
00332 374, 378, 379, 383, 387, 391, 393, 397, 399, 401,
00333 404, 406, 408, 409, 413, 414, 418, 419, 421, 423,
00334 425, 429, 431, 435, 436, 441, 447, 449, 453, 456,
00335 460, 464, 469, 473, 479, 486, 488, 492, 494, 496,
00336 499, 502, 506, 510, 514, 519, 521, 525, 530, 534,
00337 535, 538, 539, 541, 542, 549, 551, 555, 556, 560,
00338 561, 565, 567, 569, 571, 573, 575, 577, 579, 581,
00339 583, 585, 587, 590, 592, 594, 596, 598, 600, 602,
00340 604, 606, 608, 610, 612, 614, 616, 618, 620, 622,
00341 624, 626, 628, 630, 632, 634, 636, 638, 640, 642,
00342 644, 646, 648, 650, 652, 654, 656, 658, 660, 662,
00343 664, 666, 668, 670, 673, 679, 681, 684, 686, 689,
00344 690, 697, 698, 705, 708, 711, 712, 714, 716, 719,
00345 723, 725, 729, 730, 732, 739, 742, 744, 748, 750,
00346 752, 754, 758, 761, 764, 768, 773, 775, 779, 782,
00347 785, 789, 794, 796, 799, 802, 806, 811, 814, 817,
00348 820, 823, 827, 829, 830, 832, 836, 839, 841, 843,
00349 846, 850, 854, 859, 862, 866, 873, 875, 878, 881,
00350 885, 889, 894, 899, 905, 909, 914, 919, 925, 928,
00351 931, 935, 939, 941, 943, 945, 947, 949, 951, 953,
00352 954, 956, 958, 962, 964, 966, 971, 972, 974, 976,
00353 980, 982, 984, 991, 993, 997, 999, 1004, 1008, 1012,
00354 1014, 1017, 1020, 1022, 1024, 1026, 1029, 1031, 1034, 1037,
00355 1041, 1043, 1045, 1048, 1051, 1055, 1057, 1060, 1064, 1066,
00356 1072, 1076, 1081, 1084, 1088, 1091, 1093, 1097, 1101, 1103,
00357 1108, 1110, 1113, 1117, 1121, 1125, 1130, 1134, 1136, 1140,
00358 1142, 1144, 1146, 1148, 1150, 1152, 1157, 1162, 1167, 1172,
00359 1179, 1184, 1186, 1188, 1190, 1192, 1194, 1197, 1198, 1202,
00360 1204, 1208, 1212, 1217, 1219, 1221, 1223, 1225, 1227, 1229,
00361 1231, 1233
00362 };
00363
00364 static const short yyrhs[] = { -1,
00365 138, 137, 140, 0, 0, 138, 139, 0, 143, 0,
00366 144, 0, 0, 145, 141, 0, 150, 141, 0, 0,
00367 141, 142, 0, 145, 0, 150, 0, 144, 0, 57,
00368 174, 7, 0, 114, 178, 7, 0, 153, 0, 154,
00369 0, 155, 0, 157, 0, 160, 0, 146, 0, 121,
00370 284, 10, 147, 37, 7, 0, 0, 148, 0, 149,
00371 0, 148, 32, 149, 0, 122, 243, 0, 243, 0,
00372 0, 108, 151, 152, 0, 153, 0, 154, 0, 155,
00373 0, 157, 0, 50, 226, 188, 7, 0, 226, 188,
00374 7, 0, 116, 226, 188, 7, 0, 132, 226, 188,
00375 7, 0, 162, 0, 171, 0, 133, 0, 134, 0,
00376 135, 0, 0, 226, 239, 190, 158, 34, 192, 194,
00377 198, 199, 200, 203, 204, 35, 0, 0, 156, 226,
00378 239, 190, 159, 34, 192, 194, 198, 199, 200, 203,
00379 204, 35, 0, 0, 48, 286, 10, 205, 37, 190,
00380 161, 34, 194, 199, 208, 203, 35, 0, 48, 283,
00381 286, 7, 0, 0, 0, 62, 163, 111, 20, 164,
00382 213, 0, 0, 0, 62, 165, 97, 111, 20, 166,
00383 213, 0, 0, 0, 97, 62, 167, 111, 20, 168,
00384 213, 0, 0, 0, 56, 169, 111, 20, 170, 213,
00385 0, 0, 0, 112, 226, 172, 218, 173, 7, 0,
00386 229, 7, 0, 237, 7, 0, 175, 0, 174, 32,
00387 175, 0, 177, 0, 3, 177, 3, 0, 43, 0,
00388 177, 0, 176, 32, 177, 0, 282, 0, 179, 0,
00389 178, 32, 179, 0, 288, 0, 288, 10, 181, 37,
00390 0, 10, 180, 37, 0, 10, 180, 37, 10, 181,
00391 37, 0, 288, 0, 180, 32, 288, 0, 183, 0,
00392 182, 0, 182, 32, 183, 0, 244, 0, 182, 32,
00393 244, 0, 184, 0, 183, 32, 184, 0, 244, 53,
00394 222, 0, 244, 53, 185, 0, 244, 53, 185, 255,
00395 0, 289, 0, 248, 0, 187, 0, 259, 0, 189,
00396 0, 188, 32, 189, 0, 239, 0, 239, 33, 186,
00397 0, 0, 190, 191, 0, 226, 188, 7, 0, 64,
00398 7, 0, 65, 7, 0, 0, 192, 193, 0, 104,
00399 226, 188, 7, 0, 0, 60, 195, 7, 0, 196,
00400 0, 195, 32, 196, 0, 284, 31, 197, 46, 259,
00401 0, 284, 46, 259, 0, 226, 0, 0, 49, 258,
00402 7, 0, 0, 105, 258, 7, 0, 0, 61, 63,
00403 7, 0, 61, 45, 7, 0, 61, 201, 7, 0,
00404 202, 0, 201, 32, 202, 0, 259, 0, 227, 0,
00405 66, 227, 0, 64, 0, 65, 0, 0, 52, 258,
00406 7, 0, 0, 48, 258, 7, 0, 0, 206, 0,
00407 207, 0, 128, 0, 207, 32, 128, 0, 243, 0,
00408 207, 32, 243, 0, 0, 47, 34, 209, 35, 0,
00409 47, 34, 209, 7, 35, 0, 210, 0, 10, 209,
00410 37, 0, 209, 6, 0, 209, 8, 209, 0, 209,
00411 7, 209, 0, 283, 10, 211, 37, 0, 283, 10,
00412 37, 0, 284, 33, 283, 10, 37, 0, 284, 33,
00413 283, 10, 211, 37, 0, 212, 0, 211, 32, 212,
00414 0, 276, 0, 284, 0, 3, 212, 0, 212, 3,
00415 0, 212, 3, 212, 0, 10, 212, 37, 0, 283,
00416 10, 37, 0, 283, 10, 211, 37, 0, 7, 0,
00417 34, 214, 35, 0, 34, 176, 35, 7, 0, 34,
00418 35, 7, 0, 0, 214, 157, 0, 0, 216, 0,
00419 0, 58, 217, 278, 10, 258, 37, 0, 219, 0,
00420 218, 32, 219, 0, 0, 239, 220, 221, 0, 0,
00421 34, 215, 35, 0, 131, 0, 115, 0, 117, 0,
00422 119, 0, 120, 0, 123, 0, 124, 0, 125, 0,
00423 130, 0, 126, 0, 222, 0, 223, 222, 0, 20,
00424 0, 223, 0, 67, 0, 78, 0, 68, 0, 69,
00425 0, 71, 0, 72, 0, 73, 0, 74, 0, 95,
00426 0, 79, 0, 80, 0, 82, 0, 83, 0, 81,
00427 0, 75, 0, 76, 0, 77, 0, 87, 0, 88,
00428 0, 89, 0, 90, 0, 91, 0, 99, 0, 100,
00429 0, 97, 0, 98, 0, 103, 0, 101, 0, 92,
00430 0, 93, 0, 94, 0, 96, 0, 70, 0, 84,
00431 0, 85, 0, 224, 0, 229, 0, 237, 0, 225,
00432 226, 0, 8, 227, 31, 227, 8, 0, 226, 0,
00433 226, 228, 0, 6, 0, 228, 6, 0, 0, 127,
00434 232, 230, 34, 233, 35, 0, 0, 129, 232, 231,
00435 34, 233, 35, 0, 127, 285, 0, 129, 285, 0,
00436 0, 285, 0, 234, 0, 233, 234, 0, 226, 235,
00437 7, 0, 239, 0, 235, 32, 239, 0, 0, 32,
00438 0, 118, 232, 34, 238, 236, 35, 0, 118, 285,
00439 0, 25, 0, 238, 32, 25, 0, 241, 0, 240,
00440 0, 284, 0, 10, 240, 37, 0, 6, 240, 0,
00441 240, 247, 0, 240, 10, 37, 0, 240, 10, 206,
00442 37, 0, 20, 0, 10, 241, 37, 0, 6, 241,
00443 0, 241, 247, 0, 241, 10, 37, 0, 241, 10,
00444 206, 37, 0, 20, 0, 6, 242, 0, 242, 247,
00445 0, 242, 10, 37, 0, 242, 10, 206, 37, 0,
00446 226, 242, 0, 226, 240, 0, 226, 245, 0, 226,
00447 245, 0, 66, 226, 245, 0, 248, 0, 0, 246,
00448 0, 10, 246, 37, 0, 6, 246, 0, 6, 0,
00449 247, 0, 246, 247, 0, 246, 10, 37, 0, 10,
00450 206, 37, 0, 246, 10, 206, 37, 0, 11, 36,
00451 0, 11, 187, 36, 0, 55, 27, 110, 27, 51,
00452 27, 0, 251, 0, 27, 251, 0, 251, 27, 0,
00453 27, 251, 27, 0, 249, 252, 250, 0, 27, 249,
00454 252, 250, 0, 249, 252, 250, 27, 0, 27, 249,
00455 252, 250, 27, 0, 11, 252, 36, 0, 11, 252,
00456 36, 27, 0, 27, 11, 252, 36, 0, 27, 11,
00457 252, 36, 27, 0, 12, 282, 0, 26, 282, 0,
00458 27, 12, 282, 0, 27, 26, 282, 0, 22, 0,
00459 34, 0, 23, 0, 35, 0, 263, 0, 14, 0,
00460 39, 0, 0, 253, 0, 27, 0, 253, 254, 27,
00461 0, 32, 0, 24, 0, 31, 256, 26, 287, 0,
00462 0, 257, 0, 287, 0, 257, 32, 287, 0, 259,
00463 0, 260, 0, 55, 260, 110, 260, 51, 260, 0,
00464 261, 0, 260, 14, 260, 0, 262, 0, 277, 10,
00465 258, 37, 0, 262, 39, 262, 0, 262, 33, 262,
00466 0, 264, 0, 267, 265, 0, 267, 266, 0, 3,
00467 0, 6, 0, 267, 0, 263, 264, 0, 263, 0,
00468 265, 263, 0, 263, 267, 0, 266, 263, 267, 0,
00469 272, 0, 268, 0, 268, 272, 0, 272, 268, 0,
00470 272, 268, 272, 0, 269, 0, 269, 272, 0, 270,
00471 31, 287, 0, 270, 0, 11, 271, 36, 31, 287,
00472 0, 11, 271, 36, 0, 11, 36, 31, 287, 0,
00473 11, 36, 0, 249, 271, 250, 0, 249, 250, 0,
00474 259, 0, 271, 254, 259, 0, 10, 260, 37, 0,
00475 284, 0, 289, 10, 273, 37, 0, 275, 0, 272,
00476 274, 0, 272, 12, 282, 0, 272, 26, 282, 0,
00477 272, 11, 36, 0, 272, 11, 273, 36, 0, 272,
00478 31, 287, 0, 260, 0, 273, 32, 260, 0, 28,
00479 0, 29, 0, 30, 0, 38, 0, 276, 0, 106,
00480 0, 54, 10, 273, 37, 0, 113, 10, 44, 37,
00481 0, 113, 10, 201, 37, 0, 107, 10, 259, 37,
00482 0, 59, 10, 259, 32, 259, 37, 0, 107, 10,
00483 226, 37, 0, 42, 0, 43, 0, 40, 0, 41,
00484 0, 278, 0, 277, 278, 0, 0, 21, 279, 280,
00485 0, 281, 0, 280, 32, 281, 0, 284, 31, 197,
00486 0, 284, 31, 66, 197, 0, 25, 0, 20, 0,
00487 25, 0, 25, 0, 282, 0, 282, 0, 282, 0,
00488 282, 0, 282, 0
00489 };
00490
00491 #endif
00492
00493 #if YYDEBUG != 0
00494 static const short yyrline[] = { 0,
00495 382, 383, 386, 387, 390, 391, 394, 395, 396, 399,
00496 400, 403, 404, 405, 408, 414, 418, 420, 422, 424,
00497 426, 428, 432, 436, 437, 440, 442, 446, 447, 450,
00498 451, 454, 456, 458, 460, 464, 468, 470, 472, 476,
00499 477, 480, 481, 482, 485, 486, 493, 495, 506, 508,
00500 511, 515, 515, 516, 517, 517, 519, 520, 521, 522,
00501 523, 523, 524, 527, 528, 529, 530, 532, 548, 550,
00502 554, 555, 557, 560, 561, 564, 568, 570, 574, 576,
00503 578, 580, 584, 585, 588, 590, 592, 595, 597, 600,
00504 602, 605, 606, 607, 611, 612, 614, 616, 619, 621,
00505 625, 626, 629, 631, 635, 636, 637, 640, 641, 644,
00506 648, 649, 652, 653, 656, 657, 659, 662, 663, 666,
00507 667, 670, 671, 672, 673, 676, 677, 680, 681, 682,
00508 683, 684, 687, 688, 691, 692, 695, 696, 699, 700,
00509 701, 704, 705, 708, 709, 710, 713, 714, 717, 722,
00510 728, 736, 738, 740, 742, 746, 747, 750, 751, 752,
00511 753, 754, 755, 756, 758, 762, 763, 764, 765, 768,
00512 769, 772, 773, 776, 776, 785, 786, 790, 791, 794,
00513 795, 798, 799, 800, 801, 802, 803, 804, 805, 806,
00514 807, 815, 816, 821, 823, 829, 830, 831, 832, 833,
00515 834, 835, 836, 837, 838, 839, 840, 841, 842, 843,
00516 844, 845, 846, 847, 848, 849, 850, 851, 852, 853,
00517 854, 855, 856, 857, 858, 859, 860, 861, 862, 863,
00518 866, 868, 870, 872, 874, 883, 884, 889, 890, 893,
00519 895, 897, 899, 901, 903, 907, 908, 911, 912, 917,
00520 920, 922, 926, 927, 930, 932, 936, 937, 947, 948,
00521 951, 952, 953, 954, 955, 956, 959, 960, 961, 962,
00522 963, 964, 973, 974, 975, 976, 977, 983, 984, 985,
00523 995, 996, 997, 1002, 1003, 1006, 1007, 1008, 1009, 1010,
00524 1011, 1012, 1013, 1016, 1017, 1020, 1022, 1024, 1026, 1028,
00525 1031, 1033, 1035, 1037, 1039, 1041, 1049, 1051, 1053, 1056,
00526 1059, 1062, 1067, 1068, 1071, 1072, 1075, 1076, 1077, 1080,
00527 1081, 1084, 1085, 1088, 1089, 1092, 1095, 1096, 1099, 1100,
00528 1103, 1106, 1112, 1114, 1115, 1118, 1119, 1124, 1126, 1130,
00529 1131, 1132, 1135, 1136, 1139, 1140, 1143, 1144, 1147, 1148,
00530 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1160, 1161, 1164,
00531 1167, 1169, 1173, 1177, 1178, 1181, 1182, 1185, 1187, 1189,
00532 1191, 1192, 1194, 1196, 1198, 1201, 1203, 1207, 1208, 1211,
00533 1212, 1213, 1214, 1217, 1218, 1219, 1220, 1221, 1222, 1227,
00534 1233, 1243, 1244, 1245, 1246, 1249, 1251, 1255, 1259, 1262,
00535 1263, 1266, 1267, 1270, 1271, 1274, 1275, 1276, 1277, 1278,
00536 1279, 1280
00537 };
00538 #endif
00539
00540
00541 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
00542
00543 static const char * const yytname[] = { "$","error","$undefined.","simpleOp",
00544 "PREFIX_OP","POSTFIX_OP","LLT_MULOP","LLT_SEMI","LLT_VERTICALBAR","ITERATION_OP",
00545 "LLT_LPAR","LLT_LBRACKET","selectSym","LLT_IF_THEN_ELSE","logicalOp","eqSepSym",
00546 "equationSym","commentSym","LLT_WHITESPACE","LLT_EOL","LLT_TYPEDEF_NAME","quantifierSym",
00547 "openSym","closeSym","sepSym","simpleId","mapSym","markerSym","preSym","postSym",
00548 "anySym","LLT_COLON","LLT_COMMA","LLT_EQUALS","LLT_LBRACE","LLT_RBRACE","LLT_RBRACKET",
00549 "LLT_RPAR","LLT_QUOTE","eqOp","LLT_CCHAR","LLT_CFLOAT","LLT_CINTEGER","LLT_LCSTRING",
00550 "LLT_ALL","LLT_ANYTHING","LLT_BE","LLT_BODY","LLT_CLAIMS","LLT_CHECKS","LLT_CONSTANT",
00551 "LLT_ELSE","LLT_ENSURES","LLT_FOR","LLT_FRESH","LLT_IF","LLT_IMMUTABLE","LLT_IMPORTS",
00552 "LLT_CONSTRAINT","LLT_ISSUB","LLT_LET","LLT_MODIFIES","LLT_MUTABLE","LLT_NOTHING",
00553 "LLT_INTERNAL","LLT_FILESYS","LLT_OBJ","LLT_OUT","LLT_SEF","LLT_ONLY","LLT_PARTIAL",
00554 "LLT_OWNED","LLT_DEPENDENT","LLT_KEEP","LLT_KEPT","LLT_TEMP","LLT_SHARED","LLT_UNIQUE",
00555 "LLT_UNUSED","LLT_EXITS","LLT_MAYEXIT","LLT_NEVEREXIT","LLT_TRUEEXIT","LLT_FALSEEXIT",
00556 "LLT_UNDEF","LLT_KILLED","LLT_CHECKMOD","LLT_CHECKED","LLT_UNCHECKED","LLT_CHECKEDSTRICT",
00557 "LLT_TRUENULL","LLT_FALSENULL","LLT_LNULL","LLT_LNOTNULL","LLT_RETURNED","LLT_OBSERVER",
00558 "LLT_EXPOSED","LLT_REFCOUNTED","LLT_REFS","LLT_RELNULL","LLT_RELDEF","LLT_KILLREF",
00559 "LLT_TEMPREF","LLT_NEWREF","LLT_PRIVATE","LLT_REQUIRES","LLT_RESULT","LLT_SIZEOF",
00560 "LLT_SPEC","LLT_TAGGEDUNION","LLT_THEN","LLT_TYPE","LLT_TYPEDEF","LLT_UNCHANGED",
00561 "LLT_USES","LLT_CHAR","LLT_CONST","LLT_DOUBLE","LLT_ENUM","LLT_FLOAT","LLT_INT",
00562 "LLT_ITER","LLT_YIELD","LLT_LONG","LLT_SHORT","LLT_SIGNED","LLT_UNKNOWN","LLT_STRUCT",
00563 "LLT_TELIPSIS","LLT_UNION","LLT_UNSIGNED","LLT_VOID","LLT_VOLATILE","LLT_PRINTFLIKE",
00564 "LLT_SCANFLIKE","LLT_MESSAGELIKE","interface","@1","externals","external","optDeclarations",
00565 "declarations","declaration","imports","uses","export","iter","iterParamList",
00566 "realIterParamList","iterParam","private","@2","private2","constDeclaration",
00567 "varDeclaration","type","special","fcn","@3","@4","claim","@5","abstract","@6",
00568 "@7","@8","@9","@10","@11","@12","@13","exposed","@14","@15","importNameList",
00569 "importName","interfaceNameList","interfaceName","traitRefNodeList","traitRef",
00570 "traitIdList","renaming","nameList","replaceNodeList","replace","name","initializer",
00571 "constLclExpr","initDecls","initDecl","globals","globalDecl","privateInits",
00572 "privateInit","optLetDecl","beDeclList","beDecl","sortSpec","optChecks","optRequire",
00573 "optModify","storeRefList","storeRef","optEnsure","optClaim","optParamList",
00574 "realParamList","paramList","optBody","callExpr","stmt","valueList","value",
00575 "abstBody","fcns","optTypeInv","typeInv","@16","declaratorInvs","declaratorInv",
00576 "@17","optExposedBody","CType","CTypes","typeSpecifier","specialQualifier","lclTypeSpec",
00577 "lclType","pointers","structOrUnionSpec","@18","@19","optTagId","structDecls",
00578 "structDecl","declaratorList","optCOMMA","enumSpec","enumeratorList","declarator",
00579 "notype_decl","after_type_decl","parameter_decl","param","typeName","optAbstDeclarator",
00580 "abstDeclarator","arrayQual","opForm","open","close","anyOp","middle","placeList",
00581 "separator","signature","domain","sortList","lclPredicate","term","term0","equalityTerm",
00582 "simpleOpTerm","simpleOp2","prefixOpTerm","postfixOps","infixOpPart","secondary",
00583 "bracketed","sqBracketed","matched","args","primary","termList","stateFcn","lclPrimary",
00584 "cLiteral","quantifiers","quantifier","@20","quantifiedList","quantified","simpleIdOrTypedefName",
00585 "fcnId","varId","tagId","claimId","sortId","traitId","opId", NULL
00586 };
00587 #endif
00588
00589 static const short yyr1[] = { 0,
00590 137, 136, 138, 138, 139, 139, 140, 140, 140, 141,
00591 141, 142, 142, 142, 143, 144, 145, 145, 145, 145,
00592 145, 145, 146, 147, 147, 148, 148, 149, 149, 151,
00593 150, 152, 152, 152, 152, 153, 154, 154, 154, 155,
00594 155, 156, 156, 156, 158, 157, 159, 157, 161, 160,
00595 160, 163, 164, 162, 165, 166, 162, 167, 168, 162,
00596 169, 170, 162, 172, 173, 171, 171, 171, 174, 174,
00597 175, 175, 175, 176, 176, 177, 178, 178, 179, 179,
00598 179, 179, 180, 180, 181, 181, 181, 182, 182, 183,
00599 183, 184, 184, 184, 185, 185, 186, 187, 188, 188,
00600 189, 189, 190, 190, 191, 191, 191, 192, 192, 193,
00601 194, 194, 195, 195, 196, 196, 197, 198, 198, 199,
00602 199, 200, 200, 200, 200, 201, 201, 202, 202, 202,
00603 202, 202, 203, 203, 204, 204, 205, 205, 206, 206,
00604 206, 207, 207, 208, 208, 208, 209, 209, 209, 209,
00605 209, 210, 210, 210, 210, 211, 211, 212, 212, 212,
00606 212, 212, 212, 212, 212, 213, 213, 213, 213, 214,
00607 214, 215, 215, 217, 216, 218, 218, 220, 219, 221,
00608 221, 222, 222, 222, 222, 222, 222, 222, 222, 222,
00609 222, 223, 223, 224, 224, 225, 225, 225, 225, 225,
00610 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
00611 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
00612 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
00613 226, 226, 226, 226, 226, 227, 227, 228, 228, 230,
00614 229, 231, 229, 229, 229, 232, 232, 233, 233, 234,
00615 235, 235, 236, 236, 237, 237, 238, 238, 239, 239,
00616 240, 240, 240, 240, 240, 240, 241, 241, 241, 241,
00617 241, 241, 242, 242, 242, 242, 242, 243, 243, 243,
00618 244, 244, 244, 245, 245, 246, 246, 246, 246, 246,
00619 246, 246, 246, 247, 247, 248, 248, 248, 248, 248,
00620 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
00621 248, 248, 249, 249, 250, 250, 251, 251, 251, 252,
00622 252, 253, 253, 254, 254, 255, 256, 256, 257, 257,
00623 258, 259, 260, 260, 260, 261, 261, 261, 261, 262,
00624 262, 262, 263, 263, 264, 264, 265, 265, 266, 266,
00625 267, 267, 267, 267, 267, 267, 267, 268, 268, 269,
00626 269, 269, 269, 270, 270, 271, 271, 272, 272, 272,
00627 272, 272, 272, 272, 272, 272, 272, 273, 273, 274,
00628 274, 274, 274, 275, 275, 275, 275, 275, 275, 275,
00629 275, 276, 276, 276, 276, 277, 277, 279, 278, 280,
00630 280, 281, 281, 282, 282, 283, 284, 285, 286, 287,
00631 288, 289
00632 };
00633
00634 static const short yyr2[] = { 0,
00635 0, 3, 0, 2, 1, 1, 0, 2, 2, 0,
00636 2, 1, 1, 1, 3, 3, 1, 1, 1, 1,
00637 1, 1, 6, 0, 1, 1, 3, 2, 1, 0,
00638 3, 1, 1, 1, 1, 4, 3, 4, 4, 1,
00639 1, 1, 1, 1, 0, 13, 0, 14, 0, 13,
00640 4, 0, 0, 6, 0, 0, 7, 0, 0, 7,
00641 0, 0, 6, 0, 0, 6, 2, 2, 1, 3,
00642 1, 3, 1, 1, 3, 1, 1, 3, 1, 4,
00643 3, 6, 1, 3, 1, 1, 3, 1, 3, 1,
00644 3, 3, 3, 4, 1, 1, 1, 1, 1, 3,
00645 1, 3, 0, 2, 3, 2, 2, 0, 2, 4,
00646 0, 3, 1, 3, 5, 3, 1, 0, 3, 0,
00647 3, 0, 3, 3, 3, 1, 3, 1, 1, 2,
00648 1, 1, 0, 3, 0, 3, 0, 1, 1, 1,
00649 3, 1, 3, 0, 4, 5, 1, 3, 2, 3,
00650 3, 4, 3, 5, 6, 1, 3, 1, 1, 2,
00651 2, 3, 3, 3, 4, 1, 3, 4, 3, 0,
00652 2, 0, 1, 0, 6, 1, 3, 0, 3, 0,
00653 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00654 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
00655 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00656 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00657 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00658 1, 1, 1, 2, 5, 1, 2, 1, 2, 0,
00659 6, 0, 6, 2, 2, 0, 1, 1, 2, 3,
00660 1, 3, 0, 1, 6, 2, 1, 3, 1, 1,
00661 1, 3, 2, 2, 3, 4, 1, 3, 2, 2,
00662 3, 4, 1, 2, 2, 3, 4, 2, 2, 2,
00663 2, 3, 1, 0, 1, 3, 2, 1, 1, 2,
00664 3, 3, 4, 2, 3, 6, 1, 2, 2, 3,
00665 3, 4, 4, 5, 3, 4, 4, 5, 2, 2,
00666 3, 3, 1, 1, 1, 1, 1, 1, 1, 0,
00667 1, 1, 3, 1, 1, 4, 0, 1, 1, 3,
00668 1, 1, 6, 1, 3, 1, 4, 3, 3, 1,
00669 2, 2, 1, 1, 1, 2, 1, 2, 2, 3,
00670 1, 1, 2, 2, 3, 1, 2, 3, 1, 5,
00671 3, 4, 2, 3, 2, 1, 3, 3, 1, 4,
00672 1, 2, 3, 3, 3, 4, 3, 1, 3, 1,
00673 1, 1, 1, 1, 1, 4, 4, 4, 4, 6,
00674 4, 1, 1, 1, 1, 1, 2, 0, 3, 1,
00675 3, 3, 4, 1, 1, 1, 1, 1, 1, 1,
00676 1, 1
00677 };
00678
00679 static const short yydefact[] = { 3,
00680 1, 0, 0, 7, 4, 5, 6, 0, 405, 404,
00681 73, 0, 69, 71, 76, 0, 0, 77, 411, 79,
00682 0, 194, 0, 0, 61, 52, 196, 198, 199, 228,
00683 200, 201, 202, 203, 210, 211, 212, 197, 205, 206,
00684 209, 207, 208, 229, 230, 213, 214, 215, 216, 217,
00685 224, 225, 226, 204, 227, 220, 221, 218, 219, 223,
00686 222, 30, 0, 183, 0, 184, 246, 185, 186, 0,
00687 187, 188, 189, 191, 246, 246, 190, 182, 0, 42,
00688 43, 44, 2, 10, 22, 10, 17, 18, 19, 0,
00689 20, 21, 40, 41, 192, 195, 231, 0, 0, 232,
00690 233, 0, 15, 0, 0, 83, 16, 0, 0, 220,
00691 236, 0, 232, 233, 406, 409, 0, 0, 0, 0,
00692 0, 0, 58, 0, 64, 0, 0, 408, 256, 407,
00693 0, 240, 244, 242, 245, 0, 8, 9, 0, 193,
00694 234, 0, 0, 267, 0, 99, 103, 260, 259, 261,
00695 67, 68, 72, 70, 0, 81, 78, 343, 344, 320,
00696 0, 318, 313, 0, 0, 314, 319, 0, 0, 0,
00697 86, 85, 90, 284, 88, 283, 320, 297, 317, 238,
00698 237, 0, 0, 137, 0, 101, 0, 0, 0, 0,
00699 31, 32, 33, 34, 35, 0, 0, 0, 24, 0,
00700 0, 0, 11, 14, 12, 13, 103, 263, 269, 0,
00701 0, 37, 0, 0, 45, 0, 0, 264, 0, 270,
00702 84, 0, 322, 0, 321, 309, 310, 320, 0, 0,
00703 320, 298, 0, 284, 80, 0, 0, 288, 0, 281,
00704 285, 289, 0, 0, 299, 239, 0, 51, 140, 0,
00705 138, 139, 284, 142, 36, 62, 53, 0, 0, 65,
00706 176, 178, 38, 257, 253, 0, 0, 25, 26, 29,
00707 0, 0, 39, 47, 262, 268, 100, 0, 0, 398,
00708 407, 394, 395, 392, 393, 0, 0, 0, 385, 0,
00709 0, 102, 97, 0, 98, 332, 334, 336, 0, 340,
00710 345, 352, 356, 359, 351, 371, 384, 0, 396, 412,
00711 369, 0, 0, 0, 0, 104, 0, 265, 0, 294,
00712 0, 271, 0, 0, 305, 325, 324, 0, 0, 311,
00713 312, 0, 300, 0, 282, 87, 89, 91, 0, 287,
00714 0, 0, 0, 290, 93, 92, 96, 95, 315, 316,
00715 301, 235, 103, 0, 288, 0, 273, 279, 278, 280,
00716 0, 0, 56, 59, 0, 0, 180, 254, 0, 28,
00717 0, 0, 0, 0, 248, 0, 0, 0, 363, 366,
00718 0, 0, 0, 0, 0, 0, 0, 365, 0, 0,
00719 0, 0, 346, 345, 347, 341, 342, 353, 357, 0,
00720 0, 0, 0, 380, 381, 382, 0, 383, 354, 372,
00721 0, 397, 0, 106, 107, 108, 0, 266, 295, 272,
00722 82, 306, 323, 307, 302, 0, 292, 286, 291, 0,
00723 327, 94, 303, 49, 141, 143, 274, 288, 0, 275,
00724 166, 170, 63, 54, 0, 0, 177, 66, 172, 179,
00725 258, 255, 23, 27, 0, 251, 241, 249, 243, 108,
00726 368, 0, 361, 0, 399, 400, 0, 378, 0, 0,
00727 0, 194, 0, 0, 0, 131, 132, 0, 0, 126,
00728 129, 128, 364, 335, 339, 338, 349, 348, 0, 410,
00729 358, 375, 0, 373, 374, 377, 355, 0, 331, 0,
00730 111, 105, 308, 304, 0, 293, 0, 328, 329, 0,
00731 276, 0, 0, 0, 74, 0, 57, 60, 174, 0,
00732 173, 250, 0, 111, 362, 0, 367, 0, 0, 0,
00733 386, 0, 0, 391, 389, 387, 130, 0, 388, 350,
00734 376, 337, 370, 0, 0, 109, 118, 296, 0, 0,
00735 111, 277, 169, 0, 0, 167, 171, 0, 0, 181,
00736 252, 118, 360, 401, 0, 402, 117, 379, 0, 0,
00737 127, 0, 113, 0, 0, 0, 120, 326, 330, 120,
00738 75, 168, 103, 0, 120, 403, 333, 390, 112, 0,
00739 0, 0, 0, 0, 0, 122, 144, 0, 122, 114,
00740 0, 116, 110, 119, 0, 0, 133, 0, 133, 0,
00741 133, 0, 121, 0, 0, 0, 0, 135, 0, 0,
00742 175, 135, 115, 124, 123, 125, 0, 0, 0, 0,
00743 407, 0, 147, 0, 0, 50, 0, 134, 0, 46,
00744 0, 149, 0, 0, 145, 0, 0, 48, 136, 0,
00745 148, 146, 151, 150, 0, 0, 153, 0, 156, 158,
00746 0, 159, 406, 0, 160, 0, 0, 152, 161, 0,
00747 0, 163, 157, 162, 164, 0, 154, 0, 165, 155,
00748 0, 0, 0
00749 };
00750
00751 static const short yydefgoto[] = { 681,
00752 4, 1, 5, 83, 137, 203, 6, 204, 205, 85,
00753 267, 268, 269, 206, 124, 191, 87, 88, 89, 90,
00754 91, 315, 377, 92, 510, 93, 121, 362, 122, 445,
00755 190, 446, 120, 361, 94, 196, 366, 12, 13, 514,
00756 14, 17, 18, 105, 170, 171, 172, 173, 345, 292,
00757 293, 145, 146, 215, 316, 501, 546, 547, 572, 573,
00758 566, 577, 596, 607, 479, 480, 618, 629, 250, 341,
00759 252, 609, 653, 633, 658, 659, 443, 516, 520, 521,
00760 559, 260, 261, 367, 450, 95, 96, 97, 98, 253,
00761 481, 181, 113, 200, 201, 127, 374, 375, 455, 369,
00762 114, 265, 186, 148, 149, 359, 254, 175, 240, 241,
00763 242, 176, 294, 351, 178, 224, 225, 464, 432, 507,
00764 508, 498, 499, 296, 297, 298, 299, 300, 396, 397,
00765 301, 302, 303, 304, 381, 305, 469, 410, 306, 307,
00766 308, 309, 382, 465, 466, 310, 661, 311, 129, 118,
00767 491, 20, 312
00768 };
00769
00770 static const short yypact[] = {-32768,
00771 -28, 224, 372, 1343,-32768,-32768,-32768, 132,-32768,-32768,
00772 -32768, 48,-32768,-32768,-32768, 132, 105,-32768,-32768, 49,
00773 2880,-32768, 227, 2880,-32768, 17,-32768,-32768,-32768,-32768,
00774 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
00775 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
00776 -32768,-32768,-32768,-32768,-32768, 161,-32768,-32768,-32768,-32768,
00777 -32768,-32768, 2880,-32768, 2880,-32768, 132,-32768,-32768, 221,
00778 -32768,-32768,-32768,-32768, 132, 132,-32768,-32768, 2880,-32768,
00779 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2880,
00780 -32768,-32768,-32768,-32768,-32768, 1065,-32768, 2880, 396, 247,
00781 270, 280,-32768, 224, 311,-32768,-32768, 372, 1147,-32768,
00782 310, 265,-32768,-32768, 343,-32768, 132, 345, 396, 209,
00783 246, 264,-32768, 1437,-32768, 396, 340,-32768, 346,-32768,
00784 378,-32768, 346,-32768, 346, 396, 1241, 1241, 396,-32768,
00785 -32768, 396, 396,-32768, 123,-32768, 118, 198, 294,-32768,
00786 -32768,-32768,-32768,-32768, 132, 431,-32768,-32768,-32768, 416,
00787 132,-32768,-32768, 132, 488,-32768,-32768, 423, 2880, 427,
00788 442, 444,-32768, 462, 417,-32768, 416, 466,-32768,-32768,
00789 499, 2880, 502, 2302, 149, 484, 501, 512, 428, 429,
00790 -32768,-32768,-32768,-32768,-32768, 396, 156, 509, 2396, 504,
00791 507, 165,-32768,-32768,-32768,-32768,-32768, 198, 294, 89,
00792 112,-32768, 396, 3134, 1824, 1920, 3009,-32768, 2016,-32768,
00793 -32768, 1147,-32768, 500, 33,-32768,-32768, 416, 132, 132,
00794 416, 516, 437, 462,-32768, 1147, 1147, 462, 1730,-32768,
00795 329,-32768, 239, 93,-32768,-32768, 538,-32768,-32768, 513,
00796 -32768, 517, 379,-32768,-32768,-32768,-32768, 533, 534, 523,
00797 -32768,-32768,-32768,-32768, 526, 2880, 522, 532,-32768,-32768,
00798 2880, 2880,-32768, 1824,-32768,-32768,-32768, 3134, 3036,-32768,
00799 343,-32768,-32768,-32768,-32768, 555, 3134, 556,-32768, 559,
00800 560,-32768,-32768, 412,-32768, 558,-32768, 121, 557,-32768,
00801 436, 438, 438, 540, 761,-32768,-32768, 290,-32768,-32768,
00802 -32768, 563, 567, 568, 542,-32768, 396,-32768, 541,-32768,
00803 544,-32768, 546, 547, 562,-32768,-32768, 566, 549,-32768,
00804 -32768, 93,-32768, 574,-32768, 444, 417,-32768, 417, 329,
00805 550, 128, 2112,-32768, 564,-32768,-32768,-32768,-32768,-32768,
00806 575,-32768,-32768, 2490, 379, 1634,-32768, 198, 376,-32768,
00807 34, 34,-32768,-32768, 396, 579, 570, 565, 578,-32768,
00808 587, 2396, 396, 2591,-32768, 2692, 576, 159, 583,-32768,
00809 393, 221, 3134, 21, 3134, 1018, 760,-32768, 463, 3134,
00810 557, 557,-32768,-32768, 288, 436, 436, 295, 295, 132,
00811 3077, 132, 132,-32768,-32768,-32768, 132,-32768, 438,-32768,
00812 3134,-32768, 3134,-32768,-32768,-32768, 211,-32768,-32768,-32768,
00813 -32768,-32768,-32768, 582, 588, 571,-32768,-32768,-32768, 586,
00814 132,-32768,-32768, 1824,-32768,-32768, 376, 434, 2208,-32768,
00815 -32768, 373,-32768,-32768, 34, 34,-32768,-32768, 561,-32768,
00816 -32768,-32768,-32768,-32768, 249,-32768,-32768,-32768,-32768,-32768,
00817 -32768, 132, 594, 3134, 596,-32768, 595, 558, 419, 3134,
00818 598, 625, 599, 601, 603,-32768,-32768, 2880, 425,-32768,
00819 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 288,-32768,
00820 -32768,-32768, 20,-32768,-32768,-32768, 295, 606,-32768, 445,
00821 -7,-32768,-32768,-32768, 617,-32768, 619, 614,-32768, 613,
00822 -32768, 611, 642, 472,-32768, 1538,-32768,-32768,-32768, 615,
00823 -32768,-32768, 396, -7,-32768, 132,-32768, 221, 2786, 3134,
00824 -32768, 28, 3134,-32768,-32768,-32768,-32768, 889,-32768,-32768,
00825 -32768,-32768,-32768, 221, 2880,-32768, 605,-32768, 132, 132,
00826 597,-32768,-32768, 132, 648,-32768,-32768, 396, 637,-32768,
00827 -32768, 605,-32768,-32768, 2880,-32768,-32768, 558, 3134, 622,
00828 -32768, 277,-32768, 115, 396, 3134, 572,-32768,-32768, 572,
00829 -32768,-32768,-32768, 650, 572,-32768, 558,-32768,-32768, 221,
00830 2880, 3134, 282, 654, 3134, 607, 620, 3134, 607,-32768,
00831 616,-32768,-32768,-32768, 659, 631, 623, 635, 623, 641,
00832 623, 3134,-32768, 672, 673, 334, 3134, 633, 192, 647,
00833 -32768, 633,-32768,-32768,-32768,-32768, 676, 3134, 649, 192,
00834 677, 187,-32768, 678, 656,-32768, 657,-32768, 684,-32768,
00835 65,-32768, 200, 192,-32768, 245, 668,-32768,-32768, 192,
00836 -32768,-32768, 709,-32768, 189, 189,-32768, 451, 730,-32768,
00837 725,-32768,-32768, 726,-32768, 47, 189,-32768, 250, 309,
00838 335,-32768, 730,-32768,-32768, 452,-32768, 464,-32768,-32768,
00839 739, 740,-32768
00840 };
00841
00842 static const short yypgoto[] = {-32768,
00843 -32768,-32768,-32768,-32768, 655,-32768,-32768, 741, 743,-32768,
00844 -32768,-32768, 371, 748,-32768,-32768, 621, 629, 640,-32768,
00845 -120,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
00846 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 661,-32768,
00847 -6,-32768, 651,-32768, 545,-32768, 539, 537,-32768,-32768,
00848 552, -114, 573, -179,-32768, 316,-32768, -434,-32768, 188,
00849 -522, 215, -77, 180, 178, 255, -420, 166,-32768, -165,
00850 -32768,-32768, -406,-32768, -251, -288, -326,-32768,-32768,-32768,
00851 -32768,-32768, 432,-32768,-32768, -76,-32768,-32768,-32768, -3,
00852 -18,-32768, 45,-32768,-32768, 440, 524, -79,-32768,-32768,
00853 63,-32768, -93, -135, 369, 443, -174, 287, -189, -212,
00854 -101, 569, -32, -257, 643, -137,-32768, 580,-32768,-32768,
00855 -32768, -532, -201, -254,-32768, 137, -95, 508,-32768,-32768,
00856 -282, 505,-32768,-32768, 515, -264, -173,-32768,-32768, -243,
00857 -32768, -297,-32768,-32768, 278, 7, -23, -38, 455, 694,
00858 -373, 15, 577
00859 };
00860
00861
00862 #define YYLAST 3247
00863
00864
00865 static const short yytable[] = { 117,
00866 99, 102, 112, 195, 185, 147, 208, 210, 15, 19,
00867 412, 197, 295, 179, 15, 295, 394, 111, 251, 140,
00868 119, 202, 19, 378, 270, 340, 342, 274, 2, 116,
00869 106, 131, 384, 496, 390, 444, 388, 398, 399, 244,
00870 441, 390, 586, 594, 335, 207, 218, 220, 100, 669,
00871 319, 530, 544, 323, 103, 541, 326, 509, 109, 125,
00872 150, 126, 605, 360, 327, 610, 101, 442, 601, 179,
00873 642, 650, 644, 128, 425, 136, 177, 380, 569, 104,
00874 150, 128, 128, 672, 627, 3, 139, 150, 525, 562,
00875 329, 370, 380, 332, 141, 639, 545, 150, 216, 217,
00876 150, 651, 262, 150, 150, 174, 218, 220, 218, 220,
00877 15, 107, 487, -55, 19, 349, 580, 358, 517, 518,
00878 99, 219, 217, 116, -101, 275, 179, 350, 468, 212,
00879 470, 483, 231, 99, 99, 484, 108, 343, 217, 344,
00880 179, 179, 340, 342, 497, 591, 468, 179, 276, -101,
00881 214, 9, 563, 391, 213, 255, 10, 150, 468, 392,
00882 592, 19, 263, 247, 428, 234, 346, 226, 100, 221,
00883 227, 273, 390, 434, 150, 578, 579, 430, 111, 436,
00884 213, 100, 100, 471, 474, 482, 101, 213, 620, 177,
00885 622, 655, 642, 643, 644, 461, 213, 270, 656, 101,
00886 101, 630, 417, 177, 177, 395, 540, 216, 217, 630,
00887 177, 317, 632, 631, 150, 532, 631, 502, 174, 208,
00888 210, 645, 123, 641, 631, 340, 8, 493, 282, 283,
00889 284, 285, 174, 174, 652, 330, 331, 654, 344, 500,
00890 344, 158, 213, 9, 159, 130, 9, 655, 10, 160,
00891 161, 115, 162, 151, 656, 522, 218, 440, 9, 656,
00892 163, 584, 527, 10, 164, 165, 11, 373, 373, 631,
00893 317, 262, 166, 512, 631, 568, 152, 167, 150, 456,
00894 523, 657, 153, 589, 282, 283, 284, 285, 603, 282,
00895 283, 284, 285, 168, 458, 182, 458, 278, 279, 411,
00896 488, 489, 208, 219, 217, 401, 402, 9, 590, 163,
00897 280, 655, 281, 213, 587, 180, 150, 150, 656, 187,
00898 403, 166, 404, 405, 406, 407, 150, 282, 283, 284,
00899 285, 570, 408, 631, 150, 440, 482, 655, 343, 217,
00900 626, 286, 155, 467, 656, 675, 288, 156, 282, 283,
00901 284, 285, -404, 64, 184, 66, 188, 68, 69, 631,
00902 189, 71, 72, 73, 74, 538, 665, 666, 77, 78,
00903 373, 677, 373, 198, 282, 283, 284, 285, 673, -247,
00904 674, 16, 473, 111, 355, 439, 217, 199, 356, 217,
00905 602, 9, 9, 289, 290, 557, 10, 10, 357, 150,
00906 291, 142, 660, 130, 482, 143, 490, 513, 494, 495,
00907 623, 660, 660, 490, 158, 144, 326, 159, 676, 678,
00908 130, 278, 279, 660, 327, 660, 660, 660, 463, 561,
00909 317, 9, 280, 163, 349, 515, 281, 490, 158, 438,
00910 222, 159, 223, 356, 217, 166, 350, 278, 15, 233,
00911 530, 282, 283, 284, 285, 531, 538, 9, 130, 537,
00912 593, 539, 281, 235, 583, 286, 287, 238, 490, 243,
00913 288, 239, 217, 236, 111, 237, 530, 282, 283, 284,
00914 285, 543, 667, 667, 150, 349, 326, 668, 679, 467,
00915 158, 286, 245, 159, 327, 667, 288, 350, 228, 229,
00916 680, 162, 597, 554, 246, 574, 555, 599, 248, 163,
00917 209, 211, 558, 230, 132, 134, 214, 289, 290, 150,
00918 256, 166, 337, 339, 291, 567, 167, 485, 486, 133,
00919 135, 257, 490, 264, 111, 325, 150, 271, 258, 259,
00920 272, 575, 333, 289, 290, 352, 334, 581, 354, 353,
00921 291, 574, 363, 364, 365, 490, 490, 368, 371, 158,
00922 15, 567, 159, 372, 383, 385, 278, 279, 386, 387,
00923 400, 390, 413, 414, 415, 416, 9, 418, 163, 419,
00924 635, 281, 420, 421, 424, 448, 427, 567, 422, 451,
00925 166, 635, 423, 453, 431, 634, 282, 283, 284, 285,
00926 426, 433, 111, 449, 635, 635, 634, 662, 503, 460,
00927 286, 635, 452, 462, 504, 288, 662, 662, 519, 634,
00928 634, 505, 506, 664, 526, 529, 634, 528, 662, 533,
00929 662, 662, 662, 158, -405, 534, 159, 535, 21, 536,
00930 278, 279, 542, 548, 549, 550, 551, 552, 553, 560,
00931 472, 280, 163, 576, 582, 281, 544, 280, 588, 598,
00932 604, 612, 289, 290, 166, 613, 608, 606, 619, 291,
00933 282, 283, 284, 285, 617, 614, 595, 621, 624, 625,
00934 628, 636, 638, 640, 286, 287, -406, 646, 647, 288,
00935 649, 648, 663, 615, 476, 477, 478, 27, 28, 29,
00936 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
00937 40, 41, 42, 43, 44, 45, 644, 46, 47, 48,
00938 49, 50, 51, 52, 53, 54, 55, 110, 57, 58,
00939 59, 60, 669, 61, 670, 671, 289, 290, 682, 683,
00940 138, 7, 454, 291, 192, 64, 84, 66, 67, 68,
00941 69, 86, 193, 71, 72, 73, 74, 75, 157, 76,
00942 77, 78, 158, 194, 154, 159, 324, 21, 321, 278,
00943 279, 401, 402, 338, 336, 524, 585, 600, 611, 472,
00944 280, 163, 163, 616, 281, 277, 403, 637, 404, 405,
00945 406, 407, 571, 166, 166, 376, 447, 437, 408, 282,
00946 283, 284, 285, 475, 328, 564, 393, 232, 389, 409,
00947 183, 347, 0, 286, 287, 0, 0, 0, 288, 348,
00948 0, 0, 0, 476, 477, 478, 27, 28, 29, 30,
00949 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
00950 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
00951 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
00952 60, 0, 61, 0, 0, 289, 290, 0, 0, 0,
00953 0, 0, 291, 0, 64, 0, 66, 67, 68, 69,
00954 0, 0, 71, 72, 73, 74, 75, 0, 76, 77,
00955 78, 158, 0, 0, 159, 0, 21, 0, 278, 279,
00956 0, 0, 0, 0, 0, 0, 0, 0, 472, 280,
00957 163, 0, 0, 281, 0, 0, 0, 0, 0, 0,
00958 0, 0, 166, 0, 0, 0, 0, 0, 282, 283,
00959 284, 285, 0, 0, 0, 0, 0, 0, 0, 0,
00960 0, 0, 286, 287, 0, 0, 0, 288, 0, 0,
00961 0, 0, 476, 477, 478, 27, 28, 29, 30, 31,
00962 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
00963 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
00964 51, 52, 53, 54, 55, 110, 57, 58, 59, 60,
00965 0, 61, 0, 0, 289, 290, 0, 0, 0, 0,
00966 0, 291, 0, 64, 0, 66, 67, 68, 69, 0,
00967 0, 71, 72, 73, 74, 75, 0, 76, 77, 78,
00968 158, 0, 0, 159, 0, 21, 0, 278, 279, 0,
00969 0, 0, 0, 0, 0, 0, 0, 472, 280, 163,
00970 0, 0, 281, 0, 0, 0, 0, 0, 0, 0,
00971 0, 166, 0, 0, 0, 0, 0, 282, 283, 284,
00972 285, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00973 0, 286, 287, 0, 0, 0, 288, 0, 0, 0,
00974 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
00975 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
00976 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
00977 52, 53, 54, 55, 110, 57, 58, 59, 60, 0,
00978 61, 0, 0, 289, 290, 0, 0, 0, 0, 0,
00979 291, 0, 64, 0, 66, 67, 68, 69, 0, 0,
00980 71, 72, 73, 74, 75, 0, 76, 77, 78, 158,
00981 0, 0, 159, 0, 21, 0, 0, 160, 161, 0,
00982 162, 0, 0, 0, 0, 0, 22, 0, 163, 0,
00983 0, 0, 164, 165, 0, 0, 0, 0, 0, 64,
00984 166, 66, 0, 68, 69, 167, 0, 71, 72, 73,
00985 74, 0, 0, 0, 77, 78, 0, 0, 0, 0,
00986 0, 168, 0, 0, 0, 0, 0, 0, 0, 0,
00987 0, 0, 169, 27, 28, 29, 30, 31, 32, 33,
00988 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
00989 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
00990 53, 54, 55, 110, 57, 58, 59, 60, 21, 61,
00991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00992 22, 64, 0, 66, 67, 68, 69, 0, 0, 71,
00993 72, 73, 74, 75, 0, 76, 77, 78, 0, 0,
00994 0, 0, 0, 0, 0, 0, 0, 0, 23, 0,
00995 24, 0, 0, 0, 0, 0, 25, 0, 0, 0,
00996 0, 0, 26, 0, 0, 0, 0, 27, 28, 29,
00997 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
00998 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
00999 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
01000 59, 60, 0, 61, 0, 0, 0, 0, 62, 0,
01001 21, 0, 63, 0, 3, 64, 65, 66, 67, 68,
01002 69, 70, 22, 71, 72, 73, 74, 75, 0, 76,
01003 77, 78, 79, 80, 81, 82, 0, 0, 0, 0,
01004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01005 23, 0, 24, 0, 0, 0, 0, 0, 25, 0,
01006 0, 0, 0, 0, 26, 0, 0, 0, 0, 27,
01007 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
01008 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
01009 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
01010 57, 58, 59, 60, 21, 61, 0, 0, 0, 0,
01011 62, 0, 0, 0, 63, 0, 22, 64, 65, 66,
01012 67, 68, 69, 70, 0, 71, 72, 73, 74, 75,
01013 0, 76, 77, 78, 79, 80, 81, 82, 0, 0,
01014 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
01015 0, 0, 25, 0, 0, 0, 0, 0, 26, 0,
01016 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
01017 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
01018 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
01019 53, 54, 55, 56, 57, 58, 59, 60, 0, 61,
01020 0, 0, 0, 0, 0, 21, 0, 0, 63, 0,
01021 0, 64, 65, 66, 67, 68, 69, 22, 0, 71,
01022 72, 73, 74, 75, 0, 76, 77, 78, 79, 80,
01023 81, 82, 556, 0, 0, 0, 0, 0, 0, 0,
01024 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01025 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01026 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
01027 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
01028 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
01029 52, 53, 54, 55, 110, 57, 58, 59, 60, 438,
01030 61, 21, 0, 356, 217, 0, 0, 0, 0, 0,
01031 0, 0, 64, 22, 66, 67, 68, 69, 130, 0,
01032 71, 72, 73, 74, 75, 0, 76, 77, 78, 0,
01033 80, 81, 82, 0, 0, 0, 0, 0, 0, 0,
01034 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01036 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
01037 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
01038 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
01039 110, 57, 58, 59, 60, 238, 61, 21, 0, 239,
01040 217, 0, 0, 0, 0, 0, 0, 0, 64, 22,
01041 66, 67, 68, 69, 0, 0, 71, 72, 73, 74,
01042 75, 249, 76, 77, 78, 0, 0, 0, 0, 0,
01043 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01044 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01045 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
01046 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
01047 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
01048 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
01049 60, 21, 61, 0, 0, 0, 0, 0, 0, 0,
01050 0, 0, 0, 22, 64, 0, 66, 67, 68, 69,
01051 0, 0, 71, 72, 73, 74, 75, 249, 76, 77,
01052 78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01054 0, 0, 0, 0, 0, 0, 0, 313, 314, 0,
01055 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
01056 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
01057 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
01058 110, 57, 58, 59, 60, 0, 61, 21, 0, 0,
01059 0, 0, 0, 0, 0, 0, 0, 0, 64, 22,
01060 66, 67, 68, 69, 0, 0, 71, 72, 73, 74,
01061 75, 0, 76, 77, 78, 0, 318, 0, 0, 0,
01062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01064 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
01065 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
01066 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
01067 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
01068 60, 0, 61, 21, 0, 0, 0, 0, 0, 0,
01069 0, 0, 0, 0, 64, 22, 66, 67, 68, 69,
01070 0, 0, 71, 72, 73, 74, 75, 249, 76, 77,
01071 78, 0, 322, 0, 0, 0, 0, 0, 0, 0,
01072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01074 0, 0, 27, 28, 29, 30, 31, 32, 33, 34,
01075 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
01076 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
01077 54, 55, 110, 57, 58, 59, 60, 0, 61, 21,
01078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01079 64, 22, 66, 67, 68, 69, 0, 0, 71, 72,
01080 73, 74, 75, 249, 76, 77, 78, 0, 429, 0,
01081 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01083 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
01084 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
01085 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
01086 48, 49, 50, 51, 52, 53, 54, 55, 110, 57,
01087 58, 59, 60, 0, 61, 21, 0, 0, 0, 0,
01088 0, 0, 0, 0, 0, 0, 64, 22, 66, 67,
01089 68, 69, 0, 0, 71, 72, 73, 74, 75, 249,
01090 76, 77, 78, 0, 511, 0, 0, 0, 0, 0,
01091 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01093 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
01094 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
01095 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
01096 52, 53, 54, 55, 110, 57, 58, 59, 60, 21,
01097 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01098 0, 22, 64, 0, 66, 67, 68, 69, 0, 0,
01099 71, 72, 73, 74, 75, 249, 76, 77, 78, 0,
01100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01102 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
01103 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
01104 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
01105 48, 49, 50, 51, 52, 53, 54, 55, 110, 57,
01106 58, 59, 60, 21, 61, 0, 0, 0, 0, 0,
01107 0, 0, 0, 0, 0, 22, 64, 0, 66, 67,
01108 68, 69, 0, 0, 71, 72, 73, 74, 75, 249,
01109 76, 77, 78, 0, 0, 0, 0, 0, 0, 0,
01110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01112 0, 0, 27, 28, 29, 30, 31, 32, 33, 34,
01113 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
01114 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
01115 54, 55, 110, 57, 58, 59, 60, 21, 61, 0,
01116 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
01117 64, 0, 66, 67, 68, 69, 0, 266, 71, 72,
01118 73, 74, 75, 0, 76, 77, 78, 0, 0, 0,
01119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01121 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
01122 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
01123 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
01124 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
01125 60, 0, 61, 0, 0, 0, 0, 0, 21, 0,
01126 0, 0, 0, 0, 64, 0, 66, 67, 68, 69,
01127 22, 0, 71, 72, 73, 74, 75, 435, 76, 77,
01128 78, 0, 0, 0, 0, 457, 0, 0, 0, 0,
01129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01130 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01131 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
01132 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
01133 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
01134 49, 50, 51, 52, 53, 54, 55, 110, 57, 58,
01135 59, 60, 0, 61, 0, 0, 0, 0, 0, 21,
01136 0, 0, 0, 0, 0, 64, 0, 66, 67, 68,
01137 69, 22, 0, 71, 72, 73, 74, 75, 0, 76,
01138 77, 78, 0, 0, 0, 0, 459, 0, 0, 0,
01139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01141 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
01142 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
01143 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
01144 48, 49, 50, 51, 52, 53, 54, 55, 110, 57,
01145 58, 59, 60, 21, 61, 0, 0, 0, 0, 0,
01146 0, 0, 0, 0, 0, 22, 64, 0, 66, 67,
01147 68, 69, 0, 0, 71, 72, 73, 74, 75, 0,
01148 76, 77, 78, 0, 0, 0, 0, 0, 0, 0,
01149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01151 0, 565, 27, 28, 29, 30, 31, 32, 33, 34,
01152 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
01153 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
01154 54, 55, 110, 57, 58, 59, 60, 21, 61, 0,
01155 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
01156 64, 0, 66, 67, 68, 69, 0, 0, 71, 72,
01157 73, 74, 75, 0, 76, 77, 78, 0, 0, 0,
01158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01160 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
01161 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
01162 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
01163 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
01164 60, 0, 61, 0, 0, 0, 0, 0, 0, 0,
01165 0, 0, 0, 0, 64, 0, 66, 67, 68, 69,
01166 0, 0, 71, 72, 73, 74, 75, 0, 76, 77,
01167 78, 158, 0, 0, 159, 0, 0, 0, 278, 279,
01168 0, 0, 0, 0, 0, 0, 0, 0, 9, 280,
01169 163, 0, 0, 281, 0, 0, 0, 0, 158, 0,
01170 0, 159, 166, 0, 320, 278, 279, 0, 282, 283,
01171 284, 285, 0, 0, 0, 9, 280, 163, 0, 0,
01172 281, 0, 286, 287, 0, 0, 0, 288, 0, 166,
01173 0, 379, 0, 0, 0, 282, 283, 284, 285, 158,
01174 0, 0, 159, 0, 0, 0, 278, 279, 0, 286,
01175 287, 0, 0, 0, 288, 0, 9, 280, 163, 0,
01176 0, 281, 0, 0, 0, 0, 0, 0, 0, 0,
01177 166, 0, 492, 0, 289, 290, 282, 283, 284, 285,
01178 0, 291, 0, 0, 0, 0, 0, 0, 0, 0,
01179 286, 287, 0, 0, 0, 288, 158, 0, 0, 159,
01180 0, 289, 290, 278, 279, 0, 0, 0, 291, 0,
01181 0, 0, 0, 9, 280, 163, 0, 0, 281, 0,
01182 0, 0, 0, 0, 0, 0, 0, 166, 0, 0,
01183 0, 0, 0, 282, 283, 284, 285, 0, 0, 0,
01184 0, 0, 289, 290, 0, 0, 0, 286, 287, 291,
01185 0, 0, 288, 0, 0, 0, 0, 0, 0, 0,
01186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01188 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01189 0, 0, 0, 0, 0, 0, 0, 0, 0, 289,
01190 290, 0, 0, 0, 0, 0, 291
01191 };
01192
01193 static const short yycheck[] = { 23,
01194 4, 8, 21, 124, 119, 99, 142, 143, 2, 3,
01195 308, 126, 214, 109, 8, 217, 299, 21, 184, 96,
01196 24, 136, 16, 278, 199, 238, 239, 207, 57, 23,
01197 16, 70, 287, 407, 14, 362, 294, 302, 303, 177,
01198 7, 14, 565, 576, 234, 139, 148, 149, 4, 3,
01199 216, 32, 60, 219, 7, 36, 24, 431, 10, 63,
01200 99, 65, 595, 253, 32, 598, 4, 34, 591, 165,
01201 6, 7, 8, 67, 332, 79, 109, 279, 51, 32,
01202 119, 75, 76, 37, 617, 114, 90, 126, 462, 524,
01203 228, 266, 294, 231, 98, 628, 104, 136, 10, 11,
01204 139, 37, 196, 142, 143, 109, 208, 209, 210, 211,
01205 104, 7, 395, 97, 108, 23, 551, 253, 445, 446,
01206 124, 10, 11, 117, 7, 37, 222, 35, 383, 7,
01207 110, 389, 165, 137, 138, 390, 32, 10, 11, 241,
01208 236, 237, 355, 356, 409, 31, 401, 243, 37, 32,
01209 33, 20, 526, 33, 32, 7, 25, 196, 413, 39,
01210 46, 155, 7, 182, 37, 169, 243, 161, 124, 155,
01211 164, 7, 14, 353, 213, 549, 550, 343, 182, 354,
01212 32, 137, 138, 385, 386, 387, 124, 32, 609, 222,
01213 611, 3, 6, 7, 8, 37, 32, 372, 10, 137,
01214 138, 10, 317, 236, 237, 301, 489, 10, 11, 10,
01215 243, 215, 619, 25, 253, 470, 25, 7, 222, 355,
01216 356, 35, 62, 630, 25, 438, 3, 401, 40, 41,
01217 42, 43, 236, 237, 35, 229, 230, 644, 340, 413,
01218 342, 3, 32, 20, 6, 25, 20, 3, 25, 11,
01219 12, 25, 14, 7, 10, 7, 358, 359, 20, 10,
01220 22, 559, 464, 25, 26, 27, 43, 271, 272, 25,
01221 274, 365, 34, 439, 25, 530, 7, 39, 317, 373,
01222 32, 37, 3, 7, 40, 41, 42, 43, 7, 40,
01223 41, 42, 43, 55, 374, 31, 376, 10, 11, 10,
01224 396, 397, 438, 10, 11, 11, 12, 20, 32, 22,
01225 21, 3, 25, 32, 569, 6, 355, 356, 10, 111,
01226 26, 34, 28, 29, 30, 31, 365, 40, 41, 42,
01227 43, 533, 38, 25, 373, 437, 538, 3, 10, 11,
01228 7, 54, 32, 382, 10, 37, 59, 37, 40, 41,
01229 42, 43, 10, 115, 10, 117, 111, 119, 120, 25,
01230 97, 123, 124, 125, 126, 32, 655, 656, 130, 131,
01231 374, 37, 376, 34, 40, 41, 42, 43, 667, 34,
01232 669, 10, 386, 387, 6, 10, 11, 10, 10, 11,
01233 592, 20, 20, 106, 107, 516, 25, 25, 20, 438,
01234 113, 6, 646, 25, 606, 10, 400, 35, 402, 403,
01235 612, 655, 656, 407, 3, 20, 24, 6, 670, 671,
01236 25, 10, 11, 667, 32, 669, 670, 671, 36, 523,
01237 434, 20, 21, 22, 23, 442, 25, 431, 3, 6,
01238 10, 6, 27, 10, 11, 34, 35, 10, 442, 27,
01239 32, 40, 41, 42, 43, 37, 32, 20, 25, 478,
01240 575, 37, 25, 37, 558, 54, 55, 6, 462, 53,
01241 59, 10, 11, 32, 478, 32, 32, 40, 41, 42,
01242 43, 37, 32, 32, 523, 23, 24, 37, 37, 528,
01243 3, 54, 27, 6, 32, 32, 59, 35, 11, 12,
01244 37, 14, 580, 32, 6, 544, 35, 585, 7, 22,
01245 142, 143, 516, 26, 75, 76, 33, 106, 107, 558,
01246 20, 34, 236, 237, 113, 529, 39, 391, 392, 75,
01247 76, 20, 526, 25, 538, 36, 575, 34, 111, 111,
01248 34, 545, 27, 106, 107, 8, 110, 554, 32, 37,
01249 113, 590, 20, 20, 32, 549, 550, 32, 37, 3,
01250 554, 565, 6, 32, 10, 10, 10, 11, 10, 10,
01251 31, 14, 10, 7, 7, 34, 20, 37, 22, 36,
01252 619, 25, 37, 37, 36, 7, 37, 591, 27, 25,
01253 34, 630, 27, 7, 31, 619, 40, 41, 42, 43,
01254 27, 27, 606, 34, 643, 644, 630, 646, 27, 34,
01255 54, 650, 35, 31, 27, 59, 655, 656, 58, 643,
01256 644, 51, 37, 647, 31, 31, 650, 32, 667, 32,
01257 669, 670, 671, 3, 10, 37, 6, 37, 8, 37,
01258 10, 11, 37, 27, 26, 32, 34, 37, 7, 35,
01259 20, 21, 22, 49, 7, 25, 60, 21, 37, 10,
01260 7, 46, 106, 107, 34, 7, 47, 61, 34, 113,
01261 40, 41, 42, 43, 52, 45, 105, 37, 7, 7,
01262 48, 35, 7, 35, 54, 55, 10, 10, 33, 59,
01263 7, 35, 25, 63, 64, 65, 66, 67, 68, 69,
01264 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
01265 80, 81, 82, 83, 84, 85, 8, 87, 88, 89,
01266 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
01267 100, 101, 3, 103, 10, 10, 106, 107, 0, 0,
01268 86, 1, 372, 113, 124, 115, 4, 117, 118, 119,
01269 120, 4, 124, 123, 124, 125, 126, 127, 108, 129,
01270 130, 131, 3, 124, 104, 6, 222, 8, 217, 10,
01271 11, 11, 12, 237, 236, 460, 562, 590, 599, 20,
01272 21, 22, 22, 606, 25, 213, 26, 622, 28, 29,
01273 30, 31, 538, 34, 34, 272, 365, 355, 38, 40,
01274 41, 42, 43, 44, 225, 528, 299, 165, 294, 305,
01275 117, 243, -1, 54, 55, -1, -1, -1, 59, 243,
01276 -1, -1, -1, 64, 65, 66, 67, 68, 69, 70,
01277 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
01278 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
01279 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
01280 101, -1, 103, -1, -1, 106, 107, -1, -1, -1,
01281 -1, -1, 113, -1, 115, -1, 117, 118, 119, 120,
01282 -1, -1, 123, 124, 125, 126, 127, -1, 129, 130,
01283 131, 3, -1, -1, 6, -1, 8, -1, 10, 11,
01284 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
01285 22, -1, -1, 25, -1, -1, -1, -1, -1, -1,
01286 -1, -1, 34, -1, -1, -1, -1, -1, 40, 41,
01287 42, 43, -1, -1, -1, -1, -1, -1, -1, -1,
01288 -1, -1, 54, 55, -1, -1, -1, 59, -1, -1,
01289 -1, -1, 64, 65, 66, 67, 68, 69, 70, 71,
01290 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
01291 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
01292 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
01293 -1, 103, -1, -1, 106, 107, -1, -1, -1, -1,
01294 -1, 113, -1, 115, -1, 117, 118, 119, 120, -1,
01295 -1, 123, 124, 125, 126, 127, -1, 129, 130, 131,
01296 3, -1, -1, 6, -1, 8, -1, 10, 11, -1,
01297 -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
01298 -1, -1, 25, -1, -1, -1, -1, -1, -1, -1,
01299 -1, 34, -1, -1, -1, -1, -1, 40, 41, 42,
01300 43, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01301 -1, 54, 55, -1, -1, -1, 59, -1, -1, -1,
01302 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
01303 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
01304 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
01305 93, 94, 95, 96, 97, 98, 99, 100, 101, -1,
01306 103, -1, -1, 106, 107, -1, -1, -1, -1, -1,
01307 113, -1, 115, -1, 117, 118, 119, 120, -1, -1,
01308 123, 124, 125, 126, 127, -1, 129, 130, 131, 3,
01309 -1, -1, 6, -1, 8, -1, -1, 11, 12, -1,
01310 14, -1, -1, -1, -1, -1, 20, -1, 22, -1,
01311 -1, -1, 26, 27, -1, -1, -1, -1, -1, 115,
01312 34, 117, -1, 119, 120, 39, -1, 123, 124, 125,
01313 126, -1, -1, -1, 130, 131, -1, -1, -1, -1,
01314 -1, 55, -1, -1, -1, -1, -1, -1, -1, -1,
01315 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
01316 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
01317 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
01318 94, 95, 96, 97, 98, 99, 100, 101, 8, 103,
01319 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01320 20, 115, -1, 117, 118, 119, 120, -1, -1, 123,
01321 124, 125, 126, 127, -1, 129, 130, 131, -1, -1,
01322 -1, -1, -1, -1, -1, -1, -1, -1, 48, -1,
01323 50, -1, -1, -1, -1, -1, 56, -1, -1, -1,
01324 -1, -1, 62, -1, -1, -1, -1, 67, 68, 69,
01325 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
01326 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
01327 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
01328 100, 101, -1, 103, -1, -1, -1, -1, 108, -1,
01329 8, -1, 112, -1, 114, 115, 116, 117, 118, 119,
01330 120, 121, 20, 123, 124, 125, 126, 127, -1, 129,
01331 130, 131, 132, 133, 134, 135, -1, -1, -1, -1,
01332 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01333 48, -1, 50, -1, -1, -1, -1, -1, 56, -1,
01334 -1, -1, -1, -1, 62, -1, -1, -1, -1, 67,
01335 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
01336 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
01337 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
01338 98, 99, 100, 101, 8, 103, -1, -1, -1, -1,
01339 108, -1, -1, -1, 112, -1, 20, 115, 116, 117,
01340 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
01341 -1, 129, 130, 131, 132, 133, 134, 135, -1, -1,
01342 -1, -1, -1, -1, -1, -1, 50, -1, -1, -1,
01343 -1, -1, 56, -1, -1, -1, -1, -1, 62, -1,
01344 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
01345 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
01346 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
01347 94, 95, 96, 97, 98, 99, 100, 101, -1, 103,
01348 -1, -1, -1, -1, -1, 8, -1, -1, 112, -1,
01349 -1, 115, 116, 117, 118, 119, 120, 20, -1, 123,
01350 124, 125, 126, 127, -1, 129, 130, 131, 132, 133,
01351 134, 135, 35, -1, -1, -1, -1, -1, -1, -1,
01352 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01353 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01354 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
01355 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
01356 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
01357 93, 94, 95, 96, 97, 98, 99, 100, 101, 6,
01358 103, 8, -1, 10, 11, -1, -1, -1, -1, -1,
01359 -1, -1, 115, 20, 117, 118, 119, 120, 25, -1,
01360 123, 124, 125, 126, 127, -1, 129, 130, 131, -1,
01361 133, 134, 135, -1, -1, -1, -1, -1, -1, -1,
01362 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01363 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01364 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
01365 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
01366 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
01367 97, 98, 99, 100, 101, 6, 103, 8, -1, 10,
01368 11, -1, -1, -1, -1, -1, -1, -1, 115, 20,
01369 117, 118, 119, 120, -1, -1, 123, 124, 125, 126,
01370 127, 128, 129, 130, 131, -1, -1, -1, -1, -1,
01371 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01372 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01373 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
01374 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
01375 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
01376 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
01377 101, 8, 103, -1, -1, -1, -1, -1, -1, -1,
01378 -1, -1, -1, 20, 115, -1, 117, 118, 119, 120,
01379 -1, -1, 123, 124, 125, 126, 127, 128, 129, 130,
01380 131, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01381 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01382 -1, -1, -1, -1, -1, -1, -1, 64, 65, -1,
01383 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
01384 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
01385 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
01386 97, 98, 99, 100, 101, -1, 103, 8, -1, -1,
01387 -1, -1, -1, -1, -1, -1, -1, -1, 115, 20,
01388 117, 118, 119, 120, -1, -1, 123, 124, 125, 126,
01389 127, -1, 129, 130, 131, -1, 37, -1, -1, -1,
01390 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01391 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01392 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
01393 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
01394 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
01395 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
01396 101, -1, 103, 8, -1, -1, -1, -1, -1, -1,
01397 -1, -1, -1, -1, 115, 20, 117, 118, 119, 120,
01398 -1, -1, 123, 124, 125, 126, 127, 128, 129, 130,
01399 131, -1, 37, -1, -1, -1, -1, -1, -1, -1,
01400 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01401 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01402 -1, -1, 67, 68, 69, 70, 71, 72, 73, 74,
01403 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
01404 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
01405 95, 96, 97, 98, 99, 100, 101, -1, 103, 8,
01406 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01407 115, 20, 117, 118, 119, 120, -1, -1, 123, 124,
01408 125, 126, 127, 128, 129, 130, 131, -1, 37, -1,
01409 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01410 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01411 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
01412 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
01413 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
01414 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
01415 99, 100, 101, -1, 103, 8, -1, -1, -1, -1,
01416 -1, -1, -1, -1, -1, -1, 115, 20, 117, 118,
01417 119, 120, -1, -1, 123, 124, 125, 126, 127, 128,
01418 129, 130, 131, -1, 37, -1, -1, -1, -1, -1,
01419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01420 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01421 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
01422 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
01423 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
01424 93, 94, 95, 96, 97, 98, 99, 100, 101, 8,
01425 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01426 -1, 20, 115, -1, 117, 118, 119, 120, -1, -1,
01427 123, 124, 125, 126, 127, 128, 129, 130, 131, -1,
01428 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01430 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
01431 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
01432 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
01433 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
01434 99, 100, 101, 8, 103, -1, -1, -1, -1, -1,
01435 -1, -1, -1, -1, -1, 20, 115, -1, 117, 118,
01436 119, 120, -1, -1, 123, 124, 125, 126, 127, 128,
01437 129, 130, 131, -1, -1, -1, -1, -1, -1, -1,
01438 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01439 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01440 -1, -1, 67, 68, 69, 70, 71, 72, 73, 74,
01441 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
01442 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
01443 95, 96, 97, 98, 99, 100, 101, 8, 103, -1,
01444 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
01445 115, -1, 117, 118, 119, 120, -1, 122, 123, 124,
01446 125, 126, 127, -1, 129, 130, 131, -1, -1, -1,
01447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01449 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
01450 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
01451 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
01452 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
01453 101, -1, 103, -1, -1, -1, -1, -1, 8, -1,
01454 -1, -1, -1, -1, 115, -1, 117, 118, 119, 120,
01455 20, -1, 123, 124, 125, 126, 127, 128, 129, 130,
01456 131, -1, -1, -1, -1, 35, -1, -1, -1, -1,
01457 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01458 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01459 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
01460 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
01461 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
01462 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
01463 100, 101, -1, 103, -1, -1, -1, -1, -1, 8,
01464 -1, -1, -1, -1, -1, 115, -1, 117, 118, 119,
01465 120, 20, -1, 123, 124, 125, 126, 127, -1, 129,
01466 130, 131, -1, -1, -1, -1, 35, -1, -1, -1,
01467 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01469 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
01470 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
01471 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
01472 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
01473 99, 100, 101, 8, 103, -1, -1, -1, -1, -1,
01474 -1, -1, -1, -1, -1, 20, 115, -1, 117, 118,
01475 119, 120, -1, -1, 123, 124, 125, 126, 127, -1,
01476 129, 130, 131, -1, -1, -1, -1, -1, -1, -1,
01477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01478 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01479 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
01480 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
01481 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
01482 95, 96, 97, 98, 99, 100, 101, 8, 103, -1,
01483 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
01484 115, -1, 117, 118, 119, 120, -1, -1, 123, 124,
01485 125, 126, 127, -1, 129, 130, 131, -1, -1, -1,
01486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01488 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
01489 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
01490 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
01491 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
01492 101, -1, 103, -1, -1, -1, -1, -1, -1, -1,
01493 -1, -1, -1, -1, 115, -1, 117, 118, 119, 120,
01494 -1, -1, 123, 124, 125, 126, 127, -1, 129, 130,
01495 131, 3, -1, -1, 6, -1, -1, -1, 10, 11,
01496 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
01497 22, -1, -1, 25, -1, -1, -1, -1, 3, -1,
01498 -1, 6, 34, -1, 36, 10, 11, -1, 40, 41,
01499 42, 43, -1, -1, -1, 20, 21, 22, -1, -1,
01500 25, -1, 54, 55, -1, -1, -1, 59, -1, 34,
01501 -1, 36, -1, -1, -1, 40, 41, 42, 43, 3,
01502 -1, -1, 6, -1, -1, -1, 10, 11, -1, 54,
01503 55, -1, -1, -1, 59, -1, 20, 21, 22, -1,
01504 -1, 25, -1, -1, -1, -1, -1, -1, -1, -1,
01505 34, -1, 36, -1, 106, 107, 40, 41, 42, 43,
01506 -1, 113, -1, -1, -1, -1, -1, -1, -1, -1,
01507 54, 55, -1, -1, -1, 59, 3, -1, -1, 6,
01508 -1, 106, 107, 10, 11, -1, -1, -1, 113, -1,
01509 -1, -1, -1, 20, 21, 22, -1, -1, 25, -1,
01510 -1, -1, -1, -1, -1, -1, -1, 34, -1, -1,
01511 -1, -1, -1, 40, 41, 42, 43, -1, -1, -1,
01512 -1, -1, 106, 107, -1, -1, -1, 54, 55, 113,
01513 -1, -1, 59, -1, -1, -1, -1, -1, -1, -1,
01514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01516 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01517 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
01518 107, -1, -1, -1, -1, -1, 113
01519 };
01520
01521 #line 3 "/af10/evans/bison-1.28/share/bison.simple"
01522
01523
01524
01525
01526
01527
01528
01529
01530
01531
01532
01533
01534
01535
01536
01537
01538
01539
01540
01541
01542
01543
01544
01545
01546
01547
01548
01549
01550
01551
01552 #ifndef YYSTACK_USE_ALLOCA
01553 #ifdef alloca
01554 #define YYSTACK_USE_ALLOCA
01555 #else
01556 #ifdef __GNUC__
01557 #define YYSTACK_USE_ALLOCA
01558 #define alloca __builtin_alloca
01559 #else
01560 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
01561 #define YYSTACK_USE_ALLOCA
01562 #include <alloca.h>
01563 #else
01564
01565
01566
01567 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
01568 #if 0
01569
01570 #include <malloc.h>
01571 #endif
01572 #else
01573 #if defined(_AIX)
01574
01575
01576
01577 #pragma alloca
01578 #define YYSTACK_USE_ALLOCA
01579 #else
01580 #if 0
01581 #ifdef __hpux
01582
01583 #define YYSTACK_USE_ALLOCA
01584 #define alloca __builtin_alloca
01585 #endif
01586 #endif
01587 #endif
01588 #endif
01589 #endif
01590 #endif
01591 #endif
01592 #endif
01593
01594 #ifdef YYSTACK_USE_ALLOCA
01595 #define YYSTACK_ALLOC alloca
01596 #else
01597 #define YYSTACK_ALLOC malloc
01598 #endif
01599
01600
01601
01602
01603
01604 #define yyerrok (yyerrstatus = 0)
01605 #define yyclearin (yychar = YYEMPTY)
01606 #define YYEMPTY -2
01607 #define YYEOF 0
01608 #define YYACCEPT goto yyacceptlab
01609 #define YYABORT goto yyabortlab
01610 #define YYERROR goto yyerrlab1
01611
01612
01613
01614
01615 #define YYFAIL goto yyerrlab
01616 #define YYRECOVERING() (!!yyerrstatus)
01617 #define YYBACKUP(token, value) \
01618 do \
01619 if (yychar == YYEMPTY && yylen == 1) \
01620 { yychar = (token), yylval = (value); \
01621 yychar1 = YYTRANSLATE (yychar); \
01622 YYPOPSTACK; \
01623 goto yybackup; \
01624 } \
01625 else \
01626 { yyerror ("syntax error: cannot back up"); YYERROR; } \
01627 while (0)
01628
01629 #define YYTERROR 1
01630 #define YYERRCODE 256
01631
01632 #ifndef YYPURE
01633 #define YYLEX yylex()
01634 #endif
01635
01636 #ifdef YYPURE
01637 #ifdef YYLSP_NEEDED
01638 #ifdef YYLEX_PARAM
01639 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
01640 #else
01641 #define YYLEX yylex(&yylval, &yylloc)
01642 #endif
01643 #else
01644 #ifdef YYLEX_PARAM
01645 #define YYLEX yylex(&yylval, YYLEX_PARAM)
01646 #else
01647 #define YYLEX yylex(&yylval)
01648 #endif
01649 #endif
01650 #endif
01651
01652
01653
01654 #ifndef YYPURE
01655
01656 int yychar;
01657 YYSTYPE yylval;
01658
01659
01660 #ifdef YYLSP_NEEDED
01661 YYLTYPE yylloc;
01662
01663 #endif
01664
01665 int yynerrs;
01666 #endif
01667
01668 #if YYDEBUG != 0
01669 int yydebug;
01670
01671
01672 #endif
01673
01674
01675
01676 #ifndef YYINITDEPTH
01677 #define YYINITDEPTH 200
01678 #endif
01679
01680
01681
01682
01683 #if YYMAXDEPTH == 0
01684 #undef YYMAXDEPTH
01685 #endif
01686
01687 #ifndef YYMAXDEPTH
01688 #define YYMAXDEPTH 10000
01689 #endif
01690
01691
01692
01693
01694
01695
01696 #if __GNUC__ > 1
01697 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
01698 #else
01699 #ifndef __cplusplus
01700
01701
01702
01703 static void
01704 __yy_memcpy (to, from, count)
01705 char *to;
01706 char *from;
01707 unsigned int count;
01708 {
01709 register char *f = from;
01710 register char *t = to;
01711 register int i = count;
01712
01713 while (i-- > 0)
01714 *t++ = *f++;
01715 }
01716
01717 #else
01718
01719
01720
01721 static void
01722 __yy_memcpy (char *to, char *from, unsigned int count)
01723 {
01724 register char *t = to;
01725 register char *f = from;
01726 register int i = count;
01727
01728 while (i-- > 0)
01729 *t++ = *f++;
01730 }
01731
01732 #endif
01733 #endif
01734
01735 #line 217 "/af10/evans/bison-1.28/share/bison.simple"
01736
01737
01738
01739
01740
01741
01742
01743 #ifdef YYPARSE_PARAM
01744 #ifdef __cplusplus
01745 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
01746 #define YYPARSE_PARAM_DECL
01747 #else
01748 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
01749 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
01750 #endif
01751 #else
01752 #define YYPARSE_PARAM_ARG
01753 #define YYPARSE_PARAM_DECL
01754 #endif
01755
01756
01757 #ifdef __GNUC__
01758 #ifdef YYPARSE_PARAM
01759 int yyparse (void *);
01760 #else
01761 int yyparse (void);
01762 #endif
01763 #endif
01764
01765 int
01766 yyparse(YYPARSE_PARAM_ARG)
01767 YYPARSE_PARAM_DECL
01768 {
01769 register int yystate;
01770 register int yyn;
01771 register short *yyssp;
01772 register YYSTYPE *yyvsp;
01773 int yyerrstatus;
01774 int yychar1 = 0;
01775
01776 short yyssa[YYINITDEPTH];
01777 YYSTYPE yyvsa[YYINITDEPTH];
01778
01779 short *yyss = yyssa;
01780 YYSTYPE *yyvs = yyvsa;
01781
01782 #ifdef YYLSP_NEEDED
01783 YYLTYPE yylsa[YYINITDEPTH];
01784 YYLTYPE *yyls = yylsa;
01785 YYLTYPE *yylsp;
01786
01787 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
01788 #else
01789 #define YYPOPSTACK (yyvsp--, yyssp--)
01790 #endif
01791
01792 int yystacksize = YYINITDEPTH;
01793 int yyfree_stacks = 0;
01794
01795 #ifdef YYPURE
01796 int yychar;
01797 YYSTYPE yylval;
01798 int yynerrs;
01799 #ifdef YYLSP_NEEDED
01800 YYLTYPE yylloc;
01801 #endif
01802 #endif
01803
01804 YYSTYPE yyval;
01805
01806
01807
01808 int yylen;
01809
01810 #if YYDEBUG != 0
01811 if (yydebug)
01812 fprintf(stderr, "Starting parse\n");
01813 #endif
01814
01815 yystate = 0;
01816 yyerrstatus = 0;
01817 yynerrs = 0;
01818 yychar = YYEMPTY;
01819
01820
01821
01822
01823
01824
01825 yyssp = yyss - 1;
01826 yyvsp = yyvs;
01827 #ifdef YYLSP_NEEDED
01828 yylsp = yyls;
01829 #endif
01830
01831
01832
01833
01834 yynewstate:
01835
01836 *++yyssp = yystate;
01837
01838 if (yyssp >= yyss + yystacksize - 1)
01839 {
01840
01841
01842 YYSTYPE *yyvs1 = yyvs;
01843 short *yyss1 = yyss;
01844 #ifdef YYLSP_NEEDED
01845 YYLTYPE *yyls1 = yyls;
01846 #endif
01847
01848
01849 int size = yyssp - yyss + 1;
01850
01851 #ifdef yyoverflow
01852
01853
01854 #ifdef YYLSP_NEEDED
01855
01856
01857 yyoverflow("parser stack overflow",
01858 &yyss1, size * sizeof (*yyssp),
01859 &yyvs1, size * sizeof (*yyvsp),
01860 &yyls1, size * sizeof (*yylsp),
01861 &yystacksize);
01862 #else
01863 yyoverflow("parser stack overflow",
01864 &yyss1, size * sizeof (*yyssp),
01865 &yyvs1, size * sizeof (*yyvsp),
01866 &yystacksize);
01867 #endif
01868
01869 yyss = yyss1; yyvs = yyvs1;
01870 #ifdef YYLSP_NEEDED
01871 yyls = yyls1;
01872 #endif
01873 #else
01874
01875 if (yystacksize >= YYMAXDEPTH)
01876 {
01877 yyerror("parser stack overflow");
01878 if (yyfree_stacks)
01879 {
01880 free (yyss);
01881 free (yyvs);
01882 #ifdef YYLSP_NEEDED
01883 free (yyls);
01884 #endif
01885 }
01886 return 2;
01887 }
01888 yystacksize *= 2;
01889 if (yystacksize > YYMAXDEPTH)
01890 yystacksize = YYMAXDEPTH;
01891 #ifndef YYSTACK_USE_ALLOCA
01892 yyfree_stacks = 1;
01893 #endif
01894 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
01895 __yy_memcpy ((char *)yyss, (char *)yyss1,
01896 size * (unsigned int) sizeof (*yyssp));
01897 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
01898 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
01899 size * (unsigned int) sizeof (*yyvsp));
01900 #ifdef YYLSP_NEEDED
01901 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
01902 __yy_memcpy ((char *)yyls, (char *)yyls1,
01903 size * (unsigned int) sizeof (*yylsp));
01904 #endif
01905 #endif
01906
01907 yyssp = yyss + size - 1;
01908 yyvsp = yyvs + size - 1;
01909 #ifdef YYLSP_NEEDED
01910 yylsp = yyls + size - 1;
01911 #endif
01912
01913 #if YYDEBUG != 0
01914 if (yydebug)
01915 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
01916 #endif
01917
01918 if (yyssp >= yyss + yystacksize - 1)
01919 YYABORT;
01920 }
01921
01922 #if YYDEBUG != 0
01923 if (yydebug)
01924 fprintf(stderr, "Entering state %d\n", yystate);
01925 #endif
01926
01927 goto yybackup;
01928 yybackup:
01929
01930
01931
01932
01933
01934
01935
01936 yyn = yypact[yystate];
01937 if (yyn == YYFLAG)
01938 goto yydefault;
01939
01940
01941
01942
01943
01944
01945 if (yychar == YYEMPTY)
01946 {
01947 #if YYDEBUG != 0
01948 if (yydebug)
01949 fprintf(stderr, "Reading a token: ");
01950 #endif
01951 yychar = YYLEX;
01952 }
01953
01954
01955
01956 if (yychar <= 0)
01957 {
01958 yychar1 = 0;
01959 yychar = YYEOF;
01960
01961 #if YYDEBUG != 0
01962 if (yydebug)
01963 fprintf(stderr, "Now at end of input.\n");
01964 #endif
01965 }
01966 else
01967 {
01968 yychar1 = YYTRANSLATE(yychar);
01969
01970 #if YYDEBUG != 0
01971 if (yydebug)
01972 {
01973 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
01974
01975
01976 #ifdef YYPRINT
01977 YYPRINT (stderr, yychar, yylval);
01978 #endif
01979 fprintf (stderr, ")\n");
01980 }
01981 #endif
01982 }
01983
01984 yyn += yychar1;
01985 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
01986 goto yydefault;
01987
01988 yyn = yytable[yyn];
01989
01990
01991
01992
01993
01994
01995
01996
01997 if (yyn < 0)
01998 {
01999 if (yyn == YYFLAG)
02000 goto yyerrlab;
02001 yyn = -yyn;
02002 goto yyreduce;
02003 }
02004 else if (yyn == 0)
02005 goto yyerrlab;
02006
02007 if (yyn == YYFINAL)
02008 YYACCEPT;
02009
02010
02011
02012 #if YYDEBUG != 0
02013 if (yydebug)
02014 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
02015 #endif
02016
02017
02018 if (yychar != YYEOF)
02019 yychar = YYEMPTY;
02020
02021 *++yyvsp = yylval;
02022 #ifdef YYLSP_NEEDED
02023 *++yylsp = yylloc;
02024 #endif
02025
02026
02027 if (yyerrstatus) yyerrstatus--;
02028
02029 yystate = yyn;
02030 goto yynewstate;
02031
02032
02033 yydefault:
02034
02035 yyn = yydefact[yystate];
02036 if (yyn == 0)
02037 goto yyerrlab;
02038
02039
02040 yyreduce:
02041 yylen = yyr2[yyn];
02042 if (yylen > 0)
02043 yyval = yyvsp[1-yylen];
02044
02045 #if YYDEBUG != 0
02046 if (yydebug)
02047 {
02048 int i;
02049
02050 fprintf (stderr, "Reducing via rule %d (line %d), ",
02051 yyn, yyrline[yyn]);
02052
02053
02054 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
02055 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
02056 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
02057 }
02058 #endif
02059
02060
02061 switch (yyn) {
02062
02063 case 1:
02064 #line 382 "llgrammar.y"
02065 { lhExternals (yyvsp[0].interfacelist); ;
02066 break;}
02067 case 2:
02068 #line 383 "llgrammar.y"
02069 { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
02070 break;}
02071 case 3:
02072 #line 386 "llgrammar.y"
02073 { yyval.interfacelist = interfaceNodeList_new (); ;
02074 break;}
02075 case 4:
02076 #line 387 "llgrammar.y"
02077 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
02078 break;}
02079 case 7:
02080 #line 394 "llgrammar.y"
02081 { yyval.interfacelist = interfaceNodeList_new (); ;
02082 break;}
02083 case 8:
02084 #line 395 "llgrammar.y"
02085 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
02086 break;}
02087 case 9:
02088 #line 396 "llgrammar.y"
02089 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
02090 break;}
02091 case 10:
02092 #line 399 "llgrammar.y"
02093 { yyval.interfacelist = interfaceNodeList_new (); ;
02094 break;}
02095 case 11:
02096 #line 400 "llgrammar.y"
02097 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
02098 break;}
02099 case 15:
02100 #line 409 "llgrammar.y"
02101 { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
02102
02103 ;
02104 break;}
02105 case 16:
02106 #line 415 "llgrammar.y"
02107 { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
02108 break;}
02109 case 17:
02110 #line 419 "llgrammar.y"
02111 { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
02112 break;}
02113 case 18:
02114 #line 421 "llgrammar.y"
02115 { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
02116 break;}
02117 case 19:
02118 #line 423 "llgrammar.y"
02119 { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
02120 break;}
02121 case 20:
02122 #line 425 "llgrammar.y"
02123 { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
02124 break;}
02125 case 21:
02126 #line 427 "llgrammar.y"
02127 { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
02128 break;}
02129 case 22:
02130 #line 429 "llgrammar.y"
02131 { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
02132 break;}
02133 case 23:
02134 #line 433 "llgrammar.y"
02135 { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
02136 break;}
02137 case 24:
02138 #line 436 "llgrammar.y"
02139 { yyval.paramlist = paramNodeList_new (); ;
02140 break;}
02141 case 25:
02142 #line 437 "llgrammar.y"
02143 { yyval.paramlist = yyvsp[0].paramlist; ;
02144 break;}
02145 case 26:
02146 #line 441 "llgrammar.y"
02147 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
02148 break;}
02149 case 27:
02150 #line 443 "llgrammar.y"
02151 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
02152 break;}
02153 case 28:
02154 #line 446 "llgrammar.y"
02155 { yyval.param = markYieldParamNode (yyvsp[0].param); ;
02156 break;}
02157 case 29:
02158 #line 447 "llgrammar.y"
02159 { yyval.param = yyvsp[0].param; ;
02160 break;}
02161 case 30:
02162 #line 450 "llgrammar.y"
02163 { symtable_export (g_symtab, FALSE); ;
02164 break;}
02165 case 31:
02166 #line 451 "llgrammar.y"
02167 { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
02168 break;}
02169 case 32:
02170 #line 455 "llgrammar.y"
02171 { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
02172 break;}
02173 case 33:
02174 #line 457 "llgrammar.y"
02175 { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
02176 break;}
02177 case 34:
02178 #line 459 "llgrammar.y"
02179 { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
02180 break;}
02181 case 35:
02182 #line 461 "llgrammar.y"
02183 { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
02184 break;}
02185 case 36:
02186 #line 465 "llgrammar.y"
02187 { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
02188 break;}
02189 case 37:
02190 #line 469 "llgrammar.y"
02191 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
02192 break;}
02193 case 38:
02194 #line 471 "llgrammar.y"
02195 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
02196 break;}
02197 case 39:
02198 #line 473 "llgrammar.y"
02199 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
02200 break;}
02201 case 40:
02202 #line 476 "llgrammar.y"
02203 { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
02204 break;}
02205 case 41:
02206 #line 477 "llgrammar.y"
02207 { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
02208 break;}
02209 case 42:
02210 #line 480 "llgrammar.y"
02211 { yyval.typequal = qual_createPrintfLike (); ;
02212 break;}
02213 case 43:
02214 #line 481 "llgrammar.y"
02215 { yyval.typequal = qual_createScanfLike (); ;
02216 break;}
02217 case 44:
02218 #line 482 "llgrammar.y"
02219 { yyval.typequal = qual_createMessageLike (); ;
02220 break;}
02221 case 45:
02222 #line 485 "llgrammar.y"
02223 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
02224 break;}
02225 case 46:
02226 #line 487 "llgrammar.y"
02227 { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls,
02228 yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
02229
02230
02231 symtable_exitScope (g_symtab);
02232 ;
02233 break;}
02234 case 47:
02235 #line 493 "llgrammar.y"
02236 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
02237 break;}
02238 case 48:
02239 #line 497 "llgrammar.y"
02240 { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist,
02241 yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
02242
02243
02244 symtable_exitScope (g_symtab);
02245 ;
02246 break;}
02247 case 49:
02248 #line 507 "llgrammar.y"
02249 { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
02250 break;}
02251 case 50:
02252 #line 509 "llgrammar.y"
02253 { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate);
02254 symtable_exitScope (g_symtab); ;
02255 break;}
02256 case 51:
02257 #line 512 "llgrammar.y"
02258 { yyval.claim = (claimNode) 0; ;
02259 break;}
02260 case 52:
02261 #line 515 "llgrammar.y"
02262 {g_inTypeDef = TRUE; ;
02263 break;}
02264 case 53:
02265 #line 515 "llgrammar.y"
02266 {g_inTypeDef = FALSE; ;
02267 break;}
02268 case 54:
02269 #line 516 "llgrammar.y"
02270 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
02271 break;}
02272 case 55:
02273 #line 517 "llgrammar.y"
02274 {g_inTypeDef = TRUE; ;
02275 break;}
02276 case 56:
02277 #line 518 "llgrammar.y"
02278 {g_inTypeDef = FALSE; ;
02279 break;}
02280 case 57:
02281 #line 519 "llgrammar.y"
02282 { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
02283 break;}
02284 case 58:
02285 #line 520 "llgrammar.y"
02286 {g_inTypeDef = TRUE; ;
02287 break;}
02288 case 59:
02289 #line 521 "llgrammar.y"
02290 {g_inTypeDef = FALSE; ;
02291 break;}
02292 case 60:
02293 #line 522 "llgrammar.y"
02294 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
02295 break;}
02296 case 61:
02297 #line 523 "llgrammar.y"
02298 {g_inTypeDef = TRUE; ;
02299 break;}
02300 case 62:
02301 #line 523 "llgrammar.y"
02302 {g_inTypeDef = FALSE; ;
02303 break;}
02304 case 63:
02305 #line 524 "llgrammar.y"
02306 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
02307 break;}
02308 case 64:
02309 #line 527 "llgrammar.y"
02310 { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
02311 break;}
02312 case 65:
02313 #line 528 "llgrammar.y"
02314 { g_inTypeDef = FALSE; ;
02315 break;}
02316 case 66:
02317 #line 529 "llgrammar.y"
02318 { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); ;
02319 break;}
02320 case 67:
02321 #line 531 "llgrammar.y"
02322 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
02323 break;}
02324 case 68:
02325 #line 533 "llgrammar.y"
02326 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
02327 break;}
02328 case 69:
02329 #line 549 "llgrammar.y"
02330 { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
02331 break;}
02332 case 70:
02333 #line 551 "llgrammar.y"
02334 { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
02335 break;}
02336 case 71:
02337 #line 554 "llgrammar.y"
02338 { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
02339 break;}
02340 case 72:
02341 #line 556 "llgrammar.y"
02342 { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
02343 break;}
02344 case 73:
02345 #line 557 "llgrammar.y"
02346 { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
02347 break;}
02348 case 74:
02349 #line 560 "llgrammar.y"
02350 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
02351 break;}
02352 case 75:
02353 #line 561 "llgrammar.y"
02354 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
02355 break;}
02356 case 77:
02357 #line 569 "llgrammar.y"
02358 { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
02359 break;}
02360 case 78:
02361 #line 571 "llgrammar.y"
02362 { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
02363 break;}
02364 case 79:
02365 #line 575 "llgrammar.y"
02366 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
02367 break;}
02368 case 80:
02369 #line 577 "llgrammar.y"
02370 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
02371 break;}
02372 case 81:
02373 #line 579 "llgrammar.y"
02374 { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
02375 break;}
02376 case 82:
02377 #line 581 "llgrammar.y"
02378 { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
02379 break;}
02380 case 83:
02381 #line 584 "llgrammar.y"
02382 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
02383 break;}
02384 case 84:
02385 #line 585 "llgrammar.y"
02386 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
02387 break;}
02388 case 85:
02389 #line 589 "llgrammar.y"
02390 { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
02391 break;}
02392 case 86:
02393 #line 591 "llgrammar.y"
02394 { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
02395 break;}
02396 case 87:
02397 #line 592 "llgrammar.y"
02398 { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
02399 break;}
02400 case 88:
02401 #line 596 "llgrammar.y"
02402 { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
02403 break;}
02404 case 89:
02405 #line 597 "llgrammar.y"
02406 { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
02407 break;}
02408 case 90:
02409 #line 601 "llgrammar.y"
02410 { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
02411 break;}
02412 case 91:
02413 #line 602 "llgrammar.y"
02414 { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
02415 break;}
02416 case 92:
02417 #line 605 "llgrammar.y"
02418 { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
02419 break;}
02420 case 93:
02421 #line 606 "llgrammar.y"
02422 { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
02423 break;}
02424 case 94:
02425 #line 607 "llgrammar.y"
02426 { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
02427 yyvsp[-1].name, yyvsp[0].signature); ;
02428 break;}
02429 case 95:
02430 #line 611 "llgrammar.y"
02431 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
02432 break;}
02433 case 96:
02434 #line 612 "llgrammar.y"
02435 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
02436 break;}
02437 case 99:
02438 #line 620 "llgrammar.y"
02439 { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
02440 break;}
02441 case 100:
02442 #line 622 "llgrammar.y"
02443 { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
02444 break;}
02445 case 101:
02446 #line 625 "llgrammar.y"
02447 { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
02448 break;}
02449 case 102:
02450 #line 626 "llgrammar.y"
02451 { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
02452 break;}
02453 case 103:
02454 #line 630 "llgrammar.y"
02455 { yyval.globals = varDeclarationNodeList_new (); ;
02456 break;}
02457 case 104:
02458 #line 632 "llgrammar.y"
02459 { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
02460 break;}
02461 case 105:
02462 #line 635 "llgrammar.y"
02463 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
02464 break;}
02465 case 106:
02466 #line 636 "llgrammar.y"
02467 { yyval.vardeclaration = makeInternalStateNode (); ;
02468 break;}
02469 case 107:
02470 #line 637 "llgrammar.y"
02471 { yyval.vardeclaration = makeFileSystemNode (); ;
02472 break;}
02473 case 108:
02474 #line 640 "llgrammar.y"
02475 { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
02476 break;}
02477 case 109:
02478 #line 641 "llgrammar.y"
02479 { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
02480 break;}
02481 case 110:
02482 #line 645 "llgrammar.y"
02483 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
02484 break;}
02485 case 111:
02486 #line 648 "llgrammar.y"
02487 { yyval.letdecls = letDeclNodeList_new (); ;
02488 break;}
02489 case 112:
02490 #line 649 "llgrammar.y"
02491 { yyval.letdecls = yyvsp[-1].letdecls; ;
02492 break;}
02493 case 113:
02494 #line 652 "llgrammar.y"
02495 { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
02496 break;}
02497 case 114:
02498 #line 653 "llgrammar.y"
02499 { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
02500 break;}
02501 case 115:
02502 #line 656 "llgrammar.y"
02503 { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
02504 break;}
02505 case 116:
02506 #line 657 "llgrammar.y"
02507 { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
02508 break;}
02509 case 118:
02510 #line 662 "llgrammar.y"
02511 { yyval.lclpredicate = (lclPredicateNode)0; ;
02512 break;}
02513 case 119:
02514 #line 663 "llgrammar.y"
02515 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
02516 break;}
02517 case 120:
02518 #line 666 "llgrammar.y"
02519 { yyval.lclpredicate = (lclPredicateNode)0; ;
02520 break;}
02521 case 121:
02522 #line 667 "llgrammar.y"
02523 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
02524 break;}
02525 case 122:
02526 #line 670 "llgrammar.y"
02527 { yyval.modify = (modifyNode)0; ;
02528 break;}
02529 case 123:
02530 #line 671 "llgrammar.y"
02531 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
02532 break;}
02533 case 124:
02534 #line 672 "llgrammar.y"
02535 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
02536 break;}
02537 case 125:
02538 #line 673 "llgrammar.y"
02539 { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
02540 break;}
02541 case 126:
02542 #line 676 "llgrammar.y"
02543 { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
02544 break;}
02545 case 127:
02546 #line 677 "llgrammar.y"
02547 { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
02548 break;}
02549 case 128:
02550 #line 680 "llgrammar.y"
02551 { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
02552 break;}
02553 case 129:
02554 #line 681 "llgrammar.y"
02555 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
02556 break;}
02557 case 130:
02558 #line 682 "llgrammar.y"
02559 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
02560 break;}
02561 case 131:
02562 #line 683 "llgrammar.y"
02563 { yyval.storeref = makeStoreRefNodeInternal (); ;
02564 break;}
02565 case 132:
02566 #line 684 "llgrammar.y"
02567 { yyval.storeref = makeStoreRefNodeSystem (); ;
02568 break;}
02569 case 133:
02570 #line 687 "llgrammar.y"
02571 { yyval.lclpredicate = (lclPredicateNode)0; ;
02572 break;}
02573 case 134:
02574 #line 688 "llgrammar.y"
02575 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
02576 break;}
02577 case 135:
02578 #line 691 "llgrammar.y"
02579 { yyval.lclpredicate = (lclPredicateNode)0; ;
02580 break;}
02581 case 136:
02582 #line 692 "llgrammar.y"
02583 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
02584 break;}
02585 case 137:
02586 #line 695 "llgrammar.y"
02587 { yyval.paramlist = paramNodeList_new (); ;
02588 break;}
02589 case 138:
02590 #line 696 "llgrammar.y"
02591 { yyval.paramlist = yyvsp[0].paramlist; ;
02592 break;}
02593 case 140:
02594 #line 700 "llgrammar.y"
02595 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
02596 break;}
02597 case 141:
02598 #line 701 "llgrammar.y"
02599 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
02600 break;}
02601 case 142:
02602 #line 704 "llgrammar.y"
02603 { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
02604 break;}
02605 case 143:
02606 #line 705 "llgrammar.y"
02607 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
02608 break;}
02609 case 144:
02610 #line 708 "llgrammar.y"
02611 { yyval.program = (programNode)0; ;
02612 break;}
02613 case 145:
02614 #line 709 "llgrammar.y"
02615 { yyval.program = yyvsp[-1].program; ;
02616 break;}
02617 case 146:
02618 #line 710 "llgrammar.y"
02619 { yyval.program = yyvsp[-2].program; ;
02620 break;}
02621 case 147:
02622 #line 713 "llgrammar.y"
02623 { yyval.program = makeProgramNode (yyvsp[0].stmt); ;
02624 break;}
02625 case 148:
02626 #line 716 "llgrammar.y"
02627 { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
02628 break;}
02629 case 149:
02630 #line 718 "llgrammar.y"
02631 { programNodeList x = programNodeList_new ();
02632 programNodeList_addh (x, yyvsp[-1].program);
02633 yyval.program = makeProgramNodeAction (x, ACT_ITER);
02634 ;
02635 break;}
02636 case 150:
02637 #line 723 "llgrammar.y"
02638 { programNodeList x = programNodeList_new ();
02639 programNodeList_addh (x, yyvsp[-2].program);
02640 programNodeList_addh (x, yyvsp[0].program);
02641 yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE);
02642 ;
02643 break;}
02644 case 151:
02645 #line 729 "llgrammar.y"
02646 { programNodeList x = programNodeList_new ();
02647 programNodeList_addh (x, yyvsp[-2].program);
02648 programNodeList_addh (x, yyvsp[0].program);
02649 yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE);
02650 ;
02651 break;}
02652 case 152:
02653 #line 737 "llgrammar.y"
02654 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
02655 break;}
02656 case 153:
02657 #line 739 "llgrammar.y"
02658 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
02659 break;}
02660 case 154:
02661 #line 741 "llgrammar.y"
02662 { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
02663 break;}
02664 case 155:
02665 #line 743 "llgrammar.y"
02666 { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
02667 break;}
02668 case 156:
02669 #line 746 "llgrammar.y"
02670 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
02671 break;}
02672 case 157:
02673 #line 747 "llgrammar.y"
02674 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
02675 break;}
02676 case 159:
02677 #line 751 "llgrammar.y"
02678 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
02679 break;}
02680 case 160:
02681 #line 752 "llgrammar.y"
02682 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
02683 break;}
02684 case 161:
02685 #line 753 "llgrammar.y"
02686 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
02687 break;}
02688 case 162:
02689 #line 754 "llgrammar.y"
02690 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
02691 break;}
02692 case 163:
02693 #line 755 "llgrammar.y"
02694 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
02695 break;}
02696 case 164:
02697 #line 757 "llgrammar.y"
02698 { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
02699 break;}
02700 case 165:
02701 #line 759 "llgrammar.y"
02702 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
02703 break;}
02704 case 166:
02705 #line 762 "llgrammar.y"
02706 { yyval.abstbody = (abstBodyNode)0; ;
02707 break;}
02708 case 167:
02709 #line 763 "llgrammar.y"
02710 { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
02711 break;}
02712 case 168:
02713 #line 764 "llgrammar.y"
02714 { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
02715 break;}
02716 case 169:
02717 #line 765 "llgrammar.y"
02718 { yyval.abstbody = (abstBodyNode)0; ;
02719 break;}
02720 case 170:
02721 #line 768 "llgrammar.y"
02722 { yyval.fcns = fcnNodeList_new (); ;
02723 break;}
02724 case 171:
02725 #line 769 "llgrammar.y"
02726 { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
02727 break;}
02728 case 172:
02729 #line 772 "llgrammar.y"
02730 { yyval.lclpredicate = (lclPredicateNode)0; ;
02731 break;}
02732 case 174:
02733 #line 776 "llgrammar.y"
02734 { g_inTypeDef = FALSE; ;
02735 break;}
02736 case 175:
02737 #line 777 "llgrammar.y"
02738 { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
02739 checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
02740 yyval.lclpredicate = yyvsp[-1].lclpredicate;
02741 symtable_exitScope (g_symtab);
02742 g_inTypeDef = TRUE;
02743 ;
02744 break;}
02745 case 176:
02746 #line 785 "llgrammar.y"
02747 { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
02748 break;}
02749 case 177:
02750 #line 787 "llgrammar.y"
02751 { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
02752 break;}
02753 case 178:
02754 #line 790 "llgrammar.y"
02755 { declareForwardType (yyvsp[0].declare); ;
02756 break;}
02757 case 179:
02758 #line 791 "llgrammar.y"
02759 { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
02760 break;}
02761 case 180:
02762 #line 794 "llgrammar.y"
02763 { yyval.abstbody = (abstBodyNode)0; ;
02764 break;}
02765 case 181:
02766 #line 795 "llgrammar.y"
02767 { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
02768 break;}
02769 case 182:
02770 #line 798 "llgrammar.y"
02771 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
02772 break;}
02773 case 183:
02774 #line 799 "llgrammar.y"
02775 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
02776 break;}
02777 case 184:
02778 #line 800 "llgrammar.y"
02779 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
02780 break;}
02781 case 185:
02782 #line 801 "llgrammar.y"
02783 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
02784 break;}
02785 case 186:
02786 #line 802 "llgrammar.y"
02787 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
02788 break;}
02789 case 187:
02790 #line 803 "llgrammar.y"
02791 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
02792 break;}
02793 case 188:
02794 #line 804 "llgrammar.y"
02795 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
02796 break;}
02797 case 189:
02798 #line 805 "llgrammar.y"
02799 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
02800 break;}
02801 case 190:
02802 #line 806 "llgrammar.y"
02803 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
02804 break;}
02805 case 191:
02806 #line 807 "llgrammar.y"
02807 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
02808 break;}
02809 case 192:
02810 #line 815 "llgrammar.y"
02811 { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
02812 break;}
02813 case 193:
02814 #line 816 "llgrammar.y"
02815 { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
02816 break;}
02817 case 194:
02818 #line 822 "llgrammar.y"
02819 { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
02820 break;}
02821 case 195:
02822 #line 824 "llgrammar.y"
02823 { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
02824 break;}
02825 case 196:
02826 #line 829 "llgrammar.y"
02827 { yyval.typequal = qual_createOut (); ;
02828 break;}
02829 case 197:
02830 #line 830 "llgrammar.y"
02831 { yyval.typequal = qual_createUnused (); ;
02832 break;}
02833 case 198:
02834 #line 831 "llgrammar.y"
02835 { yyval.typequal = qual_createSef (); ;
02836 break;}
02837 case 199:
02838 #line 832 "llgrammar.y"
02839 { yyval.typequal = qual_createOnly (); ;
02840 break;}
02841 case 200:
02842 #line 833 "llgrammar.y"
02843 { yyval.typequal = qual_createOwned (); ;
02844 break;}
02845 case 201:
02846 #line 834 "llgrammar.y"
02847 { yyval.typequal = qual_createDependent (); ;
02848 break;}
02849 case 202:
02850 #line 835 "llgrammar.y"
02851 { yyval.typequal = qual_createKeep (); ;
02852 break;}
02853 case 203:
02854 #line 836 "llgrammar.y"
02855 { yyval.typequal = qual_createKept (); ;
02856 break;}
02857 case 204:
02858 #line 837 "llgrammar.y"
02859 { yyval.typequal = qual_createObserver (); ;
02860 break;}
02861 case 205:
02862 #line 838 "llgrammar.y"
02863 { yyval.typequal = qual_createExits (); ;
02864 break;}
02865 case 206:
02866 #line 839 "llgrammar.y"
02867 { yyval.typequal = qual_createMayExit (); ;
02868 break;}
02869 case 207:
02870 #line 840 "llgrammar.y"
02871 { yyval.typequal = qual_createTrueExit (); ;
02872 break;}
02873 case 208:
02874 #line 841 "llgrammar.y"
02875 { yyval.typequal = qual_createFalseExit (); ;
02876 break;}
02877 case 209:
02878 #line 842 "llgrammar.y"
02879 { yyval.typequal = qual_createNeverExit (); ;
02880 break;}
02881 case 210:
02882 #line 843 "llgrammar.y"
02883 { yyval.typequal = qual_createOnly (); ;
02884 break;}
02885 case 211:
02886 #line 844 "llgrammar.y"
02887 { yyval.typequal = qual_createShared (); ;
02888 break;}
02889 case 212:
02890 #line 845 "llgrammar.y"
02891 { yyval.typequal = qual_createUnique (); ;
02892 break;}
02893 case 213:
02894 #line 846 "llgrammar.y"
02895 { yyval.typequal = qual_createChecked (); ;
02896 break;}
02897 case 214:
02898 #line 847 "llgrammar.y"
02899 { yyval.typequal = qual_createUnchecked (); ;
02900 break;}
02901 case 215:
02902 #line 848 "llgrammar.y"
02903 { yyval.typequal = qual_createCheckedStrict (); ;
02904 break;}
02905 case 216:
02906 #line 849 "llgrammar.y"
02907 { yyval.typequal = qual_createTrueNull (); ;
02908 break;}
02909 case 217:
02910 #line 850 "llgrammar.y"
02911 { yyval.typequal = qual_createFalseNull (); ;
02912 break;}
02913 case 218:
02914 #line 851 "llgrammar.y"
02915 { yyval.typequal = qual_createRelNull (); ;
02916 break;}
02917 case 219:
02918 #line 852 "llgrammar.y"
02919 { yyval.typequal = qual_createRelDef (); ;
02920 break;}
02921 case 220:
02922 #line 853 "llgrammar.y"
02923 { yyval.typequal = qual_createRefCounted (); ;
02924 break;}
02925 case 221:
02926 #line 854 "llgrammar.y"
02927 { yyval.typequal = qual_createRefs (); ;
02928 break;}
02929 case 222:
02930 #line 855 "llgrammar.y"
02931 { yyval.typequal = qual_createNewRef (); ;
02932 break;}
02933 case 223:
02934 #line 856 "llgrammar.y"
02935 { yyval.typequal = qual_createKillRef (); ;
02936 break;}
02937 case 224:
02938 #line 857 "llgrammar.y"
02939 { yyval.typequal = qual_createNull (); ;
02940 break;}
02941 case 225:
02942 #line 858 "llgrammar.y"
02943 { yyval.typequal = qual_createNotNull (); ;
02944 break;}
02945 case 226:
02946 #line 859 "llgrammar.y"
02947 { yyval.typequal = qual_createReturned (); ;
02948 break;}
02949 case 227:
02950 #line 860 "llgrammar.y"
02951 { yyval.typequal = qual_createExposed (); ;
02952 break;}
02953 case 228:
02954 #line 861 "llgrammar.y"
02955 { yyval.typequal = qual_createPartial (); ;
02956 break;}
02957 case 229:
02958 #line 862 "llgrammar.y"
02959 { yyval.typequal = qual_createUndef (); ;
02960 break;}
02961 case 230:
02962 #line 863 "llgrammar.y"
02963 { yyval.typequal = qual_createKilled (); ;
02964 break;}
02965 case 231:
02966 #line 867 "llgrammar.y"
02967 { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
02968 break;}
02969 case 232:
02970 #line 869 "llgrammar.y"
02971 { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
02972 break;}
02973 case 233:
02974 #line 871 "llgrammar.y"
02975 { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
02976 break;}
02977 case 234:
02978 #line 873 "llgrammar.y"
02979 { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
02980 break;}
02981 case 235:
02982 #line 875 "llgrammar.y"
02983 { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
02984 break;}
02985 case 237:
02986 #line 885 "llgrammar.y"
02987 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
02988 yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
02989 break;}
02990 case 238:
02991 #line 889 "llgrammar.y"
02992 { yyval.count = 1; ;
02993 break;}
02994 case 239:
02995 #line 890 "llgrammar.y"
02996 { yyval.count = yyvsp[-1].count + 1; ;
02997 break;}
02998 case 240:
02999 #line 894 "llgrammar.y"
03000 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
03001 break;}
03002 case 241:
03003 #line 896 "llgrammar.y"
03004 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
03005 break;}
03006 case 242:
03007 #line 898 "llgrammar.y"
03008 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
03009 break;}
03010 case 243:
03011 #line 900 "llgrammar.y"
03012 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
03013 break;}
03014 case 244:
03015 #line 902 "llgrammar.y"
03016 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
03017 break;}
03018 case 245:
03019 #line 904 "llgrammar.y"
03020 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
03021 break;}
03022 case 246:
03023 #line 907 "llgrammar.y"
03024 { yyval.ltok = ltoken_undefined; ;
03025 break;}
03026 case 248:
03027 #line 911 "llgrammar.y"
03028 { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
03029 break;}
03030 case 249:
03031 #line 912 "llgrammar.y"
03032 { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
03033 break;}
03034 case 250:
03035 #line 917 "llgrammar.y"
03036 { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
03037 break;}
03038 case 251:
03039 #line 921 "llgrammar.y"
03040 { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
03041 break;}
03042 case 252:
03043 #line 923 "llgrammar.y"
03044 { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
03045 break;}
03046 case 253:
03047 #line 926 "llgrammar.y"
03048 { ; ;
03049 break;}
03050 case 254:
03051 #line 927 "llgrammar.y"
03052 { ; ;
03053 break;}
03054 case 255:
03055 #line 931 "llgrammar.y"
03056 { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
03057 break;}
03058 case 256:
03059 #line 933 "llgrammar.y"
03060 { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
03061 break;}
03062 case 257:
03063 #line 936 "llgrammar.y"
03064 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
03065 break;}
03066 case 258:
03067 #line 937 "llgrammar.y"
03068 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
03069 break;}
03070 case 259:
03071 #line 947 "llgrammar.y"
03072 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
03073 break;}
03074 case 260:
03075 #line 948 "llgrammar.y"
03076 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
03077 break;}
03078 case 261:
03079 #line 951 "llgrammar.y"
03080 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
03081 break;}
03082 case 262:
03083 #line 952 "llgrammar.y"
03084 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
03085 break;}
03086 case 263:
03087 #line 953 "llgrammar.y"
03088 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
03089 break;}
03090 case 264:
03091 #line 954 "llgrammar.y"
03092 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
03093 break;}
03094 case 265:
03095 #line 955 "llgrammar.y"
03096 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
03097 break;}
03098 case 266:
03099 #line 956 "llgrammar.y"
03100 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
03101 break;}
03102 case 267:
03103 #line 959 "llgrammar.y"
03104 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
03105 break;}
03106 case 268:
03107 #line 960 "llgrammar.y"
03108 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
03109 break;}
03110 case 269:
03111 #line 961 "llgrammar.y"
03112 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
03113 break;}
03114 case 270:
03115 #line 962 "llgrammar.y"
03116 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
03117 break;}
03118 case 271:
03119 #line 963 "llgrammar.y"
03120 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
03121 break;}
03122 case 272:
03123 #line 964 "llgrammar.y"
03124 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
03125 break;}
03126 case 273:
03127 #line 973 "llgrammar.y"
03128 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
03129 break;}
03130 case 274:
03131 #line 974 "llgrammar.y"
03132 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
03133 break;}
03134 case 275:
03135 #line 975 "llgrammar.y"
03136 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
03137 break;}
03138 case 276:
03139 #line 976 "llgrammar.y"
03140 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
03141 break;}
03142 case 277:
03143 #line 977 "llgrammar.y"
03144 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
03145 break;}
03146 case 278:
03147 #line 983 "llgrammar.y"
03148 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
03149 break;}
03150 case 279:
03151 #line 984 "llgrammar.y"
03152 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
03153 break;}
03154 case 280:
03155 #line 985 "llgrammar.y"
03156 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
03157 break;}
03158 case 281:
03159 #line 995 "llgrammar.y"
03160 { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
03161 break;}
03162 case 282:
03163 #line 996 "llgrammar.y"
03164 { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
03165 break;}
03166 case 283:
03167 #line 997 "llgrammar.y"
03168 { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
03169 break;}
03170 case 284:
03171 #line 1002 "llgrammar.y"
03172 { yyval.abstDecl = (abstDeclaratorNode)0; ;
03173 break;}
03174 case 285:
03175 #line 1003 "llgrammar.y"
03176 { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
03177 break;}
03178 case 286:
03179 #line 1006 "llgrammar.y"
03180 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
03181 break;}
03182 case 287:
03183 #line 1007 "llgrammar.y"
03184 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
03185 break;}
03186 case 288:
03187 #line 1008 "llgrammar.y"
03188 { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
03189 break;}
03190 case 289:
03191 #line 1009 "llgrammar.y"
03192 { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
03193 break;}
03194 case 290:
03195 #line 1010 "llgrammar.y"
03196 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
03197 break;}
03198 case 291:
03199 #line 1011 "llgrammar.y"
03200 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
03201 break;}
03202 case 292:
03203 #line 1012 "llgrammar.y"
03204 { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
03205 break;}
03206 case 293:
03207 #line 1013 "llgrammar.y"
03208 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
03209 break;}
03210 case 294:
03211 #line 1016 "llgrammar.y"
03212 { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
03213 break;}
03214 case 295:
03215 #line 1017 "llgrammar.y"
03216 { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
03217 break;}
03218 case 296:
03219 #line 1021 "llgrammar.y"
03220 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
03221 break;}
03222 case 297:
03223 #line 1023 "llgrammar.y"
03224 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
03225 break;}
03226 case 298:
03227 #line 1025 "llgrammar.y"
03228 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
03229 break;}
03230 case 299:
03231 #line 1027 "llgrammar.y"
03232 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
03233 break;}
03234 case 300:
03235 #line 1029 "llgrammar.y"
03236 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
03237 opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
03238 break;}
03239 case 301:
03240 #line 1032 "llgrammar.y"
03241 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
03242 break;}
03243 case 302:
03244 #line 1034 "llgrammar.y"
03245 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
03246 break;}
03247 case 303:
03248 #line 1036 "llgrammar.y"
03249 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
03250 break;}
03251 case 304:
03252 #line 1038 "llgrammar.y"
03253 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
03254 break;}
03255 case 305:
03256 #line 1040 "llgrammar.y"
03257 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
03258 break;}
03259 case 306:
03260 #line 1042 "llgrammar.y"
03261 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
03262 break;}
03263 case 307:
03264 #line 1050 "llgrammar.y"
03265 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
03266 break;}
03267 case 308:
03268 #line 1052 "llgrammar.y"
03269 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
03270 break;}
03271 case 309:
03272 #line 1054 "llgrammar.y"
03273 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
03274 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
03275 break;}
03276 case 310:
03277 #line 1057 "llgrammar.y"
03278 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
03279 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
03280 break;}
03281 case 311:
03282 #line 1060 "llgrammar.y"
03283 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
03284 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
03285 break;}
03286 case 312:
03287 #line 1063 "llgrammar.y"
03288 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
03289 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
03290 break;}
03291 case 320:
03292 #line 1080 "llgrammar.y"
03293 { yyval.count = 0; ;
03294 break;}
03295 case 322:
03296 #line 1084 "llgrammar.y"
03297 { yyval.count = 1; ;
03298 break;}
03299 case 323:
03300 #line 1085 "llgrammar.y"
03301 { yyval.count = yyvsp[-2].count + 1; ;
03302 break;}
03303 case 326:
03304 #line 1092 "llgrammar.y"
03305 { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
03306 break;}
03307 case 327:
03308 #line 1095 "llgrammar.y"
03309 { yyval.ltokenList = ltokenList_new (); ;
03310 break;}
03311 case 329:
03312 #line 1099 "llgrammar.y"
03313 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
03314 break;}
03315 case 330:
03316 #line 1100 "llgrammar.y"
03317 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
03318 break;}
03319 case 331:
03320 #line 1103 "llgrammar.y"
03321 { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
03322 break;}
03323 case 332:
03324 #line 1106 "llgrammar.y"
03325 { yyval.term = checkSort (yyvsp[0].term); ;
03326 break;}
03327 case 333:
03328 #line 1113 "llgrammar.y"
03329 { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
03330 break;}
03331 case 335:
03332 #line 1115 "llgrammar.y"
03333 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
03334 break;}
03335 case 337:
03336 #line 1121 "llgrammar.y"
03337 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
03338 symtable_exitScope (g_symtab);
03339 ;
03340 break;}
03341 case 338:
03342 #line 1125 "llgrammar.y"
03343 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
03344 break;}
03345 case 339:
03346 #line 1127 "llgrammar.y"
03347 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
03348 break;}
03349 case 341:
03350 #line 1131 "llgrammar.y"
03351 { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
03352 break;}
03353 case 342:
03354 #line 1132 "llgrammar.y"
03355 { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
03356 break;}
03357 case 346:
03358 #line 1140 "llgrammar.y"
03359 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
03360 break;}
03361 case 347:
03362 #line 1143 "llgrammar.y"
03363 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
03364 break;}
03365 case 348:
03366 #line 1144 "llgrammar.y"
03367 { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
03368 break;}
03369 case 349:
03370 #line 1147 "llgrammar.y"
03371 { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
03372 break;}
03373 case 350:
03374 #line 1148 "llgrammar.y"
03375 { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
03376 break;}
03377 case 352:
03378 #line 1152 "llgrammar.y"
03379 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
03380 break;}
03381 case 353:
03382 #line 1153 "llgrammar.y"
03383 { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
03384 break;}
03385 case 354:
03386 #line 1154 "llgrammar.y"
03387 { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
03388 break;}
03389 case 355:
03390 #line 1155 "llgrammar.y"
03391 { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
03392 break;}
03393 case 356:
03394 #line 1156 "llgrammar.y"
03395 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
03396 break;}
03397 case 357:
03398 #line 1157 "llgrammar.y"
03399 { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
03400 break;}
03401 case 358:
03402 #line 1160 "llgrammar.y"
03403 { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
03404 break;}
03405 case 360:
03406 #line 1165 "llgrammar.y"
03407 { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok);
03408 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
03409 break;}
03410 case 361:
03411 #line 1168 "llgrammar.y"
03412 { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
03413 break;}
03414 case 362:
03415 #line 1170 "llgrammar.y"
03416 { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok);
03417 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok));
03418 ;
03419 break;}
03420 case 363:
03421 #line 1174 "llgrammar.y"
03422 { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
03423 break;}
03424 case 364:
03425 #line 1177 "llgrammar.y"
03426 { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
03427 break;}
03428 case 365:
03429 #line 1178 "llgrammar.y"
03430 { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
03431 break;}
03432 case 366:
03433 #line 1181 "llgrammar.y"
03434 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
03435 break;}
03436 case 367:
03437 #line 1182 "llgrammar.y"
03438 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
03439 break;}
03440 case 368:
03441 #line 1186 "llgrammar.y"
03442 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
03443 break;}
03444 case 369:
03445 #line 1188 "llgrammar.y"
03446 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
03447 break;}
03448 case 370:
03449 #line 1190 "llgrammar.y"
03450 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
03451 break;}
03452 case 372:
03453 #line 1193 "llgrammar.y"
03454 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
03455 break;}
03456 case 373:
03457 #line 1195 "llgrammar.y"
03458 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
03459 break;}
03460 case 374:
03461 #line 1197 "llgrammar.y"
03462 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
03463 break;}
03464 case 375:
03465 #line 1199 "llgrammar.y"
03466 { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
03467 (termNode)0); ;
03468 break;}
03469 case 376:
03470 #line 1202 "llgrammar.y"
03471 { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
03472 break;}
03473 case 377:
03474 #line 1204 "llgrammar.y"
03475 { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
03476 break;}
03477 case 378:
03478 #line 1207 "llgrammar.y"
03479 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
03480 break;}
03481 case 379:
03482 #line 1208 "llgrammar.y"
03483 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
03484 break;}
03485 case 385:
03486 #line 1218 "llgrammar.y"
03487 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
03488 break;}
03489 case 386:
03490 #line 1219 "llgrammar.y"
03491 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
03492 break;}
03493 case 387:
03494 #line 1220 "llgrammar.y"
03495 { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
03496 break;}
03497 case 388:
03498 #line 1221 "llgrammar.y"
03499 { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
03500 break;}
03501 case 389:
03502 #line 1223 "llgrammar.y"
03503 { termNodeList x = termNodeList_new ();
03504 termNodeList_addh (x, yyvsp[-1].term);
03505 yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok);
03506 ;
03507 break;}
03508 case 390:
03509 #line 1228 "llgrammar.y"
03510 { termNodeList x = termNodeList_new ();
03511 termNodeList_addh (x, yyvsp[-3].term);
03512 termNodeList_addh (x, yyvsp[-1].term);
03513 yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok);
03514 ;
03515 break;}
03516 case 391:
03517 #line 1233 "llgrammar.y"
03518 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
03519 break;}
03520 case 392:
03521 #line 1243 "llgrammar.y"
03522 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
03523 break;}
03524 case 393:
03525 #line 1244 "llgrammar.y"
03526 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
03527 break;}
03528 case 394:
03529 #line 1245 "llgrammar.y"
03530 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
03531 break;}
03532 case 395:
03533 #line 1246 "llgrammar.y"
03534 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
03535 break;}
03536 case 396:
03537 #line 1250 "llgrammar.y"
03538 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
03539 break;}
03540 case 397:
03541 #line 1252 "llgrammar.y"
03542 { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
03543 break;}
03544 case 398:
03545 #line 1255 "llgrammar.y"
03546 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
03547 si->kind = SPE_QUANT;
03548 symtable_enterScope (g_symtab, si); ;
03549 break;}
03550 case 399:
03551 #line 1259 "llgrammar.y"
03552 { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
03553 break;}
03554 case 400:
03555 #line 1262 "llgrammar.y"
03556 { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
03557 break;}
03558 case 401:
03559 #line 1263 "llgrammar.y"
03560 { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
03561 break;}
03562 case 402:
03563 #line 1266 "llgrammar.y"
03564 { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
03565 break;}
03566 case 403:
03567 #line 1267 "llgrammar.y"
03568 { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
03569 break;}
03570 }
03571
03572 #line 543 "/af10/evans/bison-1.28/share/bison.simple"
03573
03574 yyvsp -= yylen;
03575 yyssp -= yylen;
03576 #ifdef YYLSP_NEEDED
03577 yylsp -= yylen;
03578 #endif
03579
03580 #if YYDEBUG != 0
03581 if (yydebug)
03582 {
03583 short *ssp1 = yyss - 1;
03584 fprintf (stderr, "state stack now");
03585 while (ssp1 != yyssp)
03586 fprintf (stderr, " %d", *++ssp1);
03587 fprintf (stderr, "\n");
03588 }
03589 #endif
03590
03591 *++yyvsp = yyval;
03592
03593 #ifdef YYLSP_NEEDED
03594 yylsp++;
03595 if (yylen == 0)
03596 {
03597 yylsp->first_line = yylloc.first_line;
03598 yylsp->first_column = yylloc.first_column;
03599 yylsp->last_line = (yylsp-1)->last_line;
03600 yylsp->last_column = (yylsp-1)->last_column;
03601 yylsp->text = 0;
03602 }
03603 else
03604 {
03605 yylsp->last_line = (yylsp+yylen-1)->last_line;
03606 yylsp->last_column = (yylsp+yylen-1)->last_column;
03607 }
03608 #endif
03609
03610
03611
03612
03613
03614
03615 yyn = yyr1[yyn];
03616
03617 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
03618 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
03619 yystate = yytable[yystate];
03620 else
03621 yystate = yydefgoto[yyn - YYNTBASE];
03622
03623 goto yynewstate;
03624
03625 yyerrlab:
03626
03627 if (! yyerrstatus)
03628
03629 {
03630 ++yynerrs;
03631
03632 #ifdef YYERROR_VERBOSE
03633 yyn = yypact[yystate];
03634
03635 if (yyn > YYFLAG && yyn < YYLAST)
03636 {
03637 int size = 0;
03638 char *msg;
03639 int x, count;
03640
03641 count = 0;
03642
03643 for (x = (yyn < 0 ? -yyn : 0);
03644 x < (sizeof(yytname) / sizeof(char *)); x++)
03645 if (yycheck[x + yyn] == x)
03646 size += strlen(yytname[x]) + 15, count++;
03647 msg = (char *) malloc(size + 15);
03648 if (msg != 0)
03649 {
03650 strcpy(msg, "parse error");
03651
03652 if (count < 5)
03653 {
03654 count = 0;
03655 for (x = (yyn < 0 ? -yyn : 0);
03656 x < (sizeof(yytname) / sizeof(char *)); x++)
03657 if (yycheck[x + yyn] == x)
03658 {
03659 strcat(msg, count == 0 ? ", expecting `" : " or `");
03660 strcat(msg, yytname[x]);
03661 strcat(msg, "'");
03662 count++;
03663 }
03664 }
03665 yyerror(msg);
03666 free(msg);
03667 }
03668 else
03669 yyerror ("parse error; also virtual memory exceeded");
03670 }
03671 else
03672 #endif
03673 yyerror("parse error");
03674 }
03675
03676 goto yyerrlab1;
03677 yyerrlab1:
03678
03679 if (yyerrstatus == 3)
03680 {
03681
03682
03683
03684 if (yychar == YYEOF)
03685 YYABORT;
03686
03687 #if YYDEBUG != 0
03688 if (yydebug)
03689 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
03690 #endif
03691
03692 yychar = YYEMPTY;
03693 }
03694
03695
03696
03697
03698 yyerrstatus = 3;
03699
03700 goto yyerrhandle;
03701
03702 yyerrdefault:
03703
03704 #if 0
03705
03706
03707 yyn = yydefact[yystate];
03708 if (yyn) goto yydefault;
03709 #endif
03710
03711 yyerrpop:
03712
03713 if (yyssp == yyss) YYABORT;
03714 yyvsp--;
03715 yystate = *--yyssp;
03716 #ifdef YYLSP_NEEDED
03717 yylsp--;
03718 #endif
03719
03720 #if YYDEBUG != 0
03721 if (yydebug)
03722 {
03723 short *ssp1 = yyss - 1;
03724 fprintf (stderr, "Error: state stack now");
03725 while (ssp1 != yyssp)
03726 fprintf (stderr, " %d", *++ssp1);
03727 fprintf (stderr, "\n");
03728 }
03729 #endif
03730
03731 yyerrhandle:
03732
03733 yyn = yypact[yystate];
03734 if (yyn == YYFLAG)
03735 goto yyerrdefault;
03736
03737 yyn += YYTERROR;
03738 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
03739 goto yyerrdefault;
03740
03741 yyn = yytable[yyn];
03742 if (yyn < 0)
03743 {
03744 if (yyn == YYFLAG)
03745 goto yyerrpop;
03746 yyn = -yyn;
03747 goto yyreduce;
03748 }
03749 else if (yyn == 0)
03750 goto yyerrpop;
03751
03752 if (yyn == YYFINAL)
03753 YYACCEPT;
03754
03755 #if YYDEBUG != 0
03756 if (yydebug)
03757 fprintf(stderr, "Shifting error token, ");
03758 #endif
03759
03760 *++yyvsp = yylval;
03761 #ifdef YYLSP_NEEDED
03762 *++yylsp = yylloc;
03763 #endif
03764
03765 yystate = yyn;
03766 goto yynewstate;
03767
03768 yyacceptlab:
03769
03770 if (yyfree_stacks)
03771 {
03772 free (yyss);
03773 free (yyvs);
03774 #ifdef YYLSP_NEEDED
03775 free (yyls);
03776 #endif
03777 }
03778 return 0;
03779
03780 yyabortlab:
03781
03782 if (yyfree_stacks)
03783 {
03784 free (yyss);
03785 free (yyvs);
03786 #ifdef YYLSP_NEEDED
03787 free (yyls);
03788 #endif
03789 }
03790 return 1;
03791 }
03792 #line 1282 "llgrammar.y"
03793
03794
03795 # include "bison.reset"
03796
03797
03798
03799
03800
03801
03802
03803 void ylerror (char *s)
03804 {
03805
03806
03807
03808
03809
03810
03811
03812
03813 lclfatalerror (yllval.ltok,
03814 message ("%s: Token code: %s, Token String: %s",
03815 cstring_fromChars (s),
03816 ltoken_unparseCodeName (yllval.ltok),
03817 ltoken_getRawString (yllval.ltok)));
03818
03819 }
03820
03821 static void yyprint (FILE *f, int t, YYSTYPE value)
03822 {
03823 fprintf (f, " type: %d (%s)", t,
03824 cstring_toCharsSafe (ltoken_getRawString (value.ltok)));
03825 }
03826
03827
03828
03829
03830
03831
03832