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_NULLTERMINATED 357
161 #define LLT_TEMPREF 358
162 #define LLT_NEWREF 359
163 #define LLT_PRIVATE 360
164 #define LLT_REQUIRES 361
165 #define LLT_RESULT 362
166 #define LLT_SIZEOF 363
168 #define LLT_TAGGEDUNION 365
171 #define LLT_TYPEDEF 368
172 #define LLT_UNCHANGED 369
175 #define LLT_CONST 372
176 #define LLT_DOUBLE 373
178 #define LLT_FLOAT 375
181 #define LLT_YIELD 378
183 #define LLT_SHORT 380
184 #define LLT_SIGNED 381
185 #define LLT_UNKNOWN 382
186 #define LLT_STRUCT 383
187 #define LLT_TELIPSIS 384
188 #define LLT_UNION 385
189 #define LLT_UNSIGNED 386
191 #define LLT_VOLATILE 388
192 #define LLT_PRINTFLIKE 389
193 #define LLT_SCANFLIKE 390
194 #define LLT_MESSAGELIKE 391
196 #line 36 "llgrammar.y"
199 # include "lclintMacros.nf"
200 # include "llbasic.h"
201 # include "lclscan.h"
202 # include "checking.h"
203 # include "lslparse.h"
205 # include "usymtab_interface.h"
208 static /*@unused@*/ void yyprint ();
212 void ylerror (char *) /*@modifies *g_msgstream@*/ ;
215 bool g_inTypeDef = FALSE;
217 /*@constant int YYDEBUG;@*/
221 # define YYPRINT(file, type, value) yyprint (file, type, value)
224 ** This is necessary, or else when the bison-generated code #include's malloc.h,
225 ** there will be a parse error.
227 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
228 ** in bison-generated files under Win32.
238 #line 78 "llgrammar.y"
241 ltoken ltok; /* a leaf is also an ltoken */
244 /*@only@*/ ltokenList ltokenList;
245 /*@only@*/ abstDeclaratorNode abstDecl;
246 /*@only@*/ declaratorNode declare;
247 /*@only@*/ declaratorNodeList declarelist;
248 /*@only@*/ typeExpr typeexpr;
249 /*@only@*/ arrayQualNode array;
250 /*@only@*/ quantifierNode quantifier;
251 /*@only@*/ quantifierNodeList quantifiers;
252 /*@only@*/ varNode var;
253 /*@only@*/ varNodeList vars;
254 /*@only@*/ storeRefNode storeref;
255 /*@only@*/ storeRefNodeList storereflist;
256 /*@only@*/ termNode term;
257 /*@only@*/ termNodeList termlist;
258 /*@only@*/ programNode program;
259 /*@only@*/ stmtNode stmt;
260 /*@only@*/ claimNode claim;
261 /*@only@*/ typeNode type;
262 /*@only@*/ iterNode iter;
263 /*@only@*/ fcnNode fcn;
264 /*@only@*/ fcnNodeList fcns;
265 /*@only@*/ letDeclNode letdecl;
266 /*@only@*/ letDeclNodeList letdecls;
267 /*@only@*/ lclPredicateNode lclpredicate;
268 /*@only@*/ modifyNode modify;
269 /*@only@*/ paramNode param;
270 /*@only@*/ paramNodeList paramlist;
271 /*@only@*/ declaratorInvNodeList declaratorinvs;
272 /*@only@*/ declaratorInvNode declaratorinv;
273 /*@only@*/ abstBodyNode abstbody;
274 /*@only@*/ abstractNode abstract;
275 /*@only@*/ exposedNode exposed;
276 /* taggedUnionNode taggedunion; */
277 /*@only@*/ globalList globals;
278 /*@only@*/ constDeclarationNode constdeclaration;
279 /*@only@*/ varDeclarationNode vardeclaration;
280 /*@only@*/ varDeclarationNodeList vardeclarationlist;
281 /*@only@*/ initDeclNodeList initdecls;
282 /*@only@*/ initDeclNode initdecl;
283 /*@only@*/ stDeclNodeList structdecls;
284 /*@only@*/ stDeclNode structdecl;
285 /*@only@*/ strOrUnionNode structorunion;
286 /*@only@*/ enumSpecNode enumspec;
287 /*@only@*/ lclTypeSpecNode lcltypespec;
288 /*@only@*/ typeNameNode typname;
289 /*@only@*/ opFormNode opform;
290 /*@only@*/ sigNode signature;
291 /*@only@*/ nameNode name;
292 /*@only@*/ typeNameNodeList namelist;
293 /*@only@*/ replaceNode replace;
294 /*@only@*/ replaceNodeList replacelist;
295 /*@only@*/ renamingNode renaming;
296 /*@only@*/ traitRefNode traitref;
297 /*@only@*/ traitRefNodeList traitreflist;
298 /*@only@*/ importNode import;
299 /*@only@*/ importNodeList importlist;
300 /*@only@*/ interfaceNode iface;
301 /*@only@*/ interfaceNodeList interfacelist;
302 /*@only@*/ CTypesNode ctypes;
319 #define YYFLAG -32768
322 #define YYTRANSLATE(x) ((unsigned)(x) <= 391 ? yytranslate[x] : 291)
324 static const short yytranslate[] = { 0,
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, 2, 2, 2, 2, 2,
350 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
351 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
352 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
353 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
354 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
355 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
356 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
357 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
358 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
359 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
360 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
361 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
362 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
363 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
368 static const short yyprhs[] = { 0,
369 0, 1, 5, 6, 9, 11, 13, 14, 17, 20,
370 21, 24, 26, 28, 30, 34, 38, 40, 42, 44,
371 46, 48, 50, 57, 58, 60, 62, 66, 69, 71,
372 72, 76, 78, 80, 82, 84, 89, 93, 98, 103,
373 105, 107, 109, 111, 113, 114, 128, 129, 144, 145,
374 159, 164, 165, 166, 173, 174, 175, 183, 184, 185,
375 193, 194, 195, 202, 203, 204, 211, 214, 217, 219,
376 223, 225, 229, 231, 233, 237, 239, 241, 245, 247,
377 252, 256, 263, 265, 269, 271, 273, 277, 279, 283,
378 285, 289, 293, 297, 302, 304, 306, 308, 310, 312,
379 316, 318, 322, 323, 326, 330, 333, 336, 337, 340,
380 345, 346, 350, 352, 356, 362, 366, 368, 369, 373,
381 374, 378, 379, 383, 387, 391, 393, 397, 399, 401,
382 404, 406, 408, 409, 413, 414, 418, 419, 421, 423,
383 425, 429, 431, 435, 436, 441, 447, 449, 453, 456,
384 460, 464, 469, 473, 479, 486, 488, 492, 494, 496,
385 499, 502, 506, 510, 514, 519, 521, 525, 530, 534,
386 535, 538, 539, 541, 542, 549, 551, 555, 556, 560,
387 561, 565, 567, 569, 571, 573, 575, 577, 579, 581,
388 583, 585, 587, 590, 592, 594, 596, 598, 600, 602,
389 604, 606, 608, 610, 612, 614, 616, 618, 620, 622,
390 624, 626, 628, 630, 632, 634, 636, 638, 640, 642,
391 644, 646, 648, 650, 652, 654, 656, 658, 660, 662,
392 664, 666, 668, 670, 672, 675, 681, 683, 686, 688,
393 691, 692, 699, 700, 707, 710, 713, 714, 716, 718,
394 721, 725, 727, 731, 732, 734, 741, 744, 746, 750,
395 752, 754, 756, 760, 763, 766, 770, 775, 777, 781,
396 784, 787, 791, 796, 798, 801, 804, 808, 813, 816,
397 819, 822, 825, 829, 831, 832, 834, 838, 841, 843,
398 845, 848, 852, 856, 861, 864, 868, 875, 877, 880,
399 883, 887, 891, 896, 901, 907, 911, 916, 921, 927,
400 930, 933, 937, 941, 943, 945, 947, 949, 951, 953,
401 955, 956, 958, 960, 964, 966, 968, 973, 974, 976,
402 978, 982, 984, 986, 993, 995, 999, 1001, 1006, 1010,
403 1014, 1016, 1019, 1022, 1024, 1026, 1028, 1031, 1033, 1036,
404 1039, 1043, 1045, 1047, 1050, 1053, 1057, 1059, 1062, 1066,
405 1068, 1074, 1078, 1083, 1086, 1090, 1093, 1095, 1099, 1103,
406 1105, 1110, 1112, 1115, 1119, 1123, 1127, 1132, 1136, 1138,
407 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1159, 1164, 1169,
408 1174, 1181, 1186, 1188, 1190, 1192, 1194, 1196, 1199, 1200,
409 1204, 1206, 1210, 1214, 1219, 1221, 1223, 1225, 1227, 1229,
413 static const short yyrhs[] = { -1,
414 139, 138, 141, 0, 0, 139, 140, 0, 144, 0,
415 145, 0, 0, 146, 142, 0, 151, 142, 0, 0,
416 142, 143, 0, 146, 0, 151, 0, 145, 0, 57,
417 175, 7, 0, 115, 179, 7, 0, 154, 0, 155,
418 0, 156, 0, 158, 0, 161, 0, 147, 0, 122,
419 285, 10, 148, 37, 7, 0, 0, 149, 0, 150,
420 0, 149, 32, 150, 0, 123, 244, 0, 244, 0,
421 0, 109, 152, 153, 0, 154, 0, 155, 0, 156,
422 0, 158, 0, 50, 227, 189, 7, 0, 227, 189,
423 7, 0, 117, 227, 189, 7, 0, 133, 227, 189,
424 7, 0, 163, 0, 172, 0, 134, 0, 135, 0,
425 136, 0, 0, 227, 240, 191, 159, 34, 193, 195,
426 199, 200, 201, 204, 205, 35, 0, 0, 157, 227,
427 240, 191, 160, 34, 193, 195, 199, 200, 201, 204,
428 205, 35, 0, 0, 48, 287, 10, 206, 37, 191,
429 162, 34, 195, 200, 209, 204, 35, 0, 48, 284,
430 287, 7, 0, 0, 0, 62, 164, 112, 20, 165,
431 214, 0, 0, 0, 62, 166, 97, 112, 20, 167,
432 214, 0, 0, 0, 97, 62, 168, 112, 20, 169,
433 214, 0, 0, 0, 56, 170, 112, 20, 171, 214,
434 0, 0, 0, 113, 227, 173, 219, 174, 7, 0,
435 230, 7, 0, 238, 7, 0, 176, 0, 175, 32,
436 176, 0, 178, 0, 3, 178, 3, 0, 43, 0,
437 178, 0, 177, 32, 178, 0, 283, 0, 180, 0,
438 179, 32, 180, 0, 289, 0, 289, 10, 182, 37,
439 0, 10, 181, 37, 0, 10, 181, 37, 10, 182,
440 37, 0, 289, 0, 181, 32, 289, 0, 184, 0,
441 183, 0, 183, 32, 184, 0, 245, 0, 183, 32,
442 245, 0, 185, 0, 184, 32, 185, 0, 245, 53,
443 223, 0, 245, 53, 186, 0, 245, 53, 186, 256,
444 0, 290, 0, 249, 0, 188, 0, 260, 0, 190,
445 0, 189, 32, 190, 0, 240, 0, 240, 33, 187,
446 0, 0, 191, 192, 0, 227, 189, 7, 0, 64,
447 7, 0, 65, 7, 0, 0, 193, 194, 0, 105,
448 227, 189, 7, 0, 0, 60, 196, 7, 0, 197,
449 0, 196, 32, 197, 0, 285, 31, 198, 46, 260,
450 0, 285, 46, 260, 0, 227, 0, 0, 49, 259,
451 7, 0, 0, 106, 259, 7, 0, 0, 61, 63,
452 7, 0, 61, 45, 7, 0, 61, 202, 7, 0,
453 203, 0, 202, 32, 203, 0, 260, 0, 228, 0,
454 66, 228, 0, 64, 0, 65, 0, 0, 52, 259,
455 7, 0, 0, 48, 259, 7, 0, 0, 207, 0,
456 208, 0, 129, 0, 208, 32, 129, 0, 244, 0,
457 208, 32, 244, 0, 0, 47, 34, 210, 35, 0,
458 47, 34, 210, 7, 35, 0, 211, 0, 10, 210,
459 37, 0, 210, 6, 0, 210, 8, 210, 0, 210,
460 7, 210, 0, 284, 10, 212, 37, 0, 284, 10,
461 37, 0, 285, 33, 284, 10, 37, 0, 285, 33,
462 284, 10, 212, 37, 0, 213, 0, 212, 32, 213,
463 0, 277, 0, 285, 0, 3, 213, 0, 213, 3,
464 0, 213, 3, 213, 0, 10, 213, 37, 0, 284,
465 10, 37, 0, 284, 10, 212, 37, 0, 7, 0,
466 34, 215, 35, 0, 34, 177, 35, 7, 0, 34,
467 35, 7, 0, 0, 215, 158, 0, 0, 217, 0,
468 0, 58, 218, 279, 10, 259, 37, 0, 220, 0,
469 219, 32, 220, 0, 0, 240, 221, 222, 0, 0,
470 34, 216, 35, 0, 132, 0, 116, 0, 118, 0,
471 120, 0, 121, 0, 124, 0, 125, 0, 126, 0,
472 131, 0, 127, 0, 223, 0, 224, 223, 0, 20,
473 0, 224, 0, 67, 0, 78, 0, 68, 0, 69,
474 0, 71, 0, 72, 0, 73, 0, 74, 0, 95,
475 0, 79, 0, 80, 0, 82, 0, 83, 0, 81,
476 0, 75, 0, 76, 0, 77, 0, 87, 0, 88,
477 0, 89, 0, 90, 0, 91, 0, 99, 0, 100,
478 0, 97, 0, 98, 0, 104, 0, 101, 0, 92,
479 0, 93, 0, 94, 0, 96, 0, 70, 0, 102,
480 0, 84, 0, 85, 0, 225, 0, 230, 0, 238,
481 0, 226, 227, 0, 8, 228, 31, 228, 8, 0,
482 227, 0, 227, 229, 0, 6, 0, 229, 6, 0,
483 0, 128, 233, 231, 34, 234, 35, 0, 0, 130,
484 233, 232, 34, 234, 35, 0, 128, 286, 0, 130,
485 286, 0, 0, 286, 0, 235, 0, 234, 235, 0,
486 227, 236, 7, 0, 240, 0, 236, 32, 240, 0,
487 0, 32, 0, 119, 233, 34, 239, 237, 35, 0,
488 119, 286, 0, 25, 0, 239, 32, 25, 0, 242,
489 0, 241, 0, 285, 0, 10, 241, 37, 0, 6,
490 241, 0, 241, 248, 0, 241, 10, 37, 0, 241,
491 10, 207, 37, 0, 20, 0, 10, 242, 37, 0,
492 6, 242, 0, 242, 248, 0, 242, 10, 37, 0,
493 242, 10, 207, 37, 0, 20, 0, 6, 243, 0,
494 243, 248, 0, 243, 10, 37, 0, 243, 10, 207,
495 37, 0, 227, 243, 0, 227, 241, 0, 227, 246,
496 0, 227, 246, 0, 66, 227, 246, 0, 249, 0,
497 0, 247, 0, 10, 247, 37, 0, 6, 247, 0,
498 6, 0, 248, 0, 247, 248, 0, 247, 10, 37,
499 0, 10, 207, 37, 0, 247, 10, 207, 37, 0,
500 11, 36, 0, 11, 188, 36, 0, 55, 27, 111,
501 27, 51, 27, 0, 252, 0, 27, 252, 0, 252,
502 27, 0, 27, 252, 27, 0, 250, 253, 251, 0,
503 27, 250, 253, 251, 0, 250, 253, 251, 27, 0,
504 27, 250, 253, 251, 27, 0, 11, 253, 36, 0,
505 11, 253, 36, 27, 0, 27, 11, 253, 36, 0,
506 27, 11, 253, 36, 27, 0, 12, 283, 0, 26,
507 283, 0, 27, 12, 283, 0, 27, 26, 283, 0,
508 22, 0, 34, 0, 23, 0, 35, 0, 264, 0,
509 14, 0, 39, 0, 0, 254, 0, 27, 0, 254,
510 255, 27, 0, 32, 0, 24, 0, 31, 257, 26,
511 288, 0, 0, 258, 0, 288, 0, 258, 32, 288,
512 0, 260, 0, 261, 0, 55, 261, 111, 261, 51,
513 261, 0, 262, 0, 261, 14, 261, 0, 263, 0,
514 278, 10, 259, 37, 0, 263, 39, 263, 0, 263,
515 33, 263, 0, 265, 0, 268, 266, 0, 268, 267,
516 0, 3, 0, 6, 0, 268, 0, 264, 265, 0,
517 264, 0, 266, 264, 0, 264, 268, 0, 267, 264,
518 268, 0, 273, 0, 269, 0, 269, 273, 0, 273,
519 269, 0, 273, 269, 273, 0, 270, 0, 270, 273,
520 0, 271, 31, 288, 0, 271, 0, 11, 272, 36,
521 31, 288, 0, 11, 272, 36, 0, 11, 36, 31,
522 288, 0, 11, 36, 0, 250, 272, 251, 0, 250,
523 251, 0, 260, 0, 272, 255, 260, 0, 10, 261,
524 37, 0, 285, 0, 290, 10, 274, 37, 0, 276,
525 0, 273, 275, 0, 273, 12, 283, 0, 273, 26,
526 283, 0, 273, 11, 36, 0, 273, 11, 274, 36,
527 0, 273, 31, 288, 0, 261, 0, 274, 32, 261,
528 0, 28, 0, 29, 0, 30, 0, 38, 0, 277,
529 0, 107, 0, 54, 10, 274, 37, 0, 114, 10,
530 44, 37, 0, 114, 10, 202, 37, 0, 108, 10,
531 260, 37, 0, 59, 10, 260, 32, 260, 37, 0,
532 108, 10, 227, 37, 0, 42, 0, 43, 0, 40,
533 0, 41, 0, 279, 0, 278, 279, 0, 0, 21,
534 280, 281, 0, 282, 0, 281, 32, 282, 0, 285,
535 31, 198, 0, 285, 31, 66, 198, 0, 25, 0,
536 20, 0, 25, 0, 25, 0, 283, 0, 283, 0,
537 283, 0, 283, 0, 283, 0
543 static const short yyrline[] = { 0,
544 383, 384, 387, 388, 391, 392, 395, 396, 397, 400,
545 401, 404, 405, 406, 409, 415, 419, 421, 423, 425,
546 427, 429, 433, 437, 438, 441, 443, 447, 448, 451,
547 452, 455, 457, 459, 461, 465, 469, 471, 473, 477,
548 478, 481, 482, 483, 486, 487, 494, 496, 507, 509,
549 512, 516, 516, 517, 518, 518, 520, 521, 522, 523,
550 524, 524, 525, 528, 529, 530, 531, 533, 549, 551,
551 555, 556, 558, 561, 562, 565, 569, 571, 575, 577,
552 579, 581, 585, 586, 589, 591, 593, 596, 598, 601,
553 603, 606, 607, 608, 612, 613, 615, 617, 620, 622,
554 626, 627, 630, 632, 636, 637, 638, 641, 642, 645,
555 649, 650, 653, 654, 657, 658, 660, 663, 664, 667,
556 668, 671, 672, 673, 674, 677, 678, 681, 682, 683,
557 684, 685, 688, 689, 692, 693, 696, 697, 700, 701,
558 702, 705, 706, 709, 710, 711, 714, 715, 718, 723,
559 729, 737, 739, 741, 743, 747, 748, 751, 752, 753,
560 754, 755, 756, 757, 759, 763, 764, 765, 766, 769,
561 770, 773, 774, 777, 777, 786, 787, 791, 792, 795,
562 796, 799, 800, 801, 802, 803, 804, 805, 806, 807,
563 808, 816, 817, 822, 824, 830, 831, 832, 833, 834,
564 835, 836, 837, 838, 839, 840, 841, 842, 843, 844,
565 845, 846, 847, 848, 849, 850, 851, 852, 853, 854,
566 855, 856, 857, 858, 859, 860, 861, 862, 863, 864,
567 865, 868, 870, 872, 874, 876, 885, 886, 891, 892,
568 895, 897, 899, 901, 903, 905, 909, 910, 913, 914,
569 919, 922, 924, 928, 929, 932, 934, 938, 939, 949,
570 950, 953, 954, 955, 956, 957, 958, 961, 962, 963,
571 964, 965, 966, 975, 976, 977, 978, 979, 985, 986,
572 987, 997, 998, 999, 1004, 1005, 1008, 1009, 1010, 1011,
573 1012, 1013, 1014, 1015, 1018, 1019, 1022, 1024, 1026, 1028,
574 1030, 1033, 1035, 1037, 1039, 1041, 1043, 1051, 1053, 1055,
575 1058, 1061, 1064, 1069, 1070, 1073, 1074, 1077, 1078, 1079,
576 1082, 1083, 1086, 1087, 1090, 1091, 1094, 1097, 1098, 1101,
577 1102, 1105, 1108, 1114, 1116, 1117, 1120, 1121, 1126, 1128,
578 1132, 1133, 1134, 1137, 1138, 1141, 1142, 1145, 1146, 1149,
579 1150, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1162, 1163,
580 1166, 1169, 1171, 1175, 1179, 1180, 1183, 1184, 1187, 1189,
581 1191, 1193, 1194, 1196, 1198, 1200, 1203, 1205, 1209, 1210,
582 1213, 1214, 1215, 1216, 1219, 1220, 1221, 1222, 1223, 1224,
583 1229, 1235, 1245, 1246, 1247, 1248, 1251, 1253, 1257, 1261,
584 1264, 1265, 1268, 1269, 1272, 1273, 1276, 1277, 1278, 1279,
590 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
592 static const char * const yytname[] = { "$","error","$undefined.","simpleOp",
593 "PREFIX_OP","POSTFIX_OP","LLT_MULOP","LLT_SEMI","LLT_VERTICALBAR","ITERATION_OP",
594 "LLT_LPAR","LLT_LBRACKET","selectSym","LLT_IF_THEN_ELSE","logicalOp","eqSepSym",
595 "equationSym","commentSym","LLT_WHITESPACE","LLT_EOL","LLT_TYPEDEF_NAME","quantifierSym",
596 "openSym","closeSym","sepSym","simpleId","mapSym","markerSym","preSym","postSym",
597 "anySym","LLT_COLON","LLT_COMMA","LLT_EQUALS","LLT_LBRACE","LLT_RBRACE","LLT_RBRACKET",
598 "LLT_RPAR","LLT_QUOTE","eqOp","LLT_CCHAR","LLT_CFLOAT","LLT_CINTEGER","LLT_LCSTRING",
599 "LLT_ALL","LLT_ANYTHING","LLT_BE","LLT_BODY","LLT_CLAIMS","LLT_CHECKS","LLT_CONSTANT",
600 "LLT_ELSE","LLT_ENSURES","LLT_FOR","LLT_FRESH","LLT_IF","LLT_IMMUTABLE","LLT_IMPORTS",
601 "LLT_CONSTRAINT","LLT_ISSUB","LLT_LET","LLT_MODIFIES","LLT_MUTABLE","LLT_NOTHING",
602 "LLT_INTERNAL","LLT_FILESYS","LLT_OBJ","LLT_OUT","LLT_SEF","LLT_ONLY","LLT_PARTIAL",
603 "LLT_OWNED","LLT_DEPENDENT","LLT_KEEP","LLT_KEPT","LLT_TEMP","LLT_SHARED","LLT_UNIQUE",
604 "LLT_UNUSED","LLT_EXITS","LLT_MAYEXIT","LLT_NEVEREXIT","LLT_TRUEEXIT","LLT_FALSEEXIT",
605 "LLT_UNDEF","LLT_KILLED","LLT_CHECKMOD","LLT_CHECKED","LLT_UNCHECKED","LLT_CHECKEDSTRICT",
606 "LLT_TRUENULL","LLT_FALSENULL","LLT_LNULL","LLT_LNOTNULL","LLT_RETURNED","LLT_OBSERVER",
607 "LLT_EXPOSED","LLT_REFCOUNTED","LLT_REFS","LLT_RELNULL","LLT_RELDEF","LLT_KILLREF",
608 "LLT_NULLTERMINATED","LLT_TEMPREF","LLT_NEWREF","LLT_PRIVATE","LLT_REQUIRES",
609 "LLT_RESULT","LLT_SIZEOF","LLT_SPEC","LLT_TAGGEDUNION","LLT_THEN","LLT_TYPE",
610 "LLT_TYPEDEF","LLT_UNCHANGED","LLT_USES","LLT_CHAR","LLT_CONST","LLT_DOUBLE",
611 "LLT_ENUM","LLT_FLOAT","LLT_INT","LLT_ITER","LLT_YIELD","LLT_LONG","LLT_SHORT",
612 "LLT_SIGNED","LLT_UNKNOWN","LLT_STRUCT","LLT_TELIPSIS","LLT_UNION","LLT_UNSIGNED",
613 "LLT_VOID","LLT_VOLATILE","LLT_PRINTFLIKE","LLT_SCANFLIKE","LLT_MESSAGELIKE",
614 "interface","@1","externals","external","optDeclarations","declarations","declaration",
615 "imports","uses","export","iter","iterParamList","realIterParamList","iterParam",
616 "private","@2","private2","constDeclaration","varDeclaration","type","special",
617 "fcn","@3","@4","claim","@5","abstract","@6","@7","@8","@9","@10","@11","@12",
618 "@13","exposed","@14","@15","importNameList","importName","interfaceNameList",
619 "interfaceName","traitRefNodeList","traitRef","traitIdList","renaming","nameList",
620 "replaceNodeList","replace","name","initializer","constLclExpr","initDecls",
621 "initDecl","globals","globalDecl","privateInits","privateInit","optLetDecl",
622 "beDeclList","beDecl","sortSpec","optChecks","optRequire","optModify","storeRefList",
623 "storeRef","optEnsure","optClaim","optParamList","realParamList","paramList",
624 "optBody","callExpr","stmt","valueList","value","abstBody","fcns","optTypeInv",
625 "typeInv","@16","declaratorInvs","declaratorInv","@17","optExposedBody","CType",
626 "CTypes","typeSpecifier","specialQualifier","lclTypeSpec","lclType","pointers",
627 "structOrUnionSpec","@18","@19","optTagId","structDecls","structDecl","declaratorList",
628 "optCOMMA","enumSpec","enumeratorList","declarator","notype_decl","after_type_decl",
629 "parameter_decl","param","typeName","optAbstDeclarator","abstDeclarator","arrayQual",
630 "opForm","open","close","anyOp","middle","placeList","separator","signature",
631 "domain","sortList","lclPredicate","term","term0","equalityTerm","simpleOpTerm",
632 "simpleOp2","prefixOpTerm","postfixOps","infixOpPart","secondary","bracketed",
633 "sqBracketed","matched","args","primary","termList","stateFcn","lclPrimary",
634 "cLiteral","quantifiers","quantifier","@20","quantifiedList","quantified","simpleIdOrTypedefName",
635 "fcnId","varId","tagId","claimId","sortId","traitId","opId", NULL
639 static const short yyr1[] = { 0,
640 138, 137, 139, 139, 140, 140, 141, 141, 141, 142,
641 142, 143, 143, 143, 144, 145, 146, 146, 146, 146,
642 146, 146, 147, 148, 148, 149, 149, 150, 150, 152,
643 151, 153, 153, 153, 153, 154, 155, 155, 155, 156,
644 156, 157, 157, 157, 159, 158, 160, 158, 162, 161,
645 161, 164, 165, 163, 166, 167, 163, 168, 169, 163,
646 170, 171, 163, 173, 174, 172, 172, 172, 175, 175,
647 176, 176, 176, 177, 177, 178, 179, 179, 180, 180,
648 180, 180, 181, 181, 182, 182, 182, 183, 183, 184,
649 184, 185, 185, 185, 186, 186, 187, 188, 189, 189,
650 190, 190, 191, 191, 192, 192, 192, 193, 193, 194,
651 195, 195, 196, 196, 197, 197, 198, 199, 199, 200,
652 200, 201, 201, 201, 201, 202, 202, 203, 203, 203,
653 203, 203, 204, 204, 205, 205, 206, 206, 207, 207,
654 207, 208, 208, 209, 209, 209, 210, 210, 210, 210,
655 210, 211, 211, 211, 211, 212, 212, 213, 213, 213,
656 213, 213, 213, 213, 213, 214, 214, 214, 214, 215,
657 215, 216, 216, 218, 217, 219, 219, 221, 220, 222,
658 222, 223, 223, 223, 223, 223, 223, 223, 223, 223,
659 223, 224, 224, 225, 225, 226, 226, 226, 226, 226,
660 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
661 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
662 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
663 226, 227, 227, 227, 227, 227, 228, 228, 229, 229,
664 231, 230, 232, 230, 230, 230, 233, 233, 234, 234,
665 235, 236, 236, 237, 237, 238, 238, 239, 239, 240,
666 240, 241, 241, 241, 241, 241, 241, 242, 242, 242,
667 242, 242, 242, 243, 243, 243, 243, 243, 244, 244,
668 244, 245, 245, 245, 246, 246, 247, 247, 247, 247,
669 247, 247, 247, 247, 248, 248, 249, 249, 249, 249,
670 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
671 249, 249, 249, 250, 250, 251, 251, 252, 252, 252,
672 253, 253, 254, 254, 255, 255, 256, 257, 257, 258,
673 258, 259, 260, 261, 261, 261, 262, 262, 262, 262,
674 263, 263, 263, 264, 264, 265, 265, 266, 266, 267,
675 267, 268, 268, 268, 268, 268, 268, 268, 269, 269,
676 270, 270, 270, 270, 271, 271, 272, 272, 273, 273,
677 273, 273, 273, 273, 273, 273, 273, 273, 274, 274,
678 275, 275, 275, 275, 276, 276, 276, 276, 276, 276,
679 276, 276, 277, 277, 277, 277, 278, 278, 280, 279,
680 281, 281, 282, 282, 283, 283, 284, 285, 286, 287,
684 static const short yyr2[] = { 0,
685 0, 3, 0, 2, 1, 1, 0, 2, 2, 0,
686 2, 1, 1, 1, 3, 3, 1, 1, 1, 1,
687 1, 1, 6, 0, 1, 1, 3, 2, 1, 0,
688 3, 1, 1, 1, 1, 4, 3, 4, 4, 1,
689 1, 1, 1, 1, 0, 13, 0, 14, 0, 13,
690 4, 0, 0, 6, 0, 0, 7, 0, 0, 7,
691 0, 0, 6, 0, 0, 6, 2, 2, 1, 3,
692 1, 3, 1, 1, 3, 1, 1, 3, 1, 4,
693 3, 6, 1, 3, 1, 1, 3, 1, 3, 1,
694 3, 3, 3, 4, 1, 1, 1, 1, 1, 3,
695 1, 3, 0, 2, 3, 2, 2, 0, 2, 4,
696 0, 3, 1, 3, 5, 3, 1, 0, 3, 0,
697 3, 0, 3, 3, 3, 1, 3, 1, 1, 2,
698 1, 1, 0, 3, 0, 3, 0, 1, 1, 1,
699 3, 1, 3, 0, 4, 5, 1, 3, 2, 3,
700 3, 4, 3, 5, 6, 1, 3, 1, 1, 2,
701 2, 3, 3, 3, 4, 1, 3, 4, 3, 0,
702 2, 0, 1, 0, 6, 1, 3, 0, 3, 0,
703 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
704 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
705 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
706 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
707 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
708 1, 1, 1, 1, 2, 5, 1, 2, 1, 2,
709 0, 6, 0, 6, 2, 2, 0, 1, 1, 2,
710 3, 1, 3, 0, 1, 6, 2, 1, 3, 1,
711 1, 1, 3, 2, 2, 3, 4, 1, 3, 2,
712 2, 3, 4, 1, 2, 2, 3, 4, 2, 2,
713 2, 2, 3, 1, 0, 1, 3, 2, 1, 1,
714 2, 3, 3, 4, 2, 3, 6, 1, 2, 2,
715 3, 3, 4, 4, 5, 3, 4, 4, 5, 2,
716 2, 3, 3, 1, 1, 1, 1, 1, 1, 1,
717 0, 1, 1, 3, 1, 1, 4, 0, 1, 1,
718 3, 1, 1, 6, 1, 3, 1, 4, 3, 3,
719 1, 2, 2, 1, 1, 1, 2, 1, 2, 2,
720 3, 1, 1, 2, 2, 3, 1, 2, 3, 1,
721 5, 3, 4, 2, 3, 2, 1, 3, 3, 1,
722 4, 1, 2, 3, 3, 3, 4, 3, 1, 3,
723 1, 1, 1, 1, 1, 1, 4, 4, 4, 4,
724 6, 4, 1, 1, 1, 1, 1, 2, 0, 3,
725 1, 3, 3, 4, 1, 1, 1, 1, 1, 1,
729 static const short yydefact[] = { 3,
730 1, 0, 0, 7, 4, 5, 6, 0, 406, 405,
731 73, 0, 69, 71, 76, 0, 0, 77, 412, 79,
732 0, 194, 0, 0, 61, 52, 196, 198, 199, 228,
733 200, 201, 202, 203, 210, 211, 212, 197, 205, 206,
734 209, 207, 208, 230, 231, 213, 214, 215, 216, 217,
735 224, 225, 226, 204, 227, 220, 221, 218, 219, 223,
736 229, 222, 30, 0, 183, 0, 184, 247, 185, 186,
737 0, 187, 188, 189, 191, 247, 247, 190, 182, 0,
738 42, 43, 44, 2, 10, 22, 10, 17, 18, 19,
739 0, 20, 21, 40, 41, 192, 195, 232, 0, 0,
740 233, 234, 0, 15, 0, 0, 83, 16, 0, 0,
741 220, 237, 0, 233, 234, 407, 410, 0, 0, 0,
742 0, 0, 0, 58, 0, 64, 0, 0, 409, 257,
743 408, 0, 241, 245, 243, 246, 0, 8, 9, 0,
744 193, 235, 0, 0, 268, 0, 99, 103, 261, 260,
745 262, 67, 68, 72, 70, 0, 81, 78, 344, 345,
746 321, 0, 319, 314, 0, 0, 315, 320, 0, 0,
747 0, 86, 85, 90, 285, 88, 284, 321, 298, 318,
748 239, 238, 0, 0, 137, 0, 101, 0, 0, 0,
749 0, 31, 32, 33, 34, 35, 0, 0, 0, 24,
750 0, 0, 0, 11, 14, 12, 13, 103, 264, 270,
751 0, 0, 37, 0, 0, 45, 0, 0, 265, 0,
752 271, 84, 0, 323, 0, 322, 310, 311, 321, 0,
753 0, 321, 299, 0, 285, 80, 0, 0, 289, 0,
754 282, 286, 290, 0, 0, 300, 240, 0, 51, 140,
755 0, 138, 139, 285, 142, 36, 62, 53, 0, 0,
756 65, 176, 178, 38, 258, 254, 0, 0, 25, 26,
757 29, 0, 0, 39, 47, 263, 269, 100, 0, 0,
758 399, 408, 395, 396, 393, 394, 0, 0, 0, 386,
759 0, 0, 102, 97, 0, 98, 333, 335, 337, 0,
760 341, 346, 353, 357, 360, 352, 372, 385, 0, 397,
761 413, 370, 0, 0, 0, 0, 104, 0, 266, 0,
762 295, 0, 272, 0, 0, 306, 326, 325, 0, 0,
763 312, 313, 0, 301, 0, 283, 87, 89, 91, 0,
764 288, 0, 0, 0, 291, 93, 92, 96, 95, 316,
765 317, 302, 236, 103, 0, 289, 0, 274, 280, 279,
766 281, 0, 0, 56, 59, 0, 0, 180, 255, 0,
767 28, 0, 0, 0, 0, 249, 0, 0, 0, 364,
768 367, 0, 0, 0, 0, 0, 0, 0, 366, 0,
769 0, 0, 0, 347, 346, 348, 342, 343, 354, 358,
770 0, 0, 0, 0, 381, 382, 383, 0, 384, 355,
771 373, 0, 398, 0, 106, 107, 108, 0, 267, 296,
772 273, 82, 307, 324, 308, 303, 0, 293, 287, 292,
773 0, 328, 94, 304, 49, 141, 143, 275, 289, 0,
774 276, 166, 170, 63, 54, 0, 0, 177, 66, 172,
775 179, 259, 256, 23, 27, 0, 252, 242, 250, 244,
776 108, 369, 0, 362, 0, 400, 401, 0, 379, 0,
777 0, 0, 194, 0, 0, 0, 131, 132, 0, 0,
778 126, 129, 128, 365, 336, 340, 339, 350, 349, 0,
779 411, 359, 376, 0, 374, 375, 378, 356, 0, 332,
780 0, 111, 105, 309, 305, 0, 294, 0, 329, 330,
781 0, 277, 0, 0, 0, 74, 0, 57, 60, 174,
782 0, 173, 251, 0, 111, 363, 0, 368, 0, 0,
783 0, 387, 0, 0, 392, 390, 388, 130, 0, 389,
784 351, 377, 338, 371, 0, 0, 109, 118, 297, 0,
785 0, 111, 278, 169, 0, 0, 167, 171, 0, 0,
786 181, 253, 118, 361, 402, 0, 403, 117, 380, 0,
787 0, 127, 0, 113, 0, 0, 0, 120, 327, 331,
788 120, 75, 168, 103, 0, 120, 404, 334, 391, 112,
789 0, 0, 0, 0, 0, 0, 122, 144, 0, 122,
790 114, 0, 116, 110, 119, 0, 0, 133, 0, 133,
791 0, 133, 0, 121, 0, 0, 0, 0, 135, 0,
792 0, 175, 135, 115, 124, 123, 125, 0, 0, 0,
793 0, 408, 0, 147, 0, 0, 50, 0, 134, 0,
794 46, 0, 149, 0, 0, 145, 0, 0, 48, 136,
795 0, 148, 146, 151, 150, 0, 0, 153, 0, 156,
796 158, 0, 159, 407, 0, 160, 0, 0, 152, 161,
797 0, 0, 163, 157, 162, 164, 0, 154, 0, 165,
801 static const short yydefgoto[] = { 682,
802 4, 1, 5, 84, 138, 204, 6, 205, 206, 86,
803 268, 269, 270, 207, 125, 192, 88, 89, 90, 91,
804 92, 316, 378, 93, 511, 94, 122, 363, 123, 446,
805 191, 447, 121, 362, 95, 197, 367, 12, 13, 515,
806 14, 17, 18, 106, 171, 172, 173, 174, 346, 293,
807 294, 146, 147, 216, 317, 502, 547, 548, 573, 574,
808 567, 578, 597, 608, 480, 481, 619, 630, 251, 342,
809 253, 610, 654, 634, 659, 660, 444, 517, 521, 522,
810 560, 261, 262, 368, 451, 96, 97, 98, 99, 254,
811 482, 182, 114, 201, 202, 128, 375, 376, 456, 370,
812 115, 266, 187, 149, 150, 360, 255, 176, 241, 242,
813 243, 177, 295, 352, 179, 225, 226, 465, 433, 508,
814 509, 499, 500, 297, 298, 299, 300, 301, 397, 398,
815 302, 303, 304, 305, 382, 306, 470, 411, 307, 308,
816 309, 310, 383, 466, 467, 311, 662, 312, 130, 119,
820 static const short yypact[] = {-32768,
821 -25, 136, 368, 1350,-32768,-32768,-32768, 181,-32768,-32768,
822 -32768, 94,-32768,-32768,-32768, 181, 110,-32768,-32768, 33,
823 2903,-32768, 182, 2903,-32768, 17,-32768,-32768,-32768,-32768,
824 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
825 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
826 -32768,-32768,-32768,-32768,-32768, -11,-32768,-32768,-32768,-32768,
827 -32768,-32768,-32768, 2903,-32768, 2903,-32768, 181,-32768,-32768,
828 108,-32768,-32768,-32768,-32768, 181, 181,-32768,-32768, 2903,
829 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
830 2903,-32768,-32768,-32768,-32768,-32768, 399,-32768, 2903, 408,
831 155, 192, 205,-32768, 136, 204,-32768,-32768, 368, 1152,
832 -32768, 233, 223,-32768,-32768, 266,-32768, 181, 305, 408,
833 211, 235, 264,-32768, 1445,-32768, 408, 339,-32768, 347,
834 -32768, 377,-32768, 347,-32768, 347, 408, 1247, 1247, 408,
835 -32768,-32768, 408, 408,-32768, 196,-32768, 259, 322, 409,
836 -32768,-32768,-32768,-32768,-32768, 181, 387,-32768,-32768,-32768,
837 386, 181,-32768,-32768, 181, 534,-32768,-32768, 403, 2903,
838 410, 445, 453,-32768, 360, 439,-32768, 386, 474,-32768,
839 -32768, 496, 2903, 497, 2319, 239, 470, 486, 492, 401,
840 404,-32768,-32768,-32768,-32768,-32768, 408, 282, 493, 2414,
841 488, 494, 288,-32768,-32768,-32768,-32768,-32768, 322, 409,
842 121, 141,-32768, 408, 3200, 1836, 1933, 3059,-32768, 2030,
843 -32768,-32768, 1152,-32768, 499, 122,-32768,-32768, 386, 181,
844 181, 386, 502, 421, 360,-32768, 1152, 1152, 360, 1741,
845 -32768, 454,-32768, 328, 80,-32768,-32768, 525,-32768,-32768,
846 504,-32768, 507, 380,-32768,-32768,-32768,-32768, 522, 524,
847 515,-32768,-32768,-32768,-32768, 518, 2903, 514, 520,-32768,
848 -32768, 2903, 2903,-32768, 1836,-32768,-32768,-32768, 3200, 3109,
849 -32768, 266,-32768,-32768,-32768,-32768, 544, 3200, 545,-32768,
850 549, 551,-32768,-32768, 3033,-32768, 550,-32768, 114, 3226,
851 -32768, 374, 382, 382, 535, 193,-32768,-32768, 273,-32768,
852 -32768,-32768, 555, 560, 562, 536,-32768, 408,-32768, 537,
853 -32768, 539,-32768, 540, 541, 552,-32768,-32768, 553, 547,
854 -32768,-32768, 80,-32768, 554,-32768, 453, 439,-32768, 439,
855 454, 548, 177, 2127,-32768, 556,-32768,-32768,-32768,-32768,
856 -32768, 557,-32768,-32768, 2509, 380, 1644,-32768, 322, 469,
857 -32768, 47, 47,-32768,-32768, 408, 564, 538, 561, 559,
858 -32768, 569, 2414, 408, 2611,-32768, 2713, 558, 36, 565,
859 -32768, 293, 108, 3200, 10, 3200, 1022, 762,-32768, 220,
860 3200, 3226, 3226,-32768,-32768, 268, 374, 374, 275, 275,
861 181, 3150, 181, 181,-32768,-32768,-32768, 181,-32768, 382,
862 -32768, 3200,-32768, 3200,-32768,-32768,-32768, 314,-32768,-32768,
863 -32768,-32768,-32768,-32768, 563, 568, 566,-32768,-32768,-32768,
864 573, 181,-32768,-32768, 1836,-32768,-32768, 469, 354, 2224,
865 -32768,-32768, 165,-32768,-32768, 47, 47,-32768,-32768, 530,
866 -32768,-32768,-32768,-32768,-32768, 317,-32768,-32768,-32768,-32768,
867 -32768,-32768, 181, 567, 3200, 570,-32768, 572, 550, 362,
868 3200, 579, 581, 575, 577, 578,-32768,-32768, 2903, 384,
869 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 268,
870 -32768,-32768,-32768, 157,-32768,-32768,-32768, 275, 583,-32768,
871 397, -8,-32768,-32768,-32768, 574,-32768, 590, 591,-32768,
872 571,-32768, 587, 592, 363,-32768, 1547,-32768,-32768,-32768,
873 594,-32768,-32768, 408, -8,-32768, 181,-32768, 108, 2808,
874 3200,-32768, 28, 3200,-32768,-32768,-32768,-32768, 892,-32768,
875 -32768,-32768,-32768,-32768, 108, 2903,-32768, 582,-32768, 181,
876 181, 576,-32768,-32768, 181, 593,-32768,-32768, 408, 605,
877 -32768,-32768, 582,-32768,-32768, 2903,-32768,-32768, 550, 3200,
878 600,-32768, 331,-32768, 103, 408, 3200, 521,-32768,-32768,
879 521,-32768,-32768,-32768, 629, 521,-32768, 550,-32768,-32768,
880 108, 2903, 3200, 336, 634, 3200, 584, 597, 3200, 584,
881 -32768, 601,-32768,-32768,-32768, 639, 632, 596, 615, 596,
882 613, 596, 3200,-32768, 644, 648, 337, 3200, 608, 49,
883 623,-32768, 608,-32768,-32768,-32768,-32768, 652, 3200, 625,
884 49, 651, 50,-32768, 653, 631,-32768, 627,-32768, 658,
885 -32768, 63,-32768, 272, 49,-32768, 208, 642,-32768,-32768,
886 49,-32768,-32768, 660,-32768, 222, 222,-32768, 419, 666,
887 -32768, 661,-32768,-32768, 668,-32768, 41, 222,-32768, 316,
888 432, 468,-32768, 666,-32768,-32768, 426,-32768, 430,-32768,
889 -32768, 670, 676,-32768
892 static const short yypgoto[] = {-32768,
893 -32768,-32768,-32768,-32768, 595,-32768,-32768, 678, 677,-32768,
894 -32768,-32768, 307, 679,-32768,-32768, 610, 612, 616,-32768,
895 -121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
896 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 580,-32768,
897 -6,-32768, 585,-32768, 461,-32768, 451, 452,-32768,-32768,
898 471, -108, 478, -188,-32768, 232,-32768, -458,-32768, 127,
899 -473, 175, -169, 142, 137, 206, -206, 120,-32768, -180,
900 -32768,-32768, -507,-32768, -190, -230, -318,-32768,-32768,-32768,
901 -32768,-32768, 381,-32768,-32768, -89,-32768,-32768,-32768, -3,
902 -18,-32768, 32,-32768,-32768, 407, 476, 68,-32768,-32768,
903 56,-32768, -93, -127, 344, 398, -187, 257, -182, -213,
904 -101, 511, 30, -267, 603, -137,-32768, 586,-32768,-32768,
905 -32768, -531, -204, -254,-32768, 105, -46, 466,-32768,-32768,
906 -278, 455,-32768,-32768, 472, -265, -205,-32768,-32768, -372,
907 -32768, -303,-32768,-32768, 242, 7, -23, -38, 423, 656,
915 static const short yytable[] = { 118,
916 100, 103, 113, 196, 252, 413, 148, 141, 15, 19,
917 296, 186, 271, 296, 15, 209, 211, 112, 198, 275,
918 120, 395, 19, 391, 379, 341, 343, 389, 203, 117,
919 497, 2, 132, 385, 107, 101, 320, 399, 400, 324,
920 245, 391, 110, 670, 445, 595, 208, 219, 221, 391,
921 124, 545, 336, 442, 510, 643, 644, 645, 631, 102,
922 126, 151, 127, 180, 606, 426, 563, 611, 643, 651,
923 645, 361, 462, 632, 129, 381, 137, 673, 570, 371,
924 443, 151, 129, 129, 646, 526, 628, 140, 151, 3,
925 381, 330, 587, 581, 333, 142, 546, 640, 151, 652,
926 104, 151, 350, 263, 151, 151, 175, 219, 221, 219,
927 221, 15, 633, -55, 351, 19, 108, 488, 602, 180,
928 471, 100, 484, 642, 117, 105, 359, 518, 519, 469,
929 217, 218, 131, 592, 100, 100, 485, 655, 8, 178,
930 345, 109, 341, 343, 498, 327, 392, 469, 593, 564,
931 220, 218, 393, 328, 347, 9, 101, 276, 151, 469,
932 10, 152, 19, 431, 248, 435, 235, 437, 227, 101,
933 101, 228, 579, 580, 222, 151, 180, 277, 11, 112,
934 102, 472, 475, 483, 9, 271, 344, 218, 531, 10,
935 180, 180, 542, 102, 102, 232, 494, 180, 153, 514,
936 9, 9, 213, 402, 403, 10, 116, 154, 501, 418,
937 656, 541, 318, 429, 164, 151, 533, 657, 404, 175,
938 405, 406, 407, 408, 656, 341, 167, 214, 209, 211,
939 409, 657, 632, 175, 175, 156, 331, 332, 181, 345,
940 157, 345, 350, 327, 658, 256, 632, 283, 284, 285,
941 286, 328, 178, 183, 351, 396, 585, 219, 441, 513,
942 528, 283, 284, 285, 286, -101, 178, 178, 374, 374,
943 214, 318, 263, 178, 661, -405, 569, 279, 280, 151,
944 457, 631, 412, 661, 661, 402, 403, 9, 264, 164,
945 -101, 215, 282, 281, 274, 661, 632, 661, 661, 661,
946 404, 167, 405, 406, 407, 408, 653, 283, 284, 285,
947 286, 209, 409, 214, 185, 588, 327, 151, 151, 214,
948 503, 287, 188, 523, 328, 657, 289, 151, 464, 571,
949 159, 217, 218, 160, 483, 151, 441, 590, 161, 162,
950 632, 163, 604, 627, 468, 214, 189, 9, 524, 164,
951 489, 490, 10, 165, 166, 283, 284, 285, 286, 439,
952 190, 167, 591, 357, 218, 239, 168, 214, 539, 240,
953 218, 374, 199, 374, 290, 291, 159, 16, 131, 160,
954 -248, 292, 169, 474, 112, 356, 200, 9, 603, 357,
955 218, 279, 10, 531, 555, 558, 223, 556, 532, 358,
956 151, 9, 483, 621, 131, 623, 282, 491, 624, 495,
957 496, 598, 224, 143, 491, 539, 600, 144, 220, 218,
958 540, 283, 284, 285, 286, 666, 667, 145, 531, 234,
959 562, 318, 131, 544, 656, 287, 516, 674, 491, 675,
960 289, 657, 459, 65, 459, 67, 236, 69, 70, 15,
961 668, 72, 73, 74, 75, 669, 632, 668, 78, 79,
962 538, 668, 680, 344, 218, 584, 681, 594, 676, 491,
963 656, 283, 284, 285, 286, 112, 237, 657, 440, 218,
964 677, 679, 133, 135, 238, 151, 210, 212, 290, 291,
965 468, 244, 632, 338, 340, 292, 486, 487, 134, 136,
966 246, 247, 215, 249, 678, 257, 575, 283, 284, 285,
967 286, 258, 259, 559, 65, 260, 67, 265, 69, 70,
968 151, 272, 72, 73, 74, 75, 568, 273, 334, 78,
969 79, 335, 353, 491, 326, 112, 159, 151, 355, 160,
970 354, 364, 576, 365, 229, 230, 366, 163, 582, 369,
971 372, 373, 575, 384, 386, 164, 491, 491, 387, 231,
972 388, 15, 568, 391, 414, 401, 415, 167, 416, 417,
973 449, 450, 168, 419, 420, 454, 421, 422, 423, 424,
974 427, 636, 425, 434, 428, 452, 432, 520, 568, 504,
975 -406, 461, 636, 453, 505, 463, 635, 527, 554, 583,
976 549, 529, 530, 112, 552, 636, 636, 635, 663, 507,
977 534, 535, 636, 536, 537, 550, 506, 663, 663, 543,
978 635, 635, 551, 553, 665, 281, 596, 635, 561, 663,
979 577, 663, 663, 663, 159, 545, 589, 160, 599, 21,
980 605, 279, 280, 609, 607, 614, 613, 618, 620, 622,
981 625, 473, 281, 164, 626, 629, 282, 637, 639, 641,
982 -407, 649, 647, 648, 650, 167, 664, 645, 670, 683,
983 671, 283, 284, 285, 286, 684, 615, 672, 7, 455,
984 85, 139, 87, 325, 155, 287, 288, 337, 322, 339,
985 289, 278, 525, 158, 616, 477, 478, 479, 27, 28,
986 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
987 39, 40, 41, 42, 43, 44, 45, 601, 46, 47,
988 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
989 58, 59, 60, 61, 193, 62, 194, 586, 290, 291,
990 195, 612, 638, 617, 572, 292, 448, 65, 377, 67,
991 68, 69, 70, 438, 348, 72, 73, 74, 75, 76,
992 410, 77, 78, 79, 159, 394, 390, 160, 233, 21,
993 565, 279, 280, 184, 349, 0, 0, 0, 0, 0,
994 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
995 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
996 0, 283, 284, 285, 286, 476, 0, 0, 0, 0,
997 0, 329, 0, 0, 0, 287, 288, 0, 0, 0,
998 289, 0, 0, 0, 0, 477, 478, 479, 27, 28,
999 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1000 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1001 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1002 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
1003 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
1004 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1005 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
1006 0, 279, 280, 0, 0, 0, 0, 0, 0, 0,
1007 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
1008 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
1009 0, 283, 284, 285, 286, 0, 0, 0, 0, 0,
1010 0, 0, 0, 0, 0, 287, 288, 0, 0, 0,
1011 289, 0, 0, 0, 0, 477, 478, 479, 27, 28,
1012 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1013 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1014 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1015 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
1016 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
1017 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1018 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
1019 0, 279, 280, 0, 0, 0, 0, 0, 0, 0,
1020 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
1021 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
1022 0, 283, 284, 285, 286, 0, 0, 0, 0, 0,
1023 0, 0, 0, 0, 0, 287, 288, 0, 0, 0,
1024 289, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1025 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1026 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1027 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1028 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
1029 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
1030 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1031 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
1032 0, 0, 161, 162, 0, 163, 0, 0, 0, 0,
1033 0, 22, 0, 164, 0, 0, 0, 165, 166, 0,
1034 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
1035 168, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1036 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
1037 0, 0, 0, 0, 0, 0, 0, 170, 27, 28,
1038 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1039 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1040 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1041 58, 59, 60, 61, 21, 62, 0, 0, 0, 0,
1042 0, 0, 0, 0, 0, 0, 22, 65, 0, 67,
1043 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1044 0, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1045 0, 0, 0, 0, 23, 0, 24, 0, 0, 0,
1046 0, 0, 25, 0, 0, 0, 0, 0, 26, 0,
1047 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1048 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1049 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1050 53, 54, 55, 56, 57, 58, 59, 60, 61, 0,
1051 62, 0, 0, 0, 0, 63, 0, 21, 0, 64,
1052 0, 3, 65, 66, 67, 68, 69, 70, 71, 22,
1053 72, 73, 74, 75, 76, 0, 77, 78, 79, 80,
1054 81, 82, 83, 0, 0, 0, 0, 0, 0, 0,
1055 0, 0, 0, 0, 0, 0, 0, 23, 0, 24,
1056 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,
1057 0, 26, 0, 0, 0, 0, 27, 28, 29, 30,
1058 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1059 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1060 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1061 60, 61, 21, 62, 0, 0, 0, 0, 63, 0,
1062 0, 0, 64, 0, 22, 65, 66, 67, 68, 69,
1063 70, 71, 0, 72, 73, 74, 75, 76, 0, 77,
1064 78, 79, 80, 81, 82, 83, 0, 0, 0, 0,
1065 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,
1066 25, 0, 0, 0, 0, 0, 26, 0, 0, 0,
1067 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1068 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1069 0, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1070 55, 56, 57, 58, 59, 60, 61, 0, 62, 0,
1071 0, 0, 0, 0, 21, 0, 0, 64, 0, 0,
1072 65, 66, 67, 68, 69, 70, 22, 0, 72, 73,
1073 74, 75, 76, 0, 77, 78, 79, 80, 81, 82,
1074 83, 557, 0, 0, 0, 0, 0, 0, 0, 0,
1075 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1077 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1078 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1079 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1080 53, 54, 55, 111, 57, 58, 59, 60, 61, 439,
1081 62, 21, 0, 357, 218, 0, 0, 0, 0, 0,
1082 0, 0, 65, 22, 67, 68, 69, 70, 131, 0,
1083 72, 73, 74, 75, 76, 0, 77, 78, 79, 0,
1084 81, 82, 83, 0, 0, 0, 0, 0, 0, 0,
1085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1087 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1088 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1089 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1090 111, 57, 58, 59, 60, 61, 239, 62, 21, 0,
1091 240, 218, 0, 0, 0, 0, 0, 0, 0, 65,
1092 22, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1093 75, 76, 250, 77, 78, 79, 0, 0, 0, 0,
1094 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1095 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1096 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1097 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1098 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1099 49, 50, 51, 52, 53, 54, 55, 111, 57, 58,
1100 59, 60, 61, 21, 62, 0, 0, 0, 0, 0,
1101 0, 0, 0, 0, 0, 22, 65, 0, 67, 68,
1102 69, 70, 0, 0, 72, 73, 74, 75, 76, 250,
1103 77, 78, 79, 0, 0, 0, 0, 0, 0, 0,
1104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1105 0, 0, 0, 0, 0, 0, 0, 0, 0, 314,
1106 315, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1107 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1108 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1109 54, 55, 111, 57, 58, 59, 60, 61, 0, 62,
1110 21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1111 0, 65, 22, 67, 68, 69, 70, 0, 0, 72,
1112 73, 74, 75, 76, 0, 77, 78, 79, 0, 319,
1113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1115 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1116 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1117 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1118 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1119 57, 58, 59, 60, 61, 0, 62, 21, 0, 0,
1120 0, 0, 0, 0, 0, 0, 0, 0, 65, 22,
1121 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1122 76, 250, 77, 78, 79, 0, 323, 0, 0, 0,
1123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1125 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1126 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1127 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1128 50, 51, 52, 53, 54, 55, 111, 57, 58, 59,
1129 60, 61, 0, 62, 21, 0, 0, 0, 0, 0,
1130 0, 0, 0, 0, 0, 65, 22, 67, 68, 69,
1131 70, 0, 0, 72, 73, 74, 75, 76, 250, 77,
1132 78, 79, 0, 430, 0, 0, 0, 0, 0, 0,
1133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1135 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1136 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1137 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1138 53, 54, 55, 111, 57, 58, 59, 60, 61, 0,
1139 62, 21, 0, 0, 0, 0, 0, 0, 0, 0,
1140 0, 0, 65, 22, 67, 68, 69, 70, 0, 0,
1141 72, 73, 74, 75, 76, 250, 77, 78, 79, 0,
1142 512, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1145 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1146 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1147 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1148 111, 57, 58, 59, 60, 61, 21, 62, 0, 0,
1149 0, 0, 0, 0, 0, 0, 0, 0, 22, 65,
1150 0, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1151 75, 76, 250, 77, 78, 79, 0, 0, 0, 0,
1152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1154 0, 0, 0, 0, 0, 27, 28, 29, 30, 31,
1155 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1156 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1157 51, 52, 53, 54, 55, 111, 57, 58, 59, 60,
1158 61, 21, 62, 0, 0, 0, 0, 0, 0, 0,
1159 0, 0, 0, 22, 65, 0, 67, 68, 69, 70,
1160 0, 0, 72, 73, 74, 75, 76, 250, 77, 78,
1161 79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1164 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1165 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1166 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1167 111, 57, 58, 59, 60, 61, 21, 62, 0, 0,
1168 0, 0, 0, 0, 0, 0, 0, 0, 22, 65,
1169 0, 67, 68, 69, 70, 0, 267, 72, 73, 74,
1170 75, 76, 0, 77, 78, 79, 0, 0, 0, 0,
1171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1173 0, 0, 0, 0, 0, 27, 28, 29, 30, 31,
1174 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1175 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1176 51, 52, 53, 54, 55, 111, 57, 58, 59, 60,
1177 61, 0, 62, 0, 0, 0, 0, 0, 21, 0,
1178 0, 0, 0, 0, 65, 0, 67, 68, 69, 70,
1179 22, 0, 72, 73, 74, 75, 76, 436, 77, 78,
1180 79, 0, 0, 0, 0, 458, 0, 0, 0, 0,
1181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1183 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1184 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1185 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1186 49, 50, 51, 52, 53, 54, 55, 111, 57, 58,
1187 59, 60, 61, 0, 62, 0, 0, 0, 0, 0,
1188 21, 0, 0, 0, 0, 0, 65, 0, 67, 68,
1189 69, 70, 22, 0, 72, 73, 74, 75, 76, 0,
1190 77, 78, 79, 0, 0, 0, 0, 460, 0, 0,
1191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1193 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1194 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1195 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1196 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1197 57, 58, 59, 60, 61, 21, 62, 0, 0, 0,
1198 0, 0, 0, 0, 0, 0, 0, 22, 65, 0,
1199 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1200 76, 0, 77, 78, 79, 0, 0, 0, 0, 0,
1201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1203 0, 0, 0, 566, 27, 28, 29, 30, 31, 32,
1204 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1205 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1206 52, 53, 54, 55, 111, 57, 58, 59, 60, 61,
1207 21, 62, 0, 0, 0, 0, 0, 0, 0, 0,
1208 0, 0, 22, 65, 0, 67, 68, 69, 70, 0,
1209 0, 72, 73, 74, 75, 76, 0, 77, 78, 79,
1210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1212 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1213 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1214 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1215 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1216 57, 58, 59, 60, 61, 0, 62, 0, 0, 0,
1217 0, 0, 0, 0, 0, 0, 0, 0, 65, 0,
1218 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1219 76, 0, 77, 78, 79, 159, 0, 0, 160, 0,
1220 0, 0, 279, 280, 0, 0, 0, 0, 0, 0,
1221 0, 0, 9, 281, 164, 350, 0, 282, 0, 0,
1222 0, 159, 0, 0, 160, 0, 167, 351, 279, 280,
1223 0, 0, 283, 284, 285, 286, 0, 0, 9, 281,
1224 164, 0, 0, 282, 0, 0, 287, 288, 0, 0,
1225 0, 289, 167, 0, 321, 0, 0, 0, 283, 284,
1226 285, 286, 0, 0, 0, 0, 0, 0, 0, 0,
1227 0, 159, 287, 288, 160, 0, 0, 289, 279, 280,
1228 0, 0, 0, 0, 0, 0, 0, 0, 9, 281,
1229 164, 0, 0, 282, 0, 0, 0, 0, 0, 290,
1230 291, 0, 167, 0, 380, 0, 292, 0, 283, 284,
1231 285, 286, 159, 0, 0, 160, 0, 0, 0, 279,
1232 280, 0, 287, 288, 0, 290, 291, 289, 0, 9,
1233 281, 164, 292, 0, 282, 0, 0, 0, 0, 0,
1234 0, 0, 0, 167, 0, 493, 0, 0, 0, 283,
1235 284, 285, 286, 0, 0, 0, 0, 0, 0, 0,
1236 0, 0, 159, 287, 288, 160, 0, 0, 289, 279,
1237 280, 0, 0, 0, 0, 290, 291, 0, 0, 9,
1238 281, 164, 292, 0, 282, 0, 0, 0, 159, 0,
1239 0, 160, 0, 167, 0, 279, 280, 0, 0, 283,
1240 284, 285, 286, 0, 0, 9, 0, 164, 0, 0,
1241 282, 0, 0, 287, 288, 0, 290, 291, 289, 167,
1242 0, 0, 0, 292, 0, 283, 284, 285, 286, 0,
1243 0, 0, 0, 0, 0, 0, 0, 0, 0, 287,
1244 0, 0, 0, 0, 289, 0, 0, 0, 0, 0,
1245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 290, 291, 0, 0,
1247 0, 0, 0, 292, 0, 0, 0, 0, 0, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1249 0, 0, 290, 291, 0, 0, 0, 0, 0, 292
1252 static const short yycheck[] = { 23,
1253 4, 8, 21, 125, 185, 309, 100, 97, 2, 3,
1254 215, 120, 200, 218, 8, 143, 144, 21, 127, 208,
1255 24, 300, 16, 14, 279, 239, 240, 295, 137, 23,
1256 408, 57, 71, 288, 16, 4, 217, 303, 304, 220,
1257 178, 14, 10, 3, 363, 577, 140, 149, 150, 14,
1258 62, 60, 235, 7, 432, 6, 7, 8, 10, 4,
1259 64, 100, 66, 110, 596, 333, 525, 599, 6, 7,
1260 8, 254, 37, 25, 68, 280, 80, 37, 51, 267,
1261 34, 120, 76, 77, 35, 463, 618, 91, 127, 115,
1262 295, 229, 566, 552, 232, 99, 105, 629, 137, 37,
1263 7, 140, 23, 197, 143, 144, 110, 209, 210, 211,
1264 212, 105, 620, 97, 35, 109, 7, 396, 592, 166,
1265 111, 125, 390, 631, 118, 32, 254, 446, 447, 384,
1266 10, 11, 25, 31, 138, 139, 391, 645, 3, 110,
1267 242, 32, 356, 357, 410, 24, 33, 402, 46, 527,
1268 10, 11, 39, 32, 244, 20, 125, 37, 197, 414,
1269 25, 7, 156, 344, 183, 354, 170, 355, 162, 138,
1270 139, 165, 550, 551, 156, 214, 223, 37, 43, 183,
1271 125, 386, 387, 388, 20, 373, 10, 11, 32, 25,
1272 237, 238, 36, 138, 139, 166, 402, 244, 7, 35,
1273 20, 20, 7, 11, 12, 25, 25, 3, 414, 318,
1274 3, 490, 216, 37, 22, 254, 471, 10, 26, 223,
1275 28, 29, 30, 31, 3, 439, 34, 32, 356, 357,
1276 38, 10, 25, 237, 238, 32, 230, 231, 6, 341,
1277 37, 343, 23, 24, 37, 7, 25, 40, 41, 42,
1278 43, 32, 223, 31, 35, 302, 560, 359, 360, 440,
1279 465, 40, 41, 42, 43, 7, 237, 238, 272, 273,
1280 32, 275, 366, 244, 647, 10, 531, 10, 11, 318,
1281 374, 10, 10, 656, 657, 11, 12, 20, 7, 22,
1282 32, 33, 25, 21, 7, 668, 25, 670, 671, 672,
1283 26, 34, 28, 29, 30, 31, 35, 40, 41, 42,
1284 43, 439, 38, 32, 10, 570, 24, 356, 357, 32,
1285 7, 54, 112, 7, 32, 10, 59, 366, 36, 534,
1286 3, 10, 11, 6, 539, 374, 438, 7, 11, 12,
1287 25, 14, 7, 7, 383, 32, 112, 20, 32, 22,
1288 397, 398, 25, 26, 27, 40, 41, 42, 43, 6,
1289 97, 34, 32, 10, 11, 6, 39, 32, 32, 10,
1290 11, 375, 34, 377, 107, 108, 3, 10, 25, 6,
1291 34, 114, 55, 387, 388, 6, 10, 20, 593, 10,
1292 11, 10, 25, 32, 32, 517, 10, 35, 37, 20,
1293 439, 20, 607, 610, 25, 612, 25, 401, 613, 403,
1294 404, 581, 27, 6, 408, 32, 586, 10, 10, 11,
1295 37, 40, 41, 42, 43, 656, 657, 20, 32, 27,
1296 524, 435, 25, 37, 3, 54, 443, 668, 432, 670,
1297 59, 10, 375, 116, 377, 118, 37, 120, 121, 443,
1298 32, 124, 125, 126, 127, 37, 25, 32, 131, 132,
1299 479, 32, 37, 10, 11, 559, 37, 576, 37, 463,
1300 3, 40, 41, 42, 43, 479, 32, 10, 10, 11,
1301 671, 672, 76, 77, 32, 524, 143, 144, 107, 108,
1302 529, 53, 25, 237, 238, 114, 392, 393, 76, 77,
1303 27, 6, 33, 7, 37, 20, 545, 40, 41, 42,
1304 43, 20, 112, 517, 116, 112, 118, 25, 120, 121,
1305 559, 34, 124, 125, 126, 127, 530, 34, 27, 131,
1306 132, 111, 8, 527, 36, 539, 3, 576, 32, 6,
1307 37, 20, 546, 20, 11, 12, 32, 14, 555, 32,
1308 37, 32, 591, 10, 10, 22, 550, 551, 10, 26,
1309 10, 555, 566, 14, 10, 31, 7, 34, 7, 34,
1310 7, 34, 39, 37, 36, 7, 37, 37, 27, 27,
1311 27, 620, 36, 27, 37, 25, 31, 58, 592, 27,
1312 10, 34, 631, 35, 27, 31, 620, 31, 7, 7,
1313 27, 32, 31, 607, 34, 644, 645, 631, 647, 37,
1314 32, 37, 651, 37, 37, 26, 51, 656, 657, 37,
1315 644, 645, 32, 37, 648, 21, 106, 651, 35, 668,
1316 49, 670, 671, 672, 3, 60, 37, 6, 10, 8,
1317 7, 10, 11, 47, 61, 7, 46, 52, 34, 37,
1318 7, 20, 21, 22, 7, 48, 25, 35, 7, 35,
1319 10, 35, 10, 33, 7, 34, 25, 8, 3, 0,
1320 10, 40, 41, 42, 43, 0, 45, 10, 1, 373,
1321 4, 87, 4, 223, 105, 54, 55, 237, 218, 238,
1322 59, 214, 461, 109, 63, 64, 65, 66, 67, 68,
1323 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1324 79, 80, 81, 82, 83, 84, 85, 591, 87, 88,
1325 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1326 99, 100, 101, 102, 125, 104, 125, 563, 107, 108,
1327 125, 600, 623, 607, 539, 114, 366, 116, 273, 118,
1328 119, 120, 121, 356, 244, 124, 125, 126, 127, 128,
1329 306, 130, 131, 132, 3, 300, 295, 6, 166, 8,
1330 529, 10, 11, 118, 244, -1, -1, -1, -1, -1,
1331 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1332 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1333 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
1334 -1, 226, -1, -1, -1, 54, 55, -1, -1, -1,
1335 59, -1, -1, -1, -1, 64, 65, 66, 67, 68,
1336 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1337 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1338 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1339 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1340 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1341 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1342 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1343 -1, 10, 11, -1, -1, -1, -1, -1, -1, -1,
1344 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1345 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1346 -1, 40, 41, 42, 43, -1, -1, -1, -1, -1,
1347 -1, -1, -1, -1, -1, 54, 55, -1, -1, -1,
1348 59, -1, -1, -1, -1, 64, 65, 66, 67, 68,
1349 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1350 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1351 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1352 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1353 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1354 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1355 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1356 -1, 10, 11, -1, -1, -1, -1, -1, -1, -1,
1357 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1358 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1359 -1, 40, 41, 42, 43, -1, -1, -1, -1, -1,
1360 -1, -1, -1, -1, -1, 54, 55, -1, -1, -1,
1361 59, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1362 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1363 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1364 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1365 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1366 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1367 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1368 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1369 -1, -1, 11, 12, -1, 14, -1, -1, -1, -1,
1370 -1, 20, -1, 22, -1, -1, -1, 26, 27, -1,
1371 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1372 39, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1373 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
1374 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
1375 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1376 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1377 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1378 99, 100, 101, 102, 8, 104, -1, -1, -1, -1,
1379 -1, -1, -1, -1, -1, -1, 20, 116, -1, 118,
1380 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1381 -1, 130, 131, 132, -1, -1, -1, -1, -1, -1,
1382 -1, -1, -1, -1, 48, -1, 50, -1, -1, -1,
1383 -1, -1, 56, -1, -1, -1, -1, -1, 62, -1,
1384 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1385 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1386 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1387 94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
1388 104, -1, -1, -1, -1, 109, -1, 8, -1, 113,
1389 -1, 115, 116, 117, 118, 119, 120, 121, 122, 20,
1390 124, 125, 126, 127, 128, -1, 130, 131, 132, 133,
1391 134, 135, 136, -1, -1, -1, -1, -1, -1, -1,
1392 -1, -1, -1, -1, -1, -1, -1, 48, -1, 50,
1393 -1, -1, -1, -1, -1, 56, -1, -1, -1, -1,
1394 -1, 62, -1, -1, -1, -1, 67, 68, 69, 70,
1395 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1396 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1397 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1398 101, 102, 8, 104, -1, -1, -1, -1, 109, -1,
1399 -1, -1, 113, -1, 20, 116, 117, 118, 119, 120,
1400 121, 122, -1, 124, 125, 126, 127, 128, -1, 130,
1401 131, 132, 133, 134, 135, 136, -1, -1, -1, -1,
1402 -1, -1, -1, -1, 50, -1, -1, -1, -1, -1,
1403 56, -1, -1, -1, -1, -1, 62, -1, -1, -1,
1404 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1405 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1406 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1407 96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
1408 -1, -1, -1, -1, 8, -1, -1, 113, -1, -1,
1409 116, 117, 118, 119, 120, 121, 20, -1, 124, 125,
1410 126, 127, 128, -1, 130, 131, 132, 133, 134, 135,
1411 136, 35, -1, -1, -1, -1, -1, -1, -1, -1,
1412 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1413 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1414 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1415 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1416 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1417 94, 95, 96, 97, 98, 99, 100, 101, 102, 6,
1418 104, 8, -1, 10, 11, -1, -1, -1, -1, -1,
1419 -1, -1, 116, 20, 118, 119, 120, 121, 25, -1,
1420 124, 125, 126, 127, 128, -1, 130, 131, 132, -1,
1421 134, 135, 136, -1, -1, -1, -1, -1, -1, -1,
1422 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1423 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1424 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1425 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1426 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1427 97, 98, 99, 100, 101, 102, 6, 104, 8, -1,
1428 10, 11, -1, -1, -1, -1, -1, -1, -1, 116,
1429 20, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1430 127, 128, 129, 130, 131, 132, -1, -1, -1, -1,
1431 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1432 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1433 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1434 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1435 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1436 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1437 100, 101, 102, 8, 104, -1, -1, -1, -1, -1,
1438 -1, -1, -1, -1, -1, 20, 116, -1, 118, 119,
1439 120, 121, -1, -1, 124, 125, 126, 127, 128, 129,
1440 130, 131, 132, -1, -1, -1, -1, -1, -1, -1,
1441 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1442 -1, -1, -1, -1, -1, -1, -1, -1, -1, 64,
1443 65, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1444 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1445 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1446 95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
1447 8, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1448 -1, 116, 20, 118, 119, 120, 121, -1, -1, 124,
1449 125, 126, 127, 128, -1, 130, 131, 132, -1, 37,
1450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1451 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1452 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1453 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1454 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1455 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1456 98, 99, 100, 101, 102, -1, 104, 8, -1, -1,
1457 -1, -1, -1, -1, -1, -1, -1, -1, 116, 20,
1458 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1459 128, 129, 130, 131, 132, -1, 37, -1, -1, -1,
1460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1461 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1462 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1463 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1464 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1465 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1466 101, 102, -1, 104, 8, -1, -1, -1, -1, -1,
1467 -1, -1, -1, -1, -1, 116, 20, 118, 119, 120,
1468 121, -1, -1, 124, 125, 126, 127, 128, 129, 130,
1469 131, 132, -1, 37, -1, -1, -1, -1, -1, -1,
1470 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1471 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1472 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1473 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1474 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1475 94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
1476 104, 8, -1, -1, -1, -1, -1, -1, -1, -1,
1477 -1, -1, 116, 20, 118, 119, 120, 121, -1, -1,
1478 124, 125, 126, 127, 128, 129, 130, 131, 132, -1,
1479 37, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1480 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1481 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1482 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1483 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1484 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1485 97, 98, 99, 100, 101, 102, 8, 104, -1, -1,
1486 -1, -1, -1, -1, -1, -1, -1, -1, 20, 116,
1487 -1, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1488 127, 128, 129, 130, 131, 132, -1, -1, -1, -1,
1489 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1490 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1491 -1, -1, -1, -1, -1, 67, 68, 69, 70, 71,
1492 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1493 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1494 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1495 102, 8, 104, -1, -1, -1, -1, -1, -1, -1,
1496 -1, -1, -1, 20, 116, -1, 118, 119, 120, 121,
1497 -1, -1, 124, 125, 126, 127, 128, 129, 130, 131,
1498 132, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1499 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1501 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1502 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1503 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1504 97, 98, 99, 100, 101, 102, 8, 104, -1, -1,
1505 -1, -1, -1, -1, -1, -1, -1, -1, 20, 116,
1506 -1, 118, 119, 120, 121, -1, 123, 124, 125, 126,
1507 127, 128, -1, 130, 131, 132, -1, -1, -1, -1,
1508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1509 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1510 -1, -1, -1, -1, -1, 67, 68, 69, 70, 71,
1511 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1512 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1513 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1514 102, -1, 104, -1, -1, -1, -1, -1, 8, -1,
1515 -1, -1, -1, -1, 116, -1, 118, 119, 120, 121,
1516 20, -1, 124, 125, 126, 127, 128, 129, 130, 131,
1517 132, -1, -1, -1, -1, 35, -1, -1, -1, -1,
1518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1519 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1520 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1521 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1522 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1523 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1524 100, 101, 102, -1, 104, -1, -1, -1, -1, -1,
1525 8, -1, -1, -1, -1, -1, 116, -1, 118, 119,
1526 120, 121, 20, -1, 124, 125, 126, 127, 128, -1,
1527 130, 131, 132, -1, -1, -1, -1, 35, -1, -1,
1528 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1530 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1531 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1532 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1533 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1534 98, 99, 100, 101, 102, 8, 104, -1, -1, -1,
1535 -1, -1, -1, -1, -1, -1, -1, 20, 116, -1,
1536 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1537 128, -1, 130, 131, 132, -1, -1, -1, -1, -1,
1538 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1539 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1540 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
1541 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1542 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1543 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1544 8, 104, -1, -1, -1, -1, -1, -1, -1, -1,
1545 -1, -1, 20, 116, -1, 118, 119, 120, 121, -1,
1546 -1, 124, 125, 126, 127, 128, -1, 130, 131, 132,
1547 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1548 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1549 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1550 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1551 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1552 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1553 98, 99, 100, 101, 102, -1, 104, -1, -1, -1,
1554 -1, -1, -1, -1, -1, -1, -1, -1, 116, -1,
1555 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1556 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1557 -1, -1, 10, 11, -1, -1, -1, -1, -1, -1,
1558 -1, -1, 20, 21, 22, 23, -1, 25, -1, -1,
1559 -1, 3, -1, -1, 6, -1, 34, 35, 10, 11,
1560 -1, -1, 40, 41, 42, 43, -1, -1, 20, 21,
1561 22, -1, -1, 25, -1, -1, 54, 55, -1, -1,
1562 -1, 59, 34, -1, 36, -1, -1, -1, 40, 41,
1563 42, 43, -1, -1, -1, -1, -1, -1, -1, -1,
1564 -1, 3, 54, 55, 6, -1, -1, 59, 10, 11,
1565 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1566 22, -1, -1, 25, -1, -1, -1, -1, -1, 107,
1567 108, -1, 34, -1, 36, -1, 114, -1, 40, 41,
1568 42, 43, 3, -1, -1, 6, -1, -1, -1, 10,
1569 11, -1, 54, 55, -1, 107, 108, 59, -1, 20,
1570 21, 22, 114, -1, 25, -1, -1, -1, -1, -1,
1571 -1, -1, -1, 34, -1, 36, -1, -1, -1, 40,
1572 41, 42, 43, -1, -1, -1, -1, -1, -1, -1,
1573 -1, -1, 3, 54, 55, 6, -1, -1, 59, 10,
1574 11, -1, -1, -1, -1, 107, 108, -1, -1, 20,
1575 21, 22, 114, -1, 25, -1, -1, -1, 3, -1,
1576 -1, 6, -1, 34, -1, 10, 11, -1, -1, 40,
1577 41, 42, 43, -1, -1, 20, -1, 22, -1, -1,
1578 25, -1, -1, 54, 55, -1, 107, 108, 59, 34,
1579 -1, -1, -1, 114, -1, 40, 41, 42, 43, -1,
1580 -1, -1, -1, -1, -1, -1, -1, -1, -1, 54,
1581 -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
1582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1583 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
1584 -1, -1, -1, 114, -1, -1, -1, -1, -1, -1,
1585 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1586 -1, -1, 107, 108, -1, -1, -1, -1, -1, 114
1588 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1589 #line 3 "/usr/share/misc/bison.simple"
1591 /* Skeleton output parser for bison,
1592 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1594 This program is free software; you can redistribute it and/or modify
1595 it under the terms of the GNU General Public License as published by
1596 the Free Software Foundation; either version 2, or (at your option)
1599 This program is distributed in the hope that it will be useful,
1600 but WITHOUT ANY WARRANTY; without even the implied warranty of
1601 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1602 GNU General Public License for more details.
1604 You should have received a copy of the GNU General Public License
1605 along with this program; if not, write to the Free Software
1606 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1608 /* As a special exception, when this file is copied by Bison into a
1609 Bison output file, you may use that output file without restriction.
1610 This special exception was added by the Free Software Foundation
1611 in version 1.24 of Bison. */
1615 #define alloca __builtin_alloca
1616 #else /* not GNU C. */
1617 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1619 #else /* not sparc */
1620 #if defined (MSDOS) && !defined (__TURBOC__)
1622 #else /* not MSDOS, or __TURBOC__ */
1626 #else /* not MSDOS, __TURBOC__, or _AIX */
1630 void *alloca (unsigned int);
1632 #else /* not __cplusplus */
1634 #endif /* not __cplusplus */
1636 #endif /* not _AIX */
1637 #endif /* not MSDOS, or __TURBOC__ */
1638 #endif /* not sparc. */
1639 #endif /* not GNU C. */
1640 #endif /* alloca not defined. */
1642 /* This is the parser code that is written into each bison parser
1643 when the %semantic_parser declaration is not specified in the grammar.
1644 It was written by Richard Stallman by simplifying the hairy parser
1645 used when %semantic_parser is specified. */
1647 /* Note: there must be only one dollar sign in this file.
1648 It is replaced by the list of actions, each action
1649 as one case of the switch. */
1651 #define yyerrok (yyerrstatus = 0)
1652 #define yyclearin (yychar = YYEMPTY)
1655 #define YYACCEPT return(0)
1656 #define YYABORT return(1)
1657 #define YYERROR goto yyerrlab1
1658 /* Like YYERROR except do call yyerror.
1659 This remains here temporarily to ease the
1660 transition to the new meaning of YYERROR, for GCC.
1661 Once GCC version 2 has supplanted version 1, this can go. */
1662 #define YYFAIL goto yyerrlab
1663 #define YYRECOVERING() (!!yyerrstatus)
1664 #define YYBACKUP(token, value) \
1666 if (yychar == YYEMPTY && yylen == 1) \
1667 { yychar = (token), yylval = (value); \
1668 yychar1 = YYTRANSLATE (yychar); \
1673 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1677 #define YYERRCODE 256
1680 #define YYLEX yylex()
1686 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1688 #define YYLEX yylex(&yylval, &yylloc)
1690 #else /* not YYLSP_NEEDED */
1692 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1694 #define YYLEX yylex(&yylval)
1696 #endif /* not YYLSP_NEEDED */
1699 /* If nonreentrant, generate the variables here */
1703 int yychar; /* the lookahead symbol */
1704 YYSTYPE yylval; /* the semantic value of the */
1705 /* lookahead symbol */
1708 YYLTYPE yylloc; /* location data for the lookahead */
1712 int yynerrs; /* number of parse errors so far */
1713 #endif /* not YYPURE */
1716 int yydebug; /* nonzero means print parse trace */
1717 /* Since this is uninitialized, it does not stop multiple parsers
1721 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1724 #define YYINITDEPTH 200
1727 /* YYMAXDEPTH is the maximum size the stacks can grow to
1728 (effective only if the built-in stack extension method is used). */
1735 #define YYMAXDEPTH 10000
1738 /* Prevent warning if -Wstrict-prototypes. */
1743 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1744 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1745 #else /* not GNU C or C++ */
1748 /* This is the most reliable way to avoid incompatibilities
1749 in available built-in functions on various systems. */
1751 __yy_memcpy (to, from, count)
1756 register char *f = from;
1757 register char *t = to;
1758 register int i = count;
1764 #else /* __cplusplus */
1766 /* This is the most reliable way to avoid incompatibilities
1767 in available built-in functions on various systems. */
1769 __yy_memcpy (char *to, char *from, int count)
1771 register char *f = from;
1772 register char *t = to;
1773 register int i = count;
1782 #line 196 "/usr/share/misc/bison.simple"
1784 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1785 into yyparse. The argument should have type void *.
1786 It should actually point to an object.
1787 Grammar actions can access the variable by casting it
1788 to the proper pointer type. */
1790 #ifdef YYPARSE_PARAM
1792 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1793 #define YYPARSE_PARAM_DECL
1794 #else /* not __cplusplus */
1795 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1796 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1797 #endif /* not __cplusplus */
1798 #else /* not YYPARSE_PARAM */
1799 #define YYPARSE_PARAM_ARG
1800 #define YYPARSE_PARAM_DECL
1801 #endif /* not YYPARSE_PARAM */
1804 yyparse(YYPARSE_PARAM_ARG)
1807 register int yystate;
1809 register short *yyssp;
1810 register YYSTYPE *yyvsp;
1811 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1812 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1814 short yyssa[YYINITDEPTH]; /* the state stack */
1815 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1817 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1818 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1821 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1822 YYLTYPE *yyls = yylsa;
1825 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1827 #define YYPOPSTACK (yyvsp--, yyssp--)
1830 int yystacksize = YYINITDEPTH;
1841 YYSTYPE yyval; /* the variable used to return */
1842 /* semantic values from the action */
1849 fprintf(stderr, "Starting parse\n");
1855 yychar = YYEMPTY; /* Cause a token to be read. */
1857 /* Initialize stack pointers.
1858 Waste one element of value and location stack
1859 so that they stay on the same level as the state stack.
1860 The wasted elements are never initialized. */
1868 /* Push a new state, which is found in yystate . */
1869 /* In all cases, when you get here, the value and location stacks
1870 have just been pushed. so pushing a state here evens the stacks. */
1875 if (yyssp >= yyss + yystacksize - 1)
1877 /* Give user a chance to reallocate the stack */
1878 /* Use copies of these so that the &'s don't force the real ones into memory. */
1879 YYSTYPE *yyvs1 = yyvs;
1880 short *yyss1 = yyss;
1882 YYLTYPE *yyls1 = yyls;
1885 /* Get the current used size of the three stacks, in elements. */
1886 int size = yyssp - yyss + 1;
1889 /* Each stack pointer address is followed by the size of
1890 the data in use in that stack, in bytes. */
1892 /* This used to be a conditional around just the two extra args,
1893 but that might be undefined if yyoverflow is a macro. */
1894 yyoverflow("parser stack overflow",
1895 &yyss1, size * sizeof (*yyssp),
1896 &yyvs1, size * sizeof (*yyvsp),
1897 &yyls1, size * sizeof (*yylsp),
1900 yyoverflow("parser stack overflow",
1901 &yyss1, size * sizeof (*yyssp),
1902 &yyvs1, size * sizeof (*yyvsp),
1906 yyss = yyss1; yyvs = yyvs1;
1910 #else /* no yyoverflow */
1911 /* Extend the stack our own way. */
1912 if (yystacksize >= YYMAXDEPTH)
1914 yyerror("parser stack overflow");
1918 if (yystacksize > YYMAXDEPTH)
1919 yystacksize = YYMAXDEPTH;
1920 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1921 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
1922 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1923 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
1925 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1926 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
1928 #endif /* no yyoverflow */
1930 yyssp = yyss + size - 1;
1931 yyvsp = yyvs + size - 1;
1933 yylsp = yyls + size - 1;
1938 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1941 if (yyssp >= yyss + yystacksize - 1)
1947 fprintf(stderr, "Entering state %d\n", yystate);
1953 /* Do appropriate processing given the current state. */
1954 /* Read a lookahead token if we need one and don't already have one. */
1957 /* First try to decide what to do without reference to lookahead token. */
1959 yyn = yypact[yystate];
1963 /* Not known => get a lookahead token if don't already have one. */
1965 /* yychar is either YYEMPTY or YYEOF
1966 or a valid token in external form. */
1968 if (yychar == YYEMPTY)
1972 fprintf(stderr, "Reading a token: ");
1977 /* Convert token to internal form (in yychar1) for indexing tables with */
1979 if (yychar <= 0) /* This means end of input. */
1982 yychar = YYEOF; /* Don't call YYLEX any more */
1986 fprintf(stderr, "Now at end of input.\n");
1991 yychar1 = YYTRANSLATE(yychar);
1996 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1997 /* Give the individual parser a way to print the precise meaning
1998 of a token, for further debugging info. */
2000 YYPRINT (stderr, yychar, yylval);
2002 fprintf (stderr, ")\n");
2008 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2013 /* yyn is what to do for this token type in this state.
2014 Negative => reduce, -yyn is rule number.
2015 Positive => shift, yyn is new state.
2016 New state is final state => don't bother to shift,
2017 just return success.
2018 0, or most negative number => error. */
2033 /* Shift the lookahead token. */
2037 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2040 /* Discard the token being shifted unless it is eof. */
2041 if (yychar != YYEOF)
2049 /* count tokens shifted since error; after three, turn off error status. */
2050 if (yyerrstatus) yyerrstatus--;
2055 /* Do the default action for the current state. */
2058 yyn = yydefact[yystate];
2062 /* Do a reduction. yyn is the number of a rule to reduce with. */
2066 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2073 fprintf (stderr, "Reducing via rule %d (line %d), ",
2076 /* Print the symbols being reduced, and their result. */
2077 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2078 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2079 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2087 #line 383 "llgrammar.y"
2088 { lhExternals (yyvsp[0].interfacelist); ;
2091 #line 384 "llgrammar.y"
2092 { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
2095 #line 387 "llgrammar.y"
2096 { yyval.interfacelist = interfaceNodeList_new (); ;
2099 #line 388 "llgrammar.y"
2100 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2103 #line 395 "llgrammar.y"
2104 { yyval.interfacelist = interfaceNodeList_new (); ;
2107 #line 396 "llgrammar.y"
2108 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2111 #line 397 "llgrammar.y"
2112 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2115 #line 400 "llgrammar.y"
2116 { yyval.interfacelist = interfaceNodeList_new (); ;
2119 #line 401 "llgrammar.y"
2120 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2123 #line 410 "llgrammar.y"
2124 { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2125 /* assume subspecs are already processed, symbol table info in external file */
2129 #line 416 "llgrammar.y"
2130 { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
2133 #line 420 "llgrammar.y"
2134 { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
2137 #line 422 "llgrammar.y"
2138 { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
2141 #line 424 "llgrammar.y"
2142 { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
2145 #line 426 "llgrammar.y"
2146 { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
2149 #line 428 "llgrammar.y"
2150 { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
2153 #line 430 "llgrammar.y"
2154 { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
2157 #line 434 "llgrammar.y"
2158 { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
2161 #line 437 "llgrammar.y"
2162 { yyval.paramlist = paramNodeList_new (); ;
2165 #line 438 "llgrammar.y"
2166 { yyval.paramlist = yyvsp[0].paramlist; ;
2169 #line 442 "llgrammar.y"
2170 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
2173 #line 444 "llgrammar.y"
2174 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
2177 #line 447 "llgrammar.y"
2178 { yyval.param = markYieldParamNode (yyvsp[0].param); ;
2181 #line 448 "llgrammar.y"
2182 { yyval.param = yyvsp[0].param; ;
2185 #line 451 "llgrammar.y"
2186 { symtable_export (g_symtab, FALSE); ;
2189 #line 452 "llgrammar.y"
2190 { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
2193 #line 456 "llgrammar.y"
2194 { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
2197 #line 458 "llgrammar.y"
2198 { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
2201 #line 460 "llgrammar.y"
2202 { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
2205 #line 462 "llgrammar.y"
2206 { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
2209 #line 466 "llgrammar.y"
2210 { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
2213 #line 470 "llgrammar.y"
2214 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
2217 #line 472 "llgrammar.y"
2218 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
2221 #line 474 "llgrammar.y"
2222 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
2225 #line 477 "llgrammar.y"
2226 { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
2229 #line 478 "llgrammar.y"
2230 { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
2233 #line 481 "llgrammar.y"
2234 { yyval.typequal = qual_createPrintfLike (); ;
2237 #line 482 "llgrammar.y"
2238 { yyval.typequal = qual_createScanfLike (); ;
2241 #line 483 "llgrammar.y"
2242 { yyval.typequal = qual_createMessageLike (); ;
2245 #line 486 "llgrammar.y"
2246 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2249 #line 488 "llgrammar.y"
2250 { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls,
2251 yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2252 /* type, declarator, glovbls, privateinits,
2253 lets, checks, requires, modifies, ensures, claims */
2254 symtable_exitScope (g_symtab);
2258 #line 494 "llgrammar.y"
2259 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2262 #line 498 "llgrammar.y"
2263 { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist,
2264 yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2265 /* type, declarator, glovbls, privateinits,
2266 lets, checks, requires, modifies, ensures, claims */
2267 symtable_exitScope (g_symtab);
2271 #line 508 "llgrammar.y"
2272 { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
2275 #line 510 "llgrammar.y"
2276 { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate);
2277 symtable_exitScope (g_symtab); ;
2280 #line 513 "llgrammar.y"
2281 { yyval.claim = (claimNode) 0; ;
2284 #line 516 "llgrammar.y"
2285 {g_inTypeDef = TRUE; ;
2288 #line 516 "llgrammar.y"
2289 {g_inTypeDef = FALSE; ;
2292 #line 517 "llgrammar.y"
2293 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
2296 #line 518 "llgrammar.y"
2297 {g_inTypeDef = TRUE; ;
2300 #line 519 "llgrammar.y"
2301 {g_inTypeDef = FALSE; ;
2304 #line 520 "llgrammar.y"
2305 { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2308 #line 521 "llgrammar.y"
2309 {g_inTypeDef = TRUE; ;
2312 #line 522 "llgrammar.y"
2313 {g_inTypeDef = FALSE; ;
2316 #line 523 "llgrammar.y"
2317 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2320 #line 524 "llgrammar.y"
2321 {g_inTypeDef = TRUE; ;
2324 #line 524 "llgrammar.y"
2325 {g_inTypeDef = FALSE; ;
2328 #line 525 "llgrammar.y"
2329 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
2332 #line 528 "llgrammar.y"
2333 { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
2336 #line 529 "llgrammar.y"
2337 { g_inTypeDef = FALSE; ;
2340 #line 530 "llgrammar.y"
2341 { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
2344 #line 532 "llgrammar.y"
2345 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
2348 #line 534 "llgrammar.y"
2349 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
2352 #line 550 "llgrammar.y"
2353 { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
2356 #line 552 "llgrammar.y"
2357 { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
2360 #line 555 "llgrammar.y"
2361 { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
2364 #line 557 "llgrammar.y"
2365 { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
2368 #line 558 "llgrammar.y"
2369 { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
2372 #line 561 "llgrammar.y"
2373 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2376 #line 562 "llgrammar.y"
2377 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2380 #line 570 "llgrammar.y"
2381 { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
2384 #line 572 "llgrammar.y"
2385 { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
2388 #line 576 "llgrammar.y"
2389 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
2392 #line 578 "llgrammar.y"
2393 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
2396 #line 580 "llgrammar.y"
2397 { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
2400 #line 582 "llgrammar.y"
2401 { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
2404 #line 585 "llgrammar.y"
2405 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2408 #line 586 "llgrammar.y"
2409 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2412 #line 590 "llgrammar.y"
2413 { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
2416 #line 592 "llgrammar.y"
2417 { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
2420 #line 593 "llgrammar.y"
2421 { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
2424 #line 597 "llgrammar.y"
2425 { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
2428 #line 598 "llgrammar.y"
2429 { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
2432 #line 602 "llgrammar.y"
2433 { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
2436 #line 603 "llgrammar.y"
2437 { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
2440 #line 606 "llgrammar.y"
2441 { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
2444 #line 607 "llgrammar.y"
2445 { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
2448 #line 608 "llgrammar.y"
2449 { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
2450 yyvsp[-1].name, yyvsp[0].signature); ;
2453 #line 612 "llgrammar.y"
2454 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
2457 #line 613 "llgrammar.y"
2458 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
2461 #line 621 "llgrammar.y"
2462 { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
2465 #line 623 "llgrammar.y"
2466 { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
2469 #line 626 "llgrammar.y"
2470 { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
2473 #line 627 "llgrammar.y"
2474 { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
2477 #line 631 "llgrammar.y"
2478 { yyval.globals = varDeclarationNodeList_new (); ;
2481 #line 633 "llgrammar.y"
2482 { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
2485 #line 636 "llgrammar.y"
2486 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
2489 #line 637 "llgrammar.y"
2490 { yyval.vardeclaration = makeInternalStateNode (); ;
2493 #line 638 "llgrammar.y"
2494 { yyval.vardeclaration = makeFileSystemNode (); ;
2497 #line 641 "llgrammar.y"
2498 { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
2501 #line 642 "llgrammar.y"
2502 { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
2505 #line 646 "llgrammar.y"
2506 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
2509 #line 649 "llgrammar.y"
2510 { yyval.letdecls = letDeclNodeList_new (); ;
2513 #line 650 "llgrammar.y"
2514 { yyval.letdecls = yyvsp[-1].letdecls; ;
2517 #line 653 "llgrammar.y"
2518 { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
2521 #line 654 "llgrammar.y"
2522 { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
2525 #line 657 "llgrammar.y"
2526 { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
2529 #line 658 "llgrammar.y"
2530 { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
2533 #line 663 "llgrammar.y"
2534 { yyval.lclpredicate = (lclPredicateNode)0; ;
2537 #line 664 "llgrammar.y"
2538 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2541 #line 667 "llgrammar.y"
2542 { yyval.lclpredicate = (lclPredicateNode)0; ;
2545 #line 668 "llgrammar.y"
2546 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2549 #line 671 "llgrammar.y"
2550 { yyval.modify = (modifyNode)0; ;
2553 #line 672 "llgrammar.y"
2554 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
2557 #line 673 "llgrammar.y"
2558 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
2561 #line 674 "llgrammar.y"
2562 { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
2565 #line 677 "llgrammar.y"
2566 { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
2569 #line 678 "llgrammar.y"
2570 { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
2573 #line 681 "llgrammar.y"
2574 { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
2577 #line 682 "llgrammar.y"
2578 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
2581 #line 683 "llgrammar.y"
2582 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
2585 #line 684 "llgrammar.y"
2586 { yyval.storeref = makeStoreRefNodeInternal (); ;
2589 #line 685 "llgrammar.y"
2590 { yyval.storeref = makeStoreRefNodeSystem (); ;
2593 #line 688 "llgrammar.y"
2594 { yyval.lclpredicate = (lclPredicateNode)0; ;
2597 #line 689 "llgrammar.y"
2598 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2601 #line 692 "llgrammar.y"
2602 { yyval.lclpredicate = (lclPredicateNode)0; ;
2605 #line 693 "llgrammar.y"
2606 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2609 #line 696 "llgrammar.y"
2610 { yyval.paramlist = paramNodeList_new (); ;
2613 #line 697 "llgrammar.y"
2614 { yyval.paramlist = yyvsp[0].paramlist; ;
2617 #line 701 "llgrammar.y"
2618 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
2621 #line 702 "llgrammar.y"
2622 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
2625 #line 705 "llgrammar.y"
2626 { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
2629 #line 706 "llgrammar.y"
2630 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
2633 #line 709 "llgrammar.y"
2634 { yyval.program = (programNode)0; ;
2637 #line 710 "llgrammar.y"
2638 { yyval.program = yyvsp[-1].program; ;
2641 #line 711 "llgrammar.y"
2642 { yyval.program = yyvsp[-2].program; ;
2645 #line 714 "llgrammar.y"
2646 { yyval.program = makeProgramNode (yyvsp[0].stmt); ;
2649 #line 717 "llgrammar.y"
2650 { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
2653 #line 719 "llgrammar.y"
2654 { programNodeList x = programNodeList_new ();
2655 programNodeList_addh (x, yyvsp[-1].program);
2656 yyval.program = makeProgramNodeAction (x, ACT_ITER);
2660 #line 724 "llgrammar.y"
2661 { programNodeList x = programNodeList_new ();
2662 programNodeList_addh (x, yyvsp[-2].program);
2663 programNodeList_addh (x, yyvsp[0].program);
2664 yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE);
2668 #line 730 "llgrammar.y"
2669 { programNodeList x = programNodeList_new ();
2670 programNodeList_addh (x, yyvsp[-2].program);
2671 programNodeList_addh (x, yyvsp[0].program);
2672 yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE);
2676 #line 738 "llgrammar.y"
2677 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2680 #line 740 "llgrammar.y"
2681 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
2684 #line 742 "llgrammar.y"
2685 { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
2688 #line 744 "llgrammar.y"
2689 { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2692 #line 747 "llgrammar.y"
2693 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
2696 #line 748 "llgrammar.y"
2697 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
2700 #line 752 "llgrammar.y"
2701 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
2704 #line 753 "llgrammar.y"
2705 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
2708 #line 754 "llgrammar.y"
2709 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
2712 #line 755 "llgrammar.y"
2713 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
2716 #line 756 "llgrammar.y"
2717 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
2720 #line 758 "llgrammar.y"
2721 { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
2724 #line 760 "llgrammar.y"
2725 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
2728 #line 763 "llgrammar.y"
2729 { yyval.abstbody = (abstBodyNode)0; ;
2732 #line 764 "llgrammar.y"
2733 { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
2736 #line 765 "llgrammar.y"
2737 { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
2740 #line 766 "llgrammar.y"
2741 { yyval.abstbody = (abstBodyNode)0; ;
2744 #line 769 "llgrammar.y"
2745 { yyval.fcns = fcnNodeList_new (); ;
2748 #line 770 "llgrammar.y"
2749 { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
2752 #line 773 "llgrammar.y"
2753 { yyval.lclpredicate = (lclPredicateNode)0; ;
2756 #line 777 "llgrammar.y"
2757 { g_inTypeDef = FALSE; ;
2760 #line 778 "llgrammar.y"
2761 { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
2762 checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
2763 yyval.lclpredicate = yyvsp[-1].lclpredicate;
2764 symtable_exitScope (g_symtab);
2769 #line 786 "llgrammar.y"
2770 { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
2773 #line 788 "llgrammar.y"
2774 { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
2777 #line 791 "llgrammar.y"
2778 { declareForwardType (yyvsp[0].declare); ;
2781 #line 792 "llgrammar.y"
2782 { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
2785 #line 795 "llgrammar.y"
2786 { yyval.abstbody = (abstBodyNode)0; ;
2789 #line 796 "llgrammar.y"
2790 { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2793 #line 799 "llgrammar.y"
2794 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
2797 #line 800 "llgrammar.y"
2798 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
2801 #line 801 "llgrammar.y"
2802 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
2805 #line 802 "llgrammar.y"
2806 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
2809 #line 803 "llgrammar.y"
2810 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
2813 #line 804 "llgrammar.y"
2814 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
2817 #line 805 "llgrammar.y"
2818 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
2821 #line 806 "llgrammar.y"
2822 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
2825 #line 807 "llgrammar.y"
2826 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
2829 #line 808 "llgrammar.y"
2830 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
2833 #line 816 "llgrammar.y"
2834 { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
2837 #line 817 "llgrammar.y"
2838 { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
2841 #line 823 "llgrammar.y"
2842 { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
2845 #line 825 "llgrammar.y"
2846 { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
2849 #line 830 "llgrammar.y"
2850 { yyval.typequal = qual_createOut (); ;
2853 #line 831 "llgrammar.y"
2854 { yyval.typequal = qual_createUnused (); ;
2857 #line 832 "llgrammar.y"
2858 { yyval.typequal = qual_createSef (); ;
2861 #line 833 "llgrammar.y"
2862 { yyval.typequal = qual_createOnly (); ;
2865 #line 834 "llgrammar.y"
2866 { yyval.typequal = qual_createOwned (); ;
2869 #line 835 "llgrammar.y"
2870 { yyval.typequal = qual_createDependent (); ;
2873 #line 836 "llgrammar.y"
2874 { yyval.typequal = qual_createKeep (); ;
2877 #line 837 "llgrammar.y"
2878 { yyval.typequal = qual_createKept (); ;
2881 #line 838 "llgrammar.y"
2882 { yyval.typequal = qual_createObserver (); ;
2885 #line 839 "llgrammar.y"
2886 { yyval.typequal = qual_createExits (); ;
2889 #line 840 "llgrammar.y"
2890 { yyval.typequal = qual_createMayExit (); ;
2893 #line 841 "llgrammar.y"
2894 { yyval.typequal = qual_createTrueExit (); ;
2897 #line 842 "llgrammar.y"
2898 { yyval.typequal = qual_createFalseExit (); ;
2901 #line 843 "llgrammar.y"
2902 { yyval.typequal = qual_createNeverExit (); ;
2905 #line 844 "llgrammar.y"
2906 { yyval.typequal = qual_createOnly (); ;
2909 #line 845 "llgrammar.y"
2910 { yyval.typequal = qual_createShared (); ;
2913 #line 846 "llgrammar.y"
2914 { yyval.typequal = qual_createUnique (); ;
2917 #line 847 "llgrammar.y"
2918 { yyval.typequal = qual_createChecked (); ;
2921 #line 848 "llgrammar.y"
2922 { yyval.typequal = qual_createUnchecked (); ;
2925 #line 849 "llgrammar.y"
2926 { yyval.typequal = qual_createCheckedStrict (); ;
2929 #line 850 "llgrammar.y"
2930 { yyval.typequal = qual_createTrueNull (); ;
2933 #line 851 "llgrammar.y"
2934 { yyval.typequal = qual_createFalseNull (); ;
2937 #line 852 "llgrammar.y"
2938 { yyval.typequal = qual_createRelNull (); ;
2941 #line 853 "llgrammar.y"
2942 { yyval.typequal = qual_createRelDef (); ;
2945 #line 854 "llgrammar.y"
2946 { yyval.typequal = qual_createRefCounted (); ;
2949 #line 855 "llgrammar.y"
2950 { yyval.typequal = qual_createRefs (); ;
2953 #line 856 "llgrammar.y"
2954 { yyval.typequal = qual_createNewRef (); ;
2957 #line 857 "llgrammar.y"
2958 { yyval.typequal = qual_createKillRef (); ;
2961 #line 858 "llgrammar.y"
2962 { yyval.typequal = qual_createNull (); ;
2965 #line 859 "llgrammar.y"
2966 { yyval.typequal = qual_createNotNull (); ;
2969 #line 860 "llgrammar.y"
2970 { yyval.typequal = qual_createReturned (); ;
2973 #line 861 "llgrammar.y"
2974 { yyval.typequal = qual_createExposed (); ;
2977 #line 862 "llgrammar.y"
2978 { yyval.typequal = qual_createPartial (); ;
2981 #line 863 "llgrammar.y"
2982 { yyval.typequal = qual_createNullTerminated () ; ;
2985 #line 864 "llgrammar.y"
2986 { yyval.typequal = qual_createUndef (); ;
2989 #line 865 "llgrammar.y"
2990 { yyval.typequal = qual_createKilled (); ;
2993 #line 869 "llgrammar.y"
2994 { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
2997 #line 871 "llgrammar.y"
2998 { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
3001 #line 873 "llgrammar.y"
3002 { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
3005 #line 875 "llgrammar.y"
3006 { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
3009 #line 877 "llgrammar.y"
3010 { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
3013 #line 887 "llgrammar.y"
3014 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
3015 yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
3018 #line 891 "llgrammar.y"
3019 { yyval.count = 1; ;
3022 #line 892 "llgrammar.y"
3023 { yyval.count = yyvsp[-1].count + 1; ;
3026 #line 896 "llgrammar.y"
3027 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
3030 #line 898 "llgrammar.y"
3031 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3034 #line 900 "llgrammar.y"
3035 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
3038 #line 902 "llgrammar.y"
3039 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3042 #line 904 "llgrammar.y"
3043 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
3046 #line 906 "llgrammar.y"
3047 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
3050 #line 909 "llgrammar.y"
3051 { yyval.ltok = ltoken_undefined; ;
3054 #line 913 "llgrammar.y"
3055 { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
3058 #line 914 "llgrammar.y"
3059 { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
3062 #line 919 "llgrammar.y"
3063 { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
3066 #line 923 "llgrammar.y"
3067 { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
3070 #line 925 "llgrammar.y"
3071 { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
3074 #line 928 "llgrammar.y"
3078 #line 929 "llgrammar.y"
3082 #line 933 "llgrammar.y"
3083 { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
3086 #line 935 "llgrammar.y"
3087 { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
3090 #line 938 "llgrammar.y"
3091 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3094 #line 939 "llgrammar.y"
3095 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3098 #line 949 "llgrammar.y"
3099 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3102 #line 950 "llgrammar.y"
3103 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3106 #line 953 "llgrammar.y"
3107 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3110 #line 954 "llgrammar.y"
3111 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3114 #line 955 "llgrammar.y"
3115 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3118 #line 956 "llgrammar.y"
3119 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3122 #line 957 "llgrammar.y"
3123 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3126 #line 958 "llgrammar.y"
3127 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3130 #line 961 "llgrammar.y"
3131 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3134 #line 962 "llgrammar.y"
3135 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3138 #line 963 "llgrammar.y"
3139 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3142 #line 964 "llgrammar.y"
3143 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3146 #line 965 "llgrammar.y"
3147 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3150 #line 966 "llgrammar.y"
3151 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3154 #line 975 "llgrammar.y"
3155 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3158 #line 976 "llgrammar.y"
3159 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3162 #line 977 "llgrammar.y"
3163 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3166 #line 978 "llgrammar.y"
3167 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3170 #line 979 "llgrammar.y"
3171 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3174 #line 985 "llgrammar.y"
3175 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3178 #line 986 "llgrammar.y"
3179 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3182 #line 987 "llgrammar.y"
3183 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3186 #line 997 "llgrammar.y"
3187 { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3190 #line 998 "llgrammar.y"
3191 { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3194 #line 999 "llgrammar.y"
3195 { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
3198 #line 1004 "llgrammar.y"
3199 { yyval.abstDecl = (abstDeclaratorNode)0; ;
3202 #line 1005 "llgrammar.y"
3203 { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
3206 #line 1008 "llgrammar.y"
3207 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3210 #line 1009 "llgrammar.y"
3211 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3214 #line 1010 "llgrammar.y"
3215 { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
3218 #line 1011 "llgrammar.y"
3219 { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
3222 #line 1012 "llgrammar.y"
3223 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3226 #line 1013 "llgrammar.y"
3227 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3230 #line 1014 "llgrammar.y"
3231 { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
3234 #line 1015 "llgrammar.y"
3235 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3238 #line 1018 "llgrammar.y"
3239 { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
3242 #line 1019 "llgrammar.y"
3243 { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
3246 #line 1023 "llgrammar.y"
3247 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
3250 #line 1025 "llgrammar.y"
3251 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3254 #line 1027 "llgrammar.y"
3255 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3258 #line 1029 "llgrammar.y"
3259 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3262 #line 1031 "llgrammar.y"
3263 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
3264 opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3267 #line 1034 "llgrammar.y"
3268 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3271 #line 1036 "llgrammar.y"
3272 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3275 #line 1038 "llgrammar.y"
3276 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3279 #line 1040 "llgrammar.y"
3280 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3283 #line 1042 "llgrammar.y"
3284 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3287 #line 1044 "llgrammar.y"
3288 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3291 #line 1052 "llgrammar.y"
3292 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3295 #line 1054 "llgrammar.y"
3296 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3299 #line 1056 "llgrammar.y"
3300 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
3301 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3304 #line 1059 "llgrammar.y"
3305 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
3306 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3309 #line 1062 "llgrammar.y"
3310 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
3311 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3314 #line 1065 "llgrammar.y"
3315 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
3316 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3319 #line 1082 "llgrammar.y"
3320 { yyval.count = 0; ;
3323 #line 1086 "llgrammar.y"
3324 { yyval.count = 1; ;
3327 #line 1087 "llgrammar.y"
3328 { yyval.count = yyvsp[-2].count + 1; ;
3331 #line 1094 "llgrammar.y"
3332 { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3335 #line 1097 "llgrammar.y"
3336 { yyval.ltokenList = ltokenList_new (); ;
3339 #line 1101 "llgrammar.y"
3340 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3343 #line 1102 "llgrammar.y"
3344 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3347 #line 1105 "llgrammar.y"
3348 { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
3351 #line 1108 "llgrammar.y"
3352 { yyval.term = checkSort (yyvsp[0].term); ;
3355 #line 1115 "llgrammar.y"
3356 { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
3359 #line 1117 "llgrammar.y"
3360 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
3363 #line 1123 "llgrammar.y"
3364 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
3365 symtable_exitScope (g_symtab);
3369 #line 1127 "llgrammar.y"
3370 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3373 #line 1129 "llgrammar.y"
3374 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3377 #line 1133 "llgrammar.y"
3378 { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
3381 #line 1134 "llgrammar.y"
3382 { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
3385 #line 1142 "llgrammar.y"
3386 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
3389 #line 1145 "llgrammar.y"
3390 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3393 #line 1146 "llgrammar.y"
3394 { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
3397 #line 1149 "llgrammar.y"
3398 { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
3401 #line 1150 "llgrammar.y"
3402 { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
3405 #line 1154 "llgrammar.y"
3406 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3409 #line 1155 "llgrammar.y"
3410 { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3413 #line 1156 "llgrammar.y"
3414 { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
3417 #line 1157 "llgrammar.y"
3418 { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
3421 #line 1158 "llgrammar.y"
3422 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3425 #line 1159 "llgrammar.y"
3426 { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3429 #line 1162 "llgrammar.y"
3430 { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3433 #line 1167 "llgrammar.y"
3434 { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok);
3435 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3438 #line 1170 "llgrammar.y"
3439 { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3442 #line 1172 "llgrammar.y"
3443 { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok);
3444 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok));
3448 #line 1176 "llgrammar.y"
3449 { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3452 #line 1179 "llgrammar.y"
3453 { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3456 #line 1180 "llgrammar.y"
3457 { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3460 #line 1183 "llgrammar.y"
3461 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3464 #line 1184 "llgrammar.y"
3465 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3468 #line 1188 "llgrammar.y"
3469 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
3472 #line 1190 "llgrammar.y"
3473 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3476 #line 1192 "llgrammar.y"
3477 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3480 #line 1195 "llgrammar.y"
3481 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
3484 #line 1197 "llgrammar.y"
3485 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3488 #line 1199 "llgrammar.y"
3489 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3492 #line 1201 "llgrammar.y"
3493 { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
3497 #line 1204 "llgrammar.y"
3498 { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
3501 #line 1206 "llgrammar.y"
3502 { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3505 #line 1209 "llgrammar.y"
3506 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3509 #line 1210 "llgrammar.y"
3510 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3513 #line 1220 "llgrammar.y"
3514 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3517 #line 1221 "llgrammar.y"
3518 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3521 #line 1222 "llgrammar.y"
3522 { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
3525 #line 1223 "llgrammar.y"
3526 { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
3529 #line 1225 "llgrammar.y"
3530 { termNodeList x = termNodeList_new ();
3531 termNodeList_addh (x, yyvsp[-1].term);
3532 yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok);
3536 #line 1230 "llgrammar.y"
3537 { termNodeList x = termNodeList_new ();
3538 termNodeList_addh (x, yyvsp[-3].term);
3539 termNodeList_addh (x, yyvsp[-1].term);
3540 yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok);
3544 #line 1235 "llgrammar.y"
3545 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
3548 #line 1245 "llgrammar.y"
3549 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
3552 #line 1246 "llgrammar.y"
3553 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
3556 #line 1247 "llgrammar.y"
3557 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
3560 #line 1248 "llgrammar.y"
3561 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
3564 #line 1252 "llgrammar.y"
3565 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
3568 #line 1254 "llgrammar.y"
3569 { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
3572 #line 1257 "llgrammar.y"
3573 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
3574 si->kind = SPE_QUANT;
3575 symtable_enterScope (g_symtab, si); ;
3578 #line 1261 "llgrammar.y"
3579 { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
3582 #line 1264 "llgrammar.y"
3583 { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
3586 #line 1265 "llgrammar.y"
3587 { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
3590 #line 1268 "llgrammar.y"
3591 { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
3594 #line 1269 "llgrammar.y"
3595 { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
3598 /* the action file gets copied in in place of this dollarsign */
3599 #line 498 "/usr/share/misc/bison.simple"
3610 short *ssp1 = yyss - 1;
3611 fprintf (stderr, "state stack now");
3612 while (ssp1 != yyssp)
3613 fprintf (stderr, " %d", *++ssp1);
3614 fprintf (stderr, "\n");
3624 yylsp->first_line = yylloc.first_line;
3625 yylsp->first_column = yylloc.first_column;
3626 yylsp->last_line = (yylsp-1)->last_line;
3627 yylsp->last_column = (yylsp-1)->last_column;
3632 yylsp->last_line = (yylsp+yylen-1)->last_line;
3633 yylsp->last_column = (yylsp+yylen-1)->last_column;
3637 /* Now "shift" the result of the reduction.
3638 Determine what state that goes to,
3639 based on the state we popped back to
3640 and the rule number reduced by. */
3644 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3645 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3646 yystate = yytable[yystate];
3648 yystate = yydefgoto[yyn - YYNTBASE];
3652 yyerrlab: /* here on detecting error */
3655 /* If not already recovering from an error, report this error. */
3659 #ifdef YYERROR_VERBOSE
3660 yyn = yypact[yystate];
3662 if (yyn > YYFLAG && yyn < YYLAST)
3669 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3670 for (x = (yyn < 0 ? -yyn : 0);
3671 x < (sizeof(yytname) / sizeof(char *)); x++)
3672 if (yycheck[x + yyn] == x)
3673 size += strlen(yytname[x]) + 15, count++;
3674 msg = (char *) malloc(size + 15);
3677 strcpy(msg, "parse error");
3682 for (x = (yyn < 0 ? -yyn : 0);
3683 x < (sizeof(yytname) / sizeof(char *)); x++)
3684 if (yycheck[x + yyn] == x)
3686 strcat(msg, count == 0 ? ", expecting `" : " or `");
3687 strcat(msg, yytname[x]);
3696 yyerror ("parse error; also virtual memory exceeded");
3699 #endif /* YYERROR_VERBOSE */
3700 yyerror("parse error");
3704 yyerrlab1: /* here on error raised explicitly by an action */
3706 if (yyerrstatus == 3)
3708 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3710 /* return failure if at end of input */
3711 if (yychar == YYEOF)
3716 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3722 /* Else will try to reuse lookahead token
3723 after shifting the error token. */
3725 yyerrstatus = 3; /* Each real token shifted decrements this */
3729 yyerrdefault: /* current state does not do anything special for the error token. */
3732 /* This is wrong; only states that explicitly want error tokens
3733 should shift them. */
3734 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3735 if (yyn) goto yydefault;
3738 yyerrpop: /* pop the current state because it cannot handle the error token */
3740 if (yyssp == yyss) YYABORT;
3750 short *ssp1 = yyss - 1;
3751 fprintf (stderr, "Error: state stack now");
3752 while (ssp1 != yyssp)
3753 fprintf (stderr, " %d", *++ssp1);
3754 fprintf (stderr, "\n");
3760 yyn = yypact[yystate];
3765 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3784 fprintf(stderr, "Shifting error token, ");
3795 #line 1284 "llgrammar.y"
3798 # include "bison.reset"
3801 ** yytext is set in lex scanner
3802 ** extern YYSTYPE yylval;
3803 ** yylval is defined by code generated by bison
3806 void ylerror (char *s)
3809 ** This resetting of the left context is very important when multiple
3810 ** files are to be parsed. We do not want failures to propagate.
3811 ** Lex/Yacc does not reset the flags when the parsing goes bad.
3816 lclfatalerror (yllval.ltok,
3817 message ("%s: Token code: %s, Token String: %s",
3818 cstring_fromChars (s),
3819 ltoken_unparseCodeName (yllval.ltok),
3820 ltoken_getRawString (yllval.ltok)));
3824 static void yyprint (FILE *f, int t, YYSTYPE value)
3826 fprintf (f, " type: %d (%s)", t,
3827 cstring_toCharsSafe (ltoken_getRawString (value.ltok)));