2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
45 /* < end of bison.head > */
48 /* A Bison parser, made from llgrammar.y
49 by GNU Bison version 1.25
52 #define YYBISON 1 /* Identify Bison output. */
54 #define yyparse ylparse
56 #define yyerror ylerror
59 #define yydebug yldebug
60 #define yynerrs ylnerrs
63 #define POSTFIX_OP 260
66 #define LLT_VERTICALBAR 263
67 #define ITERATION_OP 264
69 #define LLT_LBRACKET 266
71 #define LLT_IF_THEN_ELSE 268
74 #define equationSym 271
75 #define commentSym 272
76 #define LLT_WHITESPACE 273
78 #define LLT_TYPEDEF_NAME 275
79 #define quantifierSym 276
91 #define LLT_EQUALS 288
92 #define LLT_LBRACE 289
93 #define LLT_RBRACE 290
94 #define LLT_RBRACKET 291
99 #define LLT_CFLOAT 296
100 #define LLT_CINTEGER 297
101 #define LLT_LCSTRING 298
103 #define LLT_ANYTHING 300
106 #define LLT_CLAIMS 303
107 #define LLT_CHECKS 304
108 #define LLT_CONSTANT 305
110 #define LLT_ENSURES 307
112 #define LLT_FRESH 309
114 #define LLT_IMMUTABLE 311
115 #define LLT_IMPORTS 312
116 #define LLT_CONSTRAINT 313
117 #define LLT_ISSUB 314
119 #define LLT_MODIFIES 316
120 #define LLT_MUTABLE 317
121 #define LLT_NOTHING 318
122 #define LLT_INTERNAL 319
123 #define LLT_FILESYS 320
128 #define LLT_PARTIAL 325
129 #define LLT_OWNED 326
130 #define LLT_DEPENDENT 327
134 #define LLT_SHARED 331
135 #define LLT_UNIQUE 332
136 #define LLT_UNUSED 333
137 #define LLT_EXITS 334
138 #define LLT_MAYEXIT 335
139 #define LLT_NEVEREXIT 336
140 #define LLT_TRUEEXIT 337
141 #define LLT_FALSEEXIT 338
142 #define LLT_UNDEF 339
143 #define LLT_KILLED 340
144 #define LLT_CHECKMOD 341
145 #define LLT_CHECKED 342
146 #define LLT_UNCHECKED 343
147 #define LLT_CHECKEDSTRICT 344
148 #define LLT_TRUENULL 345
149 #define LLT_FALSENULL 346
150 #define LLT_LNULL 347
151 #define LLT_LNOTNULL 348
152 #define LLT_RETURNED 349
153 #define LLT_OBSERVER 350
154 #define LLT_EXPOSED 351
155 #define LLT_REFCOUNTED 352
157 #define LLT_RELNULL 354
158 #define LLT_RELDEF 355
159 #define LLT_KILLREF 356
160 #define LLT_TEMPREF 357
161 #define LLT_NEWREF 358
162 #define LLT_PRIVATE 359
163 #define LLT_REQUIRES 360
164 #define LLT_RESULT 361
165 #define LLT_SIZEOF 362
167 #define LLT_TAGGEDUNION 364
170 #define LLT_TYPEDEF 367
171 #define LLT_UNCHANGED 368
174 #define LLT_CONST 371
175 #define LLT_DOUBLE 372
177 #define LLT_FLOAT 374
180 #define LLT_YIELD 377
182 #define LLT_SHORT 379
183 #define LLT_SIGNED 380
184 #define LLT_UNKNOWN 381
185 #define LLT_STRUCT 382
186 #define LLT_TELIPSIS 383
187 #define LLT_UNION 384
188 #define LLT_UNSIGNED 385
190 #define LLT_VOLATILE 387
191 #define LLT_PRINTFLIKE 388
192 #define LLT_SCANFLIKE 389
193 #define LLT_MESSAGELIKE 390
195 #line 36 "llgrammar.y"
198 # include "lclintMacros.nf"
199 # include "llbasic.h"
200 # include "lclscan.h"
201 # include "checking.h"
202 # include "lslparse.h"
204 # include "usymtab_interface.h"
207 static /*@unused@*/ void yyprint ();
211 void ylerror (char *) /*@modifies *g_msgstream@*/ ;
214 bool g_inTypeDef = FALSE;
216 /*@constant int YYDEBUG;@*/
220 # define YYPRINT(file, type, value) yyprint (file, type, value)
223 ** This is necessary, or else when the bison-generated code #include's malloc.h,
224 ** there will be a parse error.
226 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
227 ** in bison-generated files under Win32.
237 #line 78 "llgrammar.y"
240 ltoken ltok; /* a leaf is also an ltoken */
243 /*@only@*/ ltokenList ltokenList;
244 /*@only@*/ abstDeclaratorNode abstDecl;
245 /*@only@*/ declaratorNode declare;
246 /*@only@*/ declaratorNodeList declarelist;
247 /*@only@*/ typeExpr typeexpr;
248 /*@only@*/ arrayQualNode array;
249 /*@only@*/ quantifierNode quantifier;
250 /*@only@*/ quantifierNodeList quantifiers;
251 /*@only@*/ varNode var;
252 /*@only@*/ varNodeList vars;
253 /*@only@*/ storeRefNode storeref;
254 /*@only@*/ storeRefNodeList storereflist;
255 /*@only@*/ termNode term;
256 /*@only@*/ termNodeList termlist;
257 /*@only@*/ programNode program;
258 /*@only@*/ stmtNode stmt;
259 /*@only@*/ claimNode claim;
260 /*@only@*/ typeNode type;
261 /*@only@*/ iterNode iter;
262 /*@only@*/ fcnNode fcn;
263 /*@only@*/ fcnNodeList fcns;
264 /*@only@*/ letDeclNode letdecl;
265 /*@only@*/ letDeclNodeList letdecls;
266 /*@only@*/ lclPredicateNode lclpredicate;
267 /*@only@*/ modifyNode modify;
268 /*@only@*/ paramNode param;
269 /*@only@*/ paramNodeList paramlist;
270 /*@only@*/ declaratorInvNodeList declaratorinvs;
271 /*@only@*/ declaratorInvNode declaratorinv;
272 /*@only@*/ abstBodyNode abstbody;
273 /*@only@*/ abstractNode abstract;
274 /*@only@*/ exposedNode exposed;
275 /* taggedUnionNode taggedunion; */
276 /*@only@*/ globalList globals;
277 /*@only@*/ constDeclarationNode constdeclaration;
278 /*@only@*/ varDeclarationNode vardeclaration;
279 /*@only@*/ varDeclarationNodeList vardeclarationlist;
280 /*@only@*/ initDeclNodeList initdecls;
281 /*@only@*/ initDeclNode initdecl;
282 /*@only@*/ stDeclNodeList structdecls;
283 /*@only@*/ stDeclNode structdecl;
284 /*@only@*/ strOrUnionNode structorunion;
285 /*@only@*/ enumSpecNode enumspec;
286 /*@only@*/ lclTypeSpecNode lcltypespec;
287 /*@only@*/ typeNameNode typname;
288 /*@only@*/ opFormNode opform;
289 /*@only@*/ sigNode signature;
290 /*@only@*/ nameNode name;
291 /*@only@*/ typeNameNodeList namelist;
292 /*@only@*/ replaceNode replace;
293 /*@only@*/ replaceNodeList replacelist;
294 /*@only@*/ renamingNode renaming;
295 /*@only@*/ traitRefNode traitref;
296 /*@only@*/ traitRefNodeList traitreflist;
297 /*@only@*/ importNode import;
298 /*@only@*/ importNodeList importlist;
299 /*@only@*/ interfaceNode iface;
300 /*@only@*/ interfaceNodeList interfacelist;
301 /*@only@*/ CTypesNode ctypes;
318 #define YYFLAG -32768
321 #define YYTRANSLATE(x) ((unsigned)(x) <= 390 ? yytranslate[x] : 290)
323 static const short yytranslate[] = { 0,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
350 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
351 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
352 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
353 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
354 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
355 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
356 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
357 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
358 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
359 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
360 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
361 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
362 126, 127, 128, 129, 130, 131, 132, 133, 134, 135
366 static const short yyprhs[] = { 0,
367 0, 1, 5, 6, 9, 11, 13, 14, 17, 20,
368 21, 24, 26, 28, 30, 34, 38, 40, 42, 44,
369 46, 48, 50, 57, 58, 60, 62, 66, 69, 71,
370 72, 76, 78, 80, 82, 84, 89, 93, 98, 103,
371 105, 107, 109, 111, 113, 114, 128, 129, 144, 145,
372 159, 164, 165, 166, 173, 174, 175, 183, 184, 185,
373 193, 194, 195, 202, 203, 204, 211, 214, 217, 219,
374 223, 225, 229, 231, 233, 237, 239, 241, 245, 247,
375 252, 256, 263, 265, 269, 271, 273, 277, 279, 283,
376 285, 289, 293, 297, 302, 304, 306, 308, 310, 312,
377 316, 318, 322, 323, 326, 330, 333, 336, 337, 340,
378 345, 346, 350, 352, 356, 362, 366, 368, 369, 373,
379 374, 378, 379, 383, 387, 391, 393, 397, 399, 401,
380 404, 406, 408, 409, 413, 414, 418, 419, 421, 423,
381 425, 429, 431, 435, 436, 441, 447, 449, 453, 456,
382 460, 464, 469, 473, 479, 486, 488, 492, 494, 496,
383 499, 502, 506, 510, 514, 519, 521, 525, 530, 534,
384 535, 538, 539, 541, 542, 549, 551, 555, 556, 560,
385 561, 565, 567, 569, 571, 573, 575, 577, 579, 581,
386 583, 585, 587, 590, 592, 594, 596, 598, 600, 602,
387 604, 606, 608, 610, 612, 614, 616, 618, 620, 622,
388 624, 626, 628, 630, 632, 634, 636, 638, 640, 642,
389 644, 646, 648, 650, 652, 654, 656, 658, 660, 662,
390 664, 666, 668, 670, 673, 679, 681, 684, 686, 689,
391 690, 697, 698, 705, 708, 711, 712, 714, 716, 719,
392 723, 725, 729, 730, 732, 739, 742, 744, 748, 750,
393 752, 754, 758, 761, 764, 768, 773, 775, 779, 782,
394 785, 789, 794, 796, 799, 802, 806, 811, 814, 817,
395 820, 823, 827, 829, 830, 832, 836, 839, 841, 843,
396 846, 850, 854, 859, 862, 866, 873, 875, 878, 881,
397 885, 889, 894, 899, 905, 909, 914, 919, 925, 928,
398 931, 935, 939, 941, 943, 945, 947, 949, 951, 953,
399 954, 956, 958, 962, 964, 966, 971, 972, 974, 976,
400 980, 982, 984, 991, 993, 997, 999, 1004, 1008, 1012,
401 1014, 1017, 1020, 1022, 1024, 1026, 1029, 1031, 1034, 1037,
402 1041, 1043, 1045, 1048, 1051, 1055, 1057, 1060, 1064, 1066,
403 1072, 1076, 1081, 1084, 1088, 1091, 1093, 1097, 1101, 1103,
404 1108, 1110, 1113, 1117, 1121, 1125, 1130, 1134, 1136, 1140,
405 1142, 1144, 1146, 1148, 1150, 1152, 1157, 1162, 1167, 1172,
406 1179, 1184, 1186, 1188, 1190, 1192, 1194, 1197, 1198, 1202,
407 1204, 1208, 1212, 1217, 1219, 1221, 1223, 1225, 1227, 1229,
411 static const short yyrhs[] = { -1,
412 138, 137, 140, 0, 0, 138, 139, 0, 143, 0,
413 144, 0, 0, 145, 141, 0, 150, 141, 0, 0,
414 141, 142, 0, 145, 0, 150, 0, 144, 0, 57,
415 174, 7, 0, 114, 178, 7, 0, 153, 0, 154,
416 0, 155, 0, 157, 0, 160, 0, 146, 0, 121,
417 284, 10, 147, 37, 7, 0, 0, 148, 0, 149,
418 0, 148, 32, 149, 0, 122, 243, 0, 243, 0,
419 0, 108, 151, 152, 0, 153, 0, 154, 0, 155,
420 0, 157, 0, 50, 226, 188, 7, 0, 226, 188,
421 7, 0, 116, 226, 188, 7, 0, 132, 226, 188,
422 7, 0, 162, 0, 171, 0, 133, 0, 134, 0,
423 135, 0, 0, 226, 239, 190, 158, 34, 192, 194,
424 198, 199, 200, 203, 204, 35, 0, 0, 156, 226,
425 239, 190, 159, 34, 192, 194, 198, 199, 200, 203,
426 204, 35, 0, 0, 48, 286, 10, 205, 37, 190,
427 161, 34, 194, 199, 208, 203, 35, 0, 48, 283,
428 286, 7, 0, 0, 0, 62, 163, 111, 20, 164,
429 213, 0, 0, 0, 62, 165, 97, 111, 20, 166,
430 213, 0, 0, 0, 97, 62, 167, 111, 20, 168,
431 213, 0, 0, 0, 56, 169, 111, 20, 170, 213,
432 0, 0, 0, 112, 226, 172, 218, 173, 7, 0,
433 229, 7, 0, 237, 7, 0, 175, 0, 174, 32,
434 175, 0, 177, 0, 3, 177, 3, 0, 43, 0,
435 177, 0, 176, 32, 177, 0, 282, 0, 179, 0,
436 178, 32, 179, 0, 288, 0, 288, 10, 181, 37,
437 0, 10, 180, 37, 0, 10, 180, 37, 10, 181,
438 37, 0, 288, 0, 180, 32, 288, 0, 183, 0,
439 182, 0, 182, 32, 183, 0, 244, 0, 182, 32,
440 244, 0, 184, 0, 183, 32, 184, 0, 244, 53,
441 222, 0, 244, 53, 185, 0, 244, 53, 185, 255,
442 0, 289, 0, 248, 0, 187, 0, 259, 0, 189,
443 0, 188, 32, 189, 0, 239, 0, 239, 33, 186,
444 0, 0, 190, 191, 0, 226, 188, 7, 0, 64,
445 7, 0, 65, 7, 0, 0, 192, 193, 0, 104,
446 226, 188, 7, 0, 0, 60, 195, 7, 0, 196,
447 0, 195, 32, 196, 0, 284, 31, 197, 46, 259,
448 0, 284, 46, 259, 0, 226, 0, 0, 49, 258,
449 7, 0, 0, 105, 258, 7, 0, 0, 61, 63,
450 7, 0, 61, 45, 7, 0, 61, 201, 7, 0,
451 202, 0, 201, 32, 202, 0, 259, 0, 227, 0,
452 66, 227, 0, 64, 0, 65, 0, 0, 52, 258,
453 7, 0, 0, 48, 258, 7, 0, 0, 206, 0,
454 207, 0, 128, 0, 207, 32, 128, 0, 243, 0,
455 207, 32, 243, 0, 0, 47, 34, 209, 35, 0,
456 47, 34, 209, 7, 35, 0, 210, 0, 10, 209,
457 37, 0, 209, 6, 0, 209, 8, 209, 0, 209,
458 7, 209, 0, 283, 10, 211, 37, 0, 283, 10,
459 37, 0, 284, 33, 283, 10, 37, 0, 284, 33,
460 283, 10, 211, 37, 0, 212, 0, 211, 32, 212,
461 0, 276, 0, 284, 0, 3, 212, 0, 212, 3,
462 0, 212, 3, 212, 0, 10, 212, 37, 0, 283,
463 10, 37, 0, 283, 10, 211, 37, 0, 7, 0,
464 34, 214, 35, 0, 34, 176, 35, 7, 0, 34,
465 35, 7, 0, 0, 214, 157, 0, 0, 216, 0,
466 0, 58, 217, 278, 10, 258, 37, 0, 219, 0,
467 218, 32, 219, 0, 0, 239, 220, 221, 0, 0,
468 34, 215, 35, 0, 131, 0, 115, 0, 117, 0,
469 119, 0, 120, 0, 123, 0, 124, 0, 125, 0,
470 130, 0, 126, 0, 222, 0, 223, 222, 0, 20,
471 0, 223, 0, 67, 0, 78, 0, 68, 0, 69,
472 0, 71, 0, 72, 0, 73, 0, 74, 0, 95,
473 0, 79, 0, 80, 0, 82, 0, 83, 0, 81,
474 0, 75, 0, 76, 0, 77, 0, 87, 0, 88,
475 0, 89, 0, 90, 0, 91, 0, 99, 0, 100,
476 0, 97, 0, 98, 0, 103, 0, 101, 0, 92,
477 0, 93, 0, 94, 0, 96, 0, 70, 0, 84,
478 0, 85, 0, 224, 0, 229, 0, 237, 0, 225,
479 226, 0, 8, 227, 31, 227, 8, 0, 226, 0,
480 226, 228, 0, 6, 0, 228, 6, 0, 0, 127,
481 232, 230, 34, 233, 35, 0, 0, 129, 232, 231,
482 34, 233, 35, 0, 127, 285, 0, 129, 285, 0,
483 0, 285, 0, 234, 0, 233, 234, 0, 226, 235,
484 7, 0, 239, 0, 235, 32, 239, 0, 0, 32,
485 0, 118, 232, 34, 238, 236, 35, 0, 118, 285,
486 0, 25, 0, 238, 32, 25, 0, 241, 0, 240,
487 0, 284, 0, 10, 240, 37, 0, 6, 240, 0,
488 240, 247, 0, 240, 10, 37, 0, 240, 10, 206,
489 37, 0, 20, 0, 10, 241, 37, 0, 6, 241,
490 0, 241, 247, 0, 241, 10, 37, 0, 241, 10,
491 206, 37, 0, 20, 0, 6, 242, 0, 242, 247,
492 0, 242, 10, 37, 0, 242, 10, 206, 37, 0,
493 226, 242, 0, 226, 240, 0, 226, 245, 0, 226,
494 245, 0, 66, 226, 245, 0, 248, 0, 0, 246,
495 0, 10, 246, 37, 0, 6, 246, 0, 6, 0,
496 247, 0, 246, 247, 0, 246, 10, 37, 0, 10,
497 206, 37, 0, 246, 10, 206, 37, 0, 11, 36,
498 0, 11, 187, 36, 0, 55, 27, 110, 27, 51,
499 27, 0, 251, 0, 27, 251, 0, 251, 27, 0,
500 27, 251, 27, 0, 249, 252, 250, 0, 27, 249,
501 252, 250, 0, 249, 252, 250, 27, 0, 27, 249,
502 252, 250, 27, 0, 11, 252, 36, 0, 11, 252,
503 36, 27, 0, 27, 11, 252, 36, 0, 27, 11,
504 252, 36, 27, 0, 12, 282, 0, 26, 282, 0,
505 27, 12, 282, 0, 27, 26, 282, 0, 22, 0,
506 34, 0, 23, 0, 35, 0, 263, 0, 14, 0,
507 39, 0, 0, 253, 0, 27, 0, 253, 254, 27,
508 0, 32, 0, 24, 0, 31, 256, 26, 287, 0,
509 0, 257, 0, 287, 0, 257, 32, 287, 0, 259,
510 0, 260, 0, 55, 260, 110, 260, 51, 260, 0,
511 261, 0, 260, 14, 260, 0, 262, 0, 277, 10,
512 258, 37, 0, 262, 39, 262, 0, 262, 33, 262,
513 0, 264, 0, 267, 265, 0, 267, 266, 0, 3,
514 0, 6, 0, 267, 0, 263, 264, 0, 263, 0,
515 265, 263, 0, 263, 267, 0, 266, 263, 267, 0,
516 272, 0, 268, 0, 268, 272, 0, 272, 268, 0,
517 272, 268, 272, 0, 269, 0, 269, 272, 0, 270,
518 31, 287, 0, 270, 0, 11, 271, 36, 31, 287,
519 0, 11, 271, 36, 0, 11, 36, 31, 287, 0,
520 11, 36, 0, 249, 271, 250, 0, 249, 250, 0,
521 259, 0, 271, 254, 259, 0, 10, 260, 37, 0,
522 284, 0, 289, 10, 273, 37, 0, 275, 0, 272,
523 274, 0, 272, 12, 282, 0, 272, 26, 282, 0,
524 272, 11, 36, 0, 272, 11, 273, 36, 0, 272,
525 31, 287, 0, 260, 0, 273, 32, 260, 0, 28,
526 0, 29, 0, 30, 0, 38, 0, 276, 0, 106,
527 0, 54, 10, 273, 37, 0, 113, 10, 44, 37,
528 0, 113, 10, 201, 37, 0, 107, 10, 259, 37,
529 0, 59, 10, 259, 32, 259, 37, 0, 107, 10,
530 226, 37, 0, 42, 0, 43, 0, 40, 0, 41,
531 0, 278, 0, 277, 278, 0, 0, 21, 279, 280,
532 0, 281, 0, 280, 32, 281, 0, 284, 31, 197,
533 0, 284, 31, 66, 197, 0, 25, 0, 20, 0,
534 25, 0, 25, 0, 282, 0, 282, 0, 282, 0,
541 static const short yyrline[] = { 0,
542 382, 383, 386, 387, 390, 391, 394, 395, 396, 399,
543 400, 403, 404, 405, 408, 414, 418, 420, 422, 424,
544 426, 428, 432, 436, 437, 440, 442, 446, 447, 450,
545 451, 454, 456, 458, 460, 464, 468, 470, 472, 476,
546 477, 480, 481, 482, 485, 486, 493, 495, 506, 508,
547 511, 515, 515, 516, 517, 517, 519, 520, 521, 522,
548 523, 523, 524, 527, 528, 529, 530, 532, 548, 550,
549 554, 555, 557, 560, 561, 564, 568, 570, 574, 576,
550 578, 580, 584, 585, 588, 590, 592, 595, 597, 600,
551 602, 605, 606, 607, 611, 612, 614, 616, 619, 621,
552 625, 626, 629, 631, 635, 636, 637, 640, 641, 644,
553 648, 649, 652, 653, 656, 657, 659, 662, 663, 666,
554 667, 670, 671, 672, 673, 676, 677, 680, 681, 682,
555 683, 684, 687, 688, 691, 692, 695, 696, 699, 700,
556 701, 704, 705, 708, 709, 710, 713, 714, 717, 722,
557 728, 736, 738, 740, 742, 746, 747, 750, 751, 752,
558 753, 754, 755, 756, 758, 762, 763, 764, 765, 768,
559 769, 772, 773, 776, 776, 785, 786, 790, 791, 794,
560 795, 798, 799, 800, 801, 802, 803, 804, 805, 806,
561 807, 815, 816, 821, 823, 829, 830, 831, 832, 833,
562 834, 835, 836, 837, 838, 839, 840, 841, 842, 843,
563 844, 845, 846, 847, 848, 849, 850, 851, 852, 853,
564 854, 855, 856, 857, 858, 859, 860, 861, 862, 863,
565 866, 868, 870, 872, 874, 883, 884, 889, 890, 893,
566 895, 897, 899, 901, 903, 907, 908, 911, 912, 917,
567 920, 922, 926, 927, 930, 932, 936, 937, 947, 948,
568 951, 952, 953, 954, 955, 956, 959, 960, 961, 962,
569 963, 964, 973, 974, 975, 976, 977, 983, 984, 985,
570 995, 996, 997, 1002, 1003, 1006, 1007, 1008, 1009, 1010,
571 1011, 1012, 1013, 1016, 1017, 1020, 1022, 1024, 1026, 1028,
572 1031, 1033, 1035, 1037, 1039, 1041, 1049, 1051, 1053, 1056,
573 1059, 1062, 1067, 1068, 1071, 1072, 1075, 1076, 1077, 1080,
574 1081, 1084, 1085, 1088, 1089, 1092, 1095, 1096, 1099, 1100,
575 1103, 1106, 1112, 1114, 1115, 1118, 1119, 1124, 1126, 1130,
576 1131, 1132, 1135, 1136, 1139, 1140, 1143, 1144, 1147, 1148,
577 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1160, 1161, 1164,
578 1167, 1169, 1173, 1177, 1178, 1181, 1182, 1185, 1187, 1189,
579 1191, 1192, 1194, 1196, 1198, 1201, 1203, 1207, 1208, 1211,
580 1212, 1213, 1214, 1217, 1218, 1219, 1220, 1221, 1222, 1227,
581 1233, 1243, 1244, 1245, 1246, 1249, 1251, 1255, 1259, 1262,
582 1263, 1266, 1267, 1270, 1271, 1274, 1275, 1276, 1277, 1278,
588 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
590 static const char * const yytname[] = { "$","error","$undefined.","simpleOp",
591 "PREFIX_OP","POSTFIX_OP","LLT_MULOP","LLT_SEMI","LLT_VERTICALBAR","ITERATION_OP",
592 "LLT_LPAR","LLT_LBRACKET","selectSym","LLT_IF_THEN_ELSE","logicalOp","eqSepSym",
593 "equationSym","commentSym","LLT_WHITESPACE","LLT_EOL","LLT_TYPEDEF_NAME","quantifierSym",
594 "openSym","closeSym","sepSym","simpleId","mapSym","markerSym","preSym","postSym",
595 "anySym","LLT_COLON","LLT_COMMA","LLT_EQUALS","LLT_LBRACE","LLT_RBRACE","LLT_RBRACKET",
596 "LLT_RPAR","LLT_QUOTE","eqOp","LLT_CCHAR","LLT_CFLOAT","LLT_CINTEGER","LLT_LCSTRING",
597 "LLT_ALL","LLT_ANYTHING","LLT_BE","LLT_BODY","LLT_CLAIMS","LLT_CHECKS","LLT_CONSTANT",
598 "LLT_ELSE","LLT_ENSURES","LLT_FOR","LLT_FRESH","LLT_IF","LLT_IMMUTABLE","LLT_IMPORTS",
599 "LLT_CONSTRAINT","LLT_ISSUB","LLT_LET","LLT_MODIFIES","LLT_MUTABLE","LLT_NOTHING",
600 "LLT_INTERNAL","LLT_FILESYS","LLT_OBJ","LLT_OUT","LLT_SEF","LLT_ONLY","LLT_PARTIAL",
601 "LLT_OWNED","LLT_DEPENDENT","LLT_KEEP","LLT_KEPT","LLT_TEMP","LLT_SHARED","LLT_UNIQUE",
602 "LLT_UNUSED","LLT_EXITS","LLT_MAYEXIT","LLT_NEVEREXIT","LLT_TRUEEXIT","LLT_FALSEEXIT",
603 "LLT_UNDEF","LLT_KILLED","LLT_CHECKMOD","LLT_CHECKED","LLT_UNCHECKED","LLT_CHECKEDSTRICT",
604 "LLT_TRUENULL","LLT_FALSENULL","LLT_LNULL","LLT_LNOTNULL","LLT_RETURNED","LLT_OBSERVER",
605 "LLT_EXPOSED","LLT_REFCOUNTED","LLT_REFS","LLT_RELNULL","LLT_RELDEF","LLT_KILLREF",
606 "LLT_TEMPREF","LLT_NEWREF","LLT_PRIVATE","LLT_REQUIRES","LLT_RESULT","LLT_SIZEOF",
607 "LLT_SPEC","LLT_TAGGEDUNION","LLT_THEN","LLT_TYPE","LLT_TYPEDEF","LLT_UNCHANGED",
608 "LLT_USES","LLT_CHAR","LLT_CONST","LLT_DOUBLE","LLT_ENUM","LLT_FLOAT","LLT_INT",
609 "LLT_ITER","LLT_YIELD","LLT_LONG","LLT_SHORT","LLT_SIGNED","LLT_UNKNOWN","LLT_STRUCT",
610 "LLT_TELIPSIS","LLT_UNION","LLT_UNSIGNED","LLT_VOID","LLT_VOLATILE","LLT_PRINTFLIKE",
611 "LLT_SCANFLIKE","LLT_MESSAGELIKE","interface","@1","externals","external","optDeclarations",
612 "declarations","declaration","imports","uses","export","iter","iterParamList",
613 "realIterParamList","iterParam","private","@2","private2","constDeclaration",
614 "varDeclaration","type","special","fcn","@3","@4","claim","@5","abstract","@6",
615 "@7","@8","@9","@10","@11","@12","@13","exposed","@14","@15","importNameList",
616 "importName","interfaceNameList","interfaceName","traitRefNodeList","traitRef",
617 "traitIdList","renaming","nameList","replaceNodeList","replace","name","initializer",
618 "constLclExpr","initDecls","initDecl","globals","globalDecl","privateInits",
619 "privateInit","optLetDecl","beDeclList","beDecl","sortSpec","optChecks","optRequire",
620 "optModify","storeRefList","storeRef","optEnsure","optClaim","optParamList",
621 "realParamList","paramList","optBody","callExpr","stmt","valueList","value",
622 "abstBody","fcns","optTypeInv","typeInv","@16","declaratorInvs","declaratorInv",
623 "@17","optExposedBody","CType","CTypes","typeSpecifier","specialQualifier","lclTypeSpec",
624 "lclType","pointers","structOrUnionSpec","@18","@19","optTagId","structDecls",
625 "structDecl","declaratorList","optCOMMA","enumSpec","enumeratorList","declarator",
626 "notype_decl","after_type_decl","parameter_decl","param","typeName","optAbstDeclarator",
627 "abstDeclarator","arrayQual","opForm","open","close","anyOp","middle","placeList",
628 "separator","signature","domain","sortList","lclPredicate","term","term0","equalityTerm",
629 "simpleOpTerm","simpleOp2","prefixOpTerm","postfixOps","infixOpPart","secondary",
630 "bracketed","sqBracketed","matched","args","primary","termList","stateFcn","lclPrimary",
631 "cLiteral","quantifiers","quantifier","@20","quantifiedList","quantified","simpleIdOrTypedefName",
632 "fcnId","varId","tagId","claimId","sortId","traitId","opId", NULL
636 static const short yyr1[] = { 0,
637 137, 136, 138, 138, 139, 139, 140, 140, 140, 141,
638 141, 142, 142, 142, 143, 144, 145, 145, 145, 145,
639 145, 145, 146, 147, 147, 148, 148, 149, 149, 151,
640 150, 152, 152, 152, 152, 153, 154, 154, 154, 155,
641 155, 156, 156, 156, 158, 157, 159, 157, 161, 160,
642 160, 163, 164, 162, 165, 166, 162, 167, 168, 162,
643 169, 170, 162, 172, 173, 171, 171, 171, 174, 174,
644 175, 175, 175, 176, 176, 177, 178, 178, 179, 179,
645 179, 179, 180, 180, 181, 181, 181, 182, 182, 183,
646 183, 184, 184, 184, 185, 185, 186, 187, 188, 188,
647 189, 189, 190, 190, 191, 191, 191, 192, 192, 193,
648 194, 194, 195, 195, 196, 196, 197, 198, 198, 199,
649 199, 200, 200, 200, 200, 201, 201, 202, 202, 202,
650 202, 202, 203, 203, 204, 204, 205, 205, 206, 206,
651 206, 207, 207, 208, 208, 208, 209, 209, 209, 209,
652 209, 210, 210, 210, 210, 211, 211, 212, 212, 212,
653 212, 212, 212, 212, 212, 213, 213, 213, 213, 214,
654 214, 215, 215, 217, 216, 218, 218, 220, 219, 221,
655 221, 222, 222, 222, 222, 222, 222, 222, 222, 222,
656 222, 223, 223, 224, 224, 225, 225, 225, 225, 225,
657 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
658 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
659 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
660 226, 226, 226, 226, 226, 227, 227, 228, 228, 230,
661 229, 231, 229, 229, 229, 232, 232, 233, 233, 234,
662 235, 235, 236, 236, 237, 237, 238, 238, 239, 239,
663 240, 240, 240, 240, 240, 240, 241, 241, 241, 241,
664 241, 241, 242, 242, 242, 242, 242, 243, 243, 243,
665 244, 244, 244, 245, 245, 246, 246, 246, 246, 246,
666 246, 246, 246, 247, 247, 248, 248, 248, 248, 248,
667 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
668 248, 248, 249, 249, 250, 250, 251, 251, 251, 252,
669 252, 253, 253, 254, 254, 255, 256, 256, 257, 257,
670 258, 259, 260, 260, 260, 261, 261, 261, 261, 262,
671 262, 262, 263, 263, 264, 264, 265, 265, 266, 266,
672 267, 267, 267, 267, 267, 267, 267, 268, 268, 269,
673 269, 269, 269, 270, 270, 271, 271, 272, 272, 272,
674 272, 272, 272, 272, 272, 272, 272, 273, 273, 274,
675 274, 274, 274, 275, 275, 275, 275, 275, 275, 275,
676 275, 276, 276, 276, 276, 277, 277, 279, 278, 280,
677 280, 281, 281, 282, 282, 283, 284, 285, 286, 287,
681 static const short yyr2[] = { 0,
682 0, 3, 0, 2, 1, 1, 0, 2, 2, 0,
683 2, 1, 1, 1, 3, 3, 1, 1, 1, 1,
684 1, 1, 6, 0, 1, 1, 3, 2, 1, 0,
685 3, 1, 1, 1, 1, 4, 3, 4, 4, 1,
686 1, 1, 1, 1, 0, 13, 0, 14, 0, 13,
687 4, 0, 0, 6, 0, 0, 7, 0, 0, 7,
688 0, 0, 6, 0, 0, 6, 2, 2, 1, 3,
689 1, 3, 1, 1, 3, 1, 1, 3, 1, 4,
690 3, 6, 1, 3, 1, 1, 3, 1, 3, 1,
691 3, 3, 3, 4, 1, 1, 1, 1, 1, 3,
692 1, 3, 0, 2, 3, 2, 2, 0, 2, 4,
693 0, 3, 1, 3, 5, 3, 1, 0, 3, 0,
694 3, 0, 3, 3, 3, 1, 3, 1, 1, 2,
695 1, 1, 0, 3, 0, 3, 0, 1, 1, 1,
696 3, 1, 3, 0, 4, 5, 1, 3, 2, 3,
697 3, 4, 3, 5, 6, 1, 3, 1, 1, 2,
698 2, 3, 3, 3, 4, 1, 3, 4, 3, 0,
699 2, 0, 1, 0, 6, 1, 3, 0, 3, 0,
700 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
701 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
702 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
703 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
704 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
705 1, 1, 1, 2, 5, 1, 2, 1, 2, 0,
706 6, 0, 6, 2, 2, 0, 1, 1, 2, 3,
707 1, 3, 0, 1, 6, 2, 1, 3, 1, 1,
708 1, 3, 2, 2, 3, 4, 1, 3, 2, 2,
709 3, 4, 1, 2, 2, 3, 4, 2, 2, 2,
710 2, 3, 1, 0, 1, 3, 2, 1, 1, 2,
711 3, 3, 4, 2, 3, 6, 1, 2, 2, 3,
712 3, 4, 4, 5, 3, 4, 4, 5, 2, 2,
713 3, 3, 1, 1, 1, 1, 1, 1, 1, 0,
714 1, 1, 3, 1, 1, 4, 0, 1, 1, 3,
715 1, 1, 6, 1, 3, 1, 4, 3, 3, 1,
716 2, 2, 1, 1, 1, 2, 1, 2, 2, 3,
717 1, 1, 2, 2, 3, 1, 2, 3, 1, 5,
718 3, 4, 2, 3, 2, 1, 3, 3, 1, 4,
719 1, 2, 3, 3, 3, 4, 3, 1, 3, 1,
720 1, 1, 1, 1, 1, 4, 4, 4, 4, 6,
721 4, 1, 1, 1, 1, 1, 2, 0, 3, 1,
722 3, 3, 4, 1, 1, 1, 1, 1, 1, 1,
726 static const short yydefact[] = { 3,
727 1, 0, 0, 7, 4, 5, 6, 0, 405, 404,
728 73, 0, 69, 71, 76, 0, 0, 77, 411, 79,
729 0, 194, 0, 0, 61, 52, 196, 198, 199, 228,
730 200, 201, 202, 203, 210, 211, 212, 197, 205, 206,
731 209, 207, 208, 229, 230, 213, 214, 215, 216, 217,
732 224, 225, 226, 204, 227, 220, 221, 218, 219, 223,
733 222, 30, 0, 183, 0, 184, 246, 185, 186, 0,
734 187, 188, 189, 191, 246, 246, 190, 182, 0, 42,
735 43, 44, 2, 10, 22, 10, 17, 18, 19, 0,
736 20, 21, 40, 41, 192, 195, 231, 0, 0, 232,
737 233, 0, 15, 0, 0, 83, 16, 0, 0, 220,
738 236, 0, 232, 233, 406, 409, 0, 0, 0, 0,
739 0, 0, 58, 0, 64, 0, 0, 408, 256, 407,
740 0, 240, 244, 242, 245, 0, 8, 9, 0, 193,
741 234, 0, 0, 267, 0, 99, 103, 260, 259, 261,
742 67, 68, 72, 70, 0, 81, 78, 343, 344, 320,
743 0, 318, 313, 0, 0, 314, 319, 0, 0, 0,
744 86, 85, 90, 284, 88, 283, 320, 297, 317, 238,
745 237, 0, 0, 137, 0, 101, 0, 0, 0, 0,
746 31, 32, 33, 34, 35, 0, 0, 0, 24, 0,
747 0, 0, 11, 14, 12, 13, 103, 263, 269, 0,
748 0, 37, 0, 0, 45, 0, 0, 264, 0, 270,
749 84, 0, 322, 0, 321, 309, 310, 320, 0, 0,
750 320, 298, 0, 284, 80, 0, 0, 288, 0, 281,
751 285, 289, 0, 0, 299, 239, 0, 51, 140, 0,
752 138, 139, 284, 142, 36, 62, 53, 0, 0, 65,
753 176, 178, 38, 257, 253, 0, 0, 25, 26, 29,
754 0, 0, 39, 47, 262, 268, 100, 0, 0, 398,
755 407, 394, 395, 392, 393, 0, 0, 0, 385, 0,
756 0, 102, 97, 0, 98, 332, 334, 336, 0, 340,
757 345, 352, 356, 359, 351, 371, 384, 0, 396, 412,
758 369, 0, 0, 0, 0, 104, 0, 265, 0, 294,
759 0, 271, 0, 0, 305, 325, 324, 0, 0, 311,
760 312, 0, 300, 0, 282, 87, 89, 91, 0, 287,
761 0, 0, 0, 290, 93, 92, 96, 95, 315, 316,
762 301, 235, 103, 0, 288, 0, 273, 279, 278, 280,
763 0, 0, 56, 59, 0, 0, 180, 254, 0, 28,
764 0, 0, 0, 0, 248, 0, 0, 0, 363, 366,
765 0, 0, 0, 0, 0, 0, 0, 365, 0, 0,
766 0, 0, 346, 345, 347, 341, 342, 353, 357, 0,
767 0, 0, 0, 380, 381, 382, 0, 383, 354, 372,
768 0, 397, 0, 106, 107, 108, 0, 266, 295, 272,
769 82, 306, 323, 307, 302, 0, 292, 286, 291, 0,
770 327, 94, 303, 49, 141, 143, 274, 288, 0, 275,
771 166, 170, 63, 54, 0, 0, 177, 66, 172, 179,
772 258, 255, 23, 27, 0, 251, 241, 249, 243, 108,
773 368, 0, 361, 0, 399, 400, 0, 378, 0, 0,
774 0, 194, 0, 0, 0, 131, 132, 0, 0, 126,
775 129, 128, 364, 335, 339, 338, 349, 348, 0, 410,
776 358, 375, 0, 373, 374, 377, 355, 0, 331, 0,
777 111, 105, 308, 304, 0, 293, 0, 328, 329, 0,
778 276, 0, 0, 0, 74, 0, 57, 60, 174, 0,
779 173, 250, 0, 111, 362, 0, 367, 0, 0, 0,
780 386, 0, 0, 391, 389, 387, 130, 0, 388, 350,
781 376, 337, 370, 0, 0, 109, 118, 296, 0, 0,
782 111, 277, 169, 0, 0, 167, 171, 0, 0, 181,
783 252, 118, 360, 401, 0, 402, 117, 379, 0, 0,
784 127, 0, 113, 0, 0, 0, 120, 326, 330, 120,
785 75, 168, 103, 0, 120, 403, 333, 390, 112, 0,
786 0, 0, 0, 0, 0, 122, 144, 0, 122, 114,
787 0, 116, 110, 119, 0, 0, 133, 0, 133, 0,
788 133, 0, 121, 0, 0, 0, 0, 135, 0, 0,
789 175, 135, 115, 124, 123, 125, 0, 0, 0, 0,
790 407, 0, 147, 0, 0, 50, 0, 134, 0, 46,
791 0, 149, 0, 0, 145, 0, 0, 48, 136, 0,
792 148, 146, 151, 150, 0, 0, 153, 0, 156, 158,
793 0, 159, 406, 0, 160, 0, 0, 152, 161, 0,
794 0, 163, 157, 162, 164, 0, 154, 0, 165, 155,
798 static const short yydefgoto[] = { 681,
799 4, 1, 5, 83, 137, 203, 6, 204, 205, 85,
800 267, 268, 269, 206, 124, 191, 87, 88, 89, 90,
801 91, 315, 377, 92, 510, 93, 121, 362, 122, 445,
802 190, 446, 120, 361, 94, 196, 366, 12, 13, 514,
803 14, 17, 18, 105, 170, 171, 172, 173, 345, 292,
804 293, 145, 146, 215, 316, 501, 546, 547, 572, 573,
805 566, 577, 596, 607, 479, 480, 618, 629, 250, 341,
806 252, 609, 653, 633, 658, 659, 443, 516, 520, 521,
807 559, 260, 261, 367, 450, 95, 96, 97, 98, 253,
808 481, 181, 113, 200, 201, 127, 374, 375, 455, 369,
809 114, 265, 186, 148, 149, 359, 254, 175, 240, 241,
810 242, 176, 294, 351, 178, 224, 225, 464, 432, 507,
811 508, 498, 499, 296, 297, 298, 299, 300, 396, 397,
812 301, 302, 303, 304, 381, 305, 469, 410, 306, 307,
813 308, 309, 382, 465, 466, 310, 661, 311, 129, 118,
817 static const short yypact[] = {-32768,
818 -28, 224, 372, 1343,-32768,-32768,-32768, 132,-32768,-32768,
819 -32768, 48,-32768,-32768,-32768, 132, 105,-32768,-32768, 49,
820 2880,-32768, 227, 2880,-32768, 17,-32768,-32768,-32768,-32768,
821 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
822 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
823 -32768,-32768,-32768,-32768,-32768, 161,-32768,-32768,-32768,-32768,
824 -32768,-32768, 2880,-32768, 2880,-32768, 132,-32768,-32768, 221,
825 -32768,-32768,-32768,-32768, 132, 132,-32768,-32768, 2880,-32768,
826 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2880,
827 -32768,-32768,-32768,-32768,-32768, 1065,-32768, 2880, 396, 247,
828 270, 280,-32768, 224, 311,-32768,-32768, 372, 1147,-32768,
829 310, 265,-32768,-32768, 343,-32768, 132, 345, 396, 209,
830 246, 264,-32768, 1437,-32768, 396, 340,-32768, 346,-32768,
831 378,-32768, 346,-32768, 346, 396, 1241, 1241, 396,-32768,
832 -32768, 396, 396,-32768, 123,-32768, 118, 198, 294,-32768,
833 -32768,-32768,-32768,-32768, 132, 431,-32768,-32768,-32768, 416,
834 132,-32768,-32768, 132, 488,-32768,-32768, 423, 2880, 427,
835 442, 444,-32768, 462, 417,-32768, 416, 466,-32768,-32768,
836 499, 2880, 502, 2302, 149, 484, 501, 512, 428, 429,
837 -32768,-32768,-32768,-32768,-32768, 396, 156, 509, 2396, 504,
838 507, 165,-32768,-32768,-32768,-32768,-32768, 198, 294, 89,
839 112,-32768, 396, 3134, 1824, 1920, 3009,-32768, 2016,-32768,
840 -32768, 1147,-32768, 500, 33,-32768,-32768, 416, 132, 132,
841 416, 516, 437, 462,-32768, 1147, 1147, 462, 1730,-32768,
842 329,-32768, 239, 93,-32768,-32768, 538,-32768,-32768, 513,
843 -32768, 517, 379,-32768,-32768,-32768,-32768, 533, 534, 523,
844 -32768,-32768,-32768,-32768, 526, 2880, 522, 532,-32768,-32768,
845 2880, 2880,-32768, 1824,-32768,-32768,-32768, 3134, 3036,-32768,
846 343,-32768,-32768,-32768,-32768, 555, 3134, 556,-32768, 559,
847 560,-32768,-32768, 412,-32768, 558,-32768, 121, 557,-32768,
848 436, 438, 438, 540, 761,-32768,-32768, 290,-32768,-32768,
849 -32768, 563, 567, 568, 542,-32768, 396,-32768, 541,-32768,
850 544,-32768, 546, 547, 562,-32768,-32768, 566, 549,-32768,
851 -32768, 93,-32768, 574,-32768, 444, 417,-32768, 417, 329,
852 550, 128, 2112,-32768, 564,-32768,-32768,-32768,-32768,-32768,
853 575,-32768,-32768, 2490, 379, 1634,-32768, 198, 376,-32768,
854 34, 34,-32768,-32768, 396, 579, 570, 565, 578,-32768,
855 587, 2396, 396, 2591,-32768, 2692, 576, 159, 583,-32768,
856 393, 221, 3134, 21, 3134, 1018, 760,-32768, 463, 3134,
857 557, 557,-32768,-32768, 288, 436, 436, 295, 295, 132,
858 3077, 132, 132,-32768,-32768,-32768, 132,-32768, 438,-32768,
859 3134,-32768, 3134,-32768,-32768,-32768, 211,-32768,-32768,-32768,
860 -32768,-32768,-32768, 582, 588, 571,-32768,-32768,-32768, 586,
861 132,-32768,-32768, 1824,-32768,-32768, 376, 434, 2208,-32768,
862 -32768, 373,-32768,-32768, 34, 34,-32768,-32768, 561,-32768,
863 -32768,-32768,-32768,-32768, 249,-32768,-32768,-32768,-32768,-32768,
864 -32768, 132, 594, 3134, 596,-32768, 595, 558, 419, 3134,
865 598, 625, 599, 601, 603,-32768,-32768, 2880, 425,-32768,
866 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 288,-32768,
867 -32768,-32768, 20,-32768,-32768,-32768, 295, 606,-32768, 445,
868 -7,-32768,-32768,-32768, 617,-32768, 619, 614,-32768, 613,
869 -32768, 611, 642, 472,-32768, 1538,-32768,-32768,-32768, 615,
870 -32768,-32768, 396, -7,-32768, 132,-32768, 221, 2786, 3134,
871 -32768, 28, 3134,-32768,-32768,-32768,-32768, 889,-32768,-32768,
872 -32768,-32768,-32768, 221, 2880,-32768, 605,-32768, 132, 132,
873 597,-32768,-32768, 132, 648,-32768,-32768, 396, 637,-32768,
874 -32768, 605,-32768,-32768, 2880,-32768,-32768, 558, 3134, 622,
875 -32768, 277,-32768, 115, 396, 3134, 572,-32768,-32768, 572,
876 -32768,-32768,-32768, 650, 572,-32768, 558,-32768,-32768, 221,
877 2880, 3134, 282, 654, 3134, 607, 620, 3134, 607,-32768,
878 616,-32768,-32768,-32768, 659, 631, 623, 635, 623, 641,
879 623, 3134,-32768, 672, 673, 334, 3134, 633, 192, 647,
880 -32768, 633,-32768,-32768,-32768,-32768, 676, 3134, 649, 192,
881 677, 187,-32768, 678, 656,-32768, 657,-32768, 684,-32768,
882 65,-32768, 200, 192,-32768, 245, 668,-32768,-32768, 192,
883 -32768,-32768, 709,-32768, 189, 189,-32768, 451, 730,-32768,
884 725,-32768,-32768, 726,-32768, 47, 189,-32768, 250, 309,
885 335,-32768, 730,-32768,-32768, 452,-32768, 464,-32768,-32768,
889 static const short yypgoto[] = {-32768,
890 -32768,-32768,-32768,-32768, 655,-32768,-32768, 741, 743,-32768,
891 -32768,-32768, 371, 748,-32768,-32768, 621, 629, 640,-32768,
892 -120,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
893 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 661,-32768,
894 -6,-32768, 651,-32768, 545,-32768, 539, 537,-32768,-32768,
895 552, -114, 573, -179,-32768, 316,-32768, -434,-32768, 188,
896 -522, 215, -77, 180, 178, 255, -420, 166,-32768, -165,
897 -32768,-32768, -406,-32768, -251, -288, -326,-32768,-32768,-32768,
898 -32768,-32768, 432,-32768,-32768, -76,-32768,-32768,-32768, -3,
899 -18,-32768, 45,-32768,-32768, 440, 524, -79,-32768,-32768,
900 63,-32768, -93, -135, 369, 443, -174, 287, -189, -212,
901 -101, 569, -32, -257, 643, -137,-32768, 580,-32768,-32768,
902 -32768, -532, -201, -254,-32768, 137, -95, 508,-32768,-32768,
903 -282, 505,-32768,-32768, 515, -264, -173,-32768,-32768, -243,
904 -32768, -297,-32768,-32768, 278, 7, -23, -38, 455, 694,
912 static const short yytable[] = { 117,
913 99, 102, 112, 195, 185, 147, 208, 210, 15, 19,
914 412, 197, 295, 179, 15, 295, 394, 111, 251, 140,
915 119, 202, 19, 378, 270, 340, 342, 274, 2, 116,
916 106, 131, 384, 496, 390, 444, 388, 398, 399, 244,
917 441, 390, 586, 594, 335, 207, 218, 220, 100, 669,
918 319, 530, 544, 323, 103, 541, 326, 509, 109, 125,
919 150, 126, 605, 360, 327, 610, 101, 442, 601, 179,
920 642, 650, 644, 128, 425, 136, 177, 380, 569, 104,
921 150, 128, 128, 672, 627, 3, 139, 150, 525, 562,
922 329, 370, 380, 332, 141, 639, 545, 150, 216, 217,
923 150, 651, 262, 150, 150, 174, 218, 220, 218, 220,
924 15, 107, 487, -55, 19, 349, 580, 358, 517, 518,
925 99, 219, 217, 116, -101, 275, 179, 350, 468, 212,
926 470, 483, 231, 99, 99, 484, 108, 343, 217, 344,
927 179, 179, 340, 342, 497, 591, 468, 179, 276, -101,
928 214, 9, 563, 391, 213, 255, 10, 150, 468, 392,
929 592, 19, 263, 247, 428, 234, 346, 226, 100, 221,
930 227, 273, 390, 434, 150, 578, 579, 430, 111, 436,
931 213, 100, 100, 471, 474, 482, 101, 213, 620, 177,
932 622, 655, 642, 643, 644, 461, 213, 270, 656, 101,
933 101, 630, 417, 177, 177, 395, 540, 216, 217, 630,
934 177, 317, 632, 631, 150, 532, 631, 502, 174, 208,
935 210, 645, 123, 641, 631, 340, 8, 493, 282, 283,
936 284, 285, 174, 174, 652, 330, 331, 654, 344, 500,
937 344, 158, 213, 9, 159, 130, 9, 655, 10, 160,
938 161, 115, 162, 151, 656, 522, 218, 440, 9, 656,
939 163, 584, 527, 10, 164, 165, 11, 373, 373, 631,
940 317, 262, 166, 512, 631, 568, 152, 167, 150, 456,
941 523, 657, 153, 589, 282, 283, 284, 285, 603, 282,
942 283, 284, 285, 168, 458, 182, 458, 278, 279, 411,
943 488, 489, 208, 219, 217, 401, 402, 9, 590, 163,
944 280, 655, 281, 213, 587, 180, 150, 150, 656, 187,
945 403, 166, 404, 405, 406, 407, 150, 282, 283, 284,
946 285, 570, 408, 631, 150, 440, 482, 655, 343, 217,
947 626, 286, 155, 467, 656, 675, 288, 156, 282, 283,
948 284, 285, -404, 64, 184, 66, 188, 68, 69, 631,
949 189, 71, 72, 73, 74, 538, 665, 666, 77, 78,
950 373, 677, 373, 198, 282, 283, 284, 285, 673, -247,
951 674, 16, 473, 111, 355, 439, 217, 199, 356, 217,
952 602, 9, 9, 289, 290, 557, 10, 10, 357, 150,
953 291, 142, 660, 130, 482, 143, 490, 513, 494, 495,
954 623, 660, 660, 490, 158, 144, 326, 159, 676, 678,
955 130, 278, 279, 660, 327, 660, 660, 660, 463, 561,
956 317, 9, 280, 163, 349, 515, 281, 490, 158, 438,
957 222, 159, 223, 356, 217, 166, 350, 278, 15, 233,
958 530, 282, 283, 284, 285, 531, 538, 9, 130, 537,
959 593, 539, 281, 235, 583, 286, 287, 238, 490, 243,
960 288, 239, 217, 236, 111, 237, 530, 282, 283, 284,
961 285, 543, 667, 667, 150, 349, 326, 668, 679, 467,
962 158, 286, 245, 159, 327, 667, 288, 350, 228, 229,
963 680, 162, 597, 554, 246, 574, 555, 599, 248, 163,
964 209, 211, 558, 230, 132, 134, 214, 289, 290, 150,
965 256, 166, 337, 339, 291, 567, 167, 485, 486, 133,
966 135, 257, 490, 264, 111, 325, 150, 271, 258, 259,
967 272, 575, 333, 289, 290, 352, 334, 581, 354, 353,
968 291, 574, 363, 364, 365, 490, 490, 368, 371, 158,
969 15, 567, 159, 372, 383, 385, 278, 279, 386, 387,
970 400, 390, 413, 414, 415, 416, 9, 418, 163, 419,
971 635, 281, 420, 421, 424, 448, 427, 567, 422, 451,
972 166, 635, 423, 453, 431, 634, 282, 283, 284, 285,
973 426, 433, 111, 449, 635, 635, 634, 662, 503, 460,
974 286, 635, 452, 462, 504, 288, 662, 662, 519, 634,
975 634, 505, 506, 664, 526, 529, 634, 528, 662, 533,
976 662, 662, 662, 158, -405, 534, 159, 535, 21, 536,
977 278, 279, 542, 548, 549, 550, 551, 552, 553, 560,
978 472, 280, 163, 576, 582, 281, 544, 280, 588, 598,
979 604, 612, 289, 290, 166, 613, 608, 606, 619, 291,
980 282, 283, 284, 285, 617, 614, 595, 621, 624, 625,
981 628, 636, 638, 640, 286, 287, -406, 646, 647, 288,
982 649, 648, 663, 615, 476, 477, 478, 27, 28, 29,
983 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
984 40, 41, 42, 43, 44, 45, 644, 46, 47, 48,
985 49, 50, 51, 52, 53, 54, 55, 110, 57, 58,
986 59, 60, 669, 61, 670, 671, 289, 290, 682, 683,
987 138, 7, 454, 291, 192, 64, 84, 66, 67, 68,
988 69, 86, 193, 71, 72, 73, 74, 75, 157, 76,
989 77, 78, 158, 194, 154, 159, 324, 21, 321, 278,
990 279, 401, 402, 338, 336, 524, 585, 600, 611, 472,
991 280, 163, 163, 616, 281, 277, 403, 637, 404, 405,
992 406, 407, 571, 166, 166, 376, 447, 437, 408, 282,
993 283, 284, 285, 475, 328, 564, 393, 232, 389, 409,
994 183, 347, 0, 286, 287, 0, 0, 0, 288, 348,
995 0, 0, 0, 476, 477, 478, 27, 28, 29, 30,
996 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
997 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
998 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
999 60, 0, 61, 0, 0, 289, 290, 0, 0, 0,
1000 0, 0, 291, 0, 64, 0, 66, 67, 68, 69,
1001 0, 0, 71, 72, 73, 74, 75, 0, 76, 77,
1002 78, 158, 0, 0, 159, 0, 21, 0, 278, 279,
1003 0, 0, 0, 0, 0, 0, 0, 0, 472, 280,
1004 163, 0, 0, 281, 0, 0, 0, 0, 0, 0,
1005 0, 0, 166, 0, 0, 0, 0, 0, 282, 283,
1006 284, 285, 0, 0, 0, 0, 0, 0, 0, 0,
1007 0, 0, 286, 287, 0, 0, 0, 288, 0, 0,
1008 0, 0, 476, 477, 478, 27, 28, 29, 30, 31,
1009 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1010 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1011 51, 52, 53, 54, 55, 110, 57, 58, 59, 60,
1012 0, 61, 0, 0, 289, 290, 0, 0, 0, 0,
1013 0, 291, 0, 64, 0, 66, 67, 68, 69, 0,
1014 0, 71, 72, 73, 74, 75, 0, 76, 77, 78,
1015 158, 0, 0, 159, 0, 21, 0, 278, 279, 0,
1016 0, 0, 0, 0, 0, 0, 0, 472, 280, 163,
1017 0, 0, 281, 0, 0, 0, 0, 0, 0, 0,
1018 0, 166, 0, 0, 0, 0, 0, 282, 283, 284,
1019 285, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1020 0, 286, 287, 0, 0, 0, 288, 0, 0, 0,
1021 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1022 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1023 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1024 52, 53, 54, 55, 110, 57, 58, 59, 60, 0,
1025 61, 0, 0, 289, 290, 0, 0, 0, 0, 0,
1026 291, 0, 64, 0, 66, 67, 68, 69, 0, 0,
1027 71, 72, 73, 74, 75, 0, 76, 77, 78, 158,
1028 0, 0, 159, 0, 21, 0, 0, 160, 161, 0,
1029 162, 0, 0, 0, 0, 0, 22, 0, 163, 0,
1030 0, 0, 164, 165, 0, 0, 0, 0, 0, 64,
1031 166, 66, 0, 68, 69, 167, 0, 71, 72, 73,
1032 74, 0, 0, 0, 77, 78, 0, 0, 0, 0,
1033 0, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1034 0, 0, 169, 27, 28, 29, 30, 31, 32, 33,
1035 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1036 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1037 53, 54, 55, 110, 57, 58, 59, 60, 21, 61,
1038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1039 22, 64, 0, 66, 67, 68, 69, 0, 0, 71,
1040 72, 73, 74, 75, 0, 76, 77, 78, 0, 0,
1041 0, 0, 0, 0, 0, 0, 0, 0, 23, 0,
1042 24, 0, 0, 0, 0, 0, 25, 0, 0, 0,
1043 0, 0, 26, 0, 0, 0, 0, 27, 28, 29,
1044 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1045 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1046 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1047 59, 60, 0, 61, 0, 0, 0, 0, 62, 0,
1048 21, 0, 63, 0, 3, 64, 65, 66, 67, 68,
1049 69, 70, 22, 71, 72, 73, 74, 75, 0, 76,
1050 77, 78, 79, 80, 81, 82, 0, 0, 0, 0,
1051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1052 23, 0, 24, 0, 0, 0, 0, 0, 25, 0,
1053 0, 0, 0, 0, 26, 0, 0, 0, 0, 27,
1054 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1055 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1056 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1057 57, 58, 59, 60, 21, 61, 0, 0, 0, 0,
1058 62, 0, 0, 0, 63, 0, 22, 64, 65, 66,
1059 67, 68, 69, 70, 0, 71, 72, 73, 74, 75,
1060 0, 76, 77, 78, 79, 80, 81, 82, 0, 0,
1061 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
1062 0, 0, 25, 0, 0, 0, 0, 0, 26, 0,
1063 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1064 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1065 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1066 53, 54, 55, 56, 57, 58, 59, 60, 0, 61,
1067 0, 0, 0, 0, 0, 21, 0, 0, 63, 0,
1068 0, 64, 65, 66, 67, 68, 69, 22, 0, 71,
1069 72, 73, 74, 75, 0, 76, 77, 78, 79, 80,
1070 81, 82, 556, 0, 0, 0, 0, 0, 0, 0,
1071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1073 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1074 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1075 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1076 52, 53, 54, 55, 110, 57, 58, 59, 60, 438,
1077 61, 21, 0, 356, 217, 0, 0, 0, 0, 0,
1078 0, 0, 64, 22, 66, 67, 68, 69, 130, 0,
1079 71, 72, 73, 74, 75, 0, 76, 77, 78, 0,
1080 80, 81, 82, 0, 0, 0, 0, 0, 0, 0,
1081 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1083 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1084 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1085 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1086 110, 57, 58, 59, 60, 238, 61, 21, 0, 239,
1087 217, 0, 0, 0, 0, 0, 0, 0, 64, 22,
1088 66, 67, 68, 69, 0, 0, 71, 72, 73, 74,
1089 75, 249, 76, 77, 78, 0, 0, 0, 0, 0,
1090 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1091 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1092 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1093 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1094 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1095 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
1096 60, 21, 61, 0, 0, 0, 0, 0, 0, 0,
1097 0, 0, 0, 22, 64, 0, 66, 67, 68, 69,
1098 0, 0, 71, 72, 73, 74, 75, 249, 76, 77,
1099 78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1101 0, 0, 0, 0, 0, 0, 0, 313, 314, 0,
1102 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1103 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1104 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1105 110, 57, 58, 59, 60, 0, 61, 21, 0, 0,
1106 0, 0, 0, 0, 0, 0, 0, 0, 64, 22,
1107 66, 67, 68, 69, 0, 0, 71, 72, 73, 74,
1108 75, 0, 76, 77, 78, 0, 318, 0, 0, 0,
1109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1111 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1112 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1113 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1114 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
1115 60, 0, 61, 21, 0, 0, 0, 0, 0, 0,
1116 0, 0, 0, 0, 64, 22, 66, 67, 68, 69,
1117 0, 0, 71, 72, 73, 74, 75, 249, 76, 77,
1118 78, 0, 322, 0, 0, 0, 0, 0, 0, 0,
1119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1121 0, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1122 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1123 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1124 54, 55, 110, 57, 58, 59, 60, 0, 61, 21,
1125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1126 64, 22, 66, 67, 68, 69, 0, 0, 71, 72,
1127 73, 74, 75, 249, 76, 77, 78, 0, 429, 0,
1128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1130 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1131 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1132 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1133 48, 49, 50, 51, 52, 53, 54, 55, 110, 57,
1134 58, 59, 60, 0, 61, 21, 0, 0, 0, 0,
1135 0, 0, 0, 0, 0, 0, 64, 22, 66, 67,
1136 68, 69, 0, 0, 71, 72, 73, 74, 75, 249,
1137 76, 77, 78, 0, 511, 0, 0, 0, 0, 0,
1138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1140 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1141 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1142 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1143 52, 53, 54, 55, 110, 57, 58, 59, 60, 21,
1144 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1145 0, 22, 64, 0, 66, 67, 68, 69, 0, 0,
1146 71, 72, 73, 74, 75, 249, 76, 77, 78, 0,
1147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1149 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1150 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1151 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1152 48, 49, 50, 51, 52, 53, 54, 55, 110, 57,
1153 58, 59, 60, 21, 61, 0, 0, 0, 0, 0,
1154 0, 0, 0, 0, 0, 22, 64, 0, 66, 67,
1155 68, 69, 0, 0, 71, 72, 73, 74, 75, 249,
1156 76, 77, 78, 0, 0, 0, 0, 0, 0, 0,
1157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1159 0, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1160 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1161 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1162 54, 55, 110, 57, 58, 59, 60, 21, 61, 0,
1163 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
1164 64, 0, 66, 67, 68, 69, 0, 266, 71, 72,
1165 73, 74, 75, 0, 76, 77, 78, 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 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1169 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1170 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1171 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
1172 60, 0, 61, 0, 0, 0, 0, 0, 21, 0,
1173 0, 0, 0, 0, 64, 0, 66, 67, 68, 69,
1174 22, 0, 71, 72, 73, 74, 75, 435, 76, 77,
1175 78, 0, 0, 0, 0, 457, 0, 0, 0, 0,
1176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1178 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1179 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1180 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1181 49, 50, 51, 52, 53, 54, 55, 110, 57, 58,
1182 59, 60, 0, 61, 0, 0, 0, 0, 0, 21,
1183 0, 0, 0, 0, 0, 64, 0, 66, 67, 68,
1184 69, 22, 0, 71, 72, 73, 74, 75, 0, 76,
1185 77, 78, 0, 0, 0, 0, 459, 0, 0, 0,
1186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1188 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1189 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1190 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1191 48, 49, 50, 51, 52, 53, 54, 55, 110, 57,
1192 58, 59, 60, 21, 61, 0, 0, 0, 0, 0,
1193 0, 0, 0, 0, 0, 22, 64, 0, 66, 67,
1194 68, 69, 0, 0, 71, 72, 73, 74, 75, 0,
1195 76, 77, 78, 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, 0,
1198 0, 565, 27, 28, 29, 30, 31, 32, 33, 34,
1199 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1200 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1201 54, 55, 110, 57, 58, 59, 60, 21, 61, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
1203 64, 0, 66, 67, 68, 69, 0, 0, 71, 72,
1204 73, 74, 75, 0, 76, 77, 78, 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, 0, 0, 0, 27, 28, 29, 30,
1208 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1209 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1210 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
1211 60, 0, 61, 0, 0, 0, 0, 0, 0, 0,
1212 0, 0, 0, 0, 64, 0, 66, 67, 68, 69,
1213 0, 0, 71, 72, 73, 74, 75, 0, 76, 77,
1214 78, 158, 0, 0, 159, 0, 0, 0, 278, 279,
1215 0, 0, 0, 0, 0, 0, 0, 0, 9, 280,
1216 163, 0, 0, 281, 0, 0, 0, 0, 158, 0,
1217 0, 159, 166, 0, 320, 278, 279, 0, 282, 283,
1218 284, 285, 0, 0, 0, 9, 280, 163, 0, 0,
1219 281, 0, 286, 287, 0, 0, 0, 288, 0, 166,
1220 0, 379, 0, 0, 0, 282, 283, 284, 285, 158,
1221 0, 0, 159, 0, 0, 0, 278, 279, 0, 286,
1222 287, 0, 0, 0, 288, 0, 9, 280, 163, 0,
1223 0, 281, 0, 0, 0, 0, 0, 0, 0, 0,
1224 166, 0, 492, 0, 289, 290, 282, 283, 284, 285,
1225 0, 291, 0, 0, 0, 0, 0, 0, 0, 0,
1226 286, 287, 0, 0, 0, 288, 158, 0, 0, 159,
1227 0, 289, 290, 278, 279, 0, 0, 0, 291, 0,
1228 0, 0, 0, 9, 280, 163, 0, 0, 281, 0,
1229 0, 0, 0, 0, 0, 0, 0, 166, 0, 0,
1230 0, 0, 0, 282, 283, 284, 285, 0, 0, 0,
1231 0, 0, 289, 290, 0, 0, 0, 286, 287, 291,
1232 0, 0, 288, 0, 0, 0, 0, 0, 0, 0,
1233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1236 0, 0, 0, 0, 0, 0, 0, 0, 0, 289,
1237 290, 0, 0, 0, 0, 0, 291
1240 static const short yycheck[] = { 23,
1241 4, 8, 21, 124, 119, 99, 142, 143, 2, 3,
1242 308, 126, 214, 109, 8, 217, 299, 21, 184, 96,
1243 24, 136, 16, 278, 199, 238, 239, 207, 57, 23,
1244 16, 70, 287, 407, 14, 362, 294, 302, 303, 177,
1245 7, 14, 565, 576, 234, 139, 148, 149, 4, 3,
1246 216, 32, 60, 219, 7, 36, 24, 431, 10, 63,
1247 99, 65, 595, 253, 32, 598, 4, 34, 591, 165,
1248 6, 7, 8, 67, 332, 79, 109, 279, 51, 32,
1249 119, 75, 76, 37, 617, 114, 90, 126, 462, 524,
1250 228, 266, 294, 231, 98, 628, 104, 136, 10, 11,
1251 139, 37, 196, 142, 143, 109, 208, 209, 210, 211,
1252 104, 7, 395, 97, 108, 23, 551, 253, 445, 446,
1253 124, 10, 11, 117, 7, 37, 222, 35, 383, 7,
1254 110, 389, 165, 137, 138, 390, 32, 10, 11, 241,
1255 236, 237, 355, 356, 409, 31, 401, 243, 37, 32,
1256 33, 20, 526, 33, 32, 7, 25, 196, 413, 39,
1257 46, 155, 7, 182, 37, 169, 243, 161, 124, 155,
1258 164, 7, 14, 353, 213, 549, 550, 343, 182, 354,
1259 32, 137, 138, 385, 386, 387, 124, 32, 609, 222,
1260 611, 3, 6, 7, 8, 37, 32, 372, 10, 137,
1261 138, 10, 317, 236, 237, 301, 489, 10, 11, 10,
1262 243, 215, 619, 25, 253, 470, 25, 7, 222, 355,
1263 356, 35, 62, 630, 25, 438, 3, 401, 40, 41,
1264 42, 43, 236, 237, 35, 229, 230, 644, 340, 413,
1265 342, 3, 32, 20, 6, 25, 20, 3, 25, 11,
1266 12, 25, 14, 7, 10, 7, 358, 359, 20, 10,
1267 22, 559, 464, 25, 26, 27, 43, 271, 272, 25,
1268 274, 365, 34, 439, 25, 530, 7, 39, 317, 373,
1269 32, 37, 3, 7, 40, 41, 42, 43, 7, 40,
1270 41, 42, 43, 55, 374, 31, 376, 10, 11, 10,
1271 396, 397, 438, 10, 11, 11, 12, 20, 32, 22,
1272 21, 3, 25, 32, 569, 6, 355, 356, 10, 111,
1273 26, 34, 28, 29, 30, 31, 365, 40, 41, 42,
1274 43, 533, 38, 25, 373, 437, 538, 3, 10, 11,
1275 7, 54, 32, 382, 10, 37, 59, 37, 40, 41,
1276 42, 43, 10, 115, 10, 117, 111, 119, 120, 25,
1277 97, 123, 124, 125, 126, 32, 655, 656, 130, 131,
1278 374, 37, 376, 34, 40, 41, 42, 43, 667, 34,
1279 669, 10, 386, 387, 6, 10, 11, 10, 10, 11,
1280 592, 20, 20, 106, 107, 516, 25, 25, 20, 438,
1281 113, 6, 646, 25, 606, 10, 400, 35, 402, 403,
1282 612, 655, 656, 407, 3, 20, 24, 6, 670, 671,
1283 25, 10, 11, 667, 32, 669, 670, 671, 36, 523,
1284 434, 20, 21, 22, 23, 442, 25, 431, 3, 6,
1285 10, 6, 27, 10, 11, 34, 35, 10, 442, 27,
1286 32, 40, 41, 42, 43, 37, 32, 20, 25, 478,
1287 575, 37, 25, 37, 558, 54, 55, 6, 462, 53,
1288 59, 10, 11, 32, 478, 32, 32, 40, 41, 42,
1289 43, 37, 32, 32, 523, 23, 24, 37, 37, 528,
1290 3, 54, 27, 6, 32, 32, 59, 35, 11, 12,
1291 37, 14, 580, 32, 6, 544, 35, 585, 7, 22,
1292 142, 143, 516, 26, 75, 76, 33, 106, 107, 558,
1293 20, 34, 236, 237, 113, 529, 39, 391, 392, 75,
1294 76, 20, 526, 25, 538, 36, 575, 34, 111, 111,
1295 34, 545, 27, 106, 107, 8, 110, 554, 32, 37,
1296 113, 590, 20, 20, 32, 549, 550, 32, 37, 3,
1297 554, 565, 6, 32, 10, 10, 10, 11, 10, 10,
1298 31, 14, 10, 7, 7, 34, 20, 37, 22, 36,
1299 619, 25, 37, 37, 36, 7, 37, 591, 27, 25,
1300 34, 630, 27, 7, 31, 619, 40, 41, 42, 43,
1301 27, 27, 606, 34, 643, 644, 630, 646, 27, 34,
1302 54, 650, 35, 31, 27, 59, 655, 656, 58, 643,
1303 644, 51, 37, 647, 31, 31, 650, 32, 667, 32,
1304 669, 670, 671, 3, 10, 37, 6, 37, 8, 37,
1305 10, 11, 37, 27, 26, 32, 34, 37, 7, 35,
1306 20, 21, 22, 49, 7, 25, 60, 21, 37, 10,
1307 7, 46, 106, 107, 34, 7, 47, 61, 34, 113,
1308 40, 41, 42, 43, 52, 45, 105, 37, 7, 7,
1309 48, 35, 7, 35, 54, 55, 10, 10, 33, 59,
1310 7, 35, 25, 63, 64, 65, 66, 67, 68, 69,
1311 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1312 80, 81, 82, 83, 84, 85, 8, 87, 88, 89,
1313 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1314 100, 101, 3, 103, 10, 10, 106, 107, 0, 0,
1315 86, 1, 372, 113, 124, 115, 4, 117, 118, 119,
1316 120, 4, 124, 123, 124, 125, 126, 127, 108, 129,
1317 130, 131, 3, 124, 104, 6, 222, 8, 217, 10,
1318 11, 11, 12, 237, 236, 460, 562, 590, 599, 20,
1319 21, 22, 22, 606, 25, 213, 26, 622, 28, 29,
1320 30, 31, 538, 34, 34, 272, 365, 355, 38, 40,
1321 41, 42, 43, 44, 225, 528, 299, 165, 294, 305,
1322 117, 243, -1, 54, 55, -1, -1, -1, 59, 243,
1323 -1, -1, -1, 64, 65, 66, 67, 68, 69, 70,
1324 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1325 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1326 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1327 101, -1, 103, -1, -1, 106, 107, -1, -1, -1,
1328 -1, -1, 113, -1, 115, -1, 117, 118, 119, 120,
1329 -1, -1, 123, 124, 125, 126, 127, -1, 129, 130,
1330 131, 3, -1, -1, 6, -1, 8, -1, 10, 11,
1331 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1332 22, -1, -1, 25, -1, -1, -1, -1, -1, -1,
1333 -1, -1, 34, -1, -1, -1, -1, -1, 40, 41,
1334 42, 43, -1, -1, -1, -1, -1, -1, -1, -1,
1335 -1, -1, 54, 55, -1, -1, -1, 59, -1, -1,
1336 -1, -1, 64, 65, 66, 67, 68, 69, 70, 71,
1337 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1338 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1339 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1340 -1, 103, -1, -1, 106, 107, -1, -1, -1, -1,
1341 -1, 113, -1, 115, -1, 117, 118, 119, 120, -1,
1342 -1, 123, 124, 125, 126, 127, -1, 129, 130, 131,
1343 3, -1, -1, 6, -1, 8, -1, 10, 11, -1,
1344 -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
1345 -1, -1, 25, -1, -1, -1, -1, -1, -1, -1,
1346 -1, 34, -1, -1, -1, -1, -1, 40, 41, 42,
1347 43, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1348 -1, 54, 55, -1, -1, -1, 59, -1, -1, -1,
1349 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1350 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1351 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1352 93, 94, 95, 96, 97, 98, 99, 100, 101, -1,
1353 103, -1, -1, 106, 107, -1, -1, -1, -1, -1,
1354 113, -1, 115, -1, 117, 118, 119, 120, -1, -1,
1355 123, 124, 125, 126, 127, -1, 129, 130, 131, 3,
1356 -1, -1, 6, -1, 8, -1, -1, 11, 12, -1,
1357 14, -1, -1, -1, -1, -1, 20, -1, 22, -1,
1358 -1, -1, 26, 27, -1, -1, -1, -1, -1, 115,
1359 34, 117, -1, 119, 120, 39, -1, 123, 124, 125,
1360 126, -1, -1, -1, 130, 131, -1, -1, -1, -1,
1361 -1, 55, -1, -1, -1, -1, -1, -1, -1, -1,
1362 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
1363 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1364 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1365 94, 95, 96, 97, 98, 99, 100, 101, 8, 103,
1366 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1367 20, 115, -1, 117, 118, 119, 120, -1, -1, 123,
1368 124, 125, 126, 127, -1, 129, 130, 131, -1, -1,
1369 -1, -1, -1, -1, -1, -1, -1, -1, 48, -1,
1370 50, -1, -1, -1, -1, -1, 56, -1, -1, -1,
1371 -1, -1, 62, -1, -1, -1, -1, 67, 68, 69,
1372 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1373 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1374 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1375 100, 101, -1, 103, -1, -1, -1, -1, 108, -1,
1376 8, -1, 112, -1, 114, 115, 116, 117, 118, 119,
1377 120, 121, 20, 123, 124, 125, 126, 127, -1, 129,
1378 130, 131, 132, 133, 134, 135, -1, -1, -1, -1,
1379 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1380 48, -1, 50, -1, -1, -1, -1, -1, 56, -1,
1381 -1, -1, -1, -1, 62, -1, -1, -1, -1, 67,
1382 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1383 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1384 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1385 98, 99, 100, 101, 8, 103, -1, -1, -1, -1,
1386 108, -1, -1, -1, 112, -1, 20, 115, 116, 117,
1387 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
1388 -1, 129, 130, 131, 132, 133, 134, 135, -1, -1,
1389 -1, -1, -1, -1, -1, -1, 50, -1, -1, -1,
1390 -1, -1, 56, -1, -1, -1, -1, -1, 62, -1,
1391 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1392 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1393 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1394 94, 95, 96, 97, 98, 99, 100, 101, -1, 103,
1395 -1, -1, -1, -1, -1, 8, -1, -1, 112, -1,
1396 -1, 115, 116, 117, 118, 119, 120, 20, -1, 123,
1397 124, 125, 126, 127, -1, 129, 130, 131, 132, 133,
1398 134, 135, 35, -1, -1, -1, -1, -1, -1, -1,
1399 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1400 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1401 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1402 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1403 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1404 93, 94, 95, 96, 97, 98, 99, 100, 101, 6,
1405 103, 8, -1, 10, 11, -1, -1, -1, -1, -1,
1406 -1, -1, 115, 20, 117, 118, 119, 120, 25, -1,
1407 123, 124, 125, 126, 127, -1, 129, 130, 131, -1,
1408 133, 134, 135, -1, -1, -1, -1, -1, -1, -1,
1409 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1410 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1411 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1412 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1413 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1414 97, 98, 99, 100, 101, 6, 103, 8, -1, 10,
1415 11, -1, -1, -1, -1, -1, -1, -1, 115, 20,
1416 117, 118, 119, 120, -1, -1, 123, 124, 125, 126,
1417 127, 128, 129, 130, 131, -1, -1, -1, -1, -1,
1418 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1420 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1421 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1422 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1423 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1424 101, 8, 103, -1, -1, -1, -1, -1, -1, -1,
1425 -1, -1, -1, 20, 115, -1, 117, 118, 119, 120,
1426 -1, -1, 123, 124, 125, 126, 127, 128, 129, 130,
1427 131, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1428 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1429 -1, -1, -1, -1, -1, -1, -1, 64, 65, -1,
1430 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1431 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1432 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1433 97, 98, 99, 100, 101, -1, 103, 8, -1, -1,
1434 -1, -1, -1, -1, -1, -1, -1, -1, 115, 20,
1435 117, 118, 119, 120, -1, -1, 123, 124, 125, 126,
1436 127, -1, 129, 130, 131, -1, 37, -1, -1, -1,
1437 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1438 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1439 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1440 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1441 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1442 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1443 101, -1, 103, 8, -1, -1, -1, -1, -1, -1,
1444 -1, -1, -1, -1, 115, 20, 117, 118, 119, 120,
1445 -1, -1, 123, 124, 125, 126, 127, 128, 129, 130,
1446 131, -1, 37, -1, -1, -1, -1, -1, -1, -1,
1447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1449 -1, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1450 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1451 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1452 95, 96, 97, 98, 99, 100, 101, -1, 103, 8,
1453 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1454 115, 20, 117, 118, 119, 120, -1, -1, 123, 124,
1455 125, 126, 127, 128, 129, 130, 131, -1, 37, -1,
1456 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1457 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1458 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1459 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1460 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1461 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1462 99, 100, 101, -1, 103, 8, -1, -1, -1, -1,
1463 -1, -1, -1, -1, -1, -1, 115, 20, 117, 118,
1464 119, 120, -1, -1, 123, 124, 125, 126, 127, 128,
1465 129, 130, 131, -1, 37, -1, -1, -1, -1, -1,
1466 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1467 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1468 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1469 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1470 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1471 93, 94, 95, 96, 97, 98, 99, 100, 101, 8,
1472 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1473 -1, 20, 115, -1, 117, 118, 119, 120, -1, -1,
1474 123, 124, 125, 126, 127, 128, 129, 130, 131, -1,
1475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1477 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1478 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1479 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1480 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1481 99, 100, 101, 8, 103, -1, -1, -1, -1, -1,
1482 -1, -1, -1, -1, -1, 20, 115, -1, 117, 118,
1483 119, 120, -1, -1, 123, 124, 125, 126, 127, 128,
1484 129, 130, 131, -1, -1, -1, -1, -1, -1, -1,
1485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1487 -1, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1488 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1489 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1490 95, 96, 97, 98, 99, 100, 101, 8, 103, -1,
1491 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1492 115, -1, 117, 118, 119, 120, -1, 122, 123, 124,
1493 125, 126, 127, -1, 129, 130, 131, -1, -1, -1,
1494 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1495 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1496 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1497 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1498 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1499 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1500 101, -1, 103, -1, -1, -1, -1, -1, 8, -1,
1501 -1, -1, -1, -1, 115, -1, 117, 118, 119, 120,
1502 20, -1, 123, 124, 125, 126, 127, 128, 129, 130,
1503 131, -1, -1, -1, -1, 35, -1, -1, -1, -1,
1504 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1506 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1507 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1508 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1509 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1510 100, 101, -1, 103, -1, -1, -1, -1, -1, 8,
1511 -1, -1, -1, -1, -1, 115, -1, 117, 118, 119,
1512 120, 20, -1, 123, 124, 125, 126, 127, -1, 129,
1513 130, 131, -1, -1, -1, -1, 35, -1, -1, -1,
1514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1516 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1517 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1518 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1519 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1520 99, 100, 101, 8, 103, -1, -1, -1, -1, -1,
1521 -1, -1, -1, -1, -1, 20, 115, -1, 117, 118,
1522 119, 120, -1, -1, 123, 124, 125, 126, 127, -1,
1523 129, 130, 131, -1, -1, -1, -1, -1, -1, -1,
1524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1526 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1527 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1528 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1529 95, 96, 97, 98, 99, 100, 101, 8, 103, -1,
1530 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1531 115, -1, 117, 118, 119, 120, -1, -1, 123, 124,
1532 125, 126, 127, -1, 129, 130, 131, -1, -1, -1,
1533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1534 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1535 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1536 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1537 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1538 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1539 101, -1, 103, -1, -1, -1, -1, -1, -1, -1,
1540 -1, -1, -1, -1, 115, -1, 117, 118, 119, 120,
1541 -1, -1, 123, 124, 125, 126, 127, -1, 129, 130,
1542 131, 3, -1, -1, 6, -1, -1, -1, 10, 11,
1543 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1544 22, -1, -1, 25, -1, -1, -1, -1, 3, -1,
1545 -1, 6, 34, -1, 36, 10, 11, -1, 40, 41,
1546 42, 43, -1, -1, -1, 20, 21, 22, -1, -1,
1547 25, -1, 54, 55, -1, -1, -1, 59, -1, 34,
1548 -1, 36, -1, -1, -1, 40, 41, 42, 43, 3,
1549 -1, -1, 6, -1, -1, -1, 10, 11, -1, 54,
1550 55, -1, -1, -1, 59, -1, 20, 21, 22, -1,
1551 -1, 25, -1, -1, -1, -1, -1, -1, -1, -1,
1552 34, -1, 36, -1, 106, 107, 40, 41, 42, 43,
1553 -1, 113, -1, -1, -1, -1, -1, -1, -1, -1,
1554 54, 55, -1, -1, -1, 59, 3, -1, -1, 6,
1555 -1, 106, 107, 10, 11, -1, -1, -1, 113, -1,
1556 -1, -1, -1, 20, 21, 22, -1, -1, 25, -1,
1557 -1, -1, -1, -1, -1, -1, -1, 34, -1, -1,
1558 -1, -1, -1, 40, 41, 42, 43, -1, -1, -1,
1559 -1, -1, 106, 107, -1, -1, -1, 54, 55, 113,
1560 -1, -1, 59, -1, -1, -1, -1, -1, -1, -1,
1561 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1562 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1563 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1564 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
1565 107, -1, -1, -1, -1, -1, 113
1567 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1568 #line 3 "/usr/share/misc/bison.simple"
1570 /* Skeleton output parser for bison,
1571 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1573 This program is free software; you can redistribute it and/or modify
1574 it under the terms of the GNU General Public License as published by
1575 the Free Software Foundation; either version 2, or (at your option)
1578 This program is distributed in the hope that it will be useful,
1579 but WITHOUT ANY WARRANTY; without even the implied warranty of
1580 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1581 GNU General Public License for more details.
1583 You should have received a copy of the GNU General Public License
1584 along with this program; if not, write to the Free Software
1585 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1587 /* As a special exception, when this file is copied by Bison into a
1588 Bison output file, you may use that output file without restriction.
1589 This special exception was added by the Free Software Foundation
1590 in version 1.24 of Bison. */
1594 #define alloca __builtin_alloca
1595 #else /* not GNU C. */
1596 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1598 #else /* not sparc */
1599 #if defined (MSDOS) && !defined (__TURBOC__)
1601 #else /* not MSDOS, or __TURBOC__ */
1605 #else /* not MSDOS, __TURBOC__, or _AIX */
1609 void *alloca (unsigned int);
1611 #else /* not __cplusplus */
1613 #endif /* not __cplusplus */
1615 #endif /* not _AIX */
1616 #endif /* not MSDOS, or __TURBOC__ */
1617 #endif /* not sparc. */
1618 #endif /* not GNU C. */
1619 #endif /* alloca not defined. */
1621 /* This is the parser code that is written into each bison parser
1622 when the %semantic_parser declaration is not specified in the grammar.
1623 It was written by Richard Stallman by simplifying the hairy parser
1624 used when %semantic_parser is specified. */
1626 /* Note: there must be only one dollar sign in this file.
1627 It is replaced by the list of actions, each action
1628 as one case of the switch. */
1630 #define yyerrok (yyerrstatus = 0)
1631 #define yyclearin (yychar = YYEMPTY)
1634 #define YYACCEPT return(0)
1635 #define YYABORT return(1)
1636 #define YYERROR goto yyerrlab1
1637 /* Like YYERROR except do call yyerror.
1638 This remains here temporarily to ease the
1639 transition to the new meaning of YYERROR, for GCC.
1640 Once GCC version 2 has supplanted version 1, this can go. */
1641 #define YYFAIL goto yyerrlab
1642 #define YYRECOVERING() (!!yyerrstatus)
1643 #define YYBACKUP(token, value) \
1645 if (yychar == YYEMPTY && yylen == 1) \
1646 { yychar = (token), yylval = (value); \
1647 yychar1 = YYTRANSLATE (yychar); \
1652 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1656 #define YYERRCODE 256
1659 #define YYLEX yylex()
1665 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1667 #define YYLEX yylex(&yylval, &yylloc)
1669 #else /* not YYLSP_NEEDED */
1671 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1673 #define YYLEX yylex(&yylval)
1675 #endif /* not YYLSP_NEEDED */
1678 /* If nonreentrant, generate the variables here */
1682 int yychar; /* the lookahead symbol */
1683 YYSTYPE yylval; /* the semantic value of the */
1684 /* lookahead symbol */
1687 YYLTYPE yylloc; /* location data for the lookahead */
1691 int yynerrs; /* number of parse errors so far */
1692 #endif /* not YYPURE */
1695 int yydebug; /* nonzero means print parse trace */
1696 /* Since this is uninitialized, it does not stop multiple parsers
1700 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1703 #define YYINITDEPTH 200
1706 /* YYMAXDEPTH is the maximum size the stacks can grow to
1707 (effective only if the built-in stack extension method is used). */
1714 #define YYMAXDEPTH 10000
1717 /* Prevent warning if -Wstrict-prototypes. */
1722 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1723 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1724 #else /* not GNU C or C++ */
1727 /* This is the most reliable way to avoid incompatibilities
1728 in available built-in functions on various systems. */
1730 __yy_memcpy (to, from, count)
1735 register char *f = from;
1736 register char *t = to;
1737 register int i = count;
1743 #else /* __cplusplus */
1745 /* This is the most reliable way to avoid incompatibilities
1746 in available built-in functions on various systems. */
1748 __yy_memcpy (char *to, char *from, int count)
1750 register char *f = from;
1751 register char *t = to;
1752 register int i = count;
1761 #line 196 "/usr/share/misc/bison.simple"
1763 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1764 into yyparse. The argument should have type void *.
1765 It should actually point to an object.
1766 Grammar actions can access the variable by casting it
1767 to the proper pointer type. */
1769 #ifdef YYPARSE_PARAM
1771 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1772 #define YYPARSE_PARAM_DECL
1773 #else /* not __cplusplus */
1774 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1775 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1776 #endif /* not __cplusplus */
1777 #else /* not YYPARSE_PARAM */
1778 #define YYPARSE_PARAM_ARG
1779 #define YYPARSE_PARAM_DECL
1780 #endif /* not YYPARSE_PARAM */
1783 yyparse(YYPARSE_PARAM_ARG)
1786 register int yystate;
1788 register short *yyssp;
1789 register YYSTYPE *yyvsp;
1790 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1791 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1793 short yyssa[YYINITDEPTH]; /* the state stack */
1794 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1796 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1797 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1800 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1801 YYLTYPE *yyls = yylsa;
1804 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1806 #define YYPOPSTACK (yyvsp--, yyssp--)
1809 int yystacksize = YYINITDEPTH;
1820 YYSTYPE yyval; /* the variable used to return */
1821 /* semantic values from the action */
1828 fprintf(stderr, "Starting parse\n");
1834 yychar = YYEMPTY; /* Cause a token to be read. */
1836 /* Initialize stack pointers.
1837 Waste one element of value and location stack
1838 so that they stay on the same level as the state stack.
1839 The wasted elements are never initialized. */
1847 /* Push a new state, which is found in yystate . */
1848 /* In all cases, when you get here, the value and location stacks
1849 have just been pushed. so pushing a state here evens the stacks. */
1854 if (yyssp >= yyss + yystacksize - 1)
1856 /* Give user a chance to reallocate the stack */
1857 /* Use copies of these so that the &'s don't force the real ones into memory. */
1858 YYSTYPE *yyvs1 = yyvs;
1859 short *yyss1 = yyss;
1861 YYLTYPE *yyls1 = yyls;
1864 /* Get the current used size of the three stacks, in elements. */
1865 int size = yyssp - yyss + 1;
1868 /* Each stack pointer address is followed by the size of
1869 the data in use in that stack, in bytes. */
1871 /* This used to be a conditional around just the two extra args,
1872 but that might be undefined if yyoverflow is a macro. */
1873 yyoverflow("parser stack overflow",
1874 &yyss1, size * sizeof (*yyssp),
1875 &yyvs1, size * sizeof (*yyvsp),
1876 &yyls1, size * sizeof (*yylsp),
1879 yyoverflow("parser stack overflow",
1880 &yyss1, size * sizeof (*yyssp),
1881 &yyvs1, size * sizeof (*yyvsp),
1885 yyss = yyss1; yyvs = yyvs1;
1889 #else /* no yyoverflow */
1890 /* Extend the stack our own way. */
1891 if (yystacksize >= YYMAXDEPTH)
1893 yyerror("parser stack overflow");
1897 if (yystacksize > YYMAXDEPTH)
1898 yystacksize = YYMAXDEPTH;
1899 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1900 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
1901 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1902 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
1904 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1905 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
1907 #endif /* no yyoverflow */
1909 yyssp = yyss + size - 1;
1910 yyvsp = yyvs + size - 1;
1912 yylsp = yyls + size - 1;
1917 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1920 if (yyssp >= yyss + yystacksize - 1)
1926 fprintf(stderr, "Entering state %d\n", yystate);
1932 /* Do appropriate processing given the current state. */
1933 /* Read a lookahead token if we need one and don't already have one. */
1936 /* First try to decide what to do without reference to lookahead token. */
1938 yyn = yypact[yystate];
1942 /* Not known => get a lookahead token if don't already have one. */
1944 /* yychar is either YYEMPTY or YYEOF
1945 or a valid token in external form. */
1947 if (yychar == YYEMPTY)
1951 fprintf(stderr, "Reading a token: ");
1956 /* Convert token to internal form (in yychar1) for indexing tables with */
1958 if (yychar <= 0) /* This means end of input. */
1961 yychar = YYEOF; /* Don't call YYLEX any more */
1965 fprintf(stderr, "Now at end of input.\n");
1970 yychar1 = YYTRANSLATE(yychar);
1975 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1976 /* Give the individual parser a way to print the precise meaning
1977 of a token, for further debugging info. */
1979 YYPRINT (stderr, yychar, yylval);
1981 fprintf (stderr, ")\n");
1987 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1992 /* yyn is what to do for this token type in this state.
1993 Negative => reduce, -yyn is rule number.
1994 Positive => shift, yyn is new state.
1995 New state is final state => don't bother to shift,
1996 just return success.
1997 0, or most negative number => error. */
2012 /* Shift the lookahead token. */
2016 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2019 /* Discard the token being shifted unless it is eof. */
2020 if (yychar != YYEOF)
2028 /* count tokens shifted since error; after three, turn off error status. */
2029 if (yyerrstatus) yyerrstatus--;
2034 /* Do the default action for the current state. */
2037 yyn = yydefact[yystate];
2041 /* Do a reduction. yyn is the number of a rule to reduce with. */
2045 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2052 fprintf (stderr, "Reducing via rule %d (line %d), ",
2055 /* Print the symbols being reduced, and their result. */
2056 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2057 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2058 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2066 #line 382 "llgrammar.y"
2067 { lhExternals (yyvsp[0].interfacelist); ;
2070 #line 383 "llgrammar.y"
2071 { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
2074 #line 386 "llgrammar.y"
2075 { yyval.interfacelist = interfaceNodeList_new (); ;
2078 #line 387 "llgrammar.y"
2079 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2082 #line 394 "llgrammar.y"
2083 { yyval.interfacelist = interfaceNodeList_new (); ;
2086 #line 395 "llgrammar.y"
2087 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2090 #line 396 "llgrammar.y"
2091 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2094 #line 399 "llgrammar.y"
2095 { yyval.interfacelist = interfaceNodeList_new (); ;
2098 #line 400 "llgrammar.y"
2099 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2102 #line 409 "llgrammar.y"
2103 { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2104 /* assume subspecs are already processed, symbol table info in external file */
2108 #line 415 "llgrammar.y"
2109 { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
2112 #line 419 "llgrammar.y"
2113 { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
2116 #line 421 "llgrammar.y"
2117 { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
2120 #line 423 "llgrammar.y"
2121 { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
2124 #line 425 "llgrammar.y"
2125 { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
2128 #line 427 "llgrammar.y"
2129 { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
2132 #line 429 "llgrammar.y"
2133 { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
2136 #line 433 "llgrammar.y"
2137 { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
2140 #line 436 "llgrammar.y"
2141 { yyval.paramlist = paramNodeList_new (); ;
2144 #line 437 "llgrammar.y"
2145 { yyval.paramlist = yyvsp[0].paramlist; ;
2148 #line 441 "llgrammar.y"
2149 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
2152 #line 443 "llgrammar.y"
2153 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
2156 #line 446 "llgrammar.y"
2157 { yyval.param = markYieldParamNode (yyvsp[0].param); ;
2160 #line 447 "llgrammar.y"
2161 { yyval.param = yyvsp[0].param; ;
2164 #line 450 "llgrammar.y"
2165 { symtable_export (g_symtab, FALSE); ;
2168 #line 451 "llgrammar.y"
2169 { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
2172 #line 455 "llgrammar.y"
2173 { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
2176 #line 457 "llgrammar.y"
2177 { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
2180 #line 459 "llgrammar.y"
2181 { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
2184 #line 461 "llgrammar.y"
2185 { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
2188 #line 465 "llgrammar.y"
2189 { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
2192 #line 469 "llgrammar.y"
2193 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
2196 #line 471 "llgrammar.y"
2197 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
2200 #line 473 "llgrammar.y"
2201 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
2204 #line 476 "llgrammar.y"
2205 { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
2208 #line 477 "llgrammar.y"
2209 { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
2212 #line 480 "llgrammar.y"
2213 { yyval.typequal = qual_createPrintfLike (); ;
2216 #line 481 "llgrammar.y"
2217 { yyval.typequal = qual_createScanfLike (); ;
2220 #line 482 "llgrammar.y"
2221 { yyval.typequal = qual_createMessageLike (); ;
2224 #line 485 "llgrammar.y"
2225 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2228 #line 487 "llgrammar.y"
2229 { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls,
2230 yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2231 /* type, declarator, glovbls, privateinits,
2232 lets, checks, requires, modifies, ensures, claims */
2233 symtable_exitScope (g_symtab);
2237 #line 493 "llgrammar.y"
2238 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2241 #line 497 "llgrammar.y"
2242 { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist,
2243 yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2244 /* type, declarator, glovbls, privateinits,
2245 lets, checks, requires, modifies, ensures, claims */
2246 symtable_exitScope (g_symtab);
2250 #line 507 "llgrammar.y"
2251 { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
2254 #line 509 "llgrammar.y"
2255 { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate);
2256 symtable_exitScope (g_symtab); ;
2259 #line 512 "llgrammar.y"
2260 { yyval.claim = (claimNode) 0; ;
2263 #line 515 "llgrammar.y"
2264 {g_inTypeDef = TRUE; ;
2267 #line 515 "llgrammar.y"
2268 {g_inTypeDef = FALSE; ;
2271 #line 516 "llgrammar.y"
2272 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
2275 #line 517 "llgrammar.y"
2276 {g_inTypeDef = TRUE; ;
2279 #line 518 "llgrammar.y"
2280 {g_inTypeDef = FALSE; ;
2283 #line 519 "llgrammar.y"
2284 { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2287 #line 520 "llgrammar.y"
2288 {g_inTypeDef = TRUE; ;
2291 #line 521 "llgrammar.y"
2292 {g_inTypeDef = FALSE; ;
2295 #line 522 "llgrammar.y"
2296 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2299 #line 523 "llgrammar.y"
2300 {g_inTypeDef = TRUE; ;
2303 #line 523 "llgrammar.y"
2304 {g_inTypeDef = FALSE; ;
2307 #line 524 "llgrammar.y"
2308 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
2311 #line 527 "llgrammar.y"
2312 { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
2315 #line 528 "llgrammar.y"
2316 { g_inTypeDef = FALSE; ;
2319 #line 529 "llgrammar.y"
2320 { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
2323 #line 531 "llgrammar.y"
2324 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
2327 #line 533 "llgrammar.y"
2328 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
2331 #line 549 "llgrammar.y"
2332 { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
2335 #line 551 "llgrammar.y"
2336 { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
2339 #line 554 "llgrammar.y"
2340 { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
2343 #line 556 "llgrammar.y"
2344 { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
2347 #line 557 "llgrammar.y"
2348 { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
2351 #line 560 "llgrammar.y"
2352 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2355 #line 561 "llgrammar.y"
2356 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2359 #line 569 "llgrammar.y"
2360 { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
2363 #line 571 "llgrammar.y"
2364 { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
2367 #line 575 "llgrammar.y"
2368 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
2371 #line 577 "llgrammar.y"
2372 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
2375 #line 579 "llgrammar.y"
2376 { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
2379 #line 581 "llgrammar.y"
2380 { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
2383 #line 584 "llgrammar.y"
2384 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2387 #line 585 "llgrammar.y"
2388 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2391 #line 589 "llgrammar.y"
2392 { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
2395 #line 591 "llgrammar.y"
2396 { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
2399 #line 592 "llgrammar.y"
2400 { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
2403 #line 596 "llgrammar.y"
2404 { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
2407 #line 597 "llgrammar.y"
2408 { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
2411 #line 601 "llgrammar.y"
2412 { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
2415 #line 602 "llgrammar.y"
2416 { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
2419 #line 605 "llgrammar.y"
2420 { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
2423 #line 606 "llgrammar.y"
2424 { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
2427 #line 607 "llgrammar.y"
2428 { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
2429 yyvsp[-1].name, yyvsp[0].signature); ;
2432 #line 611 "llgrammar.y"
2433 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
2436 #line 612 "llgrammar.y"
2437 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
2440 #line 620 "llgrammar.y"
2441 { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
2444 #line 622 "llgrammar.y"
2445 { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
2448 #line 625 "llgrammar.y"
2449 { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
2452 #line 626 "llgrammar.y"
2453 { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
2456 #line 630 "llgrammar.y"
2457 { yyval.globals = varDeclarationNodeList_new (); ;
2460 #line 632 "llgrammar.y"
2461 { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
2464 #line 635 "llgrammar.y"
2465 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
2468 #line 636 "llgrammar.y"
2469 { yyval.vardeclaration = makeInternalStateNode (); ;
2472 #line 637 "llgrammar.y"
2473 { yyval.vardeclaration = makeFileSystemNode (); ;
2476 #line 640 "llgrammar.y"
2477 { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
2480 #line 641 "llgrammar.y"
2481 { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
2484 #line 645 "llgrammar.y"
2485 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
2488 #line 648 "llgrammar.y"
2489 { yyval.letdecls = letDeclNodeList_new (); ;
2492 #line 649 "llgrammar.y"
2493 { yyval.letdecls = yyvsp[-1].letdecls; ;
2496 #line 652 "llgrammar.y"
2497 { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
2500 #line 653 "llgrammar.y"
2501 { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
2504 #line 656 "llgrammar.y"
2505 { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
2508 #line 657 "llgrammar.y"
2509 { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
2512 #line 662 "llgrammar.y"
2513 { yyval.lclpredicate = (lclPredicateNode)0; ;
2516 #line 663 "llgrammar.y"
2517 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2520 #line 666 "llgrammar.y"
2521 { yyval.lclpredicate = (lclPredicateNode)0; ;
2524 #line 667 "llgrammar.y"
2525 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2528 #line 670 "llgrammar.y"
2529 { yyval.modify = (modifyNode)0; ;
2532 #line 671 "llgrammar.y"
2533 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
2536 #line 672 "llgrammar.y"
2537 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
2540 #line 673 "llgrammar.y"
2541 { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
2544 #line 676 "llgrammar.y"
2545 { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
2548 #line 677 "llgrammar.y"
2549 { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
2552 #line 680 "llgrammar.y"
2553 { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
2556 #line 681 "llgrammar.y"
2557 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
2560 #line 682 "llgrammar.y"
2561 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
2564 #line 683 "llgrammar.y"
2565 { yyval.storeref = makeStoreRefNodeInternal (); ;
2568 #line 684 "llgrammar.y"
2569 { yyval.storeref = makeStoreRefNodeSystem (); ;
2572 #line 687 "llgrammar.y"
2573 { yyval.lclpredicate = (lclPredicateNode)0; ;
2576 #line 688 "llgrammar.y"
2577 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2580 #line 691 "llgrammar.y"
2581 { yyval.lclpredicate = (lclPredicateNode)0; ;
2584 #line 692 "llgrammar.y"
2585 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2588 #line 695 "llgrammar.y"
2589 { yyval.paramlist = paramNodeList_new (); ;
2592 #line 696 "llgrammar.y"
2593 { yyval.paramlist = yyvsp[0].paramlist; ;
2596 #line 700 "llgrammar.y"
2597 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
2600 #line 701 "llgrammar.y"
2601 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
2604 #line 704 "llgrammar.y"
2605 { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
2608 #line 705 "llgrammar.y"
2609 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
2612 #line 708 "llgrammar.y"
2613 { yyval.program = (programNode)0; ;
2616 #line 709 "llgrammar.y"
2617 { yyval.program = yyvsp[-1].program; ;
2620 #line 710 "llgrammar.y"
2621 { yyval.program = yyvsp[-2].program; ;
2624 #line 713 "llgrammar.y"
2625 { yyval.program = makeProgramNode (yyvsp[0].stmt); ;
2628 #line 716 "llgrammar.y"
2629 { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
2632 #line 718 "llgrammar.y"
2633 { programNodeList x = programNodeList_new ();
2634 programNodeList_addh (x, yyvsp[-1].program);
2635 yyval.program = makeProgramNodeAction (x, ACT_ITER);
2639 #line 723 "llgrammar.y"
2640 { programNodeList x = programNodeList_new ();
2641 programNodeList_addh (x, yyvsp[-2].program);
2642 programNodeList_addh (x, yyvsp[0].program);
2643 yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE);
2647 #line 729 "llgrammar.y"
2648 { programNodeList x = programNodeList_new ();
2649 programNodeList_addh (x, yyvsp[-2].program);
2650 programNodeList_addh (x, yyvsp[0].program);
2651 yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE);
2655 #line 737 "llgrammar.y"
2656 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2659 #line 739 "llgrammar.y"
2660 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
2663 #line 741 "llgrammar.y"
2664 { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
2667 #line 743 "llgrammar.y"
2668 { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2671 #line 746 "llgrammar.y"
2672 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
2675 #line 747 "llgrammar.y"
2676 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
2679 #line 751 "llgrammar.y"
2680 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
2683 #line 752 "llgrammar.y"
2684 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
2687 #line 753 "llgrammar.y"
2688 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
2691 #line 754 "llgrammar.y"
2692 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
2695 #line 755 "llgrammar.y"
2696 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
2699 #line 757 "llgrammar.y"
2700 { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
2703 #line 759 "llgrammar.y"
2704 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
2707 #line 762 "llgrammar.y"
2708 { yyval.abstbody = (abstBodyNode)0; ;
2711 #line 763 "llgrammar.y"
2712 { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
2715 #line 764 "llgrammar.y"
2716 { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
2719 #line 765 "llgrammar.y"
2720 { yyval.abstbody = (abstBodyNode)0; ;
2723 #line 768 "llgrammar.y"
2724 { yyval.fcns = fcnNodeList_new (); ;
2727 #line 769 "llgrammar.y"
2728 { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
2731 #line 772 "llgrammar.y"
2732 { yyval.lclpredicate = (lclPredicateNode)0; ;
2735 #line 776 "llgrammar.y"
2736 { g_inTypeDef = FALSE; ;
2739 #line 777 "llgrammar.y"
2740 { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
2741 checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
2742 yyval.lclpredicate = yyvsp[-1].lclpredicate;
2743 symtable_exitScope (g_symtab);
2748 #line 785 "llgrammar.y"
2749 { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
2752 #line 787 "llgrammar.y"
2753 { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
2756 #line 790 "llgrammar.y"
2757 { declareForwardType (yyvsp[0].declare); ;
2760 #line 791 "llgrammar.y"
2761 { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
2764 #line 794 "llgrammar.y"
2765 { yyval.abstbody = (abstBodyNode)0; ;
2768 #line 795 "llgrammar.y"
2769 { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2772 #line 798 "llgrammar.y"
2773 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
2776 #line 799 "llgrammar.y"
2777 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
2780 #line 800 "llgrammar.y"
2781 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
2784 #line 801 "llgrammar.y"
2785 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
2788 #line 802 "llgrammar.y"
2789 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
2792 #line 803 "llgrammar.y"
2793 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
2796 #line 804 "llgrammar.y"
2797 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
2800 #line 805 "llgrammar.y"
2801 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
2804 #line 806 "llgrammar.y"
2805 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
2808 #line 807 "llgrammar.y"
2809 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
2812 #line 815 "llgrammar.y"
2813 { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
2816 #line 816 "llgrammar.y"
2817 { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
2820 #line 822 "llgrammar.y"
2821 { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
2824 #line 824 "llgrammar.y"
2825 { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
2828 #line 829 "llgrammar.y"
2829 { yyval.typequal = qual_createOut (); ;
2832 #line 830 "llgrammar.y"
2833 { yyval.typequal = qual_createUnused (); ;
2836 #line 831 "llgrammar.y"
2837 { yyval.typequal = qual_createSef (); ;
2840 #line 832 "llgrammar.y"
2841 { yyval.typequal = qual_createOnly (); ;
2844 #line 833 "llgrammar.y"
2845 { yyval.typequal = qual_createOwned (); ;
2848 #line 834 "llgrammar.y"
2849 { yyval.typequal = qual_createDependent (); ;
2852 #line 835 "llgrammar.y"
2853 { yyval.typequal = qual_createKeep (); ;
2856 #line 836 "llgrammar.y"
2857 { yyval.typequal = qual_createKept (); ;
2860 #line 837 "llgrammar.y"
2861 { yyval.typequal = qual_createObserver (); ;
2864 #line 838 "llgrammar.y"
2865 { yyval.typequal = qual_createExits (); ;
2868 #line 839 "llgrammar.y"
2869 { yyval.typequal = qual_createMayExit (); ;
2872 #line 840 "llgrammar.y"
2873 { yyval.typequal = qual_createTrueExit (); ;
2876 #line 841 "llgrammar.y"
2877 { yyval.typequal = qual_createFalseExit (); ;
2880 #line 842 "llgrammar.y"
2881 { yyval.typequal = qual_createNeverExit (); ;
2884 #line 843 "llgrammar.y"
2885 { yyval.typequal = qual_createOnly (); ;
2888 #line 844 "llgrammar.y"
2889 { yyval.typequal = qual_createShared (); ;
2892 #line 845 "llgrammar.y"
2893 { yyval.typequal = qual_createUnique (); ;
2896 #line 846 "llgrammar.y"
2897 { yyval.typequal = qual_createChecked (); ;
2900 #line 847 "llgrammar.y"
2901 { yyval.typequal = qual_createUnchecked (); ;
2904 #line 848 "llgrammar.y"
2905 { yyval.typequal = qual_createCheckedStrict (); ;
2908 #line 849 "llgrammar.y"
2909 { yyval.typequal = qual_createTrueNull (); ;
2912 #line 850 "llgrammar.y"
2913 { yyval.typequal = qual_createFalseNull (); ;
2916 #line 851 "llgrammar.y"
2917 { yyval.typequal = qual_createRelNull (); ;
2920 #line 852 "llgrammar.y"
2921 { yyval.typequal = qual_createRelDef (); ;
2924 #line 853 "llgrammar.y"
2925 { yyval.typequal = qual_createRefCounted (); ;
2928 #line 854 "llgrammar.y"
2929 { yyval.typequal = qual_createRefs (); ;
2932 #line 855 "llgrammar.y"
2933 { yyval.typequal = qual_createNewRef (); ;
2936 #line 856 "llgrammar.y"
2937 { yyval.typequal = qual_createKillRef (); ;
2940 #line 857 "llgrammar.y"
2941 { yyval.typequal = qual_createNull (); ;
2944 #line 858 "llgrammar.y"
2945 { yyval.typequal = qual_createNotNull (); ;
2948 #line 859 "llgrammar.y"
2949 { yyval.typequal = qual_createReturned (); ;
2952 #line 860 "llgrammar.y"
2953 { yyval.typequal = qual_createExposed (); ;
2956 #line 861 "llgrammar.y"
2957 { yyval.typequal = qual_createPartial (); ;
2960 #line 862 "llgrammar.y"
2961 { yyval.typequal = qual_createUndef (); ;
2964 #line 863 "llgrammar.y"
2965 { yyval.typequal = qual_createKilled (); ;
2968 #line 867 "llgrammar.y"
2969 { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
2972 #line 869 "llgrammar.y"
2973 { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
2976 #line 871 "llgrammar.y"
2977 { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
2980 #line 873 "llgrammar.y"
2981 { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
2984 #line 875 "llgrammar.y"
2985 { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
2988 #line 885 "llgrammar.y"
2989 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
2990 yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
2993 #line 889 "llgrammar.y"
2994 { yyval.count = 1; ;
2997 #line 890 "llgrammar.y"
2998 { yyval.count = yyvsp[-1].count + 1; ;
3001 #line 894 "llgrammar.y"
3002 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
3005 #line 896 "llgrammar.y"
3006 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3009 #line 898 "llgrammar.y"
3010 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
3013 #line 900 "llgrammar.y"
3014 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3017 #line 902 "llgrammar.y"
3018 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
3021 #line 904 "llgrammar.y"
3022 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
3025 #line 907 "llgrammar.y"
3026 { yyval.ltok = ltoken_undefined; ;
3029 #line 911 "llgrammar.y"
3030 { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
3033 #line 912 "llgrammar.y"
3034 { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
3037 #line 917 "llgrammar.y"
3038 { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
3041 #line 921 "llgrammar.y"
3042 { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
3045 #line 923 "llgrammar.y"
3046 { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
3049 #line 926 "llgrammar.y"
3053 #line 927 "llgrammar.y"
3057 #line 931 "llgrammar.y"
3058 { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
3061 #line 933 "llgrammar.y"
3062 { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
3065 #line 936 "llgrammar.y"
3066 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3069 #line 937 "llgrammar.y"
3070 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3073 #line 947 "llgrammar.y"
3074 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3077 #line 948 "llgrammar.y"
3078 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3081 #line 951 "llgrammar.y"
3082 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3085 #line 952 "llgrammar.y"
3086 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3089 #line 953 "llgrammar.y"
3090 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3093 #line 954 "llgrammar.y"
3094 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3097 #line 955 "llgrammar.y"
3098 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3101 #line 956 "llgrammar.y"
3102 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3105 #line 959 "llgrammar.y"
3106 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3109 #line 960 "llgrammar.y"
3110 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3113 #line 961 "llgrammar.y"
3114 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3117 #line 962 "llgrammar.y"
3118 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3121 #line 963 "llgrammar.y"
3122 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3125 #line 964 "llgrammar.y"
3126 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3129 #line 973 "llgrammar.y"
3130 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3133 #line 974 "llgrammar.y"
3134 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3137 #line 975 "llgrammar.y"
3138 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3141 #line 976 "llgrammar.y"
3142 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3145 #line 977 "llgrammar.y"
3146 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3149 #line 983 "llgrammar.y"
3150 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3153 #line 984 "llgrammar.y"
3154 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3157 #line 985 "llgrammar.y"
3158 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3161 #line 995 "llgrammar.y"
3162 { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3165 #line 996 "llgrammar.y"
3166 { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3169 #line 997 "llgrammar.y"
3170 { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
3173 #line 1002 "llgrammar.y"
3174 { yyval.abstDecl = (abstDeclaratorNode)0; ;
3177 #line 1003 "llgrammar.y"
3178 { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
3181 #line 1006 "llgrammar.y"
3182 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3185 #line 1007 "llgrammar.y"
3186 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3189 #line 1008 "llgrammar.y"
3190 { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
3193 #line 1009 "llgrammar.y"
3194 { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
3197 #line 1010 "llgrammar.y"
3198 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3201 #line 1011 "llgrammar.y"
3202 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3205 #line 1012 "llgrammar.y"
3206 { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
3209 #line 1013 "llgrammar.y"
3210 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3213 #line 1016 "llgrammar.y"
3214 { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
3217 #line 1017 "llgrammar.y"
3218 { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
3221 #line 1021 "llgrammar.y"
3222 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
3225 #line 1023 "llgrammar.y"
3226 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3229 #line 1025 "llgrammar.y"
3230 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3233 #line 1027 "llgrammar.y"
3234 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3237 #line 1029 "llgrammar.y"
3238 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
3239 opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3242 #line 1032 "llgrammar.y"
3243 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3246 #line 1034 "llgrammar.y"
3247 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3250 #line 1036 "llgrammar.y"
3251 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3254 #line 1038 "llgrammar.y"
3255 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3258 #line 1040 "llgrammar.y"
3259 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3262 #line 1042 "llgrammar.y"
3263 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3266 #line 1050 "llgrammar.y"
3267 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3270 #line 1052 "llgrammar.y"
3271 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3274 #line 1054 "llgrammar.y"
3275 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
3276 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3279 #line 1057 "llgrammar.y"
3280 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
3281 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3284 #line 1060 "llgrammar.y"
3285 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
3286 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3289 #line 1063 "llgrammar.y"
3290 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
3291 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3294 #line 1080 "llgrammar.y"
3295 { yyval.count = 0; ;
3298 #line 1084 "llgrammar.y"
3299 { yyval.count = 1; ;
3302 #line 1085 "llgrammar.y"
3303 { yyval.count = yyvsp[-2].count + 1; ;
3306 #line 1092 "llgrammar.y"
3307 { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3310 #line 1095 "llgrammar.y"
3311 { yyval.ltokenList = ltokenList_new (); ;
3314 #line 1099 "llgrammar.y"
3315 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3318 #line 1100 "llgrammar.y"
3319 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3322 #line 1103 "llgrammar.y"
3323 { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
3326 #line 1106 "llgrammar.y"
3327 { yyval.term = checkSort (yyvsp[0].term); ;
3330 #line 1113 "llgrammar.y"
3331 { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
3334 #line 1115 "llgrammar.y"
3335 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
3338 #line 1121 "llgrammar.y"
3339 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
3340 symtable_exitScope (g_symtab);
3344 #line 1125 "llgrammar.y"
3345 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3348 #line 1127 "llgrammar.y"
3349 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3352 #line 1131 "llgrammar.y"
3353 { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
3356 #line 1132 "llgrammar.y"
3357 { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
3360 #line 1140 "llgrammar.y"
3361 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
3364 #line 1143 "llgrammar.y"
3365 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3368 #line 1144 "llgrammar.y"
3369 { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
3372 #line 1147 "llgrammar.y"
3373 { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
3376 #line 1148 "llgrammar.y"
3377 { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
3380 #line 1152 "llgrammar.y"
3381 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3384 #line 1153 "llgrammar.y"
3385 { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3388 #line 1154 "llgrammar.y"
3389 { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
3392 #line 1155 "llgrammar.y"
3393 { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
3396 #line 1156 "llgrammar.y"
3397 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3400 #line 1157 "llgrammar.y"
3401 { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3404 #line 1160 "llgrammar.y"
3405 { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3408 #line 1165 "llgrammar.y"
3409 { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok);
3410 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3413 #line 1168 "llgrammar.y"
3414 { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3417 #line 1170 "llgrammar.y"
3418 { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok);
3419 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok));
3423 #line 1174 "llgrammar.y"
3424 { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3427 #line 1177 "llgrammar.y"
3428 { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3431 #line 1178 "llgrammar.y"
3432 { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3435 #line 1181 "llgrammar.y"
3436 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3439 #line 1182 "llgrammar.y"
3440 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3443 #line 1186 "llgrammar.y"
3444 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
3447 #line 1188 "llgrammar.y"
3448 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3451 #line 1190 "llgrammar.y"
3452 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3455 #line 1193 "llgrammar.y"
3456 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
3459 #line 1195 "llgrammar.y"
3460 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3463 #line 1197 "llgrammar.y"
3464 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3467 #line 1199 "llgrammar.y"
3468 { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
3472 #line 1202 "llgrammar.y"
3473 { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
3476 #line 1204 "llgrammar.y"
3477 { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3480 #line 1207 "llgrammar.y"
3481 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3484 #line 1208 "llgrammar.y"
3485 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3488 #line 1218 "llgrammar.y"
3489 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3492 #line 1219 "llgrammar.y"
3493 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3496 #line 1220 "llgrammar.y"
3497 { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
3500 #line 1221 "llgrammar.y"
3501 { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
3504 #line 1223 "llgrammar.y"
3505 { termNodeList x = termNodeList_new ();
3506 termNodeList_addh (x, yyvsp[-1].term);
3507 yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok);
3511 #line 1228 "llgrammar.y"
3512 { termNodeList x = termNodeList_new ();
3513 termNodeList_addh (x, yyvsp[-3].term);
3514 termNodeList_addh (x, yyvsp[-1].term);
3515 yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok);
3519 #line 1233 "llgrammar.y"
3520 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
3523 #line 1243 "llgrammar.y"
3524 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
3527 #line 1244 "llgrammar.y"
3528 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
3531 #line 1245 "llgrammar.y"
3532 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
3535 #line 1246 "llgrammar.y"
3536 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
3539 #line 1250 "llgrammar.y"
3540 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
3543 #line 1252 "llgrammar.y"
3544 { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
3547 #line 1255 "llgrammar.y"
3548 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
3549 si->kind = SPE_QUANT;
3550 symtable_enterScope (g_symtab, si); ;
3553 #line 1259 "llgrammar.y"
3554 { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
3557 #line 1262 "llgrammar.y"
3558 { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
3561 #line 1263 "llgrammar.y"
3562 { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
3565 #line 1266 "llgrammar.y"
3566 { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
3569 #line 1267 "llgrammar.y"
3570 { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
3573 /* the action file gets copied in in place of this dollarsign */
3574 #line 498 "/usr/share/misc/bison.simple"
3585 short *ssp1 = yyss - 1;
3586 fprintf (stderr, "state stack now");
3587 while (ssp1 != yyssp)
3588 fprintf (stderr, " %d", *++ssp1);
3589 fprintf (stderr, "\n");
3599 yylsp->first_line = yylloc.first_line;
3600 yylsp->first_column = yylloc.first_column;
3601 yylsp->last_line = (yylsp-1)->last_line;
3602 yylsp->last_column = (yylsp-1)->last_column;
3607 yylsp->last_line = (yylsp+yylen-1)->last_line;
3608 yylsp->last_column = (yylsp+yylen-1)->last_column;
3612 /* Now "shift" the result of the reduction.
3613 Determine what state that goes to,
3614 based on the state we popped back to
3615 and the rule number reduced by. */
3619 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3620 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3621 yystate = yytable[yystate];
3623 yystate = yydefgoto[yyn - YYNTBASE];
3627 yyerrlab: /* here on detecting error */
3630 /* If not already recovering from an error, report this error. */
3634 #ifdef YYERROR_VERBOSE
3635 yyn = yypact[yystate];
3637 if (yyn > YYFLAG && yyn < YYLAST)
3644 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3645 for (x = (yyn < 0 ? -yyn : 0);
3646 x < (sizeof(yytname) / sizeof(char *)); x++)
3647 if (yycheck[x + yyn] == x)
3648 size += strlen(yytname[x]) + 15, count++;
3649 msg = (char *) malloc(size + 15);
3652 strcpy(msg, "parse error");
3657 for (x = (yyn < 0 ? -yyn : 0);
3658 x < (sizeof(yytname) / sizeof(char *)); x++)
3659 if (yycheck[x + yyn] == x)
3661 strcat(msg, count == 0 ? ", expecting `" : " or `");
3662 strcat(msg, yytname[x]);
3671 yyerror ("parse error; also virtual memory exceeded");
3674 #endif /* YYERROR_VERBOSE */
3675 yyerror("parse error");
3679 yyerrlab1: /* here on error raised explicitly by an action */
3681 if (yyerrstatus == 3)
3683 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3685 /* return failure if at end of input */
3686 if (yychar == YYEOF)
3691 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3697 /* Else will try to reuse lookahead token
3698 after shifting the error token. */
3700 yyerrstatus = 3; /* Each real token shifted decrements this */
3704 yyerrdefault: /* current state does not do anything special for the error token. */
3707 /* This is wrong; only states that explicitly want error tokens
3708 should shift them. */
3709 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3710 if (yyn) goto yydefault;
3713 yyerrpop: /* pop the current state because it cannot handle the error token */
3715 if (yyssp == yyss) YYABORT;
3725 short *ssp1 = yyss - 1;
3726 fprintf (stderr, "Error: state stack now");
3727 while (ssp1 != yyssp)
3728 fprintf (stderr, " %d", *++ssp1);
3729 fprintf (stderr, "\n");
3735 yyn = yypact[yystate];
3740 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3759 fprintf(stderr, "Shifting error token, ");
3770 #line 1282 "llgrammar.y"
3773 # include "bison.reset"
3776 ** yytext is set in lex scanner
3777 ** extern YYSTYPE yylval;
3778 ** yylval is defined by code generated by bison
3781 void ylerror (char *s)
3784 ** This resetting of the left context is very important when multiple
3785 ** files are to be parsed. We do not want failures to propagate.
3786 ** Lex/Yacc does not reset the flags when the parsing goes bad.
3791 lclfatalerror (yllval.ltok,
3792 message ("%s: Token code: %s, Token String: %s",
3793 cstring_fromChars (s),
3794 ltoken_unparseCodeName (yllval.ltok),
3795 ltoken_getRawString (yllval.ltok)));
3799 static void yyprint (FILE *f, int t, YYSTYPE value)
3801 fprintf (f, " type: %d (%s)", t,
3802 cstring_toCharsSafe (ltoken_getRawString (value.ltok)));
3812 ** Resets all flags in bison.head
3834 /*@=evalorderuncon@*/
3843 /*@=elseifcomplete@*/
3847 /*@=readonlytrans@*/
3850 /*@=systemunrecog@*/
3851 /*@=dependenttrans@*/
3852 /*@=unqualifiedtrans@*/