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