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_TEMPREF 357
115 #define LLT_NEWREF 358
116 #define LLT_PRIVATE 359
117 #define LLT_REQUIRES 360
118 #define LLT_RESULT 361
119 #define LLT_SIZEOF 362
121 #define LLT_TAGGEDUNION 364
124 #define LLT_TYPEDEF 367
125 #define LLT_UNCHANGED 368
128 #define LLT_CONST 371
129 #define LLT_DOUBLE 372
131 #define LLT_FLOAT 374
134 #define LLT_YIELD 377
136 #define LLT_SHORT 379
137 #define LLT_SIGNED 380
138 #define LLT_UNKNOWN 381
139 #define LLT_STRUCT 382
140 #define LLT_TELIPSIS 383
141 #define LLT_UNION 384
142 #define LLT_UNSIGNED 385
144 #define LLT_VOLATILE 387
145 #define LLT_PRINTFLIKE 388
146 #define LLT_SCANFLIKE 389
147 #define LLT_MESSAGELIKE 390
149 #line 36 "llgrammar.y"
152 # include "bison.reset"
154 # include "lclintMacros.nf"
155 # include "llbasic.h"
156 # include "lclscan.h"
157 # include "checking.h"
158 # include "lslparse.h"
160 # include "usymtab_interface.h"
163 static /*@unused@*/ void yyprint ();
167 void ylerror (char *) /*@modifies *g_msgstream@*/ ;
170 bool g_inTypeDef = FALSE;
172 /*@constant int YYDEBUG;@*/
176 # define YYPRINT(file, type, value) yyprint (file, type, value)
178 # include "bison.head"
181 #line 68 "llgrammar.y"
184 ltoken ltok; /* a leaf is also an ltoken */
187 /*@only@*/ ltokenList ltokenList;
188 /*@only@*/ abstDeclaratorNode abstDecl;
189 /*@only@*/ declaratorNode declare;
190 /*@only@*/ declaratorNodeList declarelist;
191 /*@only@*/ typeExpr typeexpr;
192 /*@only@*/ arrayQualNode array;
193 /*@only@*/ quantifierNode quantifier;
194 /*@only@*/ quantifierNodeList quantifiers;
195 /*@only@*/ varNode var;
196 /*@only@*/ varNodeList vars;
197 /*@only@*/ storeRefNode storeref;
198 /*@only@*/ storeRefNodeList storereflist;
199 /*@only@*/ termNode term;
200 /*@only@*/ termNodeList termlist;
201 /*@only@*/ programNode program;
202 /*@only@*/ stmtNode stmt;
203 /*@only@*/ claimNode claim;
204 /*@only@*/ typeNode type;
205 /*@only@*/ iterNode iter;
206 /*@only@*/ fcnNode fcn;
207 /*@only@*/ fcnNodeList fcns;
208 /*@only@*/ letDeclNode letdecl;
209 /*@only@*/ letDeclNodeList letdecls;
210 /*@only@*/ lclPredicateNode lclpredicate;
211 /*@only@*/ modifyNode modify;
212 /*@only@*/ paramNode param;
213 /*@only@*/ paramNodeList paramlist;
214 /*@only@*/ declaratorInvNodeList declaratorinvs;
215 /*@only@*/ declaratorInvNode declaratorinv;
216 /*@only@*/ abstBodyNode abstbody;
217 /*@only@*/ abstractNode abstract;
218 /*@only@*/ exposedNode exposed;
219 /* taggedUnionNode taggedunion; */
220 /*@only@*/ globalList globals;
221 /*@only@*/ constDeclarationNode constdeclaration;
222 /*@only@*/ varDeclarationNode vardeclaration;
223 /*@only@*/ varDeclarationNodeList vardeclarationlist;
224 /*@only@*/ initDeclNodeList initdecls;
225 /*@only@*/ initDeclNode initdecl;
226 /*@only@*/ stDeclNodeList structdecls;
227 /*@only@*/ stDeclNode structdecl;
228 /*@only@*/ strOrUnionNode structorunion;
229 /*@only@*/ enumSpecNode enumspec;
230 /*@only@*/ lclTypeSpecNode lcltypespec;
231 /*@only@*/ typeNameNode typname;
232 /*@only@*/ opFormNode opform;
233 /*@only@*/ sigNode signature;
234 /*@only@*/ nameNode name;
235 /*@only@*/ typeNameNodeList namelist;
236 /*@only@*/ replaceNode replace;
237 /*@only@*/ replaceNodeList replacelist;
238 /*@only@*/ renamingNode renaming;
239 /*@only@*/ traitRefNode traitref;
240 /*@only@*/ traitRefNodeList traitreflist;
241 /*@only@*/ importNode import;
242 /*@only@*/ importNodeList importlist;
243 /*@only@*/ interfaceNode iface;
244 /*@only@*/ interfaceNodeList interfacelist;
245 /*@only@*/ CTypesNode ctypes;
262 #define YYFLAG -32768
265 #define YYTRANSLATE(x) ((unsigned)(x) <= 390 ? yytranslate[x] : 290)
267 static const short yytranslate[] = { 0,
268 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
269 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
270 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
271 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
272 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
273 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
274 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
275 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
276 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
277 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
278 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
279 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
280 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
281 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
282 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
283 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
284 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
285 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
286 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
287 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
288 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
289 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
290 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
291 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
292 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
293 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
294 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
295 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
296 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
297 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
298 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
299 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
300 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
301 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
302 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
303 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
304 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
305 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
306 126, 127, 128, 129, 130, 131, 132, 133, 134, 135
310 static const short yyprhs[] = { 0,
311 0, 1, 5, 6, 9, 11, 13, 14, 17, 20,
312 21, 24, 26, 28, 30, 34, 38, 40, 42, 44,
313 46, 48, 50, 57, 58, 60, 62, 66, 69, 71,
314 72, 76, 78, 80, 82, 84, 89, 93, 98, 103,
315 105, 107, 109, 111, 113, 114, 128, 129, 144, 145,
316 159, 164, 165, 166, 173, 174, 175, 183, 184, 185,
317 193, 194, 195, 202, 203, 204, 211, 214, 217, 219,
318 223, 225, 229, 231, 233, 237, 239, 241, 245, 247,
319 252, 256, 263, 265, 269, 271, 273, 277, 279, 283,
320 285, 289, 293, 297, 302, 304, 306, 308, 310, 312,
321 316, 318, 322, 323, 326, 330, 333, 336, 337, 340,
322 345, 346, 350, 352, 356, 362, 366, 368, 369, 373,
323 374, 378, 379, 383, 387, 391, 393, 397, 399, 401,
324 404, 406, 408, 409, 413, 414, 418, 419, 421, 423,
325 425, 429, 431, 435, 436, 441, 447, 449, 453, 456,
326 460, 464, 469, 473, 479, 486, 488, 492, 494, 496,
327 499, 502, 506, 510, 514, 519, 521, 525, 530, 534,
328 535, 538, 539, 541, 542, 549, 551, 555, 556, 560,
329 561, 565, 567, 569, 571, 573, 575, 577, 579, 581,
330 583, 585, 587, 590, 592, 594, 596, 598, 600, 602,
331 604, 606, 608, 610, 612, 614, 616, 618, 620, 622,
332 624, 626, 628, 630, 632, 634, 636, 638, 640, 642,
333 644, 646, 648, 650, 652, 654, 656, 658, 660, 662,
334 664, 666, 668, 670, 673, 679, 681, 684, 686, 689,
335 690, 697, 698, 705, 708, 711, 712, 714, 716, 719,
336 723, 725, 729, 730, 732, 739, 742, 744, 748, 750,
337 752, 754, 758, 761, 764, 768, 773, 775, 779, 782,
338 785, 789, 794, 796, 799, 802, 806, 811, 814, 817,
339 820, 823, 827, 829, 830, 832, 836, 839, 841, 843,
340 846, 850, 854, 859, 862, 866, 873, 875, 878, 881,
341 885, 889, 894, 899, 905, 909, 914, 919, 925, 928,
342 931, 935, 939, 941, 943, 945, 947, 949, 951, 953,
343 954, 956, 958, 962, 964, 966, 971, 972, 974, 976,
344 980, 982, 984, 991, 993, 997, 999, 1004, 1008, 1012,
345 1014, 1017, 1020, 1022, 1024, 1026, 1029, 1031, 1034, 1037,
346 1041, 1043, 1045, 1048, 1051, 1055, 1057, 1060, 1064, 1066,
347 1072, 1076, 1081, 1084, 1088, 1091, 1093, 1097, 1101, 1103,
348 1108, 1110, 1113, 1117, 1121, 1125, 1130, 1134, 1136, 1140,
349 1142, 1144, 1146, 1148, 1150, 1152, 1157, 1162, 1167, 1172,
350 1179, 1184, 1186, 1188, 1190, 1192, 1194, 1197, 1198, 1202,
351 1204, 1208, 1212, 1217, 1219, 1221, 1223, 1225, 1227, 1229,
355 static const short yyrhs[] = { -1,
356 138, 137, 140, 0, 0, 138, 139, 0, 143, 0,
357 144, 0, 0, 145, 141, 0, 150, 141, 0, 0,
358 141, 142, 0, 145, 0, 150, 0, 144, 0, 57,
359 174, 7, 0, 114, 178, 7, 0, 153, 0, 154,
360 0, 155, 0, 157, 0, 160, 0, 146, 0, 121,
361 284, 10, 147, 37, 7, 0, 0, 148, 0, 149,
362 0, 148, 32, 149, 0, 122, 243, 0, 243, 0,
363 0, 108, 151, 152, 0, 153, 0, 154, 0, 155,
364 0, 157, 0, 50, 226, 188, 7, 0, 226, 188,
365 7, 0, 116, 226, 188, 7, 0, 132, 226, 188,
366 7, 0, 162, 0, 171, 0, 133, 0, 134, 0,
367 135, 0, 0, 226, 239, 190, 158, 34, 192, 194,
368 198, 199, 200, 203, 204, 35, 0, 0, 156, 226,
369 239, 190, 159, 34, 192, 194, 198, 199, 200, 203,
370 204, 35, 0, 0, 48, 286, 10, 205, 37, 190,
371 161, 34, 194, 199, 208, 203, 35, 0, 48, 283,
372 286, 7, 0, 0, 0, 62, 163, 111, 20, 164,
373 213, 0, 0, 0, 62, 165, 97, 111, 20, 166,
374 213, 0, 0, 0, 97, 62, 167, 111, 20, 168,
375 213, 0, 0, 0, 56, 169, 111, 20, 170, 213,
376 0, 0, 0, 112, 226, 172, 218, 173, 7, 0,
377 229, 7, 0, 237, 7, 0, 175, 0, 174, 32,
378 175, 0, 177, 0, 3, 177, 3, 0, 43, 0,
379 177, 0, 176, 32, 177, 0, 282, 0, 179, 0,
380 178, 32, 179, 0, 288, 0, 288, 10, 181, 37,
381 0, 10, 180, 37, 0, 10, 180, 37, 10, 181,
382 37, 0, 288, 0, 180, 32, 288, 0, 183, 0,
383 182, 0, 182, 32, 183, 0, 244, 0, 182, 32,
384 244, 0, 184, 0, 183, 32, 184, 0, 244, 53,
385 222, 0, 244, 53, 185, 0, 244, 53, 185, 255,
386 0, 289, 0, 248, 0, 187, 0, 259, 0, 189,
387 0, 188, 32, 189, 0, 239, 0, 239, 33, 186,
388 0, 0, 190, 191, 0, 226, 188, 7, 0, 64,
389 7, 0, 65, 7, 0, 0, 192, 193, 0, 104,
390 226, 188, 7, 0, 0, 60, 195, 7, 0, 196,
391 0, 195, 32, 196, 0, 284, 31, 197, 46, 259,
392 0, 284, 46, 259, 0, 226, 0, 0, 49, 258,
393 7, 0, 0, 105, 258, 7, 0, 0, 61, 63,
394 7, 0, 61, 45, 7, 0, 61, 201, 7, 0,
395 202, 0, 201, 32, 202, 0, 259, 0, 227, 0,
396 66, 227, 0, 64, 0, 65, 0, 0, 52, 258,
397 7, 0, 0, 48, 258, 7, 0, 0, 206, 0,
398 207, 0, 128, 0, 207, 32, 128, 0, 243, 0,
399 207, 32, 243, 0, 0, 47, 34, 209, 35, 0,
400 47, 34, 209, 7, 35, 0, 210, 0, 10, 209,
401 37, 0, 209, 6, 0, 209, 8, 209, 0, 209,
402 7, 209, 0, 283, 10, 211, 37, 0, 283, 10,
403 37, 0, 284, 33, 283, 10, 37, 0, 284, 33,
404 283, 10, 211, 37, 0, 212, 0, 211, 32, 212,
405 0, 276, 0, 284, 0, 3, 212, 0, 212, 3,
406 0, 212, 3, 212, 0, 10, 212, 37, 0, 283,
407 10, 37, 0, 283, 10, 211, 37, 0, 7, 0,
408 34, 214, 35, 0, 34, 176, 35, 7, 0, 34,
409 35, 7, 0, 0, 214, 157, 0, 0, 216, 0,
410 0, 58, 217, 278, 10, 258, 37, 0, 219, 0,
411 218, 32, 219, 0, 0, 239, 220, 221, 0, 0,
412 34, 215, 35, 0, 131, 0, 115, 0, 117, 0,
413 119, 0, 120, 0, 123, 0, 124, 0, 125, 0,
414 130, 0, 126, 0, 222, 0, 223, 222, 0, 20,
415 0, 223, 0, 67, 0, 78, 0, 68, 0, 69,
416 0, 71, 0, 72, 0, 73, 0, 74, 0, 95,
417 0, 79, 0, 80, 0, 82, 0, 83, 0, 81,
418 0, 75, 0, 76, 0, 77, 0, 87, 0, 88,
419 0, 89, 0, 90, 0, 91, 0, 99, 0, 100,
420 0, 97, 0, 98, 0, 103, 0, 101, 0, 92,
421 0, 93, 0, 94, 0, 96, 0, 70, 0, 84,
422 0, 85, 0, 224, 0, 229, 0, 237, 0, 225,
423 226, 0, 8, 227, 31, 227, 8, 0, 226, 0,
424 226, 228, 0, 6, 0, 228, 6, 0, 0, 127,
425 232, 230, 34, 233, 35, 0, 0, 129, 232, 231,
426 34, 233, 35, 0, 127, 285, 0, 129, 285, 0,
427 0, 285, 0, 234, 0, 233, 234, 0, 226, 235,
428 7, 0, 239, 0, 235, 32, 239, 0, 0, 32,
429 0, 118, 232, 34, 238, 236, 35, 0, 118, 285,
430 0, 25, 0, 238, 32, 25, 0, 241, 0, 240,
431 0, 284, 0, 10, 240, 37, 0, 6, 240, 0,
432 240, 247, 0, 240, 10, 37, 0, 240, 10, 206,
433 37, 0, 20, 0, 10, 241, 37, 0, 6, 241,
434 0, 241, 247, 0, 241, 10, 37, 0, 241, 10,
435 206, 37, 0, 20, 0, 6, 242, 0, 242, 247,
436 0, 242, 10, 37, 0, 242, 10, 206, 37, 0,
437 226, 242, 0, 226, 240, 0, 226, 245, 0, 226,
438 245, 0, 66, 226, 245, 0, 248, 0, 0, 246,
439 0, 10, 246, 37, 0, 6, 246, 0, 6, 0,
440 247, 0, 246, 247, 0, 246, 10, 37, 0, 10,
441 206, 37, 0, 246, 10, 206, 37, 0, 11, 36,
442 0, 11, 187, 36, 0, 55, 27, 110, 27, 51,
443 27, 0, 251, 0, 27, 251, 0, 251, 27, 0,
444 27, 251, 27, 0, 249, 252, 250, 0, 27, 249,
445 252, 250, 0, 249, 252, 250, 27, 0, 27, 249,
446 252, 250, 27, 0, 11, 252, 36, 0, 11, 252,
447 36, 27, 0, 27, 11, 252, 36, 0, 27, 11,
448 252, 36, 27, 0, 12, 282, 0, 26, 282, 0,
449 27, 12, 282, 0, 27, 26, 282, 0, 22, 0,
450 34, 0, 23, 0, 35, 0, 263, 0, 14, 0,
451 39, 0, 0, 253, 0, 27, 0, 253, 254, 27,
452 0, 32, 0, 24, 0, 31, 256, 26, 287, 0,
453 0, 257, 0, 287, 0, 257, 32, 287, 0, 259,
454 0, 260, 0, 55, 260, 110, 260, 51, 260, 0,
455 261, 0, 260, 14, 260, 0, 262, 0, 277, 10,
456 258, 37, 0, 262, 39, 262, 0, 262, 33, 262,
457 0, 264, 0, 267, 265, 0, 267, 266, 0, 3,
458 0, 6, 0, 267, 0, 263, 264, 0, 263, 0,
459 265, 263, 0, 263, 267, 0, 266, 263, 267, 0,
460 272, 0, 268, 0, 268, 272, 0, 272, 268, 0,
461 272, 268, 272, 0, 269, 0, 269, 272, 0, 270,
462 31, 287, 0, 270, 0, 11, 271, 36, 31, 287,
463 0, 11, 271, 36, 0, 11, 36, 31, 287, 0,
464 11, 36, 0, 249, 271, 250, 0, 249, 250, 0,
465 259, 0, 271, 254, 259, 0, 10, 260, 37, 0,
466 284, 0, 289, 10, 273, 37, 0, 275, 0, 272,
467 274, 0, 272, 12, 282, 0, 272, 26, 282, 0,
468 272, 11, 36, 0, 272, 11, 273, 36, 0, 272,
469 31, 287, 0, 260, 0, 273, 32, 260, 0, 28,
470 0, 29, 0, 30, 0, 38, 0, 276, 0, 106,
471 0, 54, 10, 273, 37, 0, 113, 10, 44, 37,
472 0, 113, 10, 201, 37, 0, 107, 10, 259, 37,
473 0, 59, 10, 259, 32, 259, 37, 0, 107, 10,
474 226, 37, 0, 42, 0, 43, 0, 40, 0, 41,
475 0, 278, 0, 277, 278, 0, 0, 21, 279, 280,
476 0, 281, 0, 280, 32, 281, 0, 284, 31, 197,
477 0, 284, 31, 66, 197, 0, 25, 0, 20, 0,
478 25, 0, 25, 0, 282, 0, 282, 0, 282, 0,
485 static const short yyrline[] = { 0,
486 372, 373, 376, 377, 380, 381, 384, 385, 386, 389,
487 390, 393, 394, 395, 398, 404, 408, 410, 412, 414,
488 416, 418, 422, 426, 427, 430, 432, 436, 437, 440,
489 441, 444, 446, 448, 450, 454, 458, 460, 462, 466,
490 467, 470, 471, 472, 475, 476, 483, 485, 496, 498,
491 501, 505, 505, 506, 507, 507, 509, 510, 511, 512,
492 513, 513, 514, 517, 518, 519, 520, 522, 538, 540,
493 544, 545, 547, 550, 551, 554, 558, 560, 564, 566,
494 568, 570, 574, 575, 578, 580, 582, 585, 587, 590,
495 592, 595, 596, 597, 601, 602, 604, 606, 609, 611,
496 615, 616, 619, 621, 625, 626, 627, 630, 631, 634,
497 638, 639, 642, 643, 646, 647, 649, 652, 653, 656,
498 657, 660, 661, 662, 663, 666, 667, 670, 671, 672,
499 673, 674, 677, 678, 681, 682, 685, 686, 689, 690,
500 691, 694, 695, 698, 699, 700, 703, 704, 707, 712,
501 718, 726, 728, 730, 732, 736, 737, 740, 741, 742,
502 743, 744, 745, 746, 748, 752, 753, 754, 755, 758,
503 759, 762, 763, 766, 766, 775, 776, 780, 781, 784,
504 785, 788, 789, 790, 791, 792, 793, 794, 795, 796,
505 797, 805, 806, 811, 813, 819, 820, 821, 822, 823,
506 824, 825, 826, 827, 828, 829, 830, 831, 832, 833,
507 834, 835, 836, 837, 838, 839, 840, 841, 842, 843,
508 844, 845, 846, 847, 848, 849, 850, 851, 852, 853,
509 856, 858, 860, 862, 864, 873, 874, 879, 880, 883,
510 885, 887, 889, 891, 893, 897, 898, 901, 902, 907,
511 910, 912, 916, 917, 920, 922, 926, 927, 937, 938,
512 941, 942, 943, 944, 945, 946, 949, 950, 951, 952,
513 953, 954, 963, 964, 965, 966, 967, 973, 974, 975,
514 985, 986, 987, 992, 993, 996, 997, 998, 999, 1000,
515 1001, 1002, 1003, 1006, 1007, 1010, 1012, 1014, 1016, 1018,
516 1021, 1023, 1025, 1027, 1029, 1031, 1039, 1041, 1043, 1046,
517 1049, 1052, 1057, 1058, 1061, 1062, 1065, 1066, 1067, 1070,
518 1071, 1074, 1075, 1078, 1079, 1082, 1085, 1086, 1089, 1090,
519 1093, 1096, 1102, 1104, 1105, 1108, 1109, 1114, 1116, 1120,
520 1121, 1122, 1125, 1126, 1129, 1130, 1133, 1134, 1137, 1138,
521 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1150, 1151, 1154,
522 1157, 1159, 1163, 1167, 1168, 1171, 1172, 1175, 1177, 1179,
523 1181, 1182, 1184, 1186, 1188, 1191, 1193, 1197, 1198, 1201,
524 1202, 1203, 1204, 1207, 1208, 1209, 1210, 1211, 1212, 1217,
525 1223, 1233, 1234, 1235, 1236, 1239, 1241, 1245, 1249, 1252,
526 1253, 1256, 1257, 1260, 1261, 1264, 1265, 1266, 1267, 1268,
532 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
534 static const char * const yytname[] = { "$","error","$undefined.","simpleOp",
535 "PREFIX_OP","POSTFIX_OP","LLT_MULOP","LLT_SEMI","LLT_VERTICALBAR","ITERATION_OP",
536 "LLT_LPAR","LLT_LBRACKET","selectSym","LLT_IF_THEN_ELSE","logicalOp","eqSepSym",
537 "equationSym","commentSym","LLT_WHITESPACE","LLT_EOL","LLT_TYPEDEF_NAME","quantifierSym",
538 "openSym","closeSym","sepSym","simpleId","mapSym","markerSym","preSym","postSym",
539 "anySym","LLT_COLON","LLT_COMMA","LLT_EQUALS","LLT_LBRACE","LLT_RBRACE","LLT_RBRACKET",
540 "LLT_RPAR","LLT_QUOTE","eqOp","LLT_CCHAR","LLT_CFLOAT","LLT_CINTEGER","LLT_LCSTRING",
541 "LLT_ALL","LLT_ANYTHING","LLT_BE","LLT_BODY","LLT_CLAIMS","LLT_CHECKS","LLT_CONSTANT",
542 "LLT_ELSE","LLT_ENSURES","LLT_FOR","LLT_FRESH","LLT_IF","LLT_IMMUTABLE","LLT_IMPORTS",
543 "LLT_CONSTRAINT","LLT_ISSUB","LLT_LET","LLT_MODIFIES","LLT_MUTABLE","LLT_NOTHING",
544 "LLT_INTERNAL","LLT_FILESYS","LLT_OBJ","LLT_OUT","LLT_SEF","LLT_ONLY","LLT_PARTIAL",
545 "LLT_OWNED","LLT_DEPENDENT","LLT_KEEP","LLT_KEPT","LLT_TEMP","LLT_SHARED","LLT_UNIQUE",
546 "LLT_UNUSED","LLT_EXITS","LLT_MAYEXIT","LLT_NEVEREXIT","LLT_TRUEEXIT","LLT_FALSEEXIT",
547 "LLT_UNDEF","LLT_KILLED","LLT_CHECKMOD","LLT_CHECKED","LLT_UNCHECKED","LLT_CHECKEDSTRICT",
548 "LLT_TRUENULL","LLT_FALSENULL","LLT_LNULL","LLT_LNOTNULL","LLT_RETURNED","LLT_OBSERVER",
549 "LLT_EXPOSED","LLT_REFCOUNTED","LLT_REFS","LLT_RELNULL","LLT_RELDEF","LLT_KILLREF",
550 "LLT_TEMPREF","LLT_NEWREF","LLT_PRIVATE","LLT_REQUIRES","LLT_RESULT","LLT_SIZEOF",
551 "LLT_SPEC","LLT_TAGGEDUNION","LLT_THEN","LLT_TYPE","LLT_TYPEDEF","LLT_UNCHANGED",
552 "LLT_USES","LLT_CHAR","LLT_CONST","LLT_DOUBLE","LLT_ENUM","LLT_FLOAT","LLT_INT",
553 "LLT_ITER","LLT_YIELD","LLT_LONG","LLT_SHORT","LLT_SIGNED","LLT_UNKNOWN","LLT_STRUCT",
554 "LLT_TELIPSIS","LLT_UNION","LLT_UNSIGNED","LLT_VOID","LLT_VOLATILE","LLT_PRINTFLIKE",
555 "LLT_SCANFLIKE","LLT_MESSAGELIKE","interface","@1","externals","external","optDeclarations",
556 "declarations","declaration","imports","uses","export","iter","iterParamList",
557 "realIterParamList","iterParam","private","@2","private2","constDeclaration",
558 "varDeclaration","type","special","fcn","@3","@4","claim","@5","abstract","@6",
559 "@7","@8","@9","@10","@11","@12","@13","exposed","@14","@15","importNameList",
560 "importName","interfaceNameList","interfaceName","traitRefNodeList","traitRef",
561 "traitIdList","renaming","nameList","replaceNodeList","replace","name","initializer",
562 "constLclExpr","initDecls","initDecl","globals","globalDecl","privateInits",
563 "privateInit","optLetDecl","beDeclList","beDecl","sortSpec","optChecks","optRequire",
564 "optModify","storeRefList","storeRef","optEnsure","optClaim","optParamList",
565 "realParamList","paramList","optBody","callExpr","stmt","valueList","value",
566 "abstBody","fcns","optTypeInv","typeInv","@16","declaratorInvs","declaratorInv",
567 "@17","optExposedBody","CType","CTypes","typeSpecifier","specialQualifier","lclTypeSpec",
568 "lclType","pointers","structOrUnionSpec","@18","@19","optTagId","structDecls",
569 "structDecl","declaratorList","optCOMMA","enumSpec","enumeratorList","declarator",
570 "notype_decl","after_type_decl","parameter_decl","param","typeName","optAbstDeclarator",
571 "abstDeclarator","arrayQual","opForm","open","close","anyOp","middle","placeList",
572 "separator","signature","domain","sortList","lclPredicate","term","term0","equalityTerm",
573 "simpleOpTerm","simpleOp2","prefixOpTerm","postfixOps","infixOpPart","secondary",
574 "bracketed","sqBracketed","matched","args","primary","termList","stateFcn","lclPrimary",
575 "cLiteral","quantifiers","quantifier","@20","quantifiedList","quantified","simpleIdOrTypedefName",
576 "fcnId","varId","tagId","claimId","sortId","traitId","opId", NULL
580 static const short yyr1[] = { 0,
581 137, 136, 138, 138, 139, 139, 140, 140, 140, 141,
582 141, 142, 142, 142, 143, 144, 145, 145, 145, 145,
583 145, 145, 146, 147, 147, 148, 148, 149, 149, 151,
584 150, 152, 152, 152, 152, 153, 154, 154, 154, 155,
585 155, 156, 156, 156, 158, 157, 159, 157, 161, 160,
586 160, 163, 164, 162, 165, 166, 162, 167, 168, 162,
587 169, 170, 162, 172, 173, 171, 171, 171, 174, 174,
588 175, 175, 175, 176, 176, 177, 178, 178, 179, 179,
589 179, 179, 180, 180, 181, 181, 181, 182, 182, 183,
590 183, 184, 184, 184, 185, 185, 186, 187, 188, 188,
591 189, 189, 190, 190, 191, 191, 191, 192, 192, 193,
592 194, 194, 195, 195, 196, 196, 197, 198, 198, 199,
593 199, 200, 200, 200, 200, 201, 201, 202, 202, 202,
594 202, 202, 203, 203, 204, 204, 205, 205, 206, 206,
595 206, 207, 207, 208, 208, 208, 209, 209, 209, 209,
596 209, 210, 210, 210, 210, 211, 211, 212, 212, 212,
597 212, 212, 212, 212, 212, 213, 213, 213, 213, 214,
598 214, 215, 215, 217, 216, 218, 218, 220, 219, 221,
599 221, 222, 222, 222, 222, 222, 222, 222, 222, 222,
600 222, 223, 223, 224, 224, 225, 225, 225, 225, 225,
601 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
602 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
603 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
604 226, 226, 226, 226, 226, 227, 227, 228, 228, 230,
605 229, 231, 229, 229, 229, 232, 232, 233, 233, 234,
606 235, 235, 236, 236, 237, 237, 238, 238, 239, 239,
607 240, 240, 240, 240, 240, 240, 241, 241, 241, 241,
608 241, 241, 242, 242, 242, 242, 242, 243, 243, 243,
609 244, 244, 244, 245, 245, 246, 246, 246, 246, 246,
610 246, 246, 246, 247, 247, 248, 248, 248, 248, 248,
611 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
612 248, 248, 249, 249, 250, 250, 251, 251, 251, 252,
613 252, 253, 253, 254, 254, 255, 256, 256, 257, 257,
614 258, 259, 260, 260, 260, 261, 261, 261, 261, 262,
615 262, 262, 263, 263, 264, 264, 265, 265, 266, 266,
616 267, 267, 267, 267, 267, 267, 267, 268, 268, 269,
617 269, 269, 269, 270, 270, 271, 271, 272, 272, 272,
618 272, 272, 272, 272, 272, 272, 272, 273, 273, 274,
619 274, 274, 274, 275, 275, 275, 275, 275, 275, 275,
620 275, 276, 276, 276, 276, 277, 277, 279, 278, 280,
621 280, 281, 281, 282, 282, 283, 284, 285, 286, 287,
625 static const short yyr2[] = { 0,
626 0, 3, 0, 2, 1, 1, 0, 2, 2, 0,
627 2, 1, 1, 1, 3, 3, 1, 1, 1, 1,
628 1, 1, 6, 0, 1, 1, 3, 2, 1, 0,
629 3, 1, 1, 1, 1, 4, 3, 4, 4, 1,
630 1, 1, 1, 1, 0, 13, 0, 14, 0, 13,
631 4, 0, 0, 6, 0, 0, 7, 0, 0, 7,
632 0, 0, 6, 0, 0, 6, 2, 2, 1, 3,
633 1, 3, 1, 1, 3, 1, 1, 3, 1, 4,
634 3, 6, 1, 3, 1, 1, 3, 1, 3, 1,
635 3, 3, 3, 4, 1, 1, 1, 1, 1, 3,
636 1, 3, 0, 2, 3, 2, 2, 0, 2, 4,
637 0, 3, 1, 3, 5, 3, 1, 0, 3, 0,
638 3, 0, 3, 3, 3, 1, 3, 1, 1, 2,
639 1, 1, 0, 3, 0, 3, 0, 1, 1, 1,
640 3, 1, 3, 0, 4, 5, 1, 3, 2, 3,
641 3, 4, 3, 5, 6, 1, 3, 1, 1, 2,
642 2, 3, 3, 3, 4, 1, 3, 4, 3, 0,
643 2, 0, 1, 0, 6, 1, 3, 0, 3, 0,
644 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
645 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
646 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
647 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
648 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
649 1, 1, 1, 2, 5, 1, 2, 1, 2, 0,
650 6, 0, 6, 2, 2, 0, 1, 1, 2, 3,
651 1, 3, 0, 1, 6, 2, 1, 3, 1, 1,
652 1, 3, 2, 2, 3, 4, 1, 3, 2, 2,
653 3, 4, 1, 2, 2, 3, 4, 2, 2, 2,
654 2, 3, 1, 0, 1, 3, 2, 1, 1, 2,
655 3, 3, 4, 2, 3, 6, 1, 2, 2, 3,
656 3, 4, 4, 5, 3, 4, 4, 5, 2, 2,
657 3, 3, 1, 1, 1, 1, 1, 1, 1, 0,
658 1, 1, 3, 1, 1, 4, 0, 1, 1, 3,
659 1, 1, 6, 1, 3, 1, 4, 3, 3, 1,
660 2, 2, 1, 1, 1, 2, 1, 2, 2, 3,
661 1, 1, 2, 2, 3, 1, 2, 3, 1, 5,
662 3, 4, 2, 3, 2, 1, 3, 3, 1, 4,
663 1, 2, 3, 3, 3, 4, 3, 1, 3, 1,
664 1, 1, 1, 1, 1, 4, 4, 4, 4, 6,
665 4, 1, 1, 1, 1, 1, 2, 0, 3, 1,
666 3, 3, 4, 1, 1, 1, 1, 1, 1, 1,
670 static const short yydefact[] = { 3,
671 1, 0, 0, 7, 4, 5, 6, 0, 405, 404,
672 73, 0, 69, 71, 76, 0, 0, 77, 411, 79,
673 0, 194, 0, 0, 61, 52, 196, 198, 199, 228,
674 200, 201, 202, 203, 210, 211, 212, 197, 205, 206,
675 209, 207, 208, 229, 230, 213, 214, 215, 216, 217,
676 224, 225, 226, 204, 227, 220, 221, 218, 219, 223,
677 222, 30, 0, 183, 0, 184, 246, 185, 186, 0,
678 187, 188, 189, 191, 246, 246, 190, 182, 0, 42,
679 43, 44, 2, 10, 22, 10, 17, 18, 19, 0,
680 20, 21, 40, 41, 192, 195, 231, 0, 0, 232,
681 233, 0, 15, 0, 0, 83, 16, 0, 0, 220,
682 236, 0, 232, 233, 406, 409, 0, 0, 0, 0,
683 0, 0, 58, 0, 64, 0, 0, 408, 256, 407,
684 0, 240, 244, 242, 245, 0, 8, 9, 0, 193,
685 234, 0, 0, 267, 0, 99, 103, 260, 259, 261,
686 67, 68, 72, 70, 0, 81, 78, 343, 344, 320,
687 0, 318, 313, 0, 0, 314, 319, 0, 0, 0,
688 86, 85, 90, 284, 88, 283, 320, 297, 317, 238,
689 237, 0, 0, 137, 0, 101, 0, 0, 0, 0,
690 31, 32, 33, 34, 35, 0, 0, 0, 24, 0,
691 0, 0, 11, 14, 12, 13, 103, 263, 269, 0,
692 0, 37, 0, 0, 45, 0, 0, 264, 0, 270,
693 84, 0, 322, 0, 321, 309, 310, 320, 0, 0,
694 320, 298, 0, 284, 80, 0, 0, 288, 0, 281,
695 285, 289, 0, 0, 299, 239, 0, 51, 140, 0,
696 138, 139, 284, 142, 36, 62, 53, 0, 0, 65,
697 176, 178, 38, 257, 253, 0, 0, 25, 26, 29,
698 0, 0, 39, 47, 262, 268, 100, 0, 0, 398,
699 407, 394, 395, 392, 393, 0, 0, 0, 385, 0,
700 0, 102, 97, 0, 98, 332, 334, 336, 0, 340,
701 345, 352, 356, 359, 351, 371, 384, 0, 396, 412,
702 369, 0, 0, 0, 0, 104, 0, 265, 0, 294,
703 0, 271, 0, 0, 305, 325, 324, 0, 0, 311,
704 312, 0, 300, 0, 282, 87, 89, 91, 0, 287,
705 0, 0, 0, 290, 93, 92, 96, 95, 315, 316,
706 301, 235, 103, 0, 288, 0, 273, 279, 278, 280,
707 0, 0, 56, 59, 0, 0, 180, 254, 0, 28,
708 0, 0, 0, 0, 248, 0, 0, 0, 363, 366,
709 0, 0, 0, 0, 0, 0, 0, 365, 0, 0,
710 0, 0, 346, 345, 347, 341, 342, 353, 357, 0,
711 0, 0, 0, 380, 381, 382, 0, 383, 354, 372,
712 0, 397, 0, 106, 107, 108, 0, 266, 295, 272,
713 82, 306, 323, 307, 302, 0, 292, 286, 291, 0,
714 327, 94, 303, 49, 141, 143, 274, 288, 0, 275,
715 166, 170, 63, 54, 0, 0, 177, 66, 172, 179,
716 258, 255, 23, 27, 0, 251, 241, 249, 243, 108,
717 368, 0, 361, 0, 399, 400, 0, 378, 0, 0,
718 0, 194, 0, 0, 0, 131, 132, 0, 0, 126,
719 129, 128, 364, 335, 339, 338, 349, 348, 0, 410,
720 358, 375, 0, 373, 374, 377, 355, 0, 331, 0,
721 111, 105, 308, 304, 0, 293, 0, 328, 329, 0,
722 276, 0, 0, 0, 74, 0, 57, 60, 174, 0,
723 173, 250, 0, 111, 362, 0, 367, 0, 0, 0,
724 386, 0, 0, 391, 389, 387, 130, 0, 388, 350,
725 376, 337, 370, 0, 0, 109, 118, 296, 0, 0,
726 111, 277, 169, 0, 0, 167, 171, 0, 0, 181,
727 252, 118, 360, 401, 0, 402, 117, 379, 0, 0,
728 127, 0, 113, 0, 0, 0, 120, 326, 330, 120,
729 75, 168, 103, 0, 120, 403, 333, 390, 112, 0,
730 0, 0, 0, 0, 0, 122, 144, 0, 122, 114,
731 0, 116, 110, 119, 0, 0, 133, 0, 133, 0,
732 133, 0, 121, 0, 0, 0, 0, 135, 0, 0,
733 175, 135, 115, 124, 123, 125, 0, 0, 0, 0,
734 407, 0, 147, 0, 0, 50, 0, 134, 0, 46,
735 0, 149, 0, 0, 145, 0, 0, 48, 136, 0,
736 148, 146, 151, 150, 0, 0, 153, 0, 156, 158,
737 0, 159, 406, 0, 160, 0, 0, 152, 161, 0,
738 0, 163, 157, 162, 164, 0, 154, 0, 165, 155,
742 static const short yydefgoto[] = { 681,
743 4, 1, 5, 83, 137, 203, 6, 204, 205, 85,
744 267, 268, 269, 206, 124, 191, 87, 88, 89, 90,
745 91, 315, 377, 92, 510, 93, 121, 362, 122, 445,
746 190, 446, 120, 361, 94, 196, 366, 12, 13, 514,
747 14, 17, 18, 105, 170, 171, 172, 173, 345, 292,
748 293, 145, 146, 215, 316, 501, 546, 547, 572, 573,
749 566, 577, 596, 607, 479, 480, 618, 629, 250, 341,
750 252, 609, 653, 633, 658, 659, 443, 516, 520, 521,
751 559, 260, 261, 367, 450, 95, 96, 97, 98, 253,
752 481, 181, 113, 200, 201, 127, 374, 375, 455, 369,
753 114, 265, 186, 148, 149, 359, 254, 175, 240, 241,
754 242, 176, 294, 351, 178, 224, 225, 464, 432, 507,
755 508, 498, 499, 296, 297, 298, 299, 300, 396, 397,
756 301, 302, 303, 304, 381, 305, 469, 410, 306, 307,
757 308, 309, 382, 465, 466, 310, 661, 311, 129, 118,
761 static const short yypact[] = {-32768,
762 -28, 224, 372, 1343,-32768,-32768,-32768, 132,-32768,-32768,
763 -32768, 48,-32768,-32768,-32768, 132, 105,-32768,-32768, 49,
764 2880,-32768, 227, 2880,-32768, 17,-32768,-32768,-32768,-32768,
765 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
766 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
767 -32768,-32768,-32768,-32768,-32768, 161,-32768,-32768,-32768,-32768,
768 -32768,-32768, 2880,-32768, 2880,-32768, 132,-32768,-32768, 221,
769 -32768,-32768,-32768,-32768, 132, 132,-32768,-32768, 2880,-32768,
770 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2880,
771 -32768,-32768,-32768,-32768,-32768, 1065,-32768, 2880, 396, 247,
772 270, 280,-32768, 224, 311,-32768,-32768, 372, 1147,-32768,
773 310, 265,-32768,-32768, 343,-32768, 132, 345, 396, 209,
774 246, 264,-32768, 1437,-32768, 396, 340,-32768, 346,-32768,
775 378,-32768, 346,-32768, 346, 396, 1241, 1241, 396,-32768,
776 -32768, 396, 396,-32768, 123,-32768, 118, 198, 294,-32768,
777 -32768,-32768,-32768,-32768, 132, 431,-32768,-32768,-32768, 416,
778 132,-32768,-32768, 132, 488,-32768,-32768, 423, 2880, 427,
779 442, 444,-32768, 462, 417,-32768, 416, 466,-32768,-32768,
780 499, 2880, 502, 2302, 149, 484, 501, 512, 428, 429,
781 -32768,-32768,-32768,-32768,-32768, 396, 156, 509, 2396, 504,
782 507, 165,-32768,-32768,-32768,-32768,-32768, 198, 294, 89,
783 112,-32768, 396, 3134, 1824, 1920, 3009,-32768, 2016,-32768,
784 -32768, 1147,-32768, 500, 33,-32768,-32768, 416, 132, 132,
785 416, 516, 437, 462,-32768, 1147, 1147, 462, 1730,-32768,
786 329,-32768, 239, 93,-32768,-32768, 538,-32768,-32768, 513,
787 -32768, 517, 379,-32768,-32768,-32768,-32768, 533, 534, 523,
788 -32768,-32768,-32768,-32768, 526, 2880, 522, 532,-32768,-32768,
789 2880, 2880,-32768, 1824,-32768,-32768,-32768, 3134, 3036,-32768,
790 343,-32768,-32768,-32768,-32768, 555, 3134, 556,-32768, 559,
791 560,-32768,-32768, 412,-32768, 558,-32768, 121, 557,-32768,
792 436, 438, 438, 540, 761,-32768,-32768, 290,-32768,-32768,
793 -32768, 563, 567, 568, 542,-32768, 396,-32768, 541,-32768,
794 544,-32768, 546, 547, 562,-32768,-32768, 566, 549,-32768,
795 -32768, 93,-32768, 574,-32768, 444, 417,-32768, 417, 329,
796 550, 128, 2112,-32768, 564,-32768,-32768,-32768,-32768,-32768,
797 575,-32768,-32768, 2490, 379, 1634,-32768, 198, 376,-32768,
798 34, 34,-32768,-32768, 396, 579, 570, 565, 578,-32768,
799 587, 2396, 396, 2591,-32768, 2692, 576, 159, 583,-32768,
800 393, 221, 3134, 21, 3134, 1018, 760,-32768, 463, 3134,
801 557, 557,-32768,-32768, 288, 436, 436, 295, 295, 132,
802 3077, 132, 132,-32768,-32768,-32768, 132,-32768, 438,-32768,
803 3134,-32768, 3134,-32768,-32768,-32768, 211,-32768,-32768,-32768,
804 -32768,-32768,-32768, 582, 588, 571,-32768,-32768,-32768, 586,
805 132,-32768,-32768, 1824,-32768,-32768, 376, 434, 2208,-32768,
806 -32768, 373,-32768,-32768, 34, 34,-32768,-32768, 561,-32768,
807 -32768,-32768,-32768,-32768, 249,-32768,-32768,-32768,-32768,-32768,
808 -32768, 132, 594, 3134, 596,-32768, 595, 558, 419, 3134,
809 598, 625, 599, 601, 603,-32768,-32768, 2880, 425,-32768,
810 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 288,-32768,
811 -32768,-32768, 20,-32768,-32768,-32768, 295, 606,-32768, 445,
812 -7,-32768,-32768,-32768, 617,-32768, 619, 614,-32768, 613,
813 -32768, 611, 642, 472,-32768, 1538,-32768,-32768,-32768, 615,
814 -32768,-32768, 396, -7,-32768, 132,-32768, 221, 2786, 3134,
815 -32768, 28, 3134,-32768,-32768,-32768,-32768, 889,-32768,-32768,
816 -32768,-32768,-32768, 221, 2880,-32768, 605,-32768, 132, 132,
817 597,-32768,-32768, 132, 648,-32768,-32768, 396, 637,-32768,
818 -32768, 605,-32768,-32768, 2880,-32768,-32768, 558, 3134, 622,
819 -32768, 277,-32768, 115, 396, 3134, 572,-32768,-32768, 572,
820 -32768,-32768,-32768, 650, 572,-32768, 558,-32768,-32768, 221,
821 2880, 3134, 282, 654, 3134, 607, 620, 3134, 607,-32768,
822 616,-32768,-32768,-32768, 659, 631, 623, 635, 623, 641,
823 623, 3134,-32768, 672, 673, 334, 3134, 633, 192, 647,
824 -32768, 633,-32768,-32768,-32768,-32768, 676, 3134, 649, 192,
825 677, 187,-32768, 678, 656,-32768, 657,-32768, 684,-32768,
826 65,-32768, 200, 192,-32768, 245, 668,-32768,-32768, 192,
827 -32768,-32768, 709,-32768, 189, 189,-32768, 451, 730,-32768,
828 725,-32768,-32768, 726,-32768, 47, 189,-32768, 250, 309,
829 335,-32768, 730,-32768,-32768, 452,-32768, 464,-32768,-32768,
833 static const short yypgoto[] = {-32768,
834 -32768,-32768,-32768,-32768, 655,-32768,-32768, 741, 743,-32768,
835 -32768,-32768, 371, 748,-32768,-32768, 621, 629, 640,-32768,
836 -120,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
837 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 661,-32768,
838 -6,-32768, 651,-32768, 545,-32768, 539, 537,-32768,-32768,
839 552, -114, 573, -179,-32768, 316,-32768, -434,-32768, 188,
840 -522, 215, -77, 180, 178, 255, -420, 166,-32768, -165,
841 -32768,-32768, -406,-32768, -251, -288, -326,-32768,-32768,-32768,
842 -32768,-32768, 432,-32768,-32768, -76,-32768,-32768,-32768, -3,
843 -18,-32768, 45,-32768,-32768, 440, 524, -79,-32768,-32768,
844 63,-32768, -93, -135, 369, 443, -174, 287, -189, -212,
845 -101, 569, -32, -257, 643, -137,-32768, 580,-32768,-32768,
846 -32768, -532, -201, -254,-32768, 137, -95, 508,-32768,-32768,
847 -282, 505,-32768,-32768, 515, -264, -173,-32768,-32768, -243,
848 -32768, -297,-32768,-32768, 278, 7, -23, -38, 455, 694,
856 static const short yytable[] = { 117,
857 99, 102, 112, 195, 185, 147, 208, 210, 15, 19,
858 412, 197, 295, 179, 15, 295, 394, 111, 251, 140,
859 119, 202, 19, 378, 270, 340, 342, 274, 2, 116,
860 106, 131, 384, 496, 390, 444, 388, 398, 399, 244,
861 441, 390, 586, 594, 335, 207, 218, 220, 100, 669,
862 319, 530, 544, 323, 103, 541, 326, 509, 109, 125,
863 150, 126, 605, 360, 327, 610, 101, 442, 601, 179,
864 642, 650, 644, 128, 425, 136, 177, 380, 569, 104,
865 150, 128, 128, 672, 627, 3, 139, 150, 525, 562,
866 329, 370, 380, 332, 141, 639, 545, 150, 216, 217,
867 150, 651, 262, 150, 150, 174, 218, 220, 218, 220,
868 15, 107, 487, -55, 19, 349, 580, 358, 517, 518,
869 99, 219, 217, 116, -101, 275, 179, 350, 468, 212,
870 470, 483, 231, 99, 99, 484, 108, 343, 217, 344,
871 179, 179, 340, 342, 497, 591, 468, 179, 276, -101,
872 214, 9, 563, 391, 213, 255, 10, 150, 468, 392,
873 592, 19, 263, 247, 428, 234, 346, 226, 100, 221,
874 227, 273, 390, 434, 150, 578, 579, 430, 111, 436,
875 213, 100, 100, 471, 474, 482, 101, 213, 620, 177,
876 622, 655, 642, 643, 644, 461, 213, 270, 656, 101,
877 101, 630, 417, 177, 177, 395, 540, 216, 217, 630,
878 177, 317, 632, 631, 150, 532, 631, 502, 174, 208,
879 210, 645, 123, 641, 631, 340, 8, 493, 282, 283,
880 284, 285, 174, 174, 652, 330, 331, 654, 344, 500,
881 344, 158, 213, 9, 159, 130, 9, 655, 10, 160,
882 161, 115, 162, 151, 656, 522, 218, 440, 9, 656,
883 163, 584, 527, 10, 164, 165, 11, 373, 373, 631,
884 317, 262, 166, 512, 631, 568, 152, 167, 150, 456,
885 523, 657, 153, 589, 282, 283, 284, 285, 603, 282,
886 283, 284, 285, 168, 458, 182, 458, 278, 279, 411,
887 488, 489, 208, 219, 217, 401, 402, 9, 590, 163,
888 280, 655, 281, 213, 587, 180, 150, 150, 656, 187,
889 403, 166, 404, 405, 406, 407, 150, 282, 283, 284,
890 285, 570, 408, 631, 150, 440, 482, 655, 343, 217,
891 626, 286, 155, 467, 656, 675, 288, 156, 282, 283,
892 284, 285, -404, 64, 184, 66, 188, 68, 69, 631,
893 189, 71, 72, 73, 74, 538, 665, 666, 77, 78,
894 373, 677, 373, 198, 282, 283, 284, 285, 673, -247,
895 674, 16, 473, 111, 355, 439, 217, 199, 356, 217,
896 602, 9, 9, 289, 290, 557, 10, 10, 357, 150,
897 291, 142, 660, 130, 482, 143, 490, 513, 494, 495,
898 623, 660, 660, 490, 158, 144, 326, 159, 676, 678,
899 130, 278, 279, 660, 327, 660, 660, 660, 463, 561,
900 317, 9, 280, 163, 349, 515, 281, 490, 158, 438,
901 222, 159, 223, 356, 217, 166, 350, 278, 15, 233,
902 530, 282, 283, 284, 285, 531, 538, 9, 130, 537,
903 593, 539, 281, 235, 583, 286, 287, 238, 490, 243,
904 288, 239, 217, 236, 111, 237, 530, 282, 283, 284,
905 285, 543, 667, 667, 150, 349, 326, 668, 679, 467,
906 158, 286, 245, 159, 327, 667, 288, 350, 228, 229,
907 680, 162, 597, 554, 246, 574, 555, 599, 248, 163,
908 209, 211, 558, 230, 132, 134, 214, 289, 290, 150,
909 256, 166, 337, 339, 291, 567, 167, 485, 486, 133,
910 135, 257, 490, 264, 111, 325, 150, 271, 258, 259,
911 272, 575, 333, 289, 290, 352, 334, 581, 354, 353,
912 291, 574, 363, 364, 365, 490, 490, 368, 371, 158,
913 15, 567, 159, 372, 383, 385, 278, 279, 386, 387,
914 400, 390, 413, 414, 415, 416, 9, 418, 163, 419,
915 635, 281, 420, 421, 424, 448, 427, 567, 422, 451,
916 166, 635, 423, 453, 431, 634, 282, 283, 284, 285,
917 426, 433, 111, 449, 635, 635, 634, 662, 503, 460,
918 286, 635, 452, 462, 504, 288, 662, 662, 519, 634,
919 634, 505, 506, 664, 526, 529, 634, 528, 662, 533,
920 662, 662, 662, 158, -405, 534, 159, 535, 21, 536,
921 278, 279, 542, 548, 549, 550, 551, 552, 553, 560,
922 472, 280, 163, 576, 582, 281, 544, 280, 588, 598,
923 604, 612, 289, 290, 166, 613, 608, 606, 619, 291,
924 282, 283, 284, 285, 617, 614, 595, 621, 624, 625,
925 628, 636, 638, 640, 286, 287, -406, 646, 647, 288,
926 649, 648, 663, 615, 476, 477, 478, 27, 28, 29,
927 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
928 40, 41, 42, 43, 44, 45, 644, 46, 47, 48,
929 49, 50, 51, 52, 53, 54, 55, 110, 57, 58,
930 59, 60, 669, 61, 670, 671, 289, 290, 682, 683,
931 138, 7, 454, 291, 192, 64, 84, 66, 67, 68,
932 69, 86, 193, 71, 72, 73, 74, 75, 157, 76,
933 77, 78, 158, 194, 154, 159, 324, 21, 321, 278,
934 279, 401, 402, 338, 336, 524, 585, 600, 611, 472,
935 280, 163, 163, 616, 281, 277, 403, 637, 404, 405,
936 406, 407, 571, 166, 166, 376, 447, 437, 408, 282,
937 283, 284, 285, 475, 328, 564, 393, 232, 389, 409,
938 183, 347, 0, 286, 287, 0, 0, 0, 288, 348,
939 0, 0, 0, 476, 477, 478, 27, 28, 29, 30,
940 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
941 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
942 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
943 60, 0, 61, 0, 0, 289, 290, 0, 0, 0,
944 0, 0, 291, 0, 64, 0, 66, 67, 68, 69,
945 0, 0, 71, 72, 73, 74, 75, 0, 76, 77,
946 78, 158, 0, 0, 159, 0, 21, 0, 278, 279,
947 0, 0, 0, 0, 0, 0, 0, 0, 472, 280,
948 163, 0, 0, 281, 0, 0, 0, 0, 0, 0,
949 0, 0, 166, 0, 0, 0, 0, 0, 282, 283,
950 284, 285, 0, 0, 0, 0, 0, 0, 0, 0,
951 0, 0, 286, 287, 0, 0, 0, 288, 0, 0,
952 0, 0, 476, 477, 478, 27, 28, 29, 30, 31,
953 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
954 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
955 51, 52, 53, 54, 55, 110, 57, 58, 59, 60,
956 0, 61, 0, 0, 289, 290, 0, 0, 0, 0,
957 0, 291, 0, 64, 0, 66, 67, 68, 69, 0,
958 0, 71, 72, 73, 74, 75, 0, 76, 77, 78,
959 158, 0, 0, 159, 0, 21, 0, 278, 279, 0,
960 0, 0, 0, 0, 0, 0, 0, 472, 280, 163,
961 0, 0, 281, 0, 0, 0, 0, 0, 0, 0,
962 0, 166, 0, 0, 0, 0, 0, 282, 283, 284,
963 285, 0, 0, 0, 0, 0, 0, 0, 0, 0,
964 0, 286, 287, 0, 0, 0, 288, 0, 0, 0,
965 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
966 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
967 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
968 52, 53, 54, 55, 110, 57, 58, 59, 60, 0,
969 61, 0, 0, 289, 290, 0, 0, 0, 0, 0,
970 291, 0, 64, 0, 66, 67, 68, 69, 0, 0,
971 71, 72, 73, 74, 75, 0, 76, 77, 78, 158,
972 0, 0, 159, 0, 21, 0, 0, 160, 161, 0,
973 162, 0, 0, 0, 0, 0, 22, 0, 163, 0,
974 0, 0, 164, 165, 0, 0, 0, 0, 0, 64,
975 166, 66, 0, 68, 69, 167, 0, 71, 72, 73,
976 74, 0, 0, 0, 77, 78, 0, 0, 0, 0,
977 0, 168, 0, 0, 0, 0, 0, 0, 0, 0,
978 0, 0, 169, 27, 28, 29, 30, 31, 32, 33,
979 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
980 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
981 53, 54, 55, 110, 57, 58, 59, 60, 21, 61,
982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
983 22, 64, 0, 66, 67, 68, 69, 0, 0, 71,
984 72, 73, 74, 75, 0, 76, 77, 78, 0, 0,
985 0, 0, 0, 0, 0, 0, 0, 0, 23, 0,
986 24, 0, 0, 0, 0, 0, 25, 0, 0, 0,
987 0, 0, 26, 0, 0, 0, 0, 27, 28, 29,
988 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
989 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
990 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
991 59, 60, 0, 61, 0, 0, 0, 0, 62, 0,
992 21, 0, 63, 0, 3, 64, 65, 66, 67, 68,
993 69, 70, 22, 71, 72, 73, 74, 75, 0, 76,
994 77, 78, 79, 80, 81, 82, 0, 0, 0, 0,
995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
996 23, 0, 24, 0, 0, 0, 0, 0, 25, 0,
997 0, 0, 0, 0, 26, 0, 0, 0, 0, 27,
998 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
999 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1000 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1001 57, 58, 59, 60, 21, 61, 0, 0, 0, 0,
1002 62, 0, 0, 0, 63, 0, 22, 64, 65, 66,
1003 67, 68, 69, 70, 0, 71, 72, 73, 74, 75,
1004 0, 76, 77, 78, 79, 80, 81, 82, 0, 0,
1005 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
1006 0, 0, 25, 0, 0, 0, 0, 0, 26, 0,
1007 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1008 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1009 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1010 53, 54, 55, 56, 57, 58, 59, 60, 0, 61,
1011 0, 0, 0, 0, 0, 21, 0, 0, 63, 0,
1012 0, 64, 65, 66, 67, 68, 69, 22, 0, 71,
1013 72, 73, 74, 75, 0, 76, 77, 78, 79, 80,
1014 81, 82, 556, 0, 0, 0, 0, 0, 0, 0,
1015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1016 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1017 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1018 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1019 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1020 52, 53, 54, 55, 110, 57, 58, 59, 60, 438,
1021 61, 21, 0, 356, 217, 0, 0, 0, 0, 0,
1022 0, 0, 64, 22, 66, 67, 68, 69, 130, 0,
1023 71, 72, 73, 74, 75, 0, 76, 77, 78, 0,
1024 80, 81, 82, 0, 0, 0, 0, 0, 0, 0,
1025 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1026 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1027 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1028 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1029 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1030 110, 57, 58, 59, 60, 238, 61, 21, 0, 239,
1031 217, 0, 0, 0, 0, 0, 0, 0, 64, 22,
1032 66, 67, 68, 69, 0, 0, 71, 72, 73, 74,
1033 75, 249, 76, 77, 78, 0, 0, 0, 0, 0,
1034 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1036 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1037 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1038 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1039 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
1040 60, 21, 61, 0, 0, 0, 0, 0, 0, 0,
1041 0, 0, 0, 22, 64, 0, 66, 67, 68, 69,
1042 0, 0, 71, 72, 73, 74, 75, 249, 76, 77,
1043 78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1044 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1045 0, 0, 0, 0, 0, 0, 0, 313, 314, 0,
1046 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1047 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1048 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1049 110, 57, 58, 59, 60, 0, 61, 21, 0, 0,
1050 0, 0, 0, 0, 0, 0, 0, 0, 64, 22,
1051 66, 67, 68, 69, 0, 0, 71, 72, 73, 74,
1052 75, 0, 76, 77, 78, 0, 318, 0, 0, 0,
1053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1054 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1055 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1056 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1057 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1058 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
1059 60, 0, 61, 21, 0, 0, 0, 0, 0, 0,
1060 0, 0, 0, 0, 64, 22, 66, 67, 68, 69,
1061 0, 0, 71, 72, 73, 74, 75, 249, 76, 77,
1062 78, 0, 322, 0, 0, 0, 0, 0, 0, 0,
1063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1065 0, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1066 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1067 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1068 54, 55, 110, 57, 58, 59, 60, 0, 61, 21,
1069 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1070 64, 22, 66, 67, 68, 69, 0, 0, 71, 72,
1071 73, 74, 75, 249, 76, 77, 78, 0, 429, 0,
1072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1074 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1075 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1076 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1077 48, 49, 50, 51, 52, 53, 54, 55, 110, 57,
1078 58, 59, 60, 0, 61, 21, 0, 0, 0, 0,
1079 0, 0, 0, 0, 0, 0, 64, 22, 66, 67,
1080 68, 69, 0, 0, 71, 72, 73, 74, 75, 249,
1081 76, 77, 78, 0, 511, 0, 0, 0, 0, 0,
1082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1084 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1085 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1086 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1087 52, 53, 54, 55, 110, 57, 58, 59, 60, 21,
1088 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1089 0, 22, 64, 0, 66, 67, 68, 69, 0, 0,
1090 71, 72, 73, 74, 75, 249, 76, 77, 78, 0,
1091 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1093 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1094 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1095 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1096 48, 49, 50, 51, 52, 53, 54, 55, 110, 57,
1097 58, 59, 60, 21, 61, 0, 0, 0, 0, 0,
1098 0, 0, 0, 0, 0, 22, 64, 0, 66, 67,
1099 68, 69, 0, 0, 71, 72, 73, 74, 75, 249,
1100 76, 77, 78, 0, 0, 0, 0, 0, 0, 0,
1101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1102 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1103 0, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1104 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1105 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1106 54, 55, 110, 57, 58, 59, 60, 21, 61, 0,
1107 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
1108 64, 0, 66, 67, 68, 69, 0, 266, 71, 72,
1109 73, 74, 75, 0, 76, 77, 78, 0, 0, 0,
1110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1112 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1113 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1114 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1115 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
1116 60, 0, 61, 0, 0, 0, 0, 0, 21, 0,
1117 0, 0, 0, 0, 64, 0, 66, 67, 68, 69,
1118 22, 0, 71, 72, 73, 74, 75, 435, 76, 77,
1119 78, 0, 0, 0, 0, 457, 0, 0, 0, 0,
1120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1122 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1123 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1124 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1125 49, 50, 51, 52, 53, 54, 55, 110, 57, 58,
1126 59, 60, 0, 61, 0, 0, 0, 0, 0, 21,
1127 0, 0, 0, 0, 0, 64, 0, 66, 67, 68,
1128 69, 22, 0, 71, 72, 73, 74, 75, 0, 76,
1129 77, 78, 0, 0, 0, 0, 459, 0, 0, 0,
1130 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1132 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1133 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1134 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1135 48, 49, 50, 51, 52, 53, 54, 55, 110, 57,
1136 58, 59, 60, 21, 61, 0, 0, 0, 0, 0,
1137 0, 0, 0, 0, 0, 22, 64, 0, 66, 67,
1138 68, 69, 0, 0, 71, 72, 73, 74, 75, 0,
1139 76, 77, 78, 0, 0, 0, 0, 0, 0, 0,
1140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1142 0, 565, 27, 28, 29, 30, 31, 32, 33, 34,
1143 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1144 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1145 54, 55, 110, 57, 58, 59, 60, 21, 61, 0,
1146 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
1147 64, 0, 66, 67, 68, 69, 0, 0, 71, 72,
1148 73, 74, 75, 0, 76, 77, 78, 0, 0, 0,
1149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1151 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1152 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1153 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1154 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
1155 60, 0, 61, 0, 0, 0, 0, 0, 0, 0,
1156 0, 0, 0, 0, 64, 0, 66, 67, 68, 69,
1157 0, 0, 71, 72, 73, 74, 75, 0, 76, 77,
1158 78, 158, 0, 0, 159, 0, 0, 0, 278, 279,
1159 0, 0, 0, 0, 0, 0, 0, 0, 9, 280,
1160 163, 0, 0, 281, 0, 0, 0, 0, 158, 0,
1161 0, 159, 166, 0, 320, 278, 279, 0, 282, 283,
1162 284, 285, 0, 0, 0, 9, 280, 163, 0, 0,
1163 281, 0, 286, 287, 0, 0, 0, 288, 0, 166,
1164 0, 379, 0, 0, 0, 282, 283, 284, 285, 158,
1165 0, 0, 159, 0, 0, 0, 278, 279, 0, 286,
1166 287, 0, 0, 0, 288, 0, 9, 280, 163, 0,
1167 0, 281, 0, 0, 0, 0, 0, 0, 0, 0,
1168 166, 0, 492, 0, 289, 290, 282, 283, 284, 285,
1169 0, 291, 0, 0, 0, 0, 0, 0, 0, 0,
1170 286, 287, 0, 0, 0, 288, 158, 0, 0, 159,
1171 0, 289, 290, 278, 279, 0, 0, 0, 291, 0,
1172 0, 0, 0, 9, 280, 163, 0, 0, 281, 0,
1173 0, 0, 0, 0, 0, 0, 0, 166, 0, 0,
1174 0, 0, 0, 282, 283, 284, 285, 0, 0, 0,
1175 0, 0, 289, 290, 0, 0, 0, 286, 287, 291,
1176 0, 0, 288, 0, 0, 0, 0, 0, 0, 0,
1177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1180 0, 0, 0, 0, 0, 0, 0, 0, 0, 289,
1181 290, 0, 0, 0, 0, 0, 291
1184 static const short yycheck[] = { 23,
1185 4, 8, 21, 124, 119, 99, 142, 143, 2, 3,
1186 308, 126, 214, 109, 8, 217, 299, 21, 184, 96,
1187 24, 136, 16, 278, 199, 238, 239, 207, 57, 23,
1188 16, 70, 287, 407, 14, 362, 294, 302, 303, 177,
1189 7, 14, 565, 576, 234, 139, 148, 149, 4, 3,
1190 216, 32, 60, 219, 7, 36, 24, 431, 10, 63,
1191 99, 65, 595, 253, 32, 598, 4, 34, 591, 165,
1192 6, 7, 8, 67, 332, 79, 109, 279, 51, 32,
1193 119, 75, 76, 37, 617, 114, 90, 126, 462, 524,
1194 228, 266, 294, 231, 98, 628, 104, 136, 10, 11,
1195 139, 37, 196, 142, 143, 109, 208, 209, 210, 211,
1196 104, 7, 395, 97, 108, 23, 551, 253, 445, 446,
1197 124, 10, 11, 117, 7, 37, 222, 35, 383, 7,
1198 110, 389, 165, 137, 138, 390, 32, 10, 11, 241,
1199 236, 237, 355, 356, 409, 31, 401, 243, 37, 32,
1200 33, 20, 526, 33, 32, 7, 25, 196, 413, 39,
1201 46, 155, 7, 182, 37, 169, 243, 161, 124, 155,
1202 164, 7, 14, 353, 213, 549, 550, 343, 182, 354,
1203 32, 137, 138, 385, 386, 387, 124, 32, 609, 222,
1204 611, 3, 6, 7, 8, 37, 32, 372, 10, 137,
1205 138, 10, 317, 236, 237, 301, 489, 10, 11, 10,
1206 243, 215, 619, 25, 253, 470, 25, 7, 222, 355,
1207 356, 35, 62, 630, 25, 438, 3, 401, 40, 41,
1208 42, 43, 236, 237, 35, 229, 230, 644, 340, 413,
1209 342, 3, 32, 20, 6, 25, 20, 3, 25, 11,
1210 12, 25, 14, 7, 10, 7, 358, 359, 20, 10,
1211 22, 559, 464, 25, 26, 27, 43, 271, 272, 25,
1212 274, 365, 34, 439, 25, 530, 7, 39, 317, 373,
1213 32, 37, 3, 7, 40, 41, 42, 43, 7, 40,
1214 41, 42, 43, 55, 374, 31, 376, 10, 11, 10,
1215 396, 397, 438, 10, 11, 11, 12, 20, 32, 22,
1216 21, 3, 25, 32, 569, 6, 355, 356, 10, 111,
1217 26, 34, 28, 29, 30, 31, 365, 40, 41, 42,
1218 43, 533, 38, 25, 373, 437, 538, 3, 10, 11,
1219 7, 54, 32, 382, 10, 37, 59, 37, 40, 41,
1220 42, 43, 10, 115, 10, 117, 111, 119, 120, 25,
1221 97, 123, 124, 125, 126, 32, 655, 656, 130, 131,
1222 374, 37, 376, 34, 40, 41, 42, 43, 667, 34,
1223 669, 10, 386, 387, 6, 10, 11, 10, 10, 11,
1224 592, 20, 20, 106, 107, 516, 25, 25, 20, 438,
1225 113, 6, 646, 25, 606, 10, 400, 35, 402, 403,
1226 612, 655, 656, 407, 3, 20, 24, 6, 670, 671,
1227 25, 10, 11, 667, 32, 669, 670, 671, 36, 523,
1228 434, 20, 21, 22, 23, 442, 25, 431, 3, 6,
1229 10, 6, 27, 10, 11, 34, 35, 10, 442, 27,
1230 32, 40, 41, 42, 43, 37, 32, 20, 25, 478,
1231 575, 37, 25, 37, 558, 54, 55, 6, 462, 53,
1232 59, 10, 11, 32, 478, 32, 32, 40, 41, 42,
1233 43, 37, 32, 32, 523, 23, 24, 37, 37, 528,
1234 3, 54, 27, 6, 32, 32, 59, 35, 11, 12,
1235 37, 14, 580, 32, 6, 544, 35, 585, 7, 22,
1236 142, 143, 516, 26, 75, 76, 33, 106, 107, 558,
1237 20, 34, 236, 237, 113, 529, 39, 391, 392, 75,
1238 76, 20, 526, 25, 538, 36, 575, 34, 111, 111,
1239 34, 545, 27, 106, 107, 8, 110, 554, 32, 37,
1240 113, 590, 20, 20, 32, 549, 550, 32, 37, 3,
1241 554, 565, 6, 32, 10, 10, 10, 11, 10, 10,
1242 31, 14, 10, 7, 7, 34, 20, 37, 22, 36,
1243 619, 25, 37, 37, 36, 7, 37, 591, 27, 25,
1244 34, 630, 27, 7, 31, 619, 40, 41, 42, 43,
1245 27, 27, 606, 34, 643, 644, 630, 646, 27, 34,
1246 54, 650, 35, 31, 27, 59, 655, 656, 58, 643,
1247 644, 51, 37, 647, 31, 31, 650, 32, 667, 32,
1248 669, 670, 671, 3, 10, 37, 6, 37, 8, 37,
1249 10, 11, 37, 27, 26, 32, 34, 37, 7, 35,
1250 20, 21, 22, 49, 7, 25, 60, 21, 37, 10,
1251 7, 46, 106, 107, 34, 7, 47, 61, 34, 113,
1252 40, 41, 42, 43, 52, 45, 105, 37, 7, 7,
1253 48, 35, 7, 35, 54, 55, 10, 10, 33, 59,
1254 7, 35, 25, 63, 64, 65, 66, 67, 68, 69,
1255 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1256 80, 81, 82, 83, 84, 85, 8, 87, 88, 89,
1257 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1258 100, 101, 3, 103, 10, 10, 106, 107, 0, 0,
1259 86, 1, 372, 113, 124, 115, 4, 117, 118, 119,
1260 120, 4, 124, 123, 124, 125, 126, 127, 108, 129,
1261 130, 131, 3, 124, 104, 6, 222, 8, 217, 10,
1262 11, 11, 12, 237, 236, 460, 562, 590, 599, 20,
1263 21, 22, 22, 606, 25, 213, 26, 622, 28, 29,
1264 30, 31, 538, 34, 34, 272, 365, 355, 38, 40,
1265 41, 42, 43, 44, 225, 528, 299, 165, 294, 305,
1266 117, 243, -1, 54, 55, -1, -1, -1, 59, 243,
1267 -1, -1, -1, 64, 65, 66, 67, 68, 69, 70,
1268 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1269 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1270 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1271 101, -1, 103, -1, -1, 106, 107, -1, -1, -1,
1272 -1, -1, 113, -1, 115, -1, 117, 118, 119, 120,
1273 -1, -1, 123, 124, 125, 126, 127, -1, 129, 130,
1274 131, 3, -1, -1, 6, -1, 8, -1, 10, 11,
1275 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1276 22, -1, -1, 25, -1, -1, -1, -1, -1, -1,
1277 -1, -1, 34, -1, -1, -1, -1, -1, 40, 41,
1278 42, 43, -1, -1, -1, -1, -1, -1, -1, -1,
1279 -1, -1, 54, 55, -1, -1, -1, 59, -1, -1,
1280 -1, -1, 64, 65, 66, 67, 68, 69, 70, 71,
1281 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1282 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1283 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1284 -1, 103, -1, -1, 106, 107, -1, -1, -1, -1,
1285 -1, 113, -1, 115, -1, 117, 118, 119, 120, -1,
1286 -1, 123, 124, 125, 126, 127, -1, 129, 130, 131,
1287 3, -1, -1, 6, -1, 8, -1, 10, 11, -1,
1288 -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
1289 -1, -1, 25, -1, -1, -1, -1, -1, -1, -1,
1290 -1, 34, -1, -1, -1, -1, -1, 40, 41, 42,
1291 43, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1292 -1, 54, 55, -1, -1, -1, 59, -1, -1, -1,
1293 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1294 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1295 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1296 93, 94, 95, 96, 97, 98, 99, 100, 101, -1,
1297 103, -1, -1, 106, 107, -1, -1, -1, -1, -1,
1298 113, -1, 115, -1, 117, 118, 119, 120, -1, -1,
1299 123, 124, 125, 126, 127, -1, 129, 130, 131, 3,
1300 -1, -1, 6, -1, 8, -1, -1, 11, 12, -1,
1301 14, -1, -1, -1, -1, -1, 20, -1, 22, -1,
1302 -1, -1, 26, 27, -1, -1, -1, -1, -1, 115,
1303 34, 117, -1, 119, 120, 39, -1, 123, 124, 125,
1304 126, -1, -1, -1, 130, 131, -1, -1, -1, -1,
1305 -1, 55, -1, -1, -1, -1, -1, -1, -1, -1,
1306 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
1307 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1308 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1309 94, 95, 96, 97, 98, 99, 100, 101, 8, 103,
1310 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1311 20, 115, -1, 117, 118, 119, 120, -1, -1, 123,
1312 124, 125, 126, 127, -1, 129, 130, 131, -1, -1,
1313 -1, -1, -1, -1, -1, -1, -1, -1, 48, -1,
1314 50, -1, -1, -1, -1, -1, 56, -1, -1, -1,
1315 -1, -1, 62, -1, -1, -1, -1, 67, 68, 69,
1316 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1317 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1318 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1319 100, 101, -1, 103, -1, -1, -1, -1, 108, -1,
1320 8, -1, 112, -1, 114, 115, 116, 117, 118, 119,
1321 120, 121, 20, 123, 124, 125, 126, 127, -1, 129,
1322 130, 131, 132, 133, 134, 135, -1, -1, -1, -1,
1323 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1324 48, -1, 50, -1, -1, -1, -1, -1, 56, -1,
1325 -1, -1, -1, -1, 62, -1, -1, -1, -1, 67,
1326 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1327 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1328 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1329 98, 99, 100, 101, 8, 103, -1, -1, -1, -1,
1330 108, -1, -1, -1, 112, -1, 20, 115, 116, 117,
1331 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
1332 -1, 129, 130, 131, 132, 133, 134, 135, -1, -1,
1333 -1, -1, -1, -1, -1, -1, 50, -1, -1, -1,
1334 -1, -1, 56, -1, -1, -1, -1, -1, 62, -1,
1335 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1336 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1337 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1338 94, 95, 96, 97, 98, 99, 100, 101, -1, 103,
1339 -1, -1, -1, -1, -1, 8, -1, -1, 112, -1,
1340 -1, 115, 116, 117, 118, 119, 120, 20, -1, 123,
1341 124, 125, 126, 127, -1, 129, 130, 131, 132, 133,
1342 134, 135, 35, -1, -1, -1, -1, -1, -1, -1,
1343 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1344 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1345 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1346 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1347 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1348 93, 94, 95, 96, 97, 98, 99, 100, 101, 6,
1349 103, 8, -1, 10, 11, -1, -1, -1, -1, -1,
1350 -1, -1, 115, 20, 117, 118, 119, 120, 25, -1,
1351 123, 124, 125, 126, 127, -1, 129, 130, 131, -1,
1352 133, 134, 135, -1, -1, -1, -1, -1, -1, -1,
1353 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1355 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1356 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1357 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1358 97, 98, 99, 100, 101, 6, 103, 8, -1, 10,
1359 11, -1, -1, -1, -1, -1, -1, -1, 115, 20,
1360 117, 118, 119, 120, -1, -1, 123, 124, 125, 126,
1361 127, 128, 129, 130, 131, -1, -1, -1, -1, -1,
1362 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1363 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1364 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1365 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1366 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1367 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1368 101, 8, 103, -1, -1, -1, -1, -1, -1, -1,
1369 -1, -1, -1, 20, 115, -1, 117, 118, 119, 120,
1370 -1, -1, 123, 124, 125, 126, 127, 128, 129, 130,
1371 131, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1372 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1373 -1, -1, -1, -1, -1, -1, -1, 64, 65, -1,
1374 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1375 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1376 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1377 97, 98, 99, 100, 101, -1, 103, 8, -1, -1,
1378 -1, -1, -1, -1, -1, -1, -1, -1, 115, 20,
1379 117, 118, 119, 120, -1, -1, 123, 124, 125, 126,
1380 127, -1, 129, 130, 131, -1, 37, -1, -1, -1,
1381 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1382 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1383 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1384 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1385 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1386 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1387 101, -1, 103, 8, -1, -1, -1, -1, -1, -1,
1388 -1, -1, -1, -1, 115, 20, 117, 118, 119, 120,
1389 -1, -1, 123, 124, 125, 126, 127, 128, 129, 130,
1390 131, -1, 37, -1, -1, -1, -1, -1, -1, -1,
1391 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1392 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1393 -1, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1394 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1395 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1396 95, 96, 97, 98, 99, 100, 101, -1, 103, 8,
1397 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1398 115, 20, 117, 118, 119, 120, -1, -1, 123, 124,
1399 125, 126, 127, 128, 129, 130, 131, -1, 37, -1,
1400 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1401 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1402 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1403 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1404 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1405 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1406 99, 100, 101, -1, 103, 8, -1, -1, -1, -1,
1407 -1, -1, -1, -1, -1, -1, 115, 20, 117, 118,
1408 119, 120, -1, -1, 123, 124, 125, 126, 127, 128,
1409 129, 130, 131, -1, 37, -1, -1, -1, -1, -1,
1410 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1411 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1412 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1413 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1414 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1415 93, 94, 95, 96, 97, 98, 99, 100, 101, 8,
1416 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1417 -1, 20, 115, -1, 117, 118, 119, 120, -1, -1,
1418 123, 124, 125, 126, 127, 128, 129, 130, 131, -1,
1419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1420 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1421 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1422 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1423 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1424 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1425 99, 100, 101, 8, 103, -1, -1, -1, -1, -1,
1426 -1, -1, -1, -1, -1, 20, 115, -1, 117, 118,
1427 119, 120, -1, -1, 123, 124, 125, 126, 127, 128,
1428 129, 130, 131, -1, -1, -1, -1, -1, -1, -1,
1429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1430 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1431 -1, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1432 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1433 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1434 95, 96, 97, 98, 99, 100, 101, 8, 103, -1,
1435 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1436 115, -1, 117, 118, 119, 120, -1, 122, 123, 124,
1437 125, 126, 127, -1, 129, 130, 131, -1, -1, -1,
1438 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1439 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1440 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1441 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1442 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1443 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1444 101, -1, 103, -1, -1, -1, -1, -1, 8, -1,
1445 -1, -1, -1, -1, 115, -1, 117, 118, 119, 120,
1446 20, -1, 123, 124, 125, 126, 127, 128, 129, 130,
1447 131, -1, -1, -1, -1, 35, -1, -1, -1, -1,
1448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1449 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1450 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1451 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1452 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1453 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1454 100, 101, -1, 103, -1, -1, -1, -1, -1, 8,
1455 -1, -1, -1, -1, -1, 115, -1, 117, 118, 119,
1456 120, 20, -1, 123, 124, 125, 126, 127, -1, 129,
1457 130, 131, -1, -1, -1, -1, 35, -1, -1, -1,
1458 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1459 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1460 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1461 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1462 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1463 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1464 99, 100, 101, 8, 103, -1, -1, -1, -1, -1,
1465 -1, -1, -1, -1, -1, 20, 115, -1, 117, 118,
1466 119, 120, -1, -1, 123, 124, 125, 126, 127, -1,
1467 129, 130, 131, -1, -1, -1, -1, -1, -1, -1,
1468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1469 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1470 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1471 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1472 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1473 95, 96, 97, 98, 99, 100, 101, 8, 103, -1,
1474 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1475 115, -1, 117, 118, 119, 120, -1, -1, 123, 124,
1476 125, 126, 127, -1, 129, 130, 131, -1, -1, -1,
1477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1478 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1479 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1480 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1481 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1482 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1483 101, -1, 103, -1, -1, -1, -1, -1, -1, -1,
1484 -1, -1, -1, -1, 115, -1, 117, 118, 119, 120,
1485 -1, -1, 123, 124, 125, 126, 127, -1, 129, 130,
1486 131, 3, -1, -1, 6, -1, -1, -1, 10, 11,
1487 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1488 22, -1, -1, 25, -1, -1, -1, -1, 3, -1,
1489 -1, 6, 34, -1, 36, 10, 11, -1, 40, 41,
1490 42, 43, -1, -1, -1, 20, 21, 22, -1, -1,
1491 25, -1, 54, 55, -1, -1, -1, 59, -1, 34,
1492 -1, 36, -1, -1, -1, 40, 41, 42, 43, 3,
1493 -1, -1, 6, -1, -1, -1, 10, 11, -1, 54,
1494 55, -1, -1, -1, 59, -1, 20, 21, 22, -1,
1495 -1, 25, -1, -1, -1, -1, -1, -1, -1, -1,
1496 34, -1, 36, -1, 106, 107, 40, 41, 42, 43,
1497 -1, 113, -1, -1, -1, -1, -1, -1, -1, -1,
1498 54, 55, -1, -1, -1, 59, 3, -1, -1, 6,
1499 -1, 106, 107, 10, 11, -1, -1, -1, 113, -1,
1500 -1, -1, -1, 20, 21, 22, -1, -1, 25, -1,
1501 -1, -1, -1, -1, -1, -1, -1, 34, -1, -1,
1502 -1, -1, -1, 40, 41, 42, 43, -1, -1, -1,
1503 -1, -1, 106, 107, -1, -1, -1, 54, 55, 113,
1504 -1, -1, 59, -1, -1, -1, -1, -1, -1, -1,
1505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1506 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1507 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1508 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
1509 107, -1, -1, -1, -1, -1, 113
1511 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1512 #line 3 "/usr/lib/bison.simple"
1514 /* Skeleton output parser for bison,
1515 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1517 This program is free software; you can redistribute it and/or modify
1518 it under the terms of the GNU General Public License as published by
1519 the Free Software Foundation; either version 2, or (at your option)
1522 This program is distributed in the hope that it will be useful,
1523 but WITHOUT ANY WARRANTY; without even the implied warranty of
1524 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1525 GNU General Public License for more details.
1527 You should have received a copy of the GNU General Public License
1528 along with this program; if not, write to the Free Software
1529 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1531 /* As a special exception, when this file is copied by Bison into a
1532 Bison output file, you may use that output file without restriction.
1533 This special exception was added by the Free Software Foundation
1534 in version 1.24 of Bison. */
1538 #define alloca __builtin_alloca
1539 #else /* not GNU C. */
1540 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1542 #else /* not sparc */
1543 #if defined (MSDOS) && !defined (__TURBOC__)
1545 #else /* not MSDOS, or __TURBOC__ */
1549 #else /* not MSDOS, __TURBOC__, or _AIX */
1553 void *alloca (unsigned int);
1555 #else /* not __cplusplus */
1557 #endif /* not __cplusplus */
1559 #endif /* not _AIX */
1560 #endif /* not MSDOS, or __TURBOC__ */
1561 #endif /* not sparc. */
1562 #endif /* not GNU C. */
1563 #endif /* alloca not defined. */
1565 /* This is the parser code that is written into each bison parser
1566 when the %semantic_parser declaration is not specified in the grammar.
1567 It was written by Richard Stallman by simplifying the hairy parser
1568 used when %semantic_parser is specified. */
1570 /* Note: there must be only one dollar sign in this file.
1571 It is replaced by the list of actions, each action
1572 as one case of the switch. */
1574 #define yyerrok (yyerrstatus = 0)
1575 #define yyclearin (yychar = YYEMPTY)
1578 #define YYACCEPT return(0)
1579 #define YYABORT return(1)
1580 #define YYERROR goto yyerrlab1
1581 /* Like YYERROR except do call yyerror.
1582 This remains here temporarily to ease the
1583 transition to the new meaning of YYERROR, for GCC.
1584 Once GCC version 2 has supplanted version 1, this can go. */
1585 #define YYFAIL goto yyerrlab
1586 #define YYRECOVERING() (!!yyerrstatus)
1587 #define YYBACKUP(token, value) \
1589 if (yychar == YYEMPTY && yylen == 1) \
1590 { yychar = (token), yylval = (value); \
1591 yychar1 = YYTRANSLATE (yychar); \
1596 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1600 #define YYERRCODE 256
1603 #define YYLEX yylex()
1609 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1611 #define YYLEX yylex(&yylval, &yylloc)
1613 #else /* not YYLSP_NEEDED */
1615 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1617 #define YYLEX yylex(&yylval)
1619 #endif /* not YYLSP_NEEDED */
1622 /* If nonreentrant, generate the variables here */
1626 int yychar; /* the lookahead symbol */
1627 YYSTYPE yylval; /* the semantic value of the */
1628 /* lookahead symbol */
1631 YYLTYPE yylloc; /* location data for the lookahead */
1635 int yynerrs; /* number of parse errors so far */
1636 #endif /* not YYPURE */
1639 int yydebug; /* nonzero means print parse trace */
1640 /* Since this is uninitialized, it does not stop multiple parsers
1644 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1647 #define YYINITDEPTH 200
1650 /* YYMAXDEPTH is the maximum size the stacks can grow to
1651 (effective only if the built-in stack extension method is used). */
1658 #define YYMAXDEPTH 10000
1661 /* Prevent warning if -Wstrict-prototypes. */
1666 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1667 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1668 #else /* not GNU C or C++ */
1671 /* This is the most reliable way to avoid incompatibilities
1672 in available built-in functions on various systems. */
1674 __yy_memcpy (to, from, count)
1679 register char *f = from;
1680 register char *t = to;
1681 register int i = count;
1687 #else /* __cplusplus */
1689 /* This is the most reliable way to avoid incompatibilities
1690 in available built-in functions on various systems. */
1692 __yy_memcpy (char *to, char *from, int count)
1694 register char *f = from;
1695 register char *t = to;
1696 register int i = count;
1705 #line 196 "/usr/lib/bison.simple"
1707 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1708 into yyparse. The argument should have type void *.
1709 It should actually point to an object.
1710 Grammar actions can access the variable by casting it
1711 to the proper pointer type. */
1713 #ifdef YYPARSE_PARAM
1715 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1716 #define YYPARSE_PARAM_DECL
1717 #else /* not __cplusplus */
1718 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1719 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1720 #endif /* not __cplusplus */
1721 #else /* not YYPARSE_PARAM */
1722 #define YYPARSE_PARAM_ARG
1723 #define YYPARSE_PARAM_DECL
1724 #endif /* not YYPARSE_PARAM */
1727 yyparse(YYPARSE_PARAM_ARG)
1730 register int yystate;
1732 register short *yyssp;
1733 register YYSTYPE *yyvsp;
1734 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1735 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1737 short yyssa[YYINITDEPTH]; /* the state stack */
1738 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1740 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1741 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1744 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1745 YYLTYPE *yyls = yylsa;
1748 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1750 #define YYPOPSTACK (yyvsp--, yyssp--)
1753 int yystacksize = YYINITDEPTH;
1764 YYSTYPE yyval; /* the variable used to return */
1765 /* semantic values from the action */
1772 fprintf(stderr, "Starting parse\n");
1778 yychar = YYEMPTY; /* Cause a token to be read. */
1780 /* Initialize stack pointers.
1781 Waste one element of value and location stack
1782 so that they stay on the same level as the state stack.
1783 The wasted elements are never initialized. */
1791 /* Push a new state, which is found in yystate . */
1792 /* In all cases, when you get here, the value and location stacks
1793 have just been pushed. so pushing a state here evens the stacks. */
1798 if (yyssp >= yyss + yystacksize - 1)
1800 /* Give user a chance to reallocate the stack */
1801 /* Use copies of these so that the &'s don't force the real ones into memory. */
1802 YYSTYPE *yyvs1 = yyvs;
1803 short *yyss1 = yyss;
1805 YYLTYPE *yyls1 = yyls;
1808 /* Get the current used size of the three stacks, in elements. */
1809 int size = yyssp - yyss + 1;
1812 /* Each stack pointer address is followed by the size of
1813 the data in use in that stack, in bytes. */
1815 /* This used to be a conditional around just the two extra args,
1816 but that might be undefined if yyoverflow is a macro. */
1817 yyoverflow("parser stack overflow",
1818 &yyss1, size * sizeof (*yyssp),
1819 &yyvs1, size * sizeof (*yyvsp),
1820 &yyls1, size * sizeof (*yylsp),
1823 yyoverflow("parser stack overflow",
1824 &yyss1, size * sizeof (*yyssp),
1825 &yyvs1, size * sizeof (*yyvsp),
1829 yyss = yyss1; yyvs = yyvs1;
1833 #else /* no yyoverflow */
1834 /* Extend the stack our own way. */
1835 if (yystacksize >= YYMAXDEPTH)
1837 yyerror("parser stack overflow");
1841 if (yystacksize > YYMAXDEPTH)
1842 yystacksize = YYMAXDEPTH;
1843 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1844 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
1845 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1846 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
1848 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1849 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
1851 #endif /* no yyoverflow */
1853 yyssp = yyss + size - 1;
1854 yyvsp = yyvs + size - 1;
1856 yylsp = yyls + size - 1;
1861 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1864 if (yyssp >= yyss + yystacksize - 1)
1870 fprintf(stderr, "Entering state %d\n", yystate);
1876 /* Do appropriate processing given the current state. */
1877 /* Read a lookahead token if we need one and don't already have one. */
1880 /* First try to decide what to do without reference to lookahead token. */
1882 yyn = yypact[yystate];
1886 /* Not known => get a lookahead token if don't already have one. */
1888 /* yychar is either YYEMPTY or YYEOF
1889 or a valid token in external form. */
1891 if (yychar == YYEMPTY)
1895 fprintf(stderr, "Reading a token: ");
1900 /* Convert token to internal form (in yychar1) for indexing tables with */
1902 if (yychar <= 0) /* This means end of input. */
1905 yychar = YYEOF; /* Don't call YYLEX any more */
1909 fprintf(stderr, "Now at end of input.\n");
1914 yychar1 = YYTRANSLATE(yychar);
1919 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1920 /* Give the individual parser a way to print the precise meaning
1921 of a token, for further debugging info. */
1923 YYPRINT (stderr, yychar, yylval);
1925 fprintf (stderr, ")\n");
1931 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1936 /* yyn is what to do for this token type in this state.
1937 Negative => reduce, -yyn is rule number.
1938 Positive => shift, yyn is new state.
1939 New state is final state => don't bother to shift,
1940 just return success.
1941 0, or most negative number => error. */
1956 /* Shift the lookahead token. */
1960 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
1963 /* Discard the token being shifted unless it is eof. */
1964 if (yychar != YYEOF)
1972 /* count tokens shifted since error; after three, turn off error status. */
1973 if (yyerrstatus) yyerrstatus--;
1978 /* Do the default action for the current state. */
1981 yyn = yydefact[yystate];
1985 /* Do a reduction. yyn is the number of a rule to reduce with. */
1989 yyval = yyvsp[1-yylen]; /* implement default value of the action */
1996 fprintf (stderr, "Reducing via rule %d (line %d), ",
1999 /* Print the symbols being reduced, and their result. */
2000 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2001 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2002 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2010 #line 372 "llgrammar.y"
2011 { lhExternals (yyvsp[0].interfacelist); ;
2014 #line 373 "llgrammar.y"
2015 { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
2018 #line 376 "llgrammar.y"
2019 { yyval.interfacelist = interfaceNodeList_new (); ;
2022 #line 377 "llgrammar.y"
2023 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2026 #line 384 "llgrammar.y"
2027 { yyval.interfacelist = interfaceNodeList_new (); ;
2030 #line 385 "llgrammar.y"
2031 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2034 #line 386 "llgrammar.y"
2035 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2038 #line 389 "llgrammar.y"
2039 { yyval.interfacelist = interfaceNodeList_new (); ;
2042 #line 390 "llgrammar.y"
2043 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2046 #line 399 "llgrammar.y"
2047 { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2048 /* assume subspecs are already processed, symbol table info in external file */
2052 #line 405 "llgrammar.y"
2053 { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
2056 #line 409 "llgrammar.y"
2057 { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
2060 #line 411 "llgrammar.y"
2061 { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
2064 #line 413 "llgrammar.y"
2065 { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
2068 #line 415 "llgrammar.y"
2069 { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
2072 #line 417 "llgrammar.y"
2073 { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
2076 #line 419 "llgrammar.y"
2077 { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
2080 #line 423 "llgrammar.y"
2081 { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
2084 #line 426 "llgrammar.y"
2085 { yyval.paramlist = paramNodeList_new (); ;
2088 #line 427 "llgrammar.y"
2089 { yyval.paramlist = yyvsp[0].paramlist; ;
2092 #line 431 "llgrammar.y"
2093 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
2096 #line 433 "llgrammar.y"
2097 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
2100 #line 436 "llgrammar.y"
2101 { yyval.param = markYieldParamNode (yyvsp[0].param); ;
2104 #line 437 "llgrammar.y"
2105 { yyval.param = yyvsp[0].param; ;
2108 #line 440 "llgrammar.y"
2109 { symtable_export (g_symtab, FALSE); ;
2112 #line 441 "llgrammar.y"
2113 { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
2116 #line 445 "llgrammar.y"
2117 { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
2120 #line 447 "llgrammar.y"
2121 { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
2124 #line 449 "llgrammar.y"
2125 { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
2128 #line 451 "llgrammar.y"
2129 { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
2132 #line 455 "llgrammar.y"
2133 { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
2136 #line 459 "llgrammar.y"
2137 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
2140 #line 461 "llgrammar.y"
2141 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
2144 #line 463 "llgrammar.y"
2145 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
2148 #line 466 "llgrammar.y"
2149 { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
2152 #line 467 "llgrammar.y"
2153 { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
2156 #line 470 "llgrammar.y"
2157 { yyval.typequal = qual_createPrintfLike (); ;
2160 #line 471 "llgrammar.y"
2161 { yyval.typequal = qual_createScanfLike (); ;
2164 #line 472 "llgrammar.y"
2165 { yyval.typequal = qual_createMessageLike (); ;
2168 #line 475 "llgrammar.y"
2169 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2172 #line 477 "llgrammar.y"
2173 { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls,
2174 yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2175 /* type, declarator, glovbls, privateinits,
2176 lets, checks, requires, modifies, ensures, claims */
2177 symtable_exitScope (g_symtab);
2181 #line 483 "llgrammar.y"
2182 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2185 #line 487 "llgrammar.y"
2186 { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist,
2187 yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2188 /* type, declarator, glovbls, privateinits,
2189 lets, checks, requires, modifies, ensures, claims */
2190 symtable_exitScope (g_symtab);
2194 #line 497 "llgrammar.y"
2195 { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
2198 #line 499 "llgrammar.y"
2199 { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate);
2200 symtable_exitScope (g_symtab); ;
2203 #line 502 "llgrammar.y"
2204 { yyval.claim = (claimNode) 0; ;
2207 #line 505 "llgrammar.y"
2208 {g_inTypeDef = TRUE; ;
2211 #line 505 "llgrammar.y"
2212 {g_inTypeDef = FALSE; ;
2215 #line 506 "llgrammar.y"
2216 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
2219 #line 507 "llgrammar.y"
2220 {g_inTypeDef = TRUE; ;
2223 #line 508 "llgrammar.y"
2224 {g_inTypeDef = FALSE; ;
2227 #line 509 "llgrammar.y"
2228 { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2231 #line 510 "llgrammar.y"
2232 {g_inTypeDef = TRUE; ;
2235 #line 511 "llgrammar.y"
2236 {g_inTypeDef = FALSE; ;
2239 #line 512 "llgrammar.y"
2240 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2243 #line 513 "llgrammar.y"
2244 {g_inTypeDef = TRUE; ;
2247 #line 513 "llgrammar.y"
2248 {g_inTypeDef = FALSE; ;
2251 #line 514 "llgrammar.y"
2252 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
2255 #line 517 "llgrammar.y"
2256 { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
2259 #line 518 "llgrammar.y"
2260 { g_inTypeDef = FALSE; ;
2263 #line 519 "llgrammar.y"
2264 { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
2267 #line 521 "llgrammar.y"
2268 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
2271 #line 523 "llgrammar.y"
2272 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
2275 #line 539 "llgrammar.y"
2276 { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
2279 #line 541 "llgrammar.y"
2280 { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
2283 #line 544 "llgrammar.y"
2284 { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
2287 #line 546 "llgrammar.y"
2288 { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
2291 #line 547 "llgrammar.y"
2292 { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
2295 #line 550 "llgrammar.y"
2296 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2299 #line 551 "llgrammar.y"
2300 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2303 #line 559 "llgrammar.y"
2304 { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
2307 #line 561 "llgrammar.y"
2308 { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
2311 #line 565 "llgrammar.y"
2312 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
2315 #line 567 "llgrammar.y"
2316 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
2319 #line 569 "llgrammar.y"
2320 { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
2323 #line 571 "llgrammar.y"
2324 { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
2327 #line 574 "llgrammar.y"
2328 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2331 #line 575 "llgrammar.y"
2332 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2335 #line 579 "llgrammar.y"
2336 { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
2339 #line 581 "llgrammar.y"
2340 { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
2343 #line 582 "llgrammar.y"
2344 { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
2347 #line 586 "llgrammar.y"
2348 { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
2351 #line 587 "llgrammar.y"
2352 { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
2355 #line 591 "llgrammar.y"
2356 { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
2359 #line 592 "llgrammar.y"
2360 { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
2363 #line 595 "llgrammar.y"
2364 { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
2367 #line 596 "llgrammar.y"
2368 { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
2371 #line 597 "llgrammar.y"
2372 { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
2373 yyvsp[-1].name, yyvsp[0].signature); ;
2376 #line 601 "llgrammar.y"
2377 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
2380 #line 602 "llgrammar.y"
2381 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
2384 #line 610 "llgrammar.y"
2385 { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
2388 #line 612 "llgrammar.y"
2389 { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
2392 #line 615 "llgrammar.y"
2393 { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
2396 #line 616 "llgrammar.y"
2397 { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
2400 #line 620 "llgrammar.y"
2401 { yyval.globals = varDeclarationNodeList_new (); ;
2404 #line 622 "llgrammar.y"
2405 { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
2408 #line 625 "llgrammar.y"
2409 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
2412 #line 626 "llgrammar.y"
2413 { yyval.vardeclaration = makeInternalStateNode (); ;
2416 #line 627 "llgrammar.y"
2417 { yyval.vardeclaration = makeFileSystemNode (); ;
2420 #line 630 "llgrammar.y"
2421 { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
2424 #line 631 "llgrammar.y"
2425 { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
2428 #line 635 "llgrammar.y"
2429 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
2432 #line 638 "llgrammar.y"
2433 { yyval.letdecls = letDeclNodeList_new (); ;
2436 #line 639 "llgrammar.y"
2437 { yyval.letdecls = yyvsp[-1].letdecls; ;
2440 #line 642 "llgrammar.y"
2441 { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
2444 #line 643 "llgrammar.y"
2445 { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
2448 #line 646 "llgrammar.y"
2449 { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
2452 #line 647 "llgrammar.y"
2453 { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
2456 #line 652 "llgrammar.y"
2457 { yyval.lclpredicate = (lclPredicateNode)0; ;
2460 #line 653 "llgrammar.y"
2461 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2464 #line 656 "llgrammar.y"
2465 { yyval.lclpredicate = (lclPredicateNode)0; ;
2468 #line 657 "llgrammar.y"
2469 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2472 #line 660 "llgrammar.y"
2473 { yyval.modify = (modifyNode)0; ;
2476 #line 661 "llgrammar.y"
2477 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
2480 #line 662 "llgrammar.y"
2481 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
2484 #line 663 "llgrammar.y"
2485 { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
2488 #line 666 "llgrammar.y"
2489 { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
2492 #line 667 "llgrammar.y"
2493 { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
2496 #line 670 "llgrammar.y"
2497 { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
2500 #line 671 "llgrammar.y"
2501 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
2504 #line 672 "llgrammar.y"
2505 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
2508 #line 673 "llgrammar.y"
2509 { yyval.storeref = makeStoreRefNodeInternal (); ;
2512 #line 674 "llgrammar.y"
2513 { yyval.storeref = makeStoreRefNodeSystem (); ;
2516 #line 677 "llgrammar.y"
2517 { yyval.lclpredicate = (lclPredicateNode)0; ;
2520 #line 678 "llgrammar.y"
2521 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2524 #line 681 "llgrammar.y"
2525 { yyval.lclpredicate = (lclPredicateNode)0; ;
2528 #line 682 "llgrammar.y"
2529 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2532 #line 685 "llgrammar.y"
2533 { yyval.paramlist = paramNodeList_new (); ;
2536 #line 686 "llgrammar.y"
2537 { yyval.paramlist = yyvsp[0].paramlist; ;
2540 #line 690 "llgrammar.y"
2541 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
2544 #line 691 "llgrammar.y"
2545 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
2548 #line 694 "llgrammar.y"
2549 { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
2552 #line 695 "llgrammar.y"
2553 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
2556 #line 698 "llgrammar.y"
2557 { yyval.program = (programNode)0; ;
2560 #line 699 "llgrammar.y"
2561 { yyval.program = yyvsp[-1].program; ;
2564 #line 700 "llgrammar.y"
2565 { yyval.program = yyvsp[-2].program; ;
2568 #line 703 "llgrammar.y"
2569 { yyval.program = makeProgramNode (yyvsp[0].stmt); ;
2572 #line 706 "llgrammar.y"
2573 { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
2576 #line 708 "llgrammar.y"
2577 { programNodeList x = programNodeList_new ();
2578 programNodeList_addh (x, yyvsp[-1].program);
2579 yyval.program = makeProgramNodeAction (x, ACT_ITER);
2583 #line 713 "llgrammar.y"
2584 { programNodeList x = programNodeList_new ();
2585 programNodeList_addh (x, yyvsp[-2].program);
2586 programNodeList_addh (x, yyvsp[0].program);
2587 yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE);
2591 #line 719 "llgrammar.y"
2592 { programNodeList x = programNodeList_new ();
2593 programNodeList_addh (x, yyvsp[-2].program);
2594 programNodeList_addh (x, yyvsp[0].program);
2595 yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE);
2599 #line 727 "llgrammar.y"
2600 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2603 #line 729 "llgrammar.y"
2604 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
2607 #line 731 "llgrammar.y"
2608 { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
2611 #line 733 "llgrammar.y"
2612 { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2615 #line 736 "llgrammar.y"
2616 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
2619 #line 737 "llgrammar.y"
2620 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
2623 #line 741 "llgrammar.y"
2624 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
2627 #line 742 "llgrammar.y"
2628 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
2631 #line 743 "llgrammar.y"
2632 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
2635 #line 744 "llgrammar.y"
2636 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
2639 #line 745 "llgrammar.y"
2640 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
2643 #line 747 "llgrammar.y"
2644 { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
2647 #line 749 "llgrammar.y"
2648 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
2651 #line 752 "llgrammar.y"
2652 { yyval.abstbody = (abstBodyNode)0; ;
2655 #line 753 "llgrammar.y"
2656 { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
2659 #line 754 "llgrammar.y"
2660 { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
2663 #line 755 "llgrammar.y"
2664 { yyval.abstbody = (abstBodyNode)0; ;
2667 #line 758 "llgrammar.y"
2668 { yyval.fcns = fcnNodeList_new (); ;
2671 #line 759 "llgrammar.y"
2672 { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
2675 #line 762 "llgrammar.y"
2676 { yyval.lclpredicate = (lclPredicateNode)0; ;
2679 #line 766 "llgrammar.y"
2680 { g_inTypeDef = FALSE; ;
2683 #line 767 "llgrammar.y"
2684 { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
2685 checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
2686 yyval.lclpredicate = yyvsp[-1].lclpredicate;
2687 symtable_exitScope (g_symtab);
2692 #line 775 "llgrammar.y"
2693 { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
2696 #line 777 "llgrammar.y"
2697 { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
2700 #line 780 "llgrammar.y"
2701 { declareForwardType (yyvsp[0].declare); ;
2704 #line 781 "llgrammar.y"
2705 { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
2708 #line 784 "llgrammar.y"
2709 { yyval.abstbody = (abstBodyNode)0; ;
2712 #line 785 "llgrammar.y"
2713 { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2716 #line 788 "llgrammar.y"
2717 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
2720 #line 789 "llgrammar.y"
2721 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
2724 #line 790 "llgrammar.y"
2725 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
2728 #line 791 "llgrammar.y"
2729 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
2732 #line 792 "llgrammar.y"
2733 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
2736 #line 793 "llgrammar.y"
2737 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
2740 #line 794 "llgrammar.y"
2741 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
2744 #line 795 "llgrammar.y"
2745 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
2748 #line 796 "llgrammar.y"
2749 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
2752 #line 797 "llgrammar.y"
2753 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
2756 #line 805 "llgrammar.y"
2757 { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
2760 #line 806 "llgrammar.y"
2761 { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
2764 #line 812 "llgrammar.y"
2765 { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
2768 #line 814 "llgrammar.y"
2769 { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
2772 #line 819 "llgrammar.y"
2773 { yyval.typequal = qual_createOut (); ;
2776 #line 820 "llgrammar.y"
2777 { yyval.typequal = qual_createUnused (); ;
2780 #line 821 "llgrammar.y"
2781 { yyval.typequal = qual_createSef (); ;
2784 #line 822 "llgrammar.y"
2785 { yyval.typequal = qual_createOnly (); ;
2788 #line 823 "llgrammar.y"
2789 { yyval.typequal = qual_createOwned (); ;
2792 #line 824 "llgrammar.y"
2793 { yyval.typequal = qual_createDependent (); ;
2796 #line 825 "llgrammar.y"
2797 { yyval.typequal = qual_createKeep (); ;
2800 #line 826 "llgrammar.y"
2801 { yyval.typequal = qual_createKept (); ;
2804 #line 827 "llgrammar.y"
2805 { yyval.typequal = qual_createObserver (); ;
2808 #line 828 "llgrammar.y"
2809 { yyval.typequal = qual_createExits (); ;
2812 #line 829 "llgrammar.y"
2813 { yyval.typequal = qual_createMayExit (); ;
2816 #line 830 "llgrammar.y"
2817 { yyval.typequal = qual_createTrueExit (); ;
2820 #line 831 "llgrammar.y"
2821 { yyval.typequal = qual_createFalseExit (); ;
2824 #line 832 "llgrammar.y"
2825 { yyval.typequal = qual_createNeverExit (); ;
2828 #line 833 "llgrammar.y"
2829 { yyval.typequal = qual_createOnly (); ;
2832 #line 834 "llgrammar.y"
2833 { yyval.typequal = qual_createShared (); ;
2836 #line 835 "llgrammar.y"
2837 { yyval.typequal = qual_createUnique (); ;
2840 #line 836 "llgrammar.y"
2841 { yyval.typequal = qual_createChecked (); ;
2844 #line 837 "llgrammar.y"
2845 { yyval.typequal = qual_createUnchecked (); ;
2848 #line 838 "llgrammar.y"
2849 { yyval.typequal = qual_createCheckedStrict (); ;
2852 #line 839 "llgrammar.y"
2853 { yyval.typequal = qual_createTrueNull (); ;
2856 #line 840 "llgrammar.y"
2857 { yyval.typequal = qual_createFalseNull (); ;
2860 #line 841 "llgrammar.y"
2861 { yyval.typequal = qual_createRelNull (); ;
2864 #line 842 "llgrammar.y"
2865 { yyval.typequal = qual_createRelDef (); ;
2868 #line 843 "llgrammar.y"
2869 { yyval.typequal = qual_createRefCounted (); ;
2872 #line 844 "llgrammar.y"
2873 { yyval.typequal = qual_createRefs (); ;
2876 #line 845 "llgrammar.y"
2877 { yyval.typequal = qual_createNewRef (); ;
2880 #line 846 "llgrammar.y"
2881 { yyval.typequal = qual_createKillRef (); ;
2884 #line 847 "llgrammar.y"
2885 { yyval.typequal = qual_createNull (); ;
2888 #line 848 "llgrammar.y"
2889 { yyval.typequal = qual_createNotNull (); ;
2892 #line 849 "llgrammar.y"
2893 { yyval.typequal = qual_createReturned (); ;
2896 #line 850 "llgrammar.y"
2897 { yyval.typequal = qual_createExposed (); ;
2900 #line 851 "llgrammar.y"
2901 { yyval.typequal = qual_createPartial (); ;
2904 #line 852 "llgrammar.y"
2905 { yyval.typequal = qual_createUndef (); ;
2908 #line 853 "llgrammar.y"
2909 { yyval.typequal = qual_createKilled (); ;
2912 #line 857 "llgrammar.y"
2913 { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
2916 #line 859 "llgrammar.y"
2917 { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
2920 #line 861 "llgrammar.y"
2921 { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
2924 #line 863 "llgrammar.y"
2925 { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
2928 #line 865 "llgrammar.y"
2929 { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
2932 #line 875 "llgrammar.y"
2933 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
2934 yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
2937 #line 879 "llgrammar.y"
2938 { yyval.count = 1; ;
2941 #line 880 "llgrammar.y"
2942 { yyval.count = yyvsp[-1].count + 1; ;
2945 #line 884 "llgrammar.y"
2946 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
2949 #line 886 "llgrammar.y"
2950 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
2953 #line 888 "llgrammar.y"
2954 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
2957 #line 890 "llgrammar.y"
2958 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
2961 #line 892 "llgrammar.y"
2962 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
2965 #line 894 "llgrammar.y"
2966 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
2969 #line 897 "llgrammar.y"
2970 { yyval.ltok = ltoken_undefined; ;
2973 #line 901 "llgrammar.y"
2974 { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
2977 #line 902 "llgrammar.y"
2978 { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
2981 #line 907 "llgrammar.y"
2982 { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
2985 #line 911 "llgrammar.y"
2986 { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
2989 #line 913 "llgrammar.y"
2990 { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
2993 #line 916 "llgrammar.y"
2997 #line 917 "llgrammar.y"
3001 #line 921 "llgrammar.y"
3002 { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
3005 #line 923 "llgrammar.y"
3006 { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
3009 #line 926 "llgrammar.y"
3010 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3013 #line 927 "llgrammar.y"
3014 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3017 #line 937 "llgrammar.y"
3018 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3021 #line 938 "llgrammar.y"
3022 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3025 #line 941 "llgrammar.y"
3026 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3029 #line 942 "llgrammar.y"
3030 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3033 #line 943 "llgrammar.y"
3034 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3037 #line 944 "llgrammar.y"
3038 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3041 #line 945 "llgrammar.y"
3042 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3045 #line 946 "llgrammar.y"
3046 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3049 #line 949 "llgrammar.y"
3050 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3053 #line 950 "llgrammar.y"
3054 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3057 #line 951 "llgrammar.y"
3058 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3061 #line 952 "llgrammar.y"
3062 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3065 #line 953 "llgrammar.y"
3066 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3069 #line 954 "llgrammar.y"
3070 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3073 #line 963 "llgrammar.y"
3074 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3077 #line 964 "llgrammar.y"
3078 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3081 #line 965 "llgrammar.y"
3082 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3085 #line 966 "llgrammar.y"
3086 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3089 #line 967 "llgrammar.y"
3090 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3093 #line 973 "llgrammar.y"
3094 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3097 #line 974 "llgrammar.y"
3098 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3101 #line 975 "llgrammar.y"
3102 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3105 #line 985 "llgrammar.y"
3106 { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3109 #line 986 "llgrammar.y"
3110 { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3113 #line 987 "llgrammar.y"
3114 { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
3117 #line 992 "llgrammar.y"
3118 { yyval.abstDecl = (abstDeclaratorNode)0; ;
3121 #line 993 "llgrammar.y"
3122 { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
3125 #line 996 "llgrammar.y"
3126 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3129 #line 997 "llgrammar.y"
3130 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3133 #line 998 "llgrammar.y"
3134 { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
3137 #line 999 "llgrammar.y"
3138 { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
3141 #line 1000 "llgrammar.y"
3142 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3145 #line 1001 "llgrammar.y"
3146 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3149 #line 1002 "llgrammar.y"
3150 { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
3153 #line 1003 "llgrammar.y"
3154 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3157 #line 1006 "llgrammar.y"
3158 { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
3161 #line 1007 "llgrammar.y"
3162 { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
3165 #line 1011 "llgrammar.y"
3166 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
3169 #line 1013 "llgrammar.y"
3170 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3173 #line 1015 "llgrammar.y"
3174 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3177 #line 1017 "llgrammar.y"
3178 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3181 #line 1019 "llgrammar.y"
3182 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
3183 opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3186 #line 1022 "llgrammar.y"
3187 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3190 #line 1024 "llgrammar.y"
3191 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3194 #line 1026 "llgrammar.y"
3195 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3198 #line 1028 "llgrammar.y"
3199 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3202 #line 1030 "llgrammar.y"
3203 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3206 #line 1032 "llgrammar.y"
3207 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3210 #line 1040 "llgrammar.y"
3211 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3214 #line 1042 "llgrammar.y"
3215 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3218 #line 1044 "llgrammar.y"
3219 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
3220 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3223 #line 1047 "llgrammar.y"
3224 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
3225 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3228 #line 1050 "llgrammar.y"
3229 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
3230 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3233 #line 1053 "llgrammar.y"
3234 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
3235 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3238 #line 1070 "llgrammar.y"
3239 { yyval.count = 0; ;
3242 #line 1074 "llgrammar.y"
3243 { yyval.count = 1; ;
3246 #line 1075 "llgrammar.y"
3247 { yyval.count = yyvsp[-2].count + 1; ;
3250 #line 1082 "llgrammar.y"
3251 { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3254 #line 1085 "llgrammar.y"
3255 { yyval.ltokenList = ltokenList_new (); ;
3258 #line 1089 "llgrammar.y"
3259 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3262 #line 1090 "llgrammar.y"
3263 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3266 #line 1093 "llgrammar.y"
3267 { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
3270 #line 1096 "llgrammar.y"
3271 { yyval.term = checkSort (yyvsp[0].term); ;
3274 #line 1103 "llgrammar.y"
3275 { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
3278 #line 1105 "llgrammar.y"
3279 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
3282 #line 1111 "llgrammar.y"
3283 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
3284 symtable_exitScope (g_symtab);
3288 #line 1115 "llgrammar.y"
3289 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3292 #line 1117 "llgrammar.y"
3293 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3296 #line 1121 "llgrammar.y"
3297 { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
3300 #line 1122 "llgrammar.y"
3301 { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
3304 #line 1130 "llgrammar.y"
3305 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
3308 #line 1133 "llgrammar.y"
3309 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3312 #line 1134 "llgrammar.y"
3313 { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
3316 #line 1137 "llgrammar.y"
3317 { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
3320 #line 1138 "llgrammar.y"
3321 { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
3324 #line 1142 "llgrammar.y"
3325 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3328 #line 1143 "llgrammar.y"
3329 { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3332 #line 1144 "llgrammar.y"
3333 { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
3336 #line 1145 "llgrammar.y"
3337 { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
3340 #line 1146 "llgrammar.y"
3341 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3344 #line 1147 "llgrammar.y"
3345 { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3348 #line 1150 "llgrammar.y"
3349 { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3352 #line 1155 "llgrammar.y"
3353 { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok);
3354 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3357 #line 1158 "llgrammar.y"
3358 { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3361 #line 1160 "llgrammar.y"
3362 { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok);
3363 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok));
3367 #line 1164 "llgrammar.y"
3368 { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3371 #line 1167 "llgrammar.y"
3372 { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3375 #line 1168 "llgrammar.y"
3376 { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3379 #line 1171 "llgrammar.y"
3380 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3383 #line 1172 "llgrammar.y"
3384 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3387 #line 1176 "llgrammar.y"
3388 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
3391 #line 1178 "llgrammar.y"
3392 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3395 #line 1180 "llgrammar.y"
3396 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3399 #line 1183 "llgrammar.y"
3400 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
3403 #line 1185 "llgrammar.y"
3404 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3407 #line 1187 "llgrammar.y"
3408 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3411 #line 1189 "llgrammar.y"
3412 { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
3416 #line 1192 "llgrammar.y"
3417 { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
3420 #line 1194 "llgrammar.y"
3421 { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3424 #line 1197 "llgrammar.y"
3425 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3428 #line 1198 "llgrammar.y"
3429 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3432 #line 1208 "llgrammar.y"
3433 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3436 #line 1209 "llgrammar.y"
3437 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3440 #line 1210 "llgrammar.y"
3441 { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
3444 #line 1211 "llgrammar.y"
3445 { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
3448 #line 1213 "llgrammar.y"
3449 { termNodeList x = termNodeList_new ();
3450 termNodeList_addh (x, yyvsp[-1].term);
3451 yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok);
3455 #line 1218 "llgrammar.y"
3456 { termNodeList x = termNodeList_new ();
3457 termNodeList_addh (x, yyvsp[-3].term);
3458 termNodeList_addh (x, yyvsp[-1].term);
3459 yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok);
3463 #line 1223 "llgrammar.y"
3464 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
3467 #line 1233 "llgrammar.y"
3468 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
3471 #line 1234 "llgrammar.y"
3472 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
3475 #line 1235 "llgrammar.y"
3476 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
3479 #line 1236 "llgrammar.y"
3480 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
3483 #line 1240 "llgrammar.y"
3484 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
3487 #line 1242 "llgrammar.y"
3488 { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
3491 #line 1245 "llgrammar.y"
3492 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
3493 si->kind = SPE_QUANT;
3494 symtable_enterScope (g_symtab, si); ;
3497 #line 1249 "llgrammar.y"
3498 { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
3501 #line 1252 "llgrammar.y"
3502 { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
3505 #line 1253 "llgrammar.y"
3506 { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
3509 #line 1256 "llgrammar.y"
3510 { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
3513 #line 1257 "llgrammar.y"
3514 { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
3517 /* the action file gets copied in in place of this dollarsign */
3518 #line 498 "/usr/lib/bison.simple"
3529 short *ssp1 = yyss - 1;
3530 fprintf (stderr, "state stack now");
3531 while (ssp1 != yyssp)
3532 fprintf (stderr, " %d", *++ssp1);
3533 fprintf (stderr, "\n");
3543 yylsp->first_line = yylloc.first_line;
3544 yylsp->first_column = yylloc.first_column;
3545 yylsp->last_line = (yylsp-1)->last_line;
3546 yylsp->last_column = (yylsp-1)->last_column;
3551 yylsp->last_line = (yylsp+yylen-1)->last_line;
3552 yylsp->last_column = (yylsp+yylen-1)->last_column;
3556 /* Now "shift" the result of the reduction.
3557 Determine what state that goes to,
3558 based on the state we popped back to
3559 and the rule number reduced by. */
3563 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3564 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3565 yystate = yytable[yystate];
3567 yystate = yydefgoto[yyn - YYNTBASE];
3571 yyerrlab: /* here on detecting error */
3574 /* If not already recovering from an error, report this error. */
3578 #ifdef YYERROR_VERBOSE
3579 yyn = yypact[yystate];
3581 if (yyn > YYFLAG && yyn < YYLAST)
3588 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3589 for (x = (yyn < 0 ? -yyn : 0);
3590 x < (sizeof(yytname) / sizeof(char *)); x++)
3591 if (yycheck[x + yyn] == x)
3592 size += strlen(yytname[x]) + 15, count++;
3593 msg = (char *) malloc(size + 15);
3596 strcpy(msg, "parse error");
3601 for (x = (yyn < 0 ? -yyn : 0);
3602 x < (sizeof(yytname) / sizeof(char *)); x++)
3603 if (yycheck[x + yyn] == x)
3605 strcat(msg, count == 0 ? ", expecting `" : " or `");
3606 strcat(msg, yytname[x]);
3615 yyerror ("parse error; also virtual memory exceeded");
3618 #endif /* YYERROR_VERBOSE */
3619 yyerror("parse error");
3623 yyerrlab1: /* here on error raised explicitly by an action */
3625 if (yyerrstatus == 3)
3627 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3629 /* return failure if at end of input */
3630 if (yychar == YYEOF)
3635 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3641 /* Else will try to reuse lookahead token
3642 after shifting the error token. */
3644 yyerrstatus = 3; /* Each real token shifted decrements this */
3648 yyerrdefault: /* current state does not do anything special for the error token. */
3651 /* This is wrong; only states that explicitly want error tokens
3652 should shift them. */
3653 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3654 if (yyn) goto yydefault;
3657 yyerrpop: /* pop the current state because it cannot handle the error token */
3659 if (yyssp == yyss) YYABORT;
3669 short *ssp1 = yyss - 1;
3670 fprintf (stderr, "Error: state stack now");
3671 while (ssp1 != yyssp)
3672 fprintf (stderr, " %d", *++ssp1);
3673 fprintf (stderr, "\n");
3679 yyn = yypact[yystate];
3684 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3703 fprintf(stderr, "Shifting error token, ");
3714 #line 1272 "llgrammar.y"
3717 # include "bison.reset"
3720 ** yytext is set in lex scanner
3721 ** extern YYSTYPE yylval;
3722 ** yylval is defined by code generated by bison
3725 void ylerror (char *s)
3728 ** This resetting of the left context is very important when multiple
3729 ** files are to be parsed. We do not want failures to propagate.
3730 ** Lex/Yacc does not reset the flags when the parsing goes bad.
3735 lclfatalerror (yllval.ltok,
3736 message ("%s: Token code: %s, Token String: %s",
3737 cstring_fromChars (s),
3738 ltoken_unparseCodeName (yllval.ltok),
3739 ltoken_getRawString (yllval.ltok)));
3743 static void yyprint (FILE *f, int t, YYSTYPE value)
3745 fprintf (f, " type: %d (%s)", t,
3746 cstring_toCharsSafe (ltoken_getRawString (value.ltok)));