2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
49 /*drl added 11/27/2001*/
51 /* < end of bison.head > */
54 /* A Bison parser, made from llgrammar.y
57 #define YYBISON 1 /* Identify Bison output. */
59 #define yyparse ylparse
61 #define yyerror ylerror
64 #define yydebug yldebug
65 #define yynerrs ylnerrs
67 # define PREFIX_OP 258
68 # define POSTFIX_OP 259
69 # define LLT_MULOP 260
71 # define LLT_VERTICALBAR 262
72 # define ITERATION_OP 263
74 # define LLT_LBRACKET 265
75 # define selectSym 266
76 # define LLT_IF_THEN_ELSE 267
77 # define logicalOp 268
79 # define equationSym 270
80 # define commentSym 271
81 # define LLT_WHITESPACE 272
83 # define LLT_TYPEDEF_NAME 274
84 # define quantifierSym 275
90 # define markerSym 281
94 # define LLT_COLON 285
95 # define LLT_COMMA 286
96 # define LLT_EQUALS 287
97 # define LLT_LBRACE 288
98 # define LLT_RBRACE 289
99 # define LLT_RBRACKET 290
100 # define LLT_RPAR 291
101 # define LLT_QUOTE 292
103 # define LLT_CCHAR 294
104 # define LLT_CFLOAT 295
105 # define LLT_CINTEGER 296
106 # define LLT_LCSTRING 297
108 # define LLT_ANYTHING 299
110 # define LLT_BODY 301
111 # define LLT_CLAIMS 302
112 # define LLT_CHECKS 303
113 # define LLT_CONSTANT 304
114 # define LLT_ELSE 305
115 # define LLT_ENSURES 306
117 # define LLT_FRESH 308
119 # define LLT_IMMUTABLE 310
120 # define LLT_IMPORTS 311
121 # define LLT_CONSTRAINT 312
122 # define LLT_ISSUB 313
124 # define LLT_MODIFIES 315
125 # define LLT_MUTABLE 316
126 # define LLT_NOTHING 317
127 # define LLT_INTERNAL 318
128 # define LLT_FILESYS 319
132 # define LLT_ONLY 323
133 # define LLT_PARTIAL 324
134 # define LLT_OWNED 325
135 # define LLT_DEPENDENT 326
136 # define LLT_KEEP 327
137 # define LLT_KEPT 328
138 # define LLT_TEMP 329
139 # define LLT_SHARED 330
140 # define LLT_UNIQUE 331
141 # define LLT_UNUSED 332
142 # define LLT_EXITS 333
143 # define LLT_MAYEXIT 334
144 # define LLT_NEVEREXIT 335
145 # define LLT_TRUEEXIT 336
146 # define LLT_FALSEEXIT 337
147 # define LLT_UNDEF 338
148 # define LLT_KILLED 339
149 # define LLT_CHECKMOD 340
150 # define LLT_CHECKED 341
151 # define LLT_UNCHECKED 342
152 # define LLT_CHECKEDSTRICT 343
153 # define LLT_TRUENULL 344
154 # define LLT_FALSENULL 345
155 # define LLT_LNULL 346
156 # define LLT_LNOTNULL 347
157 # define LLT_RETURNED 348
158 # define LLT_OBSERVER 349
159 # define LLT_EXPOSED 350
160 # define LLT_REFCOUNTED 351
161 # define LLT_REFS 352
162 # define LLT_RELNULL 353
163 # define LLT_RELDEF 354
164 # define LLT_KILLREF 355
165 # define LLT_NULLTERMINATED 356
166 # define LLT_TEMPREF 357
167 # define LLT_NEWREF 358
168 # define LLT_PRIVATE 359
169 # define LLT_REQUIRES 360
170 # define LLT_RESULT 361
171 # define LLT_SIZEOF 362
172 # define LLT_SPEC 363
173 # define LLT_TAGGEDUNION 364
174 # define LLT_THEN 365
175 # define LLT_TYPE 366
176 # define LLT_TYPEDEF 367
177 # define LLT_UNCHANGED 368
178 # define LLT_USES 369
179 # define LLT_CHAR 370
180 # define LLT_CONST 371
181 # define LLT_DOUBLE 372
182 # define LLT_ENUM 373
183 # define LLT_FLOAT 374
185 # define LLT_ITER 376
186 # define LLT_YIELD 377
187 # define LLT_LONG 378
188 # define LLT_SHORT 379
189 # define LLT_SIGNED 380
190 # define LLT_UNKNOWN 381
191 # define LLT_STRUCT 382
192 # define LLT_TELIPSIS 383
193 # define LLT_UNION 384
194 # define LLT_UNSIGNED 385
195 # define LLT_VOID 386
196 # define LLT_VOLATILE 387
197 # define LLT_PRINTFLIKE 388
198 # define LLT_SCANFLIKE 389
199 # define LLT_MESSAGELIKE 390
203 # include "splintMacros.nf"
204 # include "llbasic.h"
205 # include "lclscan.h"
206 # include "checking.h"
207 # include "lslparse.h"
209 # include "usymtab_interface.h"
212 static /*@unused@*/ void yyprint ();
216 void ylerror (char *) /*@modifies *g_warningstream@*/ ;
219 bool g_inTypeDef = FALSE;
221 /*@constant int YYDEBUG;@*/
225 # define YYPRINT(file, type, value) yyprint (file, type, value)
228 ** This is necessary, or else when the bison-generated code #include's malloc.h,
229 ** there will be a parse error.
231 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
232 ** in bison-generated files under Win32.
244 ltoken ltok; /* a leaf is also an ltoken */
247 /*@only@*/ ltokenList ltokenList;
248 /*@only@*/ abstDeclaratorNode abstDecl;
249 /*@only@*/ declaratorNode declare;
250 /*@only@*/ declaratorNodeList declarelist;
251 /*@only@*/ typeExpr typeexpr;
252 /*@only@*/ arrayQualNode array;
253 /*@only@*/ quantifierNode quantifier;
254 /*@only@*/ quantifierNodeList quantifiers;
255 /*@only@*/ varNode var;
256 /*@only@*/ varNodeList vars;
257 /*@only@*/ storeRefNode storeref;
258 /*@only@*/ storeRefNodeList storereflist;
259 /*@only@*/ termNode term;
260 /*@only@*/ termNodeList termlist;
261 /*@only@*/ programNode program;
262 /*@only@*/ stmtNode stmt;
263 /*@only@*/ claimNode claim;
264 /*@only@*/ typeNode type;
265 /*@only@*/ iterNode iter;
266 /*@only@*/ fcnNode fcn;
267 /*@only@*/ fcnNodeList fcns;
268 /*@only@*/ letDeclNode letdecl;
269 /*@only@*/ letDeclNodeList letdecls;
270 /*@only@*/ lclPredicateNode lclpredicate;
271 /*@only@*/ modifyNode modify;
272 /*@only@*/ paramNode param;
273 /*@only@*/ paramNodeList paramlist;
274 /*@only@*/ declaratorInvNodeList declaratorinvs;
275 /*@only@*/ declaratorInvNode declaratorinv;
276 /*@only@*/ abstBodyNode abstbody;
277 /*@only@*/ abstractNode abstract;
278 /*@only@*/ exposedNode exposed;
279 /* taggedUnionNode taggedunion; */
280 /*@only@*/ globalList globals;
281 /*@only@*/ constDeclarationNode constdeclaration;
282 /*@only@*/ varDeclarationNode vardeclaration;
283 /*@only@*/ varDeclarationNodeList vardeclarationlist;
284 /*@only@*/ initDeclNodeList initdecls;
285 /*@only@*/ initDeclNode initdecl;
286 /*@only@*/ stDeclNodeList structdecls;
287 /*@only@*/ stDeclNode structdecl;
288 /*@only@*/ strOrUnionNode structorunion;
289 /*@only@*/ enumSpecNode enumspec;
290 /*@only@*/ lclTypeSpecNode lcltypespec;
291 /*@only@*/ typeNameNode typname;
292 /*@only@*/ opFormNode opform;
293 /*@only@*/ sigNode signature;
294 /*@only@*/ nameNode name;
295 /*@only@*/ typeNameNodeList namelist;
296 /*@only@*/ replaceNode replace;
297 /*@only@*/ replaceNodeList replacelist;
298 /*@only@*/ renamingNode renaming;
299 /*@only@*/ traitRefNode traitref;
300 /*@only@*/ traitRefNodeList traitreflist;
301 /*@only@*/ importNode import;
302 /*@only@*/ importNodeList importlist;
303 /*@only@*/ interfaceNode iface;
304 /*@only@*/ interfaceNodeList interfacelist;
305 /*@only@*/ CTypesNode ctypes;
317 #define YYFLAG -32768
320 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
321 #define YYTRANSLATE(x) ((unsigned)(x) <= 390 ? yytranslate[x] : 291)
323 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
324 static const short yytranslate[] =
326 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
351 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
352 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
353 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
354 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
355 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
356 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
357 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
358 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
359 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
360 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
361 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
362 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
363 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
364 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
369 static const short yyprhs[] =
371 0, 0, 1, 5, 6, 9, 11, 13, 14, 17,
372 20, 21, 24, 26, 28, 30, 34, 38, 40, 42,
373 44, 46, 48, 50, 57, 58, 60, 62, 66, 69,
374 71, 72, 76, 78, 80, 82, 84, 89, 93, 98,
375 103, 105, 107, 109, 111, 113, 114, 128, 129, 144,
376 145, 159, 164, 165, 166, 173, 174, 175, 183, 184,
377 185, 193, 194, 195, 202, 203, 204, 211, 214, 217,
378 219, 223, 225, 229, 231, 233, 237, 239, 241, 245,
379 247, 252, 256, 263, 265, 269, 271, 273, 277, 279,
380 283, 285, 289, 293, 297, 302, 304, 306, 308, 310,
381 312, 316, 318, 322, 323, 326, 330, 333, 336, 337,
382 340, 345, 346, 350, 352, 356, 362, 366, 368, 369,
383 373, 374, 378, 379, 383, 387, 391, 393, 397, 399,
384 401, 404, 406, 408, 409, 413, 414, 418, 419, 421,
385 423, 425, 429, 431, 435, 436, 441, 447, 449, 453,
386 456, 460, 464, 469, 473, 479, 486, 488, 492, 494,
387 496, 499, 502, 506, 510, 514, 519, 521, 525, 530,
388 534, 535, 538, 539, 541, 542, 549, 551, 555, 556,
389 560, 561, 565, 567, 569, 571, 573, 575, 577, 579,
390 581, 583, 585, 587, 590, 592, 594, 596, 598, 600,
391 602, 604, 606, 608, 610, 612, 614, 616, 618, 620,
392 622, 624, 626, 628, 630, 632, 634, 636, 638, 640,
393 642, 644, 646, 648, 650, 652, 654, 656, 658, 660,
394 662, 664, 666, 668, 670, 672, 675, 681, 683, 686,
395 688, 691, 692, 699, 700, 707, 710, 713, 714, 716,
396 718, 721, 725, 727, 731, 732, 734, 741, 744, 746,
397 750, 752, 754, 756, 760, 763, 766, 770, 775, 777,
398 781, 784, 787, 791, 796, 798, 801, 804, 808, 813,
399 816, 819, 822, 825, 829, 831, 832, 834, 838, 841,
400 843, 845, 848, 852, 856, 861, 864, 868, 875, 877,
401 880, 883, 887, 891, 896, 901, 907, 911, 916, 921,
402 927, 930, 933, 937, 941, 943, 945, 947, 949, 951,
403 953, 955, 956, 958, 960, 964, 966, 968, 973, 974,
404 976, 978, 982, 984, 986, 993, 995, 999, 1001, 1006,
405 1010, 1014, 1016, 1019, 1022, 1024, 1026, 1028, 1031, 1033,
406 1036, 1039, 1043, 1045, 1047, 1050, 1053, 1057, 1059, 1062,
407 1066, 1068, 1074, 1078, 1083, 1086, 1090, 1093, 1095, 1099,
408 1103, 1105, 1110, 1112, 1115, 1119, 1123, 1127, 1132, 1136,
409 1138, 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1159, 1164,
410 1169, 1174, 1181, 1186, 1188, 1190, 1192, 1194, 1196, 1199,
411 1200, 1204, 1206, 1210, 1214, 1219, 1221, 1223, 1225, 1227,
412 1229, 1231, 1233, 1235
414 static const short yyrhs[] =
416 -1, 139, 138, 141, 0, 0, 139, 140, 0, 144,
417 0, 145, 0, 0, 146, 142, 0, 151, 142, 0,
418 0, 142, 143, 0, 146, 0, 151, 0, 145, 0,
419 57, 175, 7, 0, 115, 179, 7, 0, 154, 0,
420 155, 0, 156, 0, 158, 0, 161, 0, 147, 0,
421 122, 285, 10, 148, 37, 7, 0, 0, 149, 0,
422 150, 0, 149, 32, 150, 0, 123, 244, 0, 244,
423 0, 0, 109, 152, 153, 0, 154, 0, 155, 0,
424 156, 0, 158, 0, 50, 227, 189, 7, 0, 227,
425 189, 7, 0, 117, 227, 189, 7, 0, 133, 227,
426 189, 7, 0, 163, 0, 172, 0, 134, 0, 135,
427 0, 136, 0, 0, 227, 240, 191, 159, 34, 193,
428 195, 199, 200, 201, 204, 205, 35, 0, 0, 157,
429 227, 240, 191, 160, 34, 193, 195, 199, 200, 201,
430 204, 205, 35, 0, 0, 48, 287, 10, 206, 37,
431 191, 162, 34, 195, 200, 209, 204, 35, 0, 48,
432 284, 287, 7, 0, 0, 0, 62, 164, 112, 20,
433 165, 214, 0, 0, 0, 62, 166, 97, 112, 20,
434 167, 214, 0, 0, 0, 97, 62, 168, 112, 20,
435 169, 214, 0, 0, 0, 56, 170, 112, 20, 171,
436 214, 0, 0, 0, 113, 227, 173, 219, 174, 7,
437 0, 230, 7, 0, 238, 7, 0, 176, 0, 175,
438 32, 176, 0, 178, 0, 3, 178, 3, 0, 43,
439 0, 178, 0, 177, 32, 178, 0, 283, 0, 180,
440 0, 179, 32, 180, 0, 289, 0, 289, 10, 182,
441 37, 0, 10, 181, 37, 0, 10, 181, 37, 10,
442 182, 37, 0, 289, 0, 181, 32, 289, 0, 184,
443 0, 183, 0, 183, 32, 184, 0, 245, 0, 183,
444 32, 245, 0, 185, 0, 184, 32, 185, 0, 245,
445 53, 223, 0, 245, 53, 186, 0, 245, 53, 186,
446 256, 0, 290, 0, 249, 0, 188, 0, 260, 0,
447 190, 0, 189, 32, 190, 0, 240, 0, 240, 33,
448 187, 0, 0, 191, 192, 0, 227, 189, 7, 0,
449 64, 7, 0, 65, 7, 0, 0, 193, 194, 0,
450 105, 227, 189, 7, 0, 0, 60, 196, 7, 0,
451 197, 0, 196, 32, 197, 0, 285, 31, 198, 46,
452 260, 0, 285, 46, 260, 0, 227, 0, 0, 49,
453 259, 7, 0, 0, 106, 259, 7, 0, 0, 61,
454 63, 7, 0, 61, 45, 7, 0, 61, 202, 7,
455 0, 203, 0, 202, 32, 203, 0, 260, 0, 228,
456 0, 66, 228, 0, 64, 0, 65, 0, 0, 52,
457 259, 7, 0, 0, 48, 259, 7, 0, 0, 207,
458 0, 208, 0, 129, 0, 208, 32, 129, 0, 244,
459 0, 208, 32, 244, 0, 0, 47, 34, 210, 35,
460 0, 47, 34, 210, 7, 35, 0, 211, 0, 10,
461 210, 37, 0, 210, 6, 0, 210, 8, 210, 0,
462 210, 7, 210, 0, 284, 10, 212, 37, 0, 284,
463 10, 37, 0, 285, 33, 284, 10, 37, 0, 285,
464 33, 284, 10, 212, 37, 0, 213, 0, 212, 32,
465 213, 0, 277, 0, 285, 0, 3, 213, 0, 213,
466 3, 0, 213, 3, 213, 0, 10, 213, 37, 0,
467 284, 10, 37, 0, 284, 10, 212, 37, 0, 7,
468 0, 34, 215, 35, 0, 34, 177, 35, 7, 0,
469 34, 35, 7, 0, 0, 215, 158, 0, 0, 217,
470 0, 0, 58, 218, 279, 10, 259, 37, 0, 220,
471 0, 219, 32, 220, 0, 0, 240, 221, 222, 0,
472 0, 34, 216, 35, 0, 132, 0, 116, 0, 118,
473 0, 120, 0, 121, 0, 124, 0, 125, 0, 126,
474 0, 131, 0, 127, 0, 223, 0, 224, 223, 0,
475 20, 0, 224, 0, 67, 0, 78, 0, 68, 0,
476 69, 0, 71, 0, 72, 0, 73, 0, 74, 0,
477 95, 0, 79, 0, 80, 0, 82, 0, 83, 0,
478 81, 0, 75, 0, 76, 0, 77, 0, 87, 0,
479 88, 0, 89, 0, 90, 0, 91, 0, 99, 0,
480 100, 0, 97, 0, 98, 0, 104, 0, 101, 0,
481 92, 0, 93, 0, 94, 0, 96, 0, 70, 0,
482 102, 0, 84, 0, 85, 0, 225, 0, 230, 0,
483 238, 0, 226, 227, 0, 8, 228, 31, 228, 8,
484 0, 227, 0, 227, 229, 0, 6, 0, 229, 6,
485 0, 0, 128, 233, 231, 34, 234, 35, 0, 0,
486 130, 233, 232, 34, 234, 35, 0, 128, 286, 0,
487 130, 286, 0, 0, 286, 0, 235, 0, 234, 235,
488 0, 227, 236, 7, 0, 240, 0, 236, 32, 240,
489 0, 0, 32, 0, 119, 233, 34, 239, 237, 35,
490 0, 119, 286, 0, 25, 0, 239, 32, 25, 0,
491 242, 0, 241, 0, 285, 0, 10, 241, 37, 0,
492 6, 241, 0, 241, 248, 0, 241, 10, 37, 0,
493 241, 10, 207, 37, 0, 20, 0, 10, 242, 37,
494 0, 6, 242, 0, 242, 248, 0, 242, 10, 37,
495 0, 242, 10, 207, 37, 0, 20, 0, 6, 243,
496 0, 243, 248, 0, 243, 10, 37, 0, 243, 10,
497 207, 37, 0, 227, 243, 0, 227, 241, 0, 227,
498 246, 0, 227, 246, 0, 66, 227, 246, 0, 249,
499 0, 0, 247, 0, 10, 247, 37, 0, 6, 247,
500 0, 6, 0, 248, 0, 247, 248, 0, 247, 10,
501 37, 0, 10, 207, 37, 0, 247, 10, 207, 37,
502 0, 11, 36, 0, 11, 188, 36, 0, 55, 27,
503 111, 27, 51, 27, 0, 252, 0, 27, 252, 0,
504 252, 27, 0, 27, 252, 27, 0, 250, 253, 251,
505 0, 27, 250, 253, 251, 0, 250, 253, 251, 27,
506 0, 27, 250, 253, 251, 27, 0, 11, 253, 36,
507 0, 11, 253, 36, 27, 0, 27, 11, 253, 36,
508 0, 27, 11, 253, 36, 27, 0, 12, 283, 0,
509 26, 283, 0, 27, 12, 283, 0, 27, 26, 283,
510 0, 22, 0, 34, 0, 23, 0, 35, 0, 264,
511 0, 14, 0, 39, 0, 0, 254, 0, 27, 0,
512 254, 255, 27, 0, 32, 0, 24, 0, 31, 257,
513 26, 288, 0, 0, 258, 0, 288, 0, 258, 32,
514 288, 0, 260, 0, 261, 0, 55, 261, 111, 261,
515 51, 261, 0, 262, 0, 261, 14, 261, 0, 263,
516 0, 278, 10, 259, 37, 0, 263, 39, 263, 0,
517 263, 33, 263, 0, 265, 0, 268, 266, 0, 268,
518 267, 0, 3, 0, 6, 0, 268, 0, 264, 265,
519 0, 264, 0, 266, 264, 0, 264, 268, 0, 267,
520 264, 268, 0, 273, 0, 269, 0, 269, 273, 0,
521 273, 269, 0, 273, 269, 273, 0, 270, 0, 270,
522 273, 0, 271, 31, 288, 0, 271, 0, 11, 272,
523 36, 31, 288, 0, 11, 272, 36, 0, 11, 36,
524 31, 288, 0, 11, 36, 0, 250, 272, 251, 0,
525 250, 251, 0, 260, 0, 272, 255, 260, 0, 10,
526 261, 37, 0, 285, 0, 290, 10, 274, 37, 0,
527 276, 0, 273, 275, 0, 273, 12, 283, 0, 273,
528 26, 283, 0, 273, 11, 36, 0, 273, 11, 274,
529 36, 0, 273, 31, 288, 0, 261, 0, 274, 32,
530 261, 0, 28, 0, 29, 0, 30, 0, 38, 0,
531 277, 0, 107, 0, 54, 10, 274, 37, 0, 114,
532 10, 44, 37, 0, 114, 10, 202, 37, 0, 108,
533 10, 260, 37, 0, 59, 10, 260, 32, 260, 37,
534 0, 108, 10, 227, 37, 0, 42, 0, 43, 0,
535 40, 0, 41, 0, 279, 0, 278, 279, 0, 0,
536 21, 280, 281, 0, 282, 0, 281, 32, 282, 0,
537 285, 31, 198, 0, 285, 31, 66, 198, 0, 25,
538 0, 20, 0, 25, 0, 25, 0, 283, 0, 283,
539 0, 283, 0, 283, 0, 283, 0
545 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
546 static const short yyrline[] =
548 0, 380, 381, 384, 385, 388, 389, 392, 393, 394,
549 397, 398, 401, 402, 403, 406, 412, 416, 418, 420,
550 422, 424, 426, 430, 434, 435, 438, 440, 444, 445,
551 448, 449, 452, 454, 456, 458, 462, 466, 468, 470,
552 474, 475, 478, 479, 480, 483, 484, 491, 493, 504,
553 506, 509, 513, 513, 514, 515, 515, 517, 518, 519,
554 520, 521, 521, 522, 525, 526, 527, 528, 530, 546,
555 548, 552, 553, 555, 558, 559, 562, 566, 568, 572,
556 574, 576, 578, 582, 583, 586, 588, 590, 593, 595,
557 598, 600, 603, 604, 605, 609, 610, 612, 614, 617,
558 619, 623, 624, 627, 629, 633, 634, 635, 638, 639,
559 642, 646, 647, 650, 651, 654, 655, 657, 660, 661,
560 664, 665, 668, 669, 670, 671, 674, 675, 678, 679,
561 680, 681, 682, 685, 686, 689, 690, 693, 694, 697,
562 698, 699, 702, 703, 706, 707, 708, 711, 712, 715,
563 720, 726, 734, 736, 738, 740, 744, 745, 748, 749,
564 750, 751, 752, 753, 754, 756, 760, 761, 762, 763,
565 766, 767, 770, 771, 774, 774, 783, 784, 788, 789,
566 792, 793, 796, 797, 798, 799, 800, 801, 802, 803,
567 804, 805, 813, 814, 819, 821, 827, 828, 829, 830,
568 831, 832, 833, 834, 835, 836, 837, 838, 839, 840,
569 841, 842, 843, 844, 845, 846, 847, 848, 849, 850,
570 851, 852, 853, 854, 855, 856, 857, 858, 859, 860,
571 861, 862, 865, 867, 869, 871, 873, 882, 883, 888,
572 889, 892, 894, 896, 898, 900, 902, 906, 907, 910,
573 911, 916, 919, 921, 925, 926, 929, 931, 935, 936,
574 946, 947, 950, 951, 952, 953, 954, 955, 958, 959,
575 960, 961, 962, 963, 972, 973, 974, 975, 976, 982,
576 983, 984, 994, 995, 996, 1001, 1002, 1005, 1006, 1007,
577 1008, 1009, 1010, 1011, 1012, 1015, 1016, 1019, 1021, 1023,
578 1025, 1027, 1030, 1032, 1034, 1036, 1038, 1040, 1048, 1050,
579 1052, 1055, 1058, 1061, 1066, 1067, 1070, 1071, 1074, 1075,
580 1076, 1079, 1080, 1083, 1084, 1087, 1088, 1091, 1094, 1095,
581 1098, 1099, 1102, 1105, 1111, 1113, 1114, 1117, 1118, 1123,
582 1125, 1129, 1130, 1131, 1134, 1135, 1138, 1139, 1142, 1143,
583 1146, 1147, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1159,
584 1160, 1163, 1166, 1168, 1172, 1176, 1177, 1180, 1181, 1184,
585 1186, 1188, 1190, 1191, 1193, 1195, 1197, 1200, 1202, 1206,
586 1207, 1210, 1211, 1212, 1213, 1216, 1217, 1218, 1219, 1220,
587 1221, 1226, 1232, 1242, 1243, 1244, 1245, 1248, 1250, 1254,
588 1258, 1261, 1262, 1265, 1266, 1269, 1270, 1273, 1274, 1275,
589 1276, 1277, 1278, 1279
594 #if YYDEBUG != 0 || defined YYERROR_VERBOSE
596 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
597 static const char *const yytname[] =
599 "$", "error", "$undefined.", "simpleOp", "PREFIX_OP", "POSTFIX_OP",
600 "LLT_MULOP", "LLT_SEMI", "LLT_VERTICALBAR", "ITERATION_OP", "LLT_LPAR",
601 "LLT_LBRACKET", "selectSym", "LLT_IF_THEN_ELSE", "logicalOp",
602 "eqSepSym", "equationSym", "commentSym", "LLT_WHITESPACE", "LLT_EOL",
603 "LLT_TYPEDEF_NAME", "quantifierSym", "openSym", "closeSym", "sepSym",
604 "simpleId", "mapSym", "markerSym", "preSym", "postSym", "anySym",
605 "LLT_COLON", "LLT_COMMA", "LLT_EQUALS", "LLT_LBRACE", "LLT_RBRACE",
606 "LLT_RBRACKET", "LLT_RPAR", "LLT_QUOTE", "eqOp", "LLT_CCHAR",
607 "LLT_CFLOAT", "LLT_CINTEGER", "LLT_LCSTRING", "LLT_ALL", "LLT_ANYTHING",
608 "LLT_BE", "LLT_BODY", "LLT_CLAIMS", "LLT_CHECKS", "LLT_CONSTANT",
609 "LLT_ELSE", "LLT_ENSURES", "LLT_FOR", "LLT_FRESH", "LLT_IF",
610 "LLT_IMMUTABLE", "LLT_IMPORTS", "LLT_CONSTRAINT", "LLT_ISSUB",
611 "LLT_LET", "LLT_MODIFIES", "LLT_MUTABLE", "LLT_NOTHING", "LLT_INTERNAL",
612 "LLT_FILESYS", "LLT_OBJ", "LLT_OUT", "LLT_SEF", "LLT_ONLY",
613 "LLT_PARTIAL", "LLT_OWNED", "LLT_DEPENDENT", "LLT_KEEP", "LLT_KEPT",
614 "LLT_TEMP", "LLT_SHARED", "LLT_UNIQUE", "LLT_UNUSED", "LLT_EXITS",
615 "LLT_MAYEXIT", "LLT_NEVEREXIT", "LLT_TRUEEXIT", "LLT_FALSEEXIT",
616 "LLT_UNDEF", "LLT_KILLED", "LLT_CHECKMOD", "LLT_CHECKED",
617 "LLT_UNCHECKED", "LLT_CHECKEDSTRICT", "LLT_TRUENULL", "LLT_FALSENULL",
618 "LLT_LNULL", "LLT_LNOTNULL", "LLT_RETURNED", "LLT_OBSERVER",
619 "LLT_EXPOSED", "LLT_REFCOUNTED", "LLT_REFS", "LLT_RELNULL",
620 "LLT_RELDEF", "LLT_KILLREF", "LLT_NULLTERMINATED", "LLT_TEMPREF",
621 "LLT_NEWREF", "LLT_PRIVATE", "LLT_REQUIRES", "LLT_RESULT", "LLT_SIZEOF",
622 "LLT_SPEC", "LLT_TAGGEDUNION", "LLT_THEN", "LLT_TYPE", "LLT_TYPEDEF",
623 "LLT_UNCHANGED", "LLT_USES", "LLT_CHAR", "LLT_CONST", "LLT_DOUBLE",
624 "LLT_ENUM", "LLT_FLOAT", "LLT_INT", "LLT_ITER", "LLT_YIELD", "LLT_LONG",
625 "LLT_SHORT", "LLT_SIGNED", "LLT_UNKNOWN", "LLT_STRUCT", "LLT_TELIPSIS",
626 "LLT_UNION", "LLT_UNSIGNED", "LLT_VOID", "LLT_VOLATILE",
627 "LLT_PRINTFLIKE", "LLT_SCANFLIKE", "LLT_MESSAGELIKE", "interface", "@1",
628 "externals", "external", "optDeclarations", "declarations",
629 "declaration", "imports", "uses", "export", "iter", "iterParamList",
630 "realIterParamList", "iterParam", "private", "@2", "private2",
631 "constDeclaration", "varDeclaration", "type", "special", "fcn", "@3",
632 "@4", "claim", "@5", "abstract", "@6", "@7", "@8", "@9", "@10", "@11",
633 "@12", "@13", "exposed", "@14", "@15", "importNameList", "importName",
634 "interfaceNameList", "interfaceName", "traitRefNodeList", "traitRef",
635 "traitIdList", "renaming", "nameList", "replaceNodeList", "replace",
636 "name", "initializer", "constLclExpr", "initDecls", "initDecl",
637 "globals", "globalDecl", "privateInits", "privateInit", "optLetDecl",
638 "beDeclList", "beDecl", "sortSpec", "optChecks", "optRequire",
639 "optModify", "storeRefList", "storeRef", "optEnsure", "optClaim",
640 "optParamList", "realParamList", "paramList", "optBody", "callExpr",
641 "stmt", "valueList", "value", "abstBody", "fcns", "optTypeInv",
642 "typeInv", "@16", "declaratorInvs", "declaratorInv", "@17",
643 "optExposedBody", "CType", "CTypes", "typeSpecifier",
644 "specialQualifier", "lclTypeSpec", "lclType", "pointers",
645 "structOrUnionSpec", "@18", "@19", "optTagId", "structDecls",
646 "structDecl", "declaratorList", "optCOMMA", "enumSpec",
647 "enumeratorList", "declarator", "notype_decl", "after_type_decl",
648 "parameter_decl", "param", "typeName", "optAbstDeclarator",
649 "abstDeclarator", "arrayQual", "opForm", "open", "close", "anyOp",
650 "middle", "placeList", "separator", "signature", "domain", "sortList",
651 "lclPredicate", "term", "term0", "equalityTerm", "simpleOpTerm",
652 "simpleOp2", "prefixOpTerm", "postfixOps", "infixOpPart", "secondary",
653 "bracketed", "sqBracketed", "matched", "args", "primary", "termList",
654 "stateFcn", "lclPrimary", "cLiteral", "quantifiers", "quantifier",
655 "@20", "quantifiedList", "quantified", "simpleIdOrTypedefName", "fcnId",
656 "varId", "tagId", "claimId", "sortId", "traitId", "opId", NULL
660 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
661 static const short yyr1[] =
663 0, 138, 137, 139, 139, 140, 140, 141, 141, 141,
664 142, 142, 143, 143, 143, 144, 145, 146, 146, 146,
665 146, 146, 146, 147, 148, 148, 149, 149, 150, 150,
666 152, 151, 153, 153, 153, 153, 154, 155, 155, 155,
667 156, 156, 157, 157, 157, 159, 158, 160, 158, 162,
668 161, 161, 164, 165, 163, 166, 167, 163, 168, 169,
669 163, 170, 171, 163, 173, 174, 172, 172, 172, 175,
670 175, 176, 176, 176, 177, 177, 178, 179, 179, 180,
671 180, 180, 180, 181, 181, 182, 182, 182, 183, 183,
672 184, 184, 185, 185, 185, 186, 186, 187, 188, 189,
673 189, 190, 190, 191, 191, 192, 192, 192, 193, 193,
674 194, 195, 195, 196, 196, 197, 197, 198, 199, 199,
675 200, 200, 201, 201, 201, 201, 202, 202, 203, 203,
676 203, 203, 203, 204, 204, 205, 205, 206, 206, 207,
677 207, 207, 208, 208, 209, 209, 209, 210, 210, 210,
678 210, 210, 211, 211, 211, 211, 212, 212, 213, 213,
679 213, 213, 213, 213, 213, 213, 214, 214, 214, 214,
680 215, 215, 216, 216, 218, 217, 219, 219, 221, 220,
681 222, 222, 223, 223, 223, 223, 223, 223, 223, 223,
682 223, 223, 224, 224, 225, 225, 226, 226, 226, 226,
683 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
684 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
685 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
686 226, 226, 227, 227, 227, 227, 227, 228, 228, 229,
687 229, 231, 230, 232, 230, 230, 230, 233, 233, 234,
688 234, 235, 236, 236, 237, 237, 238, 238, 239, 239,
689 240, 240, 241, 241, 241, 241, 241, 241, 242, 242,
690 242, 242, 242, 242, 243, 243, 243, 243, 243, 244,
691 244, 244, 245, 245, 245, 246, 246, 247, 247, 247,
692 247, 247, 247, 247, 247, 248, 248, 249, 249, 249,
693 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
694 249, 249, 249, 249, 250, 250, 251, 251, 252, 252,
695 252, 253, 253, 254, 254, 255, 255, 256, 257, 257,
696 258, 258, 259, 260, 261, 261, 261, 262, 262, 262,
697 262, 263, 263, 263, 264, 264, 265, 265, 266, 266,
698 267, 267, 268, 268, 268, 268, 268, 268, 268, 269,
699 269, 270, 270, 270, 270, 271, 271, 272, 272, 273,
700 273, 273, 273, 273, 273, 273, 273, 273, 273, 274,
701 274, 275, 275, 275, 275, 276, 276, 276, 276, 276,
702 276, 276, 276, 277, 277, 277, 277, 278, 278, 280,
703 279, 281, 281, 282, 282, 283, 283, 284, 285, 286,
707 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
708 static const short yyr2[] =
710 0, 0, 3, 0, 2, 1, 1, 0, 2, 2,
711 0, 2, 1, 1, 1, 3, 3, 1, 1, 1,
712 1, 1, 1, 6, 0, 1, 1, 3, 2, 1,
713 0, 3, 1, 1, 1, 1, 4, 3, 4, 4,
714 1, 1, 1, 1, 1, 0, 13, 0, 14, 0,
715 13, 4, 0, 0, 6, 0, 0, 7, 0, 0,
716 7, 0, 0, 6, 0, 0, 6, 2, 2, 1,
717 3, 1, 3, 1, 1, 3, 1, 1, 3, 1,
718 4, 3, 6, 1, 3, 1, 1, 3, 1, 3,
719 1, 3, 3, 3, 4, 1, 1, 1, 1, 1,
720 3, 1, 3, 0, 2, 3, 2, 2, 0, 2,
721 4, 0, 3, 1, 3, 5, 3, 1, 0, 3,
722 0, 3, 0, 3, 3, 3, 1, 3, 1, 1,
723 2, 1, 1, 0, 3, 0, 3, 0, 1, 1,
724 1, 3, 1, 3, 0, 4, 5, 1, 3, 2,
725 3, 3, 4, 3, 5, 6, 1, 3, 1, 1,
726 2, 2, 3, 3, 3, 4, 1, 3, 4, 3,
727 0, 2, 0, 1, 0, 6, 1, 3, 0, 3,
728 0, 3, 1, 1, 1, 1, 1, 1, 1, 1,
729 1, 1, 1, 2, 1, 1, 1, 1, 1, 1,
730 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
731 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
732 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
733 1, 1, 1, 1, 1, 2, 5, 1, 2, 1,
734 2, 0, 6, 0, 6, 2, 2, 0, 1, 1,
735 2, 3, 1, 3, 0, 1, 6, 2, 1, 3,
736 1, 1, 1, 3, 2, 2, 3, 4, 1, 3,
737 2, 2, 3, 4, 1, 2, 2, 3, 4, 2,
738 2, 2, 2, 3, 1, 0, 1, 3, 2, 1,
739 1, 2, 3, 3, 4, 2, 3, 6, 1, 2,
740 2, 3, 3, 4, 4, 5, 3, 4, 4, 5,
741 2, 2, 3, 3, 1, 1, 1, 1, 1, 1,
742 1, 0, 1, 1, 3, 1, 1, 4, 0, 1,
743 1, 3, 1, 1, 6, 1, 3, 1, 4, 3,
744 3, 1, 2, 2, 1, 1, 1, 2, 1, 2,
745 2, 3, 1, 1, 2, 2, 3, 1, 2, 3,
746 1, 5, 3, 4, 2, 3, 2, 1, 3, 3,
747 1, 4, 1, 2, 3, 3, 3, 4, 3, 1,
748 3, 1, 1, 1, 1, 1, 1, 4, 4, 4,
749 4, 6, 4, 1, 1, 1, 1, 1, 2, 0,
750 3, 1, 3, 3, 4, 1, 1, 1, 1, 1,
754 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
755 doesn't specify something else to do. Zero means the default is an
757 static const short yydefact[] =
759 3, 1, 0, 0, 7, 4, 5, 6, 0, 406,
760 405, 73, 0, 69, 71, 76, 0, 0, 77, 412,
761 79, 0, 194, 0, 0, 61, 52, 196, 198, 199,
762 228, 200, 201, 202, 203, 210, 211, 212, 197, 205,
763 206, 209, 207, 208, 230, 231, 213, 214, 215, 216,
764 217, 224, 225, 226, 204, 227, 220, 221, 218, 219,
765 223, 229, 222, 30, 0, 183, 0, 184, 247, 185,
766 186, 0, 187, 188, 189, 191, 247, 247, 190, 182,
767 0, 42, 43, 44, 2, 10, 22, 10, 17, 18,
768 19, 0, 20, 21, 40, 41, 192, 195, 232, 0,
769 0, 233, 234, 0, 15, 0, 0, 83, 16, 0,
770 0, 220, 237, 0, 233, 234, 407, 410, 0, 0,
771 0, 0, 0, 0, 58, 0, 64, 0, 0, 409,
772 257, 408, 0, 241, 245, 243, 246, 0, 8, 9,
773 0, 193, 235, 0, 0, 268, 0, 99, 103, 261,
774 260, 262, 67, 68, 72, 70, 0, 81, 78, 344,
775 345, 321, 0, 319, 314, 0, 0, 315, 320, 0,
776 0, 0, 86, 85, 90, 285, 88, 284, 321, 298,
777 318, 239, 238, 0, 0, 137, 0, 101, 0, 0,
778 0, 0, 31, 32, 33, 34, 35, 0, 0, 0,
779 24, 0, 0, 0, 11, 14, 12, 13, 103, 264,
780 270, 0, 0, 37, 0, 0, 45, 0, 0, 265,
781 0, 271, 84, 0, 323, 0, 322, 310, 311, 321,
782 0, 0, 321, 299, 0, 285, 80, 0, 0, 289,
783 0, 282, 286, 290, 0, 0, 300, 240, 0, 51,
784 140, 0, 138, 139, 285, 142, 36, 62, 53, 0,
785 0, 65, 176, 178, 38, 258, 254, 0, 0, 25,
786 26, 29, 0, 0, 39, 47, 263, 269, 100, 0,
787 0, 399, 408, 395, 396, 393, 394, 0, 0, 0,
788 386, 0, 0, 102, 97, 0, 98, 333, 335, 337,
789 0, 341, 346, 353, 357, 360, 352, 372, 385, 0,
790 397, 413, 370, 0, 0, 0, 0, 104, 0, 266,
791 0, 295, 0, 272, 0, 0, 306, 326, 325, 0,
792 0, 312, 313, 0, 301, 0, 283, 87, 89, 91,
793 0, 288, 0, 0, 0, 291, 93, 92, 96, 95,
794 316, 317, 302, 236, 103, 0, 289, 0, 274, 280,
795 279, 281, 0, 0, 56, 59, 0, 0, 180, 255,
796 0, 28, 0, 0, 0, 0, 249, 0, 0, 0,
797 364, 367, 0, 0, 0, 0, 0, 0, 0, 366,
798 0, 0, 0, 0, 347, 346, 348, 342, 343, 354,
799 358, 0, 0, 0, 0, 381, 382, 383, 0, 384,
800 355, 373, 0, 398, 0, 106, 107, 108, 0, 267,
801 296, 273, 82, 307, 324, 308, 303, 0, 293, 287,
802 292, 0, 328, 94, 304, 49, 141, 143, 275, 289,
803 0, 276, 166, 170, 63, 54, 0, 0, 177, 66,
804 172, 179, 259, 256, 23, 27, 0, 252, 242, 250,
805 244, 108, 369, 0, 362, 0, 400, 401, 0, 379,
806 0, 0, 0, 194, 0, 0, 0, 131, 132, 0,
807 0, 126, 129, 128, 365, 336, 340, 339, 350, 349,
808 0, 411, 359, 376, 0, 374, 375, 378, 356, 0,
809 332, 0, 111, 105, 309, 305, 0, 294, 0, 329,
810 330, 0, 277, 0, 0, 0, 74, 0, 57, 60,
811 174, 0, 173, 251, 0, 111, 363, 0, 368, 0,
812 0, 0, 387, 0, 0, 392, 390, 388, 130, 0,
813 389, 351, 377, 338, 371, 0, 0, 109, 118, 297,
814 0, 0, 111, 278, 169, 0, 0, 167, 171, 0,
815 0, 181, 253, 118, 361, 402, 0, 403, 117, 380,
816 0, 0, 127, 0, 113, 0, 0, 0, 120, 327,
817 331, 120, 75, 168, 103, 0, 120, 404, 334, 391,
818 112, 0, 0, 0, 0, 0, 0, 122, 144, 0,
819 122, 114, 0, 116, 110, 119, 0, 0, 133, 0,
820 133, 0, 133, 0, 121, 0, 0, 0, 0, 135,
821 0, 0, 175, 135, 115, 124, 123, 125, 0, 0,
822 0, 0, 408, 0, 147, 0, 0, 50, 0, 134,
823 0, 46, 0, 149, 0, 0, 145, 0, 0, 48,
824 136, 0, 148, 146, 151, 150, 0, 0, 153, 0,
825 156, 158, 0, 159, 407, 0, 160, 0, 0, 152,
826 161, 0, 0, 163, 157, 162, 164, 0, 154, 0,
830 static const short yydefgoto[] =
832 682, 4, 1, 5, 84, 138, 204, 6, 205, 206,
833 86, 268, 269, 270, 207, 125, 192, 88, 89, 90,
834 91, 92, 316, 378, 93, 511, 94, 122, 363, 123,
835 446, 191, 447, 121, 362, 95, 197, 367, 12, 13,
836 515, 14, 17, 18, 106, 171, 172, 173, 174, 346,
837 293, 294, 146, 147, 216, 317, 502, 547, 548, 573,
838 574, 567, 578, 597, 608, 480, 481, 619, 630, 251,
839 342, 253, 610, 654, 634, 659, 660, 444, 517, 521,
840 522, 560, 261, 262, 368, 451, 96, 97, 98, 99,
841 254, 482, 182, 114, 201, 202, 128, 375, 376, 456,
842 370, 115, 266, 187, 149, 150, 360, 255, 176, 241,
843 242, 243, 177, 295, 352, 179, 225, 226, 465, 433,
844 508, 509, 499, 500, 297, 298, 299, 300, 301, 397,
845 398, 302, 303, 304, 305, 382, 306, 470, 411, 307,
846 308, 309, 310, 383, 466, 467, 311, 662, 312, 130,
850 static const short yypact[] =
852 -32768, -25, 136, 368, 1350,-32768,-32768,-32768, 181,-32768,
853 -32768,-32768, 94,-32768,-32768,-32768, 181, 110,-32768,-32768,
854 33, 2903,-32768, 182, 2903,-32768, 17,-32768,-32768,-32768,
855 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
856 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
857 -32768,-32768,-32768,-32768,-32768,-32768, -11,-32768,-32768,-32768,
858 -32768,-32768,-32768,-32768, 2903,-32768, 2903,-32768, 181,-32768,
859 -32768, 108,-32768,-32768,-32768,-32768, 181, 181,-32768,-32768,
860 2903,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
861 -32768, 2903,-32768,-32768,-32768,-32768,-32768, 399,-32768, 2903,
862 408, 155, 192, 205,-32768, 136, 204,-32768,-32768, 368,
863 1152,-32768, 233, 223,-32768,-32768, 266,-32768, 181, 305,
864 408, 211, 235, 264,-32768, 1445,-32768, 408, 339,-32768,
865 347,-32768, 377,-32768, 347,-32768, 347, 408, 1247, 1247,
866 408,-32768,-32768, 408, 408,-32768, 196,-32768, 259, 322,
867 409,-32768,-32768,-32768,-32768,-32768, 181, 387,-32768,-32768,
868 -32768, 386, 181,-32768,-32768, 181, 534,-32768,-32768, 403,
869 2903, 410, 445, 453,-32768, 360, 439,-32768, 386, 474,
870 -32768,-32768, 496, 2903, 497, 2319, 239, 470, 486, 492,
871 401, 404,-32768,-32768,-32768,-32768,-32768, 408, 282, 493,
872 2414, 488, 494, 288,-32768,-32768,-32768,-32768,-32768, 322,
873 409, 121, 141,-32768, 408, 3200, 1836, 1933, 3059,-32768,
874 2030,-32768,-32768, 1152,-32768, 499, 122,-32768,-32768, 386,
875 181, 181, 386, 502, 421, 360,-32768, 1152, 1152, 360,
876 1741,-32768, 454,-32768, 328, 80,-32768,-32768, 525,-32768,
877 -32768, 504,-32768, 507, 380,-32768,-32768,-32768,-32768, 522,
878 524, 515,-32768,-32768,-32768,-32768, 518, 2903, 514, 520,
879 -32768,-32768, 2903, 2903,-32768, 1836,-32768,-32768,-32768, 3200,
880 3109,-32768, 266,-32768,-32768,-32768,-32768, 544, 3200, 545,
881 -32768, 549, 551,-32768,-32768, 3033,-32768, 550,-32768, 114,
882 3226,-32768, 374, 382, 382, 535, 193,-32768,-32768, 273,
883 -32768,-32768,-32768, 555, 560, 562, 536,-32768, 408,-32768,
884 537,-32768, 539,-32768, 540, 541, 552,-32768,-32768, 553,
885 547,-32768,-32768, 80,-32768, 554,-32768, 453, 439,-32768,
886 439, 454, 548, 177, 2127,-32768, 556,-32768,-32768,-32768,
887 -32768,-32768, 557,-32768,-32768, 2509, 380, 1644,-32768, 322,
888 469,-32768, 47, 47,-32768,-32768, 408, 564, 538, 561,
889 559,-32768, 569, 2414, 408, 2611,-32768, 2713, 558, 36,
890 565,-32768, 293, 108, 3200, 10, 3200, 1022, 762,-32768,
891 220, 3200, 3226, 3226,-32768,-32768, 268, 374, 374, 275,
892 275, 181, 3150, 181, 181,-32768,-32768,-32768, 181,-32768,
893 382,-32768, 3200,-32768, 3200,-32768,-32768,-32768, 314,-32768,
894 -32768,-32768,-32768,-32768,-32768, 563, 568, 566,-32768,-32768,
895 -32768, 573, 181,-32768,-32768, 1836,-32768,-32768, 469, 354,
896 2224,-32768,-32768, 165,-32768,-32768, 47, 47,-32768,-32768,
897 530,-32768,-32768,-32768,-32768,-32768, 317,-32768,-32768,-32768,
898 -32768,-32768,-32768, 181, 567, 3200, 570,-32768, 572, 550,
899 362, 3200, 579, 581, 575, 577, 578,-32768,-32768, 2903,
900 384,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
901 268,-32768,-32768,-32768, 157,-32768,-32768,-32768, 275, 583,
902 -32768, 397, -8,-32768,-32768,-32768, 574,-32768, 590, 591,
903 -32768, 571,-32768, 587, 592, 363,-32768, 1547,-32768,-32768,
904 -32768, 594,-32768,-32768, 408, -8,-32768, 181,-32768, 108,
905 2808, 3200,-32768, 28, 3200,-32768,-32768,-32768,-32768, 892,
906 -32768,-32768,-32768,-32768,-32768, 108, 2903,-32768, 582,-32768,
907 181, 181, 576,-32768,-32768, 181, 593,-32768,-32768, 408,
908 605,-32768,-32768, 582,-32768,-32768, 2903,-32768,-32768, 550,
909 3200, 600,-32768, 331,-32768, 103, 408, 3200, 521,-32768,
910 -32768, 521,-32768,-32768,-32768, 629, 521,-32768, 550,-32768,
911 -32768, 108, 2903, 3200, 336, 634, 3200, 584, 597, 3200,
912 584,-32768, 601,-32768,-32768,-32768, 639, 632, 596, 615,
913 596, 613, 596, 3200,-32768, 644, 648, 337, 3200, 608,
914 49, 623,-32768, 608,-32768,-32768,-32768,-32768, 652, 3200,
915 625, 49, 651, 50,-32768, 653, 631,-32768, 627,-32768,
916 658,-32768, 63,-32768, 272, 49,-32768, 208, 642,-32768,
917 -32768, 49,-32768,-32768, 660,-32768, 222, 222,-32768, 419,
918 666,-32768, 661,-32768,-32768, 668,-32768, 41, 222,-32768,
919 316, 432, 468,-32768, 666,-32768,-32768, 426,-32768, 430,
920 -32768,-32768, 670, 676,-32768
923 static const short yypgoto[] =
925 -32768,-32768,-32768,-32768,-32768, 595,-32768,-32768, 678, 677,
926 -32768,-32768,-32768, 307, 679,-32768,-32768, 610, 612, 616,
927 -32768, -121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
928 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 580,
929 -32768, -6,-32768, 585,-32768, 461,-32768, 451, 452,-32768,
930 -32768, 471, -108, 478, -188,-32768, 232,-32768, -458,-32768,
931 127, -473, 175, -169, 142, 137, 206, -206, 120,-32768,
932 -180,-32768,-32768, -507,-32768, -190, -230, -318,-32768,-32768,
933 -32768,-32768,-32768, 381,-32768,-32768, -89,-32768,-32768,-32768,
934 -3, -18,-32768, 32,-32768,-32768, 407, 476, 68,-32768,
935 -32768, 56,-32768, -93, -127, 344, 398, -187, 257, -182,
936 -213, -101, 511, 30, -267, 603, -137,-32768, 586,-32768,
937 -32768,-32768, -531, -204, -254,-32768, 105, -46, 466,-32768,
938 -32768, -278, 455,-32768,-32768, 472, -265, -205,-32768,-32768,
939 -372,-32768, -303,-32768,-32768, 242, 7, -23, -38, 423,
947 static const short yytable[] =
949 118, 100, 103, 113, 196, 252, 413, 148, 141, 15,
950 19, 296, 186, 271, 296, 15, 209, 211, 112, 198,
951 275, 120, 395, 19, 391, 379, 341, 343, 389, 203,
952 117, 497, 2, 132, 385, 107, 101, 320, 399, 400,
953 324, 245, 391, 110, 670, 445, 595, 208, 219, 221,
954 391, 124, 545, 336, 442, 510, 643, 644, 645, 631,
955 102, 126, 151, 127, 180, 606, 426, 563, 611, 643,
956 651, 645, 361, 462, 632, 129, 381, 137, 673, 570,
957 371, 443, 151, 129, 129, 646, 526, 628, 140, 151,
958 3, 381, 330, 587, 581, 333, 142, 546, 640, 151,
959 652, 104, 151, 350, 263, 151, 151, 175, 219, 221,
960 219, 221, 15, 633, -55, 351, 19, 108, 488, 602,
961 180, 471, 100, 484, 642, 117, 105, 359, 518, 519,
962 469, 217, 218, 131, 592, 100, 100, 485, 655, 8,
963 178, 345, 109, 341, 343, 498, 327, 392, 469, 593,
964 564, 220, 218, 393, 328, 347, 9, 101, 276, 151,
965 469, 10, 152, 19, 431, 248, 435, 235, 437, 227,
966 101, 101, 228, 579, 580, 222, 151, 180, 277, 11,
967 112, 102, 472, 475, 483, 9, 271, 344, 218, 531,
968 10, 180, 180, 542, 102, 102, 232, 494, 180, 153,
969 514, 9, 9, 213, 402, 403, 10, 116, 154, 501,
970 418, 656, 541, 318, 429, 164, 151, 533, 657, 404,
971 175, 405, 406, 407, 408, 656, 341, 167, 214, 209,
972 211, 409, 657, 632, 175, 175, 156, 331, 332, 181,
973 345, 157, 345, 350, 327, 658, 256, 632, 283, 284,
974 285, 286, 328, 178, 183, 351, 396, 585, 219, 441,
975 513, 528, 283, 284, 285, 286, -101, 178, 178, 374,
976 374, 214, 318, 263, 178, 661, -405, 569, 279, 280,
977 151, 457, 631, 412, 661, 661, 402, 403, 9, 264,
978 164, -101, 215, 282, 281, 274, 661, 632, 661, 661,
979 661, 404, 167, 405, 406, 407, 408, 653, 283, 284,
980 285, 286, 209, 409, 214, 185, 588, 327, 151, 151,
981 214, 503, 287, 188, 523, 328, 657, 289, 151, 464,
982 571, 159, 217, 218, 160, 483, 151, 441, 590, 161,
983 162, 632, 163, 604, 627, 468, 214, 189, 9, 524,
984 164, 489, 490, 10, 165, 166, 283, 284, 285, 286,
985 439, 190, 167, 591, 357, 218, 239, 168, 214, 539,
986 240, 218, 374, 199, 374, 290, 291, 159, 16, 131,
987 160, -248, 292, 169, 474, 112, 356, 200, 9, 603,
988 357, 218, 279, 10, 531, 555, 558, 223, 556, 532,
989 358, 151, 9, 483, 621, 131, 623, 282, 491, 624,
990 495, 496, 598, 224, 143, 491, 539, 600, 144, 220,
991 218, 540, 283, 284, 285, 286, 666, 667, 145, 531,
992 234, 562, 318, 131, 544, 656, 287, 516, 674, 491,
993 675, 289, 657, 459, 65, 459, 67, 236, 69, 70,
994 15, 668, 72, 73, 74, 75, 669, 632, 668, 78,
995 79, 538, 668, 680, 344, 218, 584, 681, 594, 676,
996 491, 656, 283, 284, 285, 286, 112, 237, 657, 440,
997 218, 677, 679, 133, 135, 238, 151, 210, 212, 290,
998 291, 468, 244, 632, 338, 340, 292, 486, 487, 134,
999 136, 246, 247, 215, 249, 678, 257, 575, 283, 284,
1000 285, 286, 258, 259, 559, 65, 260, 67, 265, 69,
1001 70, 151, 272, 72, 73, 74, 75, 568, 273, 334,
1002 78, 79, 335, 353, 491, 326, 112, 159, 151, 355,
1003 160, 354, 364, 576, 365, 229, 230, 366, 163, 582,
1004 369, 372, 373, 575, 384, 386, 164, 491, 491, 387,
1005 231, 388, 15, 568, 391, 414, 401, 415, 167, 416,
1006 417, 449, 450, 168, 419, 420, 454, 421, 422, 423,
1007 424, 427, 636, 425, 434, 428, 452, 432, 520, 568,
1008 504, -406, 461, 636, 453, 505, 463, 635, 527, 554,
1009 583, 549, 529, 530, 112, 552, 636, 636, 635, 663,
1010 507, 534, 535, 636, 536, 537, 550, 506, 663, 663,
1011 543, 635, 635, 551, 553, 665, 281, 596, 635, 561,
1012 663, 577, 663, 663, 663, 159, 545, 589, 160, 599,
1013 21, 605, 279, 280, 609, 607, 614, 613, 618, 620,
1014 622, 625, 473, 281, 164, 626, 629, 282, 637, 639,
1015 641, -407, 649, 647, 648, 650, 167, 664, 645, 670,
1016 683, 671, 283, 284, 285, 286, 684, 615, 672, 7,
1017 455, 85, 139, 87, 325, 155, 287, 288, 337, 322,
1018 339, 289, 278, 525, 158, 616, 477, 478, 479, 27,
1019 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1020 38, 39, 40, 41, 42, 43, 44, 45, 601, 46,
1021 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1022 57, 58, 59, 60, 61, 193, 62, 194, 586, 290,
1023 291, 195, 612, 638, 617, 572, 292, 448, 65, 377,
1024 67, 68, 69, 70, 438, 348, 72, 73, 74, 75,
1025 76, 410, 77, 78, 79, 159, 394, 390, 160, 233,
1026 21, 565, 279, 280, 184, 349, 0, 0, 0, 0,
1027 0, 0, 473, 281, 164, 0, 0, 282, 0, 0,
1028 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1029 0, 0, 283, 284, 285, 286, 476, 0, 0, 0,
1030 0, 0, 329, 0, 0, 0, 287, 288, 0, 0,
1031 0, 289, 0, 0, 0, 0, 477, 478, 479, 27,
1032 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1033 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1034 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1035 57, 58, 59, 60, 61, 0, 62, 0, 0, 290,
1036 291, 0, 0, 0, 0, 0, 292, 0, 65, 0,
1037 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1038 76, 0, 77, 78, 79, 159, 0, 0, 160, 0,
1039 21, 0, 279, 280, 0, 0, 0, 0, 0, 0,
1040 0, 0, 473, 281, 164, 0, 0, 282, 0, 0,
1041 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1042 0, 0, 283, 284, 285, 286, 0, 0, 0, 0,
1043 0, 0, 0, 0, 0, 0, 287, 288, 0, 0,
1044 0, 289, 0, 0, 0, 0, 477, 478, 479, 27,
1045 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1046 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1047 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1048 57, 58, 59, 60, 61, 0, 62, 0, 0, 290,
1049 291, 0, 0, 0, 0, 0, 292, 0, 65, 0,
1050 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1051 76, 0, 77, 78, 79, 159, 0, 0, 160, 0,
1052 21, 0, 279, 280, 0, 0, 0, 0, 0, 0,
1053 0, 0, 473, 281, 164, 0, 0, 282, 0, 0,
1054 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1055 0, 0, 283, 284, 285, 286, 0, 0, 0, 0,
1056 0, 0, 0, 0, 0, 0, 287, 288, 0, 0,
1057 0, 289, 0, 0, 0, 0, 0, 0, 0, 27,
1058 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1059 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1060 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1061 57, 58, 59, 60, 61, 0, 62, 0, 0, 290,
1062 291, 0, 0, 0, 0, 0, 292, 0, 65, 0,
1063 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1064 76, 0, 77, 78, 79, 159, 0, 0, 160, 0,
1065 21, 0, 0, 161, 162, 0, 163, 0, 0, 0,
1066 0, 0, 22, 0, 164, 0, 0, 0, 165, 166,
1067 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1068 0, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1069 0, 0, 0, 0, 0, 0, 0, 169, 0, 0,
1070 0, 0, 0, 0, 0, 0, 0, 0, 170, 27,
1071 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1072 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1073 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1074 57, 58, 59, 60, 61, 21, 62, 0, 0, 0,
1075 0, 0, 0, 0, 0, 0, 0, 22, 65, 0,
1076 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1077 76, 0, 77, 78, 79, 0, 0, 0, 0, 0,
1078 0, 0, 0, 0, 0, 23, 0, 24, 0, 0,
1079 0, 0, 0, 25, 0, 0, 0, 0, 0, 26,
1080 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1081 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1082 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1083 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1084 0, 62, 0, 0, 0, 0, 63, 0, 21, 0,
1085 64, 0, 3, 65, 66, 67, 68, 69, 70, 71,
1086 22, 72, 73, 74, 75, 76, 0, 77, 78, 79,
1087 80, 81, 82, 83, 0, 0, 0, 0, 0, 0,
1088 0, 0, 0, 0, 0, 0, 0, 0, 23, 0,
1089 24, 0, 0, 0, 0, 0, 25, 0, 0, 0,
1090 0, 0, 26, 0, 0, 0, 0, 27, 28, 29,
1091 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1092 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1093 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1094 59, 60, 61, 21, 62, 0, 0, 0, 0, 63,
1095 0, 0, 0, 64, 0, 22, 65, 66, 67, 68,
1096 69, 70, 71, 0, 72, 73, 74, 75, 76, 0,
1097 77, 78, 79, 80, 81, 82, 83, 0, 0, 0,
1098 0, 0, 0, 0, 0, 24, 0, 0, 0, 0,
1099 0, 25, 0, 0, 0, 0, 0, 26, 0, 0,
1100 0, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1101 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1102 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1103 54, 55, 56, 57, 58, 59, 60, 61, 0, 62,
1104 0, 0, 0, 0, 0, 21, 0, 0, 64, 0,
1105 0, 65, 66, 67, 68, 69, 70, 22, 0, 72,
1106 73, 74, 75, 76, 0, 77, 78, 79, 80, 81,
1107 82, 83, 557, 0, 0, 0, 0, 0, 0, 0,
1108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1110 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1111 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1112 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1113 52, 53, 54, 55, 111, 57, 58, 59, 60, 61,
1114 439, 62, 21, 0, 357, 218, 0, 0, 0, 0,
1115 0, 0, 0, 65, 22, 67, 68, 69, 70, 131,
1116 0, 72, 73, 74, 75, 76, 0, 77, 78, 79,
1117 0, 81, 82, 83, 0, 0, 0, 0, 0, 0,
1118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1120 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1121 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1122 0, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1123 55, 111, 57, 58, 59, 60, 61, 239, 62, 21,
1124 0, 240, 218, 0, 0, 0, 0, 0, 0, 0,
1125 65, 22, 67, 68, 69, 70, 0, 0, 72, 73,
1126 74, 75, 76, 250, 77, 78, 79, 0, 0, 0,
1127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1129 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1130 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1131 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1132 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1133 58, 59, 60, 61, 21, 62, 0, 0, 0, 0,
1134 0, 0, 0, 0, 0, 0, 22, 65, 0, 67,
1135 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1136 250, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1139 314, 315, 0, 27, 28, 29, 30, 31, 32, 33,
1140 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1141 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1142 53, 54, 55, 111, 57, 58, 59, 60, 61, 0,
1143 62, 21, 0, 0, 0, 0, 0, 0, 0, 0,
1144 0, 0, 65, 22, 67, 68, 69, 70, 0, 0,
1145 72, 73, 74, 75, 76, 0, 77, 78, 79, 0,
1146 319, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1149 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1150 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1151 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1152 111, 57, 58, 59, 60, 61, 0, 62, 21, 0,
1153 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
1154 22, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1155 75, 76, 250, 77, 78, 79, 0, 323, 0, 0,
1156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1158 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1159 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1160 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1161 49, 50, 51, 52, 53, 54, 55, 111, 57, 58,
1162 59, 60, 61, 0, 62, 21, 0, 0, 0, 0,
1163 0, 0, 0, 0, 0, 0, 65, 22, 67, 68,
1164 69, 70, 0, 0, 72, 73, 74, 75, 76, 250,
1165 77, 78, 79, 0, 430, 0, 0, 0, 0, 0,
1166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1168 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1169 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1170 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1171 52, 53, 54, 55, 111, 57, 58, 59, 60, 61,
1172 0, 62, 21, 0, 0, 0, 0, 0, 0, 0,
1173 0, 0, 0, 65, 22, 67, 68, 69, 70, 0,
1174 0, 72, 73, 74, 75, 76, 250, 77, 78, 79,
1175 0, 512, 0, 0, 0, 0, 0, 0, 0, 0,
1176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1178 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1179 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1180 0, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1181 55, 111, 57, 58, 59, 60, 61, 21, 62, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
1183 65, 0, 67, 68, 69, 70, 0, 0, 72, 73,
1184 74, 75, 76, 250, 77, 78, 79, 0, 0, 0,
1185 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1187 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1188 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1189 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1190 50, 51, 52, 53, 54, 55, 111, 57, 58, 59,
1191 60, 61, 21, 62, 0, 0, 0, 0, 0, 0,
1192 0, 0, 0, 0, 22, 65, 0, 67, 68, 69,
1193 70, 0, 0, 72, 73, 74, 75, 76, 250, 77,
1194 78, 79, 0, 0, 0, 0, 0, 0, 0, 0,
1195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1197 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1198 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1199 0, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1200 55, 111, 57, 58, 59, 60, 61, 21, 62, 0,
1201 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
1202 65, 0, 67, 68, 69, 70, 0, 267, 72, 73,
1203 74, 75, 76, 0, 77, 78, 79, 0, 0, 0,
1204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1206 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1207 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1208 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1209 50, 51, 52, 53, 54, 55, 111, 57, 58, 59,
1210 60, 61, 0, 62, 0, 0, 0, 0, 0, 21,
1211 0, 0, 0, 0, 0, 65, 0, 67, 68, 69,
1212 70, 22, 0, 72, 73, 74, 75, 76, 436, 77,
1213 78, 79, 0, 0, 0, 0, 458, 0, 0, 0,
1214 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1216 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1217 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1218 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1219 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1220 58, 59, 60, 61, 0, 62, 0, 0, 0, 0,
1221 0, 21, 0, 0, 0, 0, 0, 65, 0, 67,
1222 68, 69, 70, 22, 0, 72, 73, 74, 75, 76,
1223 0, 77, 78, 79, 0, 0, 0, 0, 460, 0,
1224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1227 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1228 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1229 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1230 111, 57, 58, 59, 60, 61, 21, 62, 0, 0,
1231 0, 0, 0, 0, 0, 0, 0, 0, 22, 65,
1232 0, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1233 75, 76, 0, 77, 78, 79, 0, 0, 0, 0,
1234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1236 0, 0, 0, 0, 566, 27, 28, 29, 30, 31,
1237 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1238 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1239 51, 52, 53, 54, 55, 111, 57, 58, 59, 60,
1240 61, 21, 62, 0, 0, 0, 0, 0, 0, 0,
1241 0, 0, 0, 22, 65, 0, 67, 68, 69, 70,
1242 0, 0, 72, 73, 74, 75, 76, 0, 77, 78,
1243 79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1246 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1247 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1248 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1249 111, 57, 58, 59, 60, 61, 0, 62, 0, 0,
1250 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
1251 0, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1252 75, 76, 0, 77, 78, 79, 159, 0, 0, 160,
1253 0, 0, 0, 279, 280, 0, 0, 0, 0, 0,
1254 0, 0, 0, 9, 281, 164, 350, 0, 282, 0,
1255 0, 0, 159, 0, 0, 160, 0, 167, 351, 279,
1256 280, 0, 0, 283, 284, 285, 286, 0, 0, 9,
1257 281, 164, 0, 0, 282, 0, 0, 287, 288, 0,
1258 0, 0, 289, 167, 0, 321, 0, 0, 0, 283,
1259 284, 285, 286, 0, 0, 0, 0, 0, 0, 0,
1260 0, 0, 159, 287, 288, 160, 0, 0, 289, 279,
1261 280, 0, 0, 0, 0, 0, 0, 0, 0, 9,
1262 281, 164, 0, 0, 282, 0, 0, 0, 0, 0,
1263 290, 291, 0, 167, 0, 380, 0, 292, 0, 283,
1264 284, 285, 286, 159, 0, 0, 160, 0, 0, 0,
1265 279, 280, 0, 287, 288, 0, 290, 291, 289, 0,
1266 9, 281, 164, 292, 0, 282, 0, 0, 0, 0,
1267 0, 0, 0, 0, 167, 0, 493, 0, 0, 0,
1268 283, 284, 285, 286, 0, 0, 0, 0, 0, 0,
1269 0, 0, 0, 159, 287, 288, 160, 0, 0, 289,
1270 279, 280, 0, 0, 0, 0, 290, 291, 0, 0,
1271 9, 281, 164, 292, 0, 282, 0, 0, 0, 159,
1272 0, 0, 160, 0, 167, 0, 279, 280, 0, 0,
1273 283, 284, 285, 286, 0, 0, 9, 0, 164, 0,
1274 0, 282, 0, 0, 287, 288, 0, 290, 291, 289,
1275 167, 0, 0, 0, 292, 0, 283, 284, 285, 286,
1276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1277 287, 0, 0, 0, 0, 289, 0, 0, 0, 0,
1278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1279 0, 0, 0, 0, 0, 0, 0, 290, 291, 0,
1280 0, 0, 0, 0, 292, 0, 0, 0, 0, 0,
1281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1282 0, 0, 0, 290, 291, 0, 0, 0, 0, 0,
1286 static const short yycheck[] =
1288 23, 4, 8, 21, 125, 185, 309, 100, 97, 2,
1289 3, 215, 120, 200, 218, 8, 143, 144, 21, 127,
1290 208, 24, 300, 16, 14, 279, 239, 240, 295, 137,
1291 23, 408, 57, 71, 288, 16, 4, 217, 303, 304,
1292 220, 178, 14, 10, 3, 363, 577, 140, 149, 150,
1293 14, 62, 60, 235, 7, 432, 6, 7, 8, 10,
1294 4, 64, 100, 66, 110, 596, 333, 525, 599, 6,
1295 7, 8, 254, 37, 25, 68, 280, 80, 37, 51,
1296 267, 34, 120, 76, 77, 35, 463, 618, 91, 127,
1297 115, 295, 229, 566, 552, 232, 99, 105, 629, 137,
1298 37, 7, 140, 23, 197, 143, 144, 110, 209, 210,
1299 211, 212, 105, 620, 97, 35, 109, 7, 396, 592,
1300 166, 111, 125, 390, 631, 118, 32, 254, 446, 447,
1301 384, 10, 11, 25, 31, 138, 139, 391, 645, 3,
1302 110, 242, 32, 356, 357, 410, 24, 33, 402, 46,
1303 527, 10, 11, 39, 32, 244, 20, 125, 37, 197,
1304 414, 25, 7, 156, 344, 183, 354, 170, 355, 162,
1305 138, 139, 165, 550, 551, 156, 214, 223, 37, 43,
1306 183, 125, 386, 387, 388, 20, 373, 10, 11, 32,
1307 25, 237, 238, 36, 138, 139, 166, 402, 244, 7,
1308 35, 20, 20, 7, 11, 12, 25, 25, 3, 414,
1309 318, 3, 490, 216, 37, 22, 254, 471, 10, 26,
1310 223, 28, 29, 30, 31, 3, 439, 34, 32, 356,
1311 357, 38, 10, 25, 237, 238, 32, 230, 231, 6,
1312 341, 37, 343, 23, 24, 37, 7, 25, 40, 41,
1313 42, 43, 32, 223, 31, 35, 302, 560, 359, 360,
1314 440, 465, 40, 41, 42, 43, 7, 237, 238, 272,
1315 273, 32, 275, 366, 244, 647, 10, 531, 10, 11,
1316 318, 374, 10, 10, 656, 657, 11, 12, 20, 7,
1317 22, 32, 33, 25, 21, 7, 668, 25, 670, 671,
1318 672, 26, 34, 28, 29, 30, 31, 35, 40, 41,
1319 42, 43, 439, 38, 32, 10, 570, 24, 356, 357,
1320 32, 7, 54, 112, 7, 32, 10, 59, 366, 36,
1321 534, 3, 10, 11, 6, 539, 374, 438, 7, 11,
1322 12, 25, 14, 7, 7, 383, 32, 112, 20, 32,
1323 22, 397, 398, 25, 26, 27, 40, 41, 42, 43,
1324 6, 97, 34, 32, 10, 11, 6, 39, 32, 32,
1325 10, 11, 375, 34, 377, 107, 108, 3, 10, 25,
1326 6, 34, 114, 55, 387, 388, 6, 10, 20, 593,
1327 10, 11, 10, 25, 32, 32, 517, 10, 35, 37,
1328 20, 439, 20, 607, 610, 25, 612, 25, 401, 613,
1329 403, 404, 581, 27, 6, 408, 32, 586, 10, 10,
1330 11, 37, 40, 41, 42, 43, 656, 657, 20, 32,
1331 27, 524, 435, 25, 37, 3, 54, 443, 668, 432,
1332 670, 59, 10, 375, 116, 377, 118, 37, 120, 121,
1333 443, 32, 124, 125, 126, 127, 37, 25, 32, 131,
1334 132, 479, 32, 37, 10, 11, 559, 37, 576, 37,
1335 463, 3, 40, 41, 42, 43, 479, 32, 10, 10,
1336 11, 671, 672, 76, 77, 32, 524, 143, 144, 107,
1337 108, 529, 53, 25, 237, 238, 114, 392, 393, 76,
1338 77, 27, 6, 33, 7, 37, 20, 545, 40, 41,
1339 42, 43, 20, 112, 517, 116, 112, 118, 25, 120,
1340 121, 559, 34, 124, 125, 126, 127, 530, 34, 27,
1341 131, 132, 111, 8, 527, 36, 539, 3, 576, 32,
1342 6, 37, 20, 546, 20, 11, 12, 32, 14, 555,
1343 32, 37, 32, 591, 10, 10, 22, 550, 551, 10,
1344 26, 10, 555, 566, 14, 10, 31, 7, 34, 7,
1345 34, 7, 34, 39, 37, 36, 7, 37, 37, 27,
1346 27, 27, 620, 36, 27, 37, 25, 31, 58, 592,
1347 27, 10, 34, 631, 35, 27, 31, 620, 31, 7,
1348 7, 27, 32, 31, 607, 34, 644, 645, 631, 647,
1349 37, 32, 37, 651, 37, 37, 26, 51, 656, 657,
1350 37, 644, 645, 32, 37, 648, 21, 106, 651, 35,
1351 668, 49, 670, 671, 672, 3, 60, 37, 6, 10,
1352 8, 7, 10, 11, 47, 61, 7, 46, 52, 34,
1353 37, 7, 20, 21, 22, 7, 48, 25, 35, 7,
1354 35, 10, 35, 10, 33, 7, 34, 25, 8, 3,
1355 0, 10, 40, 41, 42, 43, 0, 45, 10, 1,
1356 373, 4, 87, 4, 223, 105, 54, 55, 237, 218,
1357 238, 59, 214, 461, 109, 63, 64, 65, 66, 67,
1358 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1359 78, 79, 80, 81, 82, 83, 84, 85, 591, 87,
1360 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1361 98, 99, 100, 101, 102, 125, 104, 125, 563, 107,
1362 108, 125, 600, 623, 607, 539, 114, 366, 116, 273,
1363 118, 119, 120, 121, 356, 244, 124, 125, 126, 127,
1364 128, 306, 130, 131, 132, 3, 300, 295, 6, 166,
1365 8, 529, 10, 11, 118, 244, -1, -1, -1, -1,
1366 -1, -1, 20, 21, 22, -1, -1, 25, -1, -1,
1367 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1368 -1, -1, 40, 41, 42, 43, 44, -1, -1, -1,
1369 -1, -1, 226, -1, -1, -1, 54, 55, -1, -1,
1370 -1, 59, -1, -1, -1, -1, 64, 65, 66, 67,
1371 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1372 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1373 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1374 98, 99, 100, 101, 102, -1, 104, -1, -1, 107,
1375 108, -1, -1, -1, -1, -1, 114, -1, 116, -1,
1376 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1377 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1378 8, -1, 10, 11, -1, -1, -1, -1, -1, -1,
1379 -1, -1, 20, 21, 22, -1, -1, 25, -1, -1,
1380 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1381 -1, -1, 40, 41, 42, 43, -1, -1, -1, -1,
1382 -1, -1, -1, -1, -1, -1, 54, 55, -1, -1,
1383 -1, 59, -1, -1, -1, -1, 64, 65, 66, 67,
1384 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1385 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1386 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1387 98, 99, 100, 101, 102, -1, 104, -1, -1, 107,
1388 108, -1, -1, -1, -1, -1, 114, -1, 116, -1,
1389 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1390 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1391 8, -1, 10, 11, -1, -1, -1, -1, -1, -1,
1392 -1, -1, 20, 21, 22, -1, -1, 25, -1, -1,
1393 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1394 -1, -1, 40, 41, 42, 43, -1, -1, -1, -1,
1395 -1, -1, -1, -1, -1, -1, 54, 55, -1, -1,
1396 -1, 59, -1, -1, -1, -1, -1, -1, -1, 67,
1397 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1398 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1399 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1400 98, 99, 100, 101, 102, -1, 104, -1, -1, 107,
1401 108, -1, -1, -1, -1, -1, 114, -1, 116, -1,
1402 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1403 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1404 8, -1, -1, 11, 12, -1, 14, -1, -1, -1,
1405 -1, -1, 20, -1, 22, -1, -1, -1, 26, 27,
1406 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1407 -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
1408 -1, -1, -1, -1, -1, -1, -1, 55, -1, -1,
1409 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
1410 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1411 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1412 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1413 98, 99, 100, 101, 102, 8, 104, -1, -1, -1,
1414 -1, -1, -1, -1, -1, -1, -1, 20, 116, -1,
1415 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1416 128, -1, 130, 131, 132, -1, -1, -1, -1, -1,
1417 -1, -1, -1, -1, -1, 48, -1, 50, -1, -1,
1418 -1, -1, -1, 56, -1, -1, -1, -1, -1, 62,
1419 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1420 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1421 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1422 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1423 -1, 104, -1, -1, -1, -1, 109, -1, 8, -1,
1424 113, -1, 115, 116, 117, 118, 119, 120, 121, 122,
1425 20, 124, 125, 126, 127, 128, -1, 130, 131, 132,
1426 133, 134, 135, 136, -1, -1, -1, -1, -1, -1,
1427 -1, -1, -1, -1, -1, -1, -1, -1, 48, -1,
1428 50, -1, -1, -1, -1, -1, 56, -1, -1, -1,
1429 -1, -1, 62, -1, -1, -1, -1, 67, 68, 69,
1430 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1431 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1432 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1433 100, 101, 102, 8, 104, -1, -1, -1, -1, 109,
1434 -1, -1, -1, 113, -1, 20, 116, 117, 118, 119,
1435 120, 121, 122, -1, 124, 125, 126, 127, 128, -1,
1436 130, 131, 132, 133, 134, 135, 136, -1, -1, -1,
1437 -1, -1, -1, -1, -1, 50, -1, -1, -1, -1,
1438 -1, 56, -1, -1, -1, -1, -1, 62, -1, -1,
1439 -1, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1440 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1441 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1442 95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
1443 -1, -1, -1, -1, -1, 8, -1, -1, 113, -1,
1444 -1, 116, 117, 118, 119, 120, 121, 20, -1, 124,
1445 125, 126, 127, 128, -1, 130, 131, 132, 133, 134,
1446 135, 136, 35, -1, -1, -1, -1, -1, -1, -1,
1447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1449 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1450 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1451 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1452 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1453 6, 104, 8, -1, 10, 11, -1, -1, -1, -1,
1454 -1, -1, -1, 116, 20, 118, 119, 120, 121, 25,
1455 -1, 124, 125, 126, 127, 128, -1, 130, 131, 132,
1456 -1, 134, 135, 136, -1, -1, -1, -1, -1, -1,
1457 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1458 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1459 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1460 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1461 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1462 96, 97, 98, 99, 100, 101, 102, 6, 104, 8,
1463 -1, 10, 11, -1, -1, -1, -1, -1, -1, -1,
1464 116, 20, 118, 119, 120, 121, -1, -1, 124, 125,
1465 126, 127, 128, 129, 130, 131, 132, -1, -1, -1,
1466 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1467 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1468 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1469 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1470 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1471 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1472 99, 100, 101, 102, 8, 104, -1, -1, -1, -1,
1473 -1, -1, -1, -1, -1, -1, 20, 116, -1, 118,
1474 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1475 129, 130, 131, 132, -1, -1, -1, -1, -1, -1,
1476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1478 64, 65, -1, 67, 68, 69, 70, 71, 72, 73,
1479 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1480 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1481 94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
1482 104, 8, -1, -1, -1, -1, -1, -1, -1, -1,
1483 -1, -1, 116, 20, 118, 119, 120, 121, -1, -1,
1484 124, 125, 126, 127, 128, -1, 130, 131, 132, -1,
1485 37, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1488 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1489 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1490 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1491 97, 98, 99, 100, 101, 102, -1, 104, 8, -1,
1492 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
1493 20, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1494 127, 128, 129, 130, 131, 132, -1, 37, -1, -1,
1495 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1496 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1497 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1498 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1499 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1500 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1501 100, 101, 102, -1, 104, 8, -1, -1, -1, -1,
1502 -1, -1, -1, -1, -1, -1, 116, 20, 118, 119,
1503 120, 121, -1, -1, 124, 125, 126, 127, 128, 129,
1504 130, 131, 132, -1, 37, -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, 67, 68, 69, 70, 71, 72,
1508 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1509 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1510 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1511 -1, 104, 8, -1, -1, -1, -1, -1, -1, -1,
1512 -1, -1, -1, 116, 20, 118, 119, 120, 121, -1,
1513 -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1514 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1,
1515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1516 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1517 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1518 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1519 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1520 96, 97, 98, 99, 100, 101, 102, 8, 104, -1,
1521 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1522 116, -1, 118, 119, 120, 121, -1, -1, 124, 125,
1523 126, 127, 128, 129, 130, 131, 132, -1, -1, -1,
1524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1526 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1527 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1528 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1529 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1530 101, 102, 8, 104, -1, -1, -1, -1, -1, -1,
1531 -1, -1, -1, -1, 20, 116, -1, 118, 119, 120,
1532 121, -1, -1, 124, 125, 126, 127, 128, 129, 130,
1533 131, 132, -1, -1, -1, -1, -1, -1, -1, -1,
1534 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1535 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1536 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1537 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1538 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1539 96, 97, 98, 99, 100, 101, 102, 8, 104, -1,
1540 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1541 116, -1, 118, 119, 120, 121, -1, 123, 124, 125,
1542 126, 127, 128, -1, 130, 131, 132, -1, -1, -1,
1543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1544 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1545 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1546 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1547 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1548 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1549 101, 102, -1, 104, -1, -1, -1, -1, -1, 8,
1550 -1, -1, -1, -1, -1, 116, -1, 118, 119, 120,
1551 121, 20, -1, 124, 125, 126, 127, 128, 129, 130,
1552 131, 132, -1, -1, -1, -1, 35, -1, -1, -1,
1553 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1554 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1555 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1556 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1557 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1558 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1559 99, 100, 101, 102, -1, 104, -1, -1, -1, -1,
1560 -1, 8, -1, -1, -1, -1, -1, 116, -1, 118,
1561 119, 120, 121, 20, -1, 124, 125, 126, 127, 128,
1562 -1, 130, 131, 132, -1, -1, -1, -1, 35, -1,
1563 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1564 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1565 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1566 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1567 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1568 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1569 97, 98, 99, 100, 101, 102, 8, 104, -1, -1,
1570 -1, -1, -1, -1, -1, -1, -1, -1, 20, 116,
1571 -1, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1572 127, 128, -1, 130, 131, 132, -1, -1, -1, -1,
1573 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1574 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1575 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
1576 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1577 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1578 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1579 102, 8, 104, -1, -1, -1, -1, -1, -1, -1,
1580 -1, -1, -1, 20, 116, -1, 118, 119, 120, 121,
1581 -1, -1, 124, 125, 126, 127, 128, -1, 130, 131,
1582 132, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1584 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1585 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1586 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1587 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1588 97, 98, 99, 100, 101, 102, -1, 104, -1, -1,
1589 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
1590 -1, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1591 127, 128, -1, 130, 131, 132, 3, -1, -1, 6,
1592 -1, -1, -1, 10, 11, -1, -1, -1, -1, -1,
1593 -1, -1, -1, 20, 21, 22, 23, -1, 25, -1,
1594 -1, -1, 3, -1, -1, 6, -1, 34, 35, 10,
1595 11, -1, -1, 40, 41, 42, 43, -1, -1, 20,
1596 21, 22, -1, -1, 25, -1, -1, 54, 55, -1,
1597 -1, -1, 59, 34, -1, 36, -1, -1, -1, 40,
1598 41, 42, 43, -1, -1, -1, -1, -1, -1, -1,
1599 -1, -1, 3, 54, 55, 6, -1, -1, 59, 10,
1600 11, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1601 21, 22, -1, -1, 25, -1, -1, -1, -1, -1,
1602 107, 108, -1, 34, -1, 36, -1, 114, -1, 40,
1603 41, 42, 43, 3, -1, -1, 6, -1, -1, -1,
1604 10, 11, -1, 54, 55, -1, 107, 108, 59, -1,
1605 20, 21, 22, 114, -1, 25, -1, -1, -1, -1,
1606 -1, -1, -1, -1, 34, -1, 36, -1, -1, -1,
1607 40, 41, 42, 43, -1, -1, -1, -1, -1, -1,
1608 -1, -1, -1, 3, 54, 55, 6, -1, -1, 59,
1609 10, 11, -1, -1, -1, -1, 107, 108, -1, -1,
1610 20, 21, 22, 114, -1, 25, -1, -1, -1, 3,
1611 -1, -1, 6, -1, 34, -1, 10, 11, -1, -1,
1612 40, 41, 42, 43, -1, -1, 20, -1, 22, -1,
1613 -1, 25, -1, -1, 54, 55, -1, 107, 108, 59,
1614 34, -1, -1, -1, 114, -1, 40, 41, 42, 43,
1615 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1616 54, -1, -1, -1, -1, 59, -1, -1, -1, -1,
1617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1618 -1, -1, -1, -1, -1, -1, -1, 107, 108, -1,
1619 -1, -1, -1, -1, 114, -1, -1, -1, -1, -1,
1620 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1621 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
1624 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1626 /* Skeleton output parser for bison,
1627 Copyright 1984, 1989, 1990, 2000, 2001 Free Software Foundation, Inc.
1629 This program is free software; you can redistribute it and/or modify
1630 it under the terms of the GNU General Public License as published by
1631 the Free Software Foundation; either version 2, or (at your option)
1634 This program is distributed in the hope that it will be useful,
1635 but WITHOUT ANY WARRANTY; without even the implied warranty of
1636 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1637 GNU General Public License for more details.
1639 You should have received a copy of the GNU General Public License
1640 along with this program; if not, write to the Free Software
1641 Foundation, Inc., 59 Temple Place - Suite 330,
1642 Boston, MA 02111-1307, USA. */
1644 /* As a special exception, when this file is copied by Bison into a
1645 Bison output file, you may use that output file without restriction.
1646 This special exception was added by the Free Software Foundation
1647 in version 1.24 of Bison. */
1649 /* This is the parser code that is written into each bison parser when
1650 the %semantic_parser declaration is not specified in the grammar.
1651 It was written by Richard Stallman by simplifying the hairy parser
1652 used when %semantic_parser is specified. */
1654 #ifndef YYSTACK_USE_ALLOCA
1656 # define YYSTACK_USE_ALLOCA 1
1657 # else /* alloca not defined */
1659 # define YYSTACK_USE_ALLOCA 1
1660 # define alloca __builtin_alloca
1661 # else /* not GNU C. */
1662 # if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
1663 # define YYSTACK_USE_ALLOCA 1
1664 # include <alloca.h>
1665 # else /* not sparc */
1666 /* We think this test detects Watcom and Microsoft C. */
1667 /* This used to test MSDOS, but that is a bad idea since that
1668 symbol is in the user namespace. */
1669 # if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
1671 /* No need for malloc.h, which pollutes the namespace; instead,
1672 just don't use alloca. */
1673 # include <malloc.h>
1675 # else /* not MSDOS, or __TURBOC__ */
1677 /* I don't know what this was needed for, but it pollutes the
1678 namespace. So I turned it off. rms, 2 May 1997. */
1679 /* #include <malloc.h> */
1681 # define YYSTACK_USE_ALLOCA 1
1682 # else /* not MSDOS, or __TURBOC__, or _AIX */
1684 /* haible@ilog.fr says this works for HPUX 9.05 and up, and on
1685 HPUX 10. Eventually we can turn this on. */
1687 # define YYSTACK_USE_ALLOCA 1
1688 # define alloca __builtin_alloca
1689 # endif /* __hpux */
1691 # endif /* not _AIX */
1692 # endif /* not MSDOS, or __TURBOC__ */
1693 # endif /* not sparc */
1694 # endif /* not GNU C */
1695 # endif /* alloca not defined */
1696 #endif /* YYSTACK_USE_ALLOCA not defined */
1698 #ifndef YYSTACK_USE_ALLOCA
1699 # define YYSTACK_USE_ALLOCA 0
1702 #if YYSTACK_USE_ALLOCA
1703 # define YYSTACK_ALLOC alloca
1705 # define YYSTACK_ALLOC malloc
1708 #define yyerrok (yyerrstatus = 0)
1709 #define yyclearin (yychar = YYEMPTY)
1712 #define YYACCEPT goto yyacceptlab
1713 #define YYABORT goto yyabortlab
1714 #define YYERROR goto yyerrlab1
1715 /* Like YYERROR except do call yyerror. This remains here temporarily
1716 to ease the transition to the new meaning of YYERROR, for GCC.
1717 Once GCC version 2 has supplanted version 1, this can go. */
1718 #define YYFAIL goto yyerrlab
1719 #define YYRECOVERING() (!!yyerrstatus)
1720 #define YYBACKUP(Token, Value) \
1722 if (yychar == YYEMPTY && yylen == 1) \
1726 yychar1 = YYTRANSLATE (yychar); \
1732 yyerror ("syntax error: cannot back up"); \
1738 #define YYERRCODE 256
1741 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
1744 When YYLLOC_DEFAULT is run, CURRENT is set the location of the
1745 first token. By default, to implement support for ranges, extend
1746 its range to the last symbol. */
1748 #ifndef YYLLOC_DEFAULT
1749 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1750 Current.last_line = Rhs[N].last_line; \
1751 Current.last_column = Rhs[N].last_column;
1755 /* YYLEX -- calling `yylex' with the right arguments. */
1760 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
1762 # define YYLEX yylex (&yylval, &yylloc)
1764 # else /* !YYLSP_NEEDED */
1766 # define YYLEX yylex (&yylval, YYLEX_PARAM)
1768 # define YYLEX yylex (&yylval)
1770 # endif /* !YYLSP_NEEDED */
1772 # define YYLEX yylex ()
1773 #endif /* !YYPURE */
1776 /* Enable debugging if requested. */
1778 # define YYDPRINTF(Args) \
1783 /* Nonzero means print parse trace. [The following comment makes no
1784 sense to me. Could someone clarify it? --akim] Since this is
1785 uninitialized, it does not stop multiple parsers from coexisting.
1788 #else /* !YYDEBUG */
1789 # define YYDPRINTF(Args)
1790 #endif /* !YYDEBUG */
1792 /* YYINITDEPTH -- initial size of the parser's stacks. */
1794 # define YYINITDEPTH 200
1797 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1798 if the built-in stack extension method is used). */
1804 # define YYMAXDEPTH 10000
1807 /* Define __yy_memcpy. Note that the size argument
1808 should be passed with type unsigned int, because that is what the non-GCC
1809 definitions require. With GCC, __builtin_memcpy takes an arg
1810 of type size_t, but it can handle unsigned int. */
1812 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1813 # define __yy_memcpy(To, From, Count) __builtin_memcpy (To, From, Count)
1814 #else /* not GNU C or C++ */
1816 /* This is the most reliable way to avoid incompatibilities
1817 in available built-in functions on various systems. */
1819 # ifndef __cplusplus
1820 __yy_memcpy (to, from, count)
1824 # else /* __cplusplus */
1825 __yy_memcpy (char *to, const char *from, unsigned int count)
1828 register const char *f = from;
1829 register char *t = to;
1830 register int i = count;
1840 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1841 into yyparse. The argument should have type void *.
1842 It should actually point to an object.
1843 Grammar actions can access the variable by casting it
1844 to the proper pointer type. */
1846 #ifdef YYPARSE_PARAM
1848 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1849 # define YYPARSE_PARAM_DECL
1850 # else /* !__cplusplus */
1851 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
1852 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1853 # endif /* !__cplusplus */
1854 #else /* !YYPARSE_PARAM */
1855 # define YYPARSE_PARAM_ARG
1856 # define YYPARSE_PARAM_DECL
1857 #endif /* !YYPARSE_PARAM */
1859 /* Prevent warning if -Wstrict-prototypes. */
1861 # ifdef YYPARSE_PARAM
1862 int yyparse (void *);
1868 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
1869 variables are global, or local to YYPARSE. */
1871 #define _YY_DECL_VARIABLES \
1872 /* The lookahead symbol. */ \
1875 /* The semantic value of the lookahead symbol. */ \
1878 /* Number of parse errors so far. */ \
1882 # define YY_DECL_VARIABLES \
1883 _YY_DECL_VARIABLES \
1885 /* Location data for the lookahead symbol. */ \
1888 # define YY_DECL_VARIABLES \
1893 /* If nonreentrant, generate the variables here. */
1897 #endif /* !YYPURE */
1900 yyparse (YYPARSE_PARAM_ARG)
1903 /* If reentrant, generate the variables here. */
1906 #endif /* !YYPURE */
1908 register int yystate;
1910 /* Number of tokens to shift before error messages enabled. */
1912 /* Lookahead token as an internal (translated) token number. */
1915 /* Three stacks and their tools:
1916 `yyss': related to states,
1917 `yysv': related to semantic values,
1918 `yyls': related to locations.
1920 Refer to the stacks thru separate pointers, to allow yyoverflow
1921 to reallocate them elsewhere. */
1923 /* The state stack. */
1924 short yyssa[YYINITDEPTH];
1925 short *yyss = yyssa;
1926 register short *yyssp;
1928 /* The semantic value stack. */
1929 YYSTYPE yyvsa[YYINITDEPTH];
1930 YYSTYPE *yyvs = yyvsa;
1931 register YYSTYPE *yyvsp;
1934 /* The location stack. */
1935 YYLTYPE yylsa[YYINITDEPTH];
1936 YYLTYPE *yyls = yylsa;
1941 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1943 # define YYPOPSTACK (yyvsp--, yyssp--)
1946 int yystacksize = YYINITDEPTH;
1947 int yyfree_stacks = 0;
1950 /* The variables used to return semantic value and location from the
1957 /* When reducing, the number of symbols on the RHS of the reduced
1961 YYDPRINTF ((stderr, "Starting parse\n"));
1966 yychar = YYEMPTY; /* Cause a token to be read. */
1968 /* Initialize stack pointers.
1969 Waste one element of value and location stack
1970 so that they stay on the same level as the state stack.
1971 The wasted elements are never initialized. */
1980 /*------------------------------------------------------------.
1981 | yynewstate -- Push a new state, which is found in yystate. |
1982 `------------------------------------------------------------*/
1984 /* In all cases, when you get here, the value and location stacks
1985 have just been pushed. so pushing a state here evens the stacks.
1992 if (yyssp >= yyss + yystacksize - 1)
1994 /* Give user a chance to reallocate the stack. Use copies of
1995 these so that the &'s don't force the real ones into memory.
1997 YYSTYPE *yyvs1 = yyvs;
1998 short *yyss1 = yyss;
2000 YYLTYPE *yyls1 = yyls;
2003 /* Get the current used size of the three stacks, in elements. */
2004 int size = yyssp - yyss + 1;
2007 /* Each stack pointer address is followed by the size of the
2008 data in use in that stack, in bytes. */
2010 /* This used to be a conditional around just the two extra args,
2011 but that might be undefined if yyoverflow is a macro. */
2012 yyoverflow ("parser stack overflow",
2013 &yyss1, size * sizeof (*yyssp),
2014 &yyvs1, size * sizeof (*yyvsp),
2015 &yyls1, size * sizeof (*yylsp),
2018 yyoverflow ("parser stack overflow",
2019 &yyss1, size * sizeof (*yyssp),
2020 &yyvs1, size * sizeof (*yyvsp),
2024 yyss = yyss1; yyvs = yyvs1;
2028 #else /* no yyoverflow */
2029 /* Extend the stack our own way. */
2030 if (yystacksize >= YYMAXDEPTH)
2032 yyerror ("parser stack overflow");
2044 if (yystacksize > YYMAXDEPTH)
2045 yystacksize = YYMAXDEPTH;
2046 # if !YYSTACK_USE_ALLOCA
2049 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
2050 __yy_memcpy ((char *)yyss, (char *)yyss1,
2051 size * (unsigned int) sizeof (*yyssp));
2052 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
2053 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
2054 size * (unsigned int) sizeof (*yyvsp));
2056 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
2057 __yy_memcpy ((char *)yyls, (char *)yyls1,
2058 size * (unsigned int) sizeof (*yylsp));
2060 #endif /* no yyoverflow */
2062 yyssp = yyss + size - 1;
2063 yyvsp = yyvs + size - 1;
2065 yylsp = yyls + size - 1;
2068 YYDPRINTF ((stderr, "Stack size increased to %d\n", yystacksize));
2070 if (yyssp >= yyss + yystacksize - 1)
2074 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2084 /* Do appropriate processing given the current state. */
2085 /* Read a lookahead token if we need one and don't already have one. */
2088 /* First try to decide what to do without reference to lookahead token. */
2090 yyn = yypact[yystate];
2094 /* Not known => get a lookahead token if don't already have one. */
2096 /* yychar is either YYEMPTY or YYEOF
2097 or a valid token in external form. */
2099 if (yychar == YYEMPTY)
2101 YYDPRINTF ((stderr, "Reading a token: "));
2105 /* Convert token to internal form (in yychar1) for indexing tables with */
2107 if (yychar <= 0) /* This means end of input. */
2110 yychar = YYEOF; /* Don't call YYLEX any more */
2112 YYDPRINTF ((stderr, "Now at end of input.\n"));
2116 yychar1 = YYTRANSLATE (yychar);
2119 /* We have to keep this `#if YYDEBUG', since we use variables
2120 which are defined only if `YYDEBUG' is set. */
2123 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2124 /* Give the individual parser a way to print the precise
2125 meaning of a token, for further debugging info. */
2127 YYPRINT (stderr, yychar, yylval);
2129 fprintf (stderr, ")\n");
2135 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2140 /* yyn is what to do for this token type in this state.
2141 Negative => reduce, -yyn is rule number.
2142 Positive => shift, yyn is new state.
2143 New state is final state => don't bother to shift,
2144 just return success.
2145 0, or most negative number => error. */
2160 /* Shift the lookahead token. */
2161 YYDPRINTF ((stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]));
2163 /* Discard the token being shifted unless it is eof. */
2164 if (yychar != YYEOF)
2172 /* Count tokens shifted since error; after three, turn off error
2181 /*-----------------------------------------------------------.
2182 | yydefault -- do the default action for the current state. |
2183 `-----------------------------------------------------------*/
2185 yyn = yydefact[yystate];
2191 /*-----------------------------.
2192 | yyreduce -- Do a reduction. |
2193 `-----------------------------*/
2195 /* yyn is the number of a rule to reduce with. */
2198 /* If YYLEN is nonzero, implement the default value of the action:
2201 Otherwise, the following line sets YYVAL to the semantic value of
2202 the lookahead token. This behavior is undocumented and Bison
2203 users should not rely upon it. Assigning to YYVAL
2204 unconditionally makes the parser a bit smaller, and it avoids a
2205 GCC warning that YYVAL may be used uninitialized. */
2206 yyval = yyvsp[1-yylen];
2209 /* Similarly for the default location. Let the user run additional
2210 commands if for instance locations are ranges. */
2211 yyloc = yylsp[1-yylen];
2212 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
2216 /* We have to keep this `#if YYDEBUG', since we use variables which
2217 are defined only if `YYDEBUG' is set. */
2222 fprintf (stderr, "Reducing via rule %d (line %d), ",
2225 /* Print the symbols being reduced, and their result. */
2226 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2227 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2228 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2235 { lhExternals (yyvsp[0].interfacelist); ;
2238 { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
2241 { yyval.interfacelist = interfaceNodeList_new (); ;
2244 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2247 { yyval.interfacelist = interfaceNodeList_new (); ;
2250 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2253 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2256 { yyval.interfacelist = interfaceNodeList_new (); ;
2259 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2262 { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2263 /* assume subspecs are already processed, symbol table info in external file */
2267 { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
2270 { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
2273 { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
2276 { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
2279 { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
2282 { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
2285 { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
2288 { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
2291 { yyval.paramlist = paramNodeList_new (); ;
2294 { yyval.paramlist = yyvsp[0].paramlist; ;
2297 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
2300 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
2303 { yyval.param = markYieldParamNode (yyvsp[0].param); ;
2306 { yyval.param = yyvsp[0].param; ;
2309 { symtable_export (g_symtab, FALSE); ;
2312 { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
2315 { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
2318 { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
2321 { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
2324 { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
2327 { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
2330 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
2333 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
2336 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
2339 { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
2342 { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
2345 { yyval.typequal = qual_createPrintfLike (); ;
2348 { yyval.typequal = qual_createScanfLike (); ;
2351 { yyval.typequal = qual_createMessageLike (); ;
2354 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2357 { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls,
2358 yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2359 /* type, declarator, glovbls, privateinits,
2360 lets, checks, requires, modifies, ensures, claims */
2361 symtable_exitScope (g_symtab);
2365 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2368 { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist,
2369 yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2370 /* type, declarator, glovbls, privateinits,
2371 lets, checks, requires, modifies, ensures, claims */
2372 symtable_exitScope (g_symtab);
2376 { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
2379 { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate);
2380 symtable_exitScope (g_symtab); ;
2383 { yyval.claim = (claimNode) 0; ;
2386 {g_inTypeDef = TRUE; ;
2389 {g_inTypeDef = FALSE; ;
2392 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
2395 {g_inTypeDef = TRUE; ;
2398 {g_inTypeDef = FALSE; ;
2401 { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2404 {g_inTypeDef = TRUE; ;
2407 {g_inTypeDef = FALSE; ;
2410 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2413 {g_inTypeDef = TRUE; ;
2416 {g_inTypeDef = FALSE; ;
2419 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
2422 { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
2425 { g_inTypeDef = FALSE; ;
2428 { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
2431 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
2434 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
2437 { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
2440 { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
2443 { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
2446 { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
2449 { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
2452 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2455 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2458 { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
2461 { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
2464 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
2467 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
2470 { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
2473 { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
2476 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2479 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2482 { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
2485 { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
2488 { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
2491 { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
2494 { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
2497 { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
2500 { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
2503 { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
2506 { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
2509 { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
2510 yyvsp[-1].name, yyvsp[0].signature); ;
2513 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
2516 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
2519 { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
2522 { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
2525 { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
2528 { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
2531 { yyval.globals = varDeclarationNodeList_new (); ;
2534 { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
2537 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
2540 { yyval.vardeclaration = makeInternalStateNode (); ;
2543 { yyval.vardeclaration = makeFileSystemNode (); ;
2546 { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
2549 { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
2552 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
2555 { yyval.letdecls = letDeclNodeList_new (); ;
2558 { yyval.letdecls = yyvsp[-1].letdecls; ;
2561 { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
2564 { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
2567 { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
2570 { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
2573 { yyval.lclpredicate = (lclPredicateNode)0; ;
2576 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2579 { yyval.lclpredicate = (lclPredicateNode)0; ;
2582 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2585 { yyval.modify = (modifyNode)0; ;
2588 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
2591 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
2594 { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
2597 { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
2600 { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
2603 { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
2606 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
2609 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
2612 { yyval.storeref = makeStoreRefNodeInternal (); ;
2615 { yyval.storeref = makeStoreRefNodeSystem (); ;
2618 { yyval.lclpredicate = (lclPredicateNode)0; ;
2621 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2624 { yyval.lclpredicate = (lclPredicateNode)0; ;
2627 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2630 { yyval.paramlist = paramNodeList_new (); ;
2633 { yyval.paramlist = yyvsp[0].paramlist; ;
2636 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
2639 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
2642 { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
2645 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
2648 { yyval.program = (programNode)0; ;
2651 { yyval.program = yyvsp[-1].program; ;
2654 { yyval.program = yyvsp[-2].program; ;
2657 { yyval.program = makeProgramNode (yyvsp[0].stmt); ;
2660 { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
2663 { programNodeList x = programNodeList_new ();
2664 programNodeList_addh (x, yyvsp[-1].program);
2665 yyval.program = makeProgramNodeAction (x, ACT_ITER);
2669 { programNodeList x = programNodeList_new ();
2670 programNodeList_addh (x, yyvsp[-2].program);
2671 programNodeList_addh (x, yyvsp[0].program);
2672 yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE);
2676 { programNodeList x = programNodeList_new ();
2677 programNodeList_addh (x, yyvsp[-2].program);
2678 programNodeList_addh (x, yyvsp[0].program);
2679 yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE);
2683 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2686 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
2689 { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
2692 { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2695 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
2698 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
2701 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
2704 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
2707 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
2710 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
2713 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
2716 { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
2719 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
2722 { yyval.abstbody = (abstBodyNode)0; ;
2725 { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
2728 { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
2731 { yyval.abstbody = (abstBodyNode)0; ;
2734 { yyval.fcns = fcnNodeList_new (); ;
2737 { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
2740 { yyval.lclpredicate = (lclPredicateNode)0; ;
2743 { g_inTypeDef = FALSE; ;
2746 { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
2747 checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
2748 yyval.lclpredicate = yyvsp[-1].lclpredicate;
2749 symtable_exitScope (g_symtab);
2754 { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
2757 { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
2760 { declareForwardType (yyvsp[0].declare); ;
2763 { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
2766 { yyval.abstbody = (abstBodyNode)0; ;
2769 { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2772 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
2775 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
2778 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
2781 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
2784 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
2787 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
2790 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
2793 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
2796 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
2799 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
2802 { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
2805 { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
2808 { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
2811 { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
2814 { yyval.typequal = qual_createOut (); ;
2817 { yyval.typequal = qual_createUnused (); ;
2820 { yyval.typequal = qual_createSef (); ;
2823 { yyval.typequal = qual_createOnly (); ;
2826 { yyval.typequal = qual_createOwned (); ;
2829 { yyval.typequal = qual_createDependent (); ;
2832 { yyval.typequal = qual_createKeep (); ;
2835 { yyval.typequal = qual_createKept (); ;
2838 { yyval.typequal = qual_createObserver (); ;
2841 { yyval.typequal = qual_createExits (); ;
2844 { yyval.typequal = qual_createMayExit (); ;
2847 { yyval.typequal = qual_createTrueExit (); ;
2850 { yyval.typequal = qual_createFalseExit (); ;
2853 { yyval.typequal = qual_createNeverExit (); ;
2856 { yyval.typequal = qual_createOnly (); ;
2859 { yyval.typequal = qual_createShared (); ;
2862 { yyval.typequal = qual_createUnique (); ;
2865 { yyval.typequal = qual_createChecked (); ;
2868 { yyval.typequal = qual_createUnchecked (); ;
2871 { yyval.typequal = qual_createCheckedStrict (); ;
2874 { yyval.typequal = qual_createTrueNull (); ;
2877 { yyval.typequal = qual_createFalseNull (); ;
2880 { yyval.typequal = qual_createRelNull (); ;
2883 { yyval.typequal = qual_createRelDef (); ;
2886 { yyval.typequal = qual_createRefCounted (); ;
2889 { yyval.typequal = qual_createRefs (); ;
2892 { yyval.typequal = qual_createNewRef (); ;
2895 { yyval.typequal = qual_createKillRef (); ;
2898 { yyval.typequal = qual_createNull (); ;
2901 { yyval.typequal = qual_createNotNull (); ;
2904 { yyval.typequal = qual_createReturned (); ;
2907 { yyval.typequal = qual_createExposed (); ;
2910 { yyval.typequal = qual_createPartial (); ;
2913 { yyval.typequal = qual_createNullTerminated () ; ;
2916 { yyval.typequal = qual_createUndef (); ;
2919 { yyval.typequal = qual_createKilled (); ;
2922 { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
2925 { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
2928 { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
2931 { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
2934 { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
2937 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
2938 yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
2941 { yyval.count = 1; ;
2944 { yyval.count = yyvsp[-1].count + 1; ;
2947 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
2950 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
2953 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
2956 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
2959 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
2962 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
2965 { yyval.ltok = ltoken_undefined; ;
2968 { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
2971 { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
2974 { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
2977 { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
2980 { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
2989 { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
2992 { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
2995 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2998 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3001 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3004 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3007 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3010 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3013 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3016 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3019 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3022 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3025 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3028 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3031 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3034 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3037 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3040 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3043 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3046 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3049 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3052 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3055 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3058 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3061 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3064 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3067 { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3070 { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3073 { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
3076 { yyval.abstDecl = (abstDeclaratorNode)0; ;
3079 { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
3082 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3085 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3088 { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
3091 { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
3094 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3097 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3100 { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
3103 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3106 { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
3109 { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
3112 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
3115 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3118 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3121 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3124 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
3125 opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3128 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3131 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3134 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3137 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3140 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3143 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3146 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3149 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3152 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
3153 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3156 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
3157 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3160 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
3161 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3164 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
3165 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3168 { yyval.count = 0; ;
3171 { yyval.count = 1; ;
3174 { yyval.count = yyvsp[-2].count + 1; ;
3177 { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3180 { yyval.ltokenList = ltokenList_new (); ;
3183 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3186 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3189 { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
3192 { yyval.term = checkSort (yyvsp[0].term); ;
3195 { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
3198 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
3201 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
3202 symtable_exitScope (g_symtab);
3206 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3209 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3212 { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
3215 { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
3218 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
3221 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3224 { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
3227 { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
3230 { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
3233 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3236 { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3239 { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
3242 { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
3245 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3248 { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3251 { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3254 { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok);
3255 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3258 { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3261 { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok);
3262 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok));
3266 { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3269 { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3272 { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3275 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3278 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3281 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
3284 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3287 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3290 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
3293 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3296 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3299 { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
3303 { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
3306 { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3309 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3312 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3315 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3318 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3321 { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
3324 { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
3327 { termNodeList x = termNodeList_new ();
3328 termNodeList_addh (x, yyvsp[-1].term);
3329 yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok);
3333 { termNodeList x = termNodeList_new ();
3334 termNodeList_addh (x, yyvsp[-3].term);
3335 termNodeList_addh (x, yyvsp[-1].term);
3336 yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok);
3340 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
3343 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
3346 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
3349 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
3352 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
3355 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
3358 { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
3361 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
3362 si->kind = SPE_QUANT;
3363 symtable_enterScope (g_symtab, si); ;
3366 { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
3369 { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
3372 { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
3375 { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
3378 { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
3393 short *ssp1 = yyss - 1;
3394 fprintf (stderr, "state stack now");
3395 while (ssp1 != yyssp)
3396 fprintf (stderr, " %d", *++ssp1);
3397 fprintf (stderr, "\n");
3406 /* Now `shift' the result of the reduction. Determine what state
3407 that goes to, based on the state we popped back to and the rule
3408 number reduced by. */
3412 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3413 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3414 yystate = yytable[yystate];
3416 yystate = yydefgoto[yyn - YYNTBASE];
3421 /*------------------------------------.
3422 | yyerrlab -- here on detecting error |
3423 `------------------------------------*/
3425 /* If not already recovering from an error, report this error. */
3430 #ifdef YYERROR_VERBOSE
3431 yyn = yypact[yystate];
3433 if (yyn > YYFLAG && yyn < YYLAST)
3440 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3441 for (x = (yyn < 0 ? -yyn : 0);
3442 x < (int) (sizeof (yytname) / sizeof (char *)); x++)
3443 if (yycheck[x + yyn] == x)
3444 size += strlen (yytname[x]) + 15, count++;
3445 size += strlen ("parse error, unexpected `") + 1;
3446 size += strlen (yytname[YYTRANSLATE (yychar)]);
3447 msg = (char *) malloc (size);
3450 strcpy (msg, "parse error, unexpected `");
3451 strcat (msg, yytname[YYTRANSLATE (yychar)]);
3457 for (x = (yyn < 0 ? -yyn : 0);
3458 x < (int) (sizeof (yytname) / sizeof (char *)); x++)
3459 if (yycheck[x + yyn] == x)
3461 strcat (msg, count == 0 ? ", expecting `" : " or `");
3462 strcat (msg, yytname[x]);
3471 yyerror ("parse error; also virtual memory exceeded");
3474 #endif /* YYERROR_VERBOSE */
3475 yyerror ("parse error");
3480 /*--------------------------------------------------.
3481 | yyerrlab1 -- error raised explicitly by an action |
3482 `--------------------------------------------------*/
3484 if (yyerrstatus == 3)
3486 /* If just tried and failed to reuse lookahead token after an
3487 error, discard it. */
3489 /* return failure if at end of input */
3490 if (yychar == YYEOF)
3492 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
3493 yychar, yytname[yychar1]));
3497 /* Else will try to reuse lookahead token after shifting the error
3500 yyerrstatus = 3; /* Each real token shifted decrements this */
3505 /*-------------------------------------------------------------------.
3506 | yyerrdefault -- current state does not do anything special for the |
3508 `-------------------------------------------------------------------*/
3511 /* This is wrong; only states that explicitly want error tokens
3512 should shift them. */
3514 /* If its default is to accept any token, ok. Otherwise pop it. */
3515 yyn = yydefact[yystate];
3521 /*---------------------------------------------------------------.
3522 | yyerrpop -- pop the current state because it cannot handle the |
3524 `---------------------------------------------------------------*/
3537 short *ssp1 = yyss - 1;
3538 fprintf (stderr, "Error: state stack now");
3539 while (ssp1 != yyssp)
3540 fprintf (stderr, " %d", *++ssp1);
3541 fprintf (stderr, "\n");
3549 yyn = yypact[yystate];
3554 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3571 YYDPRINTF ((stderr, "Shifting error token, "));
3582 /*-------------------------------------.
3583 | yyacceptlab -- YYACCEPT comes here. |
3584 `-------------------------------------*/
3597 /*-----------------------------------.
3598 | yyabortlab -- YYABORT comes here. |
3599 `-----------------------------------*/
3613 # include "bison.reset"
3616 ** yytext is set in lex scanner
3617 ** extern YYSTYPE yylval;
3618 ** yylval is defined by code generated by bison
3621 void ylerror (char *s)
3624 ** This resetting of the left context is very important when multiple
3625 ** files are to be parsed. We do not want failures to propagate.
3626 ** Lex/Yacc does not reset the flags when the parsing goes bad.
3631 lclfatalerror (yllval.ltok,
3632 message ("%s: Token code: %s, Token String: %s",
3633 cstring_fromChars (s),
3634 ltoken_unparseCodeName (yllval.ltok),
3635 ltoken_getRawString (yllval.ltok)));
3639 static void yyprint (FILE *f, int t, YYSTYPE value)
3641 fprintf (f, " type: %d (%s)", t,
3642 cstring_toCharsSafe (ltoken_getRawString (value.ltok)));
3652 ** Resets all flags in bison.head
3674 /*@=evalorderuncon@*/
3683 /*@=elseifcomplete@*/
3687 /*@=readonlytrans@*/
3690 /*@=systemunrecog@*/
3691 /*@=dependenttrans@*/
3692 /*@=unqualifiedtrans@*/
3696 /*drl added 11/27/2001*/