2 /* A Bison parser, made from llgrammar.y
3 by GNU Bison version 1.25
6 #define YYBISON 1 /* Identify Bison output. */
8 #define yyparse ylparse
10 #define yyerror ylerror
13 #define yydebug yldebug
14 #define yynerrs ylnerrs
17 #define POSTFIX_OP 260
20 #define LLT_VERTICALBAR 263
21 #define ITERATION_OP 264
23 #define LLT_LBRACKET 266
25 #define LLT_IF_THEN_ELSE 268
28 #define equationSym 271
29 #define commentSym 272
30 #define LLT_WHITESPACE 273
32 #define LLT_TYPEDEF_NAME 275
33 #define quantifierSym 276
45 #define LLT_EQUALS 288
46 #define LLT_LBRACE 289
47 #define LLT_RBRACE 290
48 #define LLT_RBRACKET 291
53 #define LLT_CFLOAT 296
54 #define LLT_CINTEGER 297
55 #define LLT_LCSTRING 298
57 #define LLT_ANYTHING 300
60 #define LLT_CLAIMS 303
61 #define LLT_CHECKS 304
62 #define LLT_CONSTANT 305
64 #define LLT_ENSURES 307
68 #define LLT_IMMUTABLE 311
69 #define LLT_IMPORTS 312
70 #define LLT_CONSTRAINT 313
73 #define LLT_MODIFIES 316
74 #define LLT_MUTABLE 317
75 #define LLT_NOTHING 318
76 #define LLT_INTERNAL 319
77 #define LLT_FILESYS 320
82 #define LLT_PARTIAL 325
84 #define LLT_DEPENDENT 327
88 #define LLT_SHARED 331
89 #define LLT_UNIQUE 332
90 #define LLT_UNUSED 333
92 #define LLT_MAYEXIT 335
93 #define LLT_NEVEREXIT 336
94 #define LLT_TRUEEXIT 337
95 #define LLT_FALSEEXIT 338
97 #define LLT_KILLED 340
98 #define LLT_CHECKMOD 341
99 #define LLT_CHECKED 342
100 #define LLT_UNCHECKED 343
101 #define LLT_CHECKEDSTRICT 344
102 #define LLT_TRUENULL 345
103 #define LLT_FALSENULL 346
104 #define LLT_LNULL 347
105 #define LLT_LNOTNULL 348
106 #define LLT_RETURNED 349
107 #define LLT_OBSERVER 350
108 #define LLT_EXPOSED 351
109 #define LLT_REFCOUNTED 352
111 #define LLT_RELNULL 354
112 #define LLT_RELDEF 355
113 #define LLT_KILLREF 356
114 #define LLT_NULLTERMINATED 357
115 #define LLT_TEMPREF 358
116 #define LLT_NEWREF 359
117 #define LLT_PRIVATE 360
118 #define LLT_REQUIRES 361
119 #define LLT_RESULT 362
120 #define LLT_SIZEOF 363
122 #define LLT_TAGGEDUNION 365
125 #define LLT_TYPEDEF 368
126 #define LLT_UNCHANGED 369
129 #define LLT_CONST 372
130 #define LLT_DOUBLE 373
132 #define LLT_FLOAT 375
135 #define LLT_YIELD 378
137 #define LLT_SHORT 380
138 #define LLT_SIGNED 381
139 #define LLT_UNKNOWN 382
140 #define LLT_STRUCT 383
141 #define LLT_TELIPSIS 384
142 #define LLT_UNION 385
143 #define LLT_UNSIGNED 386
145 #define LLT_VOLATILE 388
146 #define LLT_PRINTFLIKE 389
147 #define LLT_SCANFLIKE 390
148 #define LLT_MESSAGELIKE 391
150 #line 36 "llgrammar.y"
153 # include "lclintMacros.nf"
154 # include "llbasic.h"
155 # include "lclscan.h"
156 # include "checking.h"
157 # include "lslparse.h"
159 # include "usymtab_interface.h"
162 static /*@unused@*/ void yyprint ();
166 void ylerror (char *) /*@modifies *g_msgstream@*/ ;
169 bool g_inTypeDef = FALSE;
171 /*@constant int YYDEBUG;@*/
175 # define YYPRINT(file, type, value) yyprint (file, type, value)
178 ** This is necessary, or else when the bison-generated code #include's malloc.h,
179 ** there will be a parse error.
181 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
182 ** in bison-generated files under Win32.
192 #line 78 "llgrammar.y"
195 ltoken ltok; /* a leaf is also an ltoken */
198 /*@only@*/ ltokenList ltokenList;
199 /*@only@*/ abstDeclaratorNode abstDecl;
200 /*@only@*/ declaratorNode declare;
201 /*@only@*/ declaratorNodeList declarelist;
202 /*@only@*/ typeExpr typeexpr;
203 /*@only@*/ arrayQualNode array;
204 /*@only@*/ quantifierNode quantifier;
205 /*@only@*/ quantifierNodeList quantifiers;
206 /*@only@*/ varNode var;
207 /*@only@*/ varNodeList vars;
208 /*@only@*/ storeRefNode storeref;
209 /*@only@*/ storeRefNodeList storereflist;
210 /*@only@*/ termNode term;
211 /*@only@*/ termNodeList termlist;
212 /*@only@*/ programNode program;
213 /*@only@*/ stmtNode stmt;
214 /*@only@*/ claimNode claim;
215 /*@only@*/ typeNode type;
216 /*@only@*/ iterNode iter;
217 /*@only@*/ fcnNode fcn;
218 /*@only@*/ fcnNodeList fcns;
219 /*@only@*/ letDeclNode letdecl;
220 /*@only@*/ letDeclNodeList letdecls;
221 /*@only@*/ lclPredicateNode lclpredicate;
222 /*@only@*/ modifyNode modify;
223 /*@only@*/ paramNode param;
224 /*@only@*/ paramNodeList paramlist;
225 /*@only@*/ declaratorInvNodeList declaratorinvs;
226 /*@only@*/ declaratorInvNode declaratorinv;
227 /*@only@*/ abstBodyNode abstbody;
228 /*@only@*/ abstractNode abstract;
229 /*@only@*/ exposedNode exposed;
230 /* taggedUnionNode taggedunion; */
231 /*@only@*/ globalList globals;
232 /*@only@*/ constDeclarationNode constdeclaration;
233 /*@only@*/ varDeclarationNode vardeclaration;
234 /*@only@*/ varDeclarationNodeList vardeclarationlist;
235 /*@only@*/ initDeclNodeList initdecls;
236 /*@only@*/ initDeclNode initdecl;
237 /*@only@*/ stDeclNodeList structdecls;
238 /*@only@*/ stDeclNode structdecl;
239 /*@only@*/ strOrUnionNode structorunion;
240 /*@only@*/ enumSpecNode enumspec;
241 /*@only@*/ lclTypeSpecNode lcltypespec;
242 /*@only@*/ typeNameNode typname;
243 /*@only@*/ opFormNode opform;
244 /*@only@*/ sigNode signature;
245 /*@only@*/ nameNode name;
246 /*@only@*/ typeNameNodeList namelist;
247 /*@only@*/ replaceNode replace;
248 /*@only@*/ replaceNodeList replacelist;
249 /*@only@*/ renamingNode renaming;
250 /*@only@*/ traitRefNode traitref;
251 /*@only@*/ traitRefNodeList traitreflist;
252 /*@only@*/ importNode import;
253 /*@only@*/ importNodeList importlist;
254 /*@only@*/ interfaceNode iface;
255 /*@only@*/ interfaceNodeList interfacelist;
256 /*@only@*/ CTypesNode ctypes;
273 #define YYFLAG -32768
276 #define YYTRANSLATE(x) ((unsigned)(x) <= 391 ? yytranslate[x] : 291)
278 static const short yytranslate[] = { 0,
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, 2, 2, 2, 2, 2,
304 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
305 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
306 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
307 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
308 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
309 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
310 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
311 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
312 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
313 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
314 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
315 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
316 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
317 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
322 static const short yyprhs[] = { 0,
323 0, 1, 5, 6, 9, 11, 13, 14, 17, 20,
324 21, 24, 26, 28, 30, 34, 38, 40, 42, 44,
325 46, 48, 50, 57, 58, 60, 62, 66, 69, 71,
326 72, 76, 78, 80, 82, 84, 89, 93, 98, 103,
327 105, 107, 109, 111, 113, 114, 128, 129, 144, 145,
328 159, 164, 165, 166, 173, 174, 175, 183, 184, 185,
329 193, 194, 195, 202, 203, 204, 211, 214, 217, 219,
330 223, 225, 229, 231, 233, 237, 239, 241, 245, 247,
331 252, 256, 263, 265, 269, 271, 273, 277, 279, 283,
332 285, 289, 293, 297, 302, 304, 306, 308, 310, 312,
333 316, 318, 322, 323, 326, 330, 333, 336, 337, 340,
334 345, 346, 350, 352, 356, 362, 366, 368, 369, 373,
335 374, 378, 379, 383, 387, 391, 393, 397, 399, 401,
336 404, 406, 408, 409, 413, 414, 418, 419, 421, 423,
337 425, 429, 431, 435, 436, 441, 447, 449, 453, 456,
338 460, 464, 469, 473, 479, 486, 488, 492, 494, 496,
339 499, 502, 506, 510, 514, 519, 521, 525, 530, 534,
340 535, 538, 539, 541, 542, 549, 551, 555, 556, 560,
341 561, 565, 567, 569, 571, 573, 575, 577, 579, 581,
342 583, 585, 587, 590, 592, 594, 596, 598, 600, 602,
343 604, 606, 608, 610, 612, 614, 616, 618, 620, 622,
344 624, 626, 628, 630, 632, 634, 636, 638, 640, 642,
345 644, 646, 648, 650, 652, 654, 656, 658, 660, 662,
346 664, 666, 668, 670, 672, 675, 681, 683, 686, 688,
347 691, 692, 699, 700, 707, 710, 713, 714, 716, 718,
348 721, 725, 727, 731, 732, 734, 741, 744, 746, 750,
349 752, 754, 756, 760, 763, 766, 770, 775, 777, 781,
350 784, 787, 791, 796, 798, 801, 804, 808, 813, 816,
351 819, 822, 825, 829, 831, 832, 834, 838, 841, 843,
352 845, 848, 852, 856, 861, 864, 868, 875, 877, 880,
353 883, 887, 891, 896, 901, 907, 911, 916, 921, 927,
354 930, 933, 937, 941, 943, 945, 947, 949, 951, 953,
355 955, 956, 958, 960, 964, 966, 968, 973, 974, 976,
356 978, 982, 984, 986, 993, 995, 999, 1001, 1006, 1010,
357 1014, 1016, 1019, 1022, 1024, 1026, 1028, 1031, 1033, 1036,
358 1039, 1043, 1045, 1047, 1050, 1053, 1057, 1059, 1062, 1066,
359 1068, 1074, 1078, 1083, 1086, 1090, 1093, 1095, 1099, 1103,
360 1105, 1110, 1112, 1115, 1119, 1123, 1127, 1132, 1136, 1138,
361 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1159, 1164, 1169,
362 1174, 1181, 1186, 1188, 1190, 1192, 1194, 1196, 1199, 1200,
363 1204, 1206, 1210, 1214, 1219, 1221, 1223, 1225, 1227, 1229,
367 static const short yyrhs[] = { -1,
368 139, 138, 141, 0, 0, 139, 140, 0, 144, 0,
369 145, 0, 0, 146, 142, 0, 151, 142, 0, 0,
370 142, 143, 0, 146, 0, 151, 0, 145, 0, 57,
371 175, 7, 0, 115, 179, 7, 0, 154, 0, 155,
372 0, 156, 0, 158, 0, 161, 0, 147, 0, 122,
373 285, 10, 148, 37, 7, 0, 0, 149, 0, 150,
374 0, 149, 32, 150, 0, 123, 244, 0, 244, 0,
375 0, 109, 152, 153, 0, 154, 0, 155, 0, 156,
376 0, 158, 0, 50, 227, 189, 7, 0, 227, 189,
377 7, 0, 117, 227, 189, 7, 0, 133, 227, 189,
378 7, 0, 163, 0, 172, 0, 134, 0, 135, 0,
379 136, 0, 0, 227, 240, 191, 159, 34, 193, 195,
380 199, 200, 201, 204, 205, 35, 0, 0, 157, 227,
381 240, 191, 160, 34, 193, 195, 199, 200, 201, 204,
382 205, 35, 0, 0, 48, 287, 10, 206, 37, 191,
383 162, 34, 195, 200, 209, 204, 35, 0, 48, 284,
384 287, 7, 0, 0, 0, 62, 164, 112, 20, 165,
385 214, 0, 0, 0, 62, 166, 97, 112, 20, 167,
386 214, 0, 0, 0, 97, 62, 168, 112, 20, 169,
387 214, 0, 0, 0, 56, 170, 112, 20, 171, 214,
388 0, 0, 0, 113, 227, 173, 219, 174, 7, 0,
389 230, 7, 0, 238, 7, 0, 176, 0, 175, 32,
390 176, 0, 178, 0, 3, 178, 3, 0, 43, 0,
391 178, 0, 177, 32, 178, 0, 283, 0, 180, 0,
392 179, 32, 180, 0, 289, 0, 289, 10, 182, 37,
393 0, 10, 181, 37, 0, 10, 181, 37, 10, 182,
394 37, 0, 289, 0, 181, 32, 289, 0, 184, 0,
395 183, 0, 183, 32, 184, 0, 245, 0, 183, 32,
396 245, 0, 185, 0, 184, 32, 185, 0, 245, 53,
397 223, 0, 245, 53, 186, 0, 245, 53, 186, 256,
398 0, 290, 0, 249, 0, 188, 0, 260, 0, 190,
399 0, 189, 32, 190, 0, 240, 0, 240, 33, 187,
400 0, 0, 191, 192, 0, 227, 189, 7, 0, 64,
401 7, 0, 65, 7, 0, 0, 193, 194, 0, 105,
402 227, 189, 7, 0, 0, 60, 196, 7, 0, 197,
403 0, 196, 32, 197, 0, 285, 31, 198, 46, 260,
404 0, 285, 46, 260, 0, 227, 0, 0, 49, 259,
405 7, 0, 0, 106, 259, 7, 0, 0, 61, 63,
406 7, 0, 61, 45, 7, 0, 61, 202, 7, 0,
407 203, 0, 202, 32, 203, 0, 260, 0, 228, 0,
408 66, 228, 0, 64, 0, 65, 0, 0, 52, 259,
409 7, 0, 0, 48, 259, 7, 0, 0, 207, 0,
410 208, 0, 129, 0, 208, 32, 129, 0, 244, 0,
411 208, 32, 244, 0, 0, 47, 34, 210, 35, 0,
412 47, 34, 210, 7, 35, 0, 211, 0, 10, 210,
413 37, 0, 210, 6, 0, 210, 8, 210, 0, 210,
414 7, 210, 0, 284, 10, 212, 37, 0, 284, 10,
415 37, 0, 285, 33, 284, 10, 37, 0, 285, 33,
416 284, 10, 212, 37, 0, 213, 0, 212, 32, 213,
417 0, 277, 0, 285, 0, 3, 213, 0, 213, 3,
418 0, 213, 3, 213, 0, 10, 213, 37, 0, 284,
419 10, 37, 0, 284, 10, 212, 37, 0, 7, 0,
420 34, 215, 35, 0, 34, 177, 35, 7, 0, 34,
421 35, 7, 0, 0, 215, 158, 0, 0, 217, 0,
422 0, 58, 218, 279, 10, 259, 37, 0, 220, 0,
423 219, 32, 220, 0, 0, 240, 221, 222, 0, 0,
424 34, 216, 35, 0, 132, 0, 116, 0, 118, 0,
425 120, 0, 121, 0, 124, 0, 125, 0, 126, 0,
426 131, 0, 127, 0, 223, 0, 224, 223, 0, 20,
427 0, 224, 0, 67, 0, 78, 0, 68, 0, 69,
428 0, 71, 0, 72, 0, 73, 0, 74, 0, 95,
429 0, 79, 0, 80, 0, 82, 0, 83, 0, 81,
430 0, 75, 0, 76, 0, 77, 0, 87, 0, 88,
431 0, 89, 0, 90, 0, 91, 0, 99, 0, 100,
432 0, 97, 0, 98, 0, 104, 0, 101, 0, 92,
433 0, 93, 0, 94, 0, 96, 0, 70, 0, 102,
434 0, 84, 0, 85, 0, 225, 0, 230, 0, 238,
435 0, 226, 227, 0, 8, 228, 31, 228, 8, 0,
436 227, 0, 227, 229, 0, 6, 0, 229, 6, 0,
437 0, 128, 233, 231, 34, 234, 35, 0, 0, 130,
438 233, 232, 34, 234, 35, 0, 128, 286, 0, 130,
439 286, 0, 0, 286, 0, 235, 0, 234, 235, 0,
440 227, 236, 7, 0, 240, 0, 236, 32, 240, 0,
441 0, 32, 0, 119, 233, 34, 239, 237, 35, 0,
442 119, 286, 0, 25, 0, 239, 32, 25, 0, 242,
443 0, 241, 0, 285, 0, 10, 241, 37, 0, 6,
444 241, 0, 241, 248, 0, 241, 10, 37, 0, 241,
445 10, 207, 37, 0, 20, 0, 10, 242, 37, 0,
446 6, 242, 0, 242, 248, 0, 242, 10, 37, 0,
447 242, 10, 207, 37, 0, 20, 0, 6, 243, 0,
448 243, 248, 0, 243, 10, 37, 0, 243, 10, 207,
449 37, 0, 227, 243, 0, 227, 241, 0, 227, 246,
450 0, 227, 246, 0, 66, 227, 246, 0, 249, 0,
451 0, 247, 0, 10, 247, 37, 0, 6, 247, 0,
452 6, 0, 248, 0, 247, 248, 0, 247, 10, 37,
453 0, 10, 207, 37, 0, 247, 10, 207, 37, 0,
454 11, 36, 0, 11, 188, 36, 0, 55, 27, 111,
455 27, 51, 27, 0, 252, 0, 27, 252, 0, 252,
456 27, 0, 27, 252, 27, 0, 250, 253, 251, 0,
457 27, 250, 253, 251, 0, 250, 253, 251, 27, 0,
458 27, 250, 253, 251, 27, 0, 11, 253, 36, 0,
459 11, 253, 36, 27, 0, 27, 11, 253, 36, 0,
460 27, 11, 253, 36, 27, 0, 12, 283, 0, 26,
461 283, 0, 27, 12, 283, 0, 27, 26, 283, 0,
462 22, 0, 34, 0, 23, 0, 35, 0, 264, 0,
463 14, 0, 39, 0, 0, 254, 0, 27, 0, 254,
464 255, 27, 0, 32, 0, 24, 0, 31, 257, 26,
465 288, 0, 0, 258, 0, 288, 0, 258, 32, 288,
466 0, 260, 0, 261, 0, 55, 261, 111, 261, 51,
467 261, 0, 262, 0, 261, 14, 261, 0, 263, 0,
468 278, 10, 259, 37, 0, 263, 39, 263, 0, 263,
469 33, 263, 0, 265, 0, 268, 266, 0, 268, 267,
470 0, 3, 0, 6, 0, 268, 0, 264, 265, 0,
471 264, 0, 266, 264, 0, 264, 268, 0, 267, 264,
472 268, 0, 273, 0, 269, 0, 269, 273, 0, 273,
473 269, 0, 273, 269, 273, 0, 270, 0, 270, 273,
474 0, 271, 31, 288, 0, 271, 0, 11, 272, 36,
475 31, 288, 0, 11, 272, 36, 0, 11, 36, 31,
476 288, 0, 11, 36, 0, 250, 272, 251, 0, 250,
477 251, 0, 260, 0, 272, 255, 260, 0, 10, 261,
478 37, 0, 285, 0, 290, 10, 274, 37, 0, 276,
479 0, 273, 275, 0, 273, 12, 283, 0, 273, 26,
480 283, 0, 273, 11, 36, 0, 273, 11, 274, 36,
481 0, 273, 31, 288, 0, 261, 0, 274, 32, 261,
482 0, 28, 0, 29, 0, 30, 0, 38, 0, 277,
483 0, 107, 0, 54, 10, 274, 37, 0, 114, 10,
484 44, 37, 0, 114, 10, 202, 37, 0, 108, 10,
485 260, 37, 0, 59, 10, 260, 32, 260, 37, 0,
486 108, 10, 227, 37, 0, 42, 0, 43, 0, 40,
487 0, 41, 0, 279, 0, 278, 279, 0, 0, 21,
488 280, 281, 0, 282, 0, 281, 32, 282, 0, 285,
489 31, 198, 0, 285, 31, 66, 198, 0, 25, 0,
490 20, 0, 25, 0, 25, 0, 283, 0, 283, 0,
491 283, 0, 283, 0, 283, 0
497 static const short yyrline[] = { 0,
498 383, 384, 387, 388, 391, 392, 395, 396, 397, 400,
499 401, 404, 405, 406, 409, 415, 419, 421, 423, 425,
500 427, 429, 433, 437, 438, 441, 443, 447, 448, 451,
501 452, 455, 457, 459, 461, 465, 469, 471, 473, 477,
502 478, 481, 482, 483, 486, 487, 494, 496, 507, 509,
503 512, 516, 516, 517, 518, 518, 520, 521, 522, 523,
504 524, 524, 525, 528, 529, 530, 531, 533, 549, 551,
505 555, 556, 558, 561, 562, 565, 569, 571, 575, 577,
506 579, 581, 585, 586, 589, 591, 593, 596, 598, 601,
507 603, 606, 607, 608, 612, 613, 615, 617, 620, 622,
508 626, 627, 630, 632, 636, 637, 638, 641, 642, 645,
509 649, 650, 653, 654, 657, 658, 660, 663, 664, 667,
510 668, 671, 672, 673, 674, 677, 678, 681, 682, 683,
511 684, 685, 688, 689, 692, 693, 696, 697, 700, 701,
512 702, 705, 706, 709, 710, 711, 714, 715, 718, 723,
513 729, 737, 739, 741, 743, 747, 748, 751, 752, 753,
514 754, 755, 756, 757, 759, 763, 764, 765, 766, 769,
515 770, 773, 774, 777, 777, 786, 787, 791, 792, 795,
516 796, 799, 800, 801, 802, 803, 804, 805, 806, 807,
517 808, 816, 817, 822, 824, 830, 831, 832, 833, 834,
518 835, 836, 837, 838, 839, 840, 841, 842, 843, 844,
519 845, 846, 847, 848, 849, 850, 851, 852, 853, 854,
520 855, 856, 857, 858, 859, 860, 861, 862, 863, 864,
521 865, 868, 870, 872, 874, 876, 885, 886, 891, 892,
522 895, 897, 899, 901, 903, 905, 909, 910, 913, 914,
523 919, 922, 924, 928, 929, 932, 934, 938, 939, 949,
524 950, 953, 954, 955, 956, 957, 958, 961, 962, 963,
525 964, 965, 966, 975, 976, 977, 978, 979, 985, 986,
526 987, 997, 998, 999, 1004, 1005, 1008, 1009, 1010, 1011,
527 1012, 1013, 1014, 1015, 1018, 1019, 1022, 1024, 1026, 1028,
528 1030, 1033, 1035, 1037, 1039, 1041, 1043, 1051, 1053, 1055,
529 1058, 1061, 1064, 1069, 1070, 1073, 1074, 1077, 1078, 1079,
530 1082, 1083, 1086, 1087, 1090, 1091, 1094, 1097, 1098, 1101,
531 1102, 1105, 1108, 1114, 1116, 1117, 1120, 1121, 1126, 1128,
532 1132, 1133, 1134, 1137, 1138, 1141, 1142, 1145, 1146, 1149,
533 1150, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1162, 1163,
534 1166, 1169, 1171, 1175, 1179, 1180, 1183, 1184, 1187, 1189,
535 1191, 1193, 1194, 1196, 1198, 1200, 1203, 1205, 1209, 1210,
536 1213, 1214, 1215, 1216, 1219, 1220, 1221, 1222, 1223, 1224,
537 1229, 1235, 1245, 1246, 1247, 1248, 1251, 1253, 1257, 1261,
538 1264, 1265, 1268, 1269, 1272, 1273, 1276, 1277, 1278, 1279,
544 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
546 static const char * const yytname[] = { "$","error","$undefined.","simpleOp",
547 "PREFIX_OP","POSTFIX_OP","LLT_MULOP","LLT_SEMI","LLT_VERTICALBAR","ITERATION_OP",
548 "LLT_LPAR","LLT_LBRACKET","selectSym","LLT_IF_THEN_ELSE","logicalOp","eqSepSym",
549 "equationSym","commentSym","LLT_WHITESPACE","LLT_EOL","LLT_TYPEDEF_NAME","quantifierSym",
550 "openSym","closeSym","sepSym","simpleId","mapSym","markerSym","preSym","postSym",
551 "anySym","LLT_COLON","LLT_COMMA","LLT_EQUALS","LLT_LBRACE","LLT_RBRACE","LLT_RBRACKET",
552 "LLT_RPAR","LLT_QUOTE","eqOp","LLT_CCHAR","LLT_CFLOAT","LLT_CINTEGER","LLT_LCSTRING",
553 "LLT_ALL","LLT_ANYTHING","LLT_BE","LLT_BODY","LLT_CLAIMS","LLT_CHECKS","LLT_CONSTANT",
554 "LLT_ELSE","LLT_ENSURES","LLT_FOR","LLT_FRESH","LLT_IF","LLT_IMMUTABLE","LLT_IMPORTS",
555 "LLT_CONSTRAINT","LLT_ISSUB","LLT_LET","LLT_MODIFIES","LLT_MUTABLE","LLT_NOTHING",
556 "LLT_INTERNAL","LLT_FILESYS","LLT_OBJ","LLT_OUT","LLT_SEF","LLT_ONLY","LLT_PARTIAL",
557 "LLT_OWNED","LLT_DEPENDENT","LLT_KEEP","LLT_KEPT","LLT_TEMP","LLT_SHARED","LLT_UNIQUE",
558 "LLT_UNUSED","LLT_EXITS","LLT_MAYEXIT","LLT_NEVEREXIT","LLT_TRUEEXIT","LLT_FALSEEXIT",
559 "LLT_UNDEF","LLT_KILLED","LLT_CHECKMOD","LLT_CHECKED","LLT_UNCHECKED","LLT_CHECKEDSTRICT",
560 "LLT_TRUENULL","LLT_FALSENULL","LLT_LNULL","LLT_LNOTNULL","LLT_RETURNED","LLT_OBSERVER",
561 "LLT_EXPOSED","LLT_REFCOUNTED","LLT_REFS","LLT_RELNULL","LLT_RELDEF","LLT_KILLREF",
562 "LLT_NULLTERMINATED","LLT_TEMPREF","LLT_NEWREF","LLT_PRIVATE","LLT_REQUIRES",
563 "LLT_RESULT","LLT_SIZEOF","LLT_SPEC","LLT_TAGGEDUNION","LLT_THEN","LLT_TYPE",
564 "LLT_TYPEDEF","LLT_UNCHANGED","LLT_USES","LLT_CHAR","LLT_CONST","LLT_DOUBLE",
565 "LLT_ENUM","LLT_FLOAT","LLT_INT","LLT_ITER","LLT_YIELD","LLT_LONG","LLT_SHORT",
566 "LLT_SIGNED","LLT_UNKNOWN","LLT_STRUCT","LLT_TELIPSIS","LLT_UNION","LLT_UNSIGNED",
567 "LLT_VOID","LLT_VOLATILE","LLT_PRINTFLIKE","LLT_SCANFLIKE","LLT_MESSAGELIKE",
568 "interface","@1","externals","external","optDeclarations","declarations","declaration",
569 "imports","uses","export","iter","iterParamList","realIterParamList","iterParam",
570 "private","@2","private2","constDeclaration","varDeclaration","type","special",
571 "fcn","@3","@4","claim","@5","abstract","@6","@7","@8","@9","@10","@11","@12",
572 "@13","exposed","@14","@15","importNameList","importName","interfaceNameList",
573 "interfaceName","traitRefNodeList","traitRef","traitIdList","renaming","nameList",
574 "replaceNodeList","replace","name","initializer","constLclExpr","initDecls",
575 "initDecl","globals","globalDecl","privateInits","privateInit","optLetDecl",
576 "beDeclList","beDecl","sortSpec","optChecks","optRequire","optModify","storeRefList",
577 "storeRef","optEnsure","optClaim","optParamList","realParamList","paramList",
578 "optBody","callExpr","stmt","valueList","value","abstBody","fcns","optTypeInv",
579 "typeInv","@16","declaratorInvs","declaratorInv","@17","optExposedBody","CType",
580 "CTypes","typeSpecifier","specialQualifier","lclTypeSpec","lclType","pointers",
581 "structOrUnionSpec","@18","@19","optTagId","structDecls","structDecl","declaratorList",
582 "optCOMMA","enumSpec","enumeratorList","declarator","notype_decl","after_type_decl",
583 "parameter_decl","param","typeName","optAbstDeclarator","abstDeclarator","arrayQual",
584 "opForm","open","close","anyOp","middle","placeList","separator","signature",
585 "domain","sortList","lclPredicate","term","term0","equalityTerm","simpleOpTerm",
586 "simpleOp2","prefixOpTerm","postfixOps","infixOpPart","secondary","bracketed",
587 "sqBracketed","matched","args","primary","termList","stateFcn","lclPrimary",
588 "cLiteral","quantifiers","quantifier","@20","quantifiedList","quantified","simpleIdOrTypedefName",
589 "fcnId","varId","tagId","claimId","sortId","traitId","opId", NULL
593 static const short yyr1[] = { 0,
594 138, 137, 139, 139, 140, 140, 141, 141, 141, 142,
595 142, 143, 143, 143, 144, 145, 146, 146, 146, 146,
596 146, 146, 147, 148, 148, 149, 149, 150, 150, 152,
597 151, 153, 153, 153, 153, 154, 155, 155, 155, 156,
598 156, 157, 157, 157, 159, 158, 160, 158, 162, 161,
599 161, 164, 165, 163, 166, 167, 163, 168, 169, 163,
600 170, 171, 163, 173, 174, 172, 172, 172, 175, 175,
601 176, 176, 176, 177, 177, 178, 179, 179, 180, 180,
602 180, 180, 181, 181, 182, 182, 182, 183, 183, 184,
603 184, 185, 185, 185, 186, 186, 187, 188, 189, 189,
604 190, 190, 191, 191, 192, 192, 192, 193, 193, 194,
605 195, 195, 196, 196, 197, 197, 198, 199, 199, 200,
606 200, 201, 201, 201, 201, 202, 202, 203, 203, 203,
607 203, 203, 204, 204, 205, 205, 206, 206, 207, 207,
608 207, 208, 208, 209, 209, 209, 210, 210, 210, 210,
609 210, 211, 211, 211, 211, 212, 212, 213, 213, 213,
610 213, 213, 213, 213, 213, 214, 214, 214, 214, 215,
611 215, 216, 216, 218, 217, 219, 219, 221, 220, 222,
612 222, 223, 223, 223, 223, 223, 223, 223, 223, 223,
613 223, 224, 224, 225, 225, 226, 226, 226, 226, 226,
614 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
615 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
616 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
617 226, 227, 227, 227, 227, 227, 228, 228, 229, 229,
618 231, 230, 232, 230, 230, 230, 233, 233, 234, 234,
619 235, 236, 236, 237, 237, 238, 238, 239, 239, 240,
620 240, 241, 241, 241, 241, 241, 241, 242, 242, 242,
621 242, 242, 242, 243, 243, 243, 243, 243, 244, 244,
622 244, 245, 245, 245, 246, 246, 247, 247, 247, 247,
623 247, 247, 247, 247, 248, 248, 249, 249, 249, 249,
624 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
625 249, 249, 249, 250, 250, 251, 251, 252, 252, 252,
626 253, 253, 254, 254, 255, 255, 256, 257, 257, 258,
627 258, 259, 260, 261, 261, 261, 262, 262, 262, 262,
628 263, 263, 263, 264, 264, 265, 265, 266, 266, 267,
629 267, 268, 268, 268, 268, 268, 268, 268, 269, 269,
630 270, 270, 270, 270, 271, 271, 272, 272, 273, 273,
631 273, 273, 273, 273, 273, 273, 273, 273, 274, 274,
632 275, 275, 275, 275, 276, 276, 276, 276, 276, 276,
633 276, 276, 277, 277, 277, 277, 278, 278, 280, 279,
634 281, 281, 282, 282, 283, 283, 284, 285, 286, 287,
638 static const short yyr2[] = { 0,
639 0, 3, 0, 2, 1, 1, 0, 2, 2, 0,
640 2, 1, 1, 1, 3, 3, 1, 1, 1, 1,
641 1, 1, 6, 0, 1, 1, 3, 2, 1, 0,
642 3, 1, 1, 1, 1, 4, 3, 4, 4, 1,
643 1, 1, 1, 1, 0, 13, 0, 14, 0, 13,
644 4, 0, 0, 6, 0, 0, 7, 0, 0, 7,
645 0, 0, 6, 0, 0, 6, 2, 2, 1, 3,
646 1, 3, 1, 1, 3, 1, 1, 3, 1, 4,
647 3, 6, 1, 3, 1, 1, 3, 1, 3, 1,
648 3, 3, 3, 4, 1, 1, 1, 1, 1, 3,
649 1, 3, 0, 2, 3, 2, 2, 0, 2, 4,
650 0, 3, 1, 3, 5, 3, 1, 0, 3, 0,
651 3, 0, 3, 3, 3, 1, 3, 1, 1, 2,
652 1, 1, 0, 3, 0, 3, 0, 1, 1, 1,
653 3, 1, 3, 0, 4, 5, 1, 3, 2, 3,
654 3, 4, 3, 5, 6, 1, 3, 1, 1, 2,
655 2, 3, 3, 3, 4, 1, 3, 4, 3, 0,
656 2, 0, 1, 0, 6, 1, 3, 0, 3, 0,
657 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
658 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
659 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
660 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
661 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
662 1, 1, 1, 1, 2, 5, 1, 2, 1, 2,
663 0, 6, 0, 6, 2, 2, 0, 1, 1, 2,
664 3, 1, 3, 0, 1, 6, 2, 1, 3, 1,
665 1, 1, 3, 2, 2, 3, 4, 1, 3, 2,
666 2, 3, 4, 1, 2, 2, 3, 4, 2, 2,
667 2, 2, 3, 1, 0, 1, 3, 2, 1, 1,
668 2, 3, 3, 4, 2, 3, 6, 1, 2, 2,
669 3, 3, 4, 4, 5, 3, 4, 4, 5, 2,
670 2, 3, 3, 1, 1, 1, 1, 1, 1, 1,
671 0, 1, 1, 3, 1, 1, 4, 0, 1, 1,
672 3, 1, 1, 6, 1, 3, 1, 4, 3, 3,
673 1, 2, 2, 1, 1, 1, 2, 1, 2, 2,
674 3, 1, 1, 2, 2, 3, 1, 2, 3, 1,
675 5, 3, 4, 2, 3, 2, 1, 3, 3, 1,
676 4, 1, 2, 3, 3, 3, 4, 3, 1, 3,
677 1, 1, 1, 1, 1, 1, 4, 4, 4, 4,
678 6, 4, 1, 1, 1, 1, 1, 2, 0, 3,
679 1, 3, 3, 4, 1, 1, 1, 1, 1, 1,
683 static const short yydefact[] = { 3,
684 1, 0, 0, 7, 4, 5, 6, 0, 406, 405,
685 73, 0, 69, 71, 76, 0, 0, 77, 412, 79,
686 0, 194, 0, 0, 61, 52, 196, 198, 199, 228,
687 200, 201, 202, 203, 210, 211, 212, 197, 205, 206,
688 209, 207, 208, 230, 231, 213, 214, 215, 216, 217,
689 224, 225, 226, 204, 227, 220, 221, 218, 219, 223,
690 229, 222, 30, 0, 183, 0, 184, 247, 185, 186,
691 0, 187, 188, 189, 191, 247, 247, 190, 182, 0,
692 42, 43, 44, 2, 10, 22, 10, 17, 18, 19,
693 0, 20, 21, 40, 41, 192, 195, 232, 0, 0,
694 233, 234, 0, 15, 0, 0, 83, 16, 0, 0,
695 220, 237, 0, 233, 234, 407, 410, 0, 0, 0,
696 0, 0, 0, 58, 0, 64, 0, 0, 409, 257,
697 408, 0, 241, 245, 243, 246, 0, 8, 9, 0,
698 193, 235, 0, 0, 268, 0, 99, 103, 261, 260,
699 262, 67, 68, 72, 70, 0, 81, 78, 344, 345,
700 321, 0, 319, 314, 0, 0, 315, 320, 0, 0,
701 0, 86, 85, 90, 285, 88, 284, 321, 298, 318,
702 239, 238, 0, 0, 137, 0, 101, 0, 0, 0,
703 0, 31, 32, 33, 34, 35, 0, 0, 0, 24,
704 0, 0, 0, 11, 14, 12, 13, 103, 264, 270,
705 0, 0, 37, 0, 0, 45, 0, 0, 265, 0,
706 271, 84, 0, 323, 0, 322, 310, 311, 321, 0,
707 0, 321, 299, 0, 285, 80, 0, 0, 289, 0,
708 282, 286, 290, 0, 0, 300, 240, 0, 51, 140,
709 0, 138, 139, 285, 142, 36, 62, 53, 0, 0,
710 65, 176, 178, 38, 258, 254, 0, 0, 25, 26,
711 29, 0, 0, 39, 47, 263, 269, 100, 0, 0,
712 399, 408, 395, 396, 393, 394, 0, 0, 0, 386,
713 0, 0, 102, 97, 0, 98, 333, 335, 337, 0,
714 341, 346, 353, 357, 360, 352, 372, 385, 0, 397,
715 413, 370, 0, 0, 0, 0, 104, 0, 266, 0,
716 295, 0, 272, 0, 0, 306, 326, 325, 0, 0,
717 312, 313, 0, 301, 0, 283, 87, 89, 91, 0,
718 288, 0, 0, 0, 291, 93, 92, 96, 95, 316,
719 317, 302, 236, 103, 0, 289, 0, 274, 280, 279,
720 281, 0, 0, 56, 59, 0, 0, 180, 255, 0,
721 28, 0, 0, 0, 0, 249, 0, 0, 0, 364,
722 367, 0, 0, 0, 0, 0, 0, 0, 366, 0,
723 0, 0, 0, 347, 346, 348, 342, 343, 354, 358,
724 0, 0, 0, 0, 381, 382, 383, 0, 384, 355,
725 373, 0, 398, 0, 106, 107, 108, 0, 267, 296,
726 273, 82, 307, 324, 308, 303, 0, 293, 287, 292,
727 0, 328, 94, 304, 49, 141, 143, 275, 289, 0,
728 276, 166, 170, 63, 54, 0, 0, 177, 66, 172,
729 179, 259, 256, 23, 27, 0, 252, 242, 250, 244,
730 108, 369, 0, 362, 0, 400, 401, 0, 379, 0,
731 0, 0, 194, 0, 0, 0, 131, 132, 0, 0,
732 126, 129, 128, 365, 336, 340, 339, 350, 349, 0,
733 411, 359, 376, 0, 374, 375, 378, 356, 0, 332,
734 0, 111, 105, 309, 305, 0, 294, 0, 329, 330,
735 0, 277, 0, 0, 0, 74, 0, 57, 60, 174,
736 0, 173, 251, 0, 111, 363, 0, 368, 0, 0,
737 0, 387, 0, 0, 392, 390, 388, 130, 0, 389,
738 351, 377, 338, 371, 0, 0, 109, 118, 297, 0,
739 0, 111, 278, 169, 0, 0, 167, 171, 0, 0,
740 181, 253, 118, 361, 402, 0, 403, 117, 380, 0,
741 0, 127, 0, 113, 0, 0, 0, 120, 327, 331,
742 120, 75, 168, 103, 0, 120, 404, 334, 391, 112,
743 0, 0, 0, 0, 0, 0, 122, 144, 0, 122,
744 114, 0, 116, 110, 119, 0, 0, 133, 0, 133,
745 0, 133, 0, 121, 0, 0, 0, 0, 135, 0,
746 0, 175, 135, 115, 124, 123, 125, 0, 0, 0,
747 0, 408, 0, 147, 0, 0, 50, 0, 134, 0,
748 46, 0, 149, 0, 0, 145, 0, 0, 48, 136,
749 0, 148, 146, 151, 150, 0, 0, 153, 0, 156,
750 158, 0, 159, 407, 0, 160, 0, 0, 152, 161,
751 0, 0, 163, 157, 162, 164, 0, 154, 0, 165,
755 static const short yydefgoto[] = { 682,
756 4, 1, 5, 84, 138, 204, 6, 205, 206, 86,
757 268, 269, 270, 207, 125, 192, 88, 89, 90, 91,
758 92, 316, 378, 93, 511, 94, 122, 363, 123, 446,
759 191, 447, 121, 362, 95, 197, 367, 12, 13, 515,
760 14, 17, 18, 106, 171, 172, 173, 174, 346, 293,
761 294, 146, 147, 216, 317, 502, 547, 548, 573, 574,
762 567, 578, 597, 608, 480, 481, 619, 630, 251, 342,
763 253, 610, 654, 634, 659, 660, 444, 517, 521, 522,
764 560, 261, 262, 368, 451, 96, 97, 98, 99, 254,
765 482, 182, 114, 201, 202, 128, 375, 376, 456, 370,
766 115, 266, 187, 149, 150, 360, 255, 176, 241, 242,
767 243, 177, 295, 352, 179, 225, 226, 465, 433, 508,
768 509, 499, 500, 297, 298, 299, 300, 301, 397, 398,
769 302, 303, 304, 305, 382, 306, 470, 411, 307, 308,
770 309, 310, 383, 466, 467, 311, 662, 312, 130, 119,
774 static const short yypact[] = {-32768,
775 -25, 136, 368, 1350,-32768,-32768,-32768, 181,-32768,-32768,
776 -32768, 94,-32768,-32768,-32768, 181, 110,-32768,-32768, 33,
777 2903,-32768, 182, 2903,-32768, 17,-32768,-32768,-32768,-32768,
778 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
779 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
780 -32768,-32768,-32768,-32768,-32768, -11,-32768,-32768,-32768,-32768,
781 -32768,-32768,-32768, 2903,-32768, 2903,-32768, 181,-32768,-32768,
782 108,-32768,-32768,-32768,-32768, 181, 181,-32768,-32768, 2903,
783 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
784 2903,-32768,-32768,-32768,-32768,-32768, 399,-32768, 2903, 408,
785 155, 192, 205,-32768, 136, 204,-32768,-32768, 368, 1152,
786 -32768, 233, 223,-32768,-32768, 266,-32768, 181, 305, 408,
787 211, 235, 264,-32768, 1445,-32768, 408, 339,-32768, 347,
788 -32768, 377,-32768, 347,-32768, 347, 408, 1247, 1247, 408,
789 -32768,-32768, 408, 408,-32768, 196,-32768, 259, 322, 409,
790 -32768,-32768,-32768,-32768,-32768, 181, 387,-32768,-32768,-32768,
791 386, 181,-32768,-32768, 181, 534,-32768,-32768, 403, 2903,
792 410, 445, 453,-32768, 360, 439,-32768, 386, 474,-32768,
793 -32768, 496, 2903, 497, 2319, 239, 470, 486, 492, 401,
794 404,-32768,-32768,-32768,-32768,-32768, 408, 282, 493, 2414,
795 488, 494, 288,-32768,-32768,-32768,-32768,-32768, 322, 409,
796 121, 141,-32768, 408, 3200, 1836, 1933, 3059,-32768, 2030,
797 -32768,-32768, 1152,-32768, 499, 122,-32768,-32768, 386, 181,
798 181, 386, 502, 421, 360,-32768, 1152, 1152, 360, 1741,
799 -32768, 454,-32768, 328, 80,-32768,-32768, 525,-32768,-32768,
800 504,-32768, 507, 380,-32768,-32768,-32768,-32768, 522, 524,
801 515,-32768,-32768,-32768,-32768, 518, 2903, 514, 520,-32768,
802 -32768, 2903, 2903,-32768, 1836,-32768,-32768,-32768, 3200, 3109,
803 -32768, 266,-32768,-32768,-32768,-32768, 544, 3200, 545,-32768,
804 549, 551,-32768,-32768, 3033,-32768, 550,-32768, 114, 3226,
805 -32768, 374, 382, 382, 535, 193,-32768,-32768, 273,-32768,
806 -32768,-32768, 555, 560, 562, 536,-32768, 408,-32768, 537,
807 -32768, 539,-32768, 540, 541, 552,-32768,-32768, 553, 547,
808 -32768,-32768, 80,-32768, 554,-32768, 453, 439,-32768, 439,
809 454, 548, 177, 2127,-32768, 556,-32768,-32768,-32768,-32768,
810 -32768, 557,-32768,-32768, 2509, 380, 1644,-32768, 322, 469,
811 -32768, 47, 47,-32768,-32768, 408, 564, 538, 561, 559,
812 -32768, 569, 2414, 408, 2611,-32768, 2713, 558, 36, 565,
813 -32768, 293, 108, 3200, 10, 3200, 1022, 762,-32768, 220,
814 3200, 3226, 3226,-32768,-32768, 268, 374, 374, 275, 275,
815 181, 3150, 181, 181,-32768,-32768,-32768, 181,-32768, 382,
816 -32768, 3200,-32768, 3200,-32768,-32768,-32768, 314,-32768,-32768,
817 -32768,-32768,-32768,-32768, 563, 568, 566,-32768,-32768,-32768,
818 573, 181,-32768,-32768, 1836,-32768,-32768, 469, 354, 2224,
819 -32768,-32768, 165,-32768,-32768, 47, 47,-32768,-32768, 530,
820 -32768,-32768,-32768,-32768,-32768, 317,-32768,-32768,-32768,-32768,
821 -32768,-32768, 181, 567, 3200, 570,-32768, 572, 550, 362,
822 3200, 579, 581, 575, 577, 578,-32768,-32768, 2903, 384,
823 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 268,
824 -32768,-32768,-32768, 157,-32768,-32768,-32768, 275, 583,-32768,
825 397, -8,-32768,-32768,-32768, 574,-32768, 590, 591,-32768,
826 571,-32768, 587, 592, 363,-32768, 1547,-32768,-32768,-32768,
827 594,-32768,-32768, 408, -8,-32768, 181,-32768, 108, 2808,
828 3200,-32768, 28, 3200,-32768,-32768,-32768,-32768, 892,-32768,
829 -32768,-32768,-32768,-32768, 108, 2903,-32768, 582,-32768, 181,
830 181, 576,-32768,-32768, 181, 593,-32768,-32768, 408, 605,
831 -32768,-32768, 582,-32768,-32768, 2903,-32768,-32768, 550, 3200,
832 600,-32768, 331,-32768, 103, 408, 3200, 521,-32768,-32768,
833 521,-32768,-32768,-32768, 629, 521,-32768, 550,-32768,-32768,
834 108, 2903, 3200, 336, 634, 3200, 584, 597, 3200, 584,
835 -32768, 601,-32768,-32768,-32768, 639, 632, 596, 615, 596,
836 613, 596, 3200,-32768, 644, 648, 337, 3200, 608, 49,
837 623,-32768, 608,-32768,-32768,-32768,-32768, 652, 3200, 625,
838 49, 651, 50,-32768, 653, 631,-32768, 627,-32768, 658,
839 -32768, 63,-32768, 272, 49,-32768, 208, 642,-32768,-32768,
840 49,-32768,-32768, 660,-32768, 222, 222,-32768, 419, 666,
841 -32768, 661,-32768,-32768, 668,-32768, 41, 222,-32768, 316,
842 432, 468,-32768, 666,-32768,-32768, 426,-32768, 430,-32768,
843 -32768, 670, 676,-32768
846 static const short yypgoto[] = {-32768,
847 -32768,-32768,-32768,-32768, 595,-32768,-32768, 678, 677,-32768,
848 -32768,-32768, 307, 679,-32768,-32768, 610, 612, 616,-32768,
849 -121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
850 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 580,-32768,
851 -6,-32768, 585,-32768, 461,-32768, 451, 452,-32768,-32768,
852 471, -108, 478, -188,-32768, 232,-32768, -458,-32768, 127,
853 -473, 175, -169, 142, 137, 206, -206, 120,-32768, -180,
854 -32768,-32768, -507,-32768, -190, -230, -318,-32768,-32768,-32768,
855 -32768,-32768, 381,-32768,-32768, -89,-32768,-32768,-32768, -3,
856 -18,-32768, 32,-32768,-32768, 407, 476, 68,-32768,-32768,
857 56,-32768, -93, -127, 344, 398, -187, 257, -182, -213,
858 -101, 511, 30, -267, 603, -137,-32768, 586,-32768,-32768,
859 -32768, -531, -204, -254,-32768, 105, -46, 466,-32768,-32768,
860 -278, 455,-32768,-32768, 472, -265, -205,-32768,-32768, -372,
861 -32768, -303,-32768,-32768, 242, 7, -23, -38, 423, 656,
869 static const short yytable[] = { 118,
870 100, 103, 113, 196, 252, 413, 148, 141, 15, 19,
871 296, 186, 271, 296, 15, 209, 211, 112, 198, 275,
872 120, 395, 19, 391, 379, 341, 343, 389, 203, 117,
873 497, 2, 132, 385, 107, 101, 320, 399, 400, 324,
874 245, 391, 110, 670, 445, 595, 208, 219, 221, 391,
875 124, 545, 336, 442, 510, 643, 644, 645, 631, 102,
876 126, 151, 127, 180, 606, 426, 563, 611, 643, 651,
877 645, 361, 462, 632, 129, 381, 137, 673, 570, 371,
878 443, 151, 129, 129, 646, 526, 628, 140, 151, 3,
879 381, 330, 587, 581, 333, 142, 546, 640, 151, 652,
880 104, 151, 350, 263, 151, 151, 175, 219, 221, 219,
881 221, 15, 633, -55, 351, 19, 108, 488, 602, 180,
882 471, 100, 484, 642, 117, 105, 359, 518, 519, 469,
883 217, 218, 131, 592, 100, 100, 485, 655, 8, 178,
884 345, 109, 341, 343, 498, 327, 392, 469, 593, 564,
885 220, 218, 393, 328, 347, 9, 101, 276, 151, 469,
886 10, 152, 19, 431, 248, 435, 235, 437, 227, 101,
887 101, 228, 579, 580, 222, 151, 180, 277, 11, 112,
888 102, 472, 475, 483, 9, 271, 344, 218, 531, 10,
889 180, 180, 542, 102, 102, 232, 494, 180, 153, 514,
890 9, 9, 213, 402, 403, 10, 116, 154, 501, 418,
891 656, 541, 318, 429, 164, 151, 533, 657, 404, 175,
892 405, 406, 407, 408, 656, 341, 167, 214, 209, 211,
893 409, 657, 632, 175, 175, 156, 331, 332, 181, 345,
894 157, 345, 350, 327, 658, 256, 632, 283, 284, 285,
895 286, 328, 178, 183, 351, 396, 585, 219, 441, 513,
896 528, 283, 284, 285, 286, -101, 178, 178, 374, 374,
897 214, 318, 263, 178, 661, -405, 569, 279, 280, 151,
898 457, 631, 412, 661, 661, 402, 403, 9, 264, 164,
899 -101, 215, 282, 281, 274, 661, 632, 661, 661, 661,
900 404, 167, 405, 406, 407, 408, 653, 283, 284, 285,
901 286, 209, 409, 214, 185, 588, 327, 151, 151, 214,
902 503, 287, 188, 523, 328, 657, 289, 151, 464, 571,
903 159, 217, 218, 160, 483, 151, 441, 590, 161, 162,
904 632, 163, 604, 627, 468, 214, 189, 9, 524, 164,
905 489, 490, 10, 165, 166, 283, 284, 285, 286, 439,
906 190, 167, 591, 357, 218, 239, 168, 214, 539, 240,
907 218, 374, 199, 374, 290, 291, 159, 16, 131, 160,
908 -248, 292, 169, 474, 112, 356, 200, 9, 603, 357,
909 218, 279, 10, 531, 555, 558, 223, 556, 532, 358,
910 151, 9, 483, 621, 131, 623, 282, 491, 624, 495,
911 496, 598, 224, 143, 491, 539, 600, 144, 220, 218,
912 540, 283, 284, 285, 286, 666, 667, 145, 531, 234,
913 562, 318, 131, 544, 656, 287, 516, 674, 491, 675,
914 289, 657, 459, 65, 459, 67, 236, 69, 70, 15,
915 668, 72, 73, 74, 75, 669, 632, 668, 78, 79,
916 538, 668, 680, 344, 218, 584, 681, 594, 676, 491,
917 656, 283, 284, 285, 286, 112, 237, 657, 440, 218,
918 677, 679, 133, 135, 238, 151, 210, 212, 290, 291,
919 468, 244, 632, 338, 340, 292, 486, 487, 134, 136,
920 246, 247, 215, 249, 678, 257, 575, 283, 284, 285,
921 286, 258, 259, 559, 65, 260, 67, 265, 69, 70,
922 151, 272, 72, 73, 74, 75, 568, 273, 334, 78,
923 79, 335, 353, 491, 326, 112, 159, 151, 355, 160,
924 354, 364, 576, 365, 229, 230, 366, 163, 582, 369,
925 372, 373, 575, 384, 386, 164, 491, 491, 387, 231,
926 388, 15, 568, 391, 414, 401, 415, 167, 416, 417,
927 449, 450, 168, 419, 420, 454, 421, 422, 423, 424,
928 427, 636, 425, 434, 428, 452, 432, 520, 568, 504,
929 -406, 461, 636, 453, 505, 463, 635, 527, 554, 583,
930 549, 529, 530, 112, 552, 636, 636, 635, 663, 507,
931 534, 535, 636, 536, 537, 550, 506, 663, 663, 543,
932 635, 635, 551, 553, 665, 281, 596, 635, 561, 663,
933 577, 663, 663, 663, 159, 545, 589, 160, 599, 21,
934 605, 279, 280, 609, 607, 614, 613, 618, 620, 622,
935 625, 473, 281, 164, 626, 629, 282, 637, 639, 641,
936 -407, 649, 647, 648, 650, 167, 664, 645, 670, 683,
937 671, 283, 284, 285, 286, 684, 615, 672, 7, 455,
938 85, 139, 87, 325, 155, 287, 288, 337, 322, 339,
939 289, 278, 525, 158, 616, 477, 478, 479, 27, 28,
940 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
941 39, 40, 41, 42, 43, 44, 45, 601, 46, 47,
942 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
943 58, 59, 60, 61, 193, 62, 194, 586, 290, 291,
944 195, 612, 638, 617, 572, 292, 448, 65, 377, 67,
945 68, 69, 70, 438, 348, 72, 73, 74, 75, 76,
946 410, 77, 78, 79, 159, 394, 390, 160, 233, 21,
947 565, 279, 280, 184, 349, 0, 0, 0, 0, 0,
948 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
949 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
950 0, 283, 284, 285, 286, 476, 0, 0, 0, 0,
951 0, 329, 0, 0, 0, 287, 288, 0, 0, 0,
952 289, 0, 0, 0, 0, 477, 478, 479, 27, 28,
953 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
954 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
955 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
956 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
957 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
958 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
959 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
960 0, 279, 280, 0, 0, 0, 0, 0, 0, 0,
961 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
962 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
963 0, 283, 284, 285, 286, 0, 0, 0, 0, 0,
964 0, 0, 0, 0, 0, 287, 288, 0, 0, 0,
965 289, 0, 0, 0, 0, 477, 478, 479, 27, 28,
966 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
967 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
968 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
969 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
970 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
971 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
972 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
973 0, 279, 280, 0, 0, 0, 0, 0, 0, 0,
974 0, 473, 281, 164, 0, 0, 282, 0, 0, 0,
975 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
976 0, 283, 284, 285, 286, 0, 0, 0, 0, 0,
977 0, 0, 0, 0, 0, 287, 288, 0, 0, 0,
978 289, 0, 0, 0, 0, 0, 0, 0, 27, 28,
979 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
980 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
981 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
982 58, 59, 60, 61, 0, 62, 0, 0, 290, 291,
983 0, 0, 0, 0, 0, 292, 0, 65, 0, 67,
984 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
985 0, 77, 78, 79, 159, 0, 0, 160, 0, 21,
986 0, 0, 161, 162, 0, 163, 0, 0, 0, 0,
987 0, 22, 0, 164, 0, 0, 0, 165, 166, 0,
988 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
989 168, 0, 0, 0, 0, 0, 0, 0, 0, 0,
990 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
991 0, 0, 0, 0, 0, 0, 0, 170, 27, 28,
992 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
993 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
994 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
995 58, 59, 60, 61, 21, 62, 0, 0, 0, 0,
996 0, 0, 0, 0, 0, 0, 22, 65, 0, 67,
997 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
998 0, 77, 78, 79, 0, 0, 0, 0, 0, 0,
999 0, 0, 0, 0, 23, 0, 24, 0, 0, 0,
1000 0, 0, 25, 0, 0, 0, 0, 0, 26, 0,
1001 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1002 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1003 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1004 53, 54, 55, 56, 57, 58, 59, 60, 61, 0,
1005 62, 0, 0, 0, 0, 63, 0, 21, 0, 64,
1006 0, 3, 65, 66, 67, 68, 69, 70, 71, 22,
1007 72, 73, 74, 75, 76, 0, 77, 78, 79, 80,
1008 81, 82, 83, 0, 0, 0, 0, 0, 0, 0,
1009 0, 0, 0, 0, 0, 0, 0, 23, 0, 24,
1010 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,
1011 0, 26, 0, 0, 0, 0, 27, 28, 29, 30,
1012 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1013 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1014 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1015 60, 61, 21, 62, 0, 0, 0, 0, 63, 0,
1016 0, 0, 64, 0, 22, 65, 66, 67, 68, 69,
1017 70, 71, 0, 72, 73, 74, 75, 76, 0, 77,
1018 78, 79, 80, 81, 82, 83, 0, 0, 0, 0,
1019 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,
1020 25, 0, 0, 0, 0, 0, 26, 0, 0, 0,
1021 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1022 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1023 0, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1024 55, 56, 57, 58, 59, 60, 61, 0, 62, 0,
1025 0, 0, 0, 0, 21, 0, 0, 64, 0, 0,
1026 65, 66, 67, 68, 69, 70, 22, 0, 72, 73,
1027 74, 75, 76, 0, 77, 78, 79, 80, 81, 82,
1028 83, 557, 0, 0, 0, 0, 0, 0, 0, 0,
1029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1031 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1032 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1033 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1034 53, 54, 55, 111, 57, 58, 59, 60, 61, 439,
1035 62, 21, 0, 357, 218, 0, 0, 0, 0, 0,
1036 0, 0, 65, 22, 67, 68, 69, 70, 131, 0,
1037 72, 73, 74, 75, 76, 0, 77, 78, 79, 0,
1038 81, 82, 83, 0, 0, 0, 0, 0, 0, 0,
1039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1041 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1042 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1043 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1044 111, 57, 58, 59, 60, 61, 239, 62, 21, 0,
1045 240, 218, 0, 0, 0, 0, 0, 0, 0, 65,
1046 22, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1047 75, 76, 250, 77, 78, 79, 0, 0, 0, 0,
1048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1051 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1052 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1053 49, 50, 51, 52, 53, 54, 55, 111, 57, 58,
1054 59, 60, 61, 21, 62, 0, 0, 0, 0, 0,
1055 0, 0, 0, 0, 0, 22, 65, 0, 67, 68,
1056 69, 70, 0, 0, 72, 73, 74, 75, 76, 250,
1057 77, 78, 79, 0, 0, 0, 0, 0, 0, 0,
1058 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1059 0, 0, 0, 0, 0, 0, 0, 0, 0, 314,
1060 315, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1061 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1062 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1063 54, 55, 111, 57, 58, 59, 60, 61, 0, 62,
1064 21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1065 0, 65, 22, 67, 68, 69, 70, 0, 0, 72,
1066 73, 74, 75, 76, 0, 77, 78, 79, 0, 319,
1067 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1069 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1070 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1071 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1072 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1073 57, 58, 59, 60, 61, 0, 62, 21, 0, 0,
1074 0, 0, 0, 0, 0, 0, 0, 0, 65, 22,
1075 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1076 76, 250, 77, 78, 79, 0, 323, 0, 0, 0,
1077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1079 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1080 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1081 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1082 50, 51, 52, 53, 54, 55, 111, 57, 58, 59,
1083 60, 61, 0, 62, 21, 0, 0, 0, 0, 0,
1084 0, 0, 0, 0, 0, 65, 22, 67, 68, 69,
1085 70, 0, 0, 72, 73, 74, 75, 76, 250, 77,
1086 78, 79, 0, 430, 0, 0, 0, 0, 0, 0,
1087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1089 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1090 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1091 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1092 53, 54, 55, 111, 57, 58, 59, 60, 61, 0,
1093 62, 21, 0, 0, 0, 0, 0, 0, 0, 0,
1094 0, 0, 65, 22, 67, 68, 69, 70, 0, 0,
1095 72, 73, 74, 75, 76, 250, 77, 78, 79, 0,
1096 512, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1097 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1098 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1099 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1100 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1101 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1102 111, 57, 58, 59, 60, 61, 21, 62, 0, 0,
1103 0, 0, 0, 0, 0, 0, 0, 0, 22, 65,
1104 0, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1105 75, 76, 250, 77, 78, 79, 0, 0, 0, 0,
1106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1108 0, 0, 0, 0, 0, 27, 28, 29, 30, 31,
1109 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1110 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1111 51, 52, 53, 54, 55, 111, 57, 58, 59, 60,
1112 61, 21, 62, 0, 0, 0, 0, 0, 0, 0,
1113 0, 0, 0, 22, 65, 0, 67, 68, 69, 70,
1114 0, 0, 72, 73, 74, 75, 76, 250, 77, 78,
1115 79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1118 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1119 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1120 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1121 111, 57, 58, 59, 60, 61, 21, 62, 0, 0,
1122 0, 0, 0, 0, 0, 0, 0, 0, 22, 65,
1123 0, 67, 68, 69, 70, 0, 267, 72, 73, 74,
1124 75, 76, 0, 77, 78, 79, 0, 0, 0, 0,
1125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1127 0, 0, 0, 0, 0, 27, 28, 29, 30, 31,
1128 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1129 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1130 51, 52, 53, 54, 55, 111, 57, 58, 59, 60,
1131 61, 0, 62, 0, 0, 0, 0, 0, 21, 0,
1132 0, 0, 0, 0, 65, 0, 67, 68, 69, 70,
1133 22, 0, 72, 73, 74, 75, 76, 436, 77, 78,
1134 79, 0, 0, 0, 0, 458, 0, 0, 0, 0,
1135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1136 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1137 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1138 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1139 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1140 49, 50, 51, 52, 53, 54, 55, 111, 57, 58,
1141 59, 60, 61, 0, 62, 0, 0, 0, 0, 0,
1142 21, 0, 0, 0, 0, 0, 65, 0, 67, 68,
1143 69, 70, 22, 0, 72, 73, 74, 75, 76, 0,
1144 77, 78, 79, 0, 0, 0, 0, 460, 0, 0,
1145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1146 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1147 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1148 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1149 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1150 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1151 57, 58, 59, 60, 61, 21, 62, 0, 0, 0,
1152 0, 0, 0, 0, 0, 0, 0, 22, 65, 0,
1153 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1154 76, 0, 77, 78, 79, 0, 0, 0, 0, 0,
1155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1157 0, 0, 0, 566, 27, 28, 29, 30, 31, 32,
1158 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1159 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1160 52, 53, 54, 55, 111, 57, 58, 59, 60, 61,
1161 21, 62, 0, 0, 0, 0, 0, 0, 0, 0,
1162 0, 0, 22, 65, 0, 67, 68, 69, 70, 0,
1163 0, 72, 73, 74, 75, 76, 0, 77, 78, 79,
1164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1166 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
1167 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1168 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1169 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1170 57, 58, 59, 60, 61, 0, 62, 0, 0, 0,
1171 0, 0, 0, 0, 0, 0, 0, 0, 65, 0,
1172 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1173 76, 0, 77, 78, 79, 159, 0, 0, 160, 0,
1174 0, 0, 279, 280, 0, 0, 0, 0, 0, 0,
1175 0, 0, 9, 281, 164, 350, 0, 282, 0, 0,
1176 0, 159, 0, 0, 160, 0, 167, 351, 279, 280,
1177 0, 0, 283, 284, 285, 286, 0, 0, 9, 281,
1178 164, 0, 0, 282, 0, 0, 287, 288, 0, 0,
1179 0, 289, 167, 0, 321, 0, 0, 0, 283, 284,
1180 285, 286, 0, 0, 0, 0, 0, 0, 0, 0,
1181 0, 159, 287, 288, 160, 0, 0, 289, 279, 280,
1182 0, 0, 0, 0, 0, 0, 0, 0, 9, 281,
1183 164, 0, 0, 282, 0, 0, 0, 0, 0, 290,
1184 291, 0, 167, 0, 380, 0, 292, 0, 283, 284,
1185 285, 286, 159, 0, 0, 160, 0, 0, 0, 279,
1186 280, 0, 287, 288, 0, 290, 291, 289, 0, 9,
1187 281, 164, 292, 0, 282, 0, 0, 0, 0, 0,
1188 0, 0, 0, 167, 0, 493, 0, 0, 0, 283,
1189 284, 285, 286, 0, 0, 0, 0, 0, 0, 0,
1190 0, 0, 159, 287, 288, 160, 0, 0, 289, 279,
1191 280, 0, 0, 0, 0, 290, 291, 0, 0, 9,
1192 281, 164, 292, 0, 282, 0, 0, 0, 159, 0,
1193 0, 160, 0, 167, 0, 279, 280, 0, 0, 283,
1194 284, 285, 286, 0, 0, 9, 0, 164, 0, 0,
1195 282, 0, 0, 287, 288, 0, 290, 291, 289, 167,
1196 0, 0, 0, 292, 0, 283, 284, 285, 286, 0,
1197 0, 0, 0, 0, 0, 0, 0, 0, 0, 287,
1198 0, 0, 0, 0, 289, 0, 0, 0, 0, 0,
1199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1200 0, 0, 0, 0, 0, 0, 290, 291, 0, 0,
1201 0, 0, 0, 292, 0, 0, 0, 0, 0, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1203 0, 0, 290, 291, 0, 0, 0, 0, 0, 292
1206 static const short yycheck[] = { 23,
1207 4, 8, 21, 125, 185, 309, 100, 97, 2, 3,
1208 215, 120, 200, 218, 8, 143, 144, 21, 127, 208,
1209 24, 300, 16, 14, 279, 239, 240, 295, 137, 23,
1210 408, 57, 71, 288, 16, 4, 217, 303, 304, 220,
1211 178, 14, 10, 3, 363, 577, 140, 149, 150, 14,
1212 62, 60, 235, 7, 432, 6, 7, 8, 10, 4,
1213 64, 100, 66, 110, 596, 333, 525, 599, 6, 7,
1214 8, 254, 37, 25, 68, 280, 80, 37, 51, 267,
1215 34, 120, 76, 77, 35, 463, 618, 91, 127, 115,
1216 295, 229, 566, 552, 232, 99, 105, 629, 137, 37,
1217 7, 140, 23, 197, 143, 144, 110, 209, 210, 211,
1218 212, 105, 620, 97, 35, 109, 7, 396, 592, 166,
1219 111, 125, 390, 631, 118, 32, 254, 446, 447, 384,
1220 10, 11, 25, 31, 138, 139, 391, 645, 3, 110,
1221 242, 32, 356, 357, 410, 24, 33, 402, 46, 527,
1222 10, 11, 39, 32, 244, 20, 125, 37, 197, 414,
1223 25, 7, 156, 344, 183, 354, 170, 355, 162, 138,
1224 139, 165, 550, 551, 156, 214, 223, 37, 43, 183,
1225 125, 386, 387, 388, 20, 373, 10, 11, 32, 25,
1226 237, 238, 36, 138, 139, 166, 402, 244, 7, 35,
1227 20, 20, 7, 11, 12, 25, 25, 3, 414, 318,
1228 3, 490, 216, 37, 22, 254, 471, 10, 26, 223,
1229 28, 29, 30, 31, 3, 439, 34, 32, 356, 357,
1230 38, 10, 25, 237, 238, 32, 230, 231, 6, 341,
1231 37, 343, 23, 24, 37, 7, 25, 40, 41, 42,
1232 43, 32, 223, 31, 35, 302, 560, 359, 360, 440,
1233 465, 40, 41, 42, 43, 7, 237, 238, 272, 273,
1234 32, 275, 366, 244, 647, 10, 531, 10, 11, 318,
1235 374, 10, 10, 656, 657, 11, 12, 20, 7, 22,
1236 32, 33, 25, 21, 7, 668, 25, 670, 671, 672,
1237 26, 34, 28, 29, 30, 31, 35, 40, 41, 42,
1238 43, 439, 38, 32, 10, 570, 24, 356, 357, 32,
1239 7, 54, 112, 7, 32, 10, 59, 366, 36, 534,
1240 3, 10, 11, 6, 539, 374, 438, 7, 11, 12,
1241 25, 14, 7, 7, 383, 32, 112, 20, 32, 22,
1242 397, 398, 25, 26, 27, 40, 41, 42, 43, 6,
1243 97, 34, 32, 10, 11, 6, 39, 32, 32, 10,
1244 11, 375, 34, 377, 107, 108, 3, 10, 25, 6,
1245 34, 114, 55, 387, 388, 6, 10, 20, 593, 10,
1246 11, 10, 25, 32, 32, 517, 10, 35, 37, 20,
1247 439, 20, 607, 610, 25, 612, 25, 401, 613, 403,
1248 404, 581, 27, 6, 408, 32, 586, 10, 10, 11,
1249 37, 40, 41, 42, 43, 656, 657, 20, 32, 27,
1250 524, 435, 25, 37, 3, 54, 443, 668, 432, 670,
1251 59, 10, 375, 116, 377, 118, 37, 120, 121, 443,
1252 32, 124, 125, 126, 127, 37, 25, 32, 131, 132,
1253 479, 32, 37, 10, 11, 559, 37, 576, 37, 463,
1254 3, 40, 41, 42, 43, 479, 32, 10, 10, 11,
1255 671, 672, 76, 77, 32, 524, 143, 144, 107, 108,
1256 529, 53, 25, 237, 238, 114, 392, 393, 76, 77,
1257 27, 6, 33, 7, 37, 20, 545, 40, 41, 42,
1258 43, 20, 112, 517, 116, 112, 118, 25, 120, 121,
1259 559, 34, 124, 125, 126, 127, 530, 34, 27, 131,
1260 132, 111, 8, 527, 36, 539, 3, 576, 32, 6,
1261 37, 20, 546, 20, 11, 12, 32, 14, 555, 32,
1262 37, 32, 591, 10, 10, 22, 550, 551, 10, 26,
1263 10, 555, 566, 14, 10, 31, 7, 34, 7, 34,
1264 7, 34, 39, 37, 36, 7, 37, 37, 27, 27,
1265 27, 620, 36, 27, 37, 25, 31, 58, 592, 27,
1266 10, 34, 631, 35, 27, 31, 620, 31, 7, 7,
1267 27, 32, 31, 607, 34, 644, 645, 631, 647, 37,
1268 32, 37, 651, 37, 37, 26, 51, 656, 657, 37,
1269 644, 645, 32, 37, 648, 21, 106, 651, 35, 668,
1270 49, 670, 671, 672, 3, 60, 37, 6, 10, 8,
1271 7, 10, 11, 47, 61, 7, 46, 52, 34, 37,
1272 7, 20, 21, 22, 7, 48, 25, 35, 7, 35,
1273 10, 35, 10, 33, 7, 34, 25, 8, 3, 0,
1274 10, 40, 41, 42, 43, 0, 45, 10, 1, 373,
1275 4, 87, 4, 223, 105, 54, 55, 237, 218, 238,
1276 59, 214, 461, 109, 63, 64, 65, 66, 67, 68,
1277 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1278 79, 80, 81, 82, 83, 84, 85, 591, 87, 88,
1279 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1280 99, 100, 101, 102, 125, 104, 125, 563, 107, 108,
1281 125, 600, 623, 607, 539, 114, 366, 116, 273, 118,
1282 119, 120, 121, 356, 244, 124, 125, 126, 127, 128,
1283 306, 130, 131, 132, 3, 300, 295, 6, 166, 8,
1284 529, 10, 11, 118, 244, -1, -1, -1, -1, -1,
1285 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1286 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1287 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
1288 -1, 226, -1, -1, -1, 54, 55, -1, -1, -1,
1289 59, -1, -1, -1, -1, 64, 65, 66, 67, 68,
1290 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1291 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1292 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1293 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1294 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1295 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1296 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1297 -1, 10, 11, -1, -1, -1, -1, -1, -1, -1,
1298 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1299 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1300 -1, 40, 41, 42, 43, -1, -1, -1, -1, -1,
1301 -1, -1, -1, -1, -1, 54, 55, -1, -1, -1,
1302 59, -1, -1, -1, -1, 64, 65, 66, 67, 68,
1303 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1304 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1305 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1306 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1307 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1308 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1309 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1310 -1, 10, 11, -1, -1, -1, -1, -1, -1, -1,
1311 -1, 20, 21, 22, -1, -1, 25, -1, -1, -1,
1312 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1313 -1, 40, 41, 42, 43, -1, -1, -1, -1, -1,
1314 -1, -1, -1, -1, -1, 54, 55, -1, -1, -1,
1315 59, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1316 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1317 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1318 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1319 99, 100, 101, 102, -1, 104, -1, -1, 107, 108,
1320 -1, -1, -1, -1, -1, 114, -1, 116, -1, 118,
1321 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1322 -1, 130, 131, 132, 3, -1, -1, 6, -1, 8,
1323 -1, -1, 11, 12, -1, 14, -1, -1, -1, -1,
1324 -1, 20, -1, 22, -1, -1, -1, 26, 27, -1,
1325 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
1326 39, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1327 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
1328 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
1329 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1330 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1331 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1332 99, 100, 101, 102, 8, 104, -1, -1, -1, -1,
1333 -1, -1, -1, -1, -1, -1, 20, 116, -1, 118,
1334 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1335 -1, 130, 131, 132, -1, -1, -1, -1, -1, -1,
1336 -1, -1, -1, -1, 48, -1, 50, -1, -1, -1,
1337 -1, -1, 56, -1, -1, -1, -1, -1, 62, -1,
1338 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1339 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1340 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1341 94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
1342 104, -1, -1, -1, -1, 109, -1, 8, -1, 113,
1343 -1, 115, 116, 117, 118, 119, 120, 121, 122, 20,
1344 124, 125, 126, 127, 128, -1, 130, 131, 132, 133,
1345 134, 135, 136, -1, -1, -1, -1, -1, -1, -1,
1346 -1, -1, -1, -1, -1, -1, -1, 48, -1, 50,
1347 -1, -1, -1, -1, -1, 56, -1, -1, -1, -1,
1348 -1, 62, -1, -1, -1, -1, 67, 68, 69, 70,
1349 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1350 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1351 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1352 101, 102, 8, 104, -1, -1, -1, -1, 109, -1,
1353 -1, -1, 113, -1, 20, 116, 117, 118, 119, 120,
1354 121, 122, -1, 124, 125, 126, 127, 128, -1, 130,
1355 131, 132, 133, 134, 135, 136, -1, -1, -1, -1,
1356 -1, -1, -1, -1, 50, -1, -1, -1, -1, -1,
1357 56, -1, -1, -1, -1, -1, 62, -1, -1, -1,
1358 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1359 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1360 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1361 96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
1362 -1, -1, -1, -1, 8, -1, -1, 113, -1, -1,
1363 116, 117, 118, 119, 120, 121, 20, -1, 124, 125,
1364 126, 127, 128, -1, 130, 131, 132, 133, 134, 135,
1365 136, 35, -1, -1, -1, -1, -1, -1, -1, -1,
1366 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1367 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1368 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1369 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1370 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1371 94, 95, 96, 97, 98, 99, 100, 101, 102, 6,
1372 104, 8, -1, 10, 11, -1, -1, -1, -1, -1,
1373 -1, -1, 116, 20, 118, 119, 120, 121, 25, -1,
1374 124, 125, 126, 127, 128, -1, 130, 131, 132, -1,
1375 134, 135, 136, -1, -1, -1, -1, -1, -1, -1,
1376 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1377 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1378 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1379 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1380 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1381 97, 98, 99, 100, 101, 102, 6, 104, 8, -1,
1382 10, 11, -1, -1, -1, -1, -1, -1, -1, 116,
1383 20, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1384 127, 128, 129, 130, 131, 132, -1, -1, -1, -1,
1385 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1386 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1387 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1388 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1389 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1390 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1391 100, 101, 102, 8, 104, -1, -1, -1, -1, -1,
1392 -1, -1, -1, -1, -1, 20, 116, -1, 118, 119,
1393 120, 121, -1, -1, 124, 125, 126, 127, 128, 129,
1394 130, 131, 132, -1, -1, -1, -1, -1, -1, -1,
1395 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1396 -1, -1, -1, -1, -1, -1, -1, -1, -1, 64,
1397 65, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1398 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1399 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1400 95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
1401 8, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1402 -1, 116, 20, 118, 119, 120, 121, -1, -1, 124,
1403 125, 126, 127, 128, -1, 130, 131, 132, -1, 37,
1404 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1405 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1406 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1407 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1408 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1409 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1410 98, 99, 100, 101, 102, -1, 104, 8, -1, -1,
1411 -1, -1, -1, -1, -1, -1, -1, -1, 116, 20,
1412 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1413 128, 129, 130, 131, 132, -1, 37, -1, -1, -1,
1414 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1415 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1416 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1417 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1418 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1419 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1420 101, 102, -1, 104, 8, -1, -1, -1, -1, -1,
1421 -1, -1, -1, -1, -1, 116, 20, 118, 119, 120,
1422 121, -1, -1, 124, 125, 126, 127, 128, 129, 130,
1423 131, 132, -1, 37, -1, -1, -1, -1, -1, -1,
1424 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1425 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1426 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1427 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1428 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1429 94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
1430 104, 8, -1, -1, -1, -1, -1, -1, -1, -1,
1431 -1, -1, 116, 20, 118, 119, 120, 121, -1, -1,
1432 124, 125, 126, 127, 128, 129, 130, 131, 132, -1,
1433 37, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1434 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1436 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1437 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1438 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1439 97, 98, 99, 100, 101, 102, 8, 104, -1, -1,
1440 -1, -1, -1, -1, -1, -1, -1, -1, 20, 116,
1441 -1, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1442 127, 128, 129, 130, 131, 132, -1, -1, -1, -1,
1443 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1444 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1445 -1, -1, -1, -1, -1, 67, 68, 69, 70, 71,
1446 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1447 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1448 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1449 102, 8, 104, -1, -1, -1, -1, -1, -1, -1,
1450 -1, -1, -1, 20, 116, -1, 118, 119, 120, 121,
1451 -1, -1, 124, 125, 126, 127, 128, 129, 130, 131,
1452 132, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1453 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1454 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1455 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1456 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1457 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1458 97, 98, 99, 100, 101, 102, 8, 104, -1, -1,
1459 -1, -1, -1, -1, -1, -1, -1, -1, 20, 116,
1460 -1, 118, 119, 120, 121, -1, 123, 124, 125, 126,
1461 127, 128, -1, 130, 131, 132, -1, -1, -1, -1,
1462 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1463 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1464 -1, -1, -1, -1, -1, 67, 68, 69, 70, 71,
1465 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1466 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1467 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1468 102, -1, 104, -1, -1, -1, -1, -1, 8, -1,
1469 -1, -1, -1, -1, 116, -1, 118, 119, 120, 121,
1470 20, -1, 124, 125, 126, 127, 128, 129, 130, 131,
1471 132, -1, -1, -1, -1, 35, -1, -1, -1, -1,
1472 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1473 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1474 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1475 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1476 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1477 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1478 100, 101, 102, -1, 104, -1, -1, -1, -1, -1,
1479 8, -1, -1, -1, -1, -1, 116, -1, 118, 119,
1480 120, 121, 20, -1, 124, 125, 126, 127, 128, -1,
1481 130, 131, 132, -1, -1, -1, -1, 35, -1, -1,
1482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1483 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1484 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1485 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1486 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1487 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1488 98, 99, 100, 101, 102, 8, 104, -1, -1, -1,
1489 -1, -1, -1, -1, -1, -1, -1, 20, 116, -1,
1490 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1491 128, -1, 130, 131, 132, -1, -1, -1, -1, -1,
1492 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1493 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1494 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
1495 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1496 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1497 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1498 8, 104, -1, -1, -1, -1, -1, -1, -1, -1,
1499 -1, -1, 20, 116, -1, 118, 119, 120, 121, -1,
1500 -1, 124, 125, 126, 127, 128, -1, 130, 131, 132,
1501 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1502 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1503 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
1504 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1505 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1506 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1507 98, 99, 100, 101, 102, -1, 104, -1, -1, -1,
1508 -1, -1, -1, -1, -1, -1, -1, -1, 116, -1,
1509 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1510 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1511 -1, -1, 10, 11, -1, -1, -1, -1, -1, -1,
1512 -1, -1, 20, 21, 22, 23, -1, 25, -1, -1,
1513 -1, 3, -1, -1, 6, -1, 34, 35, 10, 11,
1514 -1, -1, 40, 41, 42, 43, -1, -1, 20, 21,
1515 22, -1, -1, 25, -1, -1, 54, 55, -1, -1,
1516 -1, 59, 34, -1, 36, -1, -1, -1, 40, 41,
1517 42, 43, -1, -1, -1, -1, -1, -1, -1, -1,
1518 -1, 3, 54, 55, 6, -1, -1, 59, 10, 11,
1519 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1520 22, -1, -1, 25, -1, -1, -1, -1, -1, 107,
1521 108, -1, 34, -1, 36, -1, 114, -1, 40, 41,
1522 42, 43, 3, -1, -1, 6, -1, -1, -1, 10,
1523 11, -1, 54, 55, -1, 107, 108, 59, -1, 20,
1524 21, 22, 114, -1, 25, -1, -1, -1, -1, -1,
1525 -1, -1, -1, 34, -1, 36, -1, -1, -1, 40,
1526 41, 42, 43, -1, -1, -1, -1, -1, -1, -1,
1527 -1, -1, 3, 54, 55, 6, -1, -1, 59, 10,
1528 11, -1, -1, -1, -1, 107, 108, -1, -1, 20,
1529 21, 22, 114, -1, 25, -1, -1, -1, 3, -1,
1530 -1, 6, -1, 34, -1, 10, 11, -1, -1, 40,
1531 41, 42, 43, -1, -1, 20, -1, 22, -1, -1,
1532 25, -1, -1, 54, 55, -1, 107, 108, 59, 34,
1533 -1, -1, -1, 114, -1, 40, 41, 42, 43, -1,
1534 -1, -1, -1, -1, -1, -1, -1, -1, -1, 54,
1535 -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
1536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1537 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
1538 -1, -1, -1, 114, -1, -1, -1, -1, -1, -1,
1539 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1540 -1, -1, 107, 108, -1, -1, -1, -1, -1, 114
1542 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1543 #line 3 "/gnu/share/bison.simple"
1545 /* Skeleton output parser for bison,
1546 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1548 This program is free software; you can redistribute it and/or modify
1549 it under the terms of the GNU General Public License as published by
1550 the Free Software Foundation; either version 2, or (at your option)
1553 This program is distributed in the hope that it will be useful,
1554 but WITHOUT ANY WARRANTY; without even the implied warranty of
1555 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1556 GNU General Public License for more details.
1558 You should have received a copy of the GNU General Public License
1559 along with this program; if not, write to the Free Software
1560 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, 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. */
1569 #define alloca __builtin_alloca
1570 #else /* not GNU C. */
1571 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1573 #else /* not sparc */
1574 #if defined (MSDOS) && !defined (__TURBOC__)
1576 #else /* not MSDOS, or __TURBOC__ */
1580 #else /* not MSDOS, __TURBOC__, or _AIX */
1584 void *alloca (unsigned int);
1586 #else /* not __cplusplus */
1588 #endif /* not __cplusplus */
1590 #endif /* not _AIX */
1591 #endif /* not MSDOS, or __TURBOC__ */
1592 #endif /* not sparc. */
1593 #endif /* not GNU C. */
1594 #endif /* alloca not defined. */
1596 /* This is the parser code that is written into each bison parser
1597 when the %semantic_parser declaration is not specified in the grammar.
1598 It was written by Richard Stallman by simplifying the hairy parser
1599 used when %semantic_parser is specified. */
1601 /* Note: there must be only one dollar sign in this file.
1602 It is replaced by the list of actions, each action
1603 as one case of the switch. */
1605 #define yyerrok (yyerrstatus = 0)
1606 #define yyclearin (yychar = YYEMPTY)
1609 #define YYACCEPT return(0)
1610 #define YYABORT return(1)
1611 #define YYERROR goto yyerrlab1
1612 /* Like YYERROR except do call yyerror.
1613 This remains here temporarily to ease the
1614 transition to the new meaning of YYERROR, for GCC.
1615 Once GCC version 2 has supplanted version 1, this can go. */
1616 #define YYFAIL goto yyerrlab
1617 #define YYRECOVERING() (!!yyerrstatus)
1618 #define YYBACKUP(token, value) \
1620 if (yychar == YYEMPTY && yylen == 1) \
1621 { yychar = (token), yylval = (value); \
1622 yychar1 = YYTRANSLATE (yychar); \
1627 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1631 #define YYERRCODE 256
1634 #define YYLEX yylex()
1640 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1642 #define YYLEX yylex(&yylval, &yylloc)
1644 #else /* not YYLSP_NEEDED */
1646 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1648 #define YYLEX yylex(&yylval)
1650 #endif /* not YYLSP_NEEDED */
1653 /* If nonreentrant, generate the variables here */
1657 int yychar; /* the lookahead symbol */
1658 YYSTYPE yylval; /* the semantic value of the */
1659 /* lookahead symbol */
1662 YYLTYPE yylloc; /* location data for the lookahead */
1666 int yynerrs; /* number of parse errors so far */
1667 #endif /* not YYPURE */
1670 int yydebug; /* nonzero means print parse trace */
1671 /* Since this is uninitialized, it does not stop multiple parsers
1675 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1678 #define YYINITDEPTH 200
1681 /* YYMAXDEPTH is the maximum size the stacks can grow to
1682 (effective only if the built-in stack extension method is used). */
1689 #define YYMAXDEPTH 10000
1692 /* Prevent warning if -Wstrict-prototypes. */
1697 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1698 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1699 #else /* not GNU C or C++ */
1702 /* This is the most reliable way to avoid incompatibilities
1703 in available built-in functions on various systems. */
1705 __yy_memcpy (to, from, count)
1710 register char *f = from;
1711 register char *t = to;
1712 register int i = count;
1718 #else /* __cplusplus */
1720 /* This is the most reliable way to avoid incompatibilities
1721 in available built-in functions on various systems. */
1723 __yy_memcpy (char *to, char *from, int count)
1725 register char *f = from;
1726 register char *t = to;
1727 register int i = count;
1736 #line 196 "/gnu/share/bison.simple"
1738 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1739 into yyparse. The argument should have type void *.
1740 It should actually point to an object.
1741 Grammar actions can access the variable by casting it
1742 to the proper pointer type. */
1744 #ifdef YYPARSE_PARAM
1746 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1747 #define YYPARSE_PARAM_DECL
1748 #else /* not __cplusplus */
1749 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1750 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1751 #endif /* not __cplusplus */
1752 #else /* not YYPARSE_PARAM */
1753 #define YYPARSE_PARAM_ARG
1754 #define YYPARSE_PARAM_DECL
1755 #endif /* not YYPARSE_PARAM */
1758 yyparse(YYPARSE_PARAM_ARG)
1761 register int yystate;
1763 register short *yyssp;
1764 register YYSTYPE *yyvsp;
1765 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1766 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1768 short yyssa[YYINITDEPTH]; /* the state stack */
1769 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1771 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1772 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1775 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1776 YYLTYPE *yyls = yylsa;
1779 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1781 #define YYPOPSTACK (yyvsp--, yyssp--)
1784 int yystacksize = YYINITDEPTH;
1795 YYSTYPE yyval; /* the variable used to return */
1796 /* semantic values from the action */
1803 fprintf(stderr, "Starting parse\n");
1809 yychar = YYEMPTY; /* Cause a token to be read. */
1811 /* Initialize stack pointers.
1812 Waste one element of value and location stack
1813 so that they stay on the same level as the state stack.
1814 The wasted elements are never initialized. */
1822 /* Push a new state, which is found in yystate . */
1823 /* In all cases, when you get here, the value and location stacks
1824 have just been pushed. so pushing a state here evens the stacks. */
1829 if (yyssp >= yyss + yystacksize - 1)
1831 /* Give user a chance to reallocate the stack */
1832 /* Use copies of these so that the &'s don't force the real ones into memory. */
1833 YYSTYPE *yyvs1 = yyvs;
1834 short *yyss1 = yyss;
1836 YYLTYPE *yyls1 = yyls;
1839 /* Get the current used size of the three stacks, in elements. */
1840 int size = yyssp - yyss + 1;
1843 /* Each stack pointer address is followed by the size of
1844 the data in use in that stack, in bytes. */
1846 /* This used to be a conditional around just the two extra args,
1847 but that might be undefined if yyoverflow is a macro. */
1848 yyoverflow("parser stack overflow",
1849 &yyss1, size * sizeof (*yyssp),
1850 &yyvs1, size * sizeof (*yyvsp),
1851 &yyls1, size * sizeof (*yylsp),
1854 yyoverflow("parser stack overflow",
1855 &yyss1, size * sizeof (*yyssp),
1856 &yyvs1, size * sizeof (*yyvsp),
1860 yyss = yyss1; yyvs = yyvs1;
1864 #else /* no yyoverflow */
1865 /* Extend the stack our own way. */
1866 if (yystacksize >= YYMAXDEPTH)
1868 yyerror("parser stack overflow");
1872 if (yystacksize > YYMAXDEPTH)
1873 yystacksize = YYMAXDEPTH;
1874 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1875 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
1876 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1877 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
1879 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1880 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
1882 #endif /* no yyoverflow */
1884 yyssp = yyss + size - 1;
1885 yyvsp = yyvs + size - 1;
1887 yylsp = yyls + size - 1;
1892 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1895 if (yyssp >= yyss + yystacksize - 1)
1901 fprintf(stderr, "Entering state %d\n", yystate);
1907 /* Do appropriate processing given the current state. */
1908 /* Read a lookahead token if we need one and don't already have one. */
1911 /* First try to decide what to do without reference to lookahead token. */
1913 yyn = yypact[yystate];
1917 /* Not known => get a lookahead token if don't already have one. */
1919 /* yychar is either YYEMPTY or YYEOF
1920 or a valid token in external form. */
1922 if (yychar == YYEMPTY)
1926 fprintf(stderr, "Reading a token: ");
1931 /* Convert token to internal form (in yychar1) for indexing tables with */
1933 if (yychar <= 0) /* This means end of input. */
1936 yychar = YYEOF; /* Don't call YYLEX any more */
1940 fprintf(stderr, "Now at end of input.\n");
1945 yychar1 = YYTRANSLATE(yychar);
1950 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1951 /* Give the individual parser a way to print the precise meaning
1952 of a token, for further debugging info. */
1954 YYPRINT (stderr, yychar, yylval);
1956 fprintf (stderr, ")\n");
1962 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1967 /* yyn is what to do for this token type in this state.
1968 Negative => reduce, -yyn is rule number.
1969 Positive => shift, yyn is new state.
1970 New state is final state => don't bother to shift,
1971 just return success.
1972 0, or most negative number => error. */
1987 /* Shift the lookahead token. */
1991 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
1994 /* Discard the token being shifted unless it is eof. */
1995 if (yychar != YYEOF)
2003 /* count tokens shifted since error; after three, turn off error status. */
2004 if (yyerrstatus) yyerrstatus--;
2009 /* Do the default action for the current state. */
2012 yyn = yydefact[yystate];
2016 /* Do a reduction. yyn is the number of a rule to reduce with. */
2020 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2027 fprintf (stderr, "Reducing via rule %d (line %d), ",
2030 /* Print the symbols being reduced, and their result. */
2031 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2032 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2033 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2041 #line 383 "llgrammar.y"
2042 { lhExternals (yyvsp[0].interfacelist); ;
2045 #line 384 "llgrammar.y"
2046 { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
2049 #line 387 "llgrammar.y"
2050 { yyval.interfacelist = interfaceNodeList_new (); ;
2053 #line 388 "llgrammar.y"
2054 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2057 #line 395 "llgrammar.y"
2058 { yyval.interfacelist = interfaceNodeList_new (); ;
2061 #line 396 "llgrammar.y"
2062 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2065 #line 397 "llgrammar.y"
2066 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2069 #line 400 "llgrammar.y"
2070 { yyval.interfacelist = interfaceNodeList_new (); ;
2073 #line 401 "llgrammar.y"
2074 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2077 #line 410 "llgrammar.y"
2078 { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2079 /* assume subspecs are already processed, symbol table info in external file */
2083 #line 416 "llgrammar.y"
2084 { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
2087 #line 420 "llgrammar.y"
2088 { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
2091 #line 422 "llgrammar.y"
2092 { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
2095 #line 424 "llgrammar.y"
2096 { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
2099 #line 426 "llgrammar.y"
2100 { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
2103 #line 428 "llgrammar.y"
2104 { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
2107 #line 430 "llgrammar.y"
2108 { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
2111 #line 434 "llgrammar.y"
2112 { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
2115 #line 437 "llgrammar.y"
2116 { yyval.paramlist = paramNodeList_new (); ;
2119 #line 438 "llgrammar.y"
2120 { yyval.paramlist = yyvsp[0].paramlist; ;
2123 #line 442 "llgrammar.y"
2124 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
2127 #line 444 "llgrammar.y"
2128 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
2131 #line 447 "llgrammar.y"
2132 { yyval.param = markYieldParamNode (yyvsp[0].param); ;
2135 #line 448 "llgrammar.y"
2136 { yyval.param = yyvsp[0].param; ;
2139 #line 451 "llgrammar.y"
2140 { symtable_export (g_symtab, FALSE); ;
2143 #line 452 "llgrammar.y"
2144 { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
2147 #line 456 "llgrammar.y"
2148 { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
2151 #line 458 "llgrammar.y"
2152 { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
2155 #line 460 "llgrammar.y"
2156 { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
2159 #line 462 "llgrammar.y"
2160 { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
2163 #line 466 "llgrammar.y"
2164 { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
2167 #line 470 "llgrammar.y"
2168 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
2171 #line 472 "llgrammar.y"
2172 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
2175 #line 474 "llgrammar.y"
2176 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
2179 #line 477 "llgrammar.y"
2180 { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
2183 #line 478 "llgrammar.y"
2184 { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
2187 #line 481 "llgrammar.y"
2188 { yyval.typequal = qual_createPrintfLike (); ;
2191 #line 482 "llgrammar.y"
2192 { yyval.typequal = qual_createScanfLike (); ;
2195 #line 483 "llgrammar.y"
2196 { yyval.typequal = qual_createMessageLike (); ;
2199 #line 486 "llgrammar.y"
2200 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2203 #line 488 "llgrammar.y"
2204 { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls,
2205 yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2206 /* type, declarator, glovbls, privateinits,
2207 lets, checks, requires, modifies, ensures, claims */
2208 symtable_exitScope (g_symtab);
2212 #line 494 "llgrammar.y"
2213 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2216 #line 498 "llgrammar.y"
2217 { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist,
2218 yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2219 /* type, declarator, glovbls, privateinits,
2220 lets, checks, requires, modifies, ensures, claims */
2221 symtable_exitScope (g_symtab);
2225 #line 508 "llgrammar.y"
2226 { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
2229 #line 510 "llgrammar.y"
2230 { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate);
2231 symtable_exitScope (g_symtab); ;
2234 #line 513 "llgrammar.y"
2235 { yyval.claim = (claimNode) 0; ;
2238 #line 516 "llgrammar.y"
2239 {g_inTypeDef = TRUE; ;
2242 #line 516 "llgrammar.y"
2243 {g_inTypeDef = FALSE; ;
2246 #line 517 "llgrammar.y"
2247 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
2250 #line 518 "llgrammar.y"
2251 {g_inTypeDef = TRUE; ;
2254 #line 519 "llgrammar.y"
2255 {g_inTypeDef = FALSE; ;
2258 #line 520 "llgrammar.y"
2259 { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2262 #line 521 "llgrammar.y"
2263 {g_inTypeDef = TRUE; ;
2266 #line 522 "llgrammar.y"
2267 {g_inTypeDef = FALSE; ;
2270 #line 523 "llgrammar.y"
2271 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2274 #line 524 "llgrammar.y"
2275 {g_inTypeDef = TRUE; ;
2278 #line 524 "llgrammar.y"
2279 {g_inTypeDef = FALSE; ;
2282 #line 525 "llgrammar.y"
2283 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
2286 #line 528 "llgrammar.y"
2287 { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
2290 #line 529 "llgrammar.y"
2291 { g_inTypeDef = FALSE; ;
2294 #line 530 "llgrammar.y"
2295 { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
2298 #line 532 "llgrammar.y"
2299 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
2302 #line 534 "llgrammar.y"
2303 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
2306 #line 550 "llgrammar.y"
2307 { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
2310 #line 552 "llgrammar.y"
2311 { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
2314 #line 555 "llgrammar.y"
2315 { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
2318 #line 557 "llgrammar.y"
2319 { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
2322 #line 558 "llgrammar.y"
2323 { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
2326 #line 561 "llgrammar.y"
2327 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2330 #line 562 "llgrammar.y"
2331 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2334 #line 570 "llgrammar.y"
2335 { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
2338 #line 572 "llgrammar.y"
2339 { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
2342 #line 576 "llgrammar.y"
2343 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
2346 #line 578 "llgrammar.y"
2347 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
2350 #line 580 "llgrammar.y"
2351 { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
2354 #line 582 "llgrammar.y"
2355 { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
2358 #line 585 "llgrammar.y"
2359 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2362 #line 586 "llgrammar.y"
2363 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2366 #line 590 "llgrammar.y"
2367 { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
2370 #line 592 "llgrammar.y"
2371 { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
2374 #line 593 "llgrammar.y"
2375 { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
2378 #line 597 "llgrammar.y"
2379 { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
2382 #line 598 "llgrammar.y"
2383 { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
2386 #line 602 "llgrammar.y"
2387 { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
2390 #line 603 "llgrammar.y"
2391 { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
2394 #line 606 "llgrammar.y"
2395 { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
2398 #line 607 "llgrammar.y"
2399 { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
2402 #line 608 "llgrammar.y"
2403 { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
2404 yyvsp[-1].name, yyvsp[0].signature); ;
2407 #line 612 "llgrammar.y"
2408 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
2411 #line 613 "llgrammar.y"
2412 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
2415 #line 621 "llgrammar.y"
2416 { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
2419 #line 623 "llgrammar.y"
2420 { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
2423 #line 626 "llgrammar.y"
2424 { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
2427 #line 627 "llgrammar.y"
2428 { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
2431 #line 631 "llgrammar.y"
2432 { yyval.globals = varDeclarationNodeList_new (); ;
2435 #line 633 "llgrammar.y"
2436 { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
2439 #line 636 "llgrammar.y"
2440 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
2443 #line 637 "llgrammar.y"
2444 { yyval.vardeclaration = makeInternalStateNode (); ;
2447 #line 638 "llgrammar.y"
2448 { yyval.vardeclaration = makeFileSystemNode (); ;
2451 #line 641 "llgrammar.y"
2452 { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
2455 #line 642 "llgrammar.y"
2456 { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
2459 #line 646 "llgrammar.y"
2460 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
2463 #line 649 "llgrammar.y"
2464 { yyval.letdecls = letDeclNodeList_new (); ;
2467 #line 650 "llgrammar.y"
2468 { yyval.letdecls = yyvsp[-1].letdecls; ;
2471 #line 653 "llgrammar.y"
2472 { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
2475 #line 654 "llgrammar.y"
2476 { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
2479 #line 657 "llgrammar.y"
2480 { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
2483 #line 658 "llgrammar.y"
2484 { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
2487 #line 663 "llgrammar.y"
2488 { yyval.lclpredicate = (lclPredicateNode)0; ;
2491 #line 664 "llgrammar.y"
2492 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2495 #line 667 "llgrammar.y"
2496 { yyval.lclpredicate = (lclPredicateNode)0; ;
2499 #line 668 "llgrammar.y"
2500 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2503 #line 671 "llgrammar.y"
2504 { yyval.modify = (modifyNode)0; ;
2507 #line 672 "llgrammar.y"
2508 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
2511 #line 673 "llgrammar.y"
2512 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
2515 #line 674 "llgrammar.y"
2516 { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
2519 #line 677 "llgrammar.y"
2520 { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
2523 #line 678 "llgrammar.y"
2524 { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
2527 #line 681 "llgrammar.y"
2528 { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
2531 #line 682 "llgrammar.y"
2532 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
2535 #line 683 "llgrammar.y"
2536 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
2539 #line 684 "llgrammar.y"
2540 { yyval.storeref = makeStoreRefNodeInternal (); ;
2543 #line 685 "llgrammar.y"
2544 { yyval.storeref = makeStoreRefNodeSystem (); ;
2547 #line 688 "llgrammar.y"
2548 { yyval.lclpredicate = (lclPredicateNode)0; ;
2551 #line 689 "llgrammar.y"
2552 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2555 #line 692 "llgrammar.y"
2556 { yyval.lclpredicate = (lclPredicateNode)0; ;
2559 #line 693 "llgrammar.y"
2560 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2563 #line 696 "llgrammar.y"
2564 { yyval.paramlist = paramNodeList_new (); ;
2567 #line 697 "llgrammar.y"
2568 { yyval.paramlist = yyvsp[0].paramlist; ;
2571 #line 701 "llgrammar.y"
2572 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
2575 #line 702 "llgrammar.y"
2576 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
2579 #line 705 "llgrammar.y"
2580 { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
2583 #line 706 "llgrammar.y"
2584 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
2587 #line 709 "llgrammar.y"
2588 { yyval.program = (programNode)0; ;
2591 #line 710 "llgrammar.y"
2592 { yyval.program = yyvsp[-1].program; ;
2595 #line 711 "llgrammar.y"
2596 { yyval.program = yyvsp[-2].program; ;
2599 #line 714 "llgrammar.y"
2600 { yyval.program = makeProgramNode (yyvsp[0].stmt); ;
2603 #line 717 "llgrammar.y"
2604 { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
2607 #line 719 "llgrammar.y"
2608 { programNodeList x = programNodeList_new ();
2609 programNodeList_addh (x, yyvsp[-1].program);
2610 yyval.program = makeProgramNodeAction (x, ACT_ITER);
2614 #line 724 "llgrammar.y"
2615 { programNodeList x = programNodeList_new ();
2616 programNodeList_addh (x, yyvsp[-2].program);
2617 programNodeList_addh (x, yyvsp[0].program);
2618 yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE);
2622 #line 730 "llgrammar.y"
2623 { programNodeList x = programNodeList_new ();
2624 programNodeList_addh (x, yyvsp[-2].program);
2625 programNodeList_addh (x, yyvsp[0].program);
2626 yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE);
2630 #line 738 "llgrammar.y"
2631 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2634 #line 740 "llgrammar.y"
2635 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
2638 #line 742 "llgrammar.y"
2639 { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
2642 #line 744 "llgrammar.y"
2643 { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2646 #line 747 "llgrammar.y"
2647 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
2650 #line 748 "llgrammar.y"
2651 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
2654 #line 752 "llgrammar.y"
2655 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
2658 #line 753 "llgrammar.y"
2659 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
2662 #line 754 "llgrammar.y"
2663 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
2666 #line 755 "llgrammar.y"
2667 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
2670 #line 756 "llgrammar.y"
2671 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
2674 #line 758 "llgrammar.y"
2675 { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
2678 #line 760 "llgrammar.y"
2679 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
2682 #line 763 "llgrammar.y"
2683 { yyval.abstbody = (abstBodyNode)0; ;
2686 #line 764 "llgrammar.y"
2687 { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
2690 #line 765 "llgrammar.y"
2691 { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
2694 #line 766 "llgrammar.y"
2695 { yyval.abstbody = (abstBodyNode)0; ;
2698 #line 769 "llgrammar.y"
2699 { yyval.fcns = fcnNodeList_new (); ;
2702 #line 770 "llgrammar.y"
2703 { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
2706 #line 773 "llgrammar.y"
2707 { yyval.lclpredicate = (lclPredicateNode)0; ;
2710 #line 777 "llgrammar.y"
2711 { g_inTypeDef = FALSE; ;
2714 #line 778 "llgrammar.y"
2715 { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
2716 checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
2717 yyval.lclpredicate = yyvsp[-1].lclpredicate;
2718 symtable_exitScope (g_symtab);
2723 #line 786 "llgrammar.y"
2724 { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
2727 #line 788 "llgrammar.y"
2728 { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
2731 #line 791 "llgrammar.y"
2732 { declareForwardType (yyvsp[0].declare); ;
2735 #line 792 "llgrammar.y"
2736 { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
2739 #line 795 "llgrammar.y"
2740 { yyval.abstbody = (abstBodyNode)0; ;
2743 #line 796 "llgrammar.y"
2744 { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2747 #line 799 "llgrammar.y"
2748 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
2751 #line 800 "llgrammar.y"
2752 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
2755 #line 801 "llgrammar.y"
2756 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
2759 #line 802 "llgrammar.y"
2760 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
2763 #line 803 "llgrammar.y"
2764 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
2767 #line 804 "llgrammar.y"
2768 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
2771 #line 805 "llgrammar.y"
2772 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
2775 #line 806 "llgrammar.y"
2776 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
2779 #line 807 "llgrammar.y"
2780 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
2783 #line 808 "llgrammar.y"
2784 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
2787 #line 816 "llgrammar.y"
2788 { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
2791 #line 817 "llgrammar.y"
2792 { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
2795 #line 823 "llgrammar.y"
2796 { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
2799 #line 825 "llgrammar.y"
2800 { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
2803 #line 830 "llgrammar.y"
2804 { yyval.typequal = qual_createOut (); ;
2807 #line 831 "llgrammar.y"
2808 { yyval.typequal = qual_createUnused (); ;
2811 #line 832 "llgrammar.y"
2812 { yyval.typequal = qual_createSef (); ;
2815 #line 833 "llgrammar.y"
2816 { yyval.typequal = qual_createOnly (); ;
2819 #line 834 "llgrammar.y"
2820 { yyval.typequal = qual_createOwned (); ;
2823 #line 835 "llgrammar.y"
2824 { yyval.typequal = qual_createDependent (); ;
2827 #line 836 "llgrammar.y"
2828 { yyval.typequal = qual_createKeep (); ;
2831 #line 837 "llgrammar.y"
2832 { yyval.typequal = qual_createKept (); ;
2835 #line 838 "llgrammar.y"
2836 { yyval.typequal = qual_createObserver (); ;
2839 #line 839 "llgrammar.y"
2840 { yyval.typequal = qual_createExits (); ;
2843 #line 840 "llgrammar.y"
2844 { yyval.typequal = qual_createMayExit (); ;
2847 #line 841 "llgrammar.y"
2848 { yyval.typequal = qual_createTrueExit (); ;
2851 #line 842 "llgrammar.y"
2852 { yyval.typequal = qual_createFalseExit (); ;
2855 #line 843 "llgrammar.y"
2856 { yyval.typequal = qual_createNeverExit (); ;
2859 #line 844 "llgrammar.y"
2860 { yyval.typequal = qual_createOnly (); ;
2863 #line 845 "llgrammar.y"
2864 { yyval.typequal = qual_createShared (); ;
2867 #line 846 "llgrammar.y"
2868 { yyval.typequal = qual_createUnique (); ;
2871 #line 847 "llgrammar.y"
2872 { yyval.typequal = qual_createChecked (); ;
2875 #line 848 "llgrammar.y"
2876 { yyval.typequal = qual_createUnchecked (); ;
2879 #line 849 "llgrammar.y"
2880 { yyval.typequal = qual_createCheckedStrict (); ;
2883 #line 850 "llgrammar.y"
2884 { yyval.typequal = qual_createTrueNull (); ;
2887 #line 851 "llgrammar.y"
2888 { yyval.typequal = qual_createFalseNull (); ;
2891 #line 852 "llgrammar.y"
2892 { yyval.typequal = qual_createRelNull (); ;
2895 #line 853 "llgrammar.y"
2896 { yyval.typequal = qual_createRelDef (); ;
2899 #line 854 "llgrammar.y"
2900 { yyval.typequal = qual_createRefCounted (); ;
2903 #line 855 "llgrammar.y"
2904 { yyval.typequal = qual_createRefs (); ;
2907 #line 856 "llgrammar.y"
2908 { yyval.typequal = qual_createNewRef (); ;
2911 #line 857 "llgrammar.y"
2912 { yyval.typequal = qual_createKillRef (); ;
2915 #line 858 "llgrammar.y"
2916 { yyval.typequal = qual_createNull (); ;
2919 #line 859 "llgrammar.y"
2920 { yyval.typequal = qual_createNotNull (); ;
2923 #line 860 "llgrammar.y"
2924 { yyval.typequal = qual_createReturned (); ;
2927 #line 861 "llgrammar.y"
2928 { yyval.typequal = qual_createExposed (); ;
2931 #line 862 "llgrammar.y"
2932 { yyval.typequal = qual_createPartial (); ;
2935 #line 863 "llgrammar.y"
2936 { yyval.typequal = qual_createNullTerminated () ; ;
2939 #line 864 "llgrammar.y"
2940 { yyval.typequal = qual_createUndef (); ;
2943 #line 865 "llgrammar.y"
2944 { yyval.typequal = qual_createKilled (); ;
2947 #line 869 "llgrammar.y"
2948 { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
2951 #line 871 "llgrammar.y"
2952 { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
2955 #line 873 "llgrammar.y"
2956 { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
2959 #line 875 "llgrammar.y"
2960 { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
2963 #line 877 "llgrammar.y"
2964 { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
2967 #line 887 "llgrammar.y"
2968 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
2969 yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
2972 #line 891 "llgrammar.y"
2973 { yyval.count = 1; ;
2976 #line 892 "llgrammar.y"
2977 { yyval.count = yyvsp[-1].count + 1; ;
2980 #line 896 "llgrammar.y"
2981 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
2984 #line 898 "llgrammar.y"
2985 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
2988 #line 900 "llgrammar.y"
2989 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
2992 #line 902 "llgrammar.y"
2993 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
2996 #line 904 "llgrammar.y"
2997 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
3000 #line 906 "llgrammar.y"
3001 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
3004 #line 909 "llgrammar.y"
3005 { yyval.ltok = ltoken_undefined; ;
3008 #line 913 "llgrammar.y"
3009 { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
3012 #line 914 "llgrammar.y"
3013 { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
3016 #line 919 "llgrammar.y"
3017 { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
3020 #line 923 "llgrammar.y"
3021 { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
3024 #line 925 "llgrammar.y"
3025 { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
3028 #line 928 "llgrammar.y"
3032 #line 929 "llgrammar.y"
3036 #line 933 "llgrammar.y"
3037 { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
3040 #line 935 "llgrammar.y"
3041 { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
3044 #line 938 "llgrammar.y"
3045 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3048 #line 939 "llgrammar.y"
3049 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3052 #line 949 "llgrammar.y"
3053 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3056 #line 950 "llgrammar.y"
3057 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3060 #line 953 "llgrammar.y"
3061 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3064 #line 954 "llgrammar.y"
3065 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3068 #line 955 "llgrammar.y"
3069 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3072 #line 956 "llgrammar.y"
3073 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3076 #line 957 "llgrammar.y"
3077 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3080 #line 958 "llgrammar.y"
3081 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3084 #line 961 "llgrammar.y"
3085 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3088 #line 962 "llgrammar.y"
3089 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3092 #line 963 "llgrammar.y"
3093 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3096 #line 964 "llgrammar.y"
3097 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3100 #line 965 "llgrammar.y"
3101 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3104 #line 966 "llgrammar.y"
3105 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3108 #line 975 "llgrammar.y"
3109 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3112 #line 976 "llgrammar.y"
3113 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3116 #line 977 "llgrammar.y"
3117 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3120 #line 978 "llgrammar.y"
3121 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3124 #line 979 "llgrammar.y"
3125 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3128 #line 985 "llgrammar.y"
3129 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3132 #line 986 "llgrammar.y"
3133 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3136 #line 987 "llgrammar.y"
3137 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3140 #line 997 "llgrammar.y"
3141 { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3144 #line 998 "llgrammar.y"
3145 { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3148 #line 999 "llgrammar.y"
3149 { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
3152 #line 1004 "llgrammar.y"
3153 { yyval.abstDecl = (abstDeclaratorNode)0; ;
3156 #line 1005 "llgrammar.y"
3157 { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
3160 #line 1008 "llgrammar.y"
3161 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3164 #line 1009 "llgrammar.y"
3165 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3168 #line 1010 "llgrammar.y"
3169 { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
3172 #line 1011 "llgrammar.y"
3173 { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
3176 #line 1012 "llgrammar.y"
3177 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3180 #line 1013 "llgrammar.y"
3181 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3184 #line 1014 "llgrammar.y"
3185 { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
3188 #line 1015 "llgrammar.y"
3189 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3192 #line 1018 "llgrammar.y"
3193 { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
3196 #line 1019 "llgrammar.y"
3197 { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
3200 #line 1023 "llgrammar.y"
3201 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
3204 #line 1025 "llgrammar.y"
3205 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3208 #line 1027 "llgrammar.y"
3209 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3212 #line 1029 "llgrammar.y"
3213 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3216 #line 1031 "llgrammar.y"
3217 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
3218 opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3221 #line 1034 "llgrammar.y"
3222 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3225 #line 1036 "llgrammar.y"
3226 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3229 #line 1038 "llgrammar.y"
3230 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3233 #line 1040 "llgrammar.y"
3234 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3237 #line 1042 "llgrammar.y"
3238 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3241 #line 1044 "llgrammar.y"
3242 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3245 #line 1052 "llgrammar.y"
3246 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3249 #line 1054 "llgrammar.y"
3250 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3253 #line 1056 "llgrammar.y"
3254 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
3255 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3258 #line 1059 "llgrammar.y"
3259 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
3260 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3263 #line 1062 "llgrammar.y"
3264 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
3265 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3268 #line 1065 "llgrammar.y"
3269 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
3270 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3273 #line 1082 "llgrammar.y"
3274 { yyval.count = 0; ;
3277 #line 1086 "llgrammar.y"
3278 { yyval.count = 1; ;
3281 #line 1087 "llgrammar.y"
3282 { yyval.count = yyvsp[-2].count + 1; ;
3285 #line 1094 "llgrammar.y"
3286 { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3289 #line 1097 "llgrammar.y"
3290 { yyval.ltokenList = ltokenList_new (); ;
3293 #line 1101 "llgrammar.y"
3294 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3297 #line 1102 "llgrammar.y"
3298 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3301 #line 1105 "llgrammar.y"
3302 { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
3305 #line 1108 "llgrammar.y"
3306 { yyval.term = checkSort (yyvsp[0].term); ;
3309 #line 1115 "llgrammar.y"
3310 { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
3313 #line 1117 "llgrammar.y"
3314 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
3317 #line 1123 "llgrammar.y"
3318 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
3319 symtable_exitScope (g_symtab);
3323 #line 1127 "llgrammar.y"
3324 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3327 #line 1129 "llgrammar.y"
3328 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3331 #line 1133 "llgrammar.y"
3332 { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
3335 #line 1134 "llgrammar.y"
3336 { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
3339 #line 1142 "llgrammar.y"
3340 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
3343 #line 1145 "llgrammar.y"
3344 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3347 #line 1146 "llgrammar.y"
3348 { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
3351 #line 1149 "llgrammar.y"
3352 { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
3355 #line 1150 "llgrammar.y"
3356 { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
3359 #line 1154 "llgrammar.y"
3360 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3363 #line 1155 "llgrammar.y"
3364 { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3367 #line 1156 "llgrammar.y"
3368 { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
3371 #line 1157 "llgrammar.y"
3372 { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
3375 #line 1158 "llgrammar.y"
3376 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3379 #line 1159 "llgrammar.y"
3380 { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3383 #line 1162 "llgrammar.y"
3384 { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3387 #line 1167 "llgrammar.y"
3388 { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok);
3389 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3392 #line 1170 "llgrammar.y"
3393 { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3396 #line 1172 "llgrammar.y"
3397 { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok);
3398 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok));
3402 #line 1176 "llgrammar.y"
3403 { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3406 #line 1179 "llgrammar.y"
3407 { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3410 #line 1180 "llgrammar.y"
3411 { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3414 #line 1183 "llgrammar.y"
3415 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3418 #line 1184 "llgrammar.y"
3419 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3422 #line 1188 "llgrammar.y"
3423 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
3426 #line 1190 "llgrammar.y"
3427 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3430 #line 1192 "llgrammar.y"
3431 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3434 #line 1195 "llgrammar.y"
3435 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
3438 #line 1197 "llgrammar.y"
3439 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3442 #line 1199 "llgrammar.y"
3443 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3446 #line 1201 "llgrammar.y"
3447 { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
3451 #line 1204 "llgrammar.y"
3452 { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
3455 #line 1206 "llgrammar.y"
3456 { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3459 #line 1209 "llgrammar.y"
3460 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3463 #line 1210 "llgrammar.y"
3464 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3467 #line 1220 "llgrammar.y"
3468 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3471 #line 1221 "llgrammar.y"
3472 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3475 #line 1222 "llgrammar.y"
3476 { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
3479 #line 1223 "llgrammar.y"
3480 { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
3483 #line 1225 "llgrammar.y"
3484 { termNodeList x = termNodeList_new ();
3485 termNodeList_addh (x, yyvsp[-1].term);
3486 yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok);
3490 #line 1230 "llgrammar.y"
3491 { termNodeList x = termNodeList_new ();
3492 termNodeList_addh (x, yyvsp[-3].term);
3493 termNodeList_addh (x, yyvsp[-1].term);
3494 yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok);
3498 #line 1235 "llgrammar.y"
3499 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
3502 #line 1245 "llgrammar.y"
3503 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
3506 #line 1246 "llgrammar.y"
3507 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
3510 #line 1247 "llgrammar.y"
3511 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
3514 #line 1248 "llgrammar.y"
3515 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
3518 #line 1252 "llgrammar.y"
3519 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
3522 #line 1254 "llgrammar.y"
3523 { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
3526 #line 1257 "llgrammar.y"
3527 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
3528 si->kind = SPE_QUANT;
3529 symtable_enterScope (g_symtab, si); ;
3532 #line 1261 "llgrammar.y"
3533 { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
3536 #line 1264 "llgrammar.y"
3537 { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
3540 #line 1265 "llgrammar.y"
3541 { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
3544 #line 1268 "llgrammar.y"
3545 { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
3548 #line 1269 "llgrammar.y"
3549 { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
3552 /* the action file gets copied in in place of this dollarsign */
3553 #line 498 "/gnu/share/bison.simple"
3564 short *ssp1 = yyss - 1;
3565 fprintf (stderr, "state stack now");
3566 while (ssp1 != yyssp)
3567 fprintf (stderr, " %d", *++ssp1);
3568 fprintf (stderr, "\n");
3578 yylsp->first_line = yylloc.first_line;
3579 yylsp->first_column = yylloc.first_column;
3580 yylsp->last_line = (yylsp-1)->last_line;
3581 yylsp->last_column = (yylsp-1)->last_column;
3586 yylsp->last_line = (yylsp+yylen-1)->last_line;
3587 yylsp->last_column = (yylsp+yylen-1)->last_column;
3591 /* Now "shift" the result of the reduction.
3592 Determine what state that goes to,
3593 based on the state we popped back to
3594 and the rule number reduced by. */
3598 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3599 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3600 yystate = yytable[yystate];
3602 yystate = yydefgoto[yyn - YYNTBASE];
3606 yyerrlab: /* here on detecting error */
3609 /* If not already recovering from an error, report this error. */
3613 #ifdef YYERROR_VERBOSE
3614 yyn = yypact[yystate];
3616 if (yyn > YYFLAG && yyn < YYLAST)
3623 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3624 for (x = (yyn < 0 ? -yyn : 0);
3625 x < (sizeof(yytname) / sizeof(char *)); x++)
3626 if (yycheck[x + yyn] == x)
3627 size += strlen(yytname[x]) + 15, count++;
3628 msg = (char *) malloc(size + 15);
3631 strcpy(msg, "parse error");
3636 for (x = (yyn < 0 ? -yyn : 0);
3637 x < (sizeof(yytname) / sizeof(char *)); x++)
3638 if (yycheck[x + yyn] == x)
3640 strcat(msg, count == 0 ? ", expecting `" : " or `");
3641 strcat(msg, yytname[x]);
3650 yyerror ("parse error; also virtual memory exceeded");
3653 #endif /* YYERROR_VERBOSE */
3654 yyerror("parse error");
3658 yyerrlab1: /* here on error raised explicitly by an action */
3660 if (yyerrstatus == 3)
3662 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3664 /* return failure if at end of input */
3665 if (yychar == YYEOF)
3670 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3676 /* Else will try to reuse lookahead token
3677 after shifting the error token. */
3679 yyerrstatus = 3; /* Each real token shifted decrements this */
3683 yyerrdefault: /* current state does not do anything special for the error token. */
3686 /* This is wrong; only states that explicitly want error tokens
3687 should shift them. */
3688 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3689 if (yyn) goto yydefault;
3692 yyerrpop: /* pop the current state because it cannot handle the error token */
3694 if (yyssp == yyss) YYABORT;
3704 short *ssp1 = yyss - 1;
3705 fprintf (stderr, "Error: state stack now");
3706 while (ssp1 != yyssp)
3707 fprintf (stderr, " %d", *++ssp1);
3708 fprintf (stderr, "\n");
3714 yyn = yypact[yystate];
3719 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3738 fprintf(stderr, "Shifting error token, ");
3749 #line 1284 "llgrammar.y"
3752 # include "bison.reset"
3755 ** yytext is set in lex scanner
3756 ** extern YYSTYPE yylval;
3757 ** yylval is defined by code generated by bison
3760 void ylerror (char *s)
3763 ** This resetting of the left context is very important when multiple
3764 ** files are to be parsed. We do not want failures to propagate.
3765 ** Lex/Yacc does not reset the flags when the parsing goes bad.
3770 lclfatalerror (yllval.ltok,
3771 message ("%s: Token code: %s, Token String: %s",
3772 cstring_fromChars (s),
3773 ltoken_unparseCodeName (yllval.ltok),
3774 ltoken_getRawString (yllval.ltok)));
3778 static void yyprint (FILE *f, int t, YYSTYPE value)
3780 fprintf (f, " type: %d (%s)", t,
3781 cstring_toCharsSafe (ltoken_getRawString (value.ltok)));