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