2 /* A Bison parser, made from llgrammar.y
3 by GNU Bison version 1.28 */
5 #define YYBISON 1 /* Identify Bison output. */
7 #define yyparse ylparse
9 #define yyerror ylerror
12 #define yydebug yldebug
13 #define yynerrs ylnerrs
16 #define POSTFIX_OP 259
19 #define LLT_VERTICALBAR 262
20 #define ITERATION_OP 263
22 #define LLT_LBRACKET 265
24 #define LLT_IF_THEN_ELSE 267
27 #define equationSym 270
28 #define commentSym 271
29 #define LLT_WHITESPACE 272
31 #define LLT_TYPEDEF_NAME 274
32 #define quantifierSym 275
44 #define LLT_EQUALS 287
45 #define LLT_LBRACE 288
46 #define LLT_RBRACE 289
47 #define LLT_RBRACKET 290
52 #define LLT_CFLOAT 295
53 #define LLT_CINTEGER 296
54 #define LLT_LCSTRING 297
56 #define LLT_ANYTHING 299
59 #define LLT_CLAIMS 302
60 #define LLT_CHECKS 303
61 #define LLT_CONSTANT 304
63 #define LLT_ENSURES 306
67 #define LLT_IMMUTABLE 310
68 #define LLT_IMPORTS 311
69 #define LLT_CONSTRAINT 312
72 #define LLT_MODIFIES 315
73 #define LLT_MUTABLE 316
74 #define LLT_NOTHING 317
75 #define LLT_INTERNAL 318
76 #define LLT_FILESYS 319
81 #define LLT_PARTIAL 324
83 #define LLT_DEPENDENT 326
87 #define LLT_SHARED 330
88 #define LLT_UNIQUE 331
89 #define LLT_UNUSED 332
91 #define LLT_MAYEXIT 334
92 #define LLT_NEVEREXIT 335
93 #define LLT_TRUEEXIT 336
94 #define LLT_FALSEEXIT 337
96 #define LLT_KILLED 339
97 #define LLT_CHECKMOD 340
98 #define LLT_CHECKED 341
99 #define LLT_UNCHECKED 342
100 #define LLT_CHECKEDSTRICT 343
101 #define LLT_TRUENULL 344
102 #define LLT_FALSENULL 345
103 #define LLT_LNULL 346
104 #define LLT_LNOTNULL 347
105 #define LLT_RETURNED 348
106 #define LLT_OBSERVER 349
107 #define LLT_EXPOSED 350
108 #define LLT_REFCOUNTED 351
110 #define LLT_RELNULL 353
111 #define LLT_RELDEF 354
112 #define LLT_KILLREF 355
113 #define LLT_NULLTERMINATED 356
114 #define LLT_TEMPREF 357
115 #define LLT_NEWREF 358
116 #define LLT_PRIVATE 359
117 #define LLT_REQUIRES 360
118 #define LLT_RESULT 361
119 #define LLT_SIZEOF 362
121 #define LLT_TAGGEDUNION 364
124 #define LLT_TYPEDEF 367
125 #define LLT_UNCHANGED 368
128 #define LLT_CONST 371
129 #define LLT_DOUBLE 372
131 #define LLT_FLOAT 374
134 #define LLT_YIELD 377
136 #define LLT_SHORT 379
137 #define LLT_SIGNED 380
138 #define LLT_UNKNOWN 381
139 #define LLT_STRUCT 382
140 #define LLT_TELIPSIS 383
141 #define LLT_UNION 384
142 #define LLT_UNSIGNED 385
144 #define LLT_VOLATILE 387
145 #define LLT_PRINTFLIKE 388
146 #define LLT_SCANFLIKE 389
147 #define LLT_MESSAGELIKE 390
149 #line 36 "llgrammar.y"
152 # include "lclintMacros.nf"
153 # include "llbasic.h"
154 # include "lclscan.h"
155 # include "checking.h"
156 # include "lslparse.h"
158 # include "usymtab_interface.h"
161 static /*@unused@*/ void yyprint ();
165 void ylerror (char *) /*@modifies *g_msgstream@*/ ;
168 bool g_inTypeDef = FALSE;
170 /*@constant int YYDEBUG;@*/
174 # define YYPRINT(file, type, value) yyprint (file, type, value)
177 ** This is necessary, or else when the bison-generated code #include's malloc.h,
178 ** there will be a parse error.
180 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
181 ** in bison-generated files under Win32.
191 #line 78 "llgrammar.y"
194 ltoken ltok; /* a leaf is also an ltoken */
197 /*@only@*/ ltokenList ltokenList;
198 /*@only@*/ abstDeclaratorNode abstDecl;
199 /*@only@*/ declaratorNode declare;
200 /*@only@*/ declaratorNodeList declarelist;
201 /*@only@*/ typeExpr typeexpr;
202 /*@only@*/ arrayQualNode array;
203 /*@only@*/ quantifierNode quantifier;
204 /*@only@*/ quantifierNodeList quantifiers;
205 /*@only@*/ varNode var;
206 /*@only@*/ varNodeList vars;
207 /*@only@*/ storeRefNode storeref;
208 /*@only@*/ storeRefNodeList storereflist;
209 /*@only@*/ termNode term;
210 /*@only@*/ termNodeList termlist;
211 /*@only@*/ programNode program;
212 /*@only@*/ stmtNode stmt;
213 /*@only@*/ claimNode claim;
214 /*@only@*/ typeNode type;
215 /*@only@*/ iterNode iter;
216 /*@only@*/ fcnNode fcn;
217 /*@only@*/ fcnNodeList fcns;
218 /*@only@*/ letDeclNode letdecl;
219 /*@only@*/ letDeclNodeList letdecls;
220 /*@only@*/ lclPredicateNode lclpredicate;
221 /*@only@*/ modifyNode modify;
222 /*@only@*/ paramNode param;
223 /*@only@*/ paramNodeList paramlist;
224 /*@only@*/ declaratorInvNodeList declaratorinvs;
225 /*@only@*/ declaratorInvNode declaratorinv;
226 /*@only@*/ abstBodyNode abstbody;
227 /*@only@*/ abstractNode abstract;
228 /*@only@*/ exposedNode exposed;
229 /* taggedUnionNode taggedunion; */
230 /*@only@*/ globalList globals;
231 /*@only@*/ constDeclarationNode constdeclaration;
232 /*@only@*/ varDeclarationNode vardeclaration;
233 /*@only@*/ varDeclarationNodeList vardeclarationlist;
234 /*@only@*/ initDeclNodeList initdecls;
235 /*@only@*/ initDeclNode initdecl;
236 /*@only@*/ stDeclNodeList structdecls;
237 /*@only@*/ stDeclNode structdecl;
238 /*@only@*/ strOrUnionNode structorunion;
239 /*@only@*/ enumSpecNode enumspec;
240 /*@only@*/ lclTypeSpecNode lcltypespec;
241 /*@only@*/ typeNameNode typname;
242 /*@only@*/ opFormNode opform;
243 /*@only@*/ sigNode signature;
244 /*@only@*/ nameNode name;
245 /*@only@*/ typeNameNodeList namelist;
246 /*@only@*/ replaceNode replace;
247 /*@only@*/ replaceNodeList replacelist;
248 /*@only@*/ renamingNode renaming;
249 /*@only@*/ traitRefNode traitref;
250 /*@only@*/ traitRefNodeList traitreflist;
251 /*@only@*/ importNode import;
252 /*@only@*/ importNodeList importlist;
253 /*@only@*/ interfaceNode iface;
254 /*@only@*/ interfaceNodeList interfacelist;
255 /*@only@*/ CTypesNode ctypes;
272 #define YYFLAG -32768
275 #define YYTRANSLATE(x) ((unsigned)(x) <= 390 ? yytranslate[x] : 291)
277 static const short yytranslate[] = { 0,
278 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
279 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
280 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
281 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
282 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
283 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
284 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
285 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
286 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
287 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
288 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
289 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
290 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
291 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
292 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
293 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
294 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
295 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
296 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
297 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
298 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
299 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
300 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
301 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
302 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
303 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
304 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
305 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
306 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
307 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
308 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
309 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
310 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
311 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
312 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
313 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
314 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
315 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
316 127, 128, 129, 130, 131, 132, 133, 134, 135, 136
320 static const short yyprhs[] = { 0,
321 0, 1, 5, 6, 9, 11, 13, 14, 17, 20,
322 21, 24, 26, 28, 30, 34, 38, 40, 42, 44,
323 46, 48, 50, 57, 58, 60, 62, 66, 69, 71,
324 72, 76, 78, 80, 82, 84, 89, 93, 98, 103,
325 105, 107, 109, 111, 113, 114, 128, 129, 144, 145,
326 159, 164, 165, 166, 173, 174, 175, 183, 184, 185,
327 193, 194, 195, 202, 203, 204, 211, 214, 217, 219,
328 223, 225, 229, 231, 233, 237, 239, 241, 245, 247,
329 252, 256, 263, 265, 269, 271, 273, 277, 279, 283,
330 285, 289, 293, 297, 302, 304, 306, 308, 310, 312,
331 316, 318, 322, 323, 326, 330, 333, 336, 337, 340,
332 345, 346, 350, 352, 356, 362, 366, 368, 369, 373,
333 374, 378, 379, 383, 387, 391, 393, 397, 399, 401,
334 404, 406, 408, 409, 413, 414, 418, 419, 421, 423,
335 425, 429, 431, 435, 436, 441, 447, 449, 453, 456,
336 460, 464, 469, 473, 479, 486, 488, 492, 494, 496,
337 499, 502, 506, 510, 514, 519, 521, 525, 530, 534,
338 535, 538, 539, 541, 542, 549, 551, 555, 556, 560,
339 561, 565, 567, 569, 571, 573, 575, 577, 579, 581,
340 583, 585, 587, 590, 592, 594, 596, 598, 600, 602,
341 604, 606, 608, 610, 612, 614, 616, 618, 620, 622,
342 624, 626, 628, 630, 632, 634, 636, 638, 640, 642,
343 644, 646, 648, 650, 652, 654, 656, 658, 660, 662,
344 664, 666, 668, 670, 672, 675, 681, 683, 686, 688,
345 691, 692, 699, 700, 707, 710, 713, 714, 716, 718,
346 721, 725, 727, 731, 732, 734, 741, 744, 746, 750,
347 752, 754, 756, 760, 763, 766, 770, 775, 777, 781,
348 784, 787, 791, 796, 798, 801, 804, 808, 813, 816,
349 819, 822, 825, 829, 831, 832, 834, 838, 841, 843,
350 845, 848, 852, 856, 861, 864, 868, 875, 877, 880,
351 883, 887, 891, 896, 901, 907, 911, 916, 921, 927,
352 930, 933, 937, 941, 943, 945, 947, 949, 951, 953,
353 955, 956, 958, 960, 964, 966, 968, 973, 974, 976,
354 978, 982, 984, 986, 993, 995, 999, 1001, 1006, 1010,
355 1014, 1016, 1019, 1022, 1024, 1026, 1028, 1031, 1033, 1036,
356 1039, 1043, 1045, 1047, 1050, 1053, 1057, 1059, 1062, 1066,
357 1068, 1074, 1078, 1083, 1086, 1090, 1093, 1095, 1099, 1103,
358 1105, 1110, 1112, 1115, 1119, 1123, 1127, 1132, 1136, 1138,
359 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1159, 1164, 1169,
360 1174, 1181, 1186, 1188, 1190, 1192, 1194, 1196, 1199, 1200,
361 1204, 1206, 1210, 1214, 1219, 1221, 1223, 1225, 1227, 1229,
365 static const short yyrhs[] = { -1,
366 139, 138, 141, 0, 0, 139, 140, 0, 144, 0,
367 145, 0, 0, 146, 142, 0, 151, 142, 0, 0,
368 142, 143, 0, 146, 0, 151, 0, 145, 0, 57,
369 175, 7, 0, 115, 179, 7, 0, 154, 0, 155,
370 0, 156, 0, 158, 0, 161, 0, 147, 0, 122,
371 285, 10, 148, 37, 7, 0, 0, 149, 0, 150,
372 0, 149, 32, 150, 0, 123, 244, 0, 244, 0,
373 0, 109, 152, 153, 0, 154, 0, 155, 0, 156,
374 0, 158, 0, 50, 227, 189, 7, 0, 227, 189,
375 7, 0, 117, 227, 189, 7, 0, 133, 227, 189,
376 7, 0, 163, 0, 172, 0, 134, 0, 135, 0,
377 136, 0, 0, 227, 240, 191, 159, 34, 193, 195,
378 199, 200, 201, 204, 205, 35, 0, 0, 157, 227,
379 240, 191, 160, 34, 193, 195, 199, 200, 201, 204,
380 205, 35, 0, 0, 48, 287, 10, 206, 37, 191,
381 162, 34, 195, 200, 209, 204, 35, 0, 48, 284,
382 287, 7, 0, 0, 0, 62, 164, 112, 20, 165,
383 214, 0, 0, 0, 62, 166, 97, 112, 20, 167,
384 214, 0, 0, 0, 97, 62, 168, 112, 20, 169,
385 214, 0, 0, 0, 56, 170, 112, 20, 171, 214,
386 0, 0, 0, 113, 227, 173, 219, 174, 7, 0,
387 230, 7, 0, 238, 7, 0, 176, 0, 175, 32,
388 176, 0, 178, 0, 3, 178, 3, 0, 43, 0,
389 178, 0, 177, 32, 178, 0, 283, 0, 180, 0,
390 179, 32, 180, 0, 289, 0, 289, 10, 182, 37,
391 0, 10, 181, 37, 0, 10, 181, 37, 10, 182,
392 37, 0, 289, 0, 181, 32, 289, 0, 184, 0,
393 183, 0, 183, 32, 184, 0, 245, 0, 183, 32,
394 245, 0, 185, 0, 184, 32, 185, 0, 245, 53,
395 223, 0, 245, 53, 186, 0, 245, 53, 186, 256,
396 0, 290, 0, 249, 0, 188, 0, 260, 0, 190,
397 0, 189, 32, 190, 0, 240, 0, 240, 33, 187,
398 0, 0, 191, 192, 0, 227, 189, 7, 0, 64,
399 7, 0, 65, 7, 0, 0, 193, 194, 0, 105,
400 227, 189, 7, 0, 0, 60, 196, 7, 0, 197,
401 0, 196, 32, 197, 0, 285, 31, 198, 46, 260,
402 0, 285, 46, 260, 0, 227, 0, 0, 49, 259,
403 7, 0, 0, 106, 259, 7, 0, 0, 61, 63,
404 7, 0, 61, 45, 7, 0, 61, 202, 7, 0,
405 203, 0, 202, 32, 203, 0, 260, 0, 228, 0,
406 66, 228, 0, 64, 0, 65, 0, 0, 52, 259,
407 7, 0, 0, 48, 259, 7, 0, 0, 207, 0,
408 208, 0, 129, 0, 208, 32, 129, 0, 244, 0,
409 208, 32, 244, 0, 0, 47, 34, 210, 35, 0,
410 47, 34, 210, 7, 35, 0, 211, 0, 10, 210,
411 37, 0, 210, 6, 0, 210, 8, 210, 0, 210,
412 7, 210, 0, 284, 10, 212, 37, 0, 284, 10,
413 37, 0, 285, 33, 284, 10, 37, 0, 285, 33,
414 284, 10, 212, 37, 0, 213, 0, 212, 32, 213,
415 0, 277, 0, 285, 0, 3, 213, 0, 213, 3,
416 0, 213, 3, 213, 0, 10, 213, 37, 0, 284,
417 10, 37, 0, 284, 10, 212, 37, 0, 7, 0,
418 34, 215, 35, 0, 34, 177, 35, 7, 0, 34,
419 35, 7, 0, 0, 215, 158, 0, 0, 217, 0,
420 0, 58, 218, 279, 10, 259, 37, 0, 220, 0,
421 219, 32, 220, 0, 0, 240, 221, 222, 0, 0,
422 34, 216, 35, 0, 132, 0, 116, 0, 118, 0,
423 120, 0, 121, 0, 124, 0, 125, 0, 126, 0,
424 131, 0, 127, 0, 223, 0, 224, 223, 0, 20,
425 0, 224, 0, 67, 0, 78, 0, 68, 0, 69,
426 0, 71, 0, 72, 0, 73, 0, 74, 0, 95,
427 0, 79, 0, 80, 0, 82, 0, 83, 0, 81,
428 0, 75, 0, 76, 0, 77, 0, 87, 0, 88,
429 0, 89, 0, 90, 0, 91, 0, 99, 0, 100,
430 0, 97, 0, 98, 0, 104, 0, 101, 0, 92,
431 0, 93, 0, 94, 0, 96, 0, 70, 0, 102,
432 0, 84, 0, 85, 0, 225, 0, 230, 0, 238,
433 0, 226, 227, 0, 8, 228, 31, 228, 8, 0,
434 227, 0, 227, 229, 0, 6, 0, 229, 6, 0,
435 0, 128, 233, 231, 34, 234, 35, 0, 0, 130,
436 233, 232, 34, 234, 35, 0, 128, 286, 0, 130,
437 286, 0, 0, 286, 0, 235, 0, 234, 235, 0,
438 227, 236, 7, 0, 240, 0, 236, 32, 240, 0,
439 0, 32, 0, 119, 233, 34, 239, 237, 35, 0,
440 119, 286, 0, 25, 0, 239, 32, 25, 0, 242,
441 0, 241, 0, 285, 0, 10, 241, 37, 0, 6,
442 241, 0, 241, 248, 0, 241, 10, 37, 0, 241,
443 10, 207, 37, 0, 20, 0, 10, 242, 37, 0,
444 6, 242, 0, 242, 248, 0, 242, 10, 37, 0,
445 242, 10, 207, 37, 0, 20, 0, 6, 243, 0,
446 243, 248, 0, 243, 10, 37, 0, 243, 10, 207,
447 37, 0, 227, 243, 0, 227, 241, 0, 227, 246,
448 0, 227, 246, 0, 66, 227, 246, 0, 249, 0,
449 0, 247, 0, 10, 247, 37, 0, 6, 247, 0,
450 6, 0, 248, 0, 247, 248, 0, 247, 10, 37,
451 0, 10, 207, 37, 0, 247, 10, 207, 37, 0,
452 11, 36, 0, 11, 188, 36, 0, 55, 27, 111,
453 27, 51, 27, 0, 252, 0, 27, 252, 0, 252,
454 27, 0, 27, 252, 27, 0, 250, 253, 251, 0,
455 27, 250, 253, 251, 0, 250, 253, 251, 27, 0,
456 27, 250, 253, 251, 27, 0, 11, 253, 36, 0,
457 11, 253, 36, 27, 0, 27, 11, 253, 36, 0,
458 27, 11, 253, 36, 27, 0, 12, 283, 0, 26,
459 283, 0, 27, 12, 283, 0, 27, 26, 283, 0,
460 22, 0, 34, 0, 23, 0, 35, 0, 264, 0,
461 14, 0, 39, 0, 0, 254, 0, 27, 0, 254,
462 255, 27, 0, 32, 0, 24, 0, 31, 257, 26,
463 288, 0, 0, 258, 0, 288, 0, 258, 32, 288,
464 0, 260, 0, 261, 0, 55, 261, 111, 261, 51,
465 261, 0, 262, 0, 261, 14, 261, 0, 263, 0,
466 278, 10, 259, 37, 0, 263, 39, 263, 0, 263,
467 33, 263, 0, 265, 0, 268, 266, 0, 268, 267,
468 0, 3, 0, 6, 0, 268, 0, 264, 265, 0,
469 264, 0, 266, 264, 0, 264, 268, 0, 267, 264,
470 268, 0, 273, 0, 269, 0, 269, 273, 0, 273,
471 269, 0, 273, 269, 273, 0, 270, 0, 270, 273,
472 0, 271, 31, 288, 0, 271, 0, 11, 272, 36,
473 31, 288, 0, 11, 272, 36, 0, 11, 36, 31,
474 288, 0, 11, 36, 0, 250, 272, 251, 0, 250,
475 251, 0, 260, 0, 272, 255, 260, 0, 10, 261,
476 37, 0, 285, 0, 290, 10, 274, 37, 0, 276,
477 0, 273, 275, 0, 273, 12, 283, 0, 273, 26,
478 283, 0, 273, 11, 36, 0, 273, 11, 274, 36,
479 0, 273, 31, 288, 0, 261, 0, 274, 32, 261,
480 0, 28, 0, 29, 0, 30, 0, 38, 0, 277,
481 0, 107, 0, 54, 10, 274, 37, 0, 114, 10,
482 44, 37, 0, 114, 10, 202, 37, 0, 108, 10,
483 260, 37, 0, 59, 10, 260, 32, 260, 37, 0,
484 108, 10, 227, 37, 0, 42, 0, 43, 0, 40,
485 0, 41, 0, 279, 0, 278, 279, 0, 0, 21,
486 280, 281, 0, 282, 0, 281, 32, 282, 0, 285,
487 31, 198, 0, 285, 31, 66, 198, 0, 25, 0,
488 20, 0, 25, 0, 25, 0, 283, 0, 283, 0,
489 283, 0, 283, 0, 283, 0
495 static const short yyrline[] = { 0,
496 383, 384, 387, 388, 391, 392, 395, 396, 397, 400,
497 401, 404, 405, 406, 409, 415, 419, 421, 423, 425,
498 427, 429, 433, 437, 438, 441, 443, 447, 448, 451,
499 452, 455, 457, 459, 461, 465, 469, 471, 473, 477,
500 478, 481, 482, 483, 486, 487, 494, 496, 507, 509,
501 512, 516, 516, 517, 518, 518, 520, 521, 522, 523,
502 524, 524, 525, 528, 529, 530, 531, 533, 549, 551,
503 555, 556, 558, 561, 562, 565, 569, 571, 575, 577,
504 579, 581, 585, 586, 589, 591, 593, 596, 598, 601,
505 603, 606, 607, 608, 612, 613, 615, 617, 620, 622,
506 626, 627, 630, 632, 636, 637, 638, 641, 642, 645,
507 649, 650, 653, 654, 657, 658, 660, 663, 664, 667,
508 668, 671, 672, 673, 674, 677, 678, 681, 682, 683,
509 684, 685, 688, 689, 692, 693, 696, 697, 700, 701,
510 702, 705, 706, 709, 710, 711, 714, 715, 718, 723,
511 729, 737, 739, 741, 743, 747, 748, 751, 752, 753,
512 754, 755, 756, 757, 759, 763, 764, 765, 766, 769,
513 770, 773, 774, 777, 777, 786, 787, 791, 792, 795,
514 796, 799, 800, 801, 802, 803, 804, 805, 806, 807,
515 808, 816, 817, 822, 824, 830, 831, 832, 833, 834,
516 835, 836, 837, 838, 839, 840, 841, 842, 843, 844,
517 845, 846, 847, 848, 849, 850, 851, 852, 853, 854,
518 855, 856, 857, 858, 859, 860, 861, 862, 863, 864,
519 865, 868, 870, 872, 874, 876, 885, 886, 891, 892,
520 895, 897, 899, 901, 903, 905, 909, 910, 913, 914,
521 919, 922, 924, 928, 929, 932, 934, 938, 939, 949,
522 950, 953, 954, 955, 956, 957, 958, 961, 962, 963,
523 964, 965, 966, 975, 976, 977, 978, 979, 985, 986,
524 987, 997, 998, 999, 1004, 1005, 1008, 1009, 1010, 1011,
525 1012, 1013, 1014, 1015, 1018, 1019, 1022, 1024, 1026, 1028,
526 1030, 1033, 1035, 1037, 1039, 1041, 1043, 1051, 1053, 1055,
527 1058, 1061, 1064, 1069, 1070, 1073, 1074, 1077, 1078, 1079,
528 1082, 1083, 1086, 1087, 1090, 1091, 1094, 1097, 1098, 1101,
529 1102, 1105, 1108, 1114, 1116, 1117, 1120, 1121, 1126, 1128,
530 1132, 1133, 1134, 1137, 1138, 1141, 1142, 1145, 1146, 1149,
531 1150, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1162, 1163,
532 1166, 1169, 1171, 1175, 1179, 1180, 1183, 1184, 1187, 1189,
533 1191, 1193, 1194, 1196, 1198, 1200, 1203, 1205, 1209, 1210,
534 1213, 1214, 1215, 1216, 1219, 1220, 1221, 1222, 1223, 1224,
535 1229, 1235, 1245, 1246, 1247, 1248, 1251, 1253, 1257, 1261,
536 1264, 1265, 1268, 1269, 1272, 1273, 1276, 1277, 1278, 1279,
542 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
544 static const char * const yytname[] = { "$","error","$undefined.","simpleOp",
545 "PREFIX_OP","POSTFIX_OP","LLT_MULOP","LLT_SEMI","LLT_VERTICALBAR","ITERATION_OP",
546 "LLT_LPAR","LLT_LBRACKET","selectSym","LLT_IF_THEN_ELSE","logicalOp","eqSepSym",
547 "equationSym","commentSym","LLT_WHITESPACE","LLT_EOL","LLT_TYPEDEF_NAME","quantifierSym",
548 "openSym","closeSym","sepSym","simpleId","mapSym","markerSym","preSym","postSym",
549 "anySym","LLT_COLON","LLT_COMMA","LLT_EQUALS","LLT_LBRACE","LLT_RBRACE","LLT_RBRACKET",
550 "LLT_RPAR","LLT_QUOTE","eqOp","LLT_CCHAR","LLT_CFLOAT","LLT_CINTEGER","LLT_LCSTRING",
551 "LLT_ALL","LLT_ANYTHING","LLT_BE","LLT_BODY","LLT_CLAIMS","LLT_CHECKS","LLT_CONSTANT",
552 "LLT_ELSE","LLT_ENSURES","LLT_FOR","LLT_FRESH","LLT_IF","LLT_IMMUTABLE","LLT_IMPORTS",
553 "LLT_CONSTRAINT","LLT_ISSUB","LLT_LET","LLT_MODIFIES","LLT_MUTABLE","LLT_NOTHING",
554 "LLT_INTERNAL","LLT_FILESYS","LLT_OBJ","LLT_OUT","LLT_SEF","LLT_ONLY","LLT_PARTIAL",
555 "LLT_OWNED","LLT_DEPENDENT","LLT_KEEP","LLT_KEPT","LLT_TEMP","LLT_SHARED","LLT_UNIQUE",
556 "LLT_UNUSED","LLT_EXITS","LLT_MAYEXIT","LLT_NEVEREXIT","LLT_TRUEEXIT","LLT_FALSEEXIT",
557 "LLT_UNDEF","LLT_KILLED","LLT_CHECKMOD","LLT_CHECKED","LLT_UNCHECKED","LLT_CHECKEDSTRICT",
558 "LLT_TRUENULL","LLT_FALSENULL","LLT_LNULL","LLT_LNOTNULL","LLT_RETURNED","LLT_OBSERVER",
559 "LLT_EXPOSED","LLT_REFCOUNTED","LLT_REFS","LLT_RELNULL","LLT_RELDEF","LLT_KILLREF",
560 "LLT_NULLTERMINATED","LLT_TEMPREF","LLT_NEWREF","LLT_PRIVATE","LLT_REQUIRES",
561 "LLT_RESULT","LLT_SIZEOF","LLT_SPEC","LLT_TAGGEDUNION","LLT_THEN","LLT_TYPE",
562 "LLT_TYPEDEF","LLT_UNCHANGED","LLT_USES","LLT_CHAR","LLT_CONST","LLT_DOUBLE",
563 "LLT_ENUM","LLT_FLOAT","LLT_INT","LLT_ITER","LLT_YIELD","LLT_LONG","LLT_SHORT",
564 "LLT_SIGNED","LLT_UNKNOWN","LLT_STRUCT","LLT_TELIPSIS","LLT_UNION","LLT_UNSIGNED",
565 "LLT_VOID","LLT_VOLATILE","LLT_PRINTFLIKE","LLT_SCANFLIKE","LLT_MESSAGELIKE",
566 "interface","@1","externals","external","optDeclarations","declarations","declaration",
567 "imports","uses","export","iter","iterParamList","realIterParamList","iterParam",
568 "private","@2","private2","constDeclaration","varDeclaration","type","special",
569 "fcn","@3","@4","claim","@5","abstract","@6","@7","@8","@9","@10","@11","@12",
570 "@13","exposed","@14","@15","importNameList","importName","interfaceNameList",
571 "interfaceName","traitRefNodeList","traitRef","traitIdList","renaming","nameList",
572 "replaceNodeList","replace","name","initializer","constLclExpr","initDecls",
573 "initDecl","globals","globalDecl","privateInits","privateInit","optLetDecl",
574 "beDeclList","beDecl","sortSpec","optChecks","optRequire","optModify","storeRefList",
575 "storeRef","optEnsure","optClaim","optParamList","realParamList","paramList",
576 "optBody","callExpr","stmt","valueList","value","abstBody","fcns","optTypeInv",
577 "typeInv","@16","declaratorInvs","declaratorInv","@17","optExposedBody","CType",
578 "CTypes","typeSpecifier","specialQualifier","lclTypeSpec","lclType","pointers",
579 "structOrUnionSpec","@18","@19","optTagId","structDecls","structDecl","declaratorList",
580 "optCOMMA","enumSpec","enumeratorList","declarator","notype_decl","after_type_decl",
581 "parameter_decl","param","typeName","optAbstDeclarator","abstDeclarator","arrayQual",
582 "opForm","open","close","anyOp","middle","placeList","separator","signature",
583 "domain","sortList","lclPredicate","term","term0","equalityTerm","simpleOpTerm",
584 "simpleOp2","prefixOpTerm","postfixOps","infixOpPart","secondary","bracketed",
585 "sqBracketed","matched","args","primary","termList","stateFcn","lclPrimary",
586 "cLiteral","quantifiers","quantifier","@20","quantifiedList","quantified","simpleIdOrTypedefName",
587 "fcnId","varId","tagId","claimId","sortId","traitId","opId", NULL
591 static const short yyr1[] = { 0,
592 138, 137, 139, 139, 140, 140, 141, 141, 141, 142,
593 142, 143, 143, 143, 144, 145, 146, 146, 146, 146,
594 146, 146, 147, 148, 148, 149, 149, 150, 150, 152,
595 151, 153, 153, 153, 153, 154, 155, 155, 155, 156,
596 156, 157, 157, 157, 159, 158, 160, 158, 162, 161,
597 161, 164, 165, 163, 166, 167, 163, 168, 169, 163,
598 170, 171, 163, 173, 174, 172, 172, 172, 175, 175,
599 176, 176, 176, 177, 177, 178, 179, 179, 180, 180,
600 180, 180, 181, 181, 182, 182, 182, 183, 183, 184,
601 184, 185, 185, 185, 186, 186, 187, 188, 189, 189,
602 190, 190, 191, 191, 192, 192, 192, 193, 193, 194,
603 195, 195, 196, 196, 197, 197, 198, 199, 199, 200,
604 200, 201, 201, 201, 201, 202, 202, 203, 203, 203,
605 203, 203, 204, 204, 205, 205, 206, 206, 207, 207,
606 207, 208, 208, 209, 209, 209, 210, 210, 210, 210,
607 210, 211, 211, 211, 211, 212, 212, 213, 213, 213,
608 213, 213, 213, 213, 213, 214, 214, 214, 214, 215,
609 215, 216, 216, 218, 217, 219, 219, 221, 220, 222,
610 222, 223, 223, 223, 223, 223, 223, 223, 223, 223,
611 223, 224, 224, 225, 225, 226, 226, 226, 226, 226,
612 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
613 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
614 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
615 226, 227, 227, 227, 227, 227, 228, 228, 229, 229,
616 231, 230, 232, 230, 230, 230, 233, 233, 234, 234,
617 235, 236, 236, 237, 237, 238, 238, 239, 239, 240,
618 240, 241, 241, 241, 241, 241, 241, 242, 242, 242,
619 242, 242, 242, 243, 243, 243, 243, 243, 244, 244,
620 244, 245, 245, 245, 246, 246, 247, 247, 247, 247,
621 247, 247, 247, 247, 248, 248, 249, 249, 249, 249,
622 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
623 249, 249, 249, 250, 250, 251, 251, 252, 252, 252,
624 253, 253, 254, 254, 255, 255, 256, 257, 257, 258,
625 258, 259, 260, 261, 261, 261, 262, 262, 262, 262,
626 263, 263, 263, 264, 264, 265, 265, 266, 266, 267,
627 267, 268, 268, 268, 268, 268, 268, 268, 269, 269,
628 270, 270, 270, 270, 271, 271, 272, 272, 273, 273,
629 273, 273, 273, 273, 273, 273, 273, 273, 274, 274,
630 275, 275, 275, 275, 276, 276, 276, 276, 276, 276,
631 276, 276, 277, 277, 277, 277, 278, 278, 280, 279,
632 281, 281, 282, 282, 283, 283, 284, 285, 286, 287,
636 static const short yyr2[] = { 0,
637 0, 3, 0, 2, 1, 1, 0, 2, 2, 0,
638 2, 1, 1, 1, 3, 3, 1, 1, 1, 1,
639 1, 1, 6, 0, 1, 1, 3, 2, 1, 0,
640 3, 1, 1, 1, 1, 4, 3, 4, 4, 1,
641 1, 1, 1, 1, 0, 13, 0, 14, 0, 13,
642 4, 0, 0, 6, 0, 0, 7, 0, 0, 7,
643 0, 0, 6, 0, 0, 6, 2, 2, 1, 3,
644 1, 3, 1, 1, 3, 1, 1, 3, 1, 4,
645 3, 6, 1, 3, 1, 1, 3, 1, 3, 1,
646 3, 3, 3, 4, 1, 1, 1, 1, 1, 3,
647 1, 3, 0, 2, 3, 2, 2, 0, 2, 4,
648 0, 3, 1, 3, 5, 3, 1, 0, 3, 0,
649 3, 0, 3, 3, 3, 1, 3, 1, 1, 2,
650 1, 1, 0, 3, 0, 3, 0, 1, 1, 1,
651 3, 1, 3, 0, 4, 5, 1, 3, 2, 3,
652 3, 4, 3, 5, 6, 1, 3, 1, 1, 2,
653 2, 3, 3, 3, 4, 1, 3, 4, 3, 0,
654 2, 0, 1, 0, 6, 1, 3, 0, 3, 0,
655 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
656 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
657 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
658 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
659 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
660 1, 1, 1, 1, 2, 5, 1, 2, 1, 2,
661 0, 6, 0, 6, 2, 2, 0, 1, 1, 2,
662 3, 1, 3, 0, 1, 6, 2, 1, 3, 1,
663 1, 1, 3, 2, 2, 3, 4, 1, 3, 2,
664 2, 3, 4, 1, 2, 2, 3, 4, 2, 2,
665 2, 2, 3, 1, 0, 1, 3, 2, 1, 1,
666 2, 3, 3, 4, 2, 3, 6, 1, 2, 2,
667 3, 3, 4, 4, 5, 3, 4, 4, 5, 2,
668 2, 3, 3, 1, 1, 1, 1, 1, 1, 1,
669 0, 1, 1, 3, 1, 1, 4, 0, 1, 1,
670 3, 1, 1, 6, 1, 3, 1, 4, 3, 3,
671 1, 2, 2, 1, 1, 1, 2, 1, 2, 2,
672 3, 1, 1, 2, 2, 3, 1, 2, 3, 1,
673 5, 3, 4, 2, 3, 2, 1, 3, 3, 1,
674 4, 1, 2, 3, 3, 3, 4, 3, 1, 3,
675 1, 1, 1, 1, 1, 1, 4, 4, 4, 4,
676 6, 4, 1, 1, 1, 1, 1, 2, 0, 3,
677 1, 3, 3, 4, 1, 1, 1, 1, 1, 1,
681 static const short yydefact[] = { 3,
682 1, 0, 0, 7, 4, 5, 6, 0, 406, 405,
683 73, 0, 69, 71, 76, 0, 0, 77, 412, 79,
684 0, 194, 0, 0, 61, 52, 196, 198, 199, 228,
685 200, 201, 202, 203, 210, 211, 212, 197, 205, 206,
686 209, 207, 208, 230, 231, 213, 214, 215, 216, 217,
687 224, 225, 226, 204, 227, 220, 221, 218, 219, 223,
688 229, 222, 30, 0, 183, 0, 184, 247, 185, 186,
689 0, 187, 188, 189, 191, 247, 247, 190, 182, 0,
690 42, 43, 44, 2, 10, 22, 10, 17, 18, 19,
691 0, 20, 21, 40, 41, 192, 195, 232, 0, 0,
692 233, 234, 0, 15, 0, 0, 83, 16, 0, 0,
693 220, 237, 0, 233, 234, 407, 410, 0, 0, 0,
694 0, 0, 0, 58, 0, 64, 0, 0, 409, 257,
695 408, 0, 241, 245, 243, 246, 0, 8, 9, 0,
696 193, 235, 0, 0, 268, 0, 99, 103, 261, 260,
697 262, 67, 68, 72, 70, 0, 81, 78, 344, 345,
698 321, 0, 319, 314, 0, 0, 315, 320, 0, 0,
699 0, 86, 85, 90, 285, 88, 284, 321, 298, 318,
700 239, 238, 0, 0, 137, 0, 101, 0, 0, 0,
701 0, 31, 32, 33, 34, 35, 0, 0, 0, 24,
702 0, 0, 0, 11, 14, 12, 13, 103, 264, 270,
703 0, 0, 37, 0, 0, 45, 0, 0, 265, 0,
704 271, 84, 0, 323, 0, 322, 310, 311, 321, 0,
705 0, 321, 299, 0, 285, 80, 0, 0, 289, 0,
706 282, 286, 290, 0, 0, 300, 240, 0, 51, 140,
707 0, 138, 139, 285, 142, 36, 62, 53, 0, 0,
708 65, 176, 178, 38, 258, 254, 0, 0, 25, 26,
709 29, 0, 0, 39, 47, 263, 269, 100, 0, 0,
710 399, 408, 395, 396, 393, 394, 0, 0, 0, 386,
711 0, 0, 102, 97, 0, 98, 333, 335, 337, 0,
712 341, 346, 353, 357, 360, 352, 372, 385, 0, 397,
713 413, 370, 0, 0, 0, 0, 104, 0, 266, 0,
714 295, 0, 272, 0, 0, 306, 326, 325, 0, 0,
715 312, 313, 0, 301, 0, 283, 87, 89, 91, 0,
716 288, 0, 0, 0, 291, 93, 92, 96, 95, 316,
717 317, 302, 236, 103, 0, 289, 0, 274, 280, 279,
718 281, 0, 0, 56, 59, 0, 0, 180, 255, 0,
719 28, 0, 0, 0, 0, 249, 0, 0, 0, 364,
720 367, 0, 0, 0, 0, 0, 0, 0, 366, 0,
721 0, 0, 0, 347, 346, 348, 342, 343, 354, 358,
722 0, 0, 0, 0, 381, 382, 383, 0, 384, 355,
723 373, 0, 398, 0, 106, 107, 108, 0, 267, 296,
724 273, 82, 307, 324, 308, 303, 0, 293, 287, 292,
725 0, 328, 94, 304, 49, 141, 143, 275, 289, 0,
726 276, 166, 170, 63, 54, 0, 0, 177, 66, 172,
727 179, 259, 256, 23, 27, 0, 252, 242, 250, 244,
728 108, 369, 0, 362, 0, 400, 401, 0, 379, 0,
729 0, 0, 194, 0, 0, 0, 131, 132, 0, 0,
730 126, 129, 128, 365, 336, 340, 339, 350, 349, 0,
731 411, 359, 376, 0, 374, 375, 378, 356, 0, 332,
732 0, 111, 105, 309, 305, 0, 294, 0, 329, 330,
733 0, 277, 0, 0, 0, 74, 0, 57, 60, 174,
734 0, 173, 251, 0, 111, 363, 0, 368, 0, 0,
735 0, 387, 0, 0, 392, 390, 388, 130, 0, 389,
736 351, 377, 338, 371, 0, 0, 109, 118, 297, 0,
737 0, 111, 278, 169, 0, 0, 167, 171, 0, 0,
738 181, 253, 118, 361, 402, 0, 403, 117, 380, 0,
739 0, 127, 0, 113, 0, 0, 0, 120, 327, 331,
740 120, 75, 168, 103, 0, 120, 404, 334, 391, 112,
741 0, 0, 0, 0, 0, 0, 122, 144, 0, 122,
742 114, 0, 116, 110, 119, 0, 0, 133, 0, 133,
743 0, 133, 0, 121, 0, 0, 0, 0, 135, 0,
744 0, 175, 135, 115, 124, 123, 125, 0, 0, 0,
745 0, 408, 0, 147, 0, 0, 50, 0, 134, 0,
746 46, 0, 149, 0, 0, 145, 0, 0, 48, 136,
747 0, 148, 146, 151, 150, 0, 0, 153, 0, 156,
748 158, 0, 159, 407, 0, 160, 0, 0, 152, 161,
749 0, 0, 163, 157, 162, 164, 0, 154, 0, 165,
753 static const short yydefgoto[] = { 682,
754 4, 1, 5, 84, 138, 204, 6, 205, 206, 86,
755 268, 269, 270, 207, 125, 192, 88, 89, 90, 91,
756 92, 316, 378, 93, 511, 94, 122, 363, 123, 446,
757 191, 447, 121, 362, 95, 197, 367, 12, 13, 515,
758 14, 17, 18, 106, 171, 172, 173, 174, 346, 293,
759 294, 146, 147, 216, 317, 502, 547, 548, 573, 574,
760 567, 578, 597, 608, 480, 481, 619, 630, 251, 342,
761 253, 610, 654, 634, 659, 660, 444, 517, 521, 522,
762 560, 261, 262, 368, 451, 96, 97, 98, 99, 254,
763 482, 182, 114, 201, 202, 128, 375, 376, 456, 370,
764 115, 266, 187, 149, 150, 360, 255, 176, 241, 242,
765 243, 177, 295, 352, 179, 225, 226, 465, 433, 508,
766 509, 499, 500, 297, 298, 299, 300, 301, 397, 398,
767 302, 303, 304, 305, 382, 306, 470, 411, 307, 308,
768 309, 310, 383, 466, 467, 311, 662, 312, 130, 119,
772 static const short yypact[] = {-32768,
773 -25, 136, 368, 1350,-32768,-32768,-32768, 181,-32768,-32768,
774 -32768, 94,-32768,-32768,-32768, 181, 110,-32768,-32768, 33,
775 2903,-32768, 182, 2903,-32768, 17,-32768,-32768,-32768,-32768,
776 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
777 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
778 -32768,-32768,-32768,-32768,-32768, -11,-32768,-32768,-32768,-32768,
779 -32768,-32768,-32768, 2903,-32768, 2903,-32768, 181,-32768,-32768,
780 108,-32768,-32768,-32768,-32768, 181, 181,-32768,-32768, 2903,
781 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
782 2903,-32768,-32768,-32768,-32768,-32768, 399,-32768, 2903, 408,
783 155, 192, 205,-32768, 136, 204,-32768,-32768, 368, 1152,
784 -32768, 233, 223,-32768,-32768, 266,-32768, 181, 305, 408,
785 211, 235, 264,-32768, 1445,-32768, 408, 339,-32768, 347,
786 -32768, 377,-32768, 347,-32768, 347, 408, 1247, 1247, 408,
787 -32768,-32768, 408, 408,-32768, 196,-32768, 259, 322, 409,
788 -32768,-32768,-32768,-32768,-32768, 181, 387,-32768,-32768,-32768,
789 386, 181,-32768,-32768, 181, 534,-32768,-32768, 403, 2903,
790 410, 445, 453,-32768, 360, 439,-32768, 386, 474,-32768,
791 -32768, 496, 2903, 497, 2319, 239, 470, 486, 492, 401,
792 404,-32768,-32768,-32768,-32768,-32768, 408, 282, 493, 2414,
793 488, 494, 288,-32768,-32768,-32768,-32768,-32768, 322, 409,
794 121, 141,-32768, 408, 3200, 1836, 1933, 3059,-32768, 2030,
795 -32768,-32768, 1152,-32768, 499, 122,-32768,-32768, 386, 181,
796 181, 386, 502, 421, 360,-32768, 1152, 1152, 360, 1741,
797 -32768, 454,-32768, 328, 80,-32768,-32768, 525,-32768,-32768,
798 504,-32768, 507, 380,-32768,-32768,-32768,-32768, 522, 524,
799 515,-32768,-32768,-32768,-32768, 518, 2903, 514, 520,-32768,
800 -32768, 2903, 2903,-32768, 1836,-32768,-32768,-32768, 3200, 3109,
801 -32768, 266,-32768,-32768,-32768,-32768, 544, 3200, 545,-32768,
802 549, 551,-32768,-32768, 3033,-32768, 550,-32768, 114, 3226,
803 -32768, 374, 382, 382, 535, 193,-32768,-32768, 273,-32768,
804 -32768,-32768, 555, 560, 562, 536,-32768, 408,-32768, 537,
805 -32768, 539,-32768, 540, 541, 552,-32768,-32768, 553, 547,
806 -32768,-32768, 80,-32768, 554,-32768, 453, 439,-32768, 439,
807 454, 548, 177, 2127,-32768, 556,-32768,-32768,-32768,-32768,
808 -32768, 557,-32768,-32768, 2509, 380, 1644,-32768, 322, 469,
809 -32768, 47, 47,-32768,-32768, 408, 564, 538, 561, 559,
810 -32768, 569, 2414, 408, 2611,-32768, 2713, 558, 36, 565,
811 -32768, 293, 108, 3200, 10, 3200, 1022, 762,-32768, 220,
812 3200, 3226, 3226,-32768,-32768, 268, 374, 374, 275, 275,
813 181, 3150, 181, 181,-32768,-32768,-32768, 181,-32768, 382,
814 -32768, 3200,-32768, 3200,-32768,-32768,-32768, 314,-32768,-32768,
815 -32768,-32768,-32768,-32768, 563, 568, 566,-32768,-32768,-32768,
816 573, 181,-32768,-32768, 1836,-32768,-32768, 469, 354, 2224,
817 -32768,-32768, 165,-32768,-32768, 47, 47,-32768,-32768, 530,
818 -32768,-32768,-32768,-32768,-32768, 317,-32768,-32768,-32768,-32768,
819 -32768,-32768, 181, 567, 3200, 570,-32768, 572, 550, 362,
820 3200, 579, 581, 575, 577, 578,-32768,-32768, 2903, 384,
821 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 268,
822 -32768,-32768,-32768, 157,-32768,-32768,-32768, 275, 583,-32768,
823 397, -8,-32768,-32768,-32768, 574,-32768, 590, 591,-32768,
824 571,-32768, 587, 592, 363,-32768, 1547,-32768,-32768,-32768,
825 594,-32768,-32768, 408, -8,-32768, 181,-32768, 108, 2808,
826 3200,-32768, 28, 3200,-32768,-32768,-32768,-32768, 892,-32768,
827 -32768,-32768,-32768,-32768, 108, 2903,-32768, 582,-32768, 181,
828 181, 576,-32768,-32768, 181, 593,-32768,-32768, 408, 605,
829 -32768,-32768, 582,-32768,-32768, 2903,-32768,-32768, 550, 3200,
830 600,-32768, 331,-32768, 103, 408, 3200, 521,-32768,-32768,
831 521,-32768,-32768,-32768, 629, 521,-32768, 550,-32768,-32768,
832 108, 2903, 3200, 336, 634, 3200, 584, 597, 3200, 584,
833 -32768, 601,-32768,-32768,-32768, 639, 632, 596, 615, 596,
834 613, 596, 3200,-32768, 644, 648, 337, 3200, 608, 49,
835 623,-32768, 608,-32768,-32768,-32768,-32768, 652, 3200, 625,
836 49, 651, 50,-32768, 653, 631,-32768, 627,-32768, 658,
837 -32768, 63,-32768, 272, 49,-32768, 208, 642,-32768,-32768,
838 49,-32768,-32768, 660,-32768, 222, 222,-32768, 419, 666,
839 -32768, 661,-32768,-32768, 668,-32768, 41, 222,-32768, 316,
840 432, 468,-32768, 666,-32768,-32768, 426,-32768, 430,-32768,
841 -32768, 670, 676,-32768
844 static const short yypgoto[] = {-32768,
845 -32768,-32768,-32768,-32768, 595,-32768,-32768, 678, 677,-32768,
846 -32768,-32768, 307, 679,-32768,-32768, 610, 612, 616,-32768,
847 -121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
848 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 580,-32768,
849 -6,-32768, 585,-32768, 461,-32768, 451, 452,-32768,-32768,
850 471, -108, 478, -188,-32768, 232,-32768, -458,-32768, 127,
851 -473, 175, -169, 142, 137, 206, -206, 120,-32768, -180,
852 -32768,-32768, -507,-32768, -190, -230, -318,-32768,-32768,-32768,
853 -32768,-32768, 381,-32768,-32768, -89,-32768,-32768,-32768, -3,
854 -18,-32768, 32,-32768,-32768, 407, 476, 68,-32768,-32768,
855 56,-32768, -93, -127, 344, 398, -187, 257, -182, -213,
856 -101, 511, 30, -267, 603, -137,-32768, 586,-32768,-32768,
857 -32768, -531, -204, -254,-32768, 105, -46, 466,-32768,-32768,
858 -278, 455,-32768,-32768, 472, -265, -205,-32768,-32768, -372,
859 -32768, -303,-32768,-32768, 242, 7, -23, -38, 423, 656,
867 static const short yytable[] = { 118,
868 100, 103, 113, 196, 252, 413, 148, 141, 15, 19,
869 296, 186, 271, 296, 15, 209, 211, 112, 198, 275,
870 120, 395, 19, 391, 379, 341, 343, 389, 203, 117,
871 497, 2, 132, 385, 107, 101, 320, 399, 400, 324,
872 245, 391, 110, 670, 445, 595, 208, 219, 221, 391,
873 124, 545, 336, 442, 510, 643, 644, 645, 631, 102,
874 126, 151, 127, 180, 606, 426, 563, 611, 643, 651,
875 645, 361, 462, 632, 129, 381, 137, 673, 570, 371,
876 443, 151, 129, 129, 646, 526, 628, 140, 151, 3,
877 381, 330, 587, 581, 333, 142, 546, 640, 151, 652,
878 104, 151, 350, 263, 151, 151, 175, 219, 221, 219,
879 221, 15, 633, -55, 351, 19, 108, 488, 602, 180,
880 471, 100, 484, 642, 117, 105, 359, 518, 519, 469,
881 217, 218, 131, 592, 100, 100, 485, 655, 8, 178,
882 345, 109, 341, 343, 498, 327, 392, 469, 593, 564,
883 220, 218, 393, 328, 347, 9, 101, 276, 151, 469,
884 10, 152, 19, 431, 248, 435, 235, 437, 227, 101,
885 101, 228, 579, 580, 222, 151, 180, 277, 11, 112,
886 102, 472, 475, 483, 9, 271, 344, 218, 531, 10,
887 180, 180, 542, 102, 102, 232, 494, 180, 153, 514,
888 9, 9, 213, 402, 403, 10, 116, 154, 501, 418,
889 656, 541, 318, 429, 164, 151, 533, 657, 404, 175,
890 405, 406, 407, 408, 656, 341, 167, 214, 209, 211,
891 409, 657, 632, 175, 175, 156, 331, 332, 181, 345,
892 157, 345, 350, 327, 658, 256, 632, 283, 284, 285,
893 286, 328, 178, 183, 351, 396, 585, 219, 441, 513,
894 528, 283, 284, 285, 286, -101, 178, 178, 374, 374,
895 214, 318, 263, 178, 661, -405, 569, 279, 280, 151,
896 457, 631, 412, 661, 661, 402, 403, 9, 264, 164,
897 -101, 215, 282, 281, 274, 661, 632, 661, 661, 661,
898 404, 167, 405, 406, 407, 408, 653, 283, 284, 285,
899 286, 209, 409, 214, 185, 588, 327, 151, 151, 214,
900 503, 287, 188, 523, 328, 657, 289, 151, 464, 571,
901 159, 217, 218, 160, 483, 151, 441, 590, 161, 162,
902 632, 163, 604, 627, 468, 214, 189, 9, 524, 164,
903 489, 490, 10, 165, 166, 283, 284, 285, 286, 439,
904 190, 167, 591, 357, 218, 239, 168, 214, 539, 240,
905 218, 374, 199, 374, 290, 291, 159, 16, 131, 160,
906 -248, 292, 169, 474, 112, 356, 200, 9, 603, 357,
907 218, 279, 10, 531, 555, 558, 223, 556, 532, 358,
908 151, 9, 483, 621, 131, 623, 282, 491, 624, 495,
909 496, 598, 224, 143, 491, 539, 600, 144, 220, 218,
910 540, 283, 284, 285, 286, 666, 667, 145, 531, 234,
911 562, 318, 131, 544, 656, 287, 516, 674, 491, 675,
912 289, 657, 459, 65, 459, 67, 236, 69, 70, 15,
913 668, 72, 73, 74, 75, 669, 632, 668, 78, 79,
914 538, 668, 680, 344, 218, 584, 681, 594, 676, 491,
915 656, 283, 284, 285, 286, 112, 237, 657, 440, 218,
916 677, 679, 133, 135, 238, 151, 210, 212, 290, 291,
917 468, 244, 632, 338, 340, 292, 486, 487, 134, 136,
918 246, 247, 215, 249, 678, 257, 575, 283, 284, 285,
919 286, 258, 259, 559, 65, 260, 67, 265, 69, 70,
920 151, 272, 72, 73, 74, 75, 568, 273, 334, 78,
921 79, 335, 353, 491, 326, 112, 159, 151, 355, 160,
922 354, 364, 576, 365, 229, 230, 366, 163, 582, 369,
923 372, 373, 575, 384, 386, 164, 491, 491, 387, 231,
924 388, 15, 568, 391, 414, 401, 415, 167, 416, 417,
925 449, 450, 168, 419, 420, 454, 421, 422, 423, 424,
926 427, 636, 425, 434, 428, 452, 432, 520, 568, 504,
927 -406, 461, 636, 453, 505, 463, 635, 527, 554, 583,
928 549, 529, 530, 112, 552, 636, 636, 635, 663, 507,
929 534, 535, 636, 536, 537, 550, 506, 663, 663, 543,
930 635, 635, 551, 553, 665, 281, 596, 635, 561, 663,
931 577, 663, 663, 663, 159, 545, 589, 160, 599, 21,
932 605, 279, 280, 609, 607, 614, 613, 618, 620, 622,
933 625, 473, 281, 164, 626, 629, 282, 637, 639, 641,
934 -407, 649, 647, 648, 650, 167, 664, 645, 670, 683,
935 671, 283, 284, 285, 286, 684, 615, 672, 7, 455,
936 85, 139, 87, 325, 155, 287, 288, 337, 322, 339,
937 289, 278, 525, 158, 616, 477, 478, 479, 27, 28,
938 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
939 39, 40, 41, 42, 43, 44, 45, 601, 46, 47,
940 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
941 58, 59, 60, 61, 193, 62, 194, 586, 290, 291,
942 195, 612, 638, 617, 572, 292, 448, 65, 377, 67,
943 68, 69, 70, 438, 348, 72, 73, 74, 75, 76,
944 410, 77, 78, 79, 159, 394, 390, 160, 233, 21,
945 565, 279, 280, 184, 349, 0, 0, 0, 0, 0,
946 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
947 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
948 0, 283, 284, 285, 286, 476, 0, 0, 0, 0,
949 0, 329, 0, 0, 0, 287, 288, 0, 0, 0,
950 289, 0, 0, 0, 0, 477, 478, 479, 27, 28,
951 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
952 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
953 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
954 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
955 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
956 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
957 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
958 0, 279, 280, 0, 0, 0, 0, 0, 0, 0,
959 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
960 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
961 0, 283, 284, 285, 286, 0, 0, 0, 0, 0,
962 0, 0, 0, 0, 0, 287, 288, 0, 0, 0,
963 289, 0, 0, 0, 0, 477, 478, 479, 27, 28,
964 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
965 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
966 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
967 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
968 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
969 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
970 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
971 0, 279, 280, 0, 0, 0, 0, 0, 0, 0,
972 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
973 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
974 0, 283, 284, 285, 286, 0, 0, 0, 0, 0,
975 0, 0, 0, 0, 0, 287, 288, 0, 0, 0,
976 289, 0, 0, 0, 0, 0, 0, 0, 27, 28,
977 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
978 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
979 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
980 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
981 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
982 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
983 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
984 0, 0, 161, 162, 0, 163, 0, 0, 0, 0,
985 0, 22, 0, 164, 0, 0, 0, 165, 166, 0,
986 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
987 168, 0, 0, 0, 0, 0, 0, 0, 0, 0,
988 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
989 0, 0, 0, 0, 0, 0, 0, 170, 27, 28,
990 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
991 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
992 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
993 58, 59, 60, 61, 21, 62, 0, 0, 0, 0,
994 0, 0, 0, 0, 0, 0, 22, 65, 0, 67,
995 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
996 0, 77, 78, 79, 0, 0, 0, 0, 0, 0,
997 0, 0, 0, 0, 23, 0, 24, 0, 0, 0,
998 0, 0, 25, 0, 0, 0, 0, 0, 26, 0,
999 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1000 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1001 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1002 53, 54, 55, 56, 57, 58, 59, 60, 61, 0,
1003 62, 0, 0, 0, 0, 63, 0, 21, 0, 64,
1004 0, 3, 65, 66, 67, 68, 69, 70, 71, 22,
1005 72, 73, 74, 75, 76, 0, 77, 78, 79, 80,
1006 81, 82, 83, 0, 0, 0, 0, 0, 0, 0,
1007 0, 0, 0, 0, 0, 0, 0, 23, 0, 24,
1008 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,
1009 0, 26, 0, 0, 0, 0, 27, 28, 29, 30,
1010 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1011 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1012 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1013 60, 61, 21, 62, 0, 0, 0, 0, 63, 0,
1014 0, 0, 64, 0, 22, 65, 66, 67, 68, 69,
1015 70, 71, 0, 72, 73, 74, 75, 76, 0, 77,
1016 78, 79, 80, 81, 82, 83, 0, 0, 0, 0,
1017 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,
1018 25, 0, 0, 0, 0, 0, 26, 0, 0, 0,
1019 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1020 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1021 0, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1022 55, 56, 57, 58, 59, 60, 61, 0, 62, 0,
1023 0, 0, 0, 0, 21, 0, 0, 64, 0, 0,
1024 65, 66, 67, 68, 69, 70, 22, 0, 72, 73,
1025 74, 75, 76, 0, 77, 78, 79, 80, 81, 82,
1026 83, 557, 0, 0, 0, 0, 0, 0, 0, 0,
1027 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1029 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1030 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1031 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1032 53, 54, 55, 111, 57, 58, 59, 60, 61, 439,
1033 62, 21, 0, 357, 218, 0, 0, 0, 0, 0,
1034 0, 0, 65, 22, 67, 68, 69, 70, 131, 0,
1035 72, 73, 74, 75, 76, 0, 77, 78, 79, 0,
1036 81, 82, 83, 0, 0, 0, 0, 0, 0, 0,
1037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1039 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1040 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1041 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1042 111, 57, 58, 59, 60, 61, 239, 62, 21, 0,
1043 240, 218, 0, 0, 0, 0, 0, 0, 0, 65,
1044 22, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1045 75, 76, 250, 77, 78, 79, 0, 0, 0, 0,
1046 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1048 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1049 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1050 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1051 49, 50, 51, 52, 53, 54, 55, 111, 57, 58,
1052 59, 60, 61, 21, 62, 0, 0, 0, 0, 0,
1053 0, 0, 0, 0, 0, 22, 65, 0, 67, 68,
1054 69, 70, 0, 0, 72, 73, 74, 75, 76, 250,
1055 77, 78, 79, 0, 0, 0, 0, 0, 0, 0,
1056 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1057 0, 0, 0, 0, 0, 0, 0, 0, 0, 314,
1058 315, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1059 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1060 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1061 54, 55, 111, 57, 58, 59, 60, 61, 0, 62,
1062 21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1063 0, 65, 22, 67, 68, 69, 70, 0, 0, 72,
1064 73, 74, 75, 76, 0, 77, 78, 79, 0, 319,
1065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1067 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1068 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1069 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1070 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1071 57, 58, 59, 60, 61, 0, 62, 21, 0, 0,
1072 0, 0, 0, 0, 0, 0, 0, 0, 65, 22,
1073 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1074 76, 250, 77, 78, 79, 0, 323, 0, 0, 0,
1075 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1077 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1078 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1079 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1080 50, 51, 52, 53, 54, 55, 111, 57, 58, 59,
1081 60, 61, 0, 62, 21, 0, 0, 0, 0, 0,
1082 0, 0, 0, 0, 0, 65, 22, 67, 68, 69,
1083 70, 0, 0, 72, 73, 74, 75, 76, 250, 77,
1084 78, 79, 0, 430, 0, 0, 0, 0, 0, 0,
1085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1087 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1088 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1089 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1090 53, 54, 55, 111, 57, 58, 59, 60, 61, 0,
1091 62, 21, 0, 0, 0, 0, 0, 0, 0, 0,
1092 0, 0, 65, 22, 67, 68, 69, 70, 0, 0,
1093 72, 73, 74, 75, 76, 250, 77, 78, 79, 0,
1094 512, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1095 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1096 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1097 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1098 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1099 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1100 111, 57, 58, 59, 60, 61, 21, 62, 0, 0,
1101 0, 0, 0, 0, 0, 0, 0, 0, 22, 65,
1102 0, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1103 75, 76, 250, 77, 78, 79, 0, 0, 0, 0,
1104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1106 0, 0, 0, 0, 0, 27, 28, 29, 30, 31,
1107 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1108 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1109 51, 52, 53, 54, 55, 111, 57, 58, 59, 60,
1110 61, 21, 62, 0, 0, 0, 0, 0, 0, 0,
1111 0, 0, 0, 22, 65, 0, 67, 68, 69, 70,
1112 0, 0, 72, 73, 74, 75, 76, 250, 77, 78,
1113 79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1116 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1117 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1118 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1119 111, 57, 58, 59, 60, 61, 21, 62, 0, 0,
1120 0, 0, 0, 0, 0, 0, 0, 0, 22, 65,
1121 0, 67, 68, 69, 70, 0, 267, 72, 73, 74,
1122 75, 76, 0, 77, 78, 79, 0, 0, 0, 0,
1123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1125 0, 0, 0, 0, 0, 27, 28, 29, 30, 31,
1126 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1127 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1128 51, 52, 53, 54, 55, 111, 57, 58, 59, 60,
1129 61, 0, 62, 0, 0, 0, 0, 0, 21, 0,
1130 0, 0, 0, 0, 65, 0, 67, 68, 69, 70,
1131 22, 0, 72, 73, 74, 75, 76, 436, 77, 78,
1132 79, 0, 0, 0, 0, 458, 0, 0, 0, 0,
1133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1135 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1136 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1137 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1138 49, 50, 51, 52, 53, 54, 55, 111, 57, 58,
1139 59, 60, 61, 0, 62, 0, 0, 0, 0, 0,
1140 21, 0, 0, 0, 0, 0, 65, 0, 67, 68,
1141 69, 70, 22, 0, 72, 73, 74, 75, 76, 0,
1142 77, 78, 79, 0, 0, 0, 0, 460, 0, 0,
1143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1145 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1146 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1147 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1148 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1149 57, 58, 59, 60, 61, 21, 62, 0, 0, 0,
1150 0, 0, 0, 0, 0, 0, 0, 22, 65, 0,
1151 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1152 76, 0, 77, 78, 79, 0, 0, 0, 0, 0,
1153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1155 0, 0, 0, 566, 27, 28, 29, 30, 31, 32,
1156 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1157 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1158 52, 53, 54, 55, 111, 57, 58, 59, 60, 61,
1159 21, 62, 0, 0, 0, 0, 0, 0, 0, 0,
1160 0, 0, 22, 65, 0, 67, 68, 69, 70, 0,
1161 0, 72, 73, 74, 75, 76, 0, 77, 78, 79,
1162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1164 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1165 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1166 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1167 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1168 57, 58, 59, 60, 61, 0, 62, 0, 0, 0,
1169 0, 0, 0, 0, 0, 0, 0, 0, 65, 0,
1170 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1171 76, 0, 77, 78, 79, 159, 0, 0, 160, 0,
1172 0, 0, 279, 280, 0, 0, 0, 0, 0, 0,
1173 0, 0, 9, 281, 164, 350, 0, 282, 0, 0,
1174 0, 159, 0, 0, 160, 0, 167, 351, 279, 280,
1175 0, 0, 283, 284, 285, 286, 0, 0, 9, 281,
1176 164, 0, 0, 282, 0, 0, 287, 288, 0, 0,
1177 0, 289, 167, 0, 321, 0, 0, 0, 283, 284,
1178 285, 286, 0, 0, 0, 0, 0, 0, 0, 0,
1179 0, 159, 287, 288, 160, 0, 0, 289, 279, 280,
1180 0, 0, 0, 0, 0, 0, 0, 0, 9, 281,
1181 164, 0, 0, 282, 0, 0, 0, 0, 0, 290,
1182 291, 0, 167, 0, 380, 0, 292, 0, 283, 284,
1183 285, 286, 159, 0, 0, 160, 0, 0, 0, 279,
1184 280, 0, 287, 288, 0, 290, 291, 289, 0, 9,
1185 281, 164, 292, 0, 282, 0, 0, 0, 0, 0,
1186 0, 0, 0, 167, 0, 493, 0, 0, 0, 283,
1187 284, 285, 286, 0, 0, 0, 0, 0, 0, 0,
1188 0, 0, 159, 287, 288, 160, 0, 0, 289, 279,
1189 280, 0, 0, 0, 0, 290, 291, 0, 0, 9,
1190 281, 164, 292, 0, 282, 0, 0, 0, 159, 0,
1191 0, 160, 0, 167, 0, 279, 280, 0, 0, 283,
1192 284, 285, 286, 0, 0, 9, 0, 164, 0, 0,
1193 282, 0, 0, 287, 288, 0, 290, 291, 289, 167,
1194 0, 0, 0, 292, 0, 283, 284, 285, 286, 0,
1195 0, 0, 0, 0, 0, 0, 0, 0, 0, 287,
1196 0, 0, 0, 0, 289, 0, 0, 0, 0, 0,
1197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1198 0, 0, 0, 0, 0, 0, 290, 291, 0, 0,
1199 0, 0, 0, 292, 0, 0, 0, 0, 0, 0,
1200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1201 0, 0, 290, 291, 0, 0, 0, 0, 0, 292
1204 static const short yycheck[] = { 23,
1205 4, 8, 21, 125, 185, 309, 100, 97, 2, 3,
1206 215, 120, 200, 218, 8, 143, 144, 21, 127, 208,
1207 24, 300, 16, 14, 279, 239, 240, 295, 137, 23,
1208 408, 57, 71, 288, 16, 4, 217, 303, 304, 220,
1209 178, 14, 10, 3, 363, 577, 140, 149, 150, 14,
1210 62, 60, 235, 7, 432, 6, 7, 8, 10, 4,
1211 64, 100, 66, 110, 596, 333, 525, 599, 6, 7,
1212 8, 254, 37, 25, 68, 280, 80, 37, 51, 267,
1213 34, 120, 76, 77, 35, 463, 618, 91, 127, 115,
1214 295, 229, 566, 552, 232, 99, 105, 629, 137, 37,
1215 7, 140, 23, 197, 143, 144, 110, 209, 210, 211,
1216 212, 105, 620, 97, 35, 109, 7, 396, 592, 166,
1217 111, 125, 390, 631, 118, 32, 254, 446, 447, 384,
1218 10, 11, 25, 31, 138, 139, 391, 645, 3, 110,
1219 242, 32, 356, 357, 410, 24, 33, 402, 46, 527,
1220 10, 11, 39, 32, 244, 20, 125, 37, 197, 414,
1221 25, 7, 156, 344, 183, 354, 170, 355, 162, 138,
1222 139, 165, 550, 551, 156, 214, 223, 37, 43, 183,
1223 125, 386, 387, 388, 20, 373, 10, 11, 32, 25,
1224 237, 238, 36, 138, 139, 166, 402, 244, 7, 35,
1225 20, 20, 7, 11, 12, 25, 25, 3, 414, 318,
1226 3, 490, 216, 37, 22, 254, 471, 10, 26, 223,
1227 28, 29, 30, 31, 3, 439, 34, 32, 356, 357,
1228 38, 10, 25, 237, 238, 32, 230, 231, 6, 341,
1229 37, 343, 23, 24, 37, 7, 25, 40, 41, 42,
1230 43, 32, 223, 31, 35, 302, 560, 359, 360, 440,
1231 465, 40, 41, 42, 43, 7, 237, 238, 272, 273,
1232 32, 275, 366, 244, 647, 10, 531, 10, 11, 318,
1233 374, 10, 10, 656, 657, 11, 12, 20, 7, 22,
1234 32, 33, 25, 21, 7, 668, 25, 670, 671, 672,
1235 26, 34, 28, 29, 30, 31, 35, 40, 41, 42,
1236 43, 439, 38, 32, 10, 570, 24, 356, 357, 32,
1237 7, 54, 112, 7, 32, 10, 59, 366, 36, 534,
1238 3, 10, 11, 6, 539, 374, 438, 7, 11, 12,
1239 25, 14, 7, 7, 383, 32, 112, 20, 32, 22,
1240 397, 398, 25, 26, 27, 40, 41, 42, 43, 6,
1241 97, 34, 32, 10, 11, 6, 39, 32, 32, 10,
1242 11, 375, 34, 377, 107, 108, 3, 10, 25, 6,
1243 34, 114, 55, 387, 388, 6, 10, 20, 593, 10,
1244 11, 10, 25, 32, 32, 517, 10, 35, 37, 20,
1245 439, 20, 607, 610, 25, 612, 25, 401, 613, 403,
1246 404, 581, 27, 6, 408, 32, 586, 10, 10, 11,
1247 37, 40, 41, 42, 43, 656, 657, 20, 32, 27,
1248 524, 435, 25, 37, 3, 54, 443, 668, 432, 670,
1249 59, 10, 375, 116, 377, 118, 37, 120, 121, 443,
1250 32, 124, 125, 126, 127, 37, 25, 32, 131, 132,
1251 479, 32, 37, 10, 11, 559, 37, 576, 37, 463,
1252 3, 40, 41, 42, 43, 479, 32, 10, 10, 11,
1253 671, 672, 76, 77, 32, 524, 143, 144, 107, 108,
1254 529, 53, 25, 237, 238, 114, 392, 393, 76, 77,
1255 27, 6, 33, 7, 37, 20, 545, 40, 41, 42,
1256 43, 20, 112, 517, 116, 112, 118, 25, 120, 121,
1257 559, 34, 124, 125, 126, 127, 530, 34, 27, 131,
1258 132, 111, 8, 527, 36, 539, 3, 576, 32, 6,
1259 37, 20, 546, 20, 11, 12, 32, 14, 555, 32,
1260 37, 32, 591, 10, 10, 22, 550, 551, 10, 26,
1261 10, 555, 566, 14, 10, 31, 7, 34, 7, 34,
1262 7, 34, 39, 37, 36, 7, 37, 37, 27, 27,
1263 27, 620, 36, 27, 37, 25, 31, 58, 592, 27,
1264 10, 34, 631, 35, 27, 31, 620, 31, 7, 7,
1265 27, 32, 31, 607, 34, 644, 645, 631, 647, 37,
1266 32, 37, 651, 37, 37, 26, 51, 656, 657, 37,
1267 644, 645, 32, 37, 648, 21, 106, 651, 35, 668,
1268 49, 670, 671, 672, 3, 60, 37, 6, 10, 8,
1269 7, 10, 11, 47, 61, 7, 46, 52, 34, 37,
1270 7, 20, 21, 22, 7, 48, 25, 35, 7, 35,
1271 10, 35, 10, 33, 7, 34, 25, 8, 3, 0,
1272 10, 40, 41, 42, 43, 0, 45, 10, 1, 373,
1273 4, 87, 4, 223, 105, 54, 55, 237, 218, 238,
1274 59, 214, 461, 109, 63, 64, 65, 66, 67, 68,
1275 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1276 79, 80, 81, 82, 83, 84, 85, 591, 87, 88,
1277 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1278 99, 100, 101, 102, 125, 104, 125, 563, 107, 108,
1279 125, 600, 623, 607, 539, 114, 366, 116, 273, 118,
1280 119, 120, 121, 356, 244, 124, 125, 126, 127, 128,
1281 306, 130, 131, 132, 3, 300, 295, 6, 166, 8,
1282 529, 10, 11, 118, 244, -1, -1, -1, -1, -1,
1283 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1284 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1285 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
1286 -1, 226, -1, -1, -1, 54, 55, -1, -1, -1,
1287 59, -1, -1, -1, -1, 64, 65, 66, 67, 68,
1288 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1289 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1290 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1291 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1292 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1293 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1294 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1295 -1, 10, 11, -1, -1, -1, -1, -1, -1, -1,
1296 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1297 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1298 -1, 40, 41, 42, 43, -1, -1, -1, -1, -1,
1299 -1, -1, -1, -1, -1, 54, 55, -1, -1, -1,
1300 59, -1, -1, -1, -1, 64, 65, 66, 67, 68,
1301 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1302 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1303 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1304 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1305 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1306 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1307 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1308 -1, 10, 11, -1, -1, -1, -1, -1, -1, -1,
1309 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1310 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1311 -1, 40, 41, 42, 43, -1, -1, -1, -1, -1,
1312 -1, -1, -1, -1, -1, 54, 55, -1, -1, -1,
1313 59, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1314 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1315 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1316 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1317 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1318 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1319 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1320 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1321 -1, -1, 11, 12, -1, 14, -1, -1, -1, -1,
1322 -1, 20, -1, 22, -1, -1, -1, 26, 27, -1,
1323 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1324 39, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1325 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
1326 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
1327 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1328 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1329 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1330 99, 100, 101, 102, 8, 104, -1, -1, -1, -1,
1331 -1, -1, -1, -1, -1, -1, 20, 116, -1, 118,
1332 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1333 -1, 130, 131, 132, -1, -1, -1, -1, -1, -1,
1334 -1, -1, -1, -1, 48, -1, 50, -1, -1, -1,
1335 -1, -1, 56, -1, -1, -1, -1, -1, 62, -1,
1336 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1337 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1338 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1339 94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
1340 104, -1, -1, -1, -1, 109, -1, 8, -1, 113,
1341 -1, 115, 116, 117, 118, 119, 120, 121, 122, 20,
1342 124, 125, 126, 127, 128, -1, 130, 131, 132, 133,
1343 134, 135, 136, -1, -1, -1, -1, -1, -1, -1,
1344 -1, -1, -1, -1, -1, -1, -1, 48, -1, 50,
1345 -1, -1, -1, -1, -1, 56, -1, -1, -1, -1,
1346 -1, 62, -1, -1, -1, -1, 67, 68, 69, 70,
1347 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1348 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1349 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1350 101, 102, 8, 104, -1, -1, -1, -1, 109, -1,
1351 -1, -1, 113, -1, 20, 116, 117, 118, 119, 120,
1352 121, 122, -1, 124, 125, 126, 127, 128, -1, 130,
1353 131, 132, 133, 134, 135, 136, -1, -1, -1, -1,
1354 -1, -1, -1, -1, 50, -1, -1, -1, -1, -1,
1355 56, -1, -1, -1, -1, -1, 62, -1, -1, -1,
1356 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1357 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1358 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1359 96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
1360 -1, -1, -1, -1, 8, -1, -1, 113, -1, -1,
1361 116, 117, 118, 119, 120, 121, 20, -1, 124, 125,
1362 126, 127, 128, -1, 130, 131, 132, 133, 134, 135,
1363 136, 35, -1, -1, -1, -1, -1, -1, -1, -1,
1364 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1365 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1366 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1367 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1368 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1369 94, 95, 96, 97, 98, 99, 100, 101, 102, 6,
1370 104, 8, -1, 10, 11, -1, -1, -1, -1, -1,
1371 -1, -1, 116, 20, 118, 119, 120, 121, 25, -1,
1372 124, 125, 126, 127, 128, -1, 130, 131, 132, -1,
1373 134, 135, 136, -1, -1, -1, -1, -1, -1, -1,
1374 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1375 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1376 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1377 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1378 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1379 97, 98, 99, 100, 101, 102, 6, 104, 8, -1,
1380 10, 11, -1, -1, -1, -1, -1, -1, -1, 116,
1381 20, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1382 127, 128, 129, 130, 131, 132, -1, -1, -1, -1,
1383 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1385 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1386 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1387 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1388 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1389 100, 101, 102, 8, 104, -1, -1, -1, -1, -1,
1390 -1, -1, -1, -1, -1, 20, 116, -1, 118, 119,
1391 120, 121, -1, -1, 124, 125, 126, 127, 128, 129,
1392 130, 131, 132, -1, -1, -1, -1, -1, -1, -1,
1393 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1394 -1, -1, -1, -1, -1, -1, -1, -1, -1, 64,
1395 65, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1396 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1397 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1398 95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
1399 8, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1400 -1, 116, 20, 118, 119, 120, 121, -1, -1, 124,
1401 125, 126, 127, 128, -1, 130, 131, 132, -1, 37,
1402 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1403 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1404 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1405 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1406 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1407 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1408 98, 99, 100, 101, 102, -1, 104, 8, -1, -1,
1409 -1, -1, -1, -1, -1, -1, -1, -1, 116, 20,
1410 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1411 128, 129, 130, 131, 132, -1, 37, -1, -1, -1,
1412 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1413 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1414 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1415 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1416 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1417 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1418 101, 102, -1, 104, 8, -1, -1, -1, -1, -1,
1419 -1, -1, -1, -1, -1, 116, 20, 118, 119, 120,
1420 121, -1, -1, 124, 125, 126, 127, 128, 129, 130,
1421 131, 132, -1, 37, -1, -1, -1, -1, -1, -1,
1422 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1423 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1424 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1425 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1426 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1427 94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
1428 104, 8, -1, -1, -1, -1, -1, -1, -1, -1,
1429 -1, -1, 116, 20, 118, 119, 120, 121, -1, -1,
1430 124, 125, 126, 127, 128, 129, 130, 131, 132, -1,
1431 37, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1432 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1433 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1434 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1435 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1436 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1437 97, 98, 99, 100, 101, 102, 8, 104, -1, -1,
1438 -1, -1, -1, -1, -1, -1, -1, -1, 20, 116,
1439 -1, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1440 127, 128, 129, 130, 131, 132, -1, -1, -1, -1,
1441 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1442 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1443 -1, -1, -1, -1, -1, 67, 68, 69, 70, 71,
1444 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1445 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1446 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1447 102, 8, 104, -1, -1, -1, -1, -1, -1, -1,
1448 -1, -1, -1, 20, 116, -1, 118, 119, 120, 121,
1449 -1, -1, 124, 125, 126, 127, 128, 129, 130, 131,
1450 132, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1451 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1452 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1453 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1454 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1455 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1456 97, 98, 99, 100, 101, 102, 8, 104, -1, -1,
1457 -1, -1, -1, -1, -1, -1, -1, -1, 20, 116,
1458 -1, 118, 119, 120, 121, -1, 123, 124, 125, 126,
1459 127, 128, -1, 130, 131, 132, -1, -1, -1, -1,
1460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1461 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1462 -1, -1, -1, -1, -1, 67, 68, 69, 70, 71,
1463 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1464 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1465 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1466 102, -1, 104, -1, -1, -1, -1, -1, 8, -1,
1467 -1, -1, -1, -1, 116, -1, 118, 119, 120, 121,
1468 20, -1, 124, 125, 126, 127, 128, 129, 130, 131,
1469 132, -1, -1, -1, -1, 35, -1, -1, -1, -1,
1470 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1471 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1472 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1473 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1474 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1475 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1476 100, 101, 102, -1, 104, -1, -1, -1, -1, -1,
1477 8, -1, -1, -1, -1, -1, 116, -1, 118, 119,
1478 120, 121, 20, -1, 124, 125, 126, 127, 128, -1,
1479 130, 131, 132, -1, -1, -1, -1, 35, -1, -1,
1480 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1481 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1482 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1483 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1484 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1485 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1486 98, 99, 100, 101, 102, 8, 104, -1, -1, -1,
1487 -1, -1, -1, -1, -1, -1, -1, 20, 116, -1,
1488 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1489 128, -1, 130, 131, 132, -1, -1, -1, -1, -1,
1490 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1491 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1492 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
1493 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1494 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1495 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1496 8, 104, -1, -1, -1, -1, -1, -1, -1, -1,
1497 -1, -1, 20, 116, -1, 118, 119, 120, 121, -1,
1498 -1, 124, 125, 126, 127, 128, -1, 130, 131, 132,
1499 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1501 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1502 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1503 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1504 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1505 98, 99, 100, 101, 102, -1, 104, -1, -1, -1,
1506 -1, -1, -1, -1, -1, -1, -1, -1, 116, -1,
1507 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1508 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1509 -1, -1, 10, 11, -1, -1, -1, -1, -1, -1,
1510 -1, -1, 20, 21, 22, 23, -1, 25, -1, -1,
1511 -1, 3, -1, -1, 6, -1, 34, 35, 10, 11,
1512 -1, -1, 40, 41, 42, 43, -1, -1, 20, 21,
1513 22, -1, -1, 25, -1, -1, 54, 55, -1, -1,
1514 -1, 59, 34, -1, 36, -1, -1, -1, 40, 41,
1515 42, 43, -1, -1, -1, -1, -1, -1, -1, -1,
1516 -1, 3, 54, 55, 6, -1, -1, 59, 10, 11,
1517 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1518 22, -1, -1, 25, -1, -1, -1, -1, -1, 107,
1519 108, -1, 34, -1, 36, -1, 114, -1, 40, 41,
1520 42, 43, 3, -1, -1, 6, -1, -1, -1, 10,
1521 11, -1, 54, 55, -1, 107, 108, 59, -1, 20,
1522 21, 22, 114, -1, 25, -1, -1, -1, -1, -1,
1523 -1, -1, -1, 34, -1, 36, -1, -1, -1, 40,
1524 41, 42, 43, -1, -1, -1, -1, -1, -1, -1,
1525 -1, -1, 3, 54, 55, 6, -1, -1, 59, 10,
1526 11, -1, -1, -1, -1, 107, 108, -1, -1, 20,
1527 21, 22, 114, -1, 25, -1, -1, -1, 3, -1,
1528 -1, 6, -1, 34, -1, 10, 11, -1, -1, 40,
1529 41, 42, 43, -1, -1, 20, -1, 22, -1, -1,
1530 25, -1, -1, 54, 55, -1, 107, 108, 59, 34,
1531 -1, -1, -1, 114, -1, 40, 41, 42, 43, -1,
1532 -1, -1, -1, -1, -1, -1, -1, -1, -1, 54,
1533 -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
1534 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1535 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
1536 -1, -1, -1, 114, -1, -1, -1, -1, -1, -1,
1537 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1538 -1, -1, 107, 108, -1, -1, -1, -1, -1, 114
1540 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1541 #line 3 "/usr/share/misc/bison.simple"
1542 /* This file comes from bison-1.28. */
1544 /* Skeleton output parser for bison,
1545 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1547 This program is free software; you can redistribute it and/or modify
1548 it under the terms of the GNU General Public License as published by
1549 the Free Software Foundation; either version 2, or (at your option)
1552 This program is distributed in the hope that it will be useful,
1553 but WITHOUT ANY WARRANTY; without even the implied warranty of
1554 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1555 GNU General Public License for more details.
1557 You should have received a copy of the GNU General Public License
1558 along with this program; if not, write to the Free Software
1559 Foundation, Inc., 59 Temple Place - Suite 330,
1560 Boston, MA 02111-1307, USA. */
1562 /* As a special exception, when this file is copied by Bison into a
1563 Bison output file, you may use that output file without restriction.
1564 This special exception was added by the Free Software Foundation
1565 in version 1.24 of Bison. */
1567 /* This is the parser code that is written into each bison parser
1568 when the %semantic_parser declaration is not specified in the grammar.
1569 It was written by Richard Stallman by simplifying the hairy parser
1570 used when %semantic_parser is specified. */
1572 #ifndef YYSTACK_USE_ALLOCA
1574 #define YYSTACK_USE_ALLOCA
1575 #else /* alloca not defined */
1577 #define YYSTACK_USE_ALLOCA
1578 #define alloca __builtin_alloca
1579 #else /* not GNU C. */
1580 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
1581 #define YYSTACK_USE_ALLOCA
1583 #else /* not sparc */
1584 /* We think this test detects Watcom and Microsoft C. */
1585 /* This used to test MSDOS, but that is a bad idea
1586 since that symbol is in the user namespace. */
1587 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
1588 #if 0 /* No need for malloc.h, which pollutes the namespace;
1589 instead, just don't use alloca. */
1592 #else /* not MSDOS, or __TURBOC__ */
1594 /* I don't know what this was needed for, but it pollutes the namespace.
1595 So I turned it off. rms, 2 May 1997. */
1596 /* #include <malloc.h> */
1598 #define YYSTACK_USE_ALLOCA
1599 #else /* not MSDOS, or __TURBOC__, or _AIX */
1601 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
1602 and on HPUX 10. Eventually we can turn this on. */
1603 #define YYSTACK_USE_ALLOCA
1604 #define alloca __builtin_alloca
1607 #endif /* not _AIX */
1608 #endif /* not MSDOS, or __TURBOC__ */
1609 #endif /* not sparc */
1610 #endif /* not GNU C */
1611 #endif /* alloca not defined */
1612 #endif /* YYSTACK_USE_ALLOCA not defined */
1614 #ifdef YYSTACK_USE_ALLOCA
1615 #define YYSTACK_ALLOC alloca
1617 #define YYSTACK_ALLOC malloc
1620 /* Note: there must be only one dollar sign in this file.
1621 It is replaced by the list of actions, each action
1622 as one case of the switch. */
1624 #define yyerrok (yyerrstatus = 0)
1625 #define yyclearin (yychar = YYEMPTY)
1628 #define YYACCEPT goto yyacceptlab
1629 #define YYABORT goto yyabortlab
1630 #define YYERROR goto yyerrlab1
1631 /* Like YYERROR except do call yyerror.
1632 This remains here temporarily to ease the
1633 transition to the new meaning of YYERROR, for GCC.
1634 Once GCC version 2 has supplanted version 1, this can go. */
1635 #define YYFAIL goto yyerrlab
1636 #define YYRECOVERING() (!!yyerrstatus)
1637 #define YYBACKUP(token, value) \
1639 if (yychar == YYEMPTY && yylen == 1) \
1640 { yychar = (token), yylval = (value); \
1641 yychar1 = YYTRANSLATE (yychar); \
1646 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1650 #define YYERRCODE 256
1653 #define YYLEX yylex()
1659 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1661 #define YYLEX yylex(&yylval, &yylloc)
1663 #else /* not YYLSP_NEEDED */
1665 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1667 #define YYLEX yylex(&yylval)
1669 #endif /* not YYLSP_NEEDED */
1672 /* If nonreentrant, generate the variables here */
1676 int yychar; /* the lookahead symbol */
1677 YYSTYPE yylval; /* the semantic value of the */
1678 /* lookahead symbol */
1681 YYLTYPE yylloc; /* location data for the lookahead */
1685 int yynerrs; /* number of parse errors so far */
1686 #endif /* not YYPURE */
1689 int yydebug; /* nonzero means print parse trace */
1690 /* Since this is uninitialized, it does not stop multiple parsers
1694 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1697 #define YYINITDEPTH 200
1700 /* YYMAXDEPTH is the maximum size the stacks can grow to
1701 (effective only if the built-in stack extension method is used). */
1708 #define YYMAXDEPTH 10000
1711 /* Define __yy_memcpy. Note that the size argument
1712 should be passed with type unsigned int, because that is what the non-GCC
1713 definitions require. With GCC, __builtin_memcpy takes an arg
1714 of type size_t, but it can handle unsigned int. */
1716 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1717 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1718 #else /* not GNU C or C++ */
1721 /* This is the most reliable way to avoid incompatibilities
1722 in available built-in functions on various systems. */
1724 __yy_memcpy (to, from, count)
1729 register char *f = from;
1730 register char *t = to;
1731 register int i = count;
1737 #else /* __cplusplus */
1739 /* This is the most reliable way to avoid incompatibilities
1740 in available built-in functions on various systems. */
1742 __yy_memcpy (char *to, char *from, unsigned int count)
1744 register char *t = to;
1745 register char *f = from;
1746 register int i = count;
1755 #line 217 "/usr/share/misc/bison.simple"
1757 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1758 into yyparse. The argument should have type void *.
1759 It should actually point to an object.
1760 Grammar actions can access the variable by casting it
1761 to the proper pointer type. */
1763 #ifdef YYPARSE_PARAM
1765 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1766 #define YYPARSE_PARAM_DECL
1767 #else /* not __cplusplus */
1768 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1769 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1770 #endif /* not __cplusplus */
1771 #else /* not YYPARSE_PARAM */
1772 #define YYPARSE_PARAM_ARG
1773 #define YYPARSE_PARAM_DECL
1774 #endif /* not YYPARSE_PARAM */
1776 /* Prevent warning if -Wstrict-prototypes. */
1778 #ifdef YYPARSE_PARAM
1779 int yyparse (void *);
1786 yyparse(YYPARSE_PARAM_ARG)
1789 register int yystate;
1791 register short *yyssp;
1792 register YYSTYPE *yyvsp;
1793 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1794 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1796 short yyssa[YYINITDEPTH]; /* the state stack */
1797 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1799 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1800 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1803 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1804 YYLTYPE *yyls = yylsa;
1807 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1809 #define YYPOPSTACK (yyvsp--, yyssp--)
1812 int yystacksize = YYINITDEPTH;
1813 int yyfree_stacks = 0;
1824 YYSTYPE yyval; /* the variable used to return */
1825 /* semantic values from the action */
1832 fprintf(stderr, "Starting parse\n");
1838 yychar = YYEMPTY; /* Cause a token to be read. */
1840 /* Initialize stack pointers.
1841 Waste one element of value and location stack
1842 so that they stay on the same level as the state stack.
1843 The wasted elements are never initialized. */
1851 /* Push a new state, which is found in yystate . */
1852 /* In all cases, when you get here, the value and location stacks
1853 have just been pushed. so pushing a state here evens the stacks. */
1858 if (yyssp >= yyss + yystacksize - 1)
1860 /* Give user a chance to reallocate the stack */
1861 /* Use copies of these so that the &'s don't force the real ones into memory. */
1862 YYSTYPE *yyvs1 = yyvs;
1863 short *yyss1 = yyss;
1865 YYLTYPE *yyls1 = yyls;
1868 /* Get the current used size of the three stacks, in elements. */
1869 int size = yyssp - yyss + 1;
1872 /* Each stack pointer address is followed by the size of
1873 the data in use in that stack, in bytes. */
1875 /* This used to be a conditional around just the two extra args,
1876 but that might be undefined if yyoverflow is a macro. */
1877 yyoverflow("parser stack overflow",
1878 &yyss1, size * sizeof (*yyssp),
1879 &yyvs1, size * sizeof (*yyvsp),
1880 &yyls1, size * sizeof (*yylsp),
1883 yyoverflow("parser stack overflow",
1884 &yyss1, size * sizeof (*yyssp),
1885 &yyvs1, size * sizeof (*yyvsp),
1889 yyss = yyss1; yyvs = yyvs1;
1893 #else /* no yyoverflow */
1894 /* Extend the stack our own way. */
1895 if (yystacksize >= YYMAXDEPTH)
1897 yyerror("parser stack overflow");
1909 if (yystacksize > YYMAXDEPTH)
1910 yystacksize = YYMAXDEPTH;
1911 #ifndef YYSTACK_USE_ALLOCA
1914 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
1915 __yy_memcpy ((char *)yyss, (char *)yyss1,
1916 size * (unsigned int) sizeof (*yyssp));
1917 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
1918 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
1919 size * (unsigned int) sizeof (*yyvsp));
1921 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
1922 __yy_memcpy ((char *)yyls, (char *)yyls1,
1923 size * (unsigned int) sizeof (*yylsp));
1925 #endif /* no yyoverflow */
1927 yyssp = yyss + size - 1;
1928 yyvsp = yyvs + size - 1;
1930 yylsp = yyls + size - 1;
1935 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1938 if (yyssp >= yyss + yystacksize - 1)
1944 fprintf(stderr, "Entering state %d\n", yystate);
1950 /* Do appropriate processing given the current state. */
1951 /* Read a lookahead token if we need one and don't already have one. */
1954 /* First try to decide what to do without reference to lookahead token. */
1956 yyn = yypact[yystate];
1960 /* Not known => get a lookahead token if don't already have one. */
1962 /* yychar is either YYEMPTY or YYEOF
1963 or a valid token in external form. */
1965 if (yychar == YYEMPTY)
1969 fprintf(stderr, "Reading a token: ");
1974 /* Convert token to internal form (in yychar1) for indexing tables with */
1976 if (yychar <= 0) /* This means end of input. */
1979 yychar = YYEOF; /* Don't call YYLEX any more */
1983 fprintf(stderr, "Now at end of input.\n");
1988 yychar1 = YYTRANSLATE(yychar);
1993 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1994 /* Give the individual parser a way to print the precise meaning
1995 of a token, for further debugging info. */
1997 YYPRINT (stderr, yychar, yylval);
1999 fprintf (stderr, ")\n");
2005 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2010 /* yyn is what to do for this token type in this state.
2011 Negative => reduce, -yyn is rule number.
2012 Positive => shift, yyn is new state.
2013 New state is final state => don't bother to shift,
2014 just return success.
2015 0, or most negative number => error. */
2030 /* Shift the lookahead token. */
2034 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2037 /* Discard the token being shifted unless it is eof. */
2038 if (yychar != YYEOF)
2046 /* count tokens shifted since error; after three, turn off error status. */
2047 if (yyerrstatus) yyerrstatus--;
2052 /* Do the default action for the current state. */
2055 yyn = yydefact[yystate];
2059 /* Do a reduction. yyn is the number of a rule to reduce with. */
2063 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2070 fprintf (stderr, "Reducing via rule %d (line %d), ",
2073 /* Print the symbols being reduced, and their result. */
2074 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2075 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2076 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2084 #line 383 "llgrammar.y"
2085 { lhExternals (yyvsp[0].interfacelist); ;
2088 #line 384 "llgrammar.y"
2089 { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
2092 #line 387 "llgrammar.y"
2093 { yyval.interfacelist = interfaceNodeList_new (); ;
2096 #line 388 "llgrammar.y"
2097 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2100 #line 395 "llgrammar.y"
2101 { yyval.interfacelist = interfaceNodeList_new (); ;
2104 #line 396 "llgrammar.y"
2105 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2108 #line 397 "llgrammar.y"
2109 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2112 #line 400 "llgrammar.y"
2113 { yyval.interfacelist = interfaceNodeList_new (); ;
2116 #line 401 "llgrammar.y"
2117 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2120 #line 410 "llgrammar.y"
2121 { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2122 /* assume subspecs are already processed, symbol table info in external file */
2126 #line 416 "llgrammar.y"
2127 { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
2130 #line 420 "llgrammar.y"
2131 { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
2134 #line 422 "llgrammar.y"
2135 { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
2138 #line 424 "llgrammar.y"
2139 { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
2142 #line 426 "llgrammar.y"
2143 { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
2146 #line 428 "llgrammar.y"
2147 { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
2150 #line 430 "llgrammar.y"
2151 { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
2154 #line 434 "llgrammar.y"
2155 { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
2158 #line 437 "llgrammar.y"
2159 { yyval.paramlist = paramNodeList_new (); ;
2162 #line 438 "llgrammar.y"
2163 { yyval.paramlist = yyvsp[0].paramlist; ;
2166 #line 442 "llgrammar.y"
2167 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
2170 #line 444 "llgrammar.y"
2171 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
2174 #line 447 "llgrammar.y"
2175 { yyval.param = markYieldParamNode (yyvsp[0].param); ;
2178 #line 448 "llgrammar.y"
2179 { yyval.param = yyvsp[0].param; ;
2182 #line 451 "llgrammar.y"
2183 { symtable_export (g_symtab, FALSE); ;
2186 #line 452 "llgrammar.y"
2187 { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
2190 #line 456 "llgrammar.y"
2191 { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
2194 #line 458 "llgrammar.y"
2195 { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
2198 #line 460 "llgrammar.y"
2199 { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
2202 #line 462 "llgrammar.y"
2203 { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
2206 #line 466 "llgrammar.y"
2207 { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
2210 #line 470 "llgrammar.y"
2211 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
2214 #line 472 "llgrammar.y"
2215 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
2218 #line 474 "llgrammar.y"
2219 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
2222 #line 477 "llgrammar.y"
2223 { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
2226 #line 478 "llgrammar.y"
2227 { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
2230 #line 481 "llgrammar.y"
2231 { yyval.typequal = qual_createPrintfLike (); ;
2234 #line 482 "llgrammar.y"
2235 { yyval.typequal = qual_createScanfLike (); ;
2238 #line 483 "llgrammar.y"
2239 { yyval.typequal = qual_createMessageLike (); ;
2242 #line 486 "llgrammar.y"
2243 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2246 #line 488 "llgrammar.y"
2247 { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls,
2248 yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2249 /* type, declarator, glovbls, privateinits,
2250 lets, checks, requires, modifies, ensures, claims */
2251 symtable_exitScope (g_symtab);
2255 #line 494 "llgrammar.y"
2256 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2259 #line 498 "llgrammar.y"
2260 { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist,
2261 yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2262 /* type, declarator, glovbls, privateinits,
2263 lets, checks, requires, modifies, ensures, claims */
2264 symtable_exitScope (g_symtab);
2268 #line 508 "llgrammar.y"
2269 { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
2272 #line 510 "llgrammar.y"
2273 { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate);
2274 symtable_exitScope (g_symtab); ;
2277 #line 513 "llgrammar.y"
2278 { yyval.claim = (claimNode) 0; ;
2281 #line 516 "llgrammar.y"
2282 {g_inTypeDef = TRUE; ;
2285 #line 516 "llgrammar.y"
2286 {g_inTypeDef = FALSE; ;
2289 #line 517 "llgrammar.y"
2290 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
2293 #line 518 "llgrammar.y"
2294 {g_inTypeDef = TRUE; ;
2297 #line 519 "llgrammar.y"
2298 {g_inTypeDef = FALSE; ;
2301 #line 520 "llgrammar.y"
2302 { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2305 #line 521 "llgrammar.y"
2306 {g_inTypeDef = TRUE; ;
2309 #line 522 "llgrammar.y"
2310 {g_inTypeDef = FALSE; ;
2313 #line 523 "llgrammar.y"
2314 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2317 #line 524 "llgrammar.y"
2318 {g_inTypeDef = TRUE; ;
2321 #line 524 "llgrammar.y"
2322 {g_inTypeDef = FALSE; ;
2325 #line 525 "llgrammar.y"
2326 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
2329 #line 528 "llgrammar.y"
2330 { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
2333 #line 529 "llgrammar.y"
2334 { g_inTypeDef = FALSE; ;
2337 #line 530 "llgrammar.y"
2338 { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
2341 #line 532 "llgrammar.y"
2342 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
2345 #line 534 "llgrammar.y"
2346 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
2349 #line 550 "llgrammar.y"
2350 { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
2353 #line 552 "llgrammar.y"
2354 { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
2357 #line 555 "llgrammar.y"
2358 { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
2361 #line 557 "llgrammar.y"
2362 { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
2365 #line 558 "llgrammar.y"
2366 { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
2369 #line 561 "llgrammar.y"
2370 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2373 #line 562 "llgrammar.y"
2374 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2377 #line 570 "llgrammar.y"
2378 { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
2381 #line 572 "llgrammar.y"
2382 { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
2385 #line 576 "llgrammar.y"
2386 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
2389 #line 578 "llgrammar.y"
2390 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
2393 #line 580 "llgrammar.y"
2394 { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
2397 #line 582 "llgrammar.y"
2398 { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
2401 #line 585 "llgrammar.y"
2402 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2405 #line 586 "llgrammar.y"
2406 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2409 #line 590 "llgrammar.y"
2410 { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
2413 #line 592 "llgrammar.y"
2414 { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
2417 #line 593 "llgrammar.y"
2418 { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
2421 #line 597 "llgrammar.y"
2422 { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
2425 #line 598 "llgrammar.y"
2426 { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
2429 #line 602 "llgrammar.y"
2430 { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
2433 #line 603 "llgrammar.y"
2434 { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
2437 #line 606 "llgrammar.y"
2438 { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
2441 #line 607 "llgrammar.y"
2442 { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
2445 #line 608 "llgrammar.y"
2446 { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
2447 yyvsp[-1].name, yyvsp[0].signature); ;
2450 #line 612 "llgrammar.y"
2451 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
2454 #line 613 "llgrammar.y"
2455 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
2458 #line 621 "llgrammar.y"
2459 { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
2462 #line 623 "llgrammar.y"
2463 { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
2466 #line 626 "llgrammar.y"
2467 { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
2470 #line 627 "llgrammar.y"
2471 { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
2474 #line 631 "llgrammar.y"
2475 { yyval.globals = varDeclarationNodeList_new (); ;
2478 #line 633 "llgrammar.y"
2479 { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
2482 #line 636 "llgrammar.y"
2483 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
2486 #line 637 "llgrammar.y"
2487 { yyval.vardeclaration = makeInternalStateNode (); ;
2490 #line 638 "llgrammar.y"
2491 { yyval.vardeclaration = makeFileSystemNode (); ;
2494 #line 641 "llgrammar.y"
2495 { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
2498 #line 642 "llgrammar.y"
2499 { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
2502 #line 646 "llgrammar.y"
2503 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
2506 #line 649 "llgrammar.y"
2507 { yyval.letdecls = letDeclNodeList_new (); ;
2510 #line 650 "llgrammar.y"
2511 { yyval.letdecls = yyvsp[-1].letdecls; ;
2514 #line 653 "llgrammar.y"
2515 { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
2518 #line 654 "llgrammar.y"
2519 { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
2522 #line 657 "llgrammar.y"
2523 { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
2526 #line 658 "llgrammar.y"
2527 { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
2530 #line 663 "llgrammar.y"
2531 { yyval.lclpredicate = (lclPredicateNode)0; ;
2534 #line 664 "llgrammar.y"
2535 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2538 #line 667 "llgrammar.y"
2539 { yyval.lclpredicate = (lclPredicateNode)0; ;
2542 #line 668 "llgrammar.y"
2543 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2546 #line 671 "llgrammar.y"
2547 { yyval.modify = (modifyNode)0; ;
2550 #line 672 "llgrammar.y"
2551 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
2554 #line 673 "llgrammar.y"
2555 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
2558 #line 674 "llgrammar.y"
2559 { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
2562 #line 677 "llgrammar.y"
2563 { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
2566 #line 678 "llgrammar.y"
2567 { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
2570 #line 681 "llgrammar.y"
2571 { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
2574 #line 682 "llgrammar.y"
2575 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
2578 #line 683 "llgrammar.y"
2579 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
2582 #line 684 "llgrammar.y"
2583 { yyval.storeref = makeStoreRefNodeInternal (); ;
2586 #line 685 "llgrammar.y"
2587 { yyval.storeref = makeStoreRefNodeSystem (); ;
2590 #line 688 "llgrammar.y"
2591 { yyval.lclpredicate = (lclPredicateNode)0; ;
2594 #line 689 "llgrammar.y"
2595 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2598 #line 692 "llgrammar.y"
2599 { yyval.lclpredicate = (lclPredicateNode)0; ;
2602 #line 693 "llgrammar.y"
2603 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2606 #line 696 "llgrammar.y"
2607 { yyval.paramlist = paramNodeList_new (); ;
2610 #line 697 "llgrammar.y"
2611 { yyval.paramlist = yyvsp[0].paramlist; ;
2614 #line 701 "llgrammar.y"
2615 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
2618 #line 702 "llgrammar.y"
2619 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
2622 #line 705 "llgrammar.y"
2623 { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
2626 #line 706 "llgrammar.y"
2627 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
2630 #line 709 "llgrammar.y"
2631 { yyval.program = (programNode)0; ;
2634 #line 710 "llgrammar.y"
2635 { yyval.program = yyvsp[-1].program; ;
2638 #line 711 "llgrammar.y"
2639 { yyval.program = yyvsp[-2].program; ;
2642 #line 714 "llgrammar.y"
2643 { yyval.program = makeProgramNode (yyvsp[0].stmt); ;
2646 #line 717 "llgrammar.y"
2647 { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
2650 #line 719 "llgrammar.y"
2651 { programNodeList x = programNodeList_new ();
2652 programNodeList_addh (x, yyvsp[-1].program);
2653 yyval.program = makeProgramNodeAction (x, ACT_ITER);
2657 #line 724 "llgrammar.y"
2658 { programNodeList x = programNodeList_new ();
2659 programNodeList_addh (x, yyvsp[-2].program);
2660 programNodeList_addh (x, yyvsp[0].program);
2661 yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE);
2665 #line 730 "llgrammar.y"
2666 { programNodeList x = programNodeList_new ();
2667 programNodeList_addh (x, yyvsp[-2].program);
2668 programNodeList_addh (x, yyvsp[0].program);
2669 yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE);
2673 #line 738 "llgrammar.y"
2674 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2677 #line 740 "llgrammar.y"
2678 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
2681 #line 742 "llgrammar.y"
2682 { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
2685 #line 744 "llgrammar.y"
2686 { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2689 #line 747 "llgrammar.y"
2690 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
2693 #line 748 "llgrammar.y"
2694 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
2697 #line 752 "llgrammar.y"
2698 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
2701 #line 753 "llgrammar.y"
2702 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
2705 #line 754 "llgrammar.y"
2706 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
2709 #line 755 "llgrammar.y"
2710 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
2713 #line 756 "llgrammar.y"
2714 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
2717 #line 758 "llgrammar.y"
2718 { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
2721 #line 760 "llgrammar.y"
2722 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
2725 #line 763 "llgrammar.y"
2726 { yyval.abstbody = (abstBodyNode)0; ;
2729 #line 764 "llgrammar.y"
2730 { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
2733 #line 765 "llgrammar.y"
2734 { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
2737 #line 766 "llgrammar.y"
2738 { yyval.abstbody = (abstBodyNode)0; ;
2741 #line 769 "llgrammar.y"
2742 { yyval.fcns = fcnNodeList_new (); ;
2745 #line 770 "llgrammar.y"
2746 { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
2749 #line 773 "llgrammar.y"
2750 { yyval.lclpredicate = (lclPredicateNode)0; ;
2753 #line 777 "llgrammar.y"
2754 { g_inTypeDef = FALSE; ;
2757 #line 778 "llgrammar.y"
2758 { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
2759 checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
2760 yyval.lclpredicate = yyvsp[-1].lclpredicate;
2761 symtable_exitScope (g_symtab);
2766 #line 786 "llgrammar.y"
2767 { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
2770 #line 788 "llgrammar.y"
2771 { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
2774 #line 791 "llgrammar.y"
2775 { declareForwardType (yyvsp[0].declare); ;
2778 #line 792 "llgrammar.y"
2779 { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
2782 #line 795 "llgrammar.y"
2783 { yyval.abstbody = (abstBodyNode)0; ;
2786 #line 796 "llgrammar.y"
2787 { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2790 #line 799 "llgrammar.y"
2791 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
2794 #line 800 "llgrammar.y"
2795 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
2798 #line 801 "llgrammar.y"
2799 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
2802 #line 802 "llgrammar.y"
2803 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
2806 #line 803 "llgrammar.y"
2807 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
2810 #line 804 "llgrammar.y"
2811 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
2814 #line 805 "llgrammar.y"
2815 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
2818 #line 806 "llgrammar.y"
2819 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
2822 #line 807 "llgrammar.y"
2823 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
2826 #line 808 "llgrammar.y"
2827 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
2830 #line 816 "llgrammar.y"
2831 { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
2834 #line 817 "llgrammar.y"
2835 { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
2838 #line 823 "llgrammar.y"
2839 { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
2842 #line 825 "llgrammar.y"
2843 { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
2846 #line 830 "llgrammar.y"
2847 { yyval.typequal = qual_createOut (); ;
2850 #line 831 "llgrammar.y"
2851 { yyval.typequal = qual_createUnused (); ;
2854 #line 832 "llgrammar.y"
2855 { yyval.typequal = qual_createSef (); ;
2858 #line 833 "llgrammar.y"
2859 { yyval.typequal = qual_createOnly (); ;
2862 #line 834 "llgrammar.y"
2863 { yyval.typequal = qual_createOwned (); ;
2866 #line 835 "llgrammar.y"
2867 { yyval.typequal = qual_createDependent (); ;
2870 #line 836 "llgrammar.y"
2871 { yyval.typequal = qual_createKeep (); ;
2874 #line 837 "llgrammar.y"
2875 { yyval.typequal = qual_createKept (); ;
2878 #line 838 "llgrammar.y"
2879 { yyval.typequal = qual_createObserver (); ;
2882 #line 839 "llgrammar.y"
2883 { yyval.typequal = qual_createExits (); ;
2886 #line 840 "llgrammar.y"
2887 { yyval.typequal = qual_createMayExit (); ;
2890 #line 841 "llgrammar.y"
2891 { yyval.typequal = qual_createTrueExit (); ;
2894 #line 842 "llgrammar.y"
2895 { yyval.typequal = qual_createFalseExit (); ;
2898 #line 843 "llgrammar.y"
2899 { yyval.typequal = qual_createNeverExit (); ;
2902 #line 844 "llgrammar.y"
2903 { yyval.typequal = qual_createOnly (); ;
2906 #line 845 "llgrammar.y"
2907 { yyval.typequal = qual_createShared (); ;
2910 #line 846 "llgrammar.y"
2911 { yyval.typequal = qual_createUnique (); ;
2914 #line 847 "llgrammar.y"
2915 { yyval.typequal = qual_createChecked (); ;
2918 #line 848 "llgrammar.y"
2919 { yyval.typequal = qual_createUnchecked (); ;
2922 #line 849 "llgrammar.y"
2923 { yyval.typequal = qual_createCheckedStrict (); ;
2926 #line 850 "llgrammar.y"
2927 { yyval.typequal = qual_createTrueNull (); ;
2930 #line 851 "llgrammar.y"
2931 { yyval.typequal = qual_createFalseNull (); ;
2934 #line 852 "llgrammar.y"
2935 { yyval.typequal = qual_createRelNull (); ;
2938 #line 853 "llgrammar.y"
2939 { yyval.typequal = qual_createRelDef (); ;
2942 #line 854 "llgrammar.y"
2943 { yyval.typequal = qual_createRefCounted (); ;
2946 #line 855 "llgrammar.y"
2947 { yyval.typequal = qual_createRefs (); ;
2950 #line 856 "llgrammar.y"
2951 { yyval.typequal = qual_createNewRef (); ;
2954 #line 857 "llgrammar.y"
2955 { yyval.typequal = qual_createKillRef (); ;
2958 #line 858 "llgrammar.y"
2959 { yyval.typequal = qual_createNull (); ;
2962 #line 859 "llgrammar.y"
2963 { yyval.typequal = qual_createNotNull (); ;
2966 #line 860 "llgrammar.y"
2967 { yyval.typequal = qual_createReturned (); ;
2970 #line 861 "llgrammar.y"
2971 { yyval.typequal = qual_createExposed (); ;
2974 #line 862 "llgrammar.y"
2975 { yyval.typequal = qual_createPartial (); ;
2978 #line 863 "llgrammar.y"
2979 { yyval.typequal = qual_createNullTerminated () ; ;
2982 #line 864 "llgrammar.y"
2983 { yyval.typequal = qual_createUndef (); ;
2986 #line 865 "llgrammar.y"
2987 { yyval.typequal = qual_createKilled (); ;
2990 #line 869 "llgrammar.y"
2991 { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
2994 #line 871 "llgrammar.y"
2995 { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
2998 #line 873 "llgrammar.y"
2999 { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
3002 #line 875 "llgrammar.y"
3003 { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
3006 #line 877 "llgrammar.y"
3007 { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
3010 #line 887 "llgrammar.y"
3011 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
3012 yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
3015 #line 891 "llgrammar.y"
3016 { yyval.count = 1; ;
3019 #line 892 "llgrammar.y"
3020 { yyval.count = yyvsp[-1].count + 1; ;
3023 #line 896 "llgrammar.y"
3024 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
3027 #line 898 "llgrammar.y"
3028 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3031 #line 900 "llgrammar.y"
3032 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
3035 #line 902 "llgrammar.y"
3036 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3039 #line 904 "llgrammar.y"
3040 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
3043 #line 906 "llgrammar.y"
3044 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
3047 #line 909 "llgrammar.y"
3048 { yyval.ltok = ltoken_undefined; ;
3051 #line 913 "llgrammar.y"
3052 { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
3055 #line 914 "llgrammar.y"
3056 { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
3059 #line 919 "llgrammar.y"
3060 { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
3063 #line 923 "llgrammar.y"
3064 { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
3067 #line 925 "llgrammar.y"
3068 { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
3071 #line 928 "llgrammar.y"
3075 #line 929 "llgrammar.y"
3079 #line 933 "llgrammar.y"
3080 { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
3083 #line 935 "llgrammar.y"
3084 { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
3087 #line 938 "llgrammar.y"
3088 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3091 #line 939 "llgrammar.y"
3092 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3095 #line 949 "llgrammar.y"
3096 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3099 #line 950 "llgrammar.y"
3100 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3103 #line 953 "llgrammar.y"
3104 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3107 #line 954 "llgrammar.y"
3108 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3111 #line 955 "llgrammar.y"
3112 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3115 #line 956 "llgrammar.y"
3116 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3119 #line 957 "llgrammar.y"
3120 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3123 #line 958 "llgrammar.y"
3124 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3127 #line 961 "llgrammar.y"
3128 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3131 #line 962 "llgrammar.y"
3132 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3135 #line 963 "llgrammar.y"
3136 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3139 #line 964 "llgrammar.y"
3140 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3143 #line 965 "llgrammar.y"
3144 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3147 #line 966 "llgrammar.y"
3148 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3151 #line 975 "llgrammar.y"
3152 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3155 #line 976 "llgrammar.y"
3156 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3159 #line 977 "llgrammar.y"
3160 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3163 #line 978 "llgrammar.y"
3164 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3167 #line 979 "llgrammar.y"
3168 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3171 #line 985 "llgrammar.y"
3172 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3175 #line 986 "llgrammar.y"
3176 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3179 #line 987 "llgrammar.y"
3180 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3183 #line 997 "llgrammar.y"
3184 { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3187 #line 998 "llgrammar.y"
3188 { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3191 #line 999 "llgrammar.y"
3192 { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
3195 #line 1004 "llgrammar.y"
3196 { yyval.abstDecl = (abstDeclaratorNode)0; ;
3199 #line 1005 "llgrammar.y"
3200 { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
3203 #line 1008 "llgrammar.y"
3204 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3207 #line 1009 "llgrammar.y"
3208 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3211 #line 1010 "llgrammar.y"
3212 { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
3215 #line 1011 "llgrammar.y"
3216 { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
3219 #line 1012 "llgrammar.y"
3220 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3223 #line 1013 "llgrammar.y"
3224 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3227 #line 1014 "llgrammar.y"
3228 { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
3231 #line 1015 "llgrammar.y"
3232 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3235 #line 1018 "llgrammar.y"
3236 { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
3239 #line 1019 "llgrammar.y"
3240 { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
3243 #line 1023 "llgrammar.y"
3244 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
3247 #line 1025 "llgrammar.y"
3248 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3251 #line 1027 "llgrammar.y"
3252 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3255 #line 1029 "llgrammar.y"
3256 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3259 #line 1031 "llgrammar.y"
3260 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
3261 opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3264 #line 1034 "llgrammar.y"
3265 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3268 #line 1036 "llgrammar.y"
3269 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3272 #line 1038 "llgrammar.y"
3273 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3276 #line 1040 "llgrammar.y"
3277 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3280 #line 1042 "llgrammar.y"
3281 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3284 #line 1044 "llgrammar.y"
3285 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3288 #line 1052 "llgrammar.y"
3289 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3292 #line 1054 "llgrammar.y"
3293 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3296 #line 1056 "llgrammar.y"
3297 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
3298 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3301 #line 1059 "llgrammar.y"
3302 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
3303 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3306 #line 1062 "llgrammar.y"
3307 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
3308 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3311 #line 1065 "llgrammar.y"
3312 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
3313 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3316 #line 1082 "llgrammar.y"
3317 { yyval.count = 0; ;
3320 #line 1086 "llgrammar.y"
3321 { yyval.count = 1; ;
3324 #line 1087 "llgrammar.y"
3325 { yyval.count = yyvsp[-2].count + 1; ;
3328 #line 1094 "llgrammar.y"
3329 { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3332 #line 1097 "llgrammar.y"
3333 { yyval.ltokenList = ltokenList_new (); ;
3336 #line 1101 "llgrammar.y"
3337 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3340 #line 1102 "llgrammar.y"
3341 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3344 #line 1105 "llgrammar.y"
3345 { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
3348 #line 1108 "llgrammar.y"
3349 { yyval.term = checkSort (yyvsp[0].term); ;
3352 #line 1115 "llgrammar.y"
3353 { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
3356 #line 1117 "llgrammar.y"
3357 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
3360 #line 1123 "llgrammar.y"
3361 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
3362 symtable_exitScope (g_symtab);
3366 #line 1127 "llgrammar.y"
3367 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3370 #line 1129 "llgrammar.y"
3371 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3374 #line 1133 "llgrammar.y"
3375 { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
3378 #line 1134 "llgrammar.y"
3379 { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
3382 #line 1142 "llgrammar.y"
3383 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
3386 #line 1145 "llgrammar.y"
3387 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3390 #line 1146 "llgrammar.y"
3391 { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
3394 #line 1149 "llgrammar.y"
3395 { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
3398 #line 1150 "llgrammar.y"
3399 { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
3402 #line 1154 "llgrammar.y"
3403 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3406 #line 1155 "llgrammar.y"
3407 { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3410 #line 1156 "llgrammar.y"
3411 { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
3414 #line 1157 "llgrammar.y"
3415 { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
3418 #line 1158 "llgrammar.y"
3419 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3422 #line 1159 "llgrammar.y"
3423 { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3426 #line 1162 "llgrammar.y"
3427 { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3430 #line 1167 "llgrammar.y"
3431 { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok);
3432 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3435 #line 1170 "llgrammar.y"
3436 { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3439 #line 1172 "llgrammar.y"
3440 { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok);
3441 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok));
3445 #line 1176 "llgrammar.y"
3446 { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3449 #line 1179 "llgrammar.y"
3450 { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3453 #line 1180 "llgrammar.y"
3454 { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3457 #line 1183 "llgrammar.y"
3458 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3461 #line 1184 "llgrammar.y"
3462 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3465 #line 1188 "llgrammar.y"
3466 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
3469 #line 1190 "llgrammar.y"
3470 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3473 #line 1192 "llgrammar.y"
3474 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3477 #line 1195 "llgrammar.y"
3478 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
3481 #line 1197 "llgrammar.y"
3482 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3485 #line 1199 "llgrammar.y"
3486 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3489 #line 1201 "llgrammar.y"
3490 { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
3494 #line 1204 "llgrammar.y"
3495 { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
3498 #line 1206 "llgrammar.y"
3499 { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3502 #line 1209 "llgrammar.y"
3503 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3506 #line 1210 "llgrammar.y"
3507 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3510 #line 1220 "llgrammar.y"
3511 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3514 #line 1221 "llgrammar.y"
3515 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3518 #line 1222 "llgrammar.y"
3519 { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
3522 #line 1223 "llgrammar.y"
3523 { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
3526 #line 1225 "llgrammar.y"
3527 { termNodeList x = termNodeList_new ();
3528 termNodeList_addh (x, yyvsp[-1].term);
3529 yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok);
3533 #line 1230 "llgrammar.y"
3534 { termNodeList x = termNodeList_new ();
3535 termNodeList_addh (x, yyvsp[-3].term);
3536 termNodeList_addh (x, yyvsp[-1].term);
3537 yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok);
3541 #line 1235 "llgrammar.y"
3542 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
3545 #line 1245 "llgrammar.y"
3546 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
3549 #line 1246 "llgrammar.y"
3550 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
3553 #line 1247 "llgrammar.y"
3554 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
3557 #line 1248 "llgrammar.y"
3558 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
3561 #line 1252 "llgrammar.y"
3562 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
3565 #line 1254 "llgrammar.y"
3566 { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
3569 #line 1257 "llgrammar.y"
3570 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
3571 si->kind = SPE_QUANT;
3572 symtable_enterScope (g_symtab, si); ;
3575 #line 1261 "llgrammar.y"
3576 { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
3579 #line 1264 "llgrammar.y"
3580 { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
3583 #line 1265 "llgrammar.y"
3584 { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
3587 #line 1268 "llgrammar.y"
3588 { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
3591 #line 1269 "llgrammar.y"
3592 { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
3595 /* the action file gets copied in in place of this dollarsign */
3596 #line 543 "/usr/share/misc/bison.simple"
3607 short *ssp1 = yyss - 1;
3608 fprintf (stderr, "state stack now");
3609 while (ssp1 != yyssp)
3610 fprintf (stderr, " %d", *++ssp1);
3611 fprintf (stderr, "\n");
3621 yylsp->first_line = yylloc.first_line;
3622 yylsp->first_column = yylloc.first_column;
3623 yylsp->last_line = (yylsp-1)->last_line;
3624 yylsp->last_column = (yylsp-1)->last_column;
3629 yylsp->last_line = (yylsp+yylen-1)->last_line;
3630 yylsp->last_column = (yylsp+yylen-1)->last_column;
3634 /* Now "shift" the result of the reduction.
3635 Determine what state that goes to,
3636 based on the state we popped back to
3637 and the rule number reduced by. */
3641 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3642 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3643 yystate = yytable[yystate];
3645 yystate = yydefgoto[yyn - YYNTBASE];
3649 yyerrlab: /* here on detecting error */
3652 /* If not already recovering from an error, report this error. */
3656 #ifdef YYERROR_VERBOSE
3657 yyn = yypact[yystate];
3659 if (yyn > YYFLAG && yyn < YYLAST)
3666 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3667 for (x = (yyn < 0 ? -yyn : 0);
3668 x < (sizeof(yytname) / sizeof(char *)); x++)
3669 if (yycheck[x + yyn] == x)
3670 size += strlen(yytname[x]) + 15, count++;
3671 msg = (char *) malloc(size + 15);
3674 strcpy(msg, "parse error");
3679 for (x = (yyn < 0 ? -yyn : 0);
3680 x < (sizeof(yytname) / sizeof(char *)); x++)
3681 if (yycheck[x + yyn] == x)
3683 strcat(msg, count == 0 ? ", expecting `" : " or `");
3684 strcat(msg, yytname[x]);
3693 yyerror ("parse error; also virtual memory exceeded");
3696 #endif /* YYERROR_VERBOSE */
3697 yyerror("parse error");
3701 yyerrlab1: /* here on error raised explicitly by an action */
3703 if (yyerrstatus == 3)
3705 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3707 /* return failure if at end of input */
3708 if (yychar == YYEOF)
3713 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3719 /* Else will try to reuse lookahead token
3720 after shifting the error token. */
3722 yyerrstatus = 3; /* Each real token shifted decrements this */
3726 yyerrdefault: /* current state does not do anything special for the error token. */
3729 /* This is wrong; only states that explicitly want error tokens
3730 should shift them. */
3731 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3732 if (yyn) goto yydefault;
3735 yyerrpop: /* pop the current state because it cannot handle the error token */
3737 if (yyssp == yyss) YYABORT;
3747 short *ssp1 = yyss - 1;
3748 fprintf (stderr, "Error: state stack now");
3749 while (ssp1 != yyssp)
3750 fprintf (stderr, " %d", *++ssp1);
3751 fprintf (stderr, "\n");
3757 yyn = yypact[yystate];
3762 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3781 fprintf(stderr, "Shifting error token, ");
3793 /* YYACCEPT comes here. */
3805 /* YYABORT comes here. */
3816 #line 1284 "llgrammar.y"
3819 # include "bison.reset"
3822 ** yytext is set in lex scanner
3823 ** extern YYSTYPE yylval;
3824 ** yylval is defined by code generated by bison
3827 void ylerror (char *s)
3830 ** This resetting of the left context is very important when multiple
3831 ** files are to be parsed. We do not want failures to propagate.
3832 ** Lex/Yacc does not reset the flags when the parsing goes bad.
3837 lclfatalerror (yllval.ltok,
3838 message ("%s: Token code: %s, Token String: %s",
3839 cstring_fromChars (s),
3840 ltoken_unparseCodeName (yllval.ltok),
3841 ltoken_getRawString (yllval.ltok)));
3845 static void yyprint (FILE *f, int t, YYSTYPE value)
3847 fprintf (f, " type: %d (%s)", t,
3848 cstring_toCharsSafe (ltoken_getRawString (value.ltok)));