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.28 */
51 #define YYBISON 1 /* Identify Bison output. */
53 #define yyparse ylparse
55 #define yyerror ylerror
58 #define yydebug yldebug
59 #define yynerrs ylnerrs
62 #define POSTFIX_OP 259
65 #define LLT_VERTICALBAR 262
66 #define ITERATION_OP 263
68 #define LLT_LBRACKET 265
70 #define LLT_IF_THEN_ELSE 267
73 #define equationSym 270
74 #define commentSym 271
75 #define LLT_WHITESPACE 272
77 #define LLT_TYPEDEF_NAME 274
78 #define quantifierSym 275
90 #define LLT_EQUALS 287
91 #define LLT_LBRACE 288
92 #define LLT_RBRACE 289
93 #define LLT_RBRACKET 290
98 #define LLT_CFLOAT 295
99 #define LLT_CINTEGER 296
100 #define LLT_LCSTRING 297
102 #define LLT_ANYTHING 299
105 #define LLT_CLAIMS 302
106 #define LLT_CHECKS 303
107 #define LLT_CONSTANT 304
109 #define LLT_ENSURES 306
111 #define LLT_FRESH 308
113 #define LLT_IMMUTABLE 310
114 #define LLT_IMPORTS 311
115 #define LLT_CONSTRAINT 312
116 #define LLT_ISSUB 313
118 #define LLT_MODIFIES 315
119 #define LLT_MUTABLE 316
120 #define LLT_NOTHING 317
121 #define LLT_INTERNAL 318
122 #define LLT_FILESYS 319
127 #define LLT_PARTIAL 324
128 #define LLT_OWNED 325
129 #define LLT_DEPENDENT 326
133 #define LLT_SHARED 330
134 #define LLT_UNIQUE 331
135 #define LLT_UNUSED 332
136 #define LLT_EXITS 333
137 #define LLT_MAYEXIT 334
138 #define LLT_NEVEREXIT 335
139 #define LLT_TRUEEXIT 336
140 #define LLT_FALSEEXIT 337
141 #define LLT_UNDEF 338
142 #define LLT_KILLED 339
143 #define LLT_CHECKMOD 340
144 #define LLT_CHECKED 341
145 #define LLT_UNCHECKED 342
146 #define LLT_CHECKEDSTRICT 343
147 #define LLT_TRUENULL 344
148 #define LLT_FALSENULL 345
149 #define LLT_LNULL 346
150 #define LLT_LNOTNULL 347
151 #define LLT_RETURNED 348
152 #define LLT_OBSERVER 349
153 #define LLT_EXPOSED 350
154 #define LLT_REFCOUNTED 351
156 #define LLT_RELNULL 353
157 #define LLT_RELDEF 354
158 #define LLT_KILLREF 355
159 #define LLT_NULLTERMINATED 356
160 #define LLT_TEMPREF 357
161 #define LLT_NEWREF 358
162 #define LLT_PRIVATE 359
163 #define LLT_REQUIRES 360
164 #define LLT_RESULT 361
165 #define LLT_SIZEOF 362
167 #define LLT_TAGGEDUNION 364
170 #define LLT_TYPEDEF 367
171 #define LLT_UNCHANGED 368
174 #define LLT_CONST 371
175 #define LLT_DOUBLE 372
177 #define LLT_FLOAT 374
180 #define LLT_YIELD 377
182 #define LLT_SHORT 379
183 #define LLT_SIGNED 380
184 #define LLT_UNKNOWN 381
185 #define LLT_STRUCT 382
186 #define LLT_TELIPSIS 383
187 #define LLT_UNION 384
188 #define LLT_UNSIGNED 385
190 #define LLT_VOLATILE 387
191 #define LLT_PRINTFLIKE 388
192 #define LLT_SCANFLIKE 389
193 #define LLT_MESSAGELIKE 390
195 #line 36 "llgrammar.y"
198 # include "lclintMacros.nf"
199 # include "llbasic.h"
200 # include "lclscan.h"
201 # include "checking.h"
202 # include "lslparse.h"
204 # include "usymtab_interface.h"
207 static /*@unused@*/ void yyprint ();
211 void ylerror (char *) /*@modifies *g_msgstream@*/ ;
214 bool g_inTypeDef = FALSE;
216 /*@constant int YYDEBUG;@*/
220 # define YYPRINT(file, type, value) yyprint (file, type, value)
223 ** This is necessary, or else when the bison-generated code #include's malloc.h,
224 ** there will be a parse error.
226 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
227 ** in bison-generated files under Win32.
237 #line 78 "llgrammar.y"
240 ltoken ltok; /* a leaf is also an ltoken */
243 /*@only@*/ ltokenList ltokenList;
244 /*@only@*/ abstDeclaratorNode abstDecl;
245 /*@only@*/ declaratorNode declare;
246 /*@only@*/ declaratorNodeList declarelist;
247 /*@only@*/ typeExpr typeexpr;
248 /*@only@*/ arrayQualNode array;
249 /*@only@*/ quantifierNode quantifier;
250 /*@only@*/ quantifierNodeList quantifiers;
251 /*@only@*/ varNode var;
252 /*@only@*/ varNodeList vars;
253 /*@only@*/ storeRefNode storeref;
254 /*@only@*/ storeRefNodeList storereflist;
255 /*@only@*/ termNode term;
256 /*@only@*/ termNodeList termlist;
257 /*@only@*/ programNode program;
258 /*@only@*/ stmtNode stmt;
259 /*@only@*/ claimNode claim;
260 /*@only@*/ typeNode type;
261 /*@only@*/ iterNode iter;
262 /*@only@*/ fcnNode fcn;
263 /*@only@*/ fcnNodeList fcns;
264 /*@only@*/ letDeclNode letdecl;
265 /*@only@*/ letDeclNodeList letdecls;
266 /*@only@*/ lclPredicateNode lclpredicate;
267 /*@only@*/ modifyNode modify;
268 /*@only@*/ paramNode param;
269 /*@only@*/ paramNodeList paramlist;
270 /*@only@*/ declaratorInvNodeList declaratorinvs;
271 /*@only@*/ declaratorInvNode declaratorinv;
272 /*@only@*/ abstBodyNode abstbody;
273 /*@only@*/ abstractNode abstract;
274 /*@only@*/ exposedNode exposed;
275 /* taggedUnionNode taggedunion; */
276 /*@only@*/ globalList globals;
277 /*@only@*/ constDeclarationNode constdeclaration;
278 /*@only@*/ varDeclarationNode vardeclaration;
279 /*@only@*/ varDeclarationNodeList vardeclarationlist;
280 /*@only@*/ initDeclNodeList initdecls;
281 /*@only@*/ initDeclNode initdecl;
282 /*@only@*/ stDeclNodeList structdecls;
283 /*@only@*/ stDeclNode structdecl;
284 /*@only@*/ strOrUnionNode structorunion;
285 /*@only@*/ enumSpecNode enumspec;
286 /*@only@*/ lclTypeSpecNode lcltypespec;
287 /*@only@*/ typeNameNode typname;
288 /*@only@*/ opFormNode opform;
289 /*@only@*/ sigNode signature;
290 /*@only@*/ nameNode name;
291 /*@only@*/ typeNameNodeList namelist;
292 /*@only@*/ replaceNode replace;
293 /*@only@*/ replaceNodeList replacelist;
294 /*@only@*/ renamingNode renaming;
295 /*@only@*/ traitRefNode traitref;
296 /*@only@*/ traitRefNodeList traitreflist;
297 /*@only@*/ importNode import;
298 /*@only@*/ importNodeList importlist;
299 /*@only@*/ interfaceNode iface;
300 /*@only@*/ interfaceNodeList interfacelist;
301 /*@only@*/ CTypesNode ctypes;
318 #define YYFLAG -32768
321 #define YYTRANSLATE(x) ((unsigned)(x) <= 390 ? yytranslate[x] : 291)
323 static const short yytranslate[] = { 0,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
350 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
351 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
352 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
353 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
354 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
355 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
356 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
357 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
358 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
359 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
360 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
361 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
362 127, 128, 129, 130, 131, 132, 133, 134, 135, 136
366 static const short yyprhs[] = { 0,
367 0, 1, 5, 6, 9, 11, 13, 14, 17, 20,
368 21, 24, 26, 28, 30, 34, 38, 40, 42, 44,
369 46, 48, 50, 57, 58, 60, 62, 66, 69, 71,
370 72, 76, 78, 80, 82, 84, 89, 93, 98, 103,
371 105, 107, 109, 111, 113, 114, 128, 129, 144, 145,
372 159, 164, 165, 166, 173, 174, 175, 183, 184, 185,
373 193, 194, 195, 202, 203, 204, 211, 214, 217, 219,
374 223, 225, 229, 231, 233, 237, 239, 241, 245, 247,
375 252, 256, 263, 265, 269, 271, 273, 277, 279, 283,
376 285, 289, 293, 297, 302, 304, 306, 308, 310, 312,
377 316, 318, 322, 323, 326, 330, 333, 336, 337, 340,
378 345, 346, 350, 352, 356, 362, 366, 368, 369, 373,
379 374, 378, 379, 383, 387, 391, 393, 397, 399, 401,
380 404, 406, 408, 409, 413, 414, 418, 419, 421, 423,
381 425, 429, 431, 435, 436, 441, 447, 449, 453, 456,
382 460, 464, 469, 473, 479, 486, 488, 492, 494, 496,
383 499, 502, 506, 510, 514, 519, 521, 525, 530, 534,
384 535, 538, 539, 541, 542, 549, 551, 555, 556, 560,
385 561, 565, 567, 569, 571, 573, 575, 577, 579, 581,
386 583, 585, 587, 590, 592, 594, 596, 598, 600, 602,
387 604, 606, 608, 610, 612, 614, 616, 618, 620, 622,
388 624, 626, 628, 630, 632, 634, 636, 638, 640, 642,
389 644, 646, 648, 650, 652, 654, 656, 658, 660, 662,
390 664, 666, 668, 670, 672, 675, 681, 683, 686, 688,
391 691, 692, 699, 700, 707, 710, 713, 714, 716, 718,
392 721, 725, 727, 731, 732, 734, 741, 744, 746, 750,
393 752, 754, 756, 760, 763, 766, 770, 775, 777, 781,
394 784, 787, 791, 796, 798, 801, 804, 808, 813, 816,
395 819, 822, 825, 829, 831, 832, 834, 838, 841, 843,
396 845, 848, 852, 856, 861, 864, 868, 875, 877, 880,
397 883, 887, 891, 896, 901, 907, 911, 916, 921, 927,
398 930, 933, 937, 941, 943, 945, 947, 949, 951, 953,
399 955, 956, 958, 960, 964, 966, 968, 973, 974, 976,
400 978, 982, 984, 986, 993, 995, 999, 1001, 1006, 1010,
401 1014, 1016, 1019, 1022, 1024, 1026, 1028, 1031, 1033, 1036,
402 1039, 1043, 1045, 1047, 1050, 1053, 1057, 1059, 1062, 1066,
403 1068, 1074, 1078, 1083, 1086, 1090, 1093, 1095, 1099, 1103,
404 1105, 1110, 1112, 1115, 1119, 1123, 1127, 1132, 1136, 1138,
405 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1159, 1164, 1169,
406 1174, 1181, 1186, 1188, 1190, 1192, 1194, 1196, 1199, 1200,
407 1204, 1206, 1210, 1214, 1219, 1221, 1223, 1225, 1227, 1229,
411 static const short yyrhs[] = { -1,
412 139, 138, 141, 0, 0, 139, 140, 0, 144, 0,
413 145, 0, 0, 146, 142, 0, 151, 142, 0, 0,
414 142, 143, 0, 146, 0, 151, 0, 145, 0, 57,
415 175, 7, 0, 115, 179, 7, 0, 154, 0, 155,
416 0, 156, 0, 158, 0, 161, 0, 147, 0, 122,
417 285, 10, 148, 37, 7, 0, 0, 149, 0, 150,
418 0, 149, 32, 150, 0, 123, 244, 0, 244, 0,
419 0, 109, 152, 153, 0, 154, 0, 155, 0, 156,
420 0, 158, 0, 50, 227, 189, 7, 0, 227, 189,
421 7, 0, 117, 227, 189, 7, 0, 133, 227, 189,
422 7, 0, 163, 0, 172, 0, 134, 0, 135, 0,
423 136, 0, 0, 227, 240, 191, 159, 34, 193, 195,
424 199, 200, 201, 204, 205, 35, 0, 0, 157, 227,
425 240, 191, 160, 34, 193, 195, 199, 200, 201, 204,
426 205, 35, 0, 0, 48, 287, 10, 206, 37, 191,
427 162, 34, 195, 200, 209, 204, 35, 0, 48, 284,
428 287, 7, 0, 0, 0, 62, 164, 112, 20, 165,
429 214, 0, 0, 0, 62, 166, 97, 112, 20, 167,
430 214, 0, 0, 0, 97, 62, 168, 112, 20, 169,
431 214, 0, 0, 0, 56, 170, 112, 20, 171, 214,
432 0, 0, 0, 113, 227, 173, 219, 174, 7, 0,
433 230, 7, 0, 238, 7, 0, 176, 0, 175, 32,
434 176, 0, 178, 0, 3, 178, 3, 0, 43, 0,
435 178, 0, 177, 32, 178, 0, 283, 0, 180, 0,
436 179, 32, 180, 0, 289, 0, 289, 10, 182, 37,
437 0, 10, 181, 37, 0, 10, 181, 37, 10, 182,
438 37, 0, 289, 0, 181, 32, 289, 0, 184, 0,
439 183, 0, 183, 32, 184, 0, 245, 0, 183, 32,
440 245, 0, 185, 0, 184, 32, 185, 0, 245, 53,
441 223, 0, 245, 53, 186, 0, 245, 53, 186, 256,
442 0, 290, 0, 249, 0, 188, 0, 260, 0, 190,
443 0, 189, 32, 190, 0, 240, 0, 240, 33, 187,
444 0, 0, 191, 192, 0, 227, 189, 7, 0, 64,
445 7, 0, 65, 7, 0, 0, 193, 194, 0, 105,
446 227, 189, 7, 0, 0, 60, 196, 7, 0, 197,
447 0, 196, 32, 197, 0, 285, 31, 198, 46, 260,
448 0, 285, 46, 260, 0, 227, 0, 0, 49, 259,
449 7, 0, 0, 106, 259, 7, 0, 0, 61, 63,
450 7, 0, 61, 45, 7, 0, 61, 202, 7, 0,
451 203, 0, 202, 32, 203, 0, 260, 0, 228, 0,
452 66, 228, 0, 64, 0, 65, 0, 0, 52, 259,
453 7, 0, 0, 48, 259, 7, 0, 0, 207, 0,
454 208, 0, 129, 0, 208, 32, 129, 0, 244, 0,
455 208, 32, 244, 0, 0, 47, 34, 210, 35, 0,
456 47, 34, 210, 7, 35, 0, 211, 0, 10, 210,
457 37, 0, 210, 6, 0, 210, 8, 210, 0, 210,
458 7, 210, 0, 284, 10, 212, 37, 0, 284, 10,
459 37, 0, 285, 33, 284, 10, 37, 0, 285, 33,
460 284, 10, 212, 37, 0, 213, 0, 212, 32, 213,
461 0, 277, 0, 285, 0, 3, 213, 0, 213, 3,
462 0, 213, 3, 213, 0, 10, 213, 37, 0, 284,
463 10, 37, 0, 284, 10, 212, 37, 0, 7, 0,
464 34, 215, 35, 0, 34, 177, 35, 7, 0, 34,
465 35, 7, 0, 0, 215, 158, 0, 0, 217, 0,
466 0, 58, 218, 279, 10, 259, 37, 0, 220, 0,
467 219, 32, 220, 0, 0, 240, 221, 222, 0, 0,
468 34, 216, 35, 0, 132, 0, 116, 0, 118, 0,
469 120, 0, 121, 0, 124, 0, 125, 0, 126, 0,
470 131, 0, 127, 0, 223, 0, 224, 223, 0, 20,
471 0, 224, 0, 67, 0, 78, 0, 68, 0, 69,
472 0, 71, 0, 72, 0, 73, 0, 74, 0, 95,
473 0, 79, 0, 80, 0, 82, 0, 83, 0, 81,
474 0, 75, 0, 76, 0, 77, 0, 87, 0, 88,
475 0, 89, 0, 90, 0, 91, 0, 99, 0, 100,
476 0, 97, 0, 98, 0, 104, 0, 101, 0, 92,
477 0, 93, 0, 94, 0, 96, 0, 70, 0, 102,
478 0, 84, 0, 85, 0, 225, 0, 230, 0, 238,
479 0, 226, 227, 0, 8, 228, 31, 228, 8, 0,
480 227, 0, 227, 229, 0, 6, 0, 229, 6, 0,
481 0, 128, 233, 231, 34, 234, 35, 0, 0, 130,
482 233, 232, 34, 234, 35, 0, 128, 286, 0, 130,
483 286, 0, 0, 286, 0, 235, 0, 234, 235, 0,
484 227, 236, 7, 0, 240, 0, 236, 32, 240, 0,
485 0, 32, 0, 119, 233, 34, 239, 237, 35, 0,
486 119, 286, 0, 25, 0, 239, 32, 25, 0, 242,
487 0, 241, 0, 285, 0, 10, 241, 37, 0, 6,
488 241, 0, 241, 248, 0, 241, 10, 37, 0, 241,
489 10, 207, 37, 0, 20, 0, 10, 242, 37, 0,
490 6, 242, 0, 242, 248, 0, 242, 10, 37, 0,
491 242, 10, 207, 37, 0, 20, 0, 6, 243, 0,
492 243, 248, 0, 243, 10, 37, 0, 243, 10, 207,
493 37, 0, 227, 243, 0, 227, 241, 0, 227, 246,
494 0, 227, 246, 0, 66, 227, 246, 0, 249, 0,
495 0, 247, 0, 10, 247, 37, 0, 6, 247, 0,
496 6, 0, 248, 0, 247, 248, 0, 247, 10, 37,
497 0, 10, 207, 37, 0, 247, 10, 207, 37, 0,
498 11, 36, 0, 11, 188, 36, 0, 55, 27, 111,
499 27, 51, 27, 0, 252, 0, 27, 252, 0, 252,
500 27, 0, 27, 252, 27, 0, 250, 253, 251, 0,
501 27, 250, 253, 251, 0, 250, 253, 251, 27, 0,
502 27, 250, 253, 251, 27, 0, 11, 253, 36, 0,
503 11, 253, 36, 27, 0, 27, 11, 253, 36, 0,
504 27, 11, 253, 36, 27, 0, 12, 283, 0, 26,
505 283, 0, 27, 12, 283, 0, 27, 26, 283, 0,
506 22, 0, 34, 0, 23, 0, 35, 0, 264, 0,
507 14, 0, 39, 0, 0, 254, 0, 27, 0, 254,
508 255, 27, 0, 32, 0, 24, 0, 31, 257, 26,
509 288, 0, 0, 258, 0, 288, 0, 258, 32, 288,
510 0, 260, 0, 261, 0, 55, 261, 111, 261, 51,
511 261, 0, 262, 0, 261, 14, 261, 0, 263, 0,
512 278, 10, 259, 37, 0, 263, 39, 263, 0, 263,
513 33, 263, 0, 265, 0, 268, 266, 0, 268, 267,
514 0, 3, 0, 6, 0, 268, 0, 264, 265, 0,
515 264, 0, 266, 264, 0, 264, 268, 0, 267, 264,
516 268, 0, 273, 0, 269, 0, 269, 273, 0, 273,
517 269, 0, 273, 269, 273, 0, 270, 0, 270, 273,
518 0, 271, 31, 288, 0, 271, 0, 11, 272, 36,
519 31, 288, 0, 11, 272, 36, 0, 11, 36, 31,
520 288, 0, 11, 36, 0, 250, 272, 251, 0, 250,
521 251, 0, 260, 0, 272, 255, 260, 0, 10, 261,
522 37, 0, 285, 0, 290, 10, 274, 37, 0, 276,
523 0, 273, 275, 0, 273, 12, 283, 0, 273, 26,
524 283, 0, 273, 11, 36, 0, 273, 11, 274, 36,
525 0, 273, 31, 288, 0, 261, 0, 274, 32, 261,
526 0, 28, 0, 29, 0, 30, 0, 38, 0, 277,
527 0, 107, 0, 54, 10, 274, 37, 0, 114, 10,
528 44, 37, 0, 114, 10, 202, 37, 0, 108, 10,
529 260, 37, 0, 59, 10, 260, 32, 260, 37, 0,
530 108, 10, 227, 37, 0, 42, 0, 43, 0, 40,
531 0, 41, 0, 279, 0, 278, 279, 0, 0, 21,
532 280, 281, 0, 282, 0, 281, 32, 282, 0, 285,
533 31, 198, 0, 285, 31, 66, 198, 0, 25, 0,
534 20, 0, 25, 0, 25, 0, 283, 0, 283, 0,
535 283, 0, 283, 0, 283, 0
541 static const short yyrline[] = { 0,
542 383, 384, 387, 388, 391, 392, 395, 396, 397, 400,
543 401, 404, 405, 406, 409, 415, 419, 421, 423, 425,
544 427, 429, 433, 437, 438, 441, 443, 447, 448, 451,
545 452, 455, 457, 459, 461, 465, 469, 471, 473, 477,
546 478, 481, 482, 483, 486, 487, 494, 496, 507, 509,
547 512, 516, 516, 517, 518, 518, 520, 521, 522, 523,
548 524, 524, 525, 528, 529, 530, 531, 533, 549, 551,
549 555, 556, 558, 561, 562, 565, 569, 571, 575, 577,
550 579, 581, 585, 586, 589, 591, 593, 596, 598, 601,
551 603, 606, 607, 608, 612, 613, 615, 617, 620, 622,
552 626, 627, 630, 632, 636, 637, 638, 641, 642, 645,
553 649, 650, 653, 654, 657, 658, 660, 663, 664, 667,
554 668, 671, 672, 673, 674, 677, 678, 681, 682, 683,
555 684, 685, 688, 689, 692, 693, 696, 697, 700, 701,
556 702, 705, 706, 709, 710, 711, 714, 715, 718, 723,
557 729, 737, 739, 741, 743, 747, 748, 751, 752, 753,
558 754, 755, 756, 757, 759, 763, 764, 765, 766, 769,
559 770, 773, 774, 777, 777, 786, 787, 791, 792, 795,
560 796, 799, 800, 801, 802, 803, 804, 805, 806, 807,
561 808, 816, 817, 822, 824, 830, 831, 832, 833, 834,
562 835, 836, 837, 838, 839, 840, 841, 842, 843, 844,
563 845, 846, 847, 848, 849, 850, 851, 852, 853, 854,
564 855, 856, 857, 858, 859, 860, 861, 862, 863, 864,
565 865, 868, 870, 872, 874, 876, 885, 886, 891, 892,
566 895, 897, 899, 901, 903, 905, 909, 910, 913, 914,
567 919, 922, 924, 928, 929, 932, 934, 938, 939, 949,
568 950, 953, 954, 955, 956, 957, 958, 961, 962, 963,
569 964, 965, 966, 975, 976, 977, 978, 979, 985, 986,
570 987, 997, 998, 999, 1004, 1005, 1008, 1009, 1010, 1011,
571 1012, 1013, 1014, 1015, 1018, 1019, 1022, 1024, 1026, 1028,
572 1030, 1033, 1035, 1037, 1039, 1041, 1043, 1051, 1053, 1055,
573 1058, 1061, 1064, 1069, 1070, 1073, 1074, 1077, 1078, 1079,
574 1082, 1083, 1086, 1087, 1090, 1091, 1094, 1097, 1098, 1101,
575 1102, 1105, 1108, 1114, 1116, 1117, 1120, 1121, 1126, 1128,
576 1132, 1133, 1134, 1137, 1138, 1141, 1142, 1145, 1146, 1149,
577 1150, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1162, 1163,
578 1166, 1169, 1171, 1175, 1179, 1180, 1183, 1184, 1187, 1189,
579 1191, 1193, 1194, 1196, 1198, 1200, 1203, 1205, 1209, 1210,
580 1213, 1214, 1215, 1216, 1219, 1220, 1221, 1222, 1223, 1224,
581 1229, 1235, 1245, 1246, 1247, 1248, 1251, 1253, 1257, 1261,
582 1264, 1265, 1268, 1269, 1272, 1273, 1276, 1277, 1278, 1279,
588 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
590 static const char * const yytname[] = { "$","error","$undefined.","simpleOp",
591 "PREFIX_OP","POSTFIX_OP","LLT_MULOP","LLT_SEMI","LLT_VERTICALBAR","ITERATION_OP",
592 "LLT_LPAR","LLT_LBRACKET","selectSym","LLT_IF_THEN_ELSE","logicalOp","eqSepSym",
593 "equationSym","commentSym","LLT_WHITESPACE","LLT_EOL","LLT_TYPEDEF_NAME","quantifierSym",
594 "openSym","closeSym","sepSym","simpleId","mapSym","markerSym","preSym","postSym",
595 "anySym","LLT_COLON","LLT_COMMA","LLT_EQUALS","LLT_LBRACE","LLT_RBRACE","LLT_RBRACKET",
596 "LLT_RPAR","LLT_QUOTE","eqOp","LLT_CCHAR","LLT_CFLOAT","LLT_CINTEGER","LLT_LCSTRING",
597 "LLT_ALL","LLT_ANYTHING","LLT_BE","LLT_BODY","LLT_CLAIMS","LLT_CHECKS","LLT_CONSTANT",
598 "LLT_ELSE","LLT_ENSURES","LLT_FOR","LLT_FRESH","LLT_IF","LLT_IMMUTABLE","LLT_IMPORTS",
599 "LLT_CONSTRAINT","LLT_ISSUB","LLT_LET","LLT_MODIFIES","LLT_MUTABLE","LLT_NOTHING",
600 "LLT_INTERNAL","LLT_FILESYS","LLT_OBJ","LLT_OUT","LLT_SEF","LLT_ONLY","LLT_PARTIAL",
601 "LLT_OWNED","LLT_DEPENDENT","LLT_KEEP","LLT_KEPT","LLT_TEMP","LLT_SHARED","LLT_UNIQUE",
602 "LLT_UNUSED","LLT_EXITS","LLT_MAYEXIT","LLT_NEVEREXIT","LLT_TRUEEXIT","LLT_FALSEEXIT",
603 "LLT_UNDEF","LLT_KILLED","LLT_CHECKMOD","LLT_CHECKED","LLT_UNCHECKED","LLT_CHECKEDSTRICT",
604 "LLT_TRUENULL","LLT_FALSENULL","LLT_LNULL","LLT_LNOTNULL","LLT_RETURNED","LLT_OBSERVER",
605 "LLT_EXPOSED","LLT_REFCOUNTED","LLT_REFS","LLT_RELNULL","LLT_RELDEF","LLT_KILLREF",
606 "LLT_NULLTERMINATED","LLT_TEMPREF","LLT_NEWREF","LLT_PRIVATE","LLT_REQUIRES",
607 "LLT_RESULT","LLT_SIZEOF","LLT_SPEC","LLT_TAGGEDUNION","LLT_THEN","LLT_TYPE",
608 "LLT_TYPEDEF","LLT_UNCHANGED","LLT_USES","LLT_CHAR","LLT_CONST","LLT_DOUBLE",
609 "LLT_ENUM","LLT_FLOAT","LLT_INT","LLT_ITER","LLT_YIELD","LLT_LONG","LLT_SHORT",
610 "LLT_SIGNED","LLT_UNKNOWN","LLT_STRUCT","LLT_TELIPSIS","LLT_UNION","LLT_UNSIGNED",
611 "LLT_VOID","LLT_VOLATILE","LLT_PRINTFLIKE","LLT_SCANFLIKE","LLT_MESSAGELIKE",
612 "interface","@1","externals","external","optDeclarations","declarations","declaration",
613 "imports","uses","export","iter","iterParamList","realIterParamList","iterParam",
614 "private","@2","private2","constDeclaration","varDeclaration","type","special",
615 "fcn","@3","@4","claim","@5","abstract","@6","@7","@8","@9","@10","@11","@12",
616 "@13","exposed","@14","@15","importNameList","importName","interfaceNameList",
617 "interfaceName","traitRefNodeList","traitRef","traitIdList","renaming","nameList",
618 "replaceNodeList","replace","name","initializer","constLclExpr","initDecls",
619 "initDecl","globals","globalDecl","privateInits","privateInit","optLetDecl",
620 "beDeclList","beDecl","sortSpec","optChecks","optRequire","optModify","storeRefList",
621 "storeRef","optEnsure","optClaim","optParamList","realParamList","paramList",
622 "optBody","callExpr","stmt","valueList","value","abstBody","fcns","optTypeInv",
623 "typeInv","@16","declaratorInvs","declaratorInv","@17","optExposedBody","CType",
624 "CTypes","typeSpecifier","specialQualifier","lclTypeSpec","lclType","pointers",
625 "structOrUnionSpec","@18","@19","optTagId","structDecls","structDecl","declaratorList",
626 "optCOMMA","enumSpec","enumeratorList","declarator","notype_decl","after_type_decl",
627 "parameter_decl","param","typeName","optAbstDeclarator","abstDeclarator","arrayQual",
628 "opForm","open","close","anyOp","middle","placeList","separator","signature",
629 "domain","sortList","lclPredicate","term","term0","equalityTerm","simpleOpTerm",
630 "simpleOp2","prefixOpTerm","postfixOps","infixOpPart","secondary","bracketed",
631 "sqBracketed","matched","args","primary","termList","stateFcn","lclPrimary",
632 "cLiteral","quantifiers","quantifier","@20","quantifiedList","quantified","simpleIdOrTypedefName",
633 "fcnId","varId","tagId","claimId","sortId","traitId","opId", NULL
637 static const short yyr1[] = { 0,
638 138, 137, 139, 139, 140, 140, 141, 141, 141, 142,
639 142, 143, 143, 143, 144, 145, 146, 146, 146, 146,
640 146, 146, 147, 148, 148, 149, 149, 150, 150, 152,
641 151, 153, 153, 153, 153, 154, 155, 155, 155, 156,
642 156, 157, 157, 157, 159, 158, 160, 158, 162, 161,
643 161, 164, 165, 163, 166, 167, 163, 168, 169, 163,
644 170, 171, 163, 173, 174, 172, 172, 172, 175, 175,
645 176, 176, 176, 177, 177, 178, 179, 179, 180, 180,
646 180, 180, 181, 181, 182, 182, 182, 183, 183, 184,
647 184, 185, 185, 185, 186, 186, 187, 188, 189, 189,
648 190, 190, 191, 191, 192, 192, 192, 193, 193, 194,
649 195, 195, 196, 196, 197, 197, 198, 199, 199, 200,
650 200, 201, 201, 201, 201, 202, 202, 203, 203, 203,
651 203, 203, 204, 204, 205, 205, 206, 206, 207, 207,
652 207, 208, 208, 209, 209, 209, 210, 210, 210, 210,
653 210, 211, 211, 211, 211, 212, 212, 213, 213, 213,
654 213, 213, 213, 213, 213, 214, 214, 214, 214, 215,
655 215, 216, 216, 218, 217, 219, 219, 221, 220, 222,
656 222, 223, 223, 223, 223, 223, 223, 223, 223, 223,
657 223, 224, 224, 225, 225, 226, 226, 226, 226, 226,
658 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
659 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
660 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
661 226, 227, 227, 227, 227, 227, 228, 228, 229, 229,
662 231, 230, 232, 230, 230, 230, 233, 233, 234, 234,
663 235, 236, 236, 237, 237, 238, 238, 239, 239, 240,
664 240, 241, 241, 241, 241, 241, 241, 242, 242, 242,
665 242, 242, 242, 243, 243, 243, 243, 243, 244, 244,
666 244, 245, 245, 245, 246, 246, 247, 247, 247, 247,
667 247, 247, 247, 247, 248, 248, 249, 249, 249, 249,
668 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
669 249, 249, 249, 250, 250, 251, 251, 252, 252, 252,
670 253, 253, 254, 254, 255, 255, 256, 257, 257, 258,
671 258, 259, 260, 261, 261, 261, 262, 262, 262, 262,
672 263, 263, 263, 264, 264, 265, 265, 266, 266, 267,
673 267, 268, 268, 268, 268, 268, 268, 268, 269, 269,
674 270, 270, 270, 270, 271, 271, 272, 272, 273, 273,
675 273, 273, 273, 273, 273, 273, 273, 273, 274, 274,
676 275, 275, 275, 275, 276, 276, 276, 276, 276, 276,
677 276, 276, 277, 277, 277, 277, 278, 278, 280, 279,
678 281, 281, 282, 282, 283, 283, 284, 285, 286, 287,
682 static const short yyr2[] = { 0,
683 0, 3, 0, 2, 1, 1, 0, 2, 2, 0,
684 2, 1, 1, 1, 3, 3, 1, 1, 1, 1,
685 1, 1, 6, 0, 1, 1, 3, 2, 1, 0,
686 3, 1, 1, 1, 1, 4, 3, 4, 4, 1,
687 1, 1, 1, 1, 0, 13, 0, 14, 0, 13,
688 4, 0, 0, 6, 0, 0, 7, 0, 0, 7,
689 0, 0, 6, 0, 0, 6, 2, 2, 1, 3,
690 1, 3, 1, 1, 3, 1, 1, 3, 1, 4,
691 3, 6, 1, 3, 1, 1, 3, 1, 3, 1,
692 3, 3, 3, 4, 1, 1, 1, 1, 1, 3,
693 1, 3, 0, 2, 3, 2, 2, 0, 2, 4,
694 0, 3, 1, 3, 5, 3, 1, 0, 3, 0,
695 3, 0, 3, 3, 3, 1, 3, 1, 1, 2,
696 1, 1, 0, 3, 0, 3, 0, 1, 1, 1,
697 3, 1, 3, 0, 4, 5, 1, 3, 2, 3,
698 3, 4, 3, 5, 6, 1, 3, 1, 1, 2,
699 2, 3, 3, 3, 4, 1, 3, 4, 3, 0,
700 2, 0, 1, 0, 6, 1, 3, 0, 3, 0,
701 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
702 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
703 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
704 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
705 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
706 1, 1, 1, 1, 2, 5, 1, 2, 1, 2,
707 0, 6, 0, 6, 2, 2, 0, 1, 1, 2,
708 3, 1, 3, 0, 1, 6, 2, 1, 3, 1,
709 1, 1, 3, 2, 2, 3, 4, 1, 3, 2,
710 2, 3, 4, 1, 2, 2, 3, 4, 2, 2,
711 2, 2, 3, 1, 0, 1, 3, 2, 1, 1,
712 2, 3, 3, 4, 2, 3, 6, 1, 2, 2,
713 3, 3, 4, 4, 5, 3, 4, 4, 5, 2,
714 2, 3, 3, 1, 1, 1, 1, 1, 1, 1,
715 0, 1, 1, 3, 1, 1, 4, 0, 1, 1,
716 3, 1, 1, 6, 1, 3, 1, 4, 3, 3,
717 1, 2, 2, 1, 1, 1, 2, 1, 2, 2,
718 3, 1, 1, 2, 2, 3, 1, 2, 3, 1,
719 5, 3, 4, 2, 3, 2, 1, 3, 3, 1,
720 4, 1, 2, 3, 3, 3, 4, 3, 1, 3,
721 1, 1, 1, 1, 1, 1, 4, 4, 4, 4,
722 6, 4, 1, 1, 1, 1, 1, 2, 0, 3,
723 1, 3, 3, 4, 1, 1, 1, 1, 1, 1,
727 static const short yydefact[] = { 3,
728 1, 0, 0, 7, 4, 5, 6, 0, 406, 405,
729 73, 0, 69, 71, 76, 0, 0, 77, 412, 79,
730 0, 194, 0, 0, 61, 52, 196, 198, 199, 228,
731 200, 201, 202, 203, 210, 211, 212, 197, 205, 206,
732 209, 207, 208, 230, 231, 213, 214, 215, 216, 217,
733 224, 225, 226, 204, 227, 220, 221, 218, 219, 223,
734 229, 222, 30, 0, 183, 0, 184, 247, 185, 186,
735 0, 187, 188, 189, 191, 247, 247, 190, 182, 0,
736 42, 43, 44, 2, 10, 22, 10, 17, 18, 19,
737 0, 20, 21, 40, 41, 192, 195, 232, 0, 0,
738 233, 234, 0, 15, 0, 0, 83, 16, 0, 0,
739 220, 237, 0, 233, 234, 407, 410, 0, 0, 0,
740 0, 0, 0, 58, 0, 64, 0, 0, 409, 257,
741 408, 0, 241, 245, 243, 246, 0, 8, 9, 0,
742 193, 235, 0, 0, 268, 0, 99, 103, 261, 260,
743 262, 67, 68, 72, 70, 0, 81, 78, 344, 345,
744 321, 0, 319, 314, 0, 0, 315, 320, 0, 0,
745 0, 86, 85, 90, 285, 88, 284, 321, 298, 318,
746 239, 238, 0, 0, 137, 0, 101, 0, 0, 0,
747 0, 31, 32, 33, 34, 35, 0, 0, 0, 24,
748 0, 0, 0, 11, 14, 12, 13, 103, 264, 270,
749 0, 0, 37, 0, 0, 45, 0, 0, 265, 0,
750 271, 84, 0, 323, 0, 322, 310, 311, 321, 0,
751 0, 321, 299, 0, 285, 80, 0, 0, 289, 0,
752 282, 286, 290, 0, 0, 300, 240, 0, 51, 140,
753 0, 138, 139, 285, 142, 36, 62, 53, 0, 0,
754 65, 176, 178, 38, 258, 254, 0, 0, 25, 26,
755 29, 0, 0, 39, 47, 263, 269, 100, 0, 0,
756 399, 408, 395, 396, 393, 394, 0, 0, 0, 386,
757 0, 0, 102, 97, 0, 98, 333, 335, 337, 0,
758 341, 346, 353, 357, 360, 352, 372, 385, 0, 397,
759 413, 370, 0, 0, 0, 0, 104, 0, 266, 0,
760 295, 0, 272, 0, 0, 306, 326, 325, 0, 0,
761 312, 313, 0, 301, 0, 283, 87, 89, 91, 0,
762 288, 0, 0, 0, 291, 93, 92, 96, 95, 316,
763 317, 302, 236, 103, 0, 289, 0, 274, 280, 279,
764 281, 0, 0, 56, 59, 0, 0, 180, 255, 0,
765 28, 0, 0, 0, 0, 249, 0, 0, 0, 364,
766 367, 0, 0, 0, 0, 0, 0, 0, 366, 0,
767 0, 0, 0, 347, 346, 348, 342, 343, 354, 358,
768 0, 0, 0, 0, 381, 382, 383, 0, 384, 355,
769 373, 0, 398, 0, 106, 107, 108, 0, 267, 296,
770 273, 82, 307, 324, 308, 303, 0, 293, 287, 292,
771 0, 328, 94, 304, 49, 141, 143, 275, 289, 0,
772 276, 166, 170, 63, 54, 0, 0, 177, 66, 172,
773 179, 259, 256, 23, 27, 0, 252, 242, 250, 244,
774 108, 369, 0, 362, 0, 400, 401, 0, 379, 0,
775 0, 0, 194, 0, 0, 0, 131, 132, 0, 0,
776 126, 129, 128, 365, 336, 340, 339, 350, 349, 0,
777 411, 359, 376, 0, 374, 375, 378, 356, 0, 332,
778 0, 111, 105, 309, 305, 0, 294, 0, 329, 330,
779 0, 277, 0, 0, 0, 74, 0, 57, 60, 174,
780 0, 173, 251, 0, 111, 363, 0, 368, 0, 0,
781 0, 387, 0, 0, 392, 390, 388, 130, 0, 389,
782 351, 377, 338, 371, 0, 0, 109, 118, 297, 0,
783 0, 111, 278, 169, 0, 0, 167, 171, 0, 0,
784 181, 253, 118, 361, 402, 0, 403, 117, 380, 0,
785 0, 127, 0, 113, 0, 0, 0, 120, 327, 331,
786 120, 75, 168, 103, 0, 120, 404, 334, 391, 112,
787 0, 0, 0, 0, 0, 0, 122, 144, 0, 122,
788 114, 0, 116, 110, 119, 0, 0, 133, 0, 133,
789 0, 133, 0, 121, 0, 0, 0, 0, 135, 0,
790 0, 175, 135, 115, 124, 123, 125, 0, 0, 0,
791 0, 408, 0, 147, 0, 0, 50, 0, 134, 0,
792 46, 0, 149, 0, 0, 145, 0, 0, 48, 136,
793 0, 148, 146, 151, 150, 0, 0, 153, 0, 156,
794 158, 0, 159, 407, 0, 160, 0, 0, 152, 161,
795 0, 0, 163, 157, 162, 164, 0, 154, 0, 165,
799 static const short yydefgoto[] = { 682,
800 4, 1, 5, 84, 138, 204, 6, 205, 206, 86,
801 268, 269, 270, 207, 125, 192, 88, 89, 90, 91,
802 92, 316, 378, 93, 511, 94, 122, 363, 123, 446,
803 191, 447, 121, 362, 95, 197, 367, 12, 13, 515,
804 14, 17, 18, 106, 171, 172, 173, 174, 346, 293,
805 294, 146, 147, 216, 317, 502, 547, 548, 573, 574,
806 567, 578, 597, 608, 480, 481, 619, 630, 251, 342,
807 253, 610, 654, 634, 659, 660, 444, 517, 521, 522,
808 560, 261, 262, 368, 451, 96, 97, 98, 99, 254,
809 482, 182, 114, 201, 202, 128, 375, 376, 456, 370,
810 115, 266, 187, 149, 150, 360, 255, 176, 241, 242,
811 243, 177, 295, 352, 179, 225, 226, 465, 433, 508,
812 509, 499, 500, 297, 298, 299, 300, 301, 397, 398,
813 302, 303, 304, 305, 382, 306, 470, 411, 307, 308,
814 309, 310, 383, 466, 467, 311, 662, 312, 130, 119,
818 static const short yypact[] = {-32768,
819 -25, 136, 368, 1350,-32768,-32768,-32768, 181,-32768,-32768,
820 -32768, 94,-32768,-32768,-32768, 181, 110,-32768,-32768, 33,
821 2903,-32768, 182, 2903,-32768, 17,-32768,-32768,-32768,-32768,
822 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
823 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
824 -32768,-32768,-32768,-32768,-32768, -11,-32768,-32768,-32768,-32768,
825 -32768,-32768,-32768, 2903,-32768, 2903,-32768, 181,-32768,-32768,
826 108,-32768,-32768,-32768,-32768, 181, 181,-32768,-32768, 2903,
827 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
828 2903,-32768,-32768,-32768,-32768,-32768, 399,-32768, 2903, 408,
829 155, 192, 205,-32768, 136, 204,-32768,-32768, 368, 1152,
830 -32768, 233, 223,-32768,-32768, 266,-32768, 181, 305, 408,
831 211, 235, 264,-32768, 1445,-32768, 408, 339,-32768, 347,
832 -32768, 377,-32768, 347,-32768, 347, 408, 1247, 1247, 408,
833 -32768,-32768, 408, 408,-32768, 196,-32768, 259, 322, 409,
834 -32768,-32768,-32768,-32768,-32768, 181, 387,-32768,-32768,-32768,
835 386, 181,-32768,-32768, 181, 534,-32768,-32768, 403, 2903,
836 410, 445, 453,-32768, 360, 439,-32768, 386, 474,-32768,
837 -32768, 496, 2903, 497, 2319, 239, 470, 486, 492, 401,
838 404,-32768,-32768,-32768,-32768,-32768, 408, 282, 493, 2414,
839 488, 494, 288,-32768,-32768,-32768,-32768,-32768, 322, 409,
840 121, 141,-32768, 408, 3200, 1836, 1933, 3059,-32768, 2030,
841 -32768,-32768, 1152,-32768, 499, 122,-32768,-32768, 386, 181,
842 181, 386, 502, 421, 360,-32768, 1152, 1152, 360, 1741,
843 -32768, 454,-32768, 328, 80,-32768,-32768, 525,-32768,-32768,
844 504,-32768, 507, 380,-32768,-32768,-32768,-32768, 522, 524,
845 515,-32768,-32768,-32768,-32768, 518, 2903, 514, 520,-32768,
846 -32768, 2903, 2903,-32768, 1836,-32768,-32768,-32768, 3200, 3109,
847 -32768, 266,-32768,-32768,-32768,-32768, 544, 3200, 545,-32768,
848 549, 551,-32768,-32768, 3033,-32768, 550,-32768, 114, 3226,
849 -32768, 374, 382, 382, 535, 193,-32768,-32768, 273,-32768,
850 -32768,-32768, 555, 560, 562, 536,-32768, 408,-32768, 537,
851 -32768, 539,-32768, 540, 541, 552,-32768,-32768, 553, 547,
852 -32768,-32768, 80,-32768, 554,-32768, 453, 439,-32768, 439,
853 454, 548, 177, 2127,-32768, 556,-32768,-32768,-32768,-32768,
854 -32768, 557,-32768,-32768, 2509, 380, 1644,-32768, 322, 469,
855 -32768, 47, 47,-32768,-32768, 408, 564, 538, 561, 559,
856 -32768, 569, 2414, 408, 2611,-32768, 2713, 558, 36, 565,
857 -32768, 293, 108, 3200, 10, 3200, 1022, 762,-32768, 220,
858 3200, 3226, 3226,-32768,-32768, 268, 374, 374, 275, 275,
859 181, 3150, 181, 181,-32768,-32768,-32768, 181,-32768, 382,
860 -32768, 3200,-32768, 3200,-32768,-32768,-32768, 314,-32768,-32768,
861 -32768,-32768,-32768,-32768, 563, 568, 566,-32768,-32768,-32768,
862 573, 181,-32768,-32768, 1836,-32768,-32768, 469, 354, 2224,
863 -32768,-32768, 165,-32768,-32768, 47, 47,-32768,-32768, 530,
864 -32768,-32768,-32768,-32768,-32768, 317,-32768,-32768,-32768,-32768,
865 -32768,-32768, 181, 567, 3200, 570,-32768, 572, 550, 362,
866 3200, 579, 581, 575, 577, 578,-32768,-32768, 2903, 384,
867 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 268,
868 -32768,-32768,-32768, 157,-32768,-32768,-32768, 275, 583,-32768,
869 397, -8,-32768,-32768,-32768, 574,-32768, 590, 591,-32768,
870 571,-32768, 587, 592, 363,-32768, 1547,-32768,-32768,-32768,
871 594,-32768,-32768, 408, -8,-32768, 181,-32768, 108, 2808,
872 3200,-32768, 28, 3200,-32768,-32768,-32768,-32768, 892,-32768,
873 -32768,-32768,-32768,-32768, 108, 2903,-32768, 582,-32768, 181,
874 181, 576,-32768,-32768, 181, 593,-32768,-32768, 408, 605,
875 -32768,-32768, 582,-32768,-32768, 2903,-32768,-32768, 550, 3200,
876 600,-32768, 331,-32768, 103, 408, 3200, 521,-32768,-32768,
877 521,-32768,-32768,-32768, 629, 521,-32768, 550,-32768,-32768,
878 108, 2903, 3200, 336, 634, 3200, 584, 597, 3200, 584,
879 -32768, 601,-32768,-32768,-32768, 639, 632, 596, 615, 596,
880 613, 596, 3200,-32768, 644, 648, 337, 3200, 608, 49,
881 623,-32768, 608,-32768,-32768,-32768,-32768, 652, 3200, 625,
882 49, 651, 50,-32768, 653, 631,-32768, 627,-32768, 658,
883 -32768, 63,-32768, 272, 49,-32768, 208, 642,-32768,-32768,
884 49,-32768,-32768, 660,-32768, 222, 222,-32768, 419, 666,
885 -32768, 661,-32768,-32768, 668,-32768, 41, 222,-32768, 316,
886 432, 468,-32768, 666,-32768,-32768, 426,-32768, 430,-32768,
887 -32768, 670, 676,-32768
890 static const short yypgoto[] = {-32768,
891 -32768,-32768,-32768,-32768, 595,-32768,-32768, 678, 677,-32768,
892 -32768,-32768, 307, 679,-32768,-32768, 610, 612, 616,-32768,
893 -121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
894 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 580,-32768,
895 -6,-32768, 585,-32768, 461,-32768, 451, 452,-32768,-32768,
896 471, -108, 478, -188,-32768, 232,-32768, -458,-32768, 127,
897 -473, 175, -169, 142, 137, 206, -206, 120,-32768, -180,
898 -32768,-32768, -507,-32768, -190, -230, -318,-32768,-32768,-32768,
899 -32768,-32768, 381,-32768,-32768, -89,-32768,-32768,-32768, -3,
900 -18,-32768, 32,-32768,-32768, 407, 476, 68,-32768,-32768,
901 56,-32768, -93, -127, 344, 398, -187, 257, -182, -213,
902 -101, 511, 30, -267, 603, -137,-32768, 586,-32768,-32768,
903 -32768, -531, -204, -254,-32768, 105, -46, 466,-32768,-32768,
904 -278, 455,-32768,-32768, 472, -265, -205,-32768,-32768, -372,
905 -32768, -303,-32768,-32768, 242, 7, -23, -38, 423, 656,
913 static const short yytable[] = { 118,
914 100, 103, 113, 196, 252, 413, 148, 141, 15, 19,
915 296, 186, 271, 296, 15, 209, 211, 112, 198, 275,
916 120, 395, 19, 391, 379, 341, 343, 389, 203, 117,
917 497, 2, 132, 385, 107, 101, 320, 399, 400, 324,
918 245, 391, 110, 670, 445, 595, 208, 219, 221, 391,
919 124, 545, 336, 442, 510, 643, 644, 645, 631, 102,
920 126, 151, 127, 180, 606, 426, 563, 611, 643, 651,
921 645, 361, 462, 632, 129, 381, 137, 673, 570, 371,
922 443, 151, 129, 129, 646, 526, 628, 140, 151, 3,
923 381, 330, 587, 581, 333, 142, 546, 640, 151, 652,
924 104, 151, 350, 263, 151, 151, 175, 219, 221, 219,
925 221, 15, 633, -55, 351, 19, 108, 488, 602, 180,
926 471, 100, 484, 642, 117, 105, 359, 518, 519, 469,
927 217, 218, 131, 592, 100, 100, 485, 655, 8, 178,
928 345, 109, 341, 343, 498, 327, 392, 469, 593, 564,
929 220, 218, 393, 328, 347, 9, 101, 276, 151, 469,
930 10, 152, 19, 431, 248, 435, 235, 437, 227, 101,
931 101, 228, 579, 580, 222, 151, 180, 277, 11, 112,
932 102, 472, 475, 483, 9, 271, 344, 218, 531, 10,
933 180, 180, 542, 102, 102, 232, 494, 180, 153, 514,
934 9, 9, 213, 402, 403, 10, 116, 154, 501, 418,
935 656, 541, 318, 429, 164, 151, 533, 657, 404, 175,
936 405, 406, 407, 408, 656, 341, 167, 214, 209, 211,
937 409, 657, 632, 175, 175, 156, 331, 332, 181, 345,
938 157, 345, 350, 327, 658, 256, 632, 283, 284, 285,
939 286, 328, 178, 183, 351, 396, 585, 219, 441, 513,
940 528, 283, 284, 285, 286, -101, 178, 178, 374, 374,
941 214, 318, 263, 178, 661, -405, 569, 279, 280, 151,
942 457, 631, 412, 661, 661, 402, 403, 9, 264, 164,
943 -101, 215, 282, 281, 274, 661, 632, 661, 661, 661,
944 404, 167, 405, 406, 407, 408, 653, 283, 284, 285,
945 286, 209, 409, 214, 185, 588, 327, 151, 151, 214,
946 503, 287, 188, 523, 328, 657, 289, 151, 464, 571,
947 159, 217, 218, 160, 483, 151, 441, 590, 161, 162,
948 632, 163, 604, 627, 468, 214, 189, 9, 524, 164,
949 489, 490, 10, 165, 166, 283, 284, 285, 286, 439,
950 190, 167, 591, 357, 218, 239, 168, 214, 539, 240,
951 218, 374, 199, 374, 290, 291, 159, 16, 131, 160,
952 -248, 292, 169, 474, 112, 356, 200, 9, 603, 357,
953 218, 279, 10, 531, 555, 558, 223, 556, 532, 358,
954 151, 9, 483, 621, 131, 623, 282, 491, 624, 495,
955 496, 598, 224, 143, 491, 539, 600, 144, 220, 218,
956 540, 283, 284, 285, 286, 666, 667, 145, 531, 234,
957 562, 318, 131, 544, 656, 287, 516, 674, 491, 675,
958 289, 657, 459, 65, 459, 67, 236, 69, 70, 15,
959 668, 72, 73, 74, 75, 669, 632, 668, 78, 79,
960 538, 668, 680, 344, 218, 584, 681, 594, 676, 491,
961 656, 283, 284, 285, 286, 112, 237, 657, 440, 218,
962 677, 679, 133, 135, 238, 151, 210, 212, 290, 291,
963 468, 244, 632, 338, 340, 292, 486, 487, 134, 136,
964 246, 247, 215, 249, 678, 257, 575, 283, 284, 285,
965 286, 258, 259, 559, 65, 260, 67, 265, 69, 70,
966 151, 272, 72, 73, 74, 75, 568, 273, 334, 78,
967 79, 335, 353, 491, 326, 112, 159, 151, 355, 160,
968 354, 364, 576, 365, 229, 230, 366, 163, 582, 369,
969 372, 373, 575, 384, 386, 164, 491, 491, 387, 231,
970 388, 15, 568, 391, 414, 401, 415, 167, 416, 417,
971 449, 450, 168, 419, 420, 454, 421, 422, 423, 424,
972 427, 636, 425, 434, 428, 452, 432, 520, 568, 504,
973 -406, 461, 636, 453, 505, 463, 635, 527, 554, 583,
974 549, 529, 530, 112, 552, 636, 636, 635, 663, 507,
975 534, 535, 636, 536, 537, 550, 506, 663, 663, 543,
976 635, 635, 551, 553, 665, 281, 596, 635, 561, 663,
977 577, 663, 663, 663, 159, 545, 589, 160, 599, 21,
978 605, 279, 280, 609, 607, 614, 613, 618, 620, 622,
979 625, 473, 281, 164, 626, 629, 282, 637, 639, 641,
980 -407, 649, 647, 648, 650, 167, 664, 645, 670, 683,
981 671, 283, 284, 285, 286, 684, 615, 672, 7, 455,
982 85, 139, 87, 325, 155, 287, 288, 337, 322, 339,
983 289, 278, 525, 158, 616, 477, 478, 479, 27, 28,
984 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
985 39, 40, 41, 42, 43, 44, 45, 601, 46, 47,
986 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
987 58, 59, 60, 61, 193, 62, 194, 586, 290, 291,
988 195, 612, 638, 617, 572, 292, 448, 65, 377, 67,
989 68, 69, 70, 438, 348, 72, 73, 74, 75, 76,
990 410, 77, 78, 79, 159, 394, 390, 160, 233, 21,
991 565, 279, 280, 184, 349, 0, 0, 0, 0, 0,
992 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
993 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
994 0, 283, 284, 285, 286, 476, 0, 0, 0, 0,
995 0, 329, 0, 0, 0, 287, 288, 0, 0, 0,
996 289, 0, 0, 0, 0, 477, 478, 479, 27, 28,
997 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
998 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
999 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1000 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
1001 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
1002 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1003 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
1004 0, 279, 280, 0, 0, 0, 0, 0, 0, 0,
1005 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
1006 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
1007 0, 283, 284, 285, 286, 0, 0, 0, 0, 0,
1008 0, 0, 0, 0, 0, 287, 288, 0, 0, 0,
1009 289, 0, 0, 0, 0, 477, 478, 479, 27, 28,
1010 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1011 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1012 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1013 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
1014 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
1015 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1016 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
1017 0, 279, 280, 0, 0, 0, 0, 0, 0, 0,
1018 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
1019 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
1020 0, 283, 284, 285, 286, 0, 0, 0, 0, 0,
1021 0, 0, 0, 0, 0, 287, 288, 0, 0, 0,
1022 289, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1023 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1024 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1025 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1026 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
1027 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
1028 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1029 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
1030 0, 0, 161, 162, 0, 163, 0, 0, 0, 0,
1031 0, 22, 0, 164, 0, 0, 0, 165, 166, 0,
1032 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
1033 168, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1034 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
1035 0, 0, 0, 0, 0, 0, 0, 170, 27, 28,
1036 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1037 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1038 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1039 58, 59, 60, 61, 21, 62, 0, 0, 0, 0,
1040 0, 0, 0, 0, 0, 0, 22, 65, 0, 67,
1041 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1042 0, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1043 0, 0, 0, 0, 23, 0, 24, 0, 0, 0,
1044 0, 0, 25, 0, 0, 0, 0, 0, 26, 0,
1045 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1046 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1047 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1048 53, 54, 55, 56, 57, 58, 59, 60, 61, 0,
1049 62, 0, 0, 0, 0, 63, 0, 21, 0, 64,
1050 0, 3, 65, 66, 67, 68, 69, 70, 71, 22,
1051 72, 73, 74, 75, 76, 0, 77, 78, 79, 80,
1052 81, 82, 83, 0, 0, 0, 0, 0, 0, 0,
1053 0, 0, 0, 0, 0, 0, 0, 23, 0, 24,
1054 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,
1055 0, 26, 0, 0, 0, 0, 27, 28, 29, 30,
1056 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1057 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1058 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1059 60, 61, 21, 62, 0, 0, 0, 0, 63, 0,
1060 0, 0, 64, 0, 22, 65, 66, 67, 68, 69,
1061 70, 71, 0, 72, 73, 74, 75, 76, 0, 77,
1062 78, 79, 80, 81, 82, 83, 0, 0, 0, 0,
1063 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,
1064 25, 0, 0, 0, 0, 0, 26, 0, 0, 0,
1065 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1066 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1067 0, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1068 55, 56, 57, 58, 59, 60, 61, 0, 62, 0,
1069 0, 0, 0, 0, 21, 0, 0, 64, 0, 0,
1070 65, 66, 67, 68, 69, 70, 22, 0, 72, 73,
1071 74, 75, 76, 0, 77, 78, 79, 80, 81, 82,
1072 83, 557, 0, 0, 0, 0, 0, 0, 0, 0,
1073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1075 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1076 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1077 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1078 53, 54, 55, 111, 57, 58, 59, 60, 61, 439,
1079 62, 21, 0, 357, 218, 0, 0, 0, 0, 0,
1080 0, 0, 65, 22, 67, 68, 69, 70, 131, 0,
1081 72, 73, 74, 75, 76, 0, 77, 78, 79, 0,
1082 81, 82, 83, 0, 0, 0, 0, 0, 0, 0,
1083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1085 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1086 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1087 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1088 111, 57, 58, 59, 60, 61, 239, 62, 21, 0,
1089 240, 218, 0, 0, 0, 0, 0, 0, 0, 65,
1090 22, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1091 75, 76, 250, 77, 78, 79, 0, 0, 0, 0,
1092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1093 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1094 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1095 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1096 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1097 49, 50, 51, 52, 53, 54, 55, 111, 57, 58,
1098 59, 60, 61, 21, 62, 0, 0, 0, 0, 0,
1099 0, 0, 0, 0, 0, 22, 65, 0, 67, 68,
1100 69, 70, 0, 0, 72, 73, 74, 75, 76, 250,
1101 77, 78, 79, 0, 0, 0, 0, 0, 0, 0,
1102 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1103 0, 0, 0, 0, 0, 0, 0, 0, 0, 314,
1104 315, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1105 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1106 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1107 54, 55, 111, 57, 58, 59, 60, 61, 0, 62,
1108 21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1109 0, 65, 22, 67, 68, 69, 70, 0, 0, 72,
1110 73, 74, 75, 76, 0, 77, 78, 79, 0, 319,
1111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1113 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1114 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1115 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1116 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1117 57, 58, 59, 60, 61, 0, 62, 21, 0, 0,
1118 0, 0, 0, 0, 0, 0, 0, 0, 65, 22,
1119 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1120 76, 250, 77, 78, 79, 0, 323, 0, 0, 0,
1121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1123 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1124 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1125 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1126 50, 51, 52, 53, 54, 55, 111, 57, 58, 59,
1127 60, 61, 0, 62, 21, 0, 0, 0, 0, 0,
1128 0, 0, 0, 0, 0, 65, 22, 67, 68, 69,
1129 70, 0, 0, 72, 73, 74, 75, 76, 250, 77,
1130 78, 79, 0, 430, 0, 0, 0, 0, 0, 0,
1131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1133 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1134 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1135 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1136 53, 54, 55, 111, 57, 58, 59, 60, 61, 0,
1137 62, 21, 0, 0, 0, 0, 0, 0, 0, 0,
1138 0, 0, 65, 22, 67, 68, 69, 70, 0, 0,
1139 72, 73, 74, 75, 76, 250, 77, 78, 79, 0,
1140 512, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1143 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1144 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1145 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1146 111, 57, 58, 59, 60, 61, 21, 62, 0, 0,
1147 0, 0, 0, 0, 0, 0, 0, 0, 22, 65,
1148 0, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1149 75, 76, 250, 77, 78, 79, 0, 0, 0, 0,
1150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1151 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1152 0, 0, 0, 0, 0, 27, 28, 29, 30, 31,
1153 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1154 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1155 51, 52, 53, 54, 55, 111, 57, 58, 59, 60,
1156 61, 21, 62, 0, 0, 0, 0, 0, 0, 0,
1157 0, 0, 0, 22, 65, 0, 67, 68, 69, 70,
1158 0, 0, 72, 73, 74, 75, 76, 250, 77, 78,
1159 79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1161 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1162 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1163 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1164 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1165 111, 57, 58, 59, 60, 61, 21, 62, 0, 0,
1166 0, 0, 0, 0, 0, 0, 0, 0, 22, 65,
1167 0, 67, 68, 69, 70, 0, 267, 72, 73, 74,
1168 75, 76, 0, 77, 78, 79, 0, 0, 0, 0,
1169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1171 0, 0, 0, 0, 0, 27, 28, 29, 30, 31,
1172 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1173 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1174 51, 52, 53, 54, 55, 111, 57, 58, 59, 60,
1175 61, 0, 62, 0, 0, 0, 0, 0, 21, 0,
1176 0, 0, 0, 0, 65, 0, 67, 68, 69, 70,
1177 22, 0, 72, 73, 74, 75, 76, 436, 77, 78,
1178 79, 0, 0, 0, 0, 458, 0, 0, 0, 0,
1179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1181 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1182 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1183 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1184 49, 50, 51, 52, 53, 54, 55, 111, 57, 58,
1185 59, 60, 61, 0, 62, 0, 0, 0, 0, 0,
1186 21, 0, 0, 0, 0, 0, 65, 0, 67, 68,
1187 69, 70, 22, 0, 72, 73, 74, 75, 76, 0,
1188 77, 78, 79, 0, 0, 0, 0, 460, 0, 0,
1189 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1190 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1191 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1192 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1193 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1194 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1195 57, 58, 59, 60, 61, 21, 62, 0, 0, 0,
1196 0, 0, 0, 0, 0, 0, 0, 22, 65, 0,
1197 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1198 76, 0, 77, 78, 79, 0, 0, 0, 0, 0,
1199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1201 0, 0, 0, 566, 27, 28, 29, 30, 31, 32,
1202 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1203 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1204 52, 53, 54, 55, 111, 57, 58, 59, 60, 61,
1205 21, 62, 0, 0, 0, 0, 0, 0, 0, 0,
1206 0, 0, 22, 65, 0, 67, 68, 69, 70, 0,
1207 0, 72, 73, 74, 75, 76, 0, 77, 78, 79,
1208 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1209 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1210 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1211 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1212 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1213 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1214 57, 58, 59, 60, 61, 0, 62, 0, 0, 0,
1215 0, 0, 0, 0, 0, 0, 0, 0, 65, 0,
1216 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1217 76, 0, 77, 78, 79, 159, 0, 0, 160, 0,
1218 0, 0, 279, 280, 0, 0, 0, 0, 0, 0,
1219 0, 0, 9, 281, 164, 350, 0, 282, 0, 0,
1220 0, 159, 0, 0, 160, 0, 167, 351, 279, 280,
1221 0, 0, 283, 284, 285, 286, 0, 0, 9, 281,
1222 164, 0, 0, 282, 0, 0, 287, 288, 0, 0,
1223 0, 289, 167, 0, 321, 0, 0, 0, 283, 284,
1224 285, 286, 0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 159, 287, 288, 160, 0, 0, 289, 279, 280,
1226 0, 0, 0, 0, 0, 0, 0, 0, 9, 281,
1227 164, 0, 0, 282, 0, 0, 0, 0, 0, 290,
1228 291, 0, 167, 0, 380, 0, 292, 0, 283, 284,
1229 285, 286, 159, 0, 0, 160, 0, 0, 0, 279,
1230 280, 0, 287, 288, 0, 290, 291, 289, 0, 9,
1231 281, 164, 292, 0, 282, 0, 0, 0, 0, 0,
1232 0, 0, 0, 167, 0, 493, 0, 0, 0, 283,
1233 284, 285, 286, 0, 0, 0, 0, 0, 0, 0,
1234 0, 0, 159, 287, 288, 160, 0, 0, 289, 279,
1235 280, 0, 0, 0, 0, 290, 291, 0, 0, 9,
1236 281, 164, 292, 0, 282, 0, 0, 0, 159, 0,
1237 0, 160, 0, 167, 0, 279, 280, 0, 0, 283,
1238 284, 285, 286, 0, 0, 9, 0, 164, 0, 0,
1239 282, 0, 0, 287, 288, 0, 290, 291, 289, 167,
1240 0, 0, 0, 292, 0, 283, 284, 285, 286, 0,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 287,
1242 0, 0, 0, 0, 289, 0, 0, 0, 0, 0,
1243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 290, 291, 0, 0,
1245 0, 0, 0, 292, 0, 0, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1247 0, 0, 290, 291, 0, 0, 0, 0, 0, 292
1250 static const short yycheck[] = { 23,
1251 4, 8, 21, 125, 185, 309, 100, 97, 2, 3,
1252 215, 120, 200, 218, 8, 143, 144, 21, 127, 208,
1253 24, 300, 16, 14, 279, 239, 240, 295, 137, 23,
1254 408, 57, 71, 288, 16, 4, 217, 303, 304, 220,
1255 178, 14, 10, 3, 363, 577, 140, 149, 150, 14,
1256 62, 60, 235, 7, 432, 6, 7, 8, 10, 4,
1257 64, 100, 66, 110, 596, 333, 525, 599, 6, 7,
1258 8, 254, 37, 25, 68, 280, 80, 37, 51, 267,
1259 34, 120, 76, 77, 35, 463, 618, 91, 127, 115,
1260 295, 229, 566, 552, 232, 99, 105, 629, 137, 37,
1261 7, 140, 23, 197, 143, 144, 110, 209, 210, 211,
1262 212, 105, 620, 97, 35, 109, 7, 396, 592, 166,
1263 111, 125, 390, 631, 118, 32, 254, 446, 447, 384,
1264 10, 11, 25, 31, 138, 139, 391, 645, 3, 110,
1265 242, 32, 356, 357, 410, 24, 33, 402, 46, 527,
1266 10, 11, 39, 32, 244, 20, 125, 37, 197, 414,
1267 25, 7, 156, 344, 183, 354, 170, 355, 162, 138,
1268 139, 165, 550, 551, 156, 214, 223, 37, 43, 183,
1269 125, 386, 387, 388, 20, 373, 10, 11, 32, 25,
1270 237, 238, 36, 138, 139, 166, 402, 244, 7, 35,
1271 20, 20, 7, 11, 12, 25, 25, 3, 414, 318,
1272 3, 490, 216, 37, 22, 254, 471, 10, 26, 223,
1273 28, 29, 30, 31, 3, 439, 34, 32, 356, 357,
1274 38, 10, 25, 237, 238, 32, 230, 231, 6, 341,
1275 37, 343, 23, 24, 37, 7, 25, 40, 41, 42,
1276 43, 32, 223, 31, 35, 302, 560, 359, 360, 440,
1277 465, 40, 41, 42, 43, 7, 237, 238, 272, 273,
1278 32, 275, 366, 244, 647, 10, 531, 10, 11, 318,
1279 374, 10, 10, 656, 657, 11, 12, 20, 7, 22,
1280 32, 33, 25, 21, 7, 668, 25, 670, 671, 672,
1281 26, 34, 28, 29, 30, 31, 35, 40, 41, 42,
1282 43, 439, 38, 32, 10, 570, 24, 356, 357, 32,
1283 7, 54, 112, 7, 32, 10, 59, 366, 36, 534,
1284 3, 10, 11, 6, 539, 374, 438, 7, 11, 12,
1285 25, 14, 7, 7, 383, 32, 112, 20, 32, 22,
1286 397, 398, 25, 26, 27, 40, 41, 42, 43, 6,
1287 97, 34, 32, 10, 11, 6, 39, 32, 32, 10,
1288 11, 375, 34, 377, 107, 108, 3, 10, 25, 6,
1289 34, 114, 55, 387, 388, 6, 10, 20, 593, 10,
1290 11, 10, 25, 32, 32, 517, 10, 35, 37, 20,
1291 439, 20, 607, 610, 25, 612, 25, 401, 613, 403,
1292 404, 581, 27, 6, 408, 32, 586, 10, 10, 11,
1293 37, 40, 41, 42, 43, 656, 657, 20, 32, 27,
1294 524, 435, 25, 37, 3, 54, 443, 668, 432, 670,
1295 59, 10, 375, 116, 377, 118, 37, 120, 121, 443,
1296 32, 124, 125, 126, 127, 37, 25, 32, 131, 132,
1297 479, 32, 37, 10, 11, 559, 37, 576, 37, 463,
1298 3, 40, 41, 42, 43, 479, 32, 10, 10, 11,
1299 671, 672, 76, 77, 32, 524, 143, 144, 107, 108,
1300 529, 53, 25, 237, 238, 114, 392, 393, 76, 77,
1301 27, 6, 33, 7, 37, 20, 545, 40, 41, 42,
1302 43, 20, 112, 517, 116, 112, 118, 25, 120, 121,
1303 559, 34, 124, 125, 126, 127, 530, 34, 27, 131,
1304 132, 111, 8, 527, 36, 539, 3, 576, 32, 6,
1305 37, 20, 546, 20, 11, 12, 32, 14, 555, 32,
1306 37, 32, 591, 10, 10, 22, 550, 551, 10, 26,
1307 10, 555, 566, 14, 10, 31, 7, 34, 7, 34,
1308 7, 34, 39, 37, 36, 7, 37, 37, 27, 27,
1309 27, 620, 36, 27, 37, 25, 31, 58, 592, 27,
1310 10, 34, 631, 35, 27, 31, 620, 31, 7, 7,
1311 27, 32, 31, 607, 34, 644, 645, 631, 647, 37,
1312 32, 37, 651, 37, 37, 26, 51, 656, 657, 37,
1313 644, 645, 32, 37, 648, 21, 106, 651, 35, 668,
1314 49, 670, 671, 672, 3, 60, 37, 6, 10, 8,
1315 7, 10, 11, 47, 61, 7, 46, 52, 34, 37,
1316 7, 20, 21, 22, 7, 48, 25, 35, 7, 35,
1317 10, 35, 10, 33, 7, 34, 25, 8, 3, 0,
1318 10, 40, 41, 42, 43, 0, 45, 10, 1, 373,
1319 4, 87, 4, 223, 105, 54, 55, 237, 218, 238,
1320 59, 214, 461, 109, 63, 64, 65, 66, 67, 68,
1321 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1322 79, 80, 81, 82, 83, 84, 85, 591, 87, 88,
1323 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1324 99, 100, 101, 102, 125, 104, 125, 563, 107, 108,
1325 125, 600, 623, 607, 539, 114, 366, 116, 273, 118,
1326 119, 120, 121, 356, 244, 124, 125, 126, 127, 128,
1327 306, 130, 131, 132, 3, 300, 295, 6, 166, 8,
1328 529, 10, 11, 118, 244, -1, -1, -1, -1, -1,
1329 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1330 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1331 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
1332 -1, 226, -1, -1, -1, 54, 55, -1, -1, -1,
1333 59, -1, -1, -1, -1, 64, 65, 66, 67, 68,
1334 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1335 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1336 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1337 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1338 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1339 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1340 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1341 -1, 10, 11, -1, -1, -1, -1, -1, -1, -1,
1342 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1343 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1344 -1, 40, 41, 42, 43, -1, -1, -1, -1, -1,
1345 -1, -1, -1, -1, -1, 54, 55, -1, -1, -1,
1346 59, -1, -1, -1, -1, 64, 65, 66, 67, 68,
1347 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1348 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1349 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1350 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1351 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1352 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1353 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1354 -1, 10, 11, -1, -1, -1, -1, -1, -1, -1,
1355 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1356 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1357 -1, 40, 41, 42, 43, -1, -1, -1, -1, -1,
1358 -1, -1, -1, -1, -1, 54, 55, -1, -1, -1,
1359 59, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1360 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1361 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1362 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1363 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1364 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1365 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1366 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1367 -1, -1, 11, 12, -1, 14, -1, -1, -1, -1,
1368 -1, 20, -1, 22, -1, -1, -1, 26, 27, -1,
1369 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1370 39, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1371 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
1372 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
1373 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1374 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1375 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1376 99, 100, 101, 102, 8, 104, -1, -1, -1, -1,
1377 -1, -1, -1, -1, -1, -1, 20, 116, -1, 118,
1378 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1379 -1, 130, 131, 132, -1, -1, -1, -1, -1, -1,
1380 -1, -1, -1, -1, 48, -1, 50, -1, -1, -1,
1381 -1, -1, 56, -1, -1, -1, -1, -1, 62, -1,
1382 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1383 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1384 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1385 94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
1386 104, -1, -1, -1, -1, 109, -1, 8, -1, 113,
1387 -1, 115, 116, 117, 118, 119, 120, 121, 122, 20,
1388 124, 125, 126, 127, 128, -1, 130, 131, 132, 133,
1389 134, 135, 136, -1, -1, -1, -1, -1, -1, -1,
1390 -1, -1, -1, -1, -1, -1, -1, 48, -1, 50,
1391 -1, -1, -1, -1, -1, 56, -1, -1, -1, -1,
1392 -1, 62, -1, -1, -1, -1, 67, 68, 69, 70,
1393 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1394 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1395 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1396 101, 102, 8, 104, -1, -1, -1, -1, 109, -1,
1397 -1, -1, 113, -1, 20, 116, 117, 118, 119, 120,
1398 121, 122, -1, 124, 125, 126, 127, 128, -1, 130,
1399 131, 132, 133, 134, 135, 136, -1, -1, -1, -1,
1400 -1, -1, -1, -1, 50, -1, -1, -1, -1, -1,
1401 56, -1, -1, -1, -1, -1, 62, -1, -1, -1,
1402 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1403 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1404 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1405 96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
1406 -1, -1, -1, -1, 8, -1, -1, 113, -1, -1,
1407 116, 117, 118, 119, 120, 121, 20, -1, 124, 125,
1408 126, 127, 128, -1, 130, 131, 132, 133, 134, 135,
1409 136, 35, -1, -1, -1, -1, -1, -1, -1, -1,
1410 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1411 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1412 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1413 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1414 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1415 94, 95, 96, 97, 98, 99, 100, 101, 102, 6,
1416 104, 8, -1, 10, 11, -1, -1, -1, -1, -1,
1417 -1, -1, 116, 20, 118, 119, 120, 121, 25, -1,
1418 124, 125, 126, 127, 128, -1, 130, 131, 132, -1,
1419 134, 135, 136, -1, -1, -1, -1, -1, -1, -1,
1420 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1421 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1422 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1423 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1424 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1425 97, 98, 99, 100, 101, 102, 6, 104, 8, -1,
1426 10, 11, -1, -1, -1, -1, -1, -1, -1, 116,
1427 20, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1428 127, 128, 129, 130, 131, 132, -1, -1, -1, -1,
1429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1430 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1431 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1432 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1433 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1434 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1435 100, 101, 102, 8, 104, -1, -1, -1, -1, -1,
1436 -1, -1, -1, -1, -1, 20, 116, -1, 118, 119,
1437 120, 121, -1, -1, 124, 125, 126, 127, 128, 129,
1438 130, 131, 132, -1, -1, -1, -1, -1, -1, -1,
1439 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1440 -1, -1, -1, -1, -1, -1, -1, -1, -1, 64,
1441 65, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1442 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1443 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1444 95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
1445 8, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1446 -1, 116, 20, 118, 119, 120, 121, -1, -1, 124,
1447 125, 126, 127, 128, -1, 130, 131, 132, -1, 37,
1448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1449 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1450 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1451 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1452 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1453 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1454 98, 99, 100, 101, 102, -1, 104, 8, -1, -1,
1455 -1, -1, -1, -1, -1, -1, -1, -1, 116, 20,
1456 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1457 128, 129, 130, 131, 132, -1, 37, -1, -1, -1,
1458 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1459 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1460 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1461 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1462 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1463 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1464 101, 102, -1, 104, 8, -1, -1, -1, -1, -1,
1465 -1, -1, -1, -1, -1, 116, 20, 118, 119, 120,
1466 121, -1, -1, 124, 125, 126, 127, 128, 129, 130,
1467 131, 132, -1, 37, -1, -1, -1, -1, -1, -1,
1468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1469 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1470 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1471 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1472 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1473 94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
1474 104, 8, -1, -1, -1, -1, -1, -1, -1, -1,
1475 -1, -1, 116, 20, 118, 119, 120, 121, -1, -1,
1476 124, 125, 126, 127, 128, 129, 130, 131, 132, -1,
1477 37, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1478 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1479 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1480 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1481 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1482 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1483 97, 98, 99, 100, 101, 102, 8, 104, -1, -1,
1484 -1, -1, -1, -1, -1, -1, -1, -1, 20, 116,
1485 -1, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1486 127, 128, 129, 130, 131, 132, -1, -1, -1, -1,
1487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1488 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1489 -1, -1, -1, -1, -1, 67, 68, 69, 70, 71,
1490 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1491 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1492 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1493 102, 8, 104, -1, -1, -1, -1, -1, -1, -1,
1494 -1, -1, -1, 20, 116, -1, 118, 119, 120, 121,
1495 -1, -1, 124, 125, 126, 127, 128, 129, 130, 131,
1496 132, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1497 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1498 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1499 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1500 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1501 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1502 97, 98, 99, 100, 101, 102, 8, 104, -1, -1,
1503 -1, -1, -1, -1, -1, -1, -1, -1, 20, 116,
1504 -1, 118, 119, 120, 121, -1, 123, 124, 125, 126,
1505 127, 128, -1, 130, 131, 132, -1, -1, -1, -1,
1506 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1507 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1508 -1, -1, -1, -1, -1, 67, 68, 69, 70, 71,
1509 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1510 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1511 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1512 102, -1, 104, -1, -1, -1, -1, -1, 8, -1,
1513 -1, -1, -1, -1, 116, -1, 118, 119, 120, 121,
1514 20, -1, 124, 125, 126, 127, 128, 129, 130, 131,
1515 132, -1, -1, -1, -1, 35, -1, -1, -1, -1,
1516 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1517 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1518 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1519 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1520 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1521 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1522 100, 101, 102, -1, 104, -1, -1, -1, -1, -1,
1523 8, -1, -1, -1, -1, -1, 116, -1, 118, 119,
1524 120, 121, 20, -1, 124, 125, 126, 127, 128, -1,
1525 130, 131, 132, -1, -1, -1, -1, 35, -1, -1,
1526 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1528 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1529 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1530 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1531 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1532 98, 99, 100, 101, 102, 8, 104, -1, -1, -1,
1533 -1, -1, -1, -1, -1, -1, -1, 20, 116, -1,
1534 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1535 128, -1, 130, 131, 132, -1, -1, -1, -1, -1,
1536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1537 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1538 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
1539 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1540 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1541 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1542 8, 104, -1, -1, -1, -1, -1, -1, -1, -1,
1543 -1, -1, 20, 116, -1, 118, 119, 120, 121, -1,
1544 -1, 124, 125, 126, 127, 128, -1, 130, 131, 132,
1545 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1547 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1548 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1549 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1550 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1551 98, 99, 100, 101, 102, -1, 104, -1, -1, -1,
1552 -1, -1, -1, -1, -1, -1, -1, -1, 116, -1,
1553 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1554 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1555 -1, -1, 10, 11, -1, -1, -1, -1, -1, -1,
1556 -1, -1, 20, 21, 22, 23, -1, 25, -1, -1,
1557 -1, 3, -1, -1, 6, -1, 34, 35, 10, 11,
1558 -1, -1, 40, 41, 42, 43, -1, -1, 20, 21,
1559 22, -1, -1, 25, -1, -1, 54, 55, -1, -1,
1560 -1, 59, 34, -1, 36, -1, -1, -1, 40, 41,
1561 42, 43, -1, -1, -1, -1, -1, -1, -1, -1,
1562 -1, 3, 54, 55, 6, -1, -1, 59, 10, 11,
1563 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1564 22, -1, -1, 25, -1, -1, -1, -1, -1, 107,
1565 108, -1, 34, -1, 36, -1, 114, -1, 40, 41,
1566 42, 43, 3, -1, -1, 6, -1, -1, -1, 10,
1567 11, -1, 54, 55, -1, 107, 108, 59, -1, 20,
1568 21, 22, 114, -1, 25, -1, -1, -1, -1, -1,
1569 -1, -1, -1, 34, -1, 36, -1, -1, -1, 40,
1570 41, 42, 43, -1, -1, -1, -1, -1, -1, -1,
1571 -1, -1, 3, 54, 55, 6, -1, -1, 59, 10,
1572 11, -1, -1, -1, -1, 107, 108, -1, -1, 20,
1573 21, 22, 114, -1, 25, -1, -1, -1, 3, -1,
1574 -1, 6, -1, 34, -1, 10, 11, -1, -1, 40,
1575 41, 42, 43, -1, -1, 20, -1, 22, -1, -1,
1576 25, -1, -1, 54, 55, -1, 107, 108, 59, 34,
1577 -1, -1, -1, 114, -1, 40, 41, 42, 43, -1,
1578 -1, -1, -1, -1, -1, -1, -1, -1, -1, 54,
1579 -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
1580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1581 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
1582 -1, -1, -1, 114, -1, -1, -1, -1, -1, -1,
1583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1584 -1, -1, 107, 108, -1, -1, -1, -1, -1, 114
1586 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1587 #line 3 "/usr/lib/bison.simple"
1588 /* This file comes from bison-1.28. */
1590 /* Skeleton output parser for bison,
1591 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1593 This program is free software; you can redistribute it and/or modify
1594 it under the terms of the GNU General Public License as published by
1595 the Free Software Foundation; either version 2, or (at your option)
1598 This program is distributed in the hope that it will be useful,
1599 but WITHOUT ANY WARRANTY; without even the implied warranty of
1600 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1601 GNU General Public License for more details.
1603 You should have received a copy of the GNU General Public License
1604 along with this program; if not, write to the Free Software
1605 Foundation, Inc., 59 Temple Place - Suite 330,
1606 Boston, MA 02111-1307, 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. */
1613 /* This is the parser code that is written into each bison parser
1614 when the %semantic_parser declaration is not specified in the grammar.
1615 It was written by Richard Stallman by simplifying the hairy parser
1616 used when %semantic_parser is specified. */
1618 #ifndef YYSTACK_USE_ALLOCA
1620 #define YYSTACK_USE_ALLOCA
1621 #else /* alloca not defined */
1623 #define YYSTACK_USE_ALLOCA
1624 #define alloca __builtin_alloca
1625 #else /* not GNU C. */
1626 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
1627 #define YYSTACK_USE_ALLOCA
1629 #else /* not sparc */
1630 /* We think this test detects Watcom and Microsoft C. */
1631 /* This used to test MSDOS, but that is a bad idea
1632 since that symbol is in the user namespace. */
1633 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
1634 #if 0 /* No need for malloc.h, which pollutes the namespace;
1635 instead, just don't use alloca. */
1638 #else /* not MSDOS, or __TURBOC__ */
1640 /* I don't know what this was needed for, but it pollutes the namespace.
1641 So I turned it off. rms, 2 May 1997. */
1642 /* #include <malloc.h> */
1644 #define YYSTACK_USE_ALLOCA
1645 #else /* not MSDOS, or __TURBOC__, or _AIX */
1647 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
1648 and on HPUX 10. Eventually we can turn this on. */
1649 #define YYSTACK_USE_ALLOCA
1650 #define alloca __builtin_alloca
1653 #endif /* not _AIX */
1654 #endif /* not MSDOS, or __TURBOC__ */
1655 #endif /* not sparc */
1656 #endif /* not GNU C */
1657 #endif /* alloca not defined */
1658 #endif /* YYSTACK_USE_ALLOCA not defined */
1660 #ifdef YYSTACK_USE_ALLOCA
1661 #define YYSTACK_ALLOC alloca
1663 #define YYSTACK_ALLOC malloc
1666 /* Note: there must be only one dollar sign in this file.
1667 It is replaced by the list of actions, each action
1668 as one case of the switch. */
1670 #define yyerrok (yyerrstatus = 0)
1671 #define yyclearin (yychar = YYEMPTY)
1674 #define YYACCEPT goto yyacceptlab
1675 #define YYABORT goto yyabortlab
1676 #define YYERROR goto yyerrlab1
1677 /* Like YYERROR except do call yyerror.
1678 This remains here temporarily to ease the
1679 transition to the new meaning of YYERROR, for GCC.
1680 Once GCC version 2 has supplanted version 1, this can go. */
1681 #define YYFAIL goto yyerrlab
1682 #define YYRECOVERING() (!!yyerrstatus)
1683 #define YYBACKUP(token, value) \
1685 if (yychar == YYEMPTY && yylen == 1) \
1686 { yychar = (token), yylval = (value); \
1687 yychar1 = YYTRANSLATE (yychar); \
1692 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1696 #define YYERRCODE 256
1699 #define YYLEX yylex()
1705 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1707 #define YYLEX yylex(&yylval, &yylloc)
1709 #else /* not YYLSP_NEEDED */
1711 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1713 #define YYLEX yylex(&yylval)
1715 #endif /* not YYLSP_NEEDED */
1718 /* If nonreentrant, generate the variables here */
1722 int yychar; /* the lookahead symbol */
1723 YYSTYPE yylval; /* the semantic value of the */
1724 /* lookahead symbol */
1727 YYLTYPE yylloc; /* location data for the lookahead */
1731 int yynerrs; /* number of parse errors so far */
1732 #endif /* not YYPURE */
1735 int yydebug; /* nonzero means print parse trace */
1736 /* Since this is uninitialized, it does not stop multiple parsers
1740 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1743 #define YYINITDEPTH 200
1746 /* YYMAXDEPTH is the maximum size the stacks can grow to
1747 (effective only if the built-in stack extension method is used). */
1754 #define YYMAXDEPTH 10000
1757 /* Define __yy_memcpy. Note that the size argument
1758 should be passed with type unsigned int, because that is what the non-GCC
1759 definitions require. With GCC, __builtin_memcpy takes an arg
1760 of type size_t, but it can handle unsigned int. */
1762 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1763 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1764 #else /* not GNU C or C++ */
1767 /* This is the most reliable way to avoid incompatibilities
1768 in available built-in functions on various systems. */
1770 __yy_memcpy (to, from, count)
1775 register char *f = from;
1776 register char *t = to;
1777 register int i = count;
1783 #else /* __cplusplus */
1785 /* This is the most reliable way to avoid incompatibilities
1786 in available built-in functions on various systems. */
1788 __yy_memcpy (char *to, char *from, unsigned int count)
1790 register char *t = to;
1791 register char *f = from;
1792 register int i = count;
1801 #line 217 "/usr/lib/bison.simple"
1803 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1804 into yyparse. The argument should have type void *.
1805 It should actually point to an object.
1806 Grammar actions can access the variable by casting it
1807 to the proper pointer type. */
1809 #ifdef YYPARSE_PARAM
1811 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1812 #define YYPARSE_PARAM_DECL
1813 #else /* not __cplusplus */
1814 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1815 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1816 #endif /* not __cplusplus */
1817 #else /* not YYPARSE_PARAM */
1818 #define YYPARSE_PARAM_ARG
1819 #define YYPARSE_PARAM_DECL
1820 #endif /* not YYPARSE_PARAM */
1822 /* Prevent warning if -Wstrict-prototypes. */
1824 #ifdef YYPARSE_PARAM
1825 int yyparse (void *);
1832 yyparse(YYPARSE_PARAM_ARG)
1835 register int yystate;
1837 register short *yyssp;
1838 register YYSTYPE *yyvsp;
1839 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1840 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1842 short yyssa[YYINITDEPTH]; /* the state stack */
1843 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1845 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1846 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1849 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1850 YYLTYPE *yyls = yylsa;
1853 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1855 #define YYPOPSTACK (yyvsp--, yyssp--)
1858 int yystacksize = YYINITDEPTH;
1859 int yyfree_stacks = 0;
1870 YYSTYPE yyval; /* the variable used to return */
1871 /* semantic values from the action */
1878 fprintf(stderr, "Starting parse\n");
1884 yychar = YYEMPTY; /* Cause a token to be read. */
1886 /* Initialize stack pointers.
1887 Waste one element of value and location stack
1888 so that they stay on the same level as the state stack.
1889 The wasted elements are never initialized. */
1897 /* Push a new state, which is found in yystate . */
1898 /* In all cases, when you get here, the value and location stacks
1899 have just been pushed. so pushing a state here evens the stacks. */
1904 if (yyssp >= yyss + yystacksize - 1)
1906 /* Give user a chance to reallocate the stack */
1907 /* Use copies of these so that the &'s don't force the real ones into memory. */
1908 YYSTYPE *yyvs1 = yyvs;
1909 short *yyss1 = yyss;
1911 YYLTYPE *yyls1 = yyls;
1914 /* Get the current used size of the three stacks, in elements. */
1915 int size = yyssp - yyss + 1;
1918 /* Each stack pointer address is followed by the size of
1919 the data in use in that stack, in bytes. */
1921 /* This used to be a conditional around just the two extra args,
1922 but that might be undefined if yyoverflow is a macro. */
1923 yyoverflow("parser stack overflow",
1924 &yyss1, size * sizeof (*yyssp),
1925 &yyvs1, size * sizeof (*yyvsp),
1926 &yyls1, size * sizeof (*yylsp),
1929 yyoverflow("parser stack overflow",
1930 &yyss1, size * sizeof (*yyssp),
1931 &yyvs1, size * sizeof (*yyvsp),
1935 yyss = yyss1; yyvs = yyvs1;
1939 #else /* no yyoverflow */
1940 /* Extend the stack our own way. */
1941 if (yystacksize >= YYMAXDEPTH)
1943 yyerror("parser stack overflow");
1955 if (yystacksize > YYMAXDEPTH)
1956 yystacksize = YYMAXDEPTH;
1957 #ifndef YYSTACK_USE_ALLOCA
1960 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
1961 __yy_memcpy ((char *)yyss, (char *)yyss1,
1962 size * (unsigned int) sizeof (*yyssp));
1963 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
1964 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
1965 size * (unsigned int) sizeof (*yyvsp));
1967 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
1968 __yy_memcpy ((char *)yyls, (char *)yyls1,
1969 size * (unsigned int) sizeof (*yylsp));
1971 #endif /* no yyoverflow */
1973 yyssp = yyss + size - 1;
1974 yyvsp = yyvs + size - 1;
1976 yylsp = yyls + size - 1;
1981 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1984 if (yyssp >= yyss + yystacksize - 1)
1990 fprintf(stderr, "Entering state %d\n", yystate);
1996 /* Do appropriate processing given the current state. */
1997 /* Read a lookahead token if we need one and don't already have one. */
2000 /* First try to decide what to do without reference to lookahead token. */
2002 yyn = yypact[yystate];
2006 /* Not known => get a lookahead token if don't already have one. */
2008 /* yychar is either YYEMPTY or YYEOF
2009 or a valid token in external form. */
2011 if (yychar == YYEMPTY)
2015 fprintf(stderr, "Reading a token: ");
2020 /* Convert token to internal form (in yychar1) for indexing tables with */
2022 if (yychar <= 0) /* This means end of input. */
2025 yychar = YYEOF; /* Don't call YYLEX any more */
2029 fprintf(stderr, "Now at end of input.\n");
2034 yychar1 = YYTRANSLATE(yychar);
2039 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2040 /* Give the individual parser a way to print the precise meaning
2041 of a token, for further debugging info. */
2043 YYPRINT (stderr, yychar, yylval);
2045 fprintf (stderr, ")\n");
2051 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2056 /* yyn is what to do for this token type in this state.
2057 Negative => reduce, -yyn is rule number.
2058 Positive => shift, yyn is new state.
2059 New state is final state => don't bother to shift,
2060 just return success.
2061 0, or most negative number => error. */
2076 /* Shift the lookahead token. */
2080 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2083 /* Discard the token being shifted unless it is eof. */
2084 if (yychar != YYEOF)
2092 /* count tokens shifted since error; after three, turn off error status. */
2093 if (yyerrstatus) yyerrstatus--;
2098 /* Do the default action for the current state. */
2101 yyn = yydefact[yystate];
2105 /* Do a reduction. yyn is the number of a rule to reduce with. */
2109 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2116 fprintf (stderr, "Reducing via rule %d (line %d), ",
2119 /* Print the symbols being reduced, and their result. */
2120 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2121 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2122 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2130 #line 383 "llgrammar.y"
2131 { lhExternals (yyvsp[0].interfacelist); ;
2134 #line 384 "llgrammar.y"
2135 { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
2138 #line 387 "llgrammar.y"
2139 { yyval.interfacelist = interfaceNodeList_new (); ;
2142 #line 388 "llgrammar.y"
2143 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2146 #line 395 "llgrammar.y"
2147 { yyval.interfacelist = interfaceNodeList_new (); ;
2150 #line 396 "llgrammar.y"
2151 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2154 #line 397 "llgrammar.y"
2155 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2158 #line 400 "llgrammar.y"
2159 { yyval.interfacelist = interfaceNodeList_new (); ;
2162 #line 401 "llgrammar.y"
2163 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2166 #line 410 "llgrammar.y"
2167 { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2168 /* assume subspecs are already processed, symbol table info in external file */
2172 #line 416 "llgrammar.y"
2173 { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
2176 #line 420 "llgrammar.y"
2177 { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
2180 #line 422 "llgrammar.y"
2181 { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
2184 #line 424 "llgrammar.y"
2185 { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
2188 #line 426 "llgrammar.y"
2189 { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
2192 #line 428 "llgrammar.y"
2193 { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
2196 #line 430 "llgrammar.y"
2197 { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
2200 #line 434 "llgrammar.y"
2201 { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
2204 #line 437 "llgrammar.y"
2205 { yyval.paramlist = paramNodeList_new (); ;
2208 #line 438 "llgrammar.y"
2209 { yyval.paramlist = yyvsp[0].paramlist; ;
2212 #line 442 "llgrammar.y"
2213 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
2216 #line 444 "llgrammar.y"
2217 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
2220 #line 447 "llgrammar.y"
2221 { yyval.param = markYieldParamNode (yyvsp[0].param); ;
2224 #line 448 "llgrammar.y"
2225 { yyval.param = yyvsp[0].param; ;
2228 #line 451 "llgrammar.y"
2229 { symtable_export (g_symtab, FALSE); ;
2232 #line 452 "llgrammar.y"
2233 { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
2236 #line 456 "llgrammar.y"
2237 { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
2240 #line 458 "llgrammar.y"
2241 { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
2244 #line 460 "llgrammar.y"
2245 { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
2248 #line 462 "llgrammar.y"
2249 { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
2252 #line 466 "llgrammar.y"
2253 { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
2256 #line 470 "llgrammar.y"
2257 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
2260 #line 472 "llgrammar.y"
2261 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
2264 #line 474 "llgrammar.y"
2265 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
2268 #line 477 "llgrammar.y"
2269 { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
2272 #line 478 "llgrammar.y"
2273 { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
2276 #line 481 "llgrammar.y"
2277 { yyval.typequal = qual_createPrintfLike (); ;
2280 #line 482 "llgrammar.y"
2281 { yyval.typequal = qual_createScanfLike (); ;
2284 #line 483 "llgrammar.y"
2285 { yyval.typequal = qual_createMessageLike (); ;
2288 #line 486 "llgrammar.y"
2289 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2292 #line 488 "llgrammar.y"
2293 { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls,
2294 yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2295 /* type, declarator, glovbls, privateinits,
2296 lets, checks, requires, modifies, ensures, claims */
2297 symtable_exitScope (g_symtab);
2301 #line 494 "llgrammar.y"
2302 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2305 #line 498 "llgrammar.y"
2306 { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist,
2307 yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2308 /* type, declarator, glovbls, privateinits,
2309 lets, checks, requires, modifies, ensures, claims */
2310 symtable_exitScope (g_symtab);
2314 #line 508 "llgrammar.y"
2315 { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
2318 #line 510 "llgrammar.y"
2319 { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate);
2320 symtable_exitScope (g_symtab); ;
2323 #line 513 "llgrammar.y"
2324 { yyval.claim = (claimNode) 0; ;
2327 #line 516 "llgrammar.y"
2328 {g_inTypeDef = TRUE; ;
2331 #line 516 "llgrammar.y"
2332 {g_inTypeDef = FALSE; ;
2335 #line 517 "llgrammar.y"
2336 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
2339 #line 518 "llgrammar.y"
2340 {g_inTypeDef = TRUE; ;
2343 #line 519 "llgrammar.y"
2344 {g_inTypeDef = FALSE; ;
2347 #line 520 "llgrammar.y"
2348 { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2351 #line 521 "llgrammar.y"
2352 {g_inTypeDef = TRUE; ;
2355 #line 522 "llgrammar.y"
2356 {g_inTypeDef = FALSE; ;
2359 #line 523 "llgrammar.y"
2360 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2363 #line 524 "llgrammar.y"
2364 {g_inTypeDef = TRUE; ;
2367 #line 524 "llgrammar.y"
2368 {g_inTypeDef = FALSE; ;
2371 #line 525 "llgrammar.y"
2372 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
2375 #line 528 "llgrammar.y"
2376 { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
2379 #line 529 "llgrammar.y"
2380 { g_inTypeDef = FALSE; ;
2383 #line 530 "llgrammar.y"
2384 { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
2387 #line 532 "llgrammar.y"
2388 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
2391 #line 534 "llgrammar.y"
2392 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
2395 #line 550 "llgrammar.y"
2396 { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
2399 #line 552 "llgrammar.y"
2400 { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
2403 #line 555 "llgrammar.y"
2404 { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
2407 #line 557 "llgrammar.y"
2408 { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
2411 #line 558 "llgrammar.y"
2412 { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
2415 #line 561 "llgrammar.y"
2416 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2419 #line 562 "llgrammar.y"
2420 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2423 #line 570 "llgrammar.y"
2424 { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
2427 #line 572 "llgrammar.y"
2428 { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
2431 #line 576 "llgrammar.y"
2432 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
2435 #line 578 "llgrammar.y"
2436 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
2439 #line 580 "llgrammar.y"
2440 { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
2443 #line 582 "llgrammar.y"
2444 { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
2447 #line 585 "llgrammar.y"
2448 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2451 #line 586 "llgrammar.y"
2452 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2455 #line 590 "llgrammar.y"
2456 { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
2459 #line 592 "llgrammar.y"
2460 { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
2463 #line 593 "llgrammar.y"
2464 { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
2467 #line 597 "llgrammar.y"
2468 { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
2471 #line 598 "llgrammar.y"
2472 { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
2475 #line 602 "llgrammar.y"
2476 { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
2479 #line 603 "llgrammar.y"
2480 { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
2483 #line 606 "llgrammar.y"
2484 { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
2487 #line 607 "llgrammar.y"
2488 { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
2491 #line 608 "llgrammar.y"
2492 { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
2493 yyvsp[-1].name, yyvsp[0].signature); ;
2496 #line 612 "llgrammar.y"
2497 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
2500 #line 613 "llgrammar.y"
2501 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
2504 #line 621 "llgrammar.y"
2505 { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
2508 #line 623 "llgrammar.y"
2509 { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
2512 #line 626 "llgrammar.y"
2513 { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
2516 #line 627 "llgrammar.y"
2517 { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
2520 #line 631 "llgrammar.y"
2521 { yyval.globals = varDeclarationNodeList_new (); ;
2524 #line 633 "llgrammar.y"
2525 { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
2528 #line 636 "llgrammar.y"
2529 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
2532 #line 637 "llgrammar.y"
2533 { yyval.vardeclaration = makeInternalStateNode (); ;
2536 #line 638 "llgrammar.y"
2537 { yyval.vardeclaration = makeFileSystemNode (); ;
2540 #line 641 "llgrammar.y"
2541 { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
2544 #line 642 "llgrammar.y"
2545 { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
2548 #line 646 "llgrammar.y"
2549 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
2552 #line 649 "llgrammar.y"
2553 { yyval.letdecls = letDeclNodeList_new (); ;
2556 #line 650 "llgrammar.y"
2557 { yyval.letdecls = yyvsp[-1].letdecls; ;
2560 #line 653 "llgrammar.y"
2561 { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
2564 #line 654 "llgrammar.y"
2565 { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
2568 #line 657 "llgrammar.y"
2569 { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
2572 #line 658 "llgrammar.y"
2573 { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
2576 #line 663 "llgrammar.y"
2577 { yyval.lclpredicate = (lclPredicateNode)0; ;
2580 #line 664 "llgrammar.y"
2581 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2584 #line 667 "llgrammar.y"
2585 { yyval.lclpredicate = (lclPredicateNode)0; ;
2588 #line 668 "llgrammar.y"
2589 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2592 #line 671 "llgrammar.y"
2593 { yyval.modify = (modifyNode)0; ;
2596 #line 672 "llgrammar.y"
2597 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
2600 #line 673 "llgrammar.y"
2601 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
2604 #line 674 "llgrammar.y"
2605 { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
2608 #line 677 "llgrammar.y"
2609 { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
2612 #line 678 "llgrammar.y"
2613 { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
2616 #line 681 "llgrammar.y"
2617 { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
2620 #line 682 "llgrammar.y"
2621 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
2624 #line 683 "llgrammar.y"
2625 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
2628 #line 684 "llgrammar.y"
2629 { yyval.storeref = makeStoreRefNodeInternal (); ;
2632 #line 685 "llgrammar.y"
2633 { yyval.storeref = makeStoreRefNodeSystem (); ;
2636 #line 688 "llgrammar.y"
2637 { yyval.lclpredicate = (lclPredicateNode)0; ;
2640 #line 689 "llgrammar.y"
2641 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2644 #line 692 "llgrammar.y"
2645 { yyval.lclpredicate = (lclPredicateNode)0; ;
2648 #line 693 "llgrammar.y"
2649 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2652 #line 696 "llgrammar.y"
2653 { yyval.paramlist = paramNodeList_new (); ;
2656 #line 697 "llgrammar.y"
2657 { yyval.paramlist = yyvsp[0].paramlist; ;
2660 #line 701 "llgrammar.y"
2661 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
2664 #line 702 "llgrammar.y"
2665 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
2668 #line 705 "llgrammar.y"
2669 { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
2672 #line 706 "llgrammar.y"
2673 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
2676 #line 709 "llgrammar.y"
2677 { yyval.program = (programNode)0; ;
2680 #line 710 "llgrammar.y"
2681 { yyval.program = yyvsp[-1].program; ;
2684 #line 711 "llgrammar.y"
2685 { yyval.program = yyvsp[-2].program; ;
2688 #line 714 "llgrammar.y"
2689 { yyval.program = makeProgramNode (yyvsp[0].stmt); ;
2692 #line 717 "llgrammar.y"
2693 { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
2696 #line 719 "llgrammar.y"
2697 { programNodeList x = programNodeList_new ();
2698 programNodeList_addh (x, yyvsp[-1].program);
2699 yyval.program = makeProgramNodeAction (x, ACT_ITER);
2703 #line 724 "llgrammar.y"
2704 { programNodeList x = programNodeList_new ();
2705 programNodeList_addh (x, yyvsp[-2].program);
2706 programNodeList_addh (x, yyvsp[0].program);
2707 yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE);
2711 #line 730 "llgrammar.y"
2712 { programNodeList x = programNodeList_new ();
2713 programNodeList_addh (x, yyvsp[-2].program);
2714 programNodeList_addh (x, yyvsp[0].program);
2715 yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE);
2719 #line 738 "llgrammar.y"
2720 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2723 #line 740 "llgrammar.y"
2724 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
2727 #line 742 "llgrammar.y"
2728 { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
2731 #line 744 "llgrammar.y"
2732 { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2735 #line 747 "llgrammar.y"
2736 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
2739 #line 748 "llgrammar.y"
2740 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
2743 #line 752 "llgrammar.y"
2744 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
2747 #line 753 "llgrammar.y"
2748 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
2751 #line 754 "llgrammar.y"
2752 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
2755 #line 755 "llgrammar.y"
2756 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
2759 #line 756 "llgrammar.y"
2760 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
2763 #line 758 "llgrammar.y"
2764 { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
2767 #line 760 "llgrammar.y"
2768 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
2771 #line 763 "llgrammar.y"
2772 { yyval.abstbody = (abstBodyNode)0; ;
2775 #line 764 "llgrammar.y"
2776 { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
2779 #line 765 "llgrammar.y"
2780 { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
2783 #line 766 "llgrammar.y"
2784 { yyval.abstbody = (abstBodyNode)0; ;
2787 #line 769 "llgrammar.y"
2788 { yyval.fcns = fcnNodeList_new (); ;
2791 #line 770 "llgrammar.y"
2792 { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
2795 #line 773 "llgrammar.y"
2796 { yyval.lclpredicate = (lclPredicateNode)0; ;
2799 #line 777 "llgrammar.y"
2800 { g_inTypeDef = FALSE; ;
2803 #line 778 "llgrammar.y"
2804 { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
2805 checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
2806 yyval.lclpredicate = yyvsp[-1].lclpredicate;
2807 symtable_exitScope (g_symtab);
2812 #line 786 "llgrammar.y"
2813 { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
2816 #line 788 "llgrammar.y"
2817 { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
2820 #line 791 "llgrammar.y"
2821 { declareForwardType (yyvsp[0].declare); ;
2824 #line 792 "llgrammar.y"
2825 { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
2828 #line 795 "llgrammar.y"
2829 { yyval.abstbody = (abstBodyNode)0; ;
2832 #line 796 "llgrammar.y"
2833 { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2836 #line 799 "llgrammar.y"
2837 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
2840 #line 800 "llgrammar.y"
2841 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
2844 #line 801 "llgrammar.y"
2845 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
2848 #line 802 "llgrammar.y"
2849 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
2852 #line 803 "llgrammar.y"
2853 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
2856 #line 804 "llgrammar.y"
2857 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
2860 #line 805 "llgrammar.y"
2861 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
2864 #line 806 "llgrammar.y"
2865 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
2868 #line 807 "llgrammar.y"
2869 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
2872 #line 808 "llgrammar.y"
2873 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
2876 #line 816 "llgrammar.y"
2877 { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
2880 #line 817 "llgrammar.y"
2881 { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
2884 #line 823 "llgrammar.y"
2885 { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
2888 #line 825 "llgrammar.y"
2889 { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
2892 #line 830 "llgrammar.y"
2893 { yyval.typequal = qual_createOut (); ;
2896 #line 831 "llgrammar.y"
2897 { yyval.typequal = qual_createUnused (); ;
2900 #line 832 "llgrammar.y"
2901 { yyval.typequal = qual_createSef (); ;
2904 #line 833 "llgrammar.y"
2905 { yyval.typequal = qual_createOnly (); ;
2908 #line 834 "llgrammar.y"
2909 { yyval.typequal = qual_createOwned (); ;
2912 #line 835 "llgrammar.y"
2913 { yyval.typequal = qual_createDependent (); ;
2916 #line 836 "llgrammar.y"
2917 { yyval.typequal = qual_createKeep (); ;
2920 #line 837 "llgrammar.y"
2921 { yyval.typequal = qual_createKept (); ;
2924 #line 838 "llgrammar.y"
2925 { yyval.typequal = qual_createObserver (); ;
2928 #line 839 "llgrammar.y"
2929 { yyval.typequal = qual_createExits (); ;
2932 #line 840 "llgrammar.y"
2933 { yyval.typequal = qual_createMayExit (); ;
2936 #line 841 "llgrammar.y"
2937 { yyval.typequal = qual_createTrueExit (); ;
2940 #line 842 "llgrammar.y"
2941 { yyval.typequal = qual_createFalseExit (); ;
2944 #line 843 "llgrammar.y"
2945 { yyval.typequal = qual_createNeverExit (); ;
2948 #line 844 "llgrammar.y"
2949 { yyval.typequal = qual_createOnly (); ;
2952 #line 845 "llgrammar.y"
2953 { yyval.typequal = qual_createShared (); ;
2956 #line 846 "llgrammar.y"
2957 { yyval.typequal = qual_createUnique (); ;
2960 #line 847 "llgrammar.y"
2961 { yyval.typequal = qual_createChecked (); ;
2964 #line 848 "llgrammar.y"
2965 { yyval.typequal = qual_createUnchecked (); ;
2968 #line 849 "llgrammar.y"
2969 { yyval.typequal = qual_createCheckedStrict (); ;
2972 #line 850 "llgrammar.y"
2973 { yyval.typequal = qual_createTrueNull (); ;
2976 #line 851 "llgrammar.y"
2977 { yyval.typequal = qual_createFalseNull (); ;
2980 #line 852 "llgrammar.y"
2981 { yyval.typequal = qual_createRelNull (); ;
2984 #line 853 "llgrammar.y"
2985 { yyval.typequal = qual_createRelDef (); ;
2988 #line 854 "llgrammar.y"
2989 { yyval.typequal = qual_createRefCounted (); ;
2992 #line 855 "llgrammar.y"
2993 { yyval.typequal = qual_createRefs (); ;
2996 #line 856 "llgrammar.y"
2997 { yyval.typequal = qual_createNewRef (); ;
3000 #line 857 "llgrammar.y"
3001 { yyval.typequal = qual_createKillRef (); ;
3004 #line 858 "llgrammar.y"
3005 { yyval.typequal = qual_createNull (); ;
3008 #line 859 "llgrammar.y"
3009 { yyval.typequal = qual_createNotNull (); ;
3012 #line 860 "llgrammar.y"
3013 { yyval.typequal = qual_createReturned (); ;
3016 #line 861 "llgrammar.y"
3017 { yyval.typequal = qual_createExposed (); ;
3020 #line 862 "llgrammar.y"
3021 { yyval.typequal = qual_createPartial (); ;
3024 #line 863 "llgrammar.y"
3025 { yyval.typequal = qual_createNullTerminated () ; ;
3028 #line 864 "llgrammar.y"
3029 { yyval.typequal = qual_createUndef (); ;
3032 #line 865 "llgrammar.y"
3033 { yyval.typequal = qual_createKilled (); ;
3036 #line 869 "llgrammar.y"
3037 { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
3040 #line 871 "llgrammar.y"
3041 { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
3044 #line 873 "llgrammar.y"
3045 { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
3048 #line 875 "llgrammar.y"
3049 { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
3052 #line 877 "llgrammar.y"
3053 { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
3056 #line 887 "llgrammar.y"
3057 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
3058 yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
3061 #line 891 "llgrammar.y"
3062 { yyval.count = 1; ;
3065 #line 892 "llgrammar.y"
3066 { yyval.count = yyvsp[-1].count + 1; ;
3069 #line 896 "llgrammar.y"
3070 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
3073 #line 898 "llgrammar.y"
3074 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3077 #line 900 "llgrammar.y"
3078 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
3081 #line 902 "llgrammar.y"
3082 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3085 #line 904 "llgrammar.y"
3086 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
3089 #line 906 "llgrammar.y"
3090 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
3093 #line 909 "llgrammar.y"
3094 { yyval.ltok = ltoken_undefined; ;
3097 #line 913 "llgrammar.y"
3098 { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
3101 #line 914 "llgrammar.y"
3102 { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
3105 #line 919 "llgrammar.y"
3106 { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
3109 #line 923 "llgrammar.y"
3110 { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
3113 #line 925 "llgrammar.y"
3114 { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
3117 #line 928 "llgrammar.y"
3121 #line 929 "llgrammar.y"
3125 #line 933 "llgrammar.y"
3126 { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
3129 #line 935 "llgrammar.y"
3130 { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
3133 #line 938 "llgrammar.y"
3134 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3137 #line 939 "llgrammar.y"
3138 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3141 #line 949 "llgrammar.y"
3142 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3145 #line 950 "llgrammar.y"
3146 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3149 #line 953 "llgrammar.y"
3150 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3153 #line 954 "llgrammar.y"
3154 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3157 #line 955 "llgrammar.y"
3158 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3161 #line 956 "llgrammar.y"
3162 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3165 #line 957 "llgrammar.y"
3166 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3169 #line 958 "llgrammar.y"
3170 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3173 #line 961 "llgrammar.y"
3174 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3177 #line 962 "llgrammar.y"
3178 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3181 #line 963 "llgrammar.y"
3182 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3185 #line 964 "llgrammar.y"
3186 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3189 #line 965 "llgrammar.y"
3190 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3193 #line 966 "llgrammar.y"
3194 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3197 #line 975 "llgrammar.y"
3198 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3201 #line 976 "llgrammar.y"
3202 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3205 #line 977 "llgrammar.y"
3206 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3209 #line 978 "llgrammar.y"
3210 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3213 #line 979 "llgrammar.y"
3214 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3217 #line 985 "llgrammar.y"
3218 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3221 #line 986 "llgrammar.y"
3222 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3225 #line 987 "llgrammar.y"
3226 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3229 #line 997 "llgrammar.y"
3230 { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3233 #line 998 "llgrammar.y"
3234 { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3237 #line 999 "llgrammar.y"
3238 { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
3241 #line 1004 "llgrammar.y"
3242 { yyval.abstDecl = (abstDeclaratorNode)0; ;
3245 #line 1005 "llgrammar.y"
3246 { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
3249 #line 1008 "llgrammar.y"
3250 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3253 #line 1009 "llgrammar.y"
3254 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3257 #line 1010 "llgrammar.y"
3258 { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
3261 #line 1011 "llgrammar.y"
3262 { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
3265 #line 1012 "llgrammar.y"
3266 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3269 #line 1013 "llgrammar.y"
3270 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3273 #line 1014 "llgrammar.y"
3274 { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
3277 #line 1015 "llgrammar.y"
3278 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3281 #line 1018 "llgrammar.y"
3282 { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
3285 #line 1019 "llgrammar.y"
3286 { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
3289 #line 1023 "llgrammar.y"
3290 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
3293 #line 1025 "llgrammar.y"
3294 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3297 #line 1027 "llgrammar.y"
3298 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3301 #line 1029 "llgrammar.y"
3302 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3305 #line 1031 "llgrammar.y"
3306 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
3307 opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3310 #line 1034 "llgrammar.y"
3311 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3314 #line 1036 "llgrammar.y"
3315 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3318 #line 1038 "llgrammar.y"
3319 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3322 #line 1040 "llgrammar.y"
3323 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3326 #line 1042 "llgrammar.y"
3327 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3330 #line 1044 "llgrammar.y"
3331 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3334 #line 1052 "llgrammar.y"
3335 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3338 #line 1054 "llgrammar.y"
3339 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3342 #line 1056 "llgrammar.y"
3343 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
3344 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3347 #line 1059 "llgrammar.y"
3348 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
3349 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3352 #line 1062 "llgrammar.y"
3353 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
3354 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3357 #line 1065 "llgrammar.y"
3358 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
3359 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3362 #line 1082 "llgrammar.y"
3363 { yyval.count = 0; ;
3366 #line 1086 "llgrammar.y"
3367 { yyval.count = 1; ;
3370 #line 1087 "llgrammar.y"
3371 { yyval.count = yyvsp[-2].count + 1; ;
3374 #line 1094 "llgrammar.y"
3375 { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3378 #line 1097 "llgrammar.y"
3379 { yyval.ltokenList = ltokenList_new (); ;
3382 #line 1101 "llgrammar.y"
3383 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3386 #line 1102 "llgrammar.y"
3387 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3390 #line 1105 "llgrammar.y"
3391 { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
3394 #line 1108 "llgrammar.y"
3395 { yyval.term = checkSort (yyvsp[0].term); ;
3398 #line 1115 "llgrammar.y"
3399 { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
3402 #line 1117 "llgrammar.y"
3403 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
3406 #line 1123 "llgrammar.y"
3407 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
3408 symtable_exitScope (g_symtab);
3412 #line 1127 "llgrammar.y"
3413 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3416 #line 1129 "llgrammar.y"
3417 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3420 #line 1133 "llgrammar.y"
3421 { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
3424 #line 1134 "llgrammar.y"
3425 { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
3428 #line 1142 "llgrammar.y"
3429 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
3432 #line 1145 "llgrammar.y"
3433 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3436 #line 1146 "llgrammar.y"
3437 { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
3440 #line 1149 "llgrammar.y"
3441 { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
3444 #line 1150 "llgrammar.y"
3445 { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
3448 #line 1154 "llgrammar.y"
3449 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3452 #line 1155 "llgrammar.y"
3453 { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3456 #line 1156 "llgrammar.y"
3457 { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
3460 #line 1157 "llgrammar.y"
3461 { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
3464 #line 1158 "llgrammar.y"
3465 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3468 #line 1159 "llgrammar.y"
3469 { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3472 #line 1162 "llgrammar.y"
3473 { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3476 #line 1167 "llgrammar.y"
3477 { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok);
3478 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3481 #line 1170 "llgrammar.y"
3482 { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3485 #line 1172 "llgrammar.y"
3486 { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok);
3487 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok));
3491 #line 1176 "llgrammar.y"
3492 { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3495 #line 1179 "llgrammar.y"
3496 { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3499 #line 1180 "llgrammar.y"
3500 { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3503 #line 1183 "llgrammar.y"
3504 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3507 #line 1184 "llgrammar.y"
3508 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3511 #line 1188 "llgrammar.y"
3512 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
3515 #line 1190 "llgrammar.y"
3516 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3519 #line 1192 "llgrammar.y"
3520 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3523 #line 1195 "llgrammar.y"
3524 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
3527 #line 1197 "llgrammar.y"
3528 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3531 #line 1199 "llgrammar.y"
3532 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3535 #line 1201 "llgrammar.y"
3536 { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
3540 #line 1204 "llgrammar.y"
3541 { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
3544 #line 1206 "llgrammar.y"
3545 { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3548 #line 1209 "llgrammar.y"
3549 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3552 #line 1210 "llgrammar.y"
3553 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3556 #line 1220 "llgrammar.y"
3557 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3560 #line 1221 "llgrammar.y"
3561 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3564 #line 1222 "llgrammar.y"
3565 { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
3568 #line 1223 "llgrammar.y"
3569 { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
3572 #line 1225 "llgrammar.y"
3573 { termNodeList x = termNodeList_new ();
3574 termNodeList_addh (x, yyvsp[-1].term);
3575 yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok);
3579 #line 1230 "llgrammar.y"
3580 { termNodeList x = termNodeList_new ();
3581 termNodeList_addh (x, yyvsp[-3].term);
3582 termNodeList_addh (x, yyvsp[-1].term);
3583 yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok);
3587 #line 1235 "llgrammar.y"
3588 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
3591 #line 1245 "llgrammar.y"
3592 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
3595 #line 1246 "llgrammar.y"
3596 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
3599 #line 1247 "llgrammar.y"
3600 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
3603 #line 1248 "llgrammar.y"
3604 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
3607 #line 1252 "llgrammar.y"
3608 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
3611 #line 1254 "llgrammar.y"
3612 { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
3615 #line 1257 "llgrammar.y"
3616 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
3617 si->kind = SPE_QUANT;
3618 symtable_enterScope (g_symtab, si); ;
3621 #line 1261 "llgrammar.y"
3622 { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
3625 #line 1264 "llgrammar.y"
3626 { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
3629 #line 1265 "llgrammar.y"
3630 { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
3633 #line 1268 "llgrammar.y"
3634 { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
3637 #line 1269 "llgrammar.y"
3638 { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
3641 /* the action file gets copied in in place of this dollarsign */
3642 #line 543 "/usr/lib/bison.simple"
3653 short *ssp1 = yyss - 1;
3654 fprintf (stderr, "state stack now");
3655 while (ssp1 != yyssp)
3656 fprintf (stderr, " %d", *++ssp1);
3657 fprintf (stderr, "\n");
3667 yylsp->first_line = yylloc.first_line;
3668 yylsp->first_column = yylloc.first_column;
3669 yylsp->last_line = (yylsp-1)->last_line;
3670 yylsp->last_column = (yylsp-1)->last_column;
3675 yylsp->last_line = (yylsp+yylen-1)->last_line;
3676 yylsp->last_column = (yylsp+yylen-1)->last_column;
3680 /* Now "shift" the result of the reduction.
3681 Determine what state that goes to,
3682 based on the state we popped back to
3683 and the rule number reduced by. */
3687 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3688 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3689 yystate = yytable[yystate];
3691 yystate = yydefgoto[yyn - YYNTBASE];
3695 yyerrlab: /* here on detecting error */
3698 /* If not already recovering from an error, report this error. */
3702 #ifdef YYERROR_VERBOSE
3703 yyn = yypact[yystate];
3705 if (yyn > YYFLAG && yyn < YYLAST)
3712 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3713 for (x = (yyn < 0 ? -yyn : 0);
3714 x < (sizeof(yytname) / sizeof(char *)); x++)
3715 if (yycheck[x + yyn] == x)
3716 size += strlen(yytname[x]) + 15, count++;
3717 msg = (char *) malloc(size + 15);
3720 strcpy(msg, "parse error");
3725 for (x = (yyn < 0 ? -yyn : 0);
3726 x < (sizeof(yytname) / sizeof(char *)); x++)
3727 if (yycheck[x + yyn] == x)
3729 strcat(msg, count == 0 ? ", expecting `" : " or `");
3730 strcat(msg, yytname[x]);
3739 yyerror ("parse error; also virtual memory exceeded");
3742 #endif /* YYERROR_VERBOSE */
3743 yyerror("parse error");
3747 yyerrlab1: /* here on error raised explicitly by an action */
3749 if (yyerrstatus == 3)
3751 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3753 /* return failure if at end of input */
3754 if (yychar == YYEOF)
3759 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3765 /* Else will try to reuse lookahead token
3766 after shifting the error token. */
3768 yyerrstatus = 3; /* Each real token shifted decrements this */
3772 yyerrdefault: /* current state does not do anything special for the error token. */
3775 /* This is wrong; only states that explicitly want error tokens
3776 should shift them. */
3777 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3778 if (yyn) goto yydefault;
3781 yyerrpop: /* pop the current state because it cannot handle the error token */
3783 if (yyssp == yyss) YYABORT;
3793 short *ssp1 = yyss - 1;
3794 fprintf (stderr, "Error: state stack now");
3795 while (ssp1 != yyssp)
3796 fprintf (stderr, " %d", *++ssp1);
3797 fprintf (stderr, "\n");
3803 yyn = yypact[yystate];
3808 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3827 fprintf(stderr, "Shifting error token, ");
3839 /* YYACCEPT comes here. */
3851 /* YYABORT comes here. */
3862 #line 1284 "llgrammar.y"
3865 # include "bison.reset"
3868 ** yytext is set in lex scanner
3869 ** extern YYSTYPE yylval;
3870 ** yylval is defined by code generated by bison
3873 void ylerror (char *s)
3876 ** This resetting of the left context is very important when multiple
3877 ** files are to be parsed. We do not want failures to propagate.
3878 ** Lex/Yacc does not reset the flags when the parsing goes bad.
3883 lclfatalerror (yllval.ltok,
3884 message ("%s: Token code: %s, Token String: %s",
3885 cstring_fromChars (s),
3886 ltoken_unparseCodeName (yllval.ltok),
3887 ltoken_getRawString (yllval.ltok)));
3891 static void yyprint (FILE *f, int t, YYSTYPE value)
3893 fprintf (f, " type: %d (%s)", t,
3894 cstring_toCharsSafe (ltoken_getRawString (value.ltok)));