2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
46 /*drl added 11/27/2001*/
48 /*@-arrayboundsread@*/
49 /* < end of bison.head > */
52 /* A Bison parser, made from llgrammar.y
53 by GNU Bison version 1.28 */
55 #define YYBISON 1 /* Identify Bison output. */
57 #define yyparse ylparse
59 #define yyerror ylerror
62 #define yydebug yldebug
63 #define yynerrs ylnerrs
66 #define POSTFIX_OP 259
69 #define LLT_VERTICALBAR 262
70 #define ITERATION_OP 263
72 #define LLT_LBRACKET 265
74 #define LLT_IF_THEN_ELSE 267
77 #define equationSym 270
78 #define commentSym 271
79 #define LLT_WHITESPACE 272
81 #define LLT_TYPEDEF_NAME 274
82 #define quantifierSym 275
94 #define LLT_EQUALS 287
95 #define LLT_LBRACE 288
96 #define LLT_RBRACE 289
97 #define LLT_RBRACKET 290
101 #define LLT_CCHAR 294
102 #define LLT_CFLOAT 295
103 #define LLT_CINTEGER 296
104 #define LLT_LCSTRING 297
106 #define LLT_ANYTHING 299
109 #define LLT_CLAIMS 302
110 #define LLT_CHECKS 303
111 #define LLT_CONSTANT 304
113 #define LLT_ENSURES 306
115 #define LLT_FRESH 308
117 #define LLT_IMMUTABLE 310
118 #define LLT_IMPORTS 311
119 #define LLT_CONSTRAINT 312
120 #define LLT_ISSUB 313
122 #define LLT_MODIFIES 315
123 #define LLT_MUTABLE 316
124 #define LLT_NOTHING 317
125 #define LLT_INTERNAL 318
126 #define LLT_FILESYS 319
131 #define LLT_PARTIAL 324
132 #define LLT_OWNED 325
133 #define LLT_DEPENDENT 326
137 #define LLT_SHARED 330
138 #define LLT_UNIQUE 331
139 #define LLT_UNUSED 332
140 #define LLT_EXITS 333
141 #define LLT_MAYEXIT 334
142 #define LLT_NEVEREXIT 335
143 #define LLT_TRUEEXIT 336
144 #define LLT_FALSEEXIT 337
145 #define LLT_UNDEF 338
146 #define LLT_KILLED 339
147 #define LLT_CHECKMOD 340
148 #define LLT_CHECKED 341
149 #define LLT_UNCHECKED 342
150 #define LLT_CHECKEDSTRICT 343
151 #define LLT_TRUENULL 344
152 #define LLT_FALSENULL 345
153 #define LLT_LNULL 346
154 #define LLT_LNOTNULL 347
155 #define LLT_RETURNED 348
156 #define LLT_OBSERVER 349
157 #define LLT_EXPOSED 350
158 #define LLT_REFCOUNTED 351
160 #define LLT_RELNULL 353
161 #define LLT_RELDEF 354
162 #define LLT_KILLREF 355
163 #define LLT_NULLTERMINATED 356
164 #define LLT_TEMPREF 357
165 #define LLT_NEWREF 358
166 #define LLT_PRIVATE 359
167 #define LLT_REQUIRES 360
168 #define LLT_RESULT 361
169 #define LLT_SIZEOF 362
171 #define LLT_TAGGEDUNION 364
174 #define LLT_TYPEDEF 367
175 #define LLT_UNCHANGED 368
178 #define LLT_CONST 371
179 #define LLT_DOUBLE 372
181 #define LLT_FLOAT 374
184 #define LLT_YIELD 377
186 #define LLT_SHORT 379
187 #define LLT_SIGNED 380
188 #define LLT_UNKNOWN 381
189 #define LLT_STRUCT 382
190 #define LLT_TELIPSIS 383
191 #define LLT_UNION 384
192 #define LLT_UNSIGNED 385
194 #define LLT_VOLATILE 387
195 #define LLT_PRINTFLIKE 388
196 #define LLT_SCANFLIKE 389
197 #define LLT_MESSAGELIKE 390
201 # include "lclintMacros.nf"
202 # include "llbasic.h"
203 # include "lclscan.h"
204 # include "checking.h"
205 # include "lslparse.h"
207 # include "usymtab_interface.h"
210 static /*@unused@*/ void yyprint ();
214 void ylerror (char *) /*@modifies *g_msgstream@*/ ;
217 bool g_inTypeDef = FALSE;
219 /*@constant int YYDEBUG;@*/
223 # define YYPRINT(file, type, value) yyprint (file, type, value)
226 ** This is necessary, or else when the bison-generated code #include's malloc.h,
227 ** there will be a parse error.
229 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
230 ** in bison-generated files under Win32.
242 ltoken ltok; /* a leaf is also an ltoken */
245 /*@only@*/ ltokenList ltokenList;
246 /*@only@*/ abstDeclaratorNode abstDecl;
247 /*@only@*/ declaratorNode declare;
248 /*@only@*/ declaratorNodeList declarelist;
249 /*@only@*/ typeExpr typeexpr;
250 /*@only@*/ arrayQualNode array;
251 /*@only@*/ quantifierNode quantifier;
252 /*@only@*/ quantifierNodeList quantifiers;
253 /*@only@*/ varNode var;
254 /*@only@*/ varNodeList vars;
255 /*@only@*/ storeRefNode storeref;
256 /*@only@*/ storeRefNodeList storereflist;
257 /*@only@*/ termNode term;
258 /*@only@*/ termNodeList termlist;
259 /*@only@*/ programNode program;
260 /*@only@*/ stmtNode stmt;
261 /*@only@*/ claimNode claim;
262 /*@only@*/ typeNode type;
263 /*@only@*/ iterNode iter;
264 /*@only@*/ fcnNode fcn;
265 /*@only@*/ fcnNodeList fcns;
266 /*@only@*/ letDeclNode letdecl;
267 /*@only@*/ letDeclNodeList letdecls;
268 /*@only@*/ lclPredicateNode lclpredicate;
269 /*@only@*/ modifyNode modify;
270 /*@only@*/ paramNode param;
271 /*@only@*/ paramNodeList paramlist;
272 /*@only@*/ declaratorInvNodeList declaratorinvs;
273 /*@only@*/ declaratorInvNode declaratorinv;
274 /*@only@*/ abstBodyNode abstbody;
275 /*@only@*/ abstractNode abstract;
276 /*@only@*/ exposedNode exposed;
277 /* taggedUnionNode taggedunion; */
278 /*@only@*/ globalList globals;
279 /*@only@*/ constDeclarationNode constdeclaration;
280 /*@only@*/ varDeclarationNode vardeclaration;
281 /*@only@*/ varDeclarationNodeList vardeclarationlist;
282 /*@only@*/ initDeclNodeList initdecls;
283 /*@only@*/ initDeclNode initdecl;
284 /*@only@*/ stDeclNodeList structdecls;
285 /*@only@*/ stDeclNode structdecl;
286 /*@only@*/ strOrUnionNode structorunion;
287 /*@only@*/ enumSpecNode enumspec;
288 /*@only@*/ lclTypeSpecNode lcltypespec;
289 /*@only@*/ typeNameNode typname;
290 /*@only@*/ opFormNode opform;
291 /*@only@*/ sigNode signature;
292 /*@only@*/ nameNode name;
293 /*@only@*/ typeNameNodeList namelist;
294 /*@only@*/ replaceNode replace;
295 /*@only@*/ replaceNodeList replacelist;
296 /*@only@*/ renamingNode renaming;
297 /*@only@*/ traitRefNode traitref;
298 /*@only@*/ traitRefNodeList traitreflist;
299 /*@only@*/ importNode import;
300 /*@only@*/ importNodeList importlist;
301 /*@only@*/ interfaceNode iface;
302 /*@only@*/ interfaceNodeList interfacelist;
303 /*@only@*/ CTypesNode ctypes;
321 #define YYFLAG -32768
324 #define YYTRANSLATE(x) ((unsigned)(x) <= 390 ? yytranslate[x] : 291)
326 static const short yytranslate[] = { 0,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
352 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
353 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
354 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
355 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
356 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
357 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
358 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
359 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
360 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
361 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
362 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
363 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
364 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
365 127, 128, 129, 130, 131, 132, 133, 134, 135, 136
369 static const short yyprhs[] = { 0,
370 0, 1, 5, 6, 9, 11, 13, 14, 17, 20,
371 21, 24, 26, 28, 30, 34, 38, 40, 42, 44,
372 46, 48, 50, 57, 58, 60, 62, 66, 69, 71,
373 72, 76, 78, 80, 82, 84, 89, 93, 98, 103,
374 105, 107, 109, 111, 113, 114, 128, 129, 144, 145,
375 159, 164, 165, 166, 173, 174, 175, 183, 184, 185,
376 193, 194, 195, 202, 203, 204, 211, 214, 217, 219,
377 223, 225, 229, 231, 233, 237, 239, 241, 245, 247,
378 252, 256, 263, 265, 269, 271, 273, 277, 279, 283,
379 285, 289, 293, 297, 302, 304, 306, 308, 310, 312,
380 316, 318, 322, 323, 326, 330, 333, 336, 337, 340,
381 345, 346, 350, 352, 356, 362, 366, 368, 369, 373,
382 374, 378, 379, 383, 387, 391, 393, 397, 399, 401,
383 404, 406, 408, 409, 413, 414, 418, 419, 421, 423,
384 425, 429, 431, 435, 436, 441, 447, 449, 453, 456,
385 460, 464, 469, 473, 479, 486, 488, 492, 494, 496,
386 499, 502, 506, 510, 514, 519, 521, 525, 530, 534,
387 535, 538, 539, 541, 542, 549, 551, 555, 556, 560,
388 561, 565, 567, 569, 571, 573, 575, 577, 579, 581,
389 583, 585, 587, 590, 592, 594, 596, 598, 600, 602,
390 604, 606, 608, 610, 612, 614, 616, 618, 620, 622,
391 624, 626, 628, 630, 632, 634, 636, 638, 640, 642,
392 644, 646, 648, 650, 652, 654, 656, 658, 660, 662,
393 664, 666, 668, 670, 672, 675, 681, 683, 686, 688,
394 691, 692, 699, 700, 707, 710, 713, 714, 716, 718,
395 721, 725, 727, 731, 732, 734, 741, 744, 746, 750,
396 752, 754, 756, 760, 763, 766, 770, 775, 777, 781,
397 784, 787, 791, 796, 798, 801, 804, 808, 813, 816,
398 819, 822, 825, 829, 831, 832, 834, 838, 841, 843,
399 845, 848, 852, 856, 861, 864, 868, 875, 877, 880,
400 883, 887, 891, 896, 901, 907, 911, 916, 921, 927,
401 930, 933, 937, 941, 943, 945, 947, 949, 951, 953,
402 955, 956, 958, 960, 964, 966, 968, 973, 974, 976,
403 978, 982, 984, 986, 993, 995, 999, 1001, 1006, 1010,
404 1014, 1016, 1019, 1022, 1024, 1026, 1028, 1031, 1033, 1036,
405 1039, 1043, 1045, 1047, 1050, 1053, 1057, 1059, 1062, 1066,
406 1068, 1074, 1078, 1083, 1086, 1090, 1093, 1095, 1099, 1103,
407 1105, 1110, 1112, 1115, 1119, 1123, 1127, 1132, 1136, 1138,
408 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1159, 1164, 1169,
409 1174, 1181, 1186, 1188, 1190, 1192, 1194, 1196, 1199, 1200,
410 1204, 1206, 1210, 1214, 1219, 1221, 1223, 1225, 1227, 1229,
414 static const short yyrhs[] = { -1,
415 139, 138, 141, 0, 0, 139, 140, 0, 144, 0,
416 145, 0, 0, 146, 142, 0, 151, 142, 0, 0,
417 142, 143, 0, 146, 0, 151, 0, 145, 0, 57,
418 175, 7, 0, 115, 179, 7, 0, 154, 0, 155,
419 0, 156, 0, 158, 0, 161, 0, 147, 0, 122,
420 285, 10, 148, 37, 7, 0, 0, 149, 0, 150,
421 0, 149, 32, 150, 0, 123, 244, 0, 244, 0,
422 0, 109, 152, 153, 0, 154, 0, 155, 0, 156,
423 0, 158, 0, 50, 227, 189, 7, 0, 227, 189,
424 7, 0, 117, 227, 189, 7, 0, 133, 227, 189,
425 7, 0, 163, 0, 172, 0, 134, 0, 135, 0,
426 136, 0, 0, 227, 240, 191, 159, 34, 193, 195,
427 199, 200, 201, 204, 205, 35, 0, 0, 157, 227,
428 240, 191, 160, 34, 193, 195, 199, 200, 201, 204,
429 205, 35, 0, 0, 48, 287, 10, 206, 37, 191,
430 162, 34, 195, 200, 209, 204, 35, 0, 48, 284,
431 287, 7, 0, 0, 0, 62, 164, 112, 20, 165,
432 214, 0, 0, 0, 62, 166, 97, 112, 20, 167,
433 214, 0, 0, 0, 97, 62, 168, 112, 20, 169,
434 214, 0, 0, 0, 56, 170, 112, 20, 171, 214,
435 0, 0, 0, 113, 227, 173, 219, 174, 7, 0,
436 230, 7, 0, 238, 7, 0, 176, 0, 175, 32,
437 176, 0, 178, 0, 3, 178, 3, 0, 43, 0,
438 178, 0, 177, 32, 178, 0, 283, 0, 180, 0,
439 179, 32, 180, 0, 289, 0, 289, 10, 182, 37,
440 0, 10, 181, 37, 0, 10, 181, 37, 10, 182,
441 37, 0, 289, 0, 181, 32, 289, 0, 184, 0,
442 183, 0, 183, 32, 184, 0, 245, 0, 183, 32,
443 245, 0, 185, 0, 184, 32, 185, 0, 245, 53,
444 223, 0, 245, 53, 186, 0, 245, 53, 186, 256,
445 0, 290, 0, 249, 0, 188, 0, 260, 0, 190,
446 0, 189, 32, 190, 0, 240, 0, 240, 33, 187,
447 0, 0, 191, 192, 0, 227, 189, 7, 0, 64,
448 7, 0, 65, 7, 0, 0, 193, 194, 0, 105,
449 227, 189, 7, 0, 0, 60, 196, 7, 0, 197,
450 0, 196, 32, 197, 0, 285, 31, 198, 46, 260,
451 0, 285, 46, 260, 0, 227, 0, 0, 49, 259,
452 7, 0, 0, 106, 259, 7, 0, 0, 61, 63,
453 7, 0, 61, 45, 7, 0, 61, 202, 7, 0,
454 203, 0, 202, 32, 203, 0, 260, 0, 228, 0,
455 66, 228, 0, 64, 0, 65, 0, 0, 52, 259,
456 7, 0, 0, 48, 259, 7, 0, 0, 207, 0,
457 208, 0, 129, 0, 208, 32, 129, 0, 244, 0,
458 208, 32, 244, 0, 0, 47, 34, 210, 35, 0,
459 47, 34, 210, 7, 35, 0, 211, 0, 10, 210,
460 37, 0, 210, 6, 0, 210, 8, 210, 0, 210,
461 7, 210, 0, 284, 10, 212, 37, 0, 284, 10,
462 37, 0, 285, 33, 284, 10, 37, 0, 285, 33,
463 284, 10, 212, 37, 0, 213, 0, 212, 32, 213,
464 0, 277, 0, 285, 0, 3, 213, 0, 213, 3,
465 0, 213, 3, 213, 0, 10, 213, 37, 0, 284,
466 10, 37, 0, 284, 10, 212, 37, 0, 7, 0,
467 34, 215, 35, 0, 34, 177, 35, 7, 0, 34,
468 35, 7, 0, 0, 215, 158, 0, 0, 217, 0,
469 0, 58, 218, 279, 10, 259, 37, 0, 220, 0,
470 219, 32, 220, 0, 0, 240, 221, 222, 0, 0,
471 34, 216, 35, 0, 132, 0, 116, 0, 118, 0,
472 120, 0, 121, 0, 124, 0, 125, 0, 126, 0,
473 131, 0, 127, 0, 223, 0, 224, 223, 0, 20,
474 0, 224, 0, 67, 0, 78, 0, 68, 0, 69,
475 0, 71, 0, 72, 0, 73, 0, 74, 0, 95,
476 0, 79, 0, 80, 0, 82, 0, 83, 0, 81,
477 0, 75, 0, 76, 0, 77, 0, 87, 0, 88,
478 0, 89, 0, 90, 0, 91, 0, 99, 0, 100,
479 0, 97, 0, 98, 0, 104, 0, 101, 0, 92,
480 0, 93, 0, 94, 0, 96, 0, 70, 0, 102,
481 0, 84, 0, 85, 0, 225, 0, 230, 0, 238,
482 0, 226, 227, 0, 8, 228, 31, 228, 8, 0,
483 227, 0, 227, 229, 0, 6, 0, 229, 6, 0,
484 0, 128, 233, 231, 34, 234, 35, 0, 0, 130,
485 233, 232, 34, 234, 35, 0, 128, 286, 0, 130,
486 286, 0, 0, 286, 0, 235, 0, 234, 235, 0,
487 227, 236, 7, 0, 240, 0, 236, 32, 240, 0,
488 0, 32, 0, 119, 233, 34, 239, 237, 35, 0,
489 119, 286, 0, 25, 0, 239, 32, 25, 0, 242,
490 0, 241, 0, 285, 0, 10, 241, 37, 0, 6,
491 241, 0, 241, 248, 0, 241, 10, 37, 0, 241,
492 10, 207, 37, 0, 20, 0, 10, 242, 37, 0,
493 6, 242, 0, 242, 248, 0, 242, 10, 37, 0,
494 242, 10, 207, 37, 0, 20, 0, 6, 243, 0,
495 243, 248, 0, 243, 10, 37, 0, 243, 10, 207,
496 37, 0, 227, 243, 0, 227, 241, 0, 227, 246,
497 0, 227, 246, 0, 66, 227, 246, 0, 249, 0,
498 0, 247, 0, 10, 247, 37, 0, 6, 247, 0,
499 6, 0, 248, 0, 247, 248, 0, 247, 10, 37,
500 0, 10, 207, 37, 0, 247, 10, 207, 37, 0,
501 11, 36, 0, 11, 188, 36, 0, 55, 27, 111,
502 27, 51, 27, 0, 252, 0, 27, 252, 0, 252,
503 27, 0, 27, 252, 27, 0, 250, 253, 251, 0,
504 27, 250, 253, 251, 0, 250, 253, 251, 27, 0,
505 27, 250, 253, 251, 27, 0, 11, 253, 36, 0,
506 11, 253, 36, 27, 0, 27, 11, 253, 36, 0,
507 27, 11, 253, 36, 27, 0, 12, 283, 0, 26,
508 283, 0, 27, 12, 283, 0, 27, 26, 283, 0,
509 22, 0, 34, 0, 23, 0, 35, 0, 264, 0,
510 14, 0, 39, 0, 0, 254, 0, 27, 0, 254,
511 255, 27, 0, 32, 0, 24, 0, 31, 257, 26,
512 288, 0, 0, 258, 0, 288, 0, 258, 32, 288,
513 0, 260, 0, 261, 0, 55, 261, 111, 261, 51,
514 261, 0, 262, 0, 261, 14, 261, 0, 263, 0,
515 278, 10, 259, 37, 0, 263, 39, 263, 0, 263,
516 33, 263, 0, 265, 0, 268, 266, 0, 268, 267,
517 0, 3, 0, 6, 0, 268, 0, 264, 265, 0,
518 264, 0, 266, 264, 0, 264, 268, 0, 267, 264,
519 268, 0, 273, 0, 269, 0, 269, 273, 0, 273,
520 269, 0, 273, 269, 273, 0, 270, 0, 270, 273,
521 0, 271, 31, 288, 0, 271, 0, 11, 272, 36,
522 31, 288, 0, 11, 272, 36, 0, 11, 36, 31,
523 288, 0, 11, 36, 0, 250, 272, 251, 0, 250,
524 251, 0, 260, 0, 272, 255, 260, 0, 10, 261,
525 37, 0, 285, 0, 290, 10, 274, 37, 0, 276,
526 0, 273, 275, 0, 273, 12, 283, 0, 273, 26,
527 283, 0, 273, 11, 36, 0, 273, 11, 274, 36,
528 0, 273, 31, 288, 0, 261, 0, 274, 32, 261,
529 0, 28, 0, 29, 0, 30, 0, 38, 0, 277,
530 0, 107, 0, 54, 10, 274, 37, 0, 114, 10,
531 44, 37, 0, 114, 10, 202, 37, 0, 108, 10,
532 260, 37, 0, 59, 10, 260, 32, 260, 37, 0,
533 108, 10, 227, 37, 0, 42, 0, 43, 0, 40,
534 0, 41, 0, 279, 0, 278, 279, 0, 0, 21,
535 280, 281, 0, 282, 0, 281, 32, 282, 0, 285,
536 31, 198, 0, 285, 31, 66, 198, 0, 25, 0,
537 20, 0, 25, 0, 25, 0, 283, 0, 283, 0,
538 283, 0, 283, 0, 283, 0
544 static const short yyrline[] = { 0,
545 380, 381, 384, 385, 388, 389, 392, 393, 394, 397,
546 398, 401, 402, 403, 406, 412, 416, 418, 420, 422,
547 424, 426, 430, 434, 435, 438, 440, 444, 445, 448,
548 449, 452, 454, 456, 458, 462, 466, 468, 470, 474,
549 475, 478, 479, 480, 483, 484, 491, 493, 504, 506,
550 509, 513, 513, 514, 515, 515, 517, 518, 519, 520,
551 521, 521, 522, 525, 526, 527, 528, 530, 546, 548,
552 552, 553, 555, 558, 559, 562, 566, 568, 572, 574,
553 576, 578, 582, 583, 586, 588, 590, 593, 595, 598,
554 600, 603, 604, 605, 609, 610, 612, 614, 617, 619,
555 623, 624, 627, 629, 633, 634, 635, 638, 639, 642,
556 646, 647, 650, 651, 654, 655, 657, 660, 661, 664,
557 665, 668, 669, 670, 671, 674, 675, 678, 679, 680,
558 681, 682, 685, 686, 689, 690, 693, 694, 697, 698,
559 699, 702, 703, 706, 707, 708, 711, 712, 715, 720,
560 726, 734, 736, 738, 740, 744, 745, 748, 749, 750,
561 751, 752, 753, 754, 756, 760, 761, 762, 763, 766,
562 767, 770, 771, 774, 774, 783, 784, 788, 789, 792,
563 793, 796, 797, 798, 799, 800, 801, 802, 803, 804,
564 805, 813, 814, 819, 821, 827, 828, 829, 830, 831,
565 832, 833, 834, 835, 836, 837, 838, 839, 840, 841,
566 842, 843, 844, 845, 846, 847, 848, 849, 850, 851,
567 852, 853, 854, 855, 856, 857, 858, 859, 860, 861,
568 862, 865, 867, 869, 871, 873, 882, 883, 888, 889,
569 892, 894, 896, 898, 900, 902, 906, 907, 910, 911,
570 916, 919, 921, 925, 926, 929, 931, 935, 936, 946,
571 947, 950, 951, 952, 953, 954, 955, 958, 959, 960,
572 961, 962, 963, 972, 973, 974, 975, 976, 982, 983,
573 984, 994, 995, 996, 1001, 1002, 1005, 1006, 1007, 1008,
574 1009, 1010, 1011, 1012, 1015, 1016, 1019, 1021, 1023, 1025,
575 1027, 1030, 1032, 1034, 1036, 1038, 1040, 1048, 1050, 1052,
576 1055, 1058, 1061, 1066, 1067, 1070, 1071, 1074, 1075, 1076,
577 1079, 1080, 1083, 1084, 1087, 1088, 1091, 1094, 1095, 1098,
578 1099, 1102, 1105, 1111, 1113, 1114, 1117, 1118, 1123, 1125,
579 1129, 1130, 1131, 1134, 1135, 1138, 1139, 1142, 1143, 1146,
580 1147, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1159, 1160,
581 1163, 1166, 1168, 1172, 1176, 1177, 1180, 1181, 1184, 1186,
582 1188, 1190, 1191, 1193, 1195, 1197, 1200, 1202, 1206, 1207,
583 1210, 1211, 1212, 1213, 1216, 1217, 1218, 1219, 1220, 1221,
584 1226, 1232, 1242, 1243, 1244, 1245, 1248, 1250, 1254, 1258,
585 1261, 1262, 1265, 1266, 1269, 1270, 1273, 1274, 1275, 1276,
591 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
593 static const char * const yytname[] = { "$","error","$undefined.","simpleOp",
594 "PREFIX_OP","POSTFIX_OP","LLT_MULOP","LLT_SEMI","LLT_VERTICALBAR","ITERATION_OP",
595 "LLT_LPAR","LLT_LBRACKET","selectSym","LLT_IF_THEN_ELSE","logicalOp","eqSepSym",
596 "equationSym","commentSym","LLT_WHITESPACE","LLT_EOL","LLT_TYPEDEF_NAME","quantifierSym",
597 "openSym","closeSym","sepSym","simpleId","mapSym","markerSym","preSym","postSym",
598 "anySym","LLT_COLON","LLT_COMMA","LLT_EQUALS","LLT_LBRACE","LLT_RBRACE","LLT_RBRACKET",
599 "LLT_RPAR","LLT_QUOTE","eqOp","LLT_CCHAR","LLT_CFLOAT","LLT_CINTEGER","LLT_LCSTRING",
600 "LLT_ALL","LLT_ANYTHING","LLT_BE","LLT_BODY","LLT_CLAIMS","LLT_CHECKS","LLT_CONSTANT",
601 "LLT_ELSE","LLT_ENSURES","LLT_FOR","LLT_FRESH","LLT_IF","LLT_IMMUTABLE","LLT_IMPORTS",
602 "LLT_CONSTRAINT","LLT_ISSUB","LLT_LET","LLT_MODIFIES","LLT_MUTABLE","LLT_NOTHING",
603 "LLT_INTERNAL","LLT_FILESYS","LLT_OBJ","LLT_OUT","LLT_SEF","LLT_ONLY","LLT_PARTIAL",
604 "LLT_OWNED","LLT_DEPENDENT","LLT_KEEP","LLT_KEPT","LLT_TEMP","LLT_SHARED","LLT_UNIQUE",
605 "LLT_UNUSED","LLT_EXITS","LLT_MAYEXIT","LLT_NEVEREXIT","LLT_TRUEEXIT","LLT_FALSEEXIT",
606 "LLT_UNDEF","LLT_KILLED","LLT_CHECKMOD","LLT_CHECKED","LLT_UNCHECKED","LLT_CHECKEDSTRICT",
607 "LLT_TRUENULL","LLT_FALSENULL","LLT_LNULL","LLT_LNOTNULL","LLT_RETURNED","LLT_OBSERVER",
608 "LLT_EXPOSED","LLT_REFCOUNTED","LLT_REFS","LLT_RELNULL","LLT_RELDEF","LLT_KILLREF",
609 "LLT_NULLTERMINATED","LLT_TEMPREF","LLT_NEWREF","LLT_PRIVATE","LLT_REQUIRES",
610 "LLT_RESULT","LLT_SIZEOF","LLT_SPEC","LLT_TAGGEDUNION","LLT_THEN","LLT_TYPE",
611 "LLT_TYPEDEF","LLT_UNCHANGED","LLT_USES","LLT_CHAR","LLT_CONST","LLT_DOUBLE",
612 "LLT_ENUM","LLT_FLOAT","LLT_INT","LLT_ITER","LLT_YIELD","LLT_LONG","LLT_SHORT",
613 "LLT_SIGNED","LLT_UNKNOWN","LLT_STRUCT","LLT_TELIPSIS","LLT_UNION","LLT_UNSIGNED",
614 "LLT_VOID","LLT_VOLATILE","LLT_PRINTFLIKE","LLT_SCANFLIKE","LLT_MESSAGELIKE",
615 "interface","@1","externals","external","optDeclarations","declarations","declaration",
616 "imports","uses","export","iter","iterParamList","realIterParamList","iterParam",
617 "private","@2","private2","constDeclaration","varDeclaration","type","special",
618 "fcn","@3","@4","claim","@5","abstract","@6","@7","@8","@9","@10","@11","@12",
619 "@13","exposed","@14","@15","importNameList","importName","interfaceNameList",
620 "interfaceName","traitRefNodeList","traitRef","traitIdList","renaming","nameList",
621 "replaceNodeList","replace","name","initializer","constLclExpr","initDecls",
622 "initDecl","globals","globalDecl","privateInits","privateInit","optLetDecl",
623 "beDeclList","beDecl","sortSpec","optChecks","optRequire","optModify","storeRefList",
624 "storeRef","optEnsure","optClaim","optParamList","realParamList","paramList",
625 "optBody","callExpr","stmt","valueList","value","abstBody","fcns","optTypeInv",
626 "typeInv","@16","declaratorInvs","declaratorInv","@17","optExposedBody","CType",
627 "CTypes","typeSpecifier","specialQualifier","lclTypeSpec","lclType","pointers",
628 "structOrUnionSpec","@18","@19","optTagId","structDecls","structDecl","declaratorList",
629 "optCOMMA","enumSpec","enumeratorList","declarator","notype_decl","after_type_decl",
630 "parameter_decl","param","typeName","optAbstDeclarator","abstDeclarator","arrayQual",
631 "opForm","open","close","anyOp","middle","placeList","separator","signature",
632 "domain","sortList","lclPredicate","term","term0","equalityTerm","simpleOpTerm",
633 "simpleOp2","prefixOpTerm","postfixOps","infixOpPart","secondary","bracketed",
634 "sqBracketed","matched","args","primary","termList","stateFcn","lclPrimary",
635 "cLiteral","quantifiers","quantifier","@20","quantifiedList","quantified","simpleIdOrTypedefName",
636 "fcnId","varId","tagId","claimId","sortId","traitId","opId", NULL
640 static const short yyr1[] = { 0,
641 138, 137, 139, 139, 140, 140, 141, 141, 141, 142,
642 142, 143, 143, 143, 144, 145, 146, 146, 146, 146,
643 146, 146, 147, 148, 148, 149, 149, 150, 150, 152,
644 151, 153, 153, 153, 153, 154, 155, 155, 155, 156,
645 156, 157, 157, 157, 159, 158, 160, 158, 162, 161,
646 161, 164, 165, 163, 166, 167, 163, 168, 169, 163,
647 170, 171, 163, 173, 174, 172, 172, 172, 175, 175,
648 176, 176, 176, 177, 177, 178, 179, 179, 180, 180,
649 180, 180, 181, 181, 182, 182, 182, 183, 183, 184,
650 184, 185, 185, 185, 186, 186, 187, 188, 189, 189,
651 190, 190, 191, 191, 192, 192, 192, 193, 193, 194,
652 195, 195, 196, 196, 197, 197, 198, 199, 199, 200,
653 200, 201, 201, 201, 201, 202, 202, 203, 203, 203,
654 203, 203, 204, 204, 205, 205, 206, 206, 207, 207,
655 207, 208, 208, 209, 209, 209, 210, 210, 210, 210,
656 210, 211, 211, 211, 211, 212, 212, 213, 213, 213,
657 213, 213, 213, 213, 213, 214, 214, 214, 214, 215,
658 215, 216, 216, 218, 217, 219, 219, 221, 220, 222,
659 222, 223, 223, 223, 223, 223, 223, 223, 223, 223,
660 223, 224, 224, 225, 225, 226, 226, 226, 226, 226,
661 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
662 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
663 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
664 226, 227, 227, 227, 227, 227, 228, 228, 229, 229,
665 231, 230, 232, 230, 230, 230, 233, 233, 234, 234,
666 235, 236, 236, 237, 237, 238, 238, 239, 239, 240,
667 240, 241, 241, 241, 241, 241, 241, 242, 242, 242,
668 242, 242, 242, 243, 243, 243, 243, 243, 244, 244,
669 244, 245, 245, 245, 246, 246, 247, 247, 247, 247,
670 247, 247, 247, 247, 248, 248, 249, 249, 249, 249,
671 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
672 249, 249, 249, 250, 250, 251, 251, 252, 252, 252,
673 253, 253, 254, 254, 255, 255, 256, 257, 257, 258,
674 258, 259, 260, 261, 261, 261, 262, 262, 262, 262,
675 263, 263, 263, 264, 264, 265, 265, 266, 266, 267,
676 267, 268, 268, 268, 268, 268, 268, 268, 269, 269,
677 270, 270, 270, 270, 271, 271, 272, 272, 273, 273,
678 273, 273, 273, 273, 273, 273, 273, 273, 274, 274,
679 275, 275, 275, 275, 276, 276, 276, 276, 276, 276,
680 276, 276, 277, 277, 277, 277, 278, 278, 280, 279,
681 281, 281, 282, 282, 283, 283, 284, 285, 286, 287,
685 static const short yyr2[] = { 0,
686 0, 3, 0, 2, 1, 1, 0, 2, 2, 0,
687 2, 1, 1, 1, 3, 3, 1, 1, 1, 1,
688 1, 1, 6, 0, 1, 1, 3, 2, 1, 0,
689 3, 1, 1, 1, 1, 4, 3, 4, 4, 1,
690 1, 1, 1, 1, 0, 13, 0, 14, 0, 13,
691 4, 0, 0, 6, 0, 0, 7, 0, 0, 7,
692 0, 0, 6, 0, 0, 6, 2, 2, 1, 3,
693 1, 3, 1, 1, 3, 1, 1, 3, 1, 4,
694 3, 6, 1, 3, 1, 1, 3, 1, 3, 1,
695 3, 3, 3, 4, 1, 1, 1, 1, 1, 3,
696 1, 3, 0, 2, 3, 2, 2, 0, 2, 4,
697 0, 3, 1, 3, 5, 3, 1, 0, 3, 0,
698 3, 0, 3, 3, 3, 1, 3, 1, 1, 2,
699 1, 1, 0, 3, 0, 3, 0, 1, 1, 1,
700 3, 1, 3, 0, 4, 5, 1, 3, 2, 3,
701 3, 4, 3, 5, 6, 1, 3, 1, 1, 2,
702 2, 3, 3, 3, 4, 1, 3, 4, 3, 0,
703 2, 0, 1, 0, 6, 1, 3, 0, 3, 0,
704 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
705 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
706 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
707 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
708 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
709 1, 1, 1, 1, 2, 5, 1, 2, 1, 2,
710 0, 6, 0, 6, 2, 2, 0, 1, 1, 2,
711 3, 1, 3, 0, 1, 6, 2, 1, 3, 1,
712 1, 1, 3, 2, 2, 3, 4, 1, 3, 2,
713 2, 3, 4, 1, 2, 2, 3, 4, 2, 2,
714 2, 2, 3, 1, 0, 1, 3, 2, 1, 1,
715 2, 3, 3, 4, 2, 3, 6, 1, 2, 2,
716 3, 3, 4, 4, 5, 3, 4, 4, 5, 2,
717 2, 3, 3, 1, 1, 1, 1, 1, 1, 1,
718 0, 1, 1, 3, 1, 1, 4, 0, 1, 1,
719 3, 1, 1, 6, 1, 3, 1, 4, 3, 3,
720 1, 2, 2, 1, 1, 1, 2, 1, 2, 2,
721 3, 1, 1, 2, 2, 3, 1, 2, 3, 1,
722 5, 3, 4, 2, 3, 2, 1, 3, 3, 1,
723 4, 1, 2, 3, 3, 3, 4, 3, 1, 3,
724 1, 1, 1, 1, 1, 1, 4, 4, 4, 4,
725 6, 4, 1, 1, 1, 1, 1, 2, 0, 3,
726 1, 3, 3, 4, 1, 1, 1, 1, 1, 1,
730 static const short yydefact[] = { 3,
731 1, 0, 0, 7, 4, 5, 6, 0, 406, 405,
732 73, 0, 69, 71, 76, 0, 0, 77, 412, 79,
733 0, 194, 0, 0, 61, 52, 196, 198, 199, 228,
734 200, 201, 202, 203, 210, 211, 212, 197, 205, 206,
735 209, 207, 208, 230, 231, 213, 214, 215, 216, 217,
736 224, 225, 226, 204, 227, 220, 221, 218, 219, 223,
737 229, 222, 30, 0, 183, 0, 184, 247, 185, 186,
738 0, 187, 188, 189, 191, 247, 247, 190, 182, 0,
739 42, 43, 44, 2, 10, 22, 10, 17, 18, 19,
740 0, 20, 21, 40, 41, 192, 195, 232, 0, 0,
741 233, 234, 0, 15, 0, 0, 83, 16, 0, 0,
742 220, 237, 0, 233, 234, 407, 410, 0, 0, 0,
743 0, 0, 0, 58, 0, 64, 0, 0, 409, 257,
744 408, 0, 241, 245, 243, 246, 0, 8, 9, 0,
745 193, 235, 0, 0, 268, 0, 99, 103, 261, 260,
746 262, 67, 68, 72, 70, 0, 81, 78, 344, 345,
747 321, 0, 319, 314, 0, 0, 315, 320, 0, 0,
748 0, 86, 85, 90, 285, 88, 284, 321, 298, 318,
749 239, 238, 0, 0, 137, 0, 101, 0, 0, 0,
750 0, 31, 32, 33, 34, 35, 0, 0, 0, 24,
751 0, 0, 0, 11, 14, 12, 13, 103, 264, 270,
752 0, 0, 37, 0, 0, 45, 0, 0, 265, 0,
753 271, 84, 0, 323, 0, 322, 310, 311, 321, 0,
754 0, 321, 299, 0, 285, 80, 0, 0, 289, 0,
755 282, 286, 290, 0, 0, 300, 240, 0, 51, 140,
756 0, 138, 139, 285, 142, 36, 62, 53, 0, 0,
757 65, 176, 178, 38, 258, 254, 0, 0, 25, 26,
758 29, 0, 0, 39, 47, 263, 269, 100, 0, 0,
759 399, 408, 395, 396, 393, 394, 0, 0, 0, 386,
760 0, 0, 102, 97, 0, 98, 333, 335, 337, 0,
761 341, 346, 353, 357, 360, 352, 372, 385, 0, 397,
762 413, 370, 0, 0, 0, 0, 104, 0, 266, 0,
763 295, 0, 272, 0, 0, 306, 326, 325, 0, 0,
764 312, 313, 0, 301, 0, 283, 87, 89, 91, 0,
765 288, 0, 0, 0, 291, 93, 92, 96, 95, 316,
766 317, 302, 236, 103, 0, 289, 0, 274, 280, 279,
767 281, 0, 0, 56, 59, 0, 0, 180, 255, 0,
768 28, 0, 0, 0, 0, 249, 0, 0, 0, 364,
769 367, 0, 0, 0, 0, 0, 0, 0, 366, 0,
770 0, 0, 0, 347, 346, 348, 342, 343, 354, 358,
771 0, 0, 0, 0, 381, 382, 383, 0, 384, 355,
772 373, 0, 398, 0, 106, 107, 108, 0, 267, 296,
773 273, 82, 307, 324, 308, 303, 0, 293, 287, 292,
774 0, 328, 94, 304, 49, 141, 143, 275, 289, 0,
775 276, 166, 170, 63, 54, 0, 0, 177, 66, 172,
776 179, 259, 256, 23, 27, 0, 252, 242, 250, 244,
777 108, 369, 0, 362, 0, 400, 401, 0, 379, 0,
778 0, 0, 194, 0, 0, 0, 131, 132, 0, 0,
779 126, 129, 128, 365, 336, 340, 339, 350, 349, 0,
780 411, 359, 376, 0, 374, 375, 378, 356, 0, 332,
781 0, 111, 105, 309, 305, 0, 294, 0, 329, 330,
782 0, 277, 0, 0, 0, 74, 0, 57, 60, 174,
783 0, 173, 251, 0, 111, 363, 0, 368, 0, 0,
784 0, 387, 0, 0, 392, 390, 388, 130, 0, 389,
785 351, 377, 338, 371, 0, 0, 109, 118, 297, 0,
786 0, 111, 278, 169, 0, 0, 167, 171, 0, 0,
787 181, 253, 118, 361, 402, 0, 403, 117, 380, 0,
788 0, 127, 0, 113, 0, 0, 0, 120, 327, 331,
789 120, 75, 168, 103, 0, 120, 404, 334, 391, 112,
790 0, 0, 0, 0, 0, 0, 122, 144, 0, 122,
791 114, 0, 116, 110, 119, 0, 0, 133, 0, 133,
792 0, 133, 0, 121, 0, 0, 0, 0, 135, 0,
793 0, 175, 135, 115, 124, 123, 125, 0, 0, 0,
794 0, 408, 0, 147, 0, 0, 50, 0, 134, 0,
795 46, 0, 149, 0, 0, 145, 0, 0, 48, 136,
796 0, 148, 146, 151, 150, 0, 0, 153, 0, 156,
797 158, 0, 159, 407, 0, 160, 0, 0, 152, 161,
798 0, 0, 163, 157, 162, 164, 0, 154, 0, 165,
802 static const short yydefgoto[] = { 682,
803 4, 1, 5, 84, 138, 204, 6, 205, 206, 86,
804 268, 269, 270, 207, 125, 192, 88, 89, 90, 91,
805 92, 316, 378, 93, 511, 94, 122, 363, 123, 446,
806 191, 447, 121, 362, 95, 197, 367, 12, 13, 515,
807 14, 17, 18, 106, 171, 172, 173, 174, 346, 293,
808 294, 146, 147, 216, 317, 502, 547, 548, 573, 574,
809 567, 578, 597, 608, 480, 481, 619, 630, 251, 342,
810 253, 610, 654, 634, 659, 660, 444, 517, 521, 522,
811 560, 261, 262, 368, 451, 96, 97, 98, 99, 254,
812 482, 182, 114, 201, 202, 128, 375, 376, 456, 370,
813 115, 266, 187, 149, 150, 360, 255, 176, 241, 242,
814 243, 177, 295, 352, 179, 225, 226, 465, 433, 508,
815 509, 499, 500, 297, 298, 299, 300, 301, 397, 398,
816 302, 303, 304, 305, 382, 306, 470, 411, 307, 308,
817 309, 310, 383, 466, 467, 311, 662, 312, 130, 119,
821 static const short yypact[] = {-32768,
822 -25, 136, 368, 1350,-32768,-32768,-32768, 181,-32768,-32768,
823 -32768, 94,-32768,-32768,-32768, 181, 110,-32768,-32768, 33,
824 2903,-32768, 182, 2903,-32768, 17,-32768,-32768,-32768,-32768,
825 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
826 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
827 -32768,-32768,-32768,-32768,-32768, -11,-32768,-32768,-32768,-32768,
828 -32768,-32768,-32768, 2903,-32768, 2903,-32768, 181,-32768,-32768,
829 108,-32768,-32768,-32768,-32768, 181, 181,-32768,-32768, 2903,
830 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
831 2903,-32768,-32768,-32768,-32768,-32768, 399,-32768, 2903, 408,
832 155, 192, 205,-32768, 136, 204,-32768,-32768, 368, 1152,
833 -32768, 233, 223,-32768,-32768, 266,-32768, 181, 305, 408,
834 211, 235, 264,-32768, 1445,-32768, 408, 339,-32768, 347,
835 -32768, 377,-32768, 347,-32768, 347, 408, 1247, 1247, 408,
836 -32768,-32768, 408, 408,-32768, 196,-32768, 259, 322, 409,
837 -32768,-32768,-32768,-32768,-32768, 181, 387,-32768,-32768,-32768,
838 386, 181,-32768,-32768, 181, 534,-32768,-32768, 403, 2903,
839 410, 445, 453,-32768, 360, 439,-32768, 386, 474,-32768,
840 -32768, 496, 2903, 497, 2319, 239, 470, 486, 492, 401,
841 404,-32768,-32768,-32768,-32768,-32768, 408, 282, 493, 2414,
842 488, 494, 288,-32768,-32768,-32768,-32768,-32768, 322, 409,
843 121, 141,-32768, 408, 3200, 1836, 1933, 3059,-32768, 2030,
844 -32768,-32768, 1152,-32768, 499, 122,-32768,-32768, 386, 181,
845 181, 386, 502, 421, 360,-32768, 1152, 1152, 360, 1741,
846 -32768, 454,-32768, 328, 80,-32768,-32768, 525,-32768,-32768,
847 504,-32768, 507, 380,-32768,-32768,-32768,-32768, 522, 524,
848 515,-32768,-32768,-32768,-32768, 518, 2903, 514, 520,-32768,
849 -32768, 2903, 2903,-32768, 1836,-32768,-32768,-32768, 3200, 3109,
850 -32768, 266,-32768,-32768,-32768,-32768, 544, 3200, 545,-32768,
851 549, 551,-32768,-32768, 3033,-32768, 550,-32768, 114, 3226,
852 -32768, 374, 382, 382, 535, 193,-32768,-32768, 273,-32768,
853 -32768,-32768, 555, 560, 562, 536,-32768, 408,-32768, 537,
854 -32768, 539,-32768, 540, 541, 552,-32768,-32768, 553, 547,
855 -32768,-32768, 80,-32768, 554,-32768, 453, 439,-32768, 439,
856 454, 548, 177, 2127,-32768, 556,-32768,-32768,-32768,-32768,
857 -32768, 557,-32768,-32768, 2509, 380, 1644,-32768, 322, 469,
858 -32768, 47, 47,-32768,-32768, 408, 564, 538, 561, 559,
859 -32768, 569, 2414, 408, 2611,-32768, 2713, 558, 36, 565,
860 -32768, 293, 108, 3200, 10, 3200, 1022, 762,-32768, 220,
861 3200, 3226, 3226,-32768,-32768, 268, 374, 374, 275, 275,
862 181, 3150, 181, 181,-32768,-32768,-32768, 181,-32768, 382,
863 -32768, 3200,-32768, 3200,-32768,-32768,-32768, 314,-32768,-32768,
864 -32768,-32768,-32768,-32768, 563, 568, 566,-32768,-32768,-32768,
865 573, 181,-32768,-32768, 1836,-32768,-32768, 469, 354, 2224,
866 -32768,-32768, 165,-32768,-32768, 47, 47,-32768,-32768, 530,
867 -32768,-32768,-32768,-32768,-32768, 317,-32768,-32768,-32768,-32768,
868 -32768,-32768, 181, 567, 3200, 570,-32768, 572, 550, 362,
869 3200, 579, 581, 575, 577, 578,-32768,-32768, 2903, 384,
870 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 268,
871 -32768,-32768,-32768, 157,-32768,-32768,-32768, 275, 583,-32768,
872 397, -8,-32768,-32768,-32768, 574,-32768, 590, 591,-32768,
873 571,-32768, 587, 592, 363,-32768, 1547,-32768,-32768,-32768,
874 594,-32768,-32768, 408, -8,-32768, 181,-32768, 108, 2808,
875 3200,-32768, 28, 3200,-32768,-32768,-32768,-32768, 892,-32768,
876 -32768,-32768,-32768,-32768, 108, 2903,-32768, 582,-32768, 181,
877 181, 576,-32768,-32768, 181, 593,-32768,-32768, 408, 605,
878 -32768,-32768, 582,-32768,-32768, 2903,-32768,-32768, 550, 3200,
879 600,-32768, 331,-32768, 103, 408, 3200, 521,-32768,-32768,
880 521,-32768,-32768,-32768, 629, 521,-32768, 550,-32768,-32768,
881 108, 2903, 3200, 336, 634, 3200, 584, 597, 3200, 584,
882 -32768, 601,-32768,-32768,-32768, 639, 632, 596, 615, 596,
883 613, 596, 3200,-32768, 644, 648, 337, 3200, 608, 49,
884 623,-32768, 608,-32768,-32768,-32768,-32768, 652, 3200, 625,
885 49, 651, 50,-32768, 653, 631,-32768, 627,-32768, 658,
886 -32768, 63,-32768, 272, 49,-32768, 208, 642,-32768,-32768,
887 49,-32768,-32768, 660,-32768, 222, 222,-32768, 419, 666,
888 -32768, 661,-32768,-32768, 668,-32768, 41, 222,-32768, 316,
889 432, 468,-32768, 666,-32768,-32768, 426,-32768, 430,-32768,
890 -32768, 670, 676,-32768
893 static const short yypgoto[] = {-32768,
894 -32768,-32768,-32768,-32768, 595,-32768,-32768, 678, 677,-32768,
895 -32768,-32768, 307, 679,-32768,-32768, 610, 612, 616,-32768,
896 -121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
897 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 580,-32768,
898 -6,-32768, 585,-32768, 461,-32768, 451, 452,-32768,-32768,
899 471, -108, 478, -188,-32768, 232,-32768, -458,-32768, 127,
900 -473, 175, -169, 142, 137, 206, -206, 120,-32768, -180,
901 -32768,-32768, -507,-32768, -190, -230, -318,-32768,-32768,-32768,
902 -32768,-32768, 381,-32768,-32768, -89,-32768,-32768,-32768, -3,
903 -18,-32768, 32,-32768,-32768, 407, 476, 68,-32768,-32768,
904 56,-32768, -93, -127, 344, 398, -187, 257, -182, -213,
905 -101, 511, 30, -267, 603, -137,-32768, 586,-32768,-32768,
906 -32768, -531, -204, -254,-32768, 105, -46, 466,-32768,-32768,
907 -278, 455,-32768,-32768, 472, -265, -205,-32768,-32768, -372,
908 -32768, -303,-32768,-32768, 242, 7, -23, -38, 423, 656,
916 static const short yytable[] = { 118,
917 100, 103, 113, 196, 252, 413, 148, 141, 15, 19,
918 296, 186, 271, 296, 15, 209, 211, 112, 198, 275,
919 120, 395, 19, 391, 379, 341, 343, 389, 203, 117,
920 497, 2, 132, 385, 107, 101, 320, 399, 400, 324,
921 245, 391, 110, 670, 445, 595, 208, 219, 221, 391,
922 124, 545, 336, 442, 510, 643, 644, 645, 631, 102,
923 126, 151, 127, 180, 606, 426, 563, 611, 643, 651,
924 645, 361, 462, 632, 129, 381, 137, 673, 570, 371,
925 443, 151, 129, 129, 646, 526, 628, 140, 151, 3,
926 381, 330, 587, 581, 333, 142, 546, 640, 151, 652,
927 104, 151, 350, 263, 151, 151, 175, 219, 221, 219,
928 221, 15, 633, -55, 351, 19, 108, 488, 602, 180,
929 471, 100, 484, 642, 117, 105, 359, 518, 519, 469,
930 217, 218, 131, 592, 100, 100, 485, 655, 8, 178,
931 345, 109, 341, 343, 498, 327, 392, 469, 593, 564,
932 220, 218, 393, 328, 347, 9, 101, 276, 151, 469,
933 10, 152, 19, 431, 248, 435, 235, 437, 227, 101,
934 101, 228, 579, 580, 222, 151, 180, 277, 11, 112,
935 102, 472, 475, 483, 9, 271, 344, 218, 531, 10,
936 180, 180, 542, 102, 102, 232, 494, 180, 153, 514,
937 9, 9, 213, 402, 403, 10, 116, 154, 501, 418,
938 656, 541, 318, 429, 164, 151, 533, 657, 404, 175,
939 405, 406, 407, 408, 656, 341, 167, 214, 209, 211,
940 409, 657, 632, 175, 175, 156, 331, 332, 181, 345,
941 157, 345, 350, 327, 658, 256, 632, 283, 284, 285,
942 286, 328, 178, 183, 351, 396, 585, 219, 441, 513,
943 528, 283, 284, 285, 286, -101, 178, 178, 374, 374,
944 214, 318, 263, 178, 661, -405, 569, 279, 280, 151,
945 457, 631, 412, 661, 661, 402, 403, 9, 264, 164,
946 -101, 215, 282, 281, 274, 661, 632, 661, 661, 661,
947 404, 167, 405, 406, 407, 408, 653, 283, 284, 285,
948 286, 209, 409, 214, 185, 588, 327, 151, 151, 214,
949 503, 287, 188, 523, 328, 657, 289, 151, 464, 571,
950 159, 217, 218, 160, 483, 151, 441, 590, 161, 162,
951 632, 163, 604, 627, 468, 214, 189, 9, 524, 164,
952 489, 490, 10, 165, 166, 283, 284, 285, 286, 439,
953 190, 167, 591, 357, 218, 239, 168, 214, 539, 240,
954 218, 374, 199, 374, 290, 291, 159, 16, 131, 160,
955 -248, 292, 169, 474, 112, 356, 200, 9, 603, 357,
956 218, 279, 10, 531, 555, 558, 223, 556, 532, 358,
957 151, 9, 483, 621, 131, 623, 282, 491, 624, 495,
958 496, 598, 224, 143, 491, 539, 600, 144, 220, 218,
959 540, 283, 284, 285, 286, 666, 667, 145, 531, 234,
960 562, 318, 131, 544, 656, 287, 516, 674, 491, 675,
961 289, 657, 459, 65, 459, 67, 236, 69, 70, 15,
962 668, 72, 73, 74, 75, 669, 632, 668, 78, 79,
963 538, 668, 680, 344, 218, 584, 681, 594, 676, 491,
964 656, 283, 284, 285, 286, 112, 237, 657, 440, 218,
965 677, 679, 133, 135, 238, 151, 210, 212, 290, 291,
966 468, 244, 632, 338, 340, 292, 486, 487, 134, 136,
967 246, 247, 215, 249, 678, 257, 575, 283, 284, 285,
968 286, 258, 259, 559, 65, 260, 67, 265, 69, 70,
969 151, 272, 72, 73, 74, 75, 568, 273, 334, 78,
970 79, 335, 353, 491, 326, 112, 159, 151, 355, 160,
971 354, 364, 576, 365, 229, 230, 366, 163, 582, 369,
972 372, 373, 575, 384, 386, 164, 491, 491, 387, 231,
973 388, 15, 568, 391, 414, 401, 415, 167, 416, 417,
974 449, 450, 168, 419, 420, 454, 421, 422, 423, 424,
975 427, 636, 425, 434, 428, 452, 432, 520, 568, 504,
976 -406, 461, 636, 453, 505, 463, 635, 527, 554, 583,
977 549, 529, 530, 112, 552, 636, 636, 635, 663, 507,
978 534, 535, 636, 536, 537, 550, 506, 663, 663, 543,
979 635, 635, 551, 553, 665, 281, 596, 635, 561, 663,
980 577, 663, 663, 663, 159, 545, 589, 160, 599, 21,
981 605, 279, 280, 609, 607, 614, 613, 618, 620, 622,
982 625, 473, 281, 164, 626, 629, 282, 637, 639, 641,
983 -407, 649, 647, 648, 650, 167, 664, 645, 670, 683,
984 671, 283, 284, 285, 286, 684, 615, 672, 7, 455,
985 85, 139, 87, 325, 155, 287, 288, 337, 322, 339,
986 289, 278, 525, 158, 616, 477, 478, 479, 27, 28,
987 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
988 39, 40, 41, 42, 43, 44, 45, 601, 46, 47,
989 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
990 58, 59, 60, 61, 193, 62, 194, 586, 290, 291,
991 195, 612, 638, 617, 572, 292, 448, 65, 377, 67,
992 68, 69, 70, 438, 348, 72, 73, 74, 75, 76,
993 410, 77, 78, 79, 159, 394, 390, 160, 233, 21,
994 565, 279, 280, 184, 349, 0, 0, 0, 0, 0,
995 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
996 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
997 0, 283, 284, 285, 286, 476, 0, 0, 0, 0,
998 0, 329, 0, 0, 0, 287, 288, 0, 0, 0,
999 289, 0, 0, 0, 0, 477, 478, 479, 27, 28,
1000 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1001 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1002 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1003 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
1004 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
1005 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1006 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
1007 0, 279, 280, 0, 0, 0, 0, 0, 0, 0,
1008 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
1009 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
1010 0, 283, 284, 285, 286, 0, 0, 0, 0, 0,
1011 0, 0, 0, 0, 0, 287, 288, 0, 0, 0,
1012 289, 0, 0, 0, 0, 477, 478, 479, 27, 28,
1013 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1014 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1015 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1016 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
1017 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
1018 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1019 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
1020 0, 279, 280, 0, 0, 0, 0, 0, 0, 0,
1021 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
1022 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
1023 0, 283, 284, 285, 286, 0, 0, 0, 0, 0,
1024 0, 0, 0, 0, 0, 287, 288, 0, 0, 0,
1025 289, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1026 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1027 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1028 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1029 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
1030 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
1031 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1032 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
1033 0, 0, 161, 162, 0, 163, 0, 0, 0, 0,
1034 0, 22, 0, 164, 0, 0, 0, 165, 166, 0,
1035 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
1036 168, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1037 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
1038 0, 0, 0, 0, 0, 0, 0, 170, 27, 28,
1039 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1040 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1041 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1042 58, 59, 60, 61, 21, 62, 0, 0, 0, 0,
1043 0, 0, 0, 0, 0, 0, 22, 65, 0, 67,
1044 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1045 0, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1046 0, 0, 0, 0, 23, 0, 24, 0, 0, 0,
1047 0, 0, 25, 0, 0, 0, 0, 0, 26, 0,
1048 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1049 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1050 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1051 53, 54, 55, 56, 57, 58, 59, 60, 61, 0,
1052 62, 0, 0, 0, 0, 63, 0, 21, 0, 64,
1053 0, 3, 65, 66, 67, 68, 69, 70, 71, 22,
1054 72, 73, 74, 75, 76, 0, 77, 78, 79, 80,
1055 81, 82, 83, 0, 0, 0, 0, 0, 0, 0,
1056 0, 0, 0, 0, 0, 0, 0, 23, 0, 24,
1057 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,
1058 0, 26, 0, 0, 0, 0, 27, 28, 29, 30,
1059 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1060 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1061 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1062 60, 61, 21, 62, 0, 0, 0, 0, 63, 0,
1063 0, 0, 64, 0, 22, 65, 66, 67, 68, 69,
1064 70, 71, 0, 72, 73, 74, 75, 76, 0, 77,
1065 78, 79, 80, 81, 82, 83, 0, 0, 0, 0,
1066 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,
1067 25, 0, 0, 0, 0, 0, 26, 0, 0, 0,
1068 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1069 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1070 0, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1071 55, 56, 57, 58, 59, 60, 61, 0, 62, 0,
1072 0, 0, 0, 0, 21, 0, 0, 64, 0, 0,
1073 65, 66, 67, 68, 69, 70, 22, 0, 72, 73,
1074 74, 75, 76, 0, 77, 78, 79, 80, 81, 82,
1075 83, 557, 0, 0, 0, 0, 0, 0, 0, 0,
1076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1078 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1079 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1080 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1081 53, 54, 55, 111, 57, 58, 59, 60, 61, 439,
1082 62, 21, 0, 357, 218, 0, 0, 0, 0, 0,
1083 0, 0, 65, 22, 67, 68, 69, 70, 131, 0,
1084 72, 73, 74, 75, 76, 0, 77, 78, 79, 0,
1085 81, 82, 83, 0, 0, 0, 0, 0, 0, 0,
1086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1088 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1089 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1090 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1091 111, 57, 58, 59, 60, 61, 239, 62, 21, 0,
1092 240, 218, 0, 0, 0, 0, 0, 0, 0, 65,
1093 22, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1094 75, 76, 250, 77, 78, 79, 0, 0, 0, 0,
1095 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1096 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1097 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1098 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1099 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1100 49, 50, 51, 52, 53, 54, 55, 111, 57, 58,
1101 59, 60, 61, 21, 62, 0, 0, 0, 0, 0,
1102 0, 0, 0, 0, 0, 22, 65, 0, 67, 68,
1103 69, 70, 0, 0, 72, 73, 74, 75, 76, 250,
1104 77, 78, 79, 0, 0, 0, 0, 0, 0, 0,
1105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1106 0, 0, 0, 0, 0, 0, 0, 0, 0, 314,
1107 315, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1108 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1109 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1110 54, 55, 111, 57, 58, 59, 60, 61, 0, 62,
1111 21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1112 0, 65, 22, 67, 68, 69, 70, 0, 0, 72,
1113 73, 74, 75, 76, 0, 77, 78, 79, 0, 319,
1114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1116 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1117 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1118 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1119 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1120 57, 58, 59, 60, 61, 0, 62, 21, 0, 0,
1121 0, 0, 0, 0, 0, 0, 0, 0, 65, 22,
1122 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1123 76, 250, 77, 78, 79, 0, 323, 0, 0, 0,
1124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1126 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1127 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1128 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1129 50, 51, 52, 53, 54, 55, 111, 57, 58, 59,
1130 60, 61, 0, 62, 21, 0, 0, 0, 0, 0,
1131 0, 0, 0, 0, 0, 65, 22, 67, 68, 69,
1132 70, 0, 0, 72, 73, 74, 75, 76, 250, 77,
1133 78, 79, 0, 430, 0, 0, 0, 0, 0, 0,
1134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1136 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1137 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1138 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1139 53, 54, 55, 111, 57, 58, 59, 60, 61, 0,
1140 62, 21, 0, 0, 0, 0, 0, 0, 0, 0,
1141 0, 0, 65, 22, 67, 68, 69, 70, 0, 0,
1142 72, 73, 74, 75, 76, 250, 77, 78, 79, 0,
1143 512, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1146 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1147 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1148 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1149 111, 57, 58, 59, 60, 61, 21, 62, 0, 0,
1150 0, 0, 0, 0, 0, 0, 0, 0, 22, 65,
1151 0, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1152 75, 76, 250, 77, 78, 79, 0, 0, 0, 0,
1153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1155 0, 0, 0, 0, 0, 27, 28, 29, 30, 31,
1156 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1157 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1158 51, 52, 53, 54, 55, 111, 57, 58, 59, 60,
1159 61, 21, 62, 0, 0, 0, 0, 0, 0, 0,
1160 0, 0, 0, 22, 65, 0, 67, 68, 69, 70,
1161 0, 0, 72, 73, 74, 75, 76, 250, 77, 78,
1162 79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1165 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1166 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1167 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1168 111, 57, 58, 59, 60, 61, 21, 62, 0, 0,
1169 0, 0, 0, 0, 0, 0, 0, 0, 22, 65,
1170 0, 67, 68, 69, 70, 0, 267, 72, 73, 74,
1171 75, 76, 0, 77, 78, 79, 0, 0, 0, 0,
1172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1174 0, 0, 0, 0, 0, 27, 28, 29, 30, 31,
1175 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1176 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1177 51, 52, 53, 54, 55, 111, 57, 58, 59, 60,
1178 61, 0, 62, 0, 0, 0, 0, 0, 21, 0,
1179 0, 0, 0, 0, 65, 0, 67, 68, 69, 70,
1180 22, 0, 72, 73, 74, 75, 76, 436, 77, 78,
1181 79, 0, 0, 0, 0, 458, 0, 0, 0, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1184 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1185 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1186 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1187 49, 50, 51, 52, 53, 54, 55, 111, 57, 58,
1188 59, 60, 61, 0, 62, 0, 0, 0, 0, 0,
1189 21, 0, 0, 0, 0, 0, 65, 0, 67, 68,
1190 69, 70, 22, 0, 72, 73, 74, 75, 76, 0,
1191 77, 78, 79, 0, 0, 0, 0, 460, 0, 0,
1192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1194 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1195 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1196 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1197 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1198 57, 58, 59, 60, 61, 21, 62, 0, 0, 0,
1199 0, 0, 0, 0, 0, 0, 0, 22, 65, 0,
1200 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1201 76, 0, 77, 78, 79, 0, 0, 0, 0, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1204 0, 0, 0, 566, 27, 28, 29, 30, 31, 32,
1205 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1206 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1207 52, 53, 54, 55, 111, 57, 58, 59, 60, 61,
1208 21, 62, 0, 0, 0, 0, 0, 0, 0, 0,
1209 0, 0, 22, 65, 0, 67, 68, 69, 70, 0,
1210 0, 72, 73, 74, 75, 76, 0, 77, 78, 79,
1211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1213 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1214 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1215 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1216 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1217 57, 58, 59, 60, 61, 0, 62, 0, 0, 0,
1218 0, 0, 0, 0, 0, 0, 0, 0, 65, 0,
1219 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1220 76, 0, 77, 78, 79, 159, 0, 0, 160, 0,
1221 0, 0, 279, 280, 0, 0, 0, 0, 0, 0,
1222 0, 0, 9, 281, 164, 350, 0, 282, 0, 0,
1223 0, 159, 0, 0, 160, 0, 167, 351, 279, 280,
1224 0, 0, 283, 284, 285, 286, 0, 0, 9, 281,
1225 164, 0, 0, 282, 0, 0, 287, 288, 0, 0,
1226 0, 289, 167, 0, 321, 0, 0, 0, 283, 284,
1227 285, 286, 0, 0, 0, 0, 0, 0, 0, 0,
1228 0, 159, 287, 288, 160, 0, 0, 289, 279, 280,
1229 0, 0, 0, 0, 0, 0, 0, 0, 9, 281,
1230 164, 0, 0, 282, 0, 0, 0, 0, 0, 290,
1231 291, 0, 167, 0, 380, 0, 292, 0, 283, 284,
1232 285, 286, 159, 0, 0, 160, 0, 0, 0, 279,
1233 280, 0, 287, 288, 0, 290, 291, 289, 0, 9,
1234 281, 164, 292, 0, 282, 0, 0, 0, 0, 0,
1235 0, 0, 0, 167, 0, 493, 0, 0, 0, 283,
1236 284, 285, 286, 0, 0, 0, 0, 0, 0, 0,
1237 0, 0, 159, 287, 288, 160, 0, 0, 289, 279,
1238 280, 0, 0, 0, 0, 290, 291, 0, 0, 9,
1239 281, 164, 292, 0, 282, 0, 0, 0, 159, 0,
1240 0, 160, 0, 167, 0, 279, 280, 0, 0, 283,
1241 284, 285, 286, 0, 0, 9, 0, 164, 0, 0,
1242 282, 0, 0, 287, 288, 0, 290, 291, 289, 167,
1243 0, 0, 0, 292, 0, 283, 284, 285, 286, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0, 0, 287,
1245 0, 0, 0, 0, 289, 0, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1247 0, 0, 0, 0, 0, 0, 290, 291, 0, 0,
1248 0, 0, 0, 292, 0, 0, 0, 0, 0, 0,
1249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1250 0, 0, 290, 291, 0, 0, 0, 0, 0, 292
1253 static const short yycheck[] = { 23,
1254 4, 8, 21, 125, 185, 309, 100, 97, 2, 3,
1255 215, 120, 200, 218, 8, 143, 144, 21, 127, 208,
1256 24, 300, 16, 14, 279, 239, 240, 295, 137, 23,
1257 408, 57, 71, 288, 16, 4, 217, 303, 304, 220,
1258 178, 14, 10, 3, 363, 577, 140, 149, 150, 14,
1259 62, 60, 235, 7, 432, 6, 7, 8, 10, 4,
1260 64, 100, 66, 110, 596, 333, 525, 599, 6, 7,
1261 8, 254, 37, 25, 68, 280, 80, 37, 51, 267,
1262 34, 120, 76, 77, 35, 463, 618, 91, 127, 115,
1263 295, 229, 566, 552, 232, 99, 105, 629, 137, 37,
1264 7, 140, 23, 197, 143, 144, 110, 209, 210, 211,
1265 212, 105, 620, 97, 35, 109, 7, 396, 592, 166,
1266 111, 125, 390, 631, 118, 32, 254, 446, 447, 384,
1267 10, 11, 25, 31, 138, 139, 391, 645, 3, 110,
1268 242, 32, 356, 357, 410, 24, 33, 402, 46, 527,
1269 10, 11, 39, 32, 244, 20, 125, 37, 197, 414,
1270 25, 7, 156, 344, 183, 354, 170, 355, 162, 138,
1271 139, 165, 550, 551, 156, 214, 223, 37, 43, 183,
1272 125, 386, 387, 388, 20, 373, 10, 11, 32, 25,
1273 237, 238, 36, 138, 139, 166, 402, 244, 7, 35,
1274 20, 20, 7, 11, 12, 25, 25, 3, 414, 318,
1275 3, 490, 216, 37, 22, 254, 471, 10, 26, 223,
1276 28, 29, 30, 31, 3, 439, 34, 32, 356, 357,
1277 38, 10, 25, 237, 238, 32, 230, 231, 6, 341,
1278 37, 343, 23, 24, 37, 7, 25, 40, 41, 42,
1279 43, 32, 223, 31, 35, 302, 560, 359, 360, 440,
1280 465, 40, 41, 42, 43, 7, 237, 238, 272, 273,
1281 32, 275, 366, 244, 647, 10, 531, 10, 11, 318,
1282 374, 10, 10, 656, 657, 11, 12, 20, 7, 22,
1283 32, 33, 25, 21, 7, 668, 25, 670, 671, 672,
1284 26, 34, 28, 29, 30, 31, 35, 40, 41, 42,
1285 43, 439, 38, 32, 10, 570, 24, 356, 357, 32,
1286 7, 54, 112, 7, 32, 10, 59, 366, 36, 534,
1287 3, 10, 11, 6, 539, 374, 438, 7, 11, 12,
1288 25, 14, 7, 7, 383, 32, 112, 20, 32, 22,
1289 397, 398, 25, 26, 27, 40, 41, 42, 43, 6,
1290 97, 34, 32, 10, 11, 6, 39, 32, 32, 10,
1291 11, 375, 34, 377, 107, 108, 3, 10, 25, 6,
1292 34, 114, 55, 387, 388, 6, 10, 20, 593, 10,
1293 11, 10, 25, 32, 32, 517, 10, 35, 37, 20,
1294 439, 20, 607, 610, 25, 612, 25, 401, 613, 403,
1295 404, 581, 27, 6, 408, 32, 586, 10, 10, 11,
1296 37, 40, 41, 42, 43, 656, 657, 20, 32, 27,
1297 524, 435, 25, 37, 3, 54, 443, 668, 432, 670,
1298 59, 10, 375, 116, 377, 118, 37, 120, 121, 443,
1299 32, 124, 125, 126, 127, 37, 25, 32, 131, 132,
1300 479, 32, 37, 10, 11, 559, 37, 576, 37, 463,
1301 3, 40, 41, 42, 43, 479, 32, 10, 10, 11,
1302 671, 672, 76, 77, 32, 524, 143, 144, 107, 108,
1303 529, 53, 25, 237, 238, 114, 392, 393, 76, 77,
1304 27, 6, 33, 7, 37, 20, 545, 40, 41, 42,
1305 43, 20, 112, 517, 116, 112, 118, 25, 120, 121,
1306 559, 34, 124, 125, 126, 127, 530, 34, 27, 131,
1307 132, 111, 8, 527, 36, 539, 3, 576, 32, 6,
1308 37, 20, 546, 20, 11, 12, 32, 14, 555, 32,
1309 37, 32, 591, 10, 10, 22, 550, 551, 10, 26,
1310 10, 555, 566, 14, 10, 31, 7, 34, 7, 34,
1311 7, 34, 39, 37, 36, 7, 37, 37, 27, 27,
1312 27, 620, 36, 27, 37, 25, 31, 58, 592, 27,
1313 10, 34, 631, 35, 27, 31, 620, 31, 7, 7,
1314 27, 32, 31, 607, 34, 644, 645, 631, 647, 37,
1315 32, 37, 651, 37, 37, 26, 51, 656, 657, 37,
1316 644, 645, 32, 37, 648, 21, 106, 651, 35, 668,
1317 49, 670, 671, 672, 3, 60, 37, 6, 10, 8,
1318 7, 10, 11, 47, 61, 7, 46, 52, 34, 37,
1319 7, 20, 21, 22, 7, 48, 25, 35, 7, 35,
1320 10, 35, 10, 33, 7, 34, 25, 8, 3, 0,
1321 10, 40, 41, 42, 43, 0, 45, 10, 1, 373,
1322 4, 87, 4, 223, 105, 54, 55, 237, 218, 238,
1323 59, 214, 461, 109, 63, 64, 65, 66, 67, 68,
1324 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1325 79, 80, 81, 82, 83, 84, 85, 591, 87, 88,
1326 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1327 99, 100, 101, 102, 125, 104, 125, 563, 107, 108,
1328 125, 600, 623, 607, 539, 114, 366, 116, 273, 118,
1329 119, 120, 121, 356, 244, 124, 125, 126, 127, 128,
1330 306, 130, 131, 132, 3, 300, 295, 6, 166, 8,
1331 529, 10, 11, 118, 244, -1, -1, -1, -1, -1,
1332 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1333 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1334 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
1335 -1, 226, -1, -1, -1, 54, 55, -1, -1, -1,
1336 59, -1, -1, -1, -1, 64, 65, 66, 67, 68,
1337 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1338 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1339 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1340 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1341 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1342 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1343 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1344 -1, 10, 11, -1, -1, -1, -1, -1, -1, -1,
1345 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1346 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1347 -1, 40, 41, 42, 43, -1, -1, -1, -1, -1,
1348 -1, -1, -1, -1, -1, 54, 55, -1, -1, -1,
1349 59, -1, -1, -1, -1, 64, 65, 66, 67, 68,
1350 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1351 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1352 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1353 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1354 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1355 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1356 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1357 -1, 10, 11, -1, -1, -1, -1, -1, -1, -1,
1358 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1359 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1360 -1, 40, 41, 42, 43, -1, -1, -1, -1, -1,
1361 -1, -1, -1, -1, -1, 54, 55, -1, -1, -1,
1362 59, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1363 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1364 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1365 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1366 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1367 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1368 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1369 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1370 -1, -1, 11, 12, -1, 14, -1, -1, -1, -1,
1371 -1, 20, -1, 22, -1, -1, -1, 26, 27, -1,
1372 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1373 39, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1374 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
1375 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
1376 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1377 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1378 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1379 99, 100, 101, 102, 8, 104, -1, -1, -1, -1,
1380 -1, -1, -1, -1, -1, -1, 20, 116, -1, 118,
1381 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1382 -1, 130, 131, 132, -1, -1, -1, -1, -1, -1,
1383 -1, -1, -1, -1, 48, -1, 50, -1, -1, -1,
1384 -1, -1, 56, -1, -1, -1, -1, -1, 62, -1,
1385 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1386 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1387 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1388 94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
1389 104, -1, -1, -1, -1, 109, -1, 8, -1, 113,
1390 -1, 115, 116, 117, 118, 119, 120, 121, 122, 20,
1391 124, 125, 126, 127, 128, -1, 130, 131, 132, 133,
1392 134, 135, 136, -1, -1, -1, -1, -1, -1, -1,
1393 -1, -1, -1, -1, -1, -1, -1, 48, -1, 50,
1394 -1, -1, -1, -1, -1, 56, -1, -1, -1, -1,
1395 -1, 62, -1, -1, -1, -1, 67, 68, 69, 70,
1396 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1397 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1398 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1399 101, 102, 8, 104, -1, -1, -1, -1, 109, -1,
1400 -1, -1, 113, -1, 20, 116, 117, 118, 119, 120,
1401 121, 122, -1, 124, 125, 126, 127, 128, -1, 130,
1402 131, 132, 133, 134, 135, 136, -1, -1, -1, -1,
1403 -1, -1, -1, -1, 50, -1, -1, -1, -1, -1,
1404 56, -1, -1, -1, -1, -1, 62, -1, -1, -1,
1405 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1406 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1407 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1408 96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
1409 -1, -1, -1, -1, 8, -1, -1, 113, -1, -1,
1410 116, 117, 118, 119, 120, 121, 20, -1, 124, 125,
1411 126, 127, 128, -1, 130, 131, 132, 133, 134, 135,
1412 136, 35, -1, -1, -1, -1, -1, -1, -1, -1,
1413 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1414 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1415 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1416 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1417 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1418 94, 95, 96, 97, 98, 99, 100, 101, 102, 6,
1419 104, 8, -1, 10, 11, -1, -1, -1, -1, -1,
1420 -1, -1, 116, 20, 118, 119, 120, 121, 25, -1,
1421 124, 125, 126, 127, 128, -1, 130, 131, 132, -1,
1422 134, 135, 136, -1, -1, -1, -1, -1, -1, -1,
1423 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1424 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1425 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1426 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1427 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1428 97, 98, 99, 100, 101, 102, 6, 104, 8, -1,
1429 10, 11, -1, -1, -1, -1, -1, -1, -1, 116,
1430 20, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1431 127, 128, 129, 130, 131, 132, -1, -1, -1, -1,
1432 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1433 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1434 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1435 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1436 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1437 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1438 100, 101, 102, 8, 104, -1, -1, -1, -1, -1,
1439 -1, -1, -1, -1, -1, 20, 116, -1, 118, 119,
1440 120, 121, -1, -1, 124, 125, 126, 127, 128, 129,
1441 130, 131, 132, -1, -1, -1, -1, -1, -1, -1,
1442 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1443 -1, -1, -1, -1, -1, -1, -1, -1, -1, 64,
1444 65, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1445 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1446 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1447 95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
1448 8, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1449 -1, 116, 20, 118, 119, 120, 121, -1, -1, 124,
1450 125, 126, 127, 128, -1, 130, 131, 132, -1, 37,
1451 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1452 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1453 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1454 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1455 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1456 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1457 98, 99, 100, 101, 102, -1, 104, 8, -1, -1,
1458 -1, -1, -1, -1, -1, -1, -1, -1, 116, 20,
1459 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1460 128, 129, 130, 131, 132, -1, 37, -1, -1, -1,
1461 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1462 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1463 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1464 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1465 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1466 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1467 101, 102, -1, 104, 8, -1, -1, -1, -1, -1,
1468 -1, -1, -1, -1, -1, 116, 20, 118, 119, 120,
1469 121, -1, -1, 124, 125, 126, 127, 128, 129, 130,
1470 131, 132, -1, 37, -1, -1, -1, -1, -1, -1,
1471 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1472 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1473 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1474 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1475 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1476 94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
1477 104, 8, -1, -1, -1, -1, -1, -1, -1, -1,
1478 -1, -1, 116, 20, 118, 119, 120, 121, -1, -1,
1479 124, 125, 126, 127, 128, 129, 130, 131, 132, -1,
1480 37, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1481 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1483 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1484 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1485 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1486 97, 98, 99, 100, 101, 102, 8, 104, -1, -1,
1487 -1, -1, -1, -1, -1, -1, -1, -1, 20, 116,
1488 -1, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1489 127, 128, 129, 130, 131, 132, -1, -1, -1, -1,
1490 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1491 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1492 -1, -1, -1, -1, -1, 67, 68, 69, 70, 71,
1493 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1494 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1495 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1496 102, 8, 104, -1, -1, -1, -1, -1, -1, -1,
1497 -1, -1, -1, 20, 116, -1, 118, 119, 120, 121,
1498 -1, -1, 124, 125, 126, 127, 128, 129, 130, 131,
1499 132, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1501 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1502 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1503 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1504 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1505 97, 98, 99, 100, 101, 102, 8, 104, -1, -1,
1506 -1, -1, -1, -1, -1, -1, -1, -1, 20, 116,
1507 -1, 118, 119, 120, 121, -1, 123, 124, 125, 126,
1508 127, 128, -1, 130, 131, 132, -1, -1, -1, -1,
1509 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1510 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1511 -1, -1, -1, -1, -1, 67, 68, 69, 70, 71,
1512 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1513 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1514 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1515 102, -1, 104, -1, -1, -1, -1, -1, 8, -1,
1516 -1, -1, -1, -1, 116, -1, 118, 119, 120, 121,
1517 20, -1, 124, 125, 126, 127, 128, 129, 130, 131,
1518 132, -1, -1, -1, -1, 35, -1, -1, -1, -1,
1519 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1520 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1521 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1522 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1523 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1524 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1525 100, 101, 102, -1, 104, -1, -1, -1, -1, -1,
1526 8, -1, -1, -1, -1, -1, 116, -1, 118, 119,
1527 120, 121, 20, -1, 124, 125, 126, 127, 128, -1,
1528 130, 131, 132, -1, -1, -1, -1, 35, -1, -1,
1529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1530 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1531 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1532 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1533 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1534 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1535 98, 99, 100, 101, 102, 8, 104, -1, -1, -1,
1536 -1, -1, -1, -1, -1, -1, -1, 20, 116, -1,
1537 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1538 128, -1, 130, 131, 132, -1, -1, -1, -1, -1,
1539 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1540 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1541 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
1542 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1543 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1544 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1545 8, 104, -1, -1, -1, -1, -1, -1, -1, -1,
1546 -1, -1, 20, 116, -1, 118, 119, 120, 121, -1,
1547 -1, 124, 125, 126, 127, 128, -1, 130, 131, 132,
1548 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1549 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1550 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1551 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1552 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1553 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1554 98, 99, 100, 101, 102, -1, 104, -1, -1, -1,
1555 -1, -1, -1, -1, -1, -1, -1, -1, 116, -1,
1556 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1557 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1558 -1, -1, 10, 11, -1, -1, -1, -1, -1, -1,
1559 -1, -1, 20, 21, 22, 23, -1, 25, -1, -1,
1560 -1, 3, -1, -1, 6, -1, 34, 35, 10, 11,
1561 -1, -1, 40, 41, 42, 43, -1, -1, 20, 21,
1562 22, -1, -1, 25, -1, -1, 54, 55, -1, -1,
1563 -1, 59, 34, -1, 36, -1, -1, -1, 40, 41,
1564 42, 43, -1, -1, -1, -1, -1, -1, -1, -1,
1565 -1, 3, 54, 55, 6, -1, -1, 59, 10, 11,
1566 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1567 22, -1, -1, 25, -1, -1, -1, -1, -1, 107,
1568 108, -1, 34, -1, 36, -1, 114, -1, 40, 41,
1569 42, 43, 3, -1, -1, 6, -1, -1, -1, 10,
1570 11, -1, 54, 55, -1, 107, 108, 59, -1, 20,
1571 21, 22, 114, -1, 25, -1, -1, -1, -1, -1,
1572 -1, -1, -1, 34, -1, 36, -1, -1, -1, 40,
1573 41, 42, 43, -1, -1, -1, -1, -1, -1, -1,
1574 -1, -1, 3, 54, 55, 6, -1, -1, 59, 10,
1575 11, -1, -1, -1, -1, 107, 108, -1, -1, 20,
1576 21, 22, 114, -1, 25, -1, -1, -1, 3, -1,
1577 -1, 6, -1, 34, -1, 10, 11, -1, -1, 40,
1578 41, 42, 43, -1, -1, 20, -1, 22, -1, -1,
1579 25, -1, -1, 54, 55, -1, 107, 108, 59, 34,
1580 -1, -1, -1, 114, -1, 40, 41, 42, 43, -1,
1581 -1, -1, -1, -1, -1, -1, -1, -1, -1, 54,
1582 -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
1583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1584 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
1585 -1, -1, -1, 114, -1, -1, -1, -1, -1, -1,
1586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1587 -1, -1, 107, 108, -1, -1, -1, -1, -1, 114
1589 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1591 /* This file comes from bison-1.28. */
1593 /* Skeleton output parser for bison,
1594 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1596 This program is free software; you can redistribute it and/or modify
1597 it under the terms of the GNU General Public License as published by
1598 the Free Software Foundation; either version 2, or (at your option)
1601 This program is distributed in the hope that it will be useful,
1602 but WITHOUT ANY WARRANTY; without even the implied warranty of
1603 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1604 GNU General Public License for more details.
1606 You should have received a copy of the GNU General Public License
1607 along with this program; if not, write to the Free Software
1608 Foundation, Inc., 59 Temple Place - Suite 330,
1609 Boston, MA 02111-1307, USA. */
1611 /* As a special exception, when this file is copied by Bison into a
1612 Bison output file, you may use that output file without restriction.
1613 This special exception was added by the Free Software Foundation
1614 in version 1.24 of Bison. */
1616 /* This is the parser code that is written into each bison parser
1617 when the %semantic_parser declaration is not specified in the grammar.
1618 It was written by Richard Stallman by simplifying the hairy parser
1619 used when %semantic_parser is specified. */
1621 #ifndef YYSTACK_USE_ALLOCA
1623 #define YYSTACK_USE_ALLOCA
1624 #else /* alloca not defined */
1626 #define YYSTACK_USE_ALLOCA
1627 #define alloca __builtin_alloca
1628 #else /* not GNU C. */
1629 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
1630 #define YYSTACK_USE_ALLOCA
1632 #else /* not sparc */
1633 /* We think this test detects Watcom and Microsoft C. */
1634 /* This used to test MSDOS, but that is a bad idea
1635 since that symbol is in the user namespace. */
1636 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
1637 #if 0 /* No need for malloc.h, which pollutes the namespace;
1638 instead, just don't use alloca. */
1641 #else /* not MSDOS, or __TURBOC__ */
1643 /* I don't know what this was needed for, but it pollutes the namespace.
1644 So I turned it off. rms, 2 May 1997. */
1645 /* #include <malloc.h> */
1647 #define YYSTACK_USE_ALLOCA
1648 #else /* not MSDOS, or __TURBOC__, or _AIX */
1650 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
1651 and on HPUX 10. Eventually we can turn this on. */
1652 #define YYSTACK_USE_ALLOCA
1653 #define alloca __builtin_alloca
1656 #endif /* not _AIX */
1657 #endif /* not MSDOS, or __TURBOC__ */
1658 #endif /* not sparc */
1659 #endif /* not GNU C */
1660 #endif /* alloca not defined */
1661 #endif /* YYSTACK_USE_ALLOCA not defined */
1663 #ifdef YYSTACK_USE_ALLOCA
1664 #define YYSTACK_ALLOC alloca
1666 #define YYSTACK_ALLOC malloc
1669 /* Note: there must be only one dollar sign in this file.
1670 It is replaced by the list of actions, each action
1671 as one case of the switch. */
1673 #define yyerrok (yyerrstatus = 0)
1674 #define yyclearin (yychar = YYEMPTY)
1677 #define YYACCEPT goto yyacceptlab
1678 #define YYABORT goto yyabortlab
1679 #define YYERROR goto yyerrlab1
1680 /* Like YYERROR except do call yyerror.
1681 This remains here temporarily to ease the
1682 transition to the new meaning of YYERROR, for GCC.
1683 Once GCC version 2 has supplanted version 1, this can go. */
1684 #define YYFAIL goto yyerrlab
1685 #define YYRECOVERING() (!!yyerrstatus)
1686 #define YYBACKUP(token, value) \
1688 if (yychar == YYEMPTY && yylen == 1) \
1689 { yychar = (token), yylval = (value); \
1690 yychar1 = YYTRANSLATE (yychar); \
1695 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1699 #define YYERRCODE 256
1702 #define YYLEX yylex()
1708 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1710 #define YYLEX yylex(&yylval, &yylloc)
1712 #else /* not YYLSP_NEEDED */
1714 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1716 #define YYLEX yylex(&yylval)
1718 #endif /* not YYLSP_NEEDED */
1721 /* If nonreentrant, generate the variables here */
1725 int yychar; /* the lookahead symbol */
1726 YYSTYPE yylval; /* the semantic value of the */
1727 /* lookahead symbol */
1730 YYLTYPE yylloc; /* location data for the lookahead */
1734 int yynerrs; /* number of parse errors so far */
1735 #endif /* not YYPURE */
1738 int yydebug; /* nonzero means print parse trace */
1739 /* Since this is uninitialized, it does not stop multiple parsers
1743 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1746 #define YYINITDEPTH 200
1749 /* YYMAXDEPTH is the maximum size the stacks can grow to
1750 (effective only if the built-in stack extension method is used). */
1757 #define YYMAXDEPTH 10000
1760 /* Define __yy_memcpy. Note that the size argument
1761 should be passed with type unsigned int, because that is what the non-GCC
1762 definitions require. With GCC, __builtin_memcpy takes an arg
1763 of type size_t, but it can handle unsigned int. */
1765 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1766 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1767 #else /* not GNU C or C++ */
1770 /* This is the most reliable way to avoid incompatibilities
1771 in available built-in functions on various systems. */
1773 __yy_memcpy (to, from, count)
1778 register char *f = from;
1779 register char *t = to;
1780 register int i = count;
1786 #else /* __cplusplus */
1788 /* This is the most reliable way to avoid incompatibilities
1789 in available built-in functions on various systems. */
1791 __yy_memcpy (char *to, char *from, unsigned int count)
1793 register char *t = to;
1794 register char *f = from;
1795 register int i = count;
1806 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1807 into yyparse. The argument should have type void *.
1808 It should actually point to an object.
1809 Grammar actions can access the variable by casting it
1810 to the proper pointer type. */
1812 #ifdef YYPARSE_PARAM
1814 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1815 #define YYPARSE_PARAM_DECL
1816 #else /* not __cplusplus */
1817 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1818 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1819 #endif /* not __cplusplus */
1820 #else /* not YYPARSE_PARAM */
1821 #define YYPARSE_PARAM_ARG
1822 #define YYPARSE_PARAM_DECL
1823 #endif /* not YYPARSE_PARAM */
1825 /* Prevent warning if -Wstrict-prototypes. */
1827 #ifdef YYPARSE_PARAM
1828 int yyparse (void *);
1835 yyparse(YYPARSE_PARAM_ARG)
1838 register int yystate;
1840 register short *yyssp;
1841 register YYSTYPE *yyvsp;
1842 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1843 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1845 short yyssa[YYINITDEPTH]; /* the state stack */
1846 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1848 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1849 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1852 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1853 YYLTYPE *yyls = yylsa;
1856 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1858 #define YYPOPSTACK (yyvsp--, yyssp--)
1861 int yystacksize = YYINITDEPTH;
1862 int yyfree_stacks = 0;
1873 YYSTYPE yyval; /* the variable used to return */
1874 /* semantic values from the action */
1881 fprintf(stderr, "Starting parse\n");
1887 yychar = YYEMPTY; /* Cause a token to be read. */
1889 /* Initialize stack pointers.
1890 Waste one element of value and location stack
1891 so that they stay on the same level as the state stack.
1892 The wasted elements are never initialized. */
1900 /* Push a new state, which is found in yystate . */
1901 /* In all cases, when you get here, the value and location stacks
1902 have just been pushed. so pushing a state here evens the stacks. */
1907 if (yyssp >= yyss + yystacksize - 1)
1909 /* Give user a chance to reallocate the stack */
1910 /* Use copies of these so that the &'s don't force the real ones into memory. */
1911 YYSTYPE *yyvs1 = yyvs;
1912 short *yyss1 = yyss;
1914 YYLTYPE *yyls1 = yyls;
1917 /* Get the current used size of the three stacks, in elements. */
1918 int size = yyssp - yyss + 1;
1921 /* Each stack pointer address is followed by the size of
1922 the data in use in that stack, in bytes. */
1924 /* This used to be a conditional around just the two extra args,
1925 but that might be undefined if yyoverflow is a macro. */
1926 yyoverflow("parser stack overflow",
1927 &yyss1, size * sizeof (*yyssp),
1928 &yyvs1, size * sizeof (*yyvsp),
1929 &yyls1, size * sizeof (*yylsp),
1932 yyoverflow("parser stack overflow",
1933 &yyss1, size * sizeof (*yyssp),
1934 &yyvs1, size * sizeof (*yyvsp),
1938 yyss = yyss1; yyvs = yyvs1;
1942 #else /* no yyoverflow */
1943 /* Extend the stack our own way. */
1944 if (yystacksize >= YYMAXDEPTH)
1946 yyerror("parser stack overflow");
1958 if (yystacksize > YYMAXDEPTH)
1959 yystacksize = YYMAXDEPTH;
1960 #ifndef YYSTACK_USE_ALLOCA
1963 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
1964 __yy_memcpy ((char *)yyss, (char *)yyss1,
1965 size * (unsigned int) sizeof (*yyssp));
1966 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
1967 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
1968 size * (unsigned int) sizeof (*yyvsp));
1970 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
1971 __yy_memcpy ((char *)yyls, (char *)yyls1,
1972 size * (unsigned int) sizeof (*yylsp));
1974 #endif /* no yyoverflow */
1976 yyssp = yyss + size - 1;
1977 yyvsp = yyvs + size - 1;
1979 yylsp = yyls + size - 1;
1984 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1987 if (yyssp >= yyss + yystacksize - 1)
1993 fprintf(stderr, "Entering state %d\n", yystate);
1999 /* Do appropriate processing given the current state. */
2000 /* Read a lookahead token if we need one and don't already have one. */
2003 /* First try to decide what to do without reference to lookahead token. */
2005 yyn = yypact[yystate];
2009 /* Not known => get a lookahead token if don't already have one. */
2011 /* yychar is either YYEMPTY or YYEOF
2012 or a valid token in external form. */
2014 if (yychar == YYEMPTY)
2018 fprintf(stderr, "Reading a token: ");
2023 /* Convert token to internal form (in yychar1) for indexing tables with */
2025 if (yychar <= 0) /* This means end of input. */
2028 yychar = YYEOF; /* Don't call YYLEX any more */
2032 fprintf(stderr, "Now at end of input.\n");
2037 yychar1 = YYTRANSLATE(yychar);
2042 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2043 /* Give the individual parser a way to print the precise meaning
2044 of a token, for further debugging info. */
2046 YYPRINT (stderr, yychar, yylval);
2048 fprintf (stderr, ")\n");
2054 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2059 /* yyn is what to do for this token type in this state.
2060 Negative => reduce, -yyn is rule number.
2061 Positive => shift, yyn is new state.
2062 New state is final state => don't bother to shift,
2063 just return success.
2064 0, or most negative number => error. */
2079 /* Shift the lookahead token. */
2083 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2086 /* Discard the token being shifted unless it is eof. */
2087 if (yychar != YYEOF)
2095 /* count tokens shifted since error; after three, turn off error status. */
2096 if (yyerrstatus) yyerrstatus--;
2101 /* Do the default action for the current state. */
2104 yyn = yydefact[yystate];
2108 /* Do a reduction. yyn is the number of a rule to reduce with. */
2112 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2119 fprintf (stderr, "Reducing via rule %d (line %d), ",
2122 /* Print the symbols being reduced, and their result. */
2123 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2124 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2125 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2133 { lhExternals (yyvsp[0].interfacelist); ;
2136 { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
2139 { yyval.interfacelist = interfaceNodeList_new (); ;
2142 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2145 { yyval.interfacelist = interfaceNodeList_new (); ;
2148 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2151 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2154 { yyval.interfacelist = interfaceNodeList_new (); ;
2157 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2160 { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2161 /* assume subspecs are already processed, symbol table info in external file */
2165 { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
2168 { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
2171 { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
2174 { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
2177 { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
2180 { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
2183 { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
2186 { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
2189 { yyval.paramlist = paramNodeList_new (); ;
2192 { yyval.paramlist = yyvsp[0].paramlist; ;
2195 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
2198 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
2201 { yyval.param = markYieldParamNode (yyvsp[0].param); ;
2204 { yyval.param = yyvsp[0].param; ;
2207 { symtable_export (g_symtab, FALSE); ;
2210 { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
2213 { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
2216 { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
2219 { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
2222 { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
2225 { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
2228 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
2231 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
2234 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
2237 { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
2240 { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
2243 { yyval.typequal = qual_createPrintfLike (); ;
2246 { yyval.typequal = qual_createScanfLike (); ;
2249 { yyval.typequal = qual_createMessageLike (); ;
2252 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2255 { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls,
2256 yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2257 /* type, declarator, glovbls, privateinits,
2258 lets, checks, requires, modifies, ensures, claims */
2259 symtable_exitScope (g_symtab);
2263 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2266 { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist,
2267 yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2268 /* type, declarator, glovbls, privateinits,
2269 lets, checks, requires, modifies, ensures, claims */
2270 symtable_exitScope (g_symtab);
2274 { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
2277 { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate);
2278 symtable_exitScope (g_symtab); ;
2281 { yyval.claim = (claimNode) 0; ;
2284 {g_inTypeDef = TRUE; ;
2287 {g_inTypeDef = FALSE; ;
2290 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
2293 {g_inTypeDef = TRUE; ;
2296 {g_inTypeDef = FALSE; ;
2299 { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2302 {g_inTypeDef = TRUE; ;
2305 {g_inTypeDef = FALSE; ;
2308 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2311 {g_inTypeDef = TRUE; ;
2314 {g_inTypeDef = FALSE; ;
2317 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
2320 { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
2323 { g_inTypeDef = FALSE; ;
2326 { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
2329 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
2332 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
2335 { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
2338 { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
2341 { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
2344 { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
2347 { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
2350 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2353 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2356 { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
2359 { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
2362 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
2365 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
2368 { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
2371 { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
2374 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2377 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2380 { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
2383 { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
2386 { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
2389 { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
2392 { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
2395 { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
2398 { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
2401 { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
2404 { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
2407 { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
2408 yyvsp[-1].name, yyvsp[0].signature); ;
2411 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
2414 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
2417 { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
2420 { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
2423 { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
2426 { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
2429 { yyval.globals = varDeclarationNodeList_new (); ;
2432 { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
2435 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
2438 { yyval.vardeclaration = makeInternalStateNode (); ;
2441 { yyval.vardeclaration = makeFileSystemNode (); ;
2444 { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
2447 { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
2450 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
2453 { yyval.letdecls = letDeclNodeList_new (); ;
2456 { yyval.letdecls = yyvsp[-1].letdecls; ;
2459 { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
2462 { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
2465 { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
2468 { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
2471 { yyval.lclpredicate = (lclPredicateNode)0; ;
2474 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2477 { yyval.lclpredicate = (lclPredicateNode)0; ;
2480 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2483 { yyval.modify = (modifyNode)0; ;
2486 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
2489 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
2492 { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
2495 { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
2498 { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
2501 { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
2504 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
2507 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
2510 { yyval.storeref = makeStoreRefNodeInternal (); ;
2513 { yyval.storeref = makeStoreRefNodeSystem (); ;
2516 { yyval.lclpredicate = (lclPredicateNode)0; ;
2519 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2522 { yyval.lclpredicate = (lclPredicateNode)0; ;
2525 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2528 { yyval.paramlist = paramNodeList_new (); ;
2531 { yyval.paramlist = yyvsp[0].paramlist; ;
2534 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
2537 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
2540 { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
2543 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
2546 { yyval.program = (programNode)0; ;
2549 { yyval.program = yyvsp[-1].program; ;
2552 { yyval.program = yyvsp[-2].program; ;
2555 { yyval.program = makeProgramNode (yyvsp[0].stmt); ;
2558 { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
2561 { programNodeList x = programNodeList_new ();
2562 programNodeList_addh (x, yyvsp[-1].program);
2563 yyval.program = makeProgramNodeAction (x, ACT_ITER);
2567 { programNodeList x = programNodeList_new ();
2568 programNodeList_addh (x, yyvsp[-2].program);
2569 programNodeList_addh (x, yyvsp[0].program);
2570 yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE);
2574 { programNodeList x = programNodeList_new ();
2575 programNodeList_addh (x, yyvsp[-2].program);
2576 programNodeList_addh (x, yyvsp[0].program);
2577 yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE);
2581 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2584 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
2587 { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
2590 { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2593 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
2596 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
2599 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
2602 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
2605 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
2608 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
2611 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
2614 { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
2617 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
2620 { yyval.abstbody = (abstBodyNode)0; ;
2623 { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
2626 { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
2629 { yyval.abstbody = (abstBodyNode)0; ;
2632 { yyval.fcns = fcnNodeList_new (); ;
2635 { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
2638 { yyval.lclpredicate = (lclPredicateNode)0; ;
2641 { g_inTypeDef = FALSE; ;
2644 { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
2645 checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
2646 yyval.lclpredicate = yyvsp[-1].lclpredicate;
2647 symtable_exitScope (g_symtab);
2652 { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
2655 { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
2658 { declareForwardType (yyvsp[0].declare); ;
2661 { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
2664 { yyval.abstbody = (abstBodyNode)0; ;
2667 { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2670 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
2673 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
2676 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
2679 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
2682 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
2685 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
2688 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
2691 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
2694 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
2697 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
2700 { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
2703 { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
2706 { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
2709 { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
2712 { yyval.typequal = qual_createOut (); ;
2715 { yyval.typequal = qual_createUnused (); ;
2718 { yyval.typequal = qual_createSef (); ;
2721 { yyval.typequal = qual_createOnly (); ;
2724 { yyval.typequal = qual_createOwned (); ;
2727 { yyval.typequal = qual_createDependent (); ;
2730 { yyval.typequal = qual_createKeep (); ;
2733 { yyval.typequal = qual_createKept (); ;
2736 { yyval.typequal = qual_createObserver (); ;
2739 { yyval.typequal = qual_createExits (); ;
2742 { yyval.typequal = qual_createMayExit (); ;
2745 { yyval.typequal = qual_createTrueExit (); ;
2748 { yyval.typequal = qual_createFalseExit (); ;
2751 { yyval.typequal = qual_createNeverExit (); ;
2754 { yyval.typequal = qual_createOnly (); ;
2757 { yyval.typequal = qual_createShared (); ;
2760 { yyval.typequal = qual_createUnique (); ;
2763 { yyval.typequal = qual_createChecked (); ;
2766 { yyval.typequal = qual_createUnchecked (); ;
2769 { yyval.typequal = qual_createCheckedStrict (); ;
2772 { yyval.typequal = qual_createTrueNull (); ;
2775 { yyval.typequal = qual_createFalseNull (); ;
2778 { yyval.typequal = qual_createRelNull (); ;
2781 { yyval.typequal = qual_createRelDef (); ;
2784 { yyval.typequal = qual_createRefCounted (); ;
2787 { yyval.typequal = qual_createRefs (); ;
2790 { yyval.typequal = qual_createNewRef (); ;
2793 { yyval.typequal = qual_createKillRef (); ;
2796 { yyval.typequal = qual_createNull (); ;
2799 { yyval.typequal = qual_createNotNull (); ;
2802 { yyval.typequal = qual_createReturned (); ;
2805 { yyval.typequal = qual_createExposed (); ;
2808 { yyval.typequal = qual_createPartial (); ;
2811 { yyval.typequal = qual_createNullTerminated () ; ;
2814 { yyval.typequal = qual_createUndef (); ;
2817 { yyval.typequal = qual_createKilled (); ;
2820 { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
2823 { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
2826 { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
2829 { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
2832 { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
2835 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
2836 yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
2839 { yyval.count = 1; ;
2842 { yyval.count = yyvsp[-1].count + 1; ;
2845 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
2848 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
2851 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
2854 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
2857 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
2860 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
2863 { yyval.ltok = ltoken_undefined; ;
2866 { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
2869 { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
2872 { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
2875 { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
2878 { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
2887 { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
2890 { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
2893 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2896 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2899 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
2902 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
2905 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
2908 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
2911 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
2914 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
2917 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
2920 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
2923 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
2926 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
2929 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
2932 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
2935 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
2938 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
2941 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
2944 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
2947 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
2950 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
2953 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
2956 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
2959 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
2962 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
2965 { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
2968 { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
2971 { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
2974 { yyval.abstDecl = (abstDeclaratorNode)0; ;
2977 { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
2980 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
2983 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
2986 { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
2989 { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
2992 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
2995 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
2998 { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
3001 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3004 { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
3007 { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
3010 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
3013 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3016 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3019 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3022 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
3023 opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3026 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3029 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3032 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3035 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3038 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3041 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3044 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3047 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3050 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
3051 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3054 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
3055 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3058 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
3059 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3062 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
3063 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3066 { yyval.count = 0; ;
3069 { yyval.count = 1; ;
3072 { yyval.count = yyvsp[-2].count + 1; ;
3075 { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3078 { yyval.ltokenList = ltokenList_new (); ;
3081 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3084 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3087 { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
3090 { yyval.term = checkSort (yyvsp[0].term); ;
3093 { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
3096 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
3099 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
3100 symtable_exitScope (g_symtab);
3104 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3107 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3110 { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
3113 { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
3116 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
3119 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3122 { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
3125 { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
3128 { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
3131 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3134 { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3137 { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
3140 { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
3143 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3146 { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3149 { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3152 { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok);
3153 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3156 { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3159 { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok);
3160 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok));
3164 { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3167 { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3170 { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3173 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3176 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3179 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
3182 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3185 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3188 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
3191 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3194 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3197 { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
3201 { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
3204 { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3207 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3210 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3213 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3216 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3219 { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
3222 { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
3225 { termNodeList x = termNodeList_new ();
3226 termNodeList_addh (x, yyvsp[-1].term);
3227 yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok);
3231 { termNodeList x = termNodeList_new ();
3232 termNodeList_addh (x, yyvsp[-3].term);
3233 termNodeList_addh (x, yyvsp[-1].term);
3234 yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok);
3238 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
3241 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
3244 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
3247 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
3250 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
3253 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
3256 { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
3259 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
3260 si->kind = SPE_QUANT;
3261 symtable_enterScope (g_symtab, si); ;
3264 { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
3267 { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
3270 { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
3273 { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
3276 { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
3279 /* the action file gets copied in in place of this dollarsign */
3291 short *ssp1 = yyss - 1;
3292 fprintf (stderr, "state stack now");
3293 while (ssp1 != yyssp)
3294 fprintf (stderr, " %d", *++ssp1);
3295 fprintf (stderr, "\n");
3305 yylsp->first_line = yylloc.first_line;
3306 yylsp->first_column = yylloc.first_column;
3307 yylsp->last_line = (yylsp-1)->last_line;
3308 yylsp->last_column = (yylsp-1)->last_column;
3313 yylsp->last_line = (yylsp+yylen-1)->last_line;
3314 yylsp->last_column = (yylsp+yylen-1)->last_column;
3318 /* Now "shift" the result of the reduction.
3319 Determine what state that goes to,
3320 based on the state we popped back to
3321 and the rule number reduced by. */
3325 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3326 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3327 yystate = yytable[yystate];
3329 yystate = yydefgoto[yyn - YYNTBASE];
3333 yyerrlab: /* here on detecting error */
3336 /* If not already recovering from an error, report this error. */
3340 #ifdef YYERROR_VERBOSE
3341 yyn = yypact[yystate];
3343 if (yyn > YYFLAG && yyn < YYLAST)
3350 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3351 for (x = (yyn < 0 ? -yyn : 0);
3352 x < (sizeof(yytname) / sizeof(char *)); x++)
3353 if (yycheck[x + yyn] == x)
3354 size += strlen(yytname[x]) + 15, count++;
3355 msg = (char *) malloc(size + 15);
3358 strcpy(msg, "parse error");
3363 for (x = (yyn < 0 ? -yyn : 0);
3364 x < (sizeof(yytname) / sizeof(char *)); x++)
3365 if (yycheck[x + yyn] == x)
3367 strcat(msg, count == 0 ? ", expecting `" : " or `");
3368 strcat(msg, yytname[x]);
3377 yyerror ("parse error; also virtual memory exceeded");
3380 #endif /* YYERROR_VERBOSE */
3381 yyerror("parse error");
3385 yyerrlab1: /* here on error raised explicitly by an action */
3387 if (yyerrstatus == 3)
3389 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3391 /* return failure if at end of input */
3392 if (yychar == YYEOF)
3397 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3403 /* Else will try to reuse lookahead token
3404 after shifting the error token. */
3406 yyerrstatus = 3; /* Each real token shifted decrements this */
3410 yyerrdefault: /* current state does not do anything special for the error token. */
3413 /* This is wrong; only states that explicitly want error tokens
3414 should shift them. */
3415 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3416 if (yyn) goto yydefault;
3419 yyerrpop: /* pop the current state because it cannot handle the error token */
3421 if (yyssp == yyss) YYABORT;
3431 short *ssp1 = yyss - 1;
3432 fprintf (stderr, "Error: state stack now");
3433 while (ssp1 != yyssp)
3434 fprintf (stderr, " %d", *++ssp1);
3435 fprintf (stderr, "\n");
3441 yyn = yypact[yystate];
3446 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3465 fprintf(stderr, "Shifting error token, ");
3477 /* YYACCEPT comes here. */
3489 /* YYABORT comes here. */
3502 # include "bison.reset"
3505 ** yytext is set in lex scanner
3506 ** extern YYSTYPE yylval;
3507 ** yylval is defined by code generated by bison
3510 void ylerror (char *s)
3513 ** This resetting of the left context is very important when multiple
3514 ** files are to be parsed. We do not want failures to propagate.
3515 ** Lex/Yacc does not reset the flags when the parsing goes bad.
3520 lclfatalerror (yllval.ltok,
3521 message ("%s: Token code: %s, Token String: %s",
3522 cstring_fromChars (s),
3523 ltoken_unparseCodeName (yllval.ltok),
3524 ltoken_getRawString (yllval.ltok)));
3528 static void yyprint (FILE *f, int t, YYSTYPE value)
3530 fprintf (f, " type: %d (%s)", t,
3531 cstring_toCharsSafe (ltoken_getRawString (value.ltok)));
3541 ** Resets all flags in bison.head
3563 /*@=evalorderuncon@*/
3572 /*@=elseifcomplete@*/
3576 /*@=readonlytrans@*/
3579 /*@=systemunrecog@*/
3580 /*@=dependenttrans@*/
3581 /*@=unqualifiedtrans@*/
3585 /*drl added 11/27/2001*/
3587 /*@=arrayboundsread@*/