2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
49 /*drl added 11/27/2001*/
52 /*drl added 12/11/2002*/
55 /* < end of bison.head > */
57 /* A Bison parser, made from llgrammar.y
60 #define YYBISON 1 /* Identify Bison output. */
62 #define yyparse ylparse
64 #define yyerror ylerror
67 #define yydebug yldebug
68 #define yynerrs ylnerrs
70 # define PREFIX_OP 258
71 # define POSTFIX_OP 259
72 # define LLT_MULOP 260
74 # define LLT_VERTICALBAR 262
75 # define ITERATION_OP 263
77 # define LLT_LBRACKET 265
78 # define selectSym 266
79 # define LLT_IF_THEN_ELSE 267
80 # define logicalOp 268
82 # define equationSym 270
83 # define commentSym 271
84 # define LLT_WHITESPACE 272
86 # define LLT_TYPEDEF_NAME 274
87 # define quantifierSym 275
93 # define markerSym 281
97 # define LLT_COLON 285
98 # define LLT_COMMA 286
99 # define LLT_EQUALS 287
100 # define LLT_LBRACE 288
101 # define LLT_RBRACE 289
102 # define LLT_RBRACKET 290
103 # define LLT_RPAR 291
104 # define LLT_QUOTE 292
106 # define LLT_CCHAR 294
107 # define LLT_CFLOAT 295
108 # define LLT_CINTEGER 296
109 # define LLT_LCSTRING 297
111 # define LLT_ANYTHING 299
113 # define LLT_BODY 301
114 # define LLT_CLAIMS 302
115 # define LLT_CHECKS 303
116 # define LLT_CONSTANT 304
117 # define LLT_ELSE 305
118 # define LLT_ENSURES 306
120 # define LLT_FRESH 308
122 # define LLT_IMMUTABLE 310
123 # define LLT_IMPORTS 311
124 # define LLT_CONSTRAINT 312
125 # define LLT_ISSUB 313
127 # define LLT_MODIFIES 315
128 # define LLT_MUTABLE 316
129 # define LLT_NOTHING 317
130 # define LLT_INTERNAL 318
131 # define LLT_FILESYS 319
135 # define LLT_ONLY 323
136 # define LLT_PARTIAL 324
137 # define LLT_OWNED 325
138 # define LLT_DEPENDENT 326
139 # define LLT_KEEP 327
140 # define LLT_KEPT 328
141 # define LLT_TEMP 329
142 # define LLT_SHARED 330
143 # define LLT_UNIQUE 331
144 # define LLT_UNUSED 332
145 # define LLT_EXITS 333
146 # define LLT_MAYEXIT 334
147 # define LLT_NEVEREXIT 335
148 # define LLT_TRUEEXIT 336
149 # define LLT_FALSEEXIT 337
150 # define LLT_UNDEF 338
151 # define LLT_KILLED 339
152 # define LLT_CHECKMOD 340
153 # define LLT_CHECKED 341
154 # define LLT_UNCHECKED 342
155 # define LLT_CHECKEDSTRICT 343
156 # define LLT_TRUENULL 344
157 # define LLT_FALSENULL 345
158 # define LLT_LNULL 346
159 # define LLT_LNOTNULL 347
160 # define LLT_RETURNED 348
161 # define LLT_OBSERVER 349
162 # define LLT_EXPOSED 350
163 # define LLT_REFCOUNTED 351
164 # define LLT_REFS 352
165 # define LLT_RELNULL 353
166 # define LLT_RELDEF 354
167 # define LLT_KILLREF 355
168 # define LLT_NULLTERMINATED 356
169 # define LLT_TEMPREF 357
170 # define LLT_NEWREF 358
171 # define LLT_PRIVATE 359
172 # define LLT_REQUIRES 360
173 # define LLT_RESULT 361
174 # define LLT_SIZEOF 362
175 # define LLT_SPEC 363
176 # define LLT_TAGGEDUNION 364
177 # define LLT_THEN 365
178 # define LLT_TYPE 366
179 # define LLT_TYPEDEF 367
180 # define LLT_UNCHANGED 368
181 # define LLT_USES 369
182 # define LLT_CHAR 370
183 # define LLT_CONST 371
184 # define LLT_DOUBLE 372
185 # define LLT_ENUM 373
186 # define LLT_FLOAT 374
188 # define LLT_ITER 376
189 # define LLT_YIELD 377
190 # define LLT_LONG 378
191 # define LLT_SHORT 379
192 # define LLT_SIGNED 380
193 # define LLT_UNKNOWN 381
194 # define LLT_STRUCT 382
195 # define LLT_TELIPSIS 383
196 # define LLT_UNION 384
197 # define LLT_UNSIGNED 385
198 # define LLT_VOID 386
199 # define LLT_VOLATILE 387
200 # define LLT_PRINTFLIKE 388
201 # define LLT_SCANFLIKE 389
202 # define LLT_MESSAGELIKE 390
206 # include "splintMacros.nf"
208 # include "lclscan.h"
209 # include "checking.h"
210 # include "lslparse.h"
212 # include "usymtab_interface.h"
215 static /*@unused@*/ void yyprint ();
219 void ylerror (char *) /*@modifies *g_warningstream@*/ ;
222 bool g_inTypeDef = FALSE;
224 /*@constant int YYDEBUG;@*/
228 # define YYPRINT(file, type, value) yyprint (file, type, value)
231 ** This is necessary, or else when the bison-generated code #include's malloc.h,
232 ** there will be a parse error.
234 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
235 ** in bison-generated files under Win32.
248 ltoken ltok; /* a leaf is also an ltoken */
251 /*@only@*/ ltokenList ltokenList;
252 /*@only@*/ abstDeclaratorNode abstDecl;
253 /*@only@*/ declaratorNode declare;
254 /*@only@*/ declaratorNodeList declarelist;
255 /*@only@*/ typeExpr typeexpr;
256 /*@only@*/ arrayQualNode array;
257 /*@only@*/ quantifierNode quantifier;
258 /*@only@*/ quantifierNodeList quantifiers;
259 /*@only@*/ varNode var;
260 /*@only@*/ varNodeList vars;
261 /*@only@*/ storeRefNode storeref;
262 /*@only@*/ storeRefNodeList storereflist;
263 /*@only@*/ termNode term;
264 /*@only@*/ termNodeList termlist;
265 /*@only@*/ programNode program;
266 /*@only@*/ stmtNode stmt;
267 /*@only@*/ claimNode claim;
268 /*@only@*/ typeNode type;
269 /*@only@*/ iterNode iter;
270 /*@only@*/ fcnNode fcn;
271 /*@only@*/ fcnNodeList fcns;
272 /*@only@*/ letDeclNode letdecl;
273 /*@only@*/ letDeclNodeList letdecls;
274 /*@only@*/ lclPredicateNode lclpredicate;
275 /*@only@*/ modifyNode modify;
276 /*@only@*/ paramNode param;
277 /*@only@*/ paramNodeList paramlist;
278 /*@only@*/ declaratorInvNodeList declaratorinvs;
279 /*@only@*/ declaratorInvNode declaratorinv;
280 /*@only@*/ abstBodyNode abstbody;
281 /*@only@*/ abstractNode abstract;
282 /*@only@*/ exposedNode exposed;
283 /*@only@*/ pointers pointers;
284 /* taggedUnionNode taggedunion; */
285 /*@only@*/ globalList globals;
286 /*@only@*/ constDeclarationNode constdeclaration;
287 /*@only@*/ varDeclarationNode vardeclaration;
288 /*@only@*/ varDeclarationNodeList vardeclarationlist;
289 /*@only@*/ initDeclNodeList initdecls;
290 /*@only@*/ initDeclNode initdecl;
291 /*@only@*/ stDeclNodeList structdecls;
292 /*@only@*/ stDeclNode structdecl;
293 /*@only@*/ strOrUnionNode structorunion;
294 /*@only@*/ enumSpecNode enumspec;
295 /*@only@*/ lclTypeSpecNode lcltypespec;
296 /*@only@*/ typeNameNode typname;
297 /*@only@*/ opFormNode opform;
298 /*@only@*/ sigNode signature;
299 /*@only@*/ nameNode name;
300 /*@only@*/ typeNameNodeList namelist;
301 /*@only@*/ replaceNode replace;
302 /*@only@*/ replaceNodeList replacelist;
303 /*@only@*/ renamingNode renaming;
304 /*@only@*/ traitRefNode traitref;
305 /*@only@*/ traitRefNodeList traitreflist;
306 /*@only@*/ importNode import;
307 /*@only@*/ importNodeList importlist;
308 /*@only@*/ interfaceNode iface;
309 /*@only@*/ interfaceNodeList interfacelist;
310 /*@only@*/ CTypesNode ctypes;
313 # define YYSTYPE yystype
314 # define YYSTYPE_IS_TRIVIAL 1
323 #define YYFLAG -32768
326 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
327 #define YYTRANSLATE(x) ((unsigned)(x) <= 390 ? yytranslate[x] : 291)
329 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
330 static const short yytranslate[] =
332 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
352 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
354 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
355 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
356 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
357 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
358 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
359 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
360 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
361 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
362 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
363 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
364 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
365 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
366 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
367 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
368 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
369 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
370 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
375 static const short yyprhs[] =
377 0, 0, 1, 5, 6, 9, 11, 13, 14, 17,
378 20, 21, 24, 26, 28, 30, 34, 38, 40, 42,
379 44, 46, 48, 50, 57, 58, 60, 62, 66, 69,
380 71, 72, 76, 78, 80, 82, 84, 89, 93, 98,
381 103, 105, 107, 109, 111, 113, 114, 128, 129, 144,
382 145, 159, 164, 165, 166, 173, 174, 175, 183, 184,
383 185, 193, 194, 195, 202, 203, 204, 211, 214, 217,
384 219, 223, 225, 229, 231, 233, 237, 239, 241, 245,
385 247, 252, 256, 263, 265, 269, 271, 273, 277, 279,
386 283, 285, 289, 293, 297, 302, 304, 306, 308, 310,
387 312, 316, 318, 322, 323, 326, 330, 333, 336, 337,
388 340, 345, 346, 350, 352, 356, 362, 366, 368, 369,
389 373, 374, 378, 379, 383, 387, 391, 393, 397, 399,
390 401, 404, 406, 408, 409, 413, 414, 418, 419, 421,
391 423, 425, 429, 431, 435, 436, 441, 447, 449, 453,
392 456, 460, 464, 469, 473, 479, 486, 488, 492, 494,
393 496, 499, 502, 506, 510, 514, 519, 521, 525, 530,
394 534, 535, 538, 539, 541, 542, 549, 551, 555, 556,
395 560, 561, 565, 567, 569, 571, 573, 575, 577, 579,
396 581, 583, 585, 587, 590, 592, 594, 596, 598, 600,
397 602, 604, 606, 608, 610, 612, 614, 616, 618, 620,
398 622, 624, 626, 628, 630, 632, 634, 636, 638, 640,
399 642, 644, 646, 648, 650, 652, 654, 656, 658, 660,
400 662, 664, 666, 668, 670, 672, 675, 681, 683, 686,
401 688, 691, 692, 699, 700, 707, 710, 713, 714, 716,
402 718, 721, 725, 727, 731, 732, 734, 741, 744, 746,
403 750, 752, 754, 756, 760, 763, 766, 770, 775, 777,
404 781, 784, 787, 791, 796, 798, 801, 804, 808, 813,
405 816, 819, 822, 825, 829, 831, 832, 834, 838, 841,
406 843, 845, 848, 852, 856, 861, 864, 868, 875, 877,
407 880, 883, 887, 891, 896, 901, 907, 911, 916, 921,
408 927, 930, 933, 937, 941, 943, 945, 947, 949, 951,
409 953, 955, 956, 958, 960, 964, 966, 968, 973, 974,
410 976, 978, 982, 984, 986, 993, 995, 999, 1001, 1006,
411 1010, 1014, 1016, 1019, 1022, 1024, 1026, 1028, 1031, 1033,
412 1036, 1039, 1043, 1045, 1047, 1050, 1053, 1057, 1059, 1062,
413 1066, 1068, 1074, 1078, 1083, 1086, 1090, 1093, 1095, 1099,
414 1103, 1105, 1110, 1112, 1115, 1119, 1123, 1127, 1132, 1136,
415 1138, 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1159, 1164,
416 1169, 1174, 1181, 1186, 1188, 1190, 1192, 1194, 1196, 1199,
417 1200, 1204, 1206, 1210, 1214, 1219, 1221, 1223, 1225, 1227,
418 1229, 1231, 1233, 1235
420 static const short yyrhs[] =
422 -1, 139, 138, 141, 0, 0, 139, 140, 0, 144,
423 0, 145, 0, 0, 146, 142, 0, 151, 142, 0,
424 0, 142, 143, 0, 146, 0, 151, 0, 145, 0,
425 57, 175, 7, 0, 115, 179, 7, 0, 154, 0,
426 155, 0, 156, 0, 158, 0, 161, 0, 147, 0,
427 122, 285, 10, 148, 37, 7, 0, 0, 149, 0,
428 150, 0, 149, 32, 150, 0, 123, 244, 0, 244,
429 0, 0, 109, 152, 153, 0, 154, 0, 155, 0,
430 156, 0, 158, 0, 50, 227, 189, 7, 0, 227,
431 189, 7, 0, 117, 227, 189, 7, 0, 133, 227,
432 189, 7, 0, 163, 0, 172, 0, 134, 0, 135,
433 0, 136, 0, 0, 227, 240, 191, 159, 34, 193,
434 195, 199, 200, 201, 204, 205, 35, 0, 0, 157,
435 227, 240, 191, 160, 34, 193, 195, 199, 200, 201,
436 204, 205, 35, 0, 0, 48, 287, 10, 206, 37,
437 191, 162, 34, 195, 200, 209, 204, 35, 0, 48,
438 284, 287, 7, 0, 0, 0, 62, 164, 112, 20,
439 165, 214, 0, 0, 0, 62, 166, 97, 112, 20,
440 167, 214, 0, 0, 0, 97, 62, 168, 112, 20,
441 169, 214, 0, 0, 0, 56, 170, 112, 20, 171,
442 214, 0, 0, 0, 113, 227, 173, 219, 174, 7,
443 0, 230, 7, 0, 238, 7, 0, 176, 0, 175,
444 32, 176, 0, 178, 0, 3, 178, 3, 0, 43,
445 0, 178, 0, 177, 32, 178, 0, 283, 0, 180,
446 0, 179, 32, 180, 0, 289, 0, 289, 10, 182,
447 37, 0, 10, 181, 37, 0, 10, 181, 37, 10,
448 182, 37, 0, 289, 0, 181, 32, 289, 0, 184,
449 0, 183, 0, 183, 32, 184, 0, 245, 0, 183,
450 32, 245, 0, 185, 0, 184, 32, 185, 0, 245,
451 53, 223, 0, 245, 53, 186, 0, 245, 53, 186,
452 256, 0, 290, 0, 249, 0, 188, 0, 260, 0,
453 190, 0, 189, 32, 190, 0, 240, 0, 240, 33,
454 187, 0, 0, 191, 192, 0, 227, 189, 7, 0,
455 64, 7, 0, 65, 7, 0, 0, 193, 194, 0,
456 105, 227, 189, 7, 0, 0, 60, 196, 7, 0,
457 197, 0, 196, 32, 197, 0, 285, 31, 198, 46,
458 260, 0, 285, 46, 260, 0, 227, 0, 0, 49,
459 259, 7, 0, 0, 106, 259, 7, 0, 0, 61,
460 63, 7, 0, 61, 45, 7, 0, 61, 202, 7,
461 0, 203, 0, 202, 32, 203, 0, 260, 0, 228,
462 0, 66, 228, 0, 64, 0, 65, 0, 0, 52,
463 259, 7, 0, 0, 48, 259, 7, 0, 0, 207,
464 0, 208, 0, 129, 0, 208, 32, 129, 0, 244,
465 0, 208, 32, 244, 0, 0, 47, 34, 210, 35,
466 0, 47, 34, 210, 7, 35, 0, 211, 0, 10,
467 210, 37, 0, 210, 6, 0, 210, 8, 210, 0,
468 210, 7, 210, 0, 284, 10, 212, 37, 0, 284,
469 10, 37, 0, 285, 33, 284, 10, 37, 0, 285,
470 33, 284, 10, 212, 37, 0, 213, 0, 212, 32,
471 213, 0, 277, 0, 285, 0, 3, 213, 0, 213,
472 3, 0, 213, 3, 213, 0, 10, 213, 37, 0,
473 284, 10, 37, 0, 284, 10, 212, 37, 0, 7,
474 0, 34, 215, 35, 0, 34, 177, 35, 7, 0,
475 34, 35, 7, 0, 0, 215, 158, 0, 0, 217,
476 0, 0, 58, 218, 279, 10, 259, 37, 0, 220,
477 0, 219, 32, 220, 0, 0, 240, 221, 222, 0,
478 0, 34, 216, 35, 0, 132, 0, 116, 0, 118,
479 0, 120, 0, 121, 0, 124, 0, 125, 0, 126,
480 0, 131, 0, 127, 0, 223, 0, 224, 223, 0,
481 20, 0, 224, 0, 67, 0, 78, 0, 68, 0,
482 69, 0, 71, 0, 72, 0, 73, 0, 74, 0,
483 95, 0, 79, 0, 80, 0, 82, 0, 83, 0,
484 81, 0, 75, 0, 76, 0, 77, 0, 87, 0,
485 88, 0, 89, 0, 90, 0, 91, 0, 99, 0,
486 100, 0, 97, 0, 98, 0, 104, 0, 101, 0,
487 92, 0, 93, 0, 94, 0, 96, 0, 70, 0,
488 102, 0, 84, 0, 85, 0, 225, 0, 230, 0,
489 238, 0, 226, 227, 0, 8, 228, 31, 228, 8,
490 0, 227, 0, 227, 229, 0, 6, 0, 229, 6,
491 0, 0, 128, 233, 231, 34, 234, 35, 0, 0,
492 130, 233, 232, 34, 234, 35, 0, 128, 286, 0,
493 130, 286, 0, 0, 286, 0, 235, 0, 234, 235,
494 0, 227, 236, 7, 0, 240, 0, 236, 32, 240,
495 0, 0, 32, 0, 119, 233, 34, 239, 237, 35,
496 0, 119, 286, 0, 25, 0, 239, 32, 25, 0,
497 242, 0, 241, 0, 285, 0, 10, 241, 37, 0,
498 6, 241, 0, 241, 248, 0, 241, 10, 37, 0,
499 241, 10, 207, 37, 0, 20, 0, 10, 242, 37,
500 0, 6, 242, 0, 242, 248, 0, 242, 10, 37,
501 0, 242, 10, 207, 37, 0, 20, 0, 6, 243,
502 0, 243, 248, 0, 243, 10, 37, 0, 243, 10,
503 207, 37, 0, 227, 243, 0, 227, 241, 0, 227,
504 246, 0, 227, 246, 0, 66, 227, 246, 0, 249,
505 0, 0, 247, 0, 10, 247, 37, 0, 6, 247,
506 0, 6, 0, 248, 0, 247, 248, 0, 247, 10,
507 37, 0, 10, 207, 37, 0, 247, 10, 207, 37,
508 0, 11, 36, 0, 11, 188, 36, 0, 55, 27,
509 111, 27, 51, 27, 0, 252, 0, 27, 252, 0,
510 252, 27, 0, 27, 252, 27, 0, 250, 253, 251,
511 0, 27, 250, 253, 251, 0, 250, 253, 251, 27,
512 0, 27, 250, 253, 251, 27, 0, 11, 253, 36,
513 0, 11, 253, 36, 27, 0, 27, 11, 253, 36,
514 0, 27, 11, 253, 36, 27, 0, 12, 283, 0,
515 26, 283, 0, 27, 12, 283, 0, 27, 26, 283,
516 0, 22, 0, 34, 0, 23, 0, 35, 0, 264,
517 0, 14, 0, 39, 0, 0, 254, 0, 27, 0,
518 254, 255, 27, 0, 32, 0, 24, 0, 31, 257,
519 26, 288, 0, 0, 258, 0, 288, 0, 258, 32,
520 288, 0, 260, 0, 261, 0, 55, 261, 111, 261,
521 51, 261, 0, 262, 0, 261, 14, 261, 0, 263,
522 0, 278, 10, 259, 37, 0, 263, 39, 263, 0,
523 263, 33, 263, 0, 265, 0, 268, 266, 0, 268,
524 267, 0, 3, 0, 6, 0, 268, 0, 264, 265,
525 0, 264, 0, 266, 264, 0, 264, 268, 0, 267,
526 264, 268, 0, 273, 0, 269, 0, 269, 273, 0,
527 273, 269, 0, 273, 269, 273, 0, 270, 0, 270,
528 273, 0, 271, 31, 288, 0, 271, 0, 11, 272,
529 36, 31, 288, 0, 11, 272, 36, 0, 11, 36,
530 31, 288, 0, 11, 36, 0, 250, 272, 251, 0,
531 250, 251, 0, 260, 0, 272, 255, 260, 0, 10,
532 261, 37, 0, 285, 0, 290, 10, 274, 37, 0,
533 276, 0, 273, 275, 0, 273, 12, 283, 0, 273,
534 26, 283, 0, 273, 11, 36, 0, 273, 11, 274,
535 36, 0, 273, 31, 288, 0, 261, 0, 274, 32,
536 261, 0, 28, 0, 29, 0, 30, 0, 38, 0,
537 277, 0, 107, 0, 54, 10, 274, 37, 0, 114,
538 10, 44, 37, 0, 114, 10, 202, 37, 0, 108,
539 10, 260, 37, 0, 59, 10, 260, 32, 260, 37,
540 0, 108, 10, 227, 37, 0, 42, 0, 43, 0,
541 40, 0, 41, 0, 279, 0, 278, 279, 0, 0,
542 21, 280, 281, 0, 282, 0, 281, 32, 282, 0,
543 285, 31, 198, 0, 285, 31, 66, 198, 0, 25,
544 0, 20, 0, 25, 0, 25, 0, 283, 0, 283,
545 0, 283, 0, 283, 0, 283, 0
551 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
552 static const short yyrline[] =
554 0, 382, 382, 387, 388, 392, 393, 397, 398, 399,
555 403, 404, 408, 409, 410, 414, 421, 426, 428, 430,
556 432, 434, 436, 441, 446, 447, 451, 453, 458, 459,
557 463, 463, 468, 470, 472, 474, 479, 484, 486, 488,
558 493, 494, 498, 499, 500, 504, 504, 512, 512, 525,
559 525, 530, 535, 535, 535, 537, 537, 537, 540, 540,
560 540, 543, 543, 543, 548, 548, 548, 551, 553, 570,
561 572, 577, 578, 580, 584, 585, 589, 594, 596, 601,
562 603, 605, 607, 612, 613, 617, 619, 621, 625, 627,
563 631, 633, 637, 638, 639, 644, 645, 648, 651, 655,
564 657, 662, 663, 667, 669, 674, 675, 676, 680, 681,
565 685, 690, 691, 695, 696, 700, 701, 704, 708, 709,
566 713, 714, 718, 719, 720, 721, 725, 726, 730, 731,
567 732, 733, 734, 738, 739, 743, 744, 748, 749, 753,
568 754, 755, 759, 760, 764, 765, 766, 770, 771, 774,
569 779, 785, 794, 796, 798, 800, 805, 806, 810, 811,
570 812, 813, 814, 815, 816, 818, 823, 824, 825, 826,
571 830, 831, 835, 836, 840, 840, 850, 851, 856, 856,
572 861, 862, 866, 867, 868, 869, 870, 871, 872, 873,
573 874, 875, 884, 885, 891, 893, 900, 901, 902, 903,
574 904, 905, 906, 907, 908, 909, 910, 911, 912, 913,
575 914, 915, 916, 917, 918, 919, 920, 921, 922, 923,
576 924, 925, 926, 927, 928, 929, 930, 931, 932, 933,
577 934, 935, 939, 941, 943, 945, 947, 957, 958, 964,
578 965, 969, 969, 973, 973, 977, 979, 984, 985, 989,
579 990, 996, 1000, 1002, 1007, 1008, 1012, 1014, 1019, 1020,
580 1031, 1032, 1036, 1037, 1038, 1039, 1040, 1041, 1045, 1046,
581 1047, 1048, 1049, 1050, 1060, 1061, 1062, 1063, 1064, 1071,
582 1072, 1073, 1084, 1085, 1086, 1092, 1093, 1097, 1098, 1099,
583 1100, 1101, 1102, 1103, 1104, 1108, 1109, 1113, 1115, 1117,
584 1119, 1121, 1124, 1126, 1128, 1130, 1132, 1134, 1142, 1144,
585 1146, 1149, 1152, 1155, 1161, 1162, 1166, 1167, 1171, 1172,
586 1173, 1177, 1178, 1182, 1183, 1187, 1188, 1192, 1196, 1197,
587 1201, 1202, 1206, 1210, 1217, 1219, 1220, 1224, 1225, 1230,
588 1232, 1237, 1238, 1239, 1243, 1244, 1248, 1249, 1253, 1254,
589 1258, 1259, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1273,
590 1274, 1278, 1281, 1283, 1287, 1292, 1293, 1297, 1298, 1302,
591 1304, 1306, 1308, 1309, 1311, 1313, 1315, 1318, 1320, 1325,
592 1326, 1330, 1331, 1332, 1333, 1337, 1338, 1339, 1340, 1341,
593 1342, 1347, 1353, 1364, 1365, 1366, 1367, 1371, 1373, 1378,
594 1378, 1386, 1387, 1391, 1392, 1396, 1397, 1401, 1402, 1403,
595 1404, 1405, 1406, 1407
600 #if (YYDEBUG) || defined YYERROR_VERBOSE
602 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
603 static const char *const yytname[] =
605 "$", "error", "$undefined.", "simpleOp", "PREFIX_OP", "POSTFIX_OP",
606 "LLT_MULOP", "LLT_SEMI", "LLT_VERTICALBAR", "ITERATION_OP", "LLT_LPAR",
607 "LLT_LBRACKET", "selectSym", "LLT_IF_THEN_ELSE", "logicalOp",
608 "eqSepSym", "equationSym", "commentSym", "LLT_WHITESPACE", "LLT_EOL",
609 "LLT_TYPEDEF_NAME", "quantifierSym", "openSym", "closeSym", "sepSym",
610 "simpleId", "mapSym", "markerSym", "preSym", "postSym", "anySym",
611 "LLT_COLON", "LLT_COMMA", "LLT_EQUALS", "LLT_LBRACE", "LLT_RBRACE",
612 "LLT_RBRACKET", "LLT_RPAR", "LLT_QUOTE", "eqOp", "LLT_CCHAR",
613 "LLT_CFLOAT", "LLT_CINTEGER", "LLT_LCSTRING", "LLT_ALL", "LLT_ANYTHING",
614 "LLT_BE", "LLT_BODY", "LLT_CLAIMS", "LLT_CHECKS", "LLT_CONSTANT",
615 "LLT_ELSE", "LLT_ENSURES", "LLT_FOR", "LLT_FRESH", "LLT_IF",
616 "LLT_IMMUTABLE", "LLT_IMPORTS", "LLT_CONSTRAINT", "LLT_ISSUB",
617 "LLT_LET", "LLT_MODIFIES", "LLT_MUTABLE", "LLT_NOTHING", "LLT_INTERNAL",
618 "LLT_FILESYS", "LLT_OBJ", "LLT_OUT", "LLT_SEF", "LLT_ONLY",
619 "LLT_PARTIAL", "LLT_OWNED", "LLT_DEPENDENT", "LLT_KEEP", "LLT_KEPT",
620 "LLT_TEMP", "LLT_SHARED", "LLT_UNIQUE", "LLT_UNUSED", "LLT_EXITS",
621 "LLT_MAYEXIT", "LLT_NEVEREXIT", "LLT_TRUEEXIT", "LLT_FALSEEXIT",
622 "LLT_UNDEF", "LLT_KILLED", "LLT_CHECKMOD", "LLT_CHECKED",
623 "LLT_UNCHECKED", "LLT_CHECKEDSTRICT", "LLT_TRUENULL", "LLT_FALSENULL",
624 "LLT_LNULL", "LLT_LNOTNULL", "LLT_RETURNED", "LLT_OBSERVER",
625 "LLT_EXPOSED", "LLT_REFCOUNTED", "LLT_REFS", "LLT_RELNULL",
626 "LLT_RELDEF", "LLT_KILLREF", "LLT_NULLTERMINATED", "LLT_TEMPREF",
627 "LLT_NEWREF", "LLT_PRIVATE", "LLT_REQUIRES", "LLT_RESULT", "LLT_SIZEOF",
628 "LLT_SPEC", "LLT_TAGGEDUNION", "LLT_THEN", "LLT_TYPE", "LLT_TYPEDEF",
629 "LLT_UNCHANGED", "LLT_USES", "LLT_CHAR", "LLT_CONST", "LLT_DOUBLE",
630 "LLT_ENUM", "LLT_FLOAT", "LLT_INT", "LLT_ITER", "LLT_YIELD", "LLT_LONG",
631 "LLT_SHORT", "LLT_SIGNED", "LLT_UNKNOWN", "LLT_STRUCT", "LLT_TELIPSIS",
632 "LLT_UNION", "LLT_UNSIGNED", "LLT_VOID", "LLT_VOLATILE",
633 "LLT_PRINTFLIKE", "LLT_SCANFLIKE", "LLT_MESSAGELIKE", "interface", "@1",
634 "externals", "external", "optDeclarations", "declarations",
635 "declaration", "imports", "uses", "export", "iter", "iterParamList",
636 "realIterParamList", "iterParam", "private", "@2", "private2",
637 "constDeclaration", "varDeclaration", "type", "special", "fcn", "@3",
638 "@4", "claim", "@5", "abstract", "@6", "@7", "@8", "@9", "@10", "@11",
639 "@12", "@13", "exposed", "@14", "@15", "importNameList", "importName",
640 "interfaceNameList", "interfaceName", "traitRefNodeList", "traitRef",
641 "traitIdList", "renaming", "nameList", "replaceNodeList", "replace",
642 "name", "initializer", "constLclExpr", "initDecls", "initDecl",
643 "globals", "globalDecl", "privateInits", "privateInit", "optLetDecl",
644 "beDeclList", "beDecl", "sortSpec", "optChecks", "optRequire",
645 "optModify", "storeRefList", "storeRef", "optEnsure", "optClaim",
646 "optParamList", "realParamList", "paramList", "optBody", "callExpr",
647 "stmt", "valueList", "value", "abstBody", "fcns", "optTypeInv",
648 "typeInv", "@16", "declaratorInvs", "declaratorInv", "@17",
649 "optExposedBody", "CType", "CTypes", "typeSpecifier",
650 "specialQualifier", "lclTypeSpec", "lclType", "pointers",
651 "structOrUnionSpec", "@18", "@19", "optTagId", "structDecls",
652 "structDecl", "declaratorList", "optCOMMA", "enumSpec",
653 "enumeratorList", "declarator", "notype_decl", "after_type_decl",
654 "parameter_decl", "param", "typeName", "optAbstDeclarator",
655 "abstDeclarator", "arrayQual", "opForm", "open", "close", "anyOp",
656 "middle", "placeList", "separator", "signature", "domain", "sortList",
657 "lclPredicate", "term", "term0", "equalityTerm", "simpleOpTerm",
658 "simpleOp2", "prefixOpTerm", "postfixOps", "infixOpPart", "secondary",
659 "bracketed", "sqBracketed", "matched", "args", "primary", "termList",
660 "stateFcn", "lclPrimary", "cLiteral", "quantifiers", "quantifier",
661 "@20", "quantifiedList", "quantified", "simpleIdOrTypedefName", "fcnId",
662 "varId", "tagId", "claimId", "sortId", "traitId", "opId", 0
666 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
667 static const short yyr1[] =
669 0, 138, 137, 139, 139, 140, 140, 141, 141, 141,
670 142, 142, 143, 143, 143, 144, 145, 146, 146, 146,
671 146, 146, 146, 147, 148, 148, 149, 149, 150, 150,
672 152, 151, 153, 153, 153, 153, 154, 155, 155, 155,
673 156, 156, 157, 157, 157, 159, 158, 160, 158, 162,
674 161, 161, 164, 165, 163, 166, 167, 163, 168, 169,
675 163, 170, 171, 163, 173, 174, 172, 172, 172, 175,
676 175, 176, 176, 176, 177, 177, 178, 179, 179, 180,
677 180, 180, 180, 181, 181, 182, 182, 182, 183, 183,
678 184, 184, 185, 185, 185, 186, 186, 187, 188, 189,
679 189, 190, 190, 191, 191, 192, 192, 192, 193, 193,
680 194, 195, 195, 196, 196, 197, 197, 198, 199, 199,
681 200, 200, 201, 201, 201, 201, 202, 202, 203, 203,
682 203, 203, 203, 204, 204, 205, 205, 206, 206, 207,
683 207, 207, 208, 208, 209, 209, 209, 210, 210, 210,
684 210, 210, 211, 211, 211, 211, 212, 212, 213, 213,
685 213, 213, 213, 213, 213, 213, 214, 214, 214, 214,
686 215, 215, 216, 216, 218, 217, 219, 219, 221, 220,
687 222, 222, 223, 223, 223, 223, 223, 223, 223, 223,
688 223, 223, 224, 224, 225, 225, 226, 226, 226, 226,
689 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
690 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
691 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
692 226, 226, 227, 227, 227, 227, 227, 228, 228, 229,
693 229, 231, 230, 232, 230, 230, 230, 233, 233, 234,
694 234, 235, 236, 236, 237, 237, 238, 238, 239, 239,
695 240, 240, 241, 241, 241, 241, 241, 241, 242, 242,
696 242, 242, 242, 242, 243, 243, 243, 243, 243, 244,
697 244, 244, 245, 245, 245, 246, 246, 247, 247, 247,
698 247, 247, 247, 247, 247, 248, 248, 249, 249, 249,
699 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
700 249, 249, 249, 249, 250, 250, 251, 251, 252, 252,
701 252, 253, 253, 254, 254, 255, 255, 256, 257, 257,
702 258, 258, 259, 260, 261, 261, 261, 262, 262, 262,
703 262, 263, 263, 263, 264, 264, 265, 265, 266, 266,
704 267, 267, 268, 268, 268, 268, 268, 268, 268, 269,
705 269, 270, 270, 270, 270, 271, 271, 272, 272, 273,
706 273, 273, 273, 273, 273, 273, 273, 273, 273, 274,
707 274, 275, 275, 275, 275, 276, 276, 276, 276, 276,
708 276, 276, 276, 277, 277, 277, 277, 278, 278, 280,
709 279, 281, 281, 282, 282, 283, 283, 284, 285, 286,
713 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
714 static const short yyr2[] =
716 0, 0, 3, 0, 2, 1, 1, 0, 2, 2,
717 0, 2, 1, 1, 1, 3, 3, 1, 1, 1,
718 1, 1, 1, 6, 0, 1, 1, 3, 2, 1,
719 0, 3, 1, 1, 1, 1, 4, 3, 4, 4,
720 1, 1, 1, 1, 1, 0, 13, 0, 14, 0,
721 13, 4, 0, 0, 6, 0, 0, 7, 0, 0,
722 7, 0, 0, 6, 0, 0, 6, 2, 2, 1,
723 3, 1, 3, 1, 1, 3, 1, 1, 3, 1,
724 4, 3, 6, 1, 3, 1, 1, 3, 1, 3,
725 1, 3, 3, 3, 4, 1, 1, 1, 1, 1,
726 3, 1, 3, 0, 2, 3, 2, 2, 0, 2,
727 4, 0, 3, 1, 3, 5, 3, 1, 0, 3,
728 0, 3, 0, 3, 3, 3, 1, 3, 1, 1,
729 2, 1, 1, 0, 3, 0, 3, 0, 1, 1,
730 1, 3, 1, 3, 0, 4, 5, 1, 3, 2,
731 3, 3, 4, 3, 5, 6, 1, 3, 1, 1,
732 2, 2, 3, 3, 3, 4, 1, 3, 4, 3,
733 0, 2, 0, 1, 0, 6, 1, 3, 0, 3,
734 0, 3, 1, 1, 1, 1, 1, 1, 1, 1,
735 1, 1, 1, 2, 1, 1, 1, 1, 1, 1,
736 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
737 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
738 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
739 1, 1, 1, 1, 1, 2, 5, 1, 2, 1,
740 2, 0, 6, 0, 6, 2, 2, 0, 1, 1,
741 2, 3, 1, 3, 0, 1, 6, 2, 1, 3,
742 1, 1, 1, 3, 2, 2, 3, 4, 1, 3,
743 2, 2, 3, 4, 1, 2, 2, 3, 4, 2,
744 2, 2, 2, 3, 1, 0, 1, 3, 2, 1,
745 1, 2, 3, 3, 4, 2, 3, 6, 1, 2,
746 2, 3, 3, 4, 4, 5, 3, 4, 4, 5,
747 2, 2, 3, 3, 1, 1, 1, 1, 1, 1,
748 1, 0, 1, 1, 3, 1, 1, 4, 0, 1,
749 1, 3, 1, 1, 6, 1, 3, 1, 4, 3,
750 3, 1, 2, 2, 1, 1, 1, 2, 1, 2,
751 2, 3, 1, 1, 2, 2, 3, 1, 2, 3,
752 1, 5, 3, 4, 2, 3, 2, 1, 3, 3,
753 1, 4, 1, 2, 3, 3, 3, 4, 3, 1,
754 3, 1, 1, 1, 1, 1, 1, 4, 4, 4,
755 4, 6, 4, 1, 1, 1, 1, 1, 2, 0,
756 3, 1, 3, 3, 4, 1, 1, 1, 1, 1,
760 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
761 doesn't specify something else to do. Zero means the default is an
763 static const short yydefact[] =
765 3, 1, 0, 0, 7, 4, 5, 6, 0, 406,
766 405, 73, 0, 69, 71, 76, 0, 0, 77, 412,
767 79, 0, 194, 0, 0, 61, 52, 196, 198, 199,
768 228, 200, 201, 202, 203, 210, 211, 212, 197, 205,
769 206, 209, 207, 208, 230, 231, 213, 214, 215, 216,
770 217, 224, 225, 226, 204, 227, 220, 221, 218, 219,
771 223, 229, 222, 30, 0, 183, 0, 184, 247, 185,
772 186, 0, 187, 188, 189, 191, 247, 247, 190, 182,
773 0, 42, 43, 44, 2, 10, 22, 10, 17, 18,
774 19, 0, 20, 21, 40, 41, 192, 195, 232, 0,
775 0, 233, 234, 0, 15, 0, 0, 83, 16, 0,
776 0, 220, 237, 0, 233, 234, 407, 410, 0, 0,
777 0, 0, 0, 0, 58, 0, 64, 0, 0, 409,
778 257, 408, 0, 241, 245, 243, 246, 0, 8, 9,
779 0, 193, 235, 0, 0, 268, 0, 99, 103, 261,
780 260, 262, 67, 68, 72, 70, 0, 81, 78, 344,
781 345, 321, 0, 319, 314, 0, 0, 315, 320, 0,
782 0, 0, 86, 85, 90, 285, 88, 284, 321, 298,
783 318, 239, 238, 0, 0, 137, 0, 101, 0, 0,
784 0, 0, 31, 32, 33, 34, 35, 0, 0, 0,
785 24, 0, 0, 0, 11, 14, 12, 13, 103, 264,
786 270, 0, 0, 37, 0, 0, 45, 0, 0, 265,
787 0, 271, 84, 0, 323, 0, 322, 310, 311, 321,
788 0, 0, 321, 299, 0, 285, 80, 0, 0, 289,
789 0, 282, 286, 290, 0, 0, 300, 240, 0, 51,
790 140, 0, 138, 139, 285, 142, 36, 62, 53, 0,
791 0, 65, 176, 178, 38, 258, 254, 0, 0, 25,
792 26, 29, 0, 0, 39, 47, 263, 269, 100, 0,
793 0, 399, 408, 395, 396, 393, 394, 0, 0, 0,
794 386, 0, 0, 102, 97, 0, 98, 333, 335, 337,
795 0, 341, 346, 353, 357, 360, 352, 372, 385, 0,
796 397, 413, 370, 0, 0, 0, 0, 104, 0, 266,
797 0, 295, 0, 272, 0, 0, 306, 326, 325, 0,
798 0, 312, 313, 0, 301, 0, 283, 87, 89, 91,
799 0, 288, 0, 0, 0, 291, 93, 92, 96, 95,
800 316, 317, 302, 236, 103, 0, 289, 0, 274, 280,
801 279, 281, 0, 0, 56, 59, 0, 0, 180, 255,
802 0, 28, 0, 0, 0, 0, 249, 0, 0, 0,
803 364, 367, 0, 0, 0, 0, 0, 0, 0, 366,
804 0, 0, 0, 0, 347, 346, 348, 342, 343, 354,
805 358, 0, 0, 0, 0, 381, 382, 383, 0, 384,
806 355, 373, 0, 398, 0, 106, 107, 108, 0, 267,
807 296, 273, 82, 307, 324, 308, 303, 0, 293, 287,
808 292, 0, 328, 94, 304, 49, 141, 143, 275, 289,
809 0, 276, 166, 170, 63, 54, 0, 0, 177, 66,
810 172, 179, 259, 256, 23, 27, 0, 252, 242, 250,
811 244, 108, 369, 0, 362, 0, 400, 401, 0, 379,
812 0, 0, 0, 194, 0, 0, 0, 131, 132, 0,
813 0, 126, 129, 128, 365, 336, 340, 339, 350, 349,
814 0, 411, 359, 376, 0, 374, 375, 378, 356, 0,
815 332, 0, 111, 105, 309, 305, 0, 294, 0, 329,
816 330, 0, 277, 0, 0, 0, 74, 0, 57, 60,
817 174, 0, 173, 251, 0, 111, 363, 0, 368, 0,
818 0, 0, 387, 0, 0, 392, 390, 388, 130, 0,
819 389, 351, 377, 338, 371, 0, 0, 109, 118, 297,
820 0, 0, 111, 278, 169, 0, 0, 167, 171, 0,
821 0, 181, 253, 118, 361, 402, 0, 403, 117, 380,
822 0, 0, 127, 0, 113, 0, 0, 0, 120, 327,
823 331, 120, 75, 168, 103, 0, 120, 404, 334, 391,
824 112, 0, 0, 0, 0, 0, 0, 122, 144, 0,
825 122, 114, 0, 116, 110, 119, 0, 0, 133, 0,
826 133, 0, 133, 0, 121, 0, 0, 0, 0, 135,
827 0, 0, 175, 135, 115, 124, 123, 125, 0, 0,
828 0, 0, 408, 0, 147, 0, 0, 50, 0, 134,
829 0, 46, 0, 149, 0, 0, 145, 0, 0, 48,
830 136, 0, 148, 146, 151, 150, 0, 0, 153, 0,
831 156, 158, 0, 159, 407, 0, 160, 0, 0, 152,
832 161, 0, 0, 163, 157, 162, 164, 0, 154, 0,
836 static const short yydefgoto[] =
838 682, 4, 1, 5, 84, 138, 204, 6, 205, 206,
839 86, 268, 269, 270, 207, 125, 192, 88, 89, 90,
840 91, 92, 316, 378, 93, 511, 94, 122, 363, 123,
841 446, 191, 447, 121, 362, 95, 197, 367, 12, 13,
842 515, 14, 17, 18, 106, 171, 172, 173, 174, 346,
843 293, 294, 146, 147, 216, 317, 502, 547, 548, 573,
844 574, 567, 578, 597, 608, 480, 481, 619, 630, 251,
845 342, 253, 610, 654, 634, 659, 660, 444, 517, 521,
846 522, 560, 261, 262, 368, 451, 96, 97, 98, 99,
847 254, 482, 182, 114, 201, 202, 128, 375, 376, 456,
848 370, 115, 266, 187, 149, 150, 360, 255, 176, 241,
849 242, 243, 177, 295, 352, 179, 225, 226, 465, 433,
850 508, 509, 499, 500, 297, 298, 299, 300, 301, 397,
851 398, 302, 303, 304, 305, 382, 306, 470, 411, 307,
852 308, 309, 310, 383, 466, 467, 311, 662, 312, 130,
856 static const short yypact[] =
858 -32768, -25, 136, 368, 1350,-32768,-32768,-32768, 181,-32768,
859 -32768,-32768, 94,-32768,-32768,-32768, 181, 110,-32768,-32768,
860 33, 2903,-32768, 182, 2903,-32768, 17,-32768,-32768,-32768,
861 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
862 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
863 -32768,-32768,-32768,-32768,-32768,-32768, -11,-32768,-32768,-32768,
864 -32768,-32768,-32768,-32768, 2903,-32768, 2903,-32768, 181,-32768,
865 -32768, 108,-32768,-32768,-32768,-32768, 181, 181,-32768,-32768,
866 2903,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
867 -32768, 2903,-32768,-32768,-32768,-32768,-32768, 399,-32768, 2903,
868 408, 155, 192, 205,-32768, 136, 204,-32768,-32768, 368,
869 1152,-32768, 233, 223,-32768,-32768, 266,-32768, 181, 305,
870 408, 211, 235, 264,-32768, 1445,-32768, 408, 339,-32768,
871 347,-32768, 377,-32768, 347,-32768, 347, 408, 1247, 1247,
872 408,-32768,-32768, 408, 408,-32768, 196,-32768, 259, 322,
873 409,-32768,-32768,-32768,-32768,-32768, 181, 387,-32768,-32768,
874 -32768, 386, 181,-32768,-32768, 181, 534,-32768,-32768, 403,
875 2903, 410, 445, 453,-32768, 360, 439,-32768, 386, 474,
876 -32768,-32768, 496, 2903, 497, 2319, 239, 470, 486, 492,
877 401, 404,-32768,-32768,-32768,-32768,-32768, 408, 282, 493,
878 2414, 488, 494, 288,-32768,-32768,-32768,-32768,-32768, 322,
879 409, 121, 141,-32768, 408, 3200, 1836, 1933, 3059,-32768,
880 2030,-32768,-32768, 1152,-32768, 499, 122,-32768,-32768, 386,
881 181, 181, 386, 502, 421, 360,-32768, 1152, 1152, 360,
882 1741,-32768, 454,-32768, 328, 80,-32768,-32768, 525,-32768,
883 -32768, 504,-32768, 507, 380,-32768,-32768,-32768,-32768, 522,
884 524, 515,-32768,-32768,-32768,-32768, 518, 2903, 514, 520,
885 -32768,-32768, 2903, 2903,-32768, 1836,-32768,-32768,-32768, 3200,
886 3109,-32768, 266,-32768,-32768,-32768,-32768, 544, 3200, 545,
887 -32768, 549, 551,-32768,-32768, 3033,-32768, 550,-32768, 114,
888 3226,-32768, 374, 382, 382, 535, 193,-32768,-32768, 273,
889 -32768,-32768,-32768, 555, 560, 562, 536,-32768, 408,-32768,
890 537,-32768, 539,-32768, 540, 541, 552,-32768,-32768, 553,
891 547,-32768,-32768, 80,-32768, 554,-32768, 453, 439,-32768,
892 439, 454, 548, 177, 2127,-32768, 556,-32768,-32768,-32768,
893 -32768,-32768, 557,-32768,-32768, 2509, 380, 1644,-32768, 322,
894 469,-32768, 47, 47,-32768,-32768, 408, 564, 538, 561,
895 559,-32768, 569, 2414, 408, 2611,-32768, 2713, 558, 36,
896 565,-32768, 293, 108, 3200, 10, 3200, 1022, 762,-32768,
897 220, 3200, 3226, 3226,-32768,-32768, 268, 374, 374, 275,
898 275, 181, 3150, 181, 181,-32768,-32768,-32768, 181,-32768,
899 382,-32768, 3200,-32768, 3200,-32768,-32768,-32768, 314,-32768,
900 -32768,-32768,-32768,-32768,-32768, 563, 568, 566,-32768,-32768,
901 -32768, 573, 181,-32768,-32768, 1836,-32768,-32768, 469, 354,
902 2224,-32768,-32768, 165,-32768,-32768, 47, 47,-32768,-32768,
903 530,-32768,-32768,-32768,-32768,-32768, 317,-32768,-32768,-32768,
904 -32768,-32768,-32768, 181, 567, 3200, 570,-32768, 572, 550,
905 362, 3200, 579, 581, 575, 577, 578,-32768,-32768, 2903,
906 384,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
907 268,-32768,-32768,-32768, 157,-32768,-32768,-32768, 275, 583,
908 -32768, 397, -8,-32768,-32768,-32768, 574,-32768, 590, 591,
909 -32768, 571,-32768, 587, 592, 363,-32768, 1547,-32768,-32768,
910 -32768, 594,-32768,-32768, 408, -8,-32768, 181,-32768, 108,
911 2808, 3200,-32768, 28, 3200,-32768,-32768,-32768,-32768, 892,
912 -32768,-32768,-32768,-32768,-32768, 108, 2903,-32768, 582,-32768,
913 181, 181, 576,-32768,-32768, 181, 593,-32768,-32768, 408,
914 605,-32768,-32768, 582,-32768,-32768, 2903,-32768,-32768, 550,
915 3200, 600,-32768, 331,-32768, 103, 408, 3200, 521,-32768,
916 -32768, 521,-32768,-32768,-32768, 629, 521,-32768, 550,-32768,
917 -32768, 108, 2903, 3200, 336, 634, 3200, 584, 597, 3200,
918 584,-32768, 601,-32768,-32768,-32768, 639, 632, 596, 615,
919 596, 613, 596, 3200,-32768, 644, 648, 337, 3200, 608,
920 49, 623,-32768, 608,-32768,-32768,-32768,-32768, 652, 3200,
921 625, 49, 651, 50,-32768, 653, 631,-32768, 627,-32768,
922 658,-32768, 63,-32768, 272, 49,-32768, 208, 642,-32768,
923 -32768, 49,-32768,-32768, 660,-32768, 222, 222,-32768, 419,
924 666,-32768, 661,-32768,-32768, 668,-32768, 41, 222,-32768,
925 316, 432, 468,-32768, 666,-32768,-32768, 426,-32768, 430,
926 -32768,-32768, 670, 676,-32768
929 static const short yypgoto[] =
931 -32768,-32768,-32768,-32768,-32768, 595,-32768,-32768, 678, 677,
932 -32768,-32768,-32768, 307, 679,-32768,-32768, 610, 612, 616,
933 -32768, -121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
934 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 580,
935 -32768, -6,-32768, 585,-32768, 461,-32768, 451, 452,-32768,
936 -32768, 471, -108, 478, -188,-32768, 232,-32768, -458,-32768,
937 127, -473, 175, -169, 142, 137, 206, -206, 120,-32768,
938 -180,-32768,-32768, -507,-32768, -190, -230, -318,-32768,-32768,
939 -32768,-32768,-32768, 381,-32768,-32768, -89,-32768,-32768,-32768,
940 -3, -18,-32768, 32,-32768,-32768, 407, 476, 68,-32768,
941 -32768, 56,-32768, -93, -127, 344, 398, -187, 257, -182,
942 -213, -101, 511, 30, -267, 603, -137,-32768, 586,-32768,
943 -32768,-32768, -531, -204, -254,-32768, 105, -46, 466,-32768,
944 -32768, -278, 455,-32768,-32768, 472, -265, -205,-32768,-32768,
945 -372,-32768, -303,-32768,-32768, 242, 7, -23, -38, 423,
953 static const short yytable[] =
955 118, 100, 103, 113, 196, 252, 413, 148, 141, 15,
956 19, 296, 186, 271, 296, 15, 209, 211, 112, 198,
957 275, 120, 395, 19, 391, 379, 341, 343, 389, 203,
958 117, 497, 2, 132, 385, 107, 101, 320, 399, 400,
959 324, 245, 391, 110, 670, 445, 595, 208, 219, 221,
960 391, 124, 545, 336, 442, 510, 643, 644, 645, 631,
961 102, 126, 151, 127, 180, 606, 426, 563, 611, 643,
962 651, 645, 361, 462, 632, 129, 381, 137, 673, 570,
963 371, 443, 151, 129, 129, 646, 526, 628, 140, 151,
964 3, 381, 330, 587, 581, 333, 142, 546, 640, 151,
965 652, 104, 151, 350, 263, 151, 151, 175, 219, 221,
966 219, 221, 15, 633, -55, 351, 19, 108, 488, 602,
967 180, 471, 100, 484, 642, 117, 105, 359, 518, 519,
968 469, 217, 218, 131, 592, 100, 100, 485, 655, 8,
969 178, 345, 109, 341, 343, 498, 327, 392, 469, 593,
970 564, 220, 218, 393, 328, 347, 9, 101, 276, 151,
971 469, 10, 152, 19, 431, 248, 435, 235, 437, 227,
972 101, 101, 228, 579, 580, 222, 151, 180, 277, 11,
973 112, 102, 472, 475, 483, 9, 271, 344, 218, 531,
974 10, 180, 180, 542, 102, 102, 232, 494, 180, 153,
975 514, 9, 9, 213, 402, 403, 10, 116, 154, 501,
976 418, 656, 541, 318, 429, 164, 151, 533, 657, 404,
977 175, 405, 406, 407, 408, 656, 341, 167, 214, 209,
978 211, 409, 657, 632, 175, 175, 156, 331, 332, 181,
979 345, 157, 345, 350, 327, 658, 256, 632, 283, 284,
980 285, 286, 328, 178, 183, 351, 396, 585, 219, 441,
981 513, 528, 283, 284, 285, 286, -101, 178, 178, 374,
982 374, 214, 318, 263, 178, 661, -405, 569, 279, 280,
983 151, 457, 631, 412, 661, 661, 402, 403, 9, 264,
984 164, -101, 215, 282, 281, 274, 661, 632, 661, 661,
985 661, 404, 167, 405, 406, 407, 408, 653, 283, 284,
986 285, 286, 209, 409, 214, 185, 588, 327, 151, 151,
987 214, 503, 287, 188, 523, 328, 657, 289, 151, 464,
988 571, 159, 217, 218, 160, 483, 151, 441, 590, 161,
989 162, 632, 163, 604, 627, 468, 214, 189, 9, 524,
990 164, 489, 490, 10, 165, 166, 283, 284, 285, 286,
991 439, 190, 167, 591, 357, 218, 239, 168, 214, 539,
992 240, 218, 374, 199, 374, 290, 291, 159, 16, 131,
993 160, -248, 292, 169, 474, 112, 356, 200, 9, 603,
994 357, 218, 279, 10, 531, 555, 558, 223, 556, 532,
995 358, 151, 9, 483, 621, 131, 623, 282, 491, 624,
996 495, 496, 598, 224, 143, 491, 539, 600, 144, 220,
997 218, 540, 283, 284, 285, 286, 666, 667, 145, 531,
998 234, 562, 318, 131, 544, 656, 287, 516, 674, 491,
999 675, 289, 657, 459, 65, 459, 67, 236, 69, 70,
1000 15, 668, 72, 73, 74, 75, 669, 632, 668, 78,
1001 79, 538, 668, 680, 344, 218, 584, 681, 594, 676,
1002 491, 656, 283, 284, 285, 286, 112, 237, 657, 440,
1003 218, 677, 679, 133, 135, 238, 151, 210, 212, 290,
1004 291, 468, 244, 632, 338, 340, 292, 486, 487, 134,
1005 136, 246, 247, 215, 249, 678, 257, 575, 283, 284,
1006 285, 286, 258, 259, 559, 65, 260, 67, 265, 69,
1007 70, 151, 272, 72, 73, 74, 75, 568, 273, 334,
1008 78, 79, 335, 353, 491, 326, 112, 159, 151, 355,
1009 160, 354, 364, 576, 365, 229, 230, 366, 163, 582,
1010 369, 372, 373, 575, 384, 386, 164, 491, 491, 387,
1011 231, 388, 15, 568, 391, 414, 401, 415, 167, 416,
1012 417, 449, 450, 168, 419, 420, 454, 421, 422, 423,
1013 424, 427, 636, 425, 434, 428, 452, 432, 520, 568,
1014 504, -406, 461, 636, 453, 505, 463, 635, 527, 554,
1015 583, 549, 529, 530, 112, 552, 636, 636, 635, 663,
1016 507, 534, 535, 636, 536, 537, 550, 506, 663, 663,
1017 543, 635, 635, 551, 553, 665, 281, 596, 635, 561,
1018 663, 577, 663, 663, 663, 159, 545, 589, 160, 599,
1019 21, 605, 279, 280, 609, 607, 614, 613, 618, 620,
1020 622, 625, 473, 281, 164, 626, 629, 282, 637, 639,
1021 641, -407, 649, 647, 648, 650, 167, 664, 645, 670,
1022 683, 671, 283, 284, 285, 286, 684, 615, 672, 7,
1023 455, 85, 139, 87, 325, 155, 287, 288, 337, 322,
1024 339, 289, 278, 525, 158, 616, 477, 478, 479, 27,
1025 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1026 38, 39, 40, 41, 42, 43, 44, 45, 601, 46,
1027 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1028 57, 58, 59, 60, 61, 193, 62, 194, 586, 290,
1029 291, 195, 612, 638, 617, 572, 292, 448, 65, 377,
1030 67, 68, 69, 70, 438, 348, 72, 73, 74, 75,
1031 76, 410, 77, 78, 79, 159, 394, 390, 160, 233,
1032 21, 565, 279, 280, 184, 349, 0, 0, 0, 0,
1033 0, 0, 473, 281, 164, 0, 0, 282, 0, 0,
1034 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1035 0, 0, 283, 284, 285, 286, 476, 0, 0, 0,
1036 0, 0, 329, 0, 0, 0, 287, 288, 0, 0,
1037 0, 289, 0, 0, 0, 0, 477, 478, 479, 27,
1038 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1039 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1040 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1041 57, 58, 59, 60, 61, 0, 62, 0, 0, 290,
1042 291, 0, 0, 0, 0, 0, 292, 0, 65, 0,
1043 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1044 76, 0, 77, 78, 79, 159, 0, 0, 160, 0,
1045 21, 0, 279, 280, 0, 0, 0, 0, 0, 0,
1046 0, 0, 473, 281, 164, 0, 0, 282, 0, 0,
1047 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1048 0, 0, 283, 284, 285, 286, 0, 0, 0, 0,
1049 0, 0, 0, 0, 0, 0, 287, 288, 0, 0,
1050 0, 289, 0, 0, 0, 0, 477, 478, 479, 27,
1051 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1052 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1053 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1054 57, 58, 59, 60, 61, 0, 62, 0, 0, 290,
1055 291, 0, 0, 0, 0, 0, 292, 0, 65, 0,
1056 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1057 76, 0, 77, 78, 79, 159, 0, 0, 160, 0,
1058 21, 0, 279, 280, 0, 0, 0, 0, 0, 0,
1059 0, 0, 473, 281, 164, 0, 0, 282, 0, 0,
1060 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1061 0, 0, 283, 284, 285, 286, 0, 0, 0, 0,
1062 0, 0, 0, 0, 0, 0, 287, 288, 0, 0,
1063 0, 289, 0, 0, 0, 0, 0, 0, 0, 27,
1064 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1065 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1066 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1067 57, 58, 59, 60, 61, 0, 62, 0, 0, 290,
1068 291, 0, 0, 0, 0, 0, 292, 0, 65, 0,
1069 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1070 76, 0, 77, 78, 79, 159, 0, 0, 160, 0,
1071 21, 0, 0, 161, 162, 0, 163, 0, 0, 0,
1072 0, 0, 22, 0, 164, 0, 0, 0, 165, 166,
1073 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1074 0, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1075 0, 0, 0, 0, 0, 0, 0, 169, 0, 0,
1076 0, 0, 0, 0, 0, 0, 0, 0, 170, 27,
1077 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1078 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1079 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1080 57, 58, 59, 60, 61, 21, 62, 0, 0, 0,
1081 0, 0, 0, 0, 0, 0, 0, 22, 65, 0,
1082 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1083 76, 0, 77, 78, 79, 0, 0, 0, 0, 0,
1084 0, 0, 0, 0, 0, 23, 0, 24, 0, 0,
1085 0, 0, 0, 25, 0, 0, 0, 0, 0, 26,
1086 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1087 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1088 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1089 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1090 0, 62, 0, 0, 0, 0, 63, 0, 21, 0,
1091 64, 0, 3, 65, 66, 67, 68, 69, 70, 71,
1092 22, 72, 73, 74, 75, 76, 0, 77, 78, 79,
1093 80, 81, 82, 83, 0, 0, 0, 0, 0, 0,
1094 0, 0, 0, 0, 0, 0, 0, 0, 23, 0,
1095 24, 0, 0, 0, 0, 0, 25, 0, 0, 0,
1096 0, 0, 26, 0, 0, 0, 0, 27, 28, 29,
1097 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1098 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1099 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1100 59, 60, 61, 21, 62, 0, 0, 0, 0, 63,
1101 0, 0, 0, 64, 0, 22, 65, 66, 67, 68,
1102 69, 70, 71, 0, 72, 73, 74, 75, 76, 0,
1103 77, 78, 79, 80, 81, 82, 83, 0, 0, 0,
1104 0, 0, 0, 0, 0, 24, 0, 0, 0, 0,
1105 0, 25, 0, 0, 0, 0, 0, 26, 0, 0,
1106 0, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1107 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1108 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1109 54, 55, 56, 57, 58, 59, 60, 61, 0, 62,
1110 0, 0, 0, 0, 0, 21, 0, 0, 64, 0,
1111 0, 65, 66, 67, 68, 69, 70, 22, 0, 72,
1112 73, 74, 75, 76, 0, 77, 78, 79, 80, 81,
1113 82, 83, 557, 0, 0, 0, 0, 0, 0, 0,
1114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1116 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1117 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1118 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1119 52, 53, 54, 55, 111, 57, 58, 59, 60, 61,
1120 439, 62, 21, 0, 357, 218, 0, 0, 0, 0,
1121 0, 0, 0, 65, 22, 67, 68, 69, 70, 131,
1122 0, 72, 73, 74, 75, 76, 0, 77, 78, 79,
1123 0, 81, 82, 83, 0, 0, 0, 0, 0, 0,
1124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1126 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1127 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1128 0, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1129 55, 111, 57, 58, 59, 60, 61, 239, 62, 21,
1130 0, 240, 218, 0, 0, 0, 0, 0, 0, 0,
1131 65, 22, 67, 68, 69, 70, 0, 0, 72, 73,
1132 74, 75, 76, 250, 77, 78, 79, 0, 0, 0,
1133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1135 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1136 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1137 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1138 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1139 58, 59, 60, 61, 21, 62, 0, 0, 0, 0,
1140 0, 0, 0, 0, 0, 0, 22, 65, 0, 67,
1141 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1142 250, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1145 314, 315, 0, 27, 28, 29, 30, 31, 32, 33,
1146 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1147 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1148 53, 54, 55, 111, 57, 58, 59, 60, 61, 0,
1149 62, 21, 0, 0, 0, 0, 0, 0, 0, 0,
1150 0, 0, 65, 22, 67, 68, 69, 70, 0, 0,
1151 72, 73, 74, 75, 76, 0, 77, 78, 79, 0,
1152 319, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1155 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1156 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1157 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1158 111, 57, 58, 59, 60, 61, 0, 62, 21, 0,
1159 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
1160 22, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1161 75, 76, 250, 77, 78, 79, 0, 323, 0, 0,
1162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1164 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1165 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1166 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1167 49, 50, 51, 52, 53, 54, 55, 111, 57, 58,
1168 59, 60, 61, 0, 62, 21, 0, 0, 0, 0,
1169 0, 0, 0, 0, 0, 0, 65, 22, 67, 68,
1170 69, 70, 0, 0, 72, 73, 74, 75, 76, 250,
1171 77, 78, 79, 0, 430, 0, 0, 0, 0, 0,
1172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1174 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1175 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1176 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1177 52, 53, 54, 55, 111, 57, 58, 59, 60, 61,
1178 0, 62, 21, 0, 0, 0, 0, 0, 0, 0,
1179 0, 0, 0, 65, 22, 67, 68, 69, 70, 0,
1180 0, 72, 73, 74, 75, 76, 250, 77, 78, 79,
1181 0, 512, 0, 0, 0, 0, 0, 0, 0, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1184 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1185 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1186 0, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1187 55, 111, 57, 58, 59, 60, 61, 21, 62, 0,
1188 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
1189 65, 0, 67, 68, 69, 70, 0, 0, 72, 73,
1190 74, 75, 76, 250, 77, 78, 79, 0, 0, 0,
1191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1193 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1194 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1195 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1196 50, 51, 52, 53, 54, 55, 111, 57, 58, 59,
1197 60, 61, 21, 62, 0, 0, 0, 0, 0, 0,
1198 0, 0, 0, 0, 22, 65, 0, 67, 68, 69,
1199 70, 0, 0, 72, 73, 74, 75, 76, 250, 77,
1200 78, 79, 0, 0, 0, 0, 0, 0, 0, 0,
1201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1203 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1204 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1205 0, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1206 55, 111, 57, 58, 59, 60, 61, 21, 62, 0,
1207 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
1208 65, 0, 67, 68, 69, 70, 0, 267, 72, 73,
1209 74, 75, 76, 0, 77, 78, 79, 0, 0, 0,
1210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1212 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1213 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1214 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1215 50, 51, 52, 53, 54, 55, 111, 57, 58, 59,
1216 60, 61, 0, 62, 0, 0, 0, 0, 0, 21,
1217 0, 0, 0, 0, 0, 65, 0, 67, 68, 69,
1218 70, 22, 0, 72, 73, 74, 75, 76, 436, 77,
1219 78, 79, 0, 0, 0, 0, 458, 0, 0, 0,
1220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1222 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1223 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1224 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1225 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1226 58, 59, 60, 61, 0, 62, 0, 0, 0, 0,
1227 0, 21, 0, 0, 0, 0, 0, 65, 0, 67,
1228 68, 69, 70, 22, 0, 72, 73, 74, 75, 76,
1229 0, 77, 78, 79, 0, 0, 0, 0, 460, 0,
1230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1233 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1234 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1235 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1236 111, 57, 58, 59, 60, 61, 21, 62, 0, 0,
1237 0, 0, 0, 0, 0, 0, 0, 0, 22, 65,
1238 0, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1239 75, 76, 0, 77, 78, 79, 0, 0, 0, 0,
1240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1242 0, 0, 0, 0, 566, 27, 28, 29, 30, 31,
1243 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1244 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1245 51, 52, 53, 54, 55, 111, 57, 58, 59, 60,
1246 61, 21, 62, 0, 0, 0, 0, 0, 0, 0,
1247 0, 0, 0, 22, 65, 0, 67, 68, 69, 70,
1248 0, 0, 72, 73, 74, 75, 76, 0, 77, 78,
1249 79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1252 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1253 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1254 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1255 111, 57, 58, 59, 60, 61, 0, 62, 0, 0,
1256 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
1257 0, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1258 75, 76, 0, 77, 78, 79, 159, 0, 0, 160,
1259 0, 0, 0, 279, 280, 0, 0, 0, 0, 0,
1260 0, 0, 0, 9, 281, 164, 350, 0, 282, 0,
1261 0, 0, 159, 0, 0, 160, 0, 167, 351, 279,
1262 280, 0, 0, 283, 284, 285, 286, 0, 0, 9,
1263 281, 164, 0, 0, 282, 0, 0, 287, 288, 0,
1264 0, 0, 289, 167, 0, 321, 0, 0, 0, 283,
1265 284, 285, 286, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 159, 287, 288, 160, 0, 0, 289, 279,
1267 280, 0, 0, 0, 0, 0, 0, 0, 0, 9,
1268 281, 164, 0, 0, 282, 0, 0, 0, 0, 0,
1269 290, 291, 0, 167, 0, 380, 0, 292, 0, 283,
1270 284, 285, 286, 159, 0, 0, 160, 0, 0, 0,
1271 279, 280, 0, 287, 288, 0, 290, 291, 289, 0,
1272 9, 281, 164, 292, 0, 282, 0, 0, 0, 0,
1273 0, 0, 0, 0, 167, 0, 493, 0, 0, 0,
1274 283, 284, 285, 286, 0, 0, 0, 0, 0, 0,
1275 0, 0, 0, 159, 287, 288, 160, 0, 0, 289,
1276 279, 280, 0, 0, 0, 0, 290, 291, 0, 0,
1277 9, 281, 164, 292, 0, 282, 0, 0, 0, 159,
1278 0, 0, 160, 0, 167, 0, 279, 280, 0, 0,
1279 283, 284, 285, 286, 0, 0, 9, 0, 164, 0,
1280 0, 282, 0, 0, 287, 288, 0, 290, 291, 289,
1281 167, 0, 0, 0, 292, 0, 283, 284, 285, 286,
1282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1283 287, 0, 0, 0, 0, 289, 0, 0, 0, 0,
1284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1285 0, 0, 0, 0, 0, 0, 0, 290, 291, 0,
1286 0, 0, 0, 0, 292, 0, 0, 0, 0, 0,
1287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1288 0, 0, 0, 290, 291, 0, 0, 0, 0, 0,
1292 static const short yycheck[] =
1294 23, 4, 8, 21, 125, 185, 309, 100, 97, 2,
1295 3, 215, 120, 200, 218, 8, 143, 144, 21, 127,
1296 208, 24, 300, 16, 14, 279, 239, 240, 295, 137,
1297 23, 408, 57, 71, 288, 16, 4, 217, 303, 304,
1298 220, 178, 14, 10, 3, 363, 577, 140, 149, 150,
1299 14, 62, 60, 235, 7, 432, 6, 7, 8, 10,
1300 4, 64, 100, 66, 110, 596, 333, 525, 599, 6,
1301 7, 8, 254, 37, 25, 68, 280, 80, 37, 51,
1302 267, 34, 120, 76, 77, 35, 463, 618, 91, 127,
1303 115, 295, 229, 566, 552, 232, 99, 105, 629, 137,
1304 37, 7, 140, 23, 197, 143, 144, 110, 209, 210,
1305 211, 212, 105, 620, 97, 35, 109, 7, 396, 592,
1306 166, 111, 125, 390, 631, 118, 32, 254, 446, 447,
1307 384, 10, 11, 25, 31, 138, 139, 391, 645, 3,
1308 110, 242, 32, 356, 357, 410, 24, 33, 402, 46,
1309 527, 10, 11, 39, 32, 244, 20, 125, 37, 197,
1310 414, 25, 7, 156, 344, 183, 354, 170, 355, 162,
1311 138, 139, 165, 550, 551, 156, 214, 223, 37, 43,
1312 183, 125, 386, 387, 388, 20, 373, 10, 11, 32,
1313 25, 237, 238, 36, 138, 139, 166, 402, 244, 7,
1314 35, 20, 20, 7, 11, 12, 25, 25, 3, 414,
1315 318, 3, 490, 216, 37, 22, 254, 471, 10, 26,
1316 223, 28, 29, 30, 31, 3, 439, 34, 32, 356,
1317 357, 38, 10, 25, 237, 238, 32, 230, 231, 6,
1318 341, 37, 343, 23, 24, 37, 7, 25, 40, 41,
1319 42, 43, 32, 223, 31, 35, 302, 560, 359, 360,
1320 440, 465, 40, 41, 42, 43, 7, 237, 238, 272,
1321 273, 32, 275, 366, 244, 647, 10, 531, 10, 11,
1322 318, 374, 10, 10, 656, 657, 11, 12, 20, 7,
1323 22, 32, 33, 25, 21, 7, 668, 25, 670, 671,
1324 672, 26, 34, 28, 29, 30, 31, 35, 40, 41,
1325 42, 43, 439, 38, 32, 10, 570, 24, 356, 357,
1326 32, 7, 54, 112, 7, 32, 10, 59, 366, 36,
1327 534, 3, 10, 11, 6, 539, 374, 438, 7, 11,
1328 12, 25, 14, 7, 7, 383, 32, 112, 20, 32,
1329 22, 397, 398, 25, 26, 27, 40, 41, 42, 43,
1330 6, 97, 34, 32, 10, 11, 6, 39, 32, 32,
1331 10, 11, 375, 34, 377, 107, 108, 3, 10, 25,
1332 6, 34, 114, 55, 387, 388, 6, 10, 20, 593,
1333 10, 11, 10, 25, 32, 32, 517, 10, 35, 37,
1334 20, 439, 20, 607, 610, 25, 612, 25, 401, 613,
1335 403, 404, 581, 27, 6, 408, 32, 586, 10, 10,
1336 11, 37, 40, 41, 42, 43, 656, 657, 20, 32,
1337 27, 524, 435, 25, 37, 3, 54, 443, 668, 432,
1338 670, 59, 10, 375, 116, 377, 118, 37, 120, 121,
1339 443, 32, 124, 125, 126, 127, 37, 25, 32, 131,
1340 132, 479, 32, 37, 10, 11, 559, 37, 576, 37,
1341 463, 3, 40, 41, 42, 43, 479, 32, 10, 10,
1342 11, 671, 672, 76, 77, 32, 524, 143, 144, 107,
1343 108, 529, 53, 25, 237, 238, 114, 392, 393, 76,
1344 77, 27, 6, 33, 7, 37, 20, 545, 40, 41,
1345 42, 43, 20, 112, 517, 116, 112, 118, 25, 120,
1346 121, 559, 34, 124, 125, 126, 127, 530, 34, 27,
1347 131, 132, 111, 8, 527, 36, 539, 3, 576, 32,
1348 6, 37, 20, 546, 20, 11, 12, 32, 14, 555,
1349 32, 37, 32, 591, 10, 10, 22, 550, 551, 10,
1350 26, 10, 555, 566, 14, 10, 31, 7, 34, 7,
1351 34, 7, 34, 39, 37, 36, 7, 37, 37, 27,
1352 27, 27, 620, 36, 27, 37, 25, 31, 58, 592,
1353 27, 10, 34, 631, 35, 27, 31, 620, 31, 7,
1354 7, 27, 32, 31, 607, 34, 644, 645, 631, 647,
1355 37, 32, 37, 651, 37, 37, 26, 51, 656, 657,
1356 37, 644, 645, 32, 37, 648, 21, 106, 651, 35,
1357 668, 49, 670, 671, 672, 3, 60, 37, 6, 10,
1358 8, 7, 10, 11, 47, 61, 7, 46, 52, 34,
1359 37, 7, 20, 21, 22, 7, 48, 25, 35, 7,
1360 35, 10, 35, 10, 33, 7, 34, 25, 8, 3,
1361 0, 10, 40, 41, 42, 43, 0, 45, 10, 1,
1362 373, 4, 87, 4, 223, 105, 54, 55, 237, 218,
1363 238, 59, 214, 461, 109, 63, 64, 65, 66, 67,
1364 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1365 78, 79, 80, 81, 82, 83, 84, 85, 591, 87,
1366 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1367 98, 99, 100, 101, 102, 125, 104, 125, 563, 107,
1368 108, 125, 600, 623, 607, 539, 114, 366, 116, 273,
1369 118, 119, 120, 121, 356, 244, 124, 125, 126, 127,
1370 128, 306, 130, 131, 132, 3, 300, 295, 6, 166,
1371 8, 529, 10, 11, 118, 244, -1, -1, -1, -1,
1372 -1, -1, 20, 21, 22, -1, -1, 25, -1, -1,
1373 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1374 -1, -1, 40, 41, 42, 43, 44, -1, -1, -1,
1375 -1, -1, 226, -1, -1, -1, 54, 55, -1, -1,
1376 -1, 59, -1, -1, -1, -1, 64, 65, 66, 67,
1377 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1378 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1379 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1380 98, 99, 100, 101, 102, -1, 104, -1, -1, 107,
1381 108, -1, -1, -1, -1, -1, 114, -1, 116, -1,
1382 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1383 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1384 8, -1, 10, 11, -1, -1, -1, -1, -1, -1,
1385 -1, -1, 20, 21, 22, -1, -1, 25, -1, -1,
1386 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1387 -1, -1, 40, 41, 42, 43, -1, -1, -1, -1,
1388 -1, -1, -1, -1, -1, -1, 54, 55, -1, -1,
1389 -1, 59, -1, -1, -1, -1, 64, 65, 66, 67,
1390 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1391 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1392 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1393 98, 99, 100, 101, 102, -1, 104, -1, -1, 107,
1394 108, -1, -1, -1, -1, -1, 114, -1, 116, -1,
1395 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1396 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1397 8, -1, 10, 11, -1, -1, -1, -1, -1, -1,
1398 -1, -1, 20, 21, 22, -1, -1, 25, -1, -1,
1399 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1400 -1, -1, 40, 41, 42, 43, -1, -1, -1, -1,
1401 -1, -1, -1, -1, -1, -1, 54, 55, -1, -1,
1402 -1, 59, -1, -1, -1, -1, -1, -1, -1, 67,
1403 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1404 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1405 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1406 98, 99, 100, 101, 102, -1, 104, -1, -1, 107,
1407 108, -1, -1, -1, -1, -1, 114, -1, 116, -1,
1408 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1409 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1410 8, -1, -1, 11, 12, -1, 14, -1, -1, -1,
1411 -1, -1, 20, -1, 22, -1, -1, -1, 26, 27,
1412 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1413 -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
1414 -1, -1, -1, -1, -1, -1, -1, 55, -1, -1,
1415 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
1416 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1417 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1418 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1419 98, 99, 100, 101, 102, 8, 104, -1, -1, -1,
1420 -1, -1, -1, -1, -1, -1, -1, 20, 116, -1,
1421 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1422 128, -1, 130, 131, 132, -1, -1, -1, -1, -1,
1423 -1, -1, -1, -1, -1, 48, -1, 50, -1, -1,
1424 -1, -1, -1, 56, -1, -1, -1, -1, -1, 62,
1425 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1426 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1427 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1428 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1429 -1, 104, -1, -1, -1, -1, 109, -1, 8, -1,
1430 113, -1, 115, 116, 117, 118, 119, 120, 121, 122,
1431 20, 124, 125, 126, 127, 128, -1, 130, 131, 132,
1432 133, 134, 135, 136, -1, -1, -1, -1, -1, -1,
1433 -1, -1, -1, -1, -1, -1, -1, -1, 48, -1,
1434 50, -1, -1, -1, -1, -1, 56, -1, -1, -1,
1435 -1, -1, 62, -1, -1, -1, -1, 67, 68, 69,
1436 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1437 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1438 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1439 100, 101, 102, 8, 104, -1, -1, -1, -1, 109,
1440 -1, -1, -1, 113, -1, 20, 116, 117, 118, 119,
1441 120, 121, 122, -1, 124, 125, 126, 127, 128, -1,
1442 130, 131, 132, 133, 134, 135, 136, -1, -1, -1,
1443 -1, -1, -1, -1, -1, 50, -1, -1, -1, -1,
1444 -1, 56, -1, -1, -1, -1, -1, 62, -1, -1,
1445 -1, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1446 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1447 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1448 95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
1449 -1, -1, -1, -1, -1, 8, -1, -1, 113, -1,
1450 -1, 116, 117, 118, 119, 120, 121, 20, -1, 124,
1451 125, 126, 127, 128, -1, 130, 131, 132, 133, 134,
1452 135, 136, 35, -1, -1, -1, -1, -1, -1, -1,
1453 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1454 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1455 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1456 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1457 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1458 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1459 6, 104, 8, -1, 10, 11, -1, -1, -1, -1,
1460 -1, -1, -1, 116, 20, 118, 119, 120, 121, 25,
1461 -1, 124, 125, 126, 127, 128, -1, 130, 131, 132,
1462 -1, 134, 135, 136, -1, -1, -1, -1, -1, -1,
1463 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1464 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1465 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1466 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1467 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1468 96, 97, 98, 99, 100, 101, 102, 6, 104, 8,
1469 -1, 10, 11, -1, -1, -1, -1, -1, -1, -1,
1470 116, 20, 118, 119, 120, 121, -1, -1, 124, 125,
1471 126, 127, 128, 129, 130, 131, 132, -1, -1, -1,
1472 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1473 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1474 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1475 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1476 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1477 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1478 99, 100, 101, 102, 8, 104, -1, -1, -1, -1,
1479 -1, -1, -1, -1, -1, -1, 20, 116, -1, 118,
1480 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1481 129, 130, 131, 132, -1, -1, -1, -1, -1, -1,
1482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1483 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1484 64, 65, -1, 67, 68, 69, 70, 71, 72, 73,
1485 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1486 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1487 94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
1488 104, 8, -1, -1, -1, -1, -1, -1, -1, -1,
1489 -1, -1, 116, 20, 118, 119, 120, 121, -1, -1,
1490 124, 125, 126, 127, 128, -1, 130, 131, 132, -1,
1491 37, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1492 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1493 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1494 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1495 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1496 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1497 97, 98, 99, 100, 101, 102, -1, 104, 8, -1,
1498 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
1499 20, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1500 127, 128, 129, 130, 131, 132, -1, 37, -1, -1,
1501 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1502 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1503 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1504 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1505 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1506 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1507 100, 101, 102, -1, 104, 8, -1, -1, -1, -1,
1508 -1, -1, -1, -1, -1, -1, 116, 20, 118, 119,
1509 120, 121, -1, -1, 124, 125, 126, 127, 128, 129,
1510 130, 131, 132, -1, 37, -1, -1, -1, -1, -1,
1511 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1512 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1513 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1514 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1515 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1516 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1517 -1, 104, 8, -1, -1, -1, -1, -1, -1, -1,
1518 -1, -1, -1, 116, 20, 118, 119, 120, 121, -1,
1519 -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1520 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1,
1521 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1522 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1523 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1524 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1525 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1526 96, 97, 98, 99, 100, 101, 102, 8, 104, -1,
1527 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1528 116, -1, 118, 119, 120, 121, -1, -1, 124, 125,
1529 126, 127, 128, 129, 130, 131, 132, -1, -1, -1,
1530 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1531 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1532 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1533 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1534 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1535 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1536 101, 102, 8, 104, -1, -1, -1, -1, -1, -1,
1537 -1, -1, -1, -1, 20, 116, -1, 118, 119, 120,
1538 121, -1, -1, 124, 125, 126, 127, 128, 129, 130,
1539 131, 132, -1, -1, -1, -1, -1, -1, -1, -1,
1540 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1542 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1543 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1544 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1545 96, 97, 98, 99, 100, 101, 102, 8, 104, -1,
1546 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1547 116, -1, 118, 119, 120, 121, -1, 123, 124, 125,
1548 126, 127, 128, -1, 130, 131, 132, -1, -1, -1,
1549 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1550 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1551 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1552 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1553 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1554 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1555 101, 102, -1, 104, -1, -1, -1, -1, -1, 8,
1556 -1, -1, -1, -1, -1, 116, -1, 118, 119, 120,
1557 121, 20, -1, 124, 125, 126, 127, 128, 129, 130,
1558 131, 132, -1, -1, -1, -1, 35, -1, -1, -1,
1559 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1561 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1562 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1563 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1564 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1565 99, 100, 101, 102, -1, 104, -1, -1, -1, -1,
1566 -1, 8, -1, -1, -1, -1, -1, 116, -1, 118,
1567 119, 120, 121, 20, -1, 124, 125, 126, 127, 128,
1568 -1, 130, 131, 132, -1, -1, -1, -1, 35, -1,
1569 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1570 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1571 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1572 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1573 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1574 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1575 97, 98, 99, 100, 101, 102, 8, 104, -1, -1,
1576 -1, -1, -1, -1, -1, -1, -1, -1, 20, 116,
1577 -1, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1578 127, 128, -1, 130, 131, 132, -1, -1, -1, -1,
1579 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1581 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
1582 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1583 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1584 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1585 102, 8, 104, -1, -1, -1, -1, -1, -1, -1,
1586 -1, -1, -1, 20, 116, -1, 118, 119, 120, 121,
1587 -1, -1, 124, 125, 126, 127, 128, -1, 130, 131,
1588 132, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1589 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1590 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1591 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1592 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1593 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1594 97, 98, 99, 100, 101, 102, -1, 104, -1, -1,
1595 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
1596 -1, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1597 127, 128, -1, 130, 131, 132, 3, -1, -1, 6,
1598 -1, -1, -1, 10, 11, -1, -1, -1, -1, -1,
1599 -1, -1, -1, 20, 21, 22, 23, -1, 25, -1,
1600 -1, -1, 3, -1, -1, 6, -1, 34, 35, 10,
1601 11, -1, -1, 40, 41, 42, 43, -1, -1, 20,
1602 21, 22, -1, -1, 25, -1, -1, 54, 55, -1,
1603 -1, -1, 59, 34, -1, 36, -1, -1, -1, 40,
1604 41, 42, 43, -1, -1, -1, -1, -1, -1, -1,
1605 -1, -1, 3, 54, 55, 6, -1, -1, 59, 10,
1606 11, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1607 21, 22, -1, -1, 25, -1, -1, -1, -1, -1,
1608 107, 108, -1, 34, -1, 36, -1, 114, -1, 40,
1609 41, 42, 43, 3, -1, -1, 6, -1, -1, -1,
1610 10, 11, -1, 54, 55, -1, 107, 108, 59, -1,
1611 20, 21, 22, 114, -1, 25, -1, -1, -1, -1,
1612 -1, -1, -1, -1, 34, -1, 36, -1, -1, -1,
1613 40, 41, 42, 43, -1, -1, -1, -1, -1, -1,
1614 -1, -1, -1, 3, 54, 55, 6, -1, -1, 59,
1615 10, 11, -1, -1, -1, -1, 107, 108, -1, -1,
1616 20, 21, 22, 114, -1, 25, -1, -1, -1, 3,
1617 -1, -1, 6, -1, 34, -1, 10, 11, -1, -1,
1618 40, 41, 42, 43, -1, -1, 20, -1, 22, -1,
1619 -1, 25, -1, -1, 54, 55, -1, 107, 108, 59,
1620 34, -1, -1, -1, 114, -1, 40, 41, 42, 43,
1621 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1622 54, -1, -1, -1, -1, 59, -1, -1, -1, -1,
1623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1624 -1, -1, -1, -1, -1, -1, -1, 107, 108, -1,
1625 -1, -1, -1, -1, 114, -1, -1, -1, -1, -1,
1626 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1627 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
1630 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1632 /* Skeleton output parser for bison,
1634 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
1637 This program is free software; you can redistribute it and/or modify
1638 it under the terms of the GNU General Public License as published by
1639 the Free Software Foundation; either version 2, or (at your option)
1642 This program is distributed in the hope that it will be useful,
1643 but WITHOUT ANY WARRANTY; without even the implied warranty of
1644 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1645 GNU General Public License for more details.
1647 You should have received a copy of the GNU General Public License
1648 along with this program; if not, write to the Free Software
1649 Foundation, Inc., 59 Temple Place - Suite 330,
1650 Boston, MA 02111-1307, USA. */
1652 /* As a special exception, when this file is copied by Bison into a
1653 Bison output file, you may use that output file without restriction.
1654 This special exception was added by the Free Software Foundation
1655 in version 1.24 of Bison. */
1657 /* This is the parser code that is written into each bison parser when
1658 the %semantic_parser declaration is not specified in the grammar.
1659 It was written by Richard Stallman by simplifying the hairy parser
1660 used when %semantic_parser is specified. */
1662 /* All symbols defined below should begin with yy or YY, to avoid
1663 infringing on user name space. This should be done even for local
1664 variables, as they might otherwise be expanded by user macros.
1665 There are some unavoidable exceptions within include files to
1666 define necessary library symbols; they are noted "INFRINGES ON
1667 USER NAME SPACE" below. */
1669 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
1671 /* The parser invokes alloca or malloc; define the necessary symbols. */
1673 # if YYSTACK_USE_ALLOCA
1674 # define YYSTACK_ALLOC alloca
1676 # ifndef YYSTACK_USE_ALLOCA
1677 # if defined (alloca) || defined (_ALLOCA_H)
1678 # define YYSTACK_ALLOC alloca
1681 # define YYSTACK_ALLOC __builtin_alloca
1687 # ifdef YYSTACK_ALLOC
1688 /* Pacify GCC's `empty if-body' warning. */
1689 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1691 # if defined (__STDC__) || defined (__cplusplus)
1692 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1693 # define YYSIZE_T size_t
1695 # define YYSTACK_ALLOC malloc
1696 # define YYSTACK_FREE free
1698 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
1701 #if (! defined (yyoverflow) \
1702 && (! defined (__cplusplus) \
1703 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1705 /* A type that is properly aligned for any stack member. */
1715 /* The size of the maximum gap between one aligned stack and the next. */
1716 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
1718 /* The size of an array large to enough to hold all stacks, each with
1721 # define YYSTACK_BYTES(N) \
1722 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
1723 + 2 * YYSTACK_GAP_MAX)
1725 # define YYSTACK_BYTES(N) \
1726 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
1730 /* Copy COUNT objects from FROM to TO. The source and destination do
1734 # define YYCOPY(To, From, Count) \
1735 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1737 # define YYCOPY(To, From, Count) \
1740 register YYSIZE_T yyi; \
1741 for (yyi = 0; yyi < (Count); yyi++) \
1742 (To)[yyi] = (From)[yyi]; \
1748 /* Relocate STACK from its old location to the new one. The
1749 local variables YYSIZE and YYSTACKSIZE give the old and new number of
1750 elements in the stack, and YYPTR gives the new location of the
1751 stack. Advance YYPTR to a properly aligned location for the next
1753 # define YYSTACK_RELOCATE(Stack) \
1756 YYSIZE_T yynewbytes; \
1757 YYCOPY (&yyptr->Stack, Stack, yysize); \
1758 Stack = &yyptr->Stack; \
1759 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
1760 yyptr += yynewbytes / sizeof (*yyptr); \
1767 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
1768 # define YYSIZE_T __SIZE_TYPE__
1770 #if ! defined (YYSIZE_T) && defined (size_t)
1771 # define YYSIZE_T size_t
1773 #if ! defined (YYSIZE_T)
1774 # if defined (__STDC__) || defined (__cplusplus)
1775 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1776 # define YYSIZE_T size_t
1779 #if ! defined (YYSIZE_T)
1780 # define YYSIZE_T unsigned int
1783 #define yyerrok (yyerrstatus = 0)
1784 #define yyclearin (yychar = YYEMPTY)
1787 #define YYACCEPT goto yyacceptlab
1788 #define YYABORT goto yyabortlab
1789 #define YYERROR goto yyerrlab1
1790 /* Like YYERROR except do call yyerror. This remains here temporarily
1791 to ease the transition to the new meaning of YYERROR, for GCC.
1792 Once GCC version 2 has supplanted version 1, this can go. */
1793 #define YYFAIL goto yyerrlab
1794 #define YYRECOVERING() (!!yyerrstatus)
1795 #define YYBACKUP(Token, Value) \
1797 if (yychar == YYEMPTY && yylen == 1) \
1801 yychar1 = YYTRANSLATE (yychar); \
1807 yyerror ("syntax error: cannot back up"); \
1813 #define YYERRCODE 256
1816 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
1819 When YYLLOC_DEFAULT is run, CURRENT is set the location of the
1820 first token. By default, to implement support for ranges, extend
1821 its range to the last symbol. */
1823 #ifndef YYLLOC_DEFAULT
1824 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1825 Current.last_line = Rhs[N].last_line; \
1826 Current.last_column = Rhs[N].last_column;
1830 /* YYLEX -- calling `yylex' with the right arguments. */
1835 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
1837 # define YYLEX yylex (&yylval, &yylloc)
1839 # else /* !YYLSP_NEEDED */
1841 # define YYLEX yylex (&yylval, YYLEX_PARAM)
1843 # define YYLEX yylex (&yylval)
1845 # endif /* !YYLSP_NEEDED */
1847 # define YYLEX yylex ()
1848 #endif /* !YYPURE */
1851 /* Enable debugging if requested. */
1855 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1856 # define YYFPRINTF fprintf
1859 # define YYDPRINTF(Args) \
1864 /* Nonzero means print parse trace. It is left uninitialized so that
1865 multiple parsers can coexist. */
1867 #else /* !YYDEBUG */
1868 # define YYDPRINTF(Args)
1869 #endif /* !YYDEBUG */
1871 /* YYINITDEPTH -- initial size of the parser's stacks. */
1873 # define YYINITDEPTH 200
1876 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1877 if the built-in stack extension method is used).
1879 Do not make this value too large; the results are undefined if
1880 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
1881 evaluated with infinite-precision integer arithmetic. */
1888 # define YYMAXDEPTH 10000
1891 #ifdef YYERROR_VERBOSE
1894 # if defined (__GLIBC__) && defined (_STRING_H)
1895 # define yystrlen strlen
1897 /* Return the length of YYSTR. */
1899 # if defined (__STDC__) || defined (__cplusplus)
1900 yystrlen (const char *yystr)
1906 register const char *yys = yystr;
1908 while (*yys++ != '\0')
1911 return yys - yystr - 1;
1917 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1918 # define yystpcpy stpcpy
1920 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1923 # if defined (__STDC__) || defined (__cplusplus)
1924 yystpcpy (char *yydest, const char *yysrc)
1926 yystpcpy (yydest, yysrc)
1931 register char *yyd = yydest;
1932 register const char *yys = yysrc;
1934 while ((*yyd++ = *yys++) != '\0')
1945 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1946 into yyparse. The argument should have type void *.
1947 It should actually point to an object.
1948 Grammar actions can access the variable by casting it
1949 to the proper pointer type. */
1951 #ifdef YYPARSE_PARAM
1952 # if defined (__STDC__) || defined (__cplusplus)
1953 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1954 # define YYPARSE_PARAM_DECL
1956 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
1957 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1959 #else /* !YYPARSE_PARAM */
1960 # define YYPARSE_PARAM_ARG
1961 # define YYPARSE_PARAM_DECL
1962 #endif /* !YYPARSE_PARAM */
1964 /* Prevent warning if -Wstrict-prototypes. */
1966 # ifdef YYPARSE_PARAM
1967 int yyparse (void *);
1973 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
1974 variables are global, or local to YYPARSE. */
1976 #define YY_DECL_NON_LSP_VARIABLES \
1977 /* The lookahead symbol. */ \
1980 /* The semantic value of the lookahead symbol. */ \
1983 /* Number of parse errors so far. */ \
1987 # define YY_DECL_VARIABLES \
1988 YY_DECL_NON_LSP_VARIABLES \
1990 /* Location data for the lookahead symbol. */ \
1993 # define YY_DECL_VARIABLES \
1994 YY_DECL_NON_LSP_VARIABLES
1998 /* If nonreentrant, generate the variables here. */
2002 #endif /* !YYPURE */
2005 yyparse (YYPARSE_PARAM_ARG)
2008 /* If reentrant, generate the variables here. */
2011 #endif /* !YYPURE */
2013 register int yystate;
2016 /* Number of tokens to shift before error messages enabled. */
2018 /* Lookahead token as an internal (translated) token number. */
2021 /* Three stacks and their tools:
2022 `yyss': related to states,
2023 `yyvs': related to semantic values,
2024 `yyls': related to locations.
2026 Refer to the stacks thru separate pointers, to allow yyoverflow
2027 to reallocate them elsewhere. */
2029 /* The state stack. */
2030 short yyssa[YYINITDEPTH];
2031 short *yyss = yyssa;
2032 register short *yyssp;
2034 /* The semantic value stack. */
2035 YYSTYPE yyvsa[YYINITDEPTH];
2036 YYSTYPE *yyvs = yyvsa;
2037 register YYSTYPE *yyvsp;
2040 /* The location stack. */
2041 YYLTYPE yylsa[YYINITDEPTH];
2042 YYLTYPE *yyls = yylsa;
2047 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2049 # define YYPOPSTACK (yyvsp--, yyssp--)
2052 YYSIZE_T yystacksize = YYINITDEPTH;
2055 /* The variables used to return semantic value and location from the
2062 /* When reducing, the number of symbols on the RHS of the reduced
2066 YYDPRINTF ((stderr, "Starting parse\n"));
2071 yychar = YYEMPTY; /* Cause a token to be read. */
2073 /* Initialize stack pointers.
2074 Waste one element of value and location stack
2075 so that they stay on the same level as the state stack.
2076 The wasted elements are never initialized. */
2085 /*------------------------------------------------------------.
2086 | yynewstate -- Push a new state, which is found in yystate. |
2087 `------------------------------------------------------------*/
2089 /* In all cases, when you get here, the value and location stacks
2090 have just been pushed. so pushing a state here evens the stacks.
2097 if (yyssp >= yyss + yystacksize - 1)
2099 /* Get the current used size of the three stacks, in elements. */
2100 YYSIZE_T yysize = yyssp - yyss + 1;
2104 /* Give user a chance to reallocate the stack. Use copies of
2105 these so that the &'s don't force the real ones into
2107 YYSTYPE *yyvs1 = yyvs;
2108 short *yyss1 = yyss;
2110 /* Each stack pointer address is followed by the size of the
2111 data in use in that stack, in bytes. */
2113 YYLTYPE *yyls1 = yyls;
2114 /* This used to be a conditional around just the two extra args,
2115 but that might be undefined if yyoverflow is a macro. */
2116 yyoverflow ("parser stack overflow",
2117 &yyss1, yysize * sizeof (*yyssp),
2118 &yyvs1, yysize * sizeof (*yyvsp),
2119 &yyls1, yysize * sizeof (*yylsp),
2123 yyoverflow ("parser stack overflow",
2124 &yyss1, yysize * sizeof (*yyssp),
2125 &yyvs1, yysize * sizeof (*yyvsp),
2131 #else /* no yyoverflow */
2132 # ifndef YYSTACK_RELOCATE
2135 /* Extend the stack our own way. */
2136 if (yystacksize >= YYMAXDEPTH)
2139 if (yystacksize > YYMAXDEPTH)
2140 yystacksize = YYMAXDEPTH;
2143 short *yyss1 = yyss;
2144 union yyalloc *yyptr =
2145 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2148 YYSTACK_RELOCATE (yyss);
2149 YYSTACK_RELOCATE (yyvs);
2151 YYSTACK_RELOCATE (yyls);
2153 # undef YYSTACK_RELOCATE
2155 YYSTACK_FREE (yyss1);
2158 #endif /* no yyoverflow */
2160 yyssp = yyss + yysize - 1;
2161 yyvsp = yyvs + yysize - 1;
2163 yylsp = yyls + yysize - 1;
2166 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2167 (unsigned long int) yystacksize));
2169 if (yyssp >= yyss + yystacksize - 1)
2173 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2183 /* Do appropriate processing given the current state. */
2184 /* Read a lookahead token if we need one and don't already have one. */
2187 /* First try to decide what to do without reference to lookahead token. */
2189 yyn = yypact[yystate];
2193 /* Not known => get a lookahead token if don't already have one. */
2195 /* yychar is either YYEMPTY or YYEOF
2196 or a valid token in external form. */
2198 if (yychar == YYEMPTY)
2200 YYDPRINTF ((stderr, "Reading a token: "));
2204 /* Convert token to internal form (in yychar1) for indexing tables with */
2206 if (yychar <= 0) /* This means end of input. */
2209 yychar = YYEOF; /* Don't call YYLEX any more */
2211 YYDPRINTF ((stderr, "Now at end of input.\n"));
2215 yychar1 = YYTRANSLATE (yychar);
2218 /* We have to keep this `#if YYDEBUG', since we use variables
2219 which are defined only if `YYDEBUG' is set. */
2222 YYFPRINTF (stderr, "Next token is %d (%s",
2223 yychar, yytname[yychar1]);
2224 /* Give the individual parser a way to print the precise
2225 meaning of a token, for further debugging info. */
2227 YYPRINT (stderr, yychar, yylval);
2229 YYFPRINTF (stderr, ")\n");
2235 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2240 /* yyn is what to do for this token type in this state.
2241 Negative => reduce, -yyn is rule number.
2242 Positive => shift, yyn is new state.
2243 New state is final state => don't bother to shift,
2244 just return success.
2245 0, or most negative number => error. */
2260 /* Shift the lookahead token. */
2261 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
2262 yychar, yytname[yychar1]));
2264 /* Discard the token being shifted unless it is eof. */
2265 if (yychar != YYEOF)
2273 /* Count tokens shifted since error; after three, turn off error
2282 /*-----------------------------------------------------------.
2283 | yydefault -- do the default action for the current state. |
2284 `-----------------------------------------------------------*/
2286 yyn = yydefact[yystate];
2292 /*-----------------------------.
2293 | yyreduce -- Do a reduction. |
2294 `-----------------------------*/
2296 /* yyn is the number of a rule to reduce with. */
2299 /* If YYLEN is nonzero, implement the default value of the action:
2302 Otherwise, the following line sets YYVAL to the semantic value of
2303 the lookahead token. This behavior is undocumented and Bison
2304 users should not rely upon it. Assigning to YYVAL
2305 unconditionally makes the parser a bit smaller, and it avoids a
2306 GCC warning that YYVAL may be used uninitialized. */
2307 yyval = yyvsp[1-yylen];
2310 /* Similarly for the default location. Let the user run additional
2311 commands if for instance locations are ranges. */
2312 yyloc = yylsp[1-yylen];
2313 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
2317 /* We have to keep this `#if YYDEBUG', since we use variables which
2318 are defined only if `YYDEBUG' is set. */
2323 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
2326 /* Print the symbols being reduced, and their result. */
2327 for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
2328 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
2329 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2336 { lhExternals (yyvsp[0].interfacelist); ;
2339 { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
2342 { yyval.interfacelist = interfaceNodeList_new (); ;
2345 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2348 { yyval.interfacelist = interfaceNodeList_new (); ;
2351 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2354 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2357 { yyval.interfacelist = interfaceNodeList_new (); ;
2360 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2363 { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2364 /* assume subspecs are already processed, symbol table info in external file */
2368 { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
2371 { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
2374 { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
2377 { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
2380 { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
2383 { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
2386 { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
2389 { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
2392 { yyval.paramlist = paramNodeList_new (); ;
2395 { yyval.paramlist = yyvsp[0].paramlist; ;
2398 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
2401 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
2404 { yyval.param = markYieldParamNode (yyvsp[0].param); ;
2407 { yyval.param = yyvsp[0].param; ;
2410 { symtable_export (g_symtab, FALSE); ;
2413 { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
2416 { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
2419 { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
2422 { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
2425 { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
2428 { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
2431 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
2434 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
2437 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
2440 { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
2443 { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
2446 { yyval.typequal = qual_createPrintfLike (); ;
2449 { yyval.typequal = qual_createScanfLike (); ;
2452 { yyval.typequal = qual_createMessageLike (); ;
2455 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2458 { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls,
2459 yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2460 /* type, declarator, glovbls, privateinits,
2461 lets, checks, requires, modifies, ensures, claims */
2462 symtable_exitScope (g_symtab);
2466 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2469 { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist,
2470 yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2471 /* type, declarator, glovbls, privateinits,
2472 lets, checks, requires, modifies, ensures, claims */
2473 symtable_exitScope (g_symtab);
2477 { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
2480 { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate);
2481 symtable_exitScope (g_symtab); ;
2484 { yyval.claim = (claimNode) 0; ;
2487 {g_inTypeDef = TRUE; ;
2490 {g_inTypeDef = FALSE; ;
2493 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
2496 {g_inTypeDef = TRUE; ;
2499 {g_inTypeDef = FALSE; ;
2502 { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2505 {g_inTypeDef = TRUE; ;
2508 {g_inTypeDef = FALSE; ;
2511 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2514 {g_inTypeDef = TRUE; ;
2517 {g_inTypeDef = FALSE; ;
2520 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
2523 { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
2526 { g_inTypeDef = FALSE; ;
2529 { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
2532 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
2535 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
2538 { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
2541 { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
2544 { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
2547 { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
2550 { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
2553 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2556 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2559 { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
2562 { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
2565 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
2568 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
2571 { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
2574 { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
2577 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2580 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2583 { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
2586 { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
2589 { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
2592 { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
2595 { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
2598 { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
2601 { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
2604 { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
2607 { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
2610 { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
2611 yyvsp[-1].name, yyvsp[0].signature); ;
2614 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
2617 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
2620 { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
2623 { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
2626 { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
2629 { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
2632 { yyval.globals = varDeclarationNodeList_new (); ;
2635 { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
2638 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
2641 { yyval.vardeclaration = makeInternalStateNode (); ;
2644 { yyval.vardeclaration = makeFileSystemNode (); ;
2647 { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
2650 { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
2653 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
2656 { yyval.letdecls = letDeclNodeList_new (); ;
2659 { yyval.letdecls = yyvsp[-1].letdecls; ;
2662 { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
2665 { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
2668 { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
2671 { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
2674 { yyval.lclpredicate = (lclPredicateNode)0; ;
2677 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2680 { yyval.lclpredicate = (lclPredicateNode)0; ;
2683 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2686 { yyval.modify = (modifyNode)0; ;
2689 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
2692 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
2695 { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
2698 { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
2701 { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
2704 { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
2707 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
2710 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
2713 { yyval.storeref = makeStoreRefNodeInternal (); ;
2716 { yyval.storeref = makeStoreRefNodeSystem (); ;
2719 { yyval.lclpredicate = (lclPredicateNode)0; ;
2722 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2725 { yyval.lclpredicate = (lclPredicateNode)0; ;
2728 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2731 { yyval.paramlist = paramNodeList_new (); ;
2734 { yyval.paramlist = yyvsp[0].paramlist; ;
2737 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
2740 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
2743 { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
2746 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
2749 { yyval.program = (programNode)0; ;
2752 { yyval.program = yyvsp[-1].program; ;
2755 { yyval.program = yyvsp[-2].program; ;
2758 { yyval.program = makeProgramNode (yyvsp[0].stmt); ;
2761 { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
2764 { programNodeList x = programNodeList_new ();
2765 programNodeList_addh (x, yyvsp[-1].program);
2766 yyval.program = makeProgramNodeAction (x, ACT_ITER);
2770 { programNodeList x = programNodeList_new ();
2771 programNodeList_addh (x, yyvsp[-2].program);
2772 programNodeList_addh (x, yyvsp[0].program);
2773 yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE);
2777 { programNodeList x = programNodeList_new ();
2778 programNodeList_addh (x, yyvsp[-2].program);
2779 programNodeList_addh (x, yyvsp[0].program);
2780 yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE);
2784 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2787 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
2790 { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
2793 { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2796 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
2799 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
2802 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
2805 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
2808 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
2811 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
2814 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
2817 { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
2820 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
2823 { yyval.abstbody = (abstBodyNode)0; ;
2826 { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
2829 { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
2832 { yyval.abstbody = (abstBodyNode)0; ;
2835 { yyval.fcns = fcnNodeList_new (); ;
2838 { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
2841 { yyval.lclpredicate = (lclPredicateNode)0; ;
2844 { g_inTypeDef = FALSE; ;
2847 { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
2848 checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
2849 yyval.lclpredicate = yyvsp[-1].lclpredicate;
2850 symtable_exitScope (g_symtab);
2855 { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
2858 { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
2861 { declareForwardType (yyvsp[0].declare); ;
2864 { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
2867 { yyval.abstbody = (abstBodyNode)0; ;
2870 { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2873 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
2876 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
2879 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
2882 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
2885 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
2888 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
2891 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
2894 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
2897 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
2900 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
2903 { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
2906 { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
2909 { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
2912 { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
2915 { yyval.typequal = qual_createOut (); ;
2918 { yyval.typequal = qual_createUnused (); ;
2921 { yyval.typequal = qual_createSef (); ;
2924 { yyval.typequal = qual_createOnly (); ;
2927 { yyval.typequal = qual_createOwned (); ;
2930 { yyval.typequal = qual_createDependent (); ;
2933 { yyval.typequal = qual_createKeep (); ;
2936 { yyval.typequal = qual_createKept (); ;
2939 { yyval.typequal = qual_createObserver (); ;
2942 { yyval.typequal = qual_createExits (); ;
2945 { yyval.typequal = qual_createMayExit (); ;
2948 { yyval.typequal = qual_createTrueExit (); ;
2951 { yyval.typequal = qual_createFalseExit (); ;
2954 { yyval.typequal = qual_createNeverExit (); ;
2957 { yyval.typequal = qual_createOnly (); ;
2960 { yyval.typequal = qual_createShared (); ;
2963 { yyval.typequal = qual_createUnique (); ;
2966 { yyval.typequal = qual_createChecked (); ;
2969 { yyval.typequal = qual_createUnchecked (); ;
2972 { yyval.typequal = qual_createCheckedStrict (); ;
2975 { yyval.typequal = qual_createTrueNull (); ;
2978 { yyval.typequal = qual_createFalseNull (); ;
2981 { yyval.typequal = qual_createRelNull (); ;
2984 { yyval.typequal = qual_createRelDef (); ;
2987 { yyval.typequal = qual_createRefCounted (); ;
2990 { yyval.typequal = qual_createRefs (); ;
2993 { yyval.typequal = qual_createNewRef (); ;
2996 { yyval.typequal = qual_createKillRef (); ;
2999 { yyval.typequal = qual_createNull (); ;
3002 { yyval.typequal = qual_createNotNull (); ;
3005 { yyval.typequal = qual_createReturned (); ;
3008 { yyval.typequal = qual_createExposed (); ;
3011 { yyval.typequal = qual_createPartial (); ;
3014 { yyval.typequal = qual_createNullTerminated () ; ;
3017 { yyval.typequal = qual_createUndef (); ;
3020 { yyval.typequal = qual_createKilled (); ;
3023 { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
3026 { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
3029 { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
3032 { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
3035 { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
3038 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
3039 yyvsp[-1].lcltypespec->pointers = yyvsp[0].pointers; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
3042 { yyval.pointers = pointers_createLt (yyvsp[0].ltok); ;
3045 { yyval.pointers = pointers_extend (yyvsp[-1].pointers, pointers_createLt (yyvsp[0].ltok)); ;
3048 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
3051 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3054 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
3057 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3060 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
3063 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
3066 { yyval.ltok = ltoken_undefined; ;
3069 { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
3072 { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
3075 { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
3078 { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
3081 { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
3090 { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
3093 { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
3096 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3099 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3102 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3105 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3108 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3111 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3114 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3117 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3120 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3123 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3126 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3129 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3132 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3135 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3138 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3141 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3144 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3147 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3150 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3153 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3156 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3159 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3162 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3165 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3168 { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3171 { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3174 { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
3177 { yyval.abstDecl = (abstDeclaratorNode)0; ;
3180 { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
3183 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3186 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3189 { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
3192 { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
3195 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3198 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3201 { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
3204 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3207 { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
3210 { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
3213 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
3216 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3219 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3222 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3225 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
3226 opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3229 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3232 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3235 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3238 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3241 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3244 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3247 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3250 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3253 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
3254 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3257 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
3258 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3261 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
3262 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3265 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
3266 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3269 { yyval.count = 0; ;
3272 { yyval.count = 1; ;
3275 { yyval.count = yyvsp[-2].count + 1; ;
3278 { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3281 { yyval.ltokenList = ltokenList_new (); ;
3284 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3287 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3290 { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
3293 { yyval.term = checkSort (yyvsp[0].term); ;
3296 { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
3299 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
3302 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
3303 symtable_exitScope (g_symtab);
3307 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3310 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3313 { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
3316 { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
3319 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
3322 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3325 { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
3328 { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
3331 { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
3334 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3337 { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3340 { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
3343 { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
3346 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3349 { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3352 { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3355 { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok);
3356 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3359 { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3362 { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok);
3363 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok));
3367 { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3370 { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3373 { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3376 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3379 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3382 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
3385 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3388 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3391 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
3394 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3397 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3400 { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
3404 { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
3407 { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3410 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3413 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3416 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3419 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3422 { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
3425 { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
3428 { termNodeList x = termNodeList_new ();
3429 termNodeList_addh (x, yyvsp[-1].term);
3430 yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok);
3434 { termNodeList x = termNodeList_new ();
3435 termNodeList_addh (x, yyvsp[-3].term);
3436 termNodeList_addh (x, yyvsp[-1].term);
3437 yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok);
3441 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
3444 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortInt); ;
3447 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortCstring); ;
3450 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortChar); ;
3453 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortDouble); ;
3456 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
3459 { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
3462 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
3463 si->kind = SPE_QUANT;
3464 symtable_enterScope (g_symtab, si); ;
3467 { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
3470 { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
3473 { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
3476 { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
3479 { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
3494 short *yyssp1 = yyss - 1;
3495 YYFPRINTF (stderr, "state stack now");
3496 while (yyssp1 != yyssp)
3497 YYFPRINTF (stderr, " %d", *++yyssp1);
3498 YYFPRINTF (stderr, "\n");
3507 /* Now `shift' the result of the reduction. Determine what state
3508 that goes to, based on the state we popped back to and the rule
3509 number reduced by. */
3513 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3514 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3515 yystate = yytable[yystate];
3517 yystate = yydefgoto[yyn - YYNTBASE];
3522 /*------------------------------------.
3523 | yyerrlab -- here on detecting error |
3524 `------------------------------------*/
3526 /* If not already recovering from an error, report this error. */
3531 #ifdef YYERROR_VERBOSE
3532 yyn = yypact[yystate];
3534 if (yyn > YYFLAG && yyn < YYLAST)
3536 YYSIZE_T yysize = 0;
3541 /* Start YYX at -YYN if negative to avoid negative indexes in
3543 for (yyx = yyn < 0 ? -yyn : 0;
3544 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
3545 if (yycheck[yyx + yyn] == yyx)
3546 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
3547 yysize += yystrlen ("parse error, unexpected ") + 1;
3548 yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
3549 yymsg = (char *) YYSTACK_ALLOC (yysize);
3552 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
3553 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
3558 for (yyx = yyn < 0 ? -yyn : 0;
3559 yyx < (int) (sizeof (yytname) / sizeof (char *));
3561 if (yycheck[yyx + yyn] == yyx)
3563 const char *yyq = ! yycount ? ", expecting " : " or ";
3564 yyp = yystpcpy (yyp, yyq);
3565 yyp = yystpcpy (yyp, yytname[yyx]);
3570 YYSTACK_FREE (yymsg);
3573 yyerror ("parse error; also virtual memory exhausted");
3576 #endif /* defined (YYERROR_VERBOSE) */
3577 yyerror ("parse error");
3582 /*--------------------------------------------------.
3583 | yyerrlab1 -- error raised explicitly by an action |
3584 `--------------------------------------------------*/
3586 if (yyerrstatus == 3)
3588 /* If just tried and failed to reuse lookahead token after an
3589 error, discard it. */
3591 /* return failure if at end of input */
3592 if (yychar == YYEOF)
3594 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
3595 yychar, yytname[yychar1]));
3599 /* Else will try to reuse lookahead token after shifting the error
3602 yyerrstatus = 3; /* Each real token shifted decrements this */
3607 /*-------------------------------------------------------------------.
3608 | yyerrdefault -- current state does not do anything special for the |
3610 `-------------------------------------------------------------------*/
3613 /* This is wrong; only states that explicitly want error tokens
3614 should shift them. */
3616 /* If its default is to accept any token, ok. Otherwise pop it. */
3617 yyn = yydefact[yystate];
3623 /*---------------------------------------------------------------.
3624 | yyerrpop -- pop the current state because it cannot handle the |
3626 `---------------------------------------------------------------*/
3639 short *yyssp1 = yyss - 1;
3640 YYFPRINTF (stderr, "Error: state stack now");
3641 while (yyssp1 != yyssp)
3642 YYFPRINTF (stderr, " %d", *++yyssp1);
3643 YYFPRINTF (stderr, "\n");
3651 yyn = yypact[yystate];
3656 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3673 YYDPRINTF ((stderr, "Shifting error token, "));
3684 /*-------------------------------------.
3685 | yyacceptlab -- YYACCEPT comes here. |
3686 `-------------------------------------*/
3691 /*-----------------------------------.
3692 | yyabortlab -- YYABORT comes here. |
3693 `-----------------------------------*/
3698 /*---------------------------------------------.
3699 | yyoverflowab -- parser overflow comes here. |
3700 `---------------------------------------------*/
3702 yyerror ("parser stack overflow");
3709 YYSTACK_FREE (yyss);
3715 # include "bison.reset"
3718 ** yytext is set in lex scanner
3719 ** extern YYSTYPE yylval;
3720 ** yylval is defined by code generated by bison
3723 void ylerror (char *s)
3726 ** This resetting of the left context is very important when multiple
3727 ** files are to be parsed. We do not want failures to propagate.
3728 ** Lex/Yacc does not reset the flags when the parsing goes bad.
3733 lclfatalerror (yllval.ltok,
3734 message ("%s: Token code: %s, Token String: %s",
3735 cstring_fromChars (s),
3736 ltoken_unparseCodeName (yllval.ltok),
3737 ltoken_getRawString (yllval.ltok)));
3741 static void yyprint (FILE *f, int t, YYSTYPE value)
3743 fprintf (f, " type: %d (%s)", t,
3744 cstring_toCharsSafe (ltoken_getRawString (value.ltok)));
3754 ** Resets all flags in bison.head
3776 /*@=evalorderuncon@*/
3785 /*@=elseifcomplete@*/
3789 /*@=readonlytrans@*/
3792 /*@=systemunrecog@*/
3793 /*@=dependenttrans@*/
3794 /*@=unqualifiedtrans@*/
3798 /*drl added 11/27/2001*/
3801 /*drl added 12/11/2002*/