2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
49 /*drl added 11/27/2001*/
51 /* < end of bison.head > */
53 /* A Bison parser, made from llgrammar.y
56 #define YYBISON 1 /* Identify Bison output. */
58 #define yyparse ylparse
60 #define yyerror ylerror
63 #define yydebug yldebug
64 #define yynerrs ylnerrs
66 # define PREFIX_OP 258
67 # define POSTFIX_OP 259
68 # define LLT_MULOP 260
70 # define LLT_VERTICALBAR 262
71 # define ITERATION_OP 263
73 # define LLT_LBRACKET 265
74 # define selectSym 266
75 # define LLT_IF_THEN_ELSE 267
76 # define logicalOp 268
78 # define equationSym 270
79 # define commentSym 271
80 # define LLT_WHITESPACE 272
82 # define LLT_TYPEDEF_NAME 274
83 # define quantifierSym 275
89 # define markerSym 281
93 # define LLT_COLON 285
94 # define LLT_COMMA 286
95 # define LLT_EQUALS 287
96 # define LLT_LBRACE 288
97 # define LLT_RBRACE 289
98 # define LLT_RBRACKET 290
100 # define LLT_QUOTE 292
102 # define LLT_CCHAR 294
103 # define LLT_CFLOAT 295
104 # define LLT_CINTEGER 296
105 # define LLT_LCSTRING 297
107 # define LLT_ANYTHING 299
109 # define LLT_BODY 301
110 # define LLT_CLAIMS 302
111 # define LLT_CHECKS 303
112 # define LLT_CONSTANT 304
113 # define LLT_ELSE 305
114 # define LLT_ENSURES 306
116 # define LLT_FRESH 308
118 # define LLT_IMMUTABLE 310
119 # define LLT_IMPORTS 311
120 # define LLT_CONSTRAINT 312
121 # define LLT_ISSUB 313
123 # define LLT_MODIFIES 315
124 # define LLT_MUTABLE 316
125 # define LLT_NOTHING 317
126 # define LLT_INTERNAL 318
127 # define LLT_FILESYS 319
131 # define LLT_ONLY 323
132 # define LLT_PARTIAL 324
133 # define LLT_OWNED 325
134 # define LLT_DEPENDENT 326
135 # define LLT_KEEP 327
136 # define LLT_KEPT 328
137 # define LLT_TEMP 329
138 # define LLT_SHARED 330
139 # define LLT_UNIQUE 331
140 # define LLT_UNUSED 332
141 # define LLT_EXITS 333
142 # define LLT_MAYEXIT 334
143 # define LLT_NEVEREXIT 335
144 # define LLT_TRUEEXIT 336
145 # define LLT_FALSEEXIT 337
146 # define LLT_UNDEF 338
147 # define LLT_KILLED 339
148 # define LLT_CHECKMOD 340
149 # define LLT_CHECKED 341
150 # define LLT_UNCHECKED 342
151 # define LLT_CHECKEDSTRICT 343
152 # define LLT_TRUENULL 344
153 # define LLT_FALSENULL 345
154 # define LLT_LNULL 346
155 # define LLT_LNOTNULL 347
156 # define LLT_RETURNED 348
157 # define LLT_OBSERVER 349
158 # define LLT_EXPOSED 350
159 # define LLT_REFCOUNTED 351
160 # define LLT_REFS 352
161 # define LLT_RELNULL 353
162 # define LLT_RELDEF 354
163 # define LLT_KILLREF 355
164 # define LLT_NULLTERMINATED 356
165 # define LLT_TEMPREF 357
166 # define LLT_NEWREF 358
167 # define LLT_PRIVATE 359
168 # define LLT_REQUIRES 360
169 # define LLT_RESULT 361
170 # define LLT_SIZEOF 362
171 # define LLT_SPEC 363
172 # define LLT_TAGGEDUNION 364
173 # define LLT_THEN 365
174 # define LLT_TYPE 366
175 # define LLT_TYPEDEF 367
176 # define LLT_UNCHANGED 368
177 # define LLT_USES 369
178 # define LLT_CHAR 370
179 # define LLT_CONST 371
180 # define LLT_DOUBLE 372
181 # define LLT_ENUM 373
182 # define LLT_FLOAT 374
184 # define LLT_ITER 376
185 # define LLT_YIELD 377
186 # define LLT_LONG 378
187 # define LLT_SHORT 379
188 # define LLT_SIGNED 380
189 # define LLT_UNKNOWN 381
190 # define LLT_STRUCT 382
191 # define LLT_TELIPSIS 383
192 # define LLT_UNION 384
193 # define LLT_UNSIGNED 385
194 # define LLT_VOID 386
195 # define LLT_VOLATILE 387
196 # define LLT_PRINTFLIKE 388
197 # define LLT_SCANFLIKE 389
198 # define LLT_MESSAGELIKE 390
202 # include "splintMacros.nf"
203 # include "llbasic.h"
204 # include "lclscan.h"
205 # include "checking.h"
206 # include "lslparse.h"
208 # include "usymtab_interface.h"
211 static /*@unused@*/ void yyprint ();
215 void ylerror (char *) /*@modifies *g_warningstream@*/ ;
218 bool g_inTypeDef = FALSE;
220 /*@constant int YYDEBUG;@*/
224 # define YYPRINT(file, type, value) yyprint (file, type, value)
227 ** This is necessary, or else when the bison-generated code #include's malloc.h,
228 ** there will be a parse error.
230 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
231 ** in bison-generated files under Win32.
244 ltoken ltok; /* a leaf is also an ltoken */
247 /*@only@*/ ltokenList ltokenList;
248 /*@only@*/ abstDeclaratorNode abstDecl;
249 /*@only@*/ declaratorNode declare;
250 /*@only@*/ declaratorNodeList declarelist;
251 /*@only@*/ typeExpr typeexpr;
252 /*@only@*/ arrayQualNode array;
253 /*@only@*/ quantifierNode quantifier;
254 /*@only@*/ quantifierNodeList quantifiers;
255 /*@only@*/ varNode var;
256 /*@only@*/ varNodeList vars;
257 /*@only@*/ storeRefNode storeref;
258 /*@only@*/ storeRefNodeList storereflist;
259 /*@only@*/ termNode term;
260 /*@only@*/ termNodeList termlist;
261 /*@only@*/ programNode program;
262 /*@only@*/ stmtNode stmt;
263 /*@only@*/ claimNode claim;
264 /*@only@*/ typeNode type;
265 /*@only@*/ iterNode iter;
266 /*@only@*/ fcnNode fcn;
267 /*@only@*/ fcnNodeList fcns;
268 /*@only@*/ letDeclNode letdecl;
269 /*@only@*/ letDeclNodeList letdecls;
270 /*@only@*/ lclPredicateNode lclpredicate;
271 /*@only@*/ modifyNode modify;
272 /*@only@*/ paramNode param;
273 /*@only@*/ paramNodeList paramlist;
274 /*@only@*/ declaratorInvNodeList declaratorinvs;
275 /*@only@*/ declaratorInvNode declaratorinv;
276 /*@only@*/ abstBodyNode abstbody;
277 /*@only@*/ abstractNode abstract;
278 /*@only@*/ exposedNode exposed;
279 /*@only@*/ pointers pointers;
280 /* taggedUnionNode taggedunion; */
281 /*@only@*/ globalList globals;
282 /*@only@*/ constDeclarationNode constdeclaration;
283 /*@only@*/ varDeclarationNode vardeclaration;
284 /*@only@*/ varDeclarationNodeList vardeclarationlist;
285 /*@only@*/ initDeclNodeList initdecls;
286 /*@only@*/ initDeclNode initdecl;
287 /*@only@*/ stDeclNodeList structdecls;
288 /*@only@*/ stDeclNode structdecl;
289 /*@only@*/ strOrUnionNode structorunion;
290 /*@only@*/ enumSpecNode enumspec;
291 /*@only@*/ lclTypeSpecNode lcltypespec;
292 /*@only@*/ typeNameNode typname;
293 /*@only@*/ opFormNode opform;
294 /*@only@*/ sigNode signature;
295 /*@only@*/ nameNode name;
296 /*@only@*/ typeNameNodeList namelist;
297 /*@only@*/ replaceNode replace;
298 /*@only@*/ replaceNodeList replacelist;
299 /*@only@*/ renamingNode renaming;
300 /*@only@*/ traitRefNode traitref;
301 /*@only@*/ traitRefNodeList traitreflist;
302 /*@only@*/ importNode import;
303 /*@only@*/ importNodeList importlist;
304 /*@only@*/ interfaceNode iface;
305 /*@only@*/ interfaceNodeList interfacelist;
306 /*@only@*/ CTypesNode ctypes;
309 # define YYSTYPE yystype
310 # define YYSTYPE_IS_TRIVIAL 1
319 #define YYFLAG -32768
322 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
323 #define YYTRANSLATE(x) ((unsigned)(x) <= 390 ? yytranslate[x] : 291)
325 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
326 static const short yytranslate[] =
328 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
352 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
353 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
354 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
355 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
356 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
357 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
358 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
359 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
360 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
361 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
362 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
363 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
364 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
365 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
366 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
371 static const short yyprhs[] =
373 0, 0, 1, 5, 6, 9, 11, 13, 14, 17,
374 20, 21, 24, 26, 28, 30, 34, 38, 40, 42,
375 44, 46, 48, 50, 57, 58, 60, 62, 66, 69,
376 71, 72, 76, 78, 80, 82, 84, 89, 93, 98,
377 103, 105, 107, 109, 111, 113, 114, 128, 129, 144,
378 145, 159, 164, 165, 166, 173, 174, 175, 183, 184,
379 185, 193, 194, 195, 202, 203, 204, 211, 214, 217,
380 219, 223, 225, 229, 231, 233, 237, 239, 241, 245,
381 247, 252, 256, 263, 265, 269, 271, 273, 277, 279,
382 283, 285, 289, 293, 297, 302, 304, 306, 308, 310,
383 312, 316, 318, 322, 323, 326, 330, 333, 336, 337,
384 340, 345, 346, 350, 352, 356, 362, 366, 368, 369,
385 373, 374, 378, 379, 383, 387, 391, 393, 397, 399,
386 401, 404, 406, 408, 409, 413, 414, 418, 419, 421,
387 423, 425, 429, 431, 435, 436, 441, 447, 449, 453,
388 456, 460, 464, 469, 473, 479, 486, 488, 492, 494,
389 496, 499, 502, 506, 510, 514, 519, 521, 525, 530,
390 534, 535, 538, 539, 541, 542, 549, 551, 555, 556,
391 560, 561, 565, 567, 569, 571, 573, 575, 577, 579,
392 581, 583, 585, 587, 590, 592, 594, 596, 598, 600,
393 602, 604, 606, 608, 610, 612, 614, 616, 618, 620,
394 622, 624, 626, 628, 630, 632, 634, 636, 638, 640,
395 642, 644, 646, 648, 650, 652, 654, 656, 658, 660,
396 662, 664, 666, 668, 670, 672, 675, 681, 683, 686,
397 688, 691, 692, 699, 700, 707, 710, 713, 714, 716,
398 718, 721, 725, 727, 731, 732, 734, 741, 744, 746,
399 750, 752, 754, 756, 760, 763, 766, 770, 775, 777,
400 781, 784, 787, 791, 796, 798, 801, 804, 808, 813,
401 816, 819, 822, 825, 829, 831, 832, 834, 838, 841,
402 843, 845, 848, 852, 856, 861, 864, 868, 875, 877,
403 880, 883, 887, 891, 896, 901, 907, 911, 916, 921,
404 927, 930, 933, 937, 941, 943, 945, 947, 949, 951,
405 953, 955, 956, 958, 960, 964, 966, 968, 973, 974,
406 976, 978, 982, 984, 986, 993, 995, 999, 1001, 1006,
407 1010, 1014, 1016, 1019, 1022, 1024, 1026, 1028, 1031, 1033,
408 1036, 1039, 1043, 1045, 1047, 1050, 1053, 1057, 1059, 1062,
409 1066, 1068, 1074, 1078, 1083, 1086, 1090, 1093, 1095, 1099,
410 1103, 1105, 1110, 1112, 1115, 1119, 1123, 1127, 1132, 1136,
411 1138, 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1159, 1164,
412 1169, 1174, 1181, 1186, 1188, 1190, 1192, 1194, 1196, 1199,
413 1200, 1204, 1206, 1210, 1214, 1219, 1221, 1223, 1225, 1227,
414 1229, 1231, 1233, 1235
416 static const short yyrhs[] =
418 -1, 139, 138, 141, 0, 0, 139, 140, 0, 144,
419 0, 145, 0, 0, 146, 142, 0, 151, 142, 0,
420 0, 142, 143, 0, 146, 0, 151, 0, 145, 0,
421 57, 175, 7, 0, 115, 179, 7, 0, 154, 0,
422 155, 0, 156, 0, 158, 0, 161, 0, 147, 0,
423 122, 285, 10, 148, 37, 7, 0, 0, 149, 0,
424 150, 0, 149, 32, 150, 0, 123, 244, 0, 244,
425 0, 0, 109, 152, 153, 0, 154, 0, 155, 0,
426 156, 0, 158, 0, 50, 227, 189, 7, 0, 227,
427 189, 7, 0, 117, 227, 189, 7, 0, 133, 227,
428 189, 7, 0, 163, 0, 172, 0, 134, 0, 135,
429 0, 136, 0, 0, 227, 240, 191, 159, 34, 193,
430 195, 199, 200, 201, 204, 205, 35, 0, 0, 157,
431 227, 240, 191, 160, 34, 193, 195, 199, 200, 201,
432 204, 205, 35, 0, 0, 48, 287, 10, 206, 37,
433 191, 162, 34, 195, 200, 209, 204, 35, 0, 48,
434 284, 287, 7, 0, 0, 0, 62, 164, 112, 20,
435 165, 214, 0, 0, 0, 62, 166, 97, 112, 20,
436 167, 214, 0, 0, 0, 97, 62, 168, 112, 20,
437 169, 214, 0, 0, 0, 56, 170, 112, 20, 171,
438 214, 0, 0, 0, 113, 227, 173, 219, 174, 7,
439 0, 230, 7, 0, 238, 7, 0, 176, 0, 175,
440 32, 176, 0, 178, 0, 3, 178, 3, 0, 43,
441 0, 178, 0, 177, 32, 178, 0, 283, 0, 180,
442 0, 179, 32, 180, 0, 289, 0, 289, 10, 182,
443 37, 0, 10, 181, 37, 0, 10, 181, 37, 10,
444 182, 37, 0, 289, 0, 181, 32, 289, 0, 184,
445 0, 183, 0, 183, 32, 184, 0, 245, 0, 183,
446 32, 245, 0, 185, 0, 184, 32, 185, 0, 245,
447 53, 223, 0, 245, 53, 186, 0, 245, 53, 186,
448 256, 0, 290, 0, 249, 0, 188, 0, 260, 0,
449 190, 0, 189, 32, 190, 0, 240, 0, 240, 33,
450 187, 0, 0, 191, 192, 0, 227, 189, 7, 0,
451 64, 7, 0, 65, 7, 0, 0, 193, 194, 0,
452 105, 227, 189, 7, 0, 0, 60, 196, 7, 0,
453 197, 0, 196, 32, 197, 0, 285, 31, 198, 46,
454 260, 0, 285, 46, 260, 0, 227, 0, 0, 49,
455 259, 7, 0, 0, 106, 259, 7, 0, 0, 61,
456 63, 7, 0, 61, 45, 7, 0, 61, 202, 7,
457 0, 203, 0, 202, 32, 203, 0, 260, 0, 228,
458 0, 66, 228, 0, 64, 0, 65, 0, 0, 52,
459 259, 7, 0, 0, 48, 259, 7, 0, 0, 207,
460 0, 208, 0, 129, 0, 208, 32, 129, 0, 244,
461 0, 208, 32, 244, 0, 0, 47, 34, 210, 35,
462 0, 47, 34, 210, 7, 35, 0, 211, 0, 10,
463 210, 37, 0, 210, 6, 0, 210, 8, 210, 0,
464 210, 7, 210, 0, 284, 10, 212, 37, 0, 284,
465 10, 37, 0, 285, 33, 284, 10, 37, 0, 285,
466 33, 284, 10, 212, 37, 0, 213, 0, 212, 32,
467 213, 0, 277, 0, 285, 0, 3, 213, 0, 213,
468 3, 0, 213, 3, 213, 0, 10, 213, 37, 0,
469 284, 10, 37, 0, 284, 10, 212, 37, 0, 7,
470 0, 34, 215, 35, 0, 34, 177, 35, 7, 0,
471 34, 35, 7, 0, 0, 215, 158, 0, 0, 217,
472 0, 0, 58, 218, 279, 10, 259, 37, 0, 220,
473 0, 219, 32, 220, 0, 0, 240, 221, 222, 0,
474 0, 34, 216, 35, 0, 132, 0, 116, 0, 118,
475 0, 120, 0, 121, 0, 124, 0, 125, 0, 126,
476 0, 131, 0, 127, 0, 223, 0, 224, 223, 0,
477 20, 0, 224, 0, 67, 0, 78, 0, 68, 0,
478 69, 0, 71, 0, 72, 0, 73, 0, 74, 0,
479 95, 0, 79, 0, 80, 0, 82, 0, 83, 0,
480 81, 0, 75, 0, 76, 0, 77, 0, 87, 0,
481 88, 0, 89, 0, 90, 0, 91, 0, 99, 0,
482 100, 0, 97, 0, 98, 0, 104, 0, 101, 0,
483 92, 0, 93, 0, 94, 0, 96, 0, 70, 0,
484 102, 0, 84, 0, 85, 0, 225, 0, 230, 0,
485 238, 0, 226, 227, 0, 8, 228, 31, 228, 8,
486 0, 227, 0, 227, 229, 0, 6, 0, 229, 6,
487 0, 0, 128, 233, 231, 34, 234, 35, 0, 0,
488 130, 233, 232, 34, 234, 35, 0, 128, 286, 0,
489 130, 286, 0, 0, 286, 0, 235, 0, 234, 235,
490 0, 227, 236, 7, 0, 240, 0, 236, 32, 240,
491 0, 0, 32, 0, 119, 233, 34, 239, 237, 35,
492 0, 119, 286, 0, 25, 0, 239, 32, 25, 0,
493 242, 0, 241, 0, 285, 0, 10, 241, 37, 0,
494 6, 241, 0, 241, 248, 0, 241, 10, 37, 0,
495 241, 10, 207, 37, 0, 20, 0, 10, 242, 37,
496 0, 6, 242, 0, 242, 248, 0, 242, 10, 37,
497 0, 242, 10, 207, 37, 0, 20, 0, 6, 243,
498 0, 243, 248, 0, 243, 10, 37, 0, 243, 10,
499 207, 37, 0, 227, 243, 0, 227, 241, 0, 227,
500 246, 0, 227, 246, 0, 66, 227, 246, 0, 249,
501 0, 0, 247, 0, 10, 247, 37, 0, 6, 247,
502 0, 6, 0, 248, 0, 247, 248, 0, 247, 10,
503 37, 0, 10, 207, 37, 0, 247, 10, 207, 37,
504 0, 11, 36, 0, 11, 188, 36, 0, 55, 27,
505 111, 27, 51, 27, 0, 252, 0, 27, 252, 0,
506 252, 27, 0, 27, 252, 27, 0, 250, 253, 251,
507 0, 27, 250, 253, 251, 0, 250, 253, 251, 27,
508 0, 27, 250, 253, 251, 27, 0, 11, 253, 36,
509 0, 11, 253, 36, 27, 0, 27, 11, 253, 36,
510 0, 27, 11, 253, 36, 27, 0, 12, 283, 0,
511 26, 283, 0, 27, 12, 283, 0, 27, 26, 283,
512 0, 22, 0, 34, 0, 23, 0, 35, 0, 264,
513 0, 14, 0, 39, 0, 0, 254, 0, 27, 0,
514 254, 255, 27, 0, 32, 0, 24, 0, 31, 257,
515 26, 288, 0, 0, 258, 0, 288, 0, 258, 32,
516 288, 0, 260, 0, 261, 0, 55, 261, 111, 261,
517 51, 261, 0, 262, 0, 261, 14, 261, 0, 263,
518 0, 278, 10, 259, 37, 0, 263, 39, 263, 0,
519 263, 33, 263, 0, 265, 0, 268, 266, 0, 268,
520 267, 0, 3, 0, 6, 0, 268, 0, 264, 265,
521 0, 264, 0, 266, 264, 0, 264, 268, 0, 267,
522 264, 268, 0, 273, 0, 269, 0, 269, 273, 0,
523 273, 269, 0, 273, 269, 273, 0, 270, 0, 270,
524 273, 0, 271, 31, 288, 0, 271, 0, 11, 272,
525 36, 31, 288, 0, 11, 272, 36, 0, 11, 36,
526 31, 288, 0, 11, 36, 0, 250, 272, 251, 0,
527 250, 251, 0, 260, 0, 272, 255, 260, 0, 10,
528 261, 37, 0, 285, 0, 290, 10, 274, 37, 0,
529 276, 0, 273, 275, 0, 273, 12, 283, 0, 273,
530 26, 283, 0, 273, 11, 36, 0, 273, 11, 274,
531 36, 0, 273, 31, 288, 0, 261, 0, 274, 32,
532 261, 0, 28, 0, 29, 0, 30, 0, 38, 0,
533 277, 0, 107, 0, 54, 10, 274, 37, 0, 114,
534 10, 44, 37, 0, 114, 10, 202, 37, 0, 108,
535 10, 260, 37, 0, 59, 10, 260, 32, 260, 37,
536 0, 108, 10, 227, 37, 0, 42, 0, 43, 0,
537 40, 0, 41, 0, 279, 0, 278, 279, 0, 0,
538 21, 280, 281, 0, 282, 0, 281, 32, 282, 0,
539 285, 31, 198, 0, 285, 31, 66, 198, 0, 25,
540 0, 20, 0, 25, 0, 25, 0, 283, 0, 283,
541 0, 283, 0, 283, 0, 283, 0
547 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
548 static const short yyrline[] =
550 0, 382, 382, 386, 387, 390, 391, 394, 395, 396,
551 399, 400, 403, 404, 405, 408, 414, 418, 420, 422,
552 424, 426, 428, 432, 436, 437, 440, 442, 446, 447,
553 450, 450, 454, 456, 458, 460, 464, 468, 470, 472,
554 476, 477, 480, 481, 482, 485, 485, 493, 493, 506,
555 506, 511, 515, 515, 515, 517, 517, 517, 520, 520,
556 520, 523, 523, 523, 527, 527, 527, 530, 532, 548,
557 550, 554, 555, 557, 560, 561, 564, 568, 570, 574,
558 576, 578, 580, 584, 585, 588, 590, 592, 595, 597,
559 600, 602, 605, 606, 607, 611, 612, 614, 616, 619,
560 621, 625, 626, 629, 631, 635, 636, 637, 640, 641,
561 644, 648, 649, 652, 653, 656, 657, 659, 662, 663,
562 666, 667, 670, 671, 672, 673, 676, 677, 680, 681,
563 682, 683, 684, 687, 688, 691, 692, 695, 696, 699,
564 700, 701, 704, 705, 708, 709, 710, 713, 714, 717,
565 722, 728, 736, 738, 740, 742, 746, 747, 750, 751,
566 752, 753, 754, 755, 756, 758, 762, 763, 764, 765,
567 768, 769, 772, 773, 776, 776, 785, 786, 790, 790,
568 794, 795, 798, 799, 800, 801, 802, 803, 804, 805,
569 806, 807, 815, 816, 821, 823, 829, 830, 831, 832,
570 833, 834, 835, 836, 837, 838, 839, 840, 841, 842,
571 843, 844, 845, 846, 847, 848, 849, 850, 851, 852,
572 853, 854, 855, 856, 857, 858, 859, 860, 861, 862,
573 863, 864, 867, 869, 871, 873, 875, 884, 885, 890,
574 891, 894, 894, 898, 898, 902, 904, 908, 909, 912,
575 913, 918, 921, 923, 927, 928, 931, 933, 937, 938,
576 948, 949, 952, 953, 954, 955, 956, 957, 960, 961,
577 962, 963, 964, 965, 974, 975, 976, 977, 978, 984,
578 985, 986, 996, 997, 998, 1003, 1004, 1007, 1008, 1009,
579 1010, 1011, 1012, 1013, 1014, 1017, 1018, 1021, 1023, 1025,
580 1027, 1029, 1032, 1034, 1036, 1038, 1040, 1042, 1050, 1052,
581 1054, 1057, 1060, 1063, 1068, 1069, 1072, 1073, 1076, 1077,
582 1078, 1081, 1082, 1085, 1086, 1089, 1090, 1093, 1096, 1097,
583 1100, 1101, 1104, 1107, 1113, 1115, 1116, 1119, 1120, 1125,
584 1127, 1131, 1132, 1133, 1136, 1137, 1140, 1141, 1144, 1145,
585 1148, 1149, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1161,
586 1162, 1165, 1168, 1170, 1174, 1178, 1179, 1182, 1183, 1186,
587 1188, 1190, 1192, 1193, 1195, 1197, 1199, 1202, 1204, 1208,
588 1209, 1212, 1213, 1214, 1215, 1218, 1219, 1220, 1221, 1222,
589 1223, 1228, 1234, 1244, 1245, 1246, 1247, 1250, 1252, 1256,
590 1256, 1263, 1264, 1267, 1268, 1271, 1272, 1275, 1276, 1277,
591 1278, 1279, 1280, 1281
596 #if (YYDEBUG) || defined YYERROR_VERBOSE
598 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
599 static const char *const yytname[] =
601 "$", "error", "$undefined.", "simpleOp", "PREFIX_OP", "POSTFIX_OP",
602 "LLT_MULOP", "LLT_SEMI", "LLT_VERTICALBAR", "ITERATION_OP", "LLT_LPAR",
603 "LLT_LBRACKET", "selectSym", "LLT_IF_THEN_ELSE", "logicalOp",
604 "eqSepSym", "equationSym", "commentSym", "LLT_WHITESPACE", "LLT_EOL",
605 "LLT_TYPEDEF_NAME", "quantifierSym", "openSym", "closeSym", "sepSym",
606 "simpleId", "mapSym", "markerSym", "preSym", "postSym", "anySym",
607 "LLT_COLON", "LLT_COMMA", "LLT_EQUALS", "LLT_LBRACE", "LLT_RBRACE",
608 "LLT_RBRACKET", "LLT_RPAR", "LLT_QUOTE", "eqOp", "LLT_CCHAR",
609 "LLT_CFLOAT", "LLT_CINTEGER", "LLT_LCSTRING", "LLT_ALL", "LLT_ANYTHING",
610 "LLT_BE", "LLT_BODY", "LLT_CLAIMS", "LLT_CHECKS", "LLT_CONSTANT",
611 "LLT_ELSE", "LLT_ENSURES", "LLT_FOR", "LLT_FRESH", "LLT_IF",
612 "LLT_IMMUTABLE", "LLT_IMPORTS", "LLT_CONSTRAINT", "LLT_ISSUB",
613 "LLT_LET", "LLT_MODIFIES", "LLT_MUTABLE", "LLT_NOTHING", "LLT_INTERNAL",
614 "LLT_FILESYS", "LLT_OBJ", "LLT_OUT", "LLT_SEF", "LLT_ONLY",
615 "LLT_PARTIAL", "LLT_OWNED", "LLT_DEPENDENT", "LLT_KEEP", "LLT_KEPT",
616 "LLT_TEMP", "LLT_SHARED", "LLT_UNIQUE", "LLT_UNUSED", "LLT_EXITS",
617 "LLT_MAYEXIT", "LLT_NEVEREXIT", "LLT_TRUEEXIT", "LLT_FALSEEXIT",
618 "LLT_UNDEF", "LLT_KILLED", "LLT_CHECKMOD", "LLT_CHECKED",
619 "LLT_UNCHECKED", "LLT_CHECKEDSTRICT", "LLT_TRUENULL", "LLT_FALSENULL",
620 "LLT_LNULL", "LLT_LNOTNULL", "LLT_RETURNED", "LLT_OBSERVER",
621 "LLT_EXPOSED", "LLT_REFCOUNTED", "LLT_REFS", "LLT_RELNULL",
622 "LLT_RELDEF", "LLT_KILLREF", "LLT_NULLTERMINATED", "LLT_TEMPREF",
623 "LLT_NEWREF", "LLT_PRIVATE", "LLT_REQUIRES", "LLT_RESULT", "LLT_SIZEOF",
624 "LLT_SPEC", "LLT_TAGGEDUNION", "LLT_THEN", "LLT_TYPE", "LLT_TYPEDEF",
625 "LLT_UNCHANGED", "LLT_USES", "LLT_CHAR", "LLT_CONST", "LLT_DOUBLE",
626 "LLT_ENUM", "LLT_FLOAT", "LLT_INT", "LLT_ITER", "LLT_YIELD", "LLT_LONG",
627 "LLT_SHORT", "LLT_SIGNED", "LLT_UNKNOWN", "LLT_STRUCT", "LLT_TELIPSIS",
628 "LLT_UNION", "LLT_UNSIGNED", "LLT_VOID", "LLT_VOLATILE",
629 "LLT_PRINTFLIKE", "LLT_SCANFLIKE", "LLT_MESSAGELIKE", "interface", "@1",
630 "externals", "external", "optDeclarations", "declarations",
631 "declaration", "imports", "uses", "export", "iter", "iterParamList",
632 "realIterParamList", "iterParam", "private", "@2", "private2",
633 "constDeclaration", "varDeclaration", "type", "special", "fcn", "@3",
634 "@4", "claim", "@5", "abstract", "@6", "@7", "@8", "@9", "@10", "@11",
635 "@12", "@13", "exposed", "@14", "@15", "importNameList", "importName",
636 "interfaceNameList", "interfaceName", "traitRefNodeList", "traitRef",
637 "traitIdList", "renaming", "nameList", "replaceNodeList", "replace",
638 "name", "initializer", "constLclExpr", "initDecls", "initDecl",
639 "globals", "globalDecl", "privateInits", "privateInit", "optLetDecl",
640 "beDeclList", "beDecl", "sortSpec", "optChecks", "optRequire",
641 "optModify", "storeRefList", "storeRef", "optEnsure", "optClaim",
642 "optParamList", "realParamList", "paramList", "optBody", "callExpr",
643 "stmt", "valueList", "value", "abstBody", "fcns", "optTypeInv",
644 "typeInv", "@16", "declaratorInvs", "declaratorInv", "@17",
645 "optExposedBody", "CType", "CTypes", "typeSpecifier",
646 "specialQualifier", "lclTypeSpec", "lclType", "pointers",
647 "structOrUnionSpec", "@18", "@19", "optTagId", "structDecls",
648 "structDecl", "declaratorList", "optCOMMA", "enumSpec",
649 "enumeratorList", "declarator", "notype_decl", "after_type_decl",
650 "parameter_decl", "param", "typeName", "optAbstDeclarator",
651 "abstDeclarator", "arrayQual", "opForm", "open", "close", "anyOp",
652 "middle", "placeList", "separator", "signature", "domain", "sortList",
653 "lclPredicate", "term", "term0", "equalityTerm", "simpleOpTerm",
654 "simpleOp2", "prefixOpTerm", "postfixOps", "infixOpPart", "secondary",
655 "bracketed", "sqBracketed", "matched", "args", "primary", "termList",
656 "stateFcn", "lclPrimary", "cLiteral", "quantifiers", "quantifier",
657 "@20", "quantifiedList", "quantified", "simpleIdOrTypedefName", "fcnId",
658 "varId", "tagId", "claimId", "sortId", "traitId", "opId", 0
662 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
663 static const short yyr1[] =
665 0, 138, 137, 139, 139, 140, 140, 141, 141, 141,
666 142, 142, 143, 143, 143, 144, 145, 146, 146, 146,
667 146, 146, 146, 147, 148, 148, 149, 149, 150, 150,
668 152, 151, 153, 153, 153, 153, 154, 155, 155, 155,
669 156, 156, 157, 157, 157, 159, 158, 160, 158, 162,
670 161, 161, 164, 165, 163, 166, 167, 163, 168, 169,
671 163, 170, 171, 163, 173, 174, 172, 172, 172, 175,
672 175, 176, 176, 176, 177, 177, 178, 179, 179, 180,
673 180, 180, 180, 181, 181, 182, 182, 182, 183, 183,
674 184, 184, 185, 185, 185, 186, 186, 187, 188, 189,
675 189, 190, 190, 191, 191, 192, 192, 192, 193, 193,
676 194, 195, 195, 196, 196, 197, 197, 198, 199, 199,
677 200, 200, 201, 201, 201, 201, 202, 202, 203, 203,
678 203, 203, 203, 204, 204, 205, 205, 206, 206, 207,
679 207, 207, 208, 208, 209, 209, 209, 210, 210, 210,
680 210, 210, 211, 211, 211, 211, 212, 212, 213, 213,
681 213, 213, 213, 213, 213, 213, 214, 214, 214, 214,
682 215, 215, 216, 216, 218, 217, 219, 219, 221, 220,
683 222, 222, 223, 223, 223, 223, 223, 223, 223, 223,
684 223, 223, 224, 224, 225, 225, 226, 226, 226, 226,
685 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
686 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
687 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
688 226, 226, 227, 227, 227, 227, 227, 228, 228, 229,
689 229, 231, 230, 232, 230, 230, 230, 233, 233, 234,
690 234, 235, 236, 236, 237, 237, 238, 238, 239, 239,
691 240, 240, 241, 241, 241, 241, 241, 241, 242, 242,
692 242, 242, 242, 242, 243, 243, 243, 243, 243, 244,
693 244, 244, 245, 245, 245, 246, 246, 247, 247, 247,
694 247, 247, 247, 247, 247, 248, 248, 249, 249, 249,
695 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
696 249, 249, 249, 249, 250, 250, 251, 251, 252, 252,
697 252, 253, 253, 254, 254, 255, 255, 256, 257, 257,
698 258, 258, 259, 260, 261, 261, 261, 262, 262, 262,
699 262, 263, 263, 263, 264, 264, 265, 265, 266, 266,
700 267, 267, 268, 268, 268, 268, 268, 268, 268, 269,
701 269, 270, 270, 270, 270, 271, 271, 272, 272, 273,
702 273, 273, 273, 273, 273, 273, 273, 273, 273, 274,
703 274, 275, 275, 275, 275, 276, 276, 276, 276, 276,
704 276, 276, 276, 277, 277, 277, 277, 278, 278, 280,
705 279, 281, 281, 282, 282, 283, 283, 284, 285, 286,
709 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
710 static const short yyr2[] =
712 0, 0, 3, 0, 2, 1, 1, 0, 2, 2,
713 0, 2, 1, 1, 1, 3, 3, 1, 1, 1,
714 1, 1, 1, 6, 0, 1, 1, 3, 2, 1,
715 0, 3, 1, 1, 1, 1, 4, 3, 4, 4,
716 1, 1, 1, 1, 1, 0, 13, 0, 14, 0,
717 13, 4, 0, 0, 6, 0, 0, 7, 0, 0,
718 7, 0, 0, 6, 0, 0, 6, 2, 2, 1,
719 3, 1, 3, 1, 1, 3, 1, 1, 3, 1,
720 4, 3, 6, 1, 3, 1, 1, 3, 1, 3,
721 1, 3, 3, 3, 4, 1, 1, 1, 1, 1,
722 3, 1, 3, 0, 2, 3, 2, 2, 0, 2,
723 4, 0, 3, 1, 3, 5, 3, 1, 0, 3,
724 0, 3, 0, 3, 3, 3, 1, 3, 1, 1,
725 2, 1, 1, 0, 3, 0, 3, 0, 1, 1,
726 1, 3, 1, 3, 0, 4, 5, 1, 3, 2,
727 3, 3, 4, 3, 5, 6, 1, 3, 1, 1,
728 2, 2, 3, 3, 3, 4, 1, 3, 4, 3,
729 0, 2, 0, 1, 0, 6, 1, 3, 0, 3,
730 0, 3, 1, 1, 1, 1, 1, 1, 1, 1,
731 1, 1, 1, 2, 1, 1, 1, 1, 1, 1,
732 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
733 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
734 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
735 1, 1, 1, 1, 1, 2, 5, 1, 2, 1,
736 2, 0, 6, 0, 6, 2, 2, 0, 1, 1,
737 2, 3, 1, 3, 0, 1, 6, 2, 1, 3,
738 1, 1, 1, 3, 2, 2, 3, 4, 1, 3,
739 2, 2, 3, 4, 1, 2, 2, 3, 4, 2,
740 2, 2, 2, 3, 1, 0, 1, 3, 2, 1,
741 1, 2, 3, 3, 4, 2, 3, 6, 1, 2,
742 2, 3, 3, 4, 4, 5, 3, 4, 4, 5,
743 2, 2, 3, 3, 1, 1, 1, 1, 1, 1,
744 1, 0, 1, 1, 3, 1, 1, 4, 0, 1,
745 1, 3, 1, 1, 6, 1, 3, 1, 4, 3,
746 3, 1, 2, 2, 1, 1, 1, 2, 1, 2,
747 2, 3, 1, 1, 2, 2, 3, 1, 2, 3,
748 1, 5, 3, 4, 2, 3, 2, 1, 3, 3,
749 1, 4, 1, 2, 3, 3, 3, 4, 3, 1,
750 3, 1, 1, 1, 1, 1, 1, 4, 4, 4,
751 4, 6, 4, 1, 1, 1, 1, 1, 2, 0,
752 3, 1, 3, 3, 4, 1, 1, 1, 1, 1,
756 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
757 doesn't specify something else to do. Zero means the default is an
759 static const short yydefact[] =
761 3, 1, 0, 0, 7, 4, 5, 6, 0, 406,
762 405, 73, 0, 69, 71, 76, 0, 0, 77, 412,
763 79, 0, 194, 0, 0, 61, 52, 196, 198, 199,
764 228, 200, 201, 202, 203, 210, 211, 212, 197, 205,
765 206, 209, 207, 208, 230, 231, 213, 214, 215, 216,
766 217, 224, 225, 226, 204, 227, 220, 221, 218, 219,
767 223, 229, 222, 30, 0, 183, 0, 184, 247, 185,
768 186, 0, 187, 188, 189, 191, 247, 247, 190, 182,
769 0, 42, 43, 44, 2, 10, 22, 10, 17, 18,
770 19, 0, 20, 21, 40, 41, 192, 195, 232, 0,
771 0, 233, 234, 0, 15, 0, 0, 83, 16, 0,
772 0, 220, 237, 0, 233, 234, 407, 410, 0, 0,
773 0, 0, 0, 0, 58, 0, 64, 0, 0, 409,
774 257, 408, 0, 241, 245, 243, 246, 0, 8, 9,
775 0, 193, 235, 0, 0, 268, 0, 99, 103, 261,
776 260, 262, 67, 68, 72, 70, 0, 81, 78, 344,
777 345, 321, 0, 319, 314, 0, 0, 315, 320, 0,
778 0, 0, 86, 85, 90, 285, 88, 284, 321, 298,
779 318, 239, 238, 0, 0, 137, 0, 101, 0, 0,
780 0, 0, 31, 32, 33, 34, 35, 0, 0, 0,
781 24, 0, 0, 0, 11, 14, 12, 13, 103, 264,
782 270, 0, 0, 37, 0, 0, 45, 0, 0, 265,
783 0, 271, 84, 0, 323, 0, 322, 310, 311, 321,
784 0, 0, 321, 299, 0, 285, 80, 0, 0, 289,
785 0, 282, 286, 290, 0, 0, 300, 240, 0, 51,
786 140, 0, 138, 139, 285, 142, 36, 62, 53, 0,
787 0, 65, 176, 178, 38, 258, 254, 0, 0, 25,
788 26, 29, 0, 0, 39, 47, 263, 269, 100, 0,
789 0, 399, 408, 395, 396, 393, 394, 0, 0, 0,
790 386, 0, 0, 102, 97, 0, 98, 333, 335, 337,
791 0, 341, 346, 353, 357, 360, 352, 372, 385, 0,
792 397, 413, 370, 0, 0, 0, 0, 104, 0, 266,
793 0, 295, 0, 272, 0, 0, 306, 326, 325, 0,
794 0, 312, 313, 0, 301, 0, 283, 87, 89, 91,
795 0, 288, 0, 0, 0, 291, 93, 92, 96, 95,
796 316, 317, 302, 236, 103, 0, 289, 0, 274, 280,
797 279, 281, 0, 0, 56, 59, 0, 0, 180, 255,
798 0, 28, 0, 0, 0, 0, 249, 0, 0, 0,
799 364, 367, 0, 0, 0, 0, 0, 0, 0, 366,
800 0, 0, 0, 0, 347, 346, 348, 342, 343, 354,
801 358, 0, 0, 0, 0, 381, 382, 383, 0, 384,
802 355, 373, 0, 398, 0, 106, 107, 108, 0, 267,
803 296, 273, 82, 307, 324, 308, 303, 0, 293, 287,
804 292, 0, 328, 94, 304, 49, 141, 143, 275, 289,
805 0, 276, 166, 170, 63, 54, 0, 0, 177, 66,
806 172, 179, 259, 256, 23, 27, 0, 252, 242, 250,
807 244, 108, 369, 0, 362, 0, 400, 401, 0, 379,
808 0, 0, 0, 194, 0, 0, 0, 131, 132, 0,
809 0, 126, 129, 128, 365, 336, 340, 339, 350, 349,
810 0, 411, 359, 376, 0, 374, 375, 378, 356, 0,
811 332, 0, 111, 105, 309, 305, 0, 294, 0, 329,
812 330, 0, 277, 0, 0, 0, 74, 0, 57, 60,
813 174, 0, 173, 251, 0, 111, 363, 0, 368, 0,
814 0, 0, 387, 0, 0, 392, 390, 388, 130, 0,
815 389, 351, 377, 338, 371, 0, 0, 109, 118, 297,
816 0, 0, 111, 278, 169, 0, 0, 167, 171, 0,
817 0, 181, 253, 118, 361, 402, 0, 403, 117, 380,
818 0, 0, 127, 0, 113, 0, 0, 0, 120, 327,
819 331, 120, 75, 168, 103, 0, 120, 404, 334, 391,
820 112, 0, 0, 0, 0, 0, 0, 122, 144, 0,
821 122, 114, 0, 116, 110, 119, 0, 0, 133, 0,
822 133, 0, 133, 0, 121, 0, 0, 0, 0, 135,
823 0, 0, 175, 135, 115, 124, 123, 125, 0, 0,
824 0, 0, 408, 0, 147, 0, 0, 50, 0, 134,
825 0, 46, 0, 149, 0, 0, 145, 0, 0, 48,
826 136, 0, 148, 146, 151, 150, 0, 0, 153, 0,
827 156, 158, 0, 159, 407, 0, 160, 0, 0, 152,
828 161, 0, 0, 163, 157, 162, 164, 0, 154, 0,
832 static const short yydefgoto[] =
834 682, 4, 1, 5, 84, 138, 204, 6, 205, 206,
835 86, 268, 269, 270, 207, 125, 192, 88, 89, 90,
836 91, 92, 316, 378, 93, 511, 94, 122, 363, 123,
837 446, 191, 447, 121, 362, 95, 197, 367, 12, 13,
838 515, 14, 17, 18, 106, 171, 172, 173, 174, 346,
839 293, 294, 146, 147, 216, 317, 502, 547, 548, 573,
840 574, 567, 578, 597, 608, 480, 481, 619, 630, 251,
841 342, 253, 610, 654, 634, 659, 660, 444, 517, 521,
842 522, 560, 261, 262, 368, 451, 96, 97, 98, 99,
843 254, 482, 182, 114, 201, 202, 128, 375, 376, 456,
844 370, 115, 266, 187, 149, 150, 360, 255, 176, 241,
845 242, 243, 177, 295, 352, 179, 225, 226, 465, 433,
846 508, 509, 499, 500, 297, 298, 299, 300, 301, 397,
847 398, 302, 303, 304, 305, 382, 306, 470, 411, 307,
848 308, 309, 310, 383, 466, 467, 311, 662, 312, 130,
852 static const short yypact[] =
854 -32768, -25, 136, 368, 1350,-32768,-32768,-32768, 181,-32768,
855 -32768,-32768, 94,-32768,-32768,-32768, 181, 110,-32768,-32768,
856 33, 2903,-32768, 182, 2903,-32768, 17,-32768,-32768,-32768,
857 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
858 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
859 -32768,-32768,-32768,-32768,-32768,-32768, -11,-32768,-32768,-32768,
860 -32768,-32768,-32768,-32768, 2903,-32768, 2903,-32768, 181,-32768,
861 -32768, 108,-32768,-32768,-32768,-32768, 181, 181,-32768,-32768,
862 2903,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
863 -32768, 2903,-32768,-32768,-32768,-32768,-32768, 399,-32768, 2903,
864 408, 155, 192, 205,-32768, 136, 204,-32768,-32768, 368,
865 1152,-32768, 233, 223,-32768,-32768, 266,-32768, 181, 305,
866 408, 211, 235, 264,-32768, 1445,-32768, 408, 339,-32768,
867 347,-32768, 377,-32768, 347,-32768, 347, 408, 1247, 1247,
868 408,-32768,-32768, 408, 408,-32768, 196,-32768, 259, 322,
869 409,-32768,-32768,-32768,-32768,-32768, 181, 387,-32768,-32768,
870 -32768, 386, 181,-32768,-32768, 181, 534,-32768,-32768, 403,
871 2903, 410, 445, 453,-32768, 360, 439,-32768, 386, 474,
872 -32768,-32768, 496, 2903, 497, 2319, 239, 470, 486, 492,
873 401, 404,-32768,-32768,-32768,-32768,-32768, 408, 282, 493,
874 2414, 488, 494, 288,-32768,-32768,-32768,-32768,-32768, 322,
875 409, 121, 141,-32768, 408, 3200, 1836, 1933, 3059,-32768,
876 2030,-32768,-32768, 1152,-32768, 499, 122,-32768,-32768, 386,
877 181, 181, 386, 502, 421, 360,-32768, 1152, 1152, 360,
878 1741,-32768, 454,-32768, 328, 80,-32768,-32768, 525,-32768,
879 -32768, 504,-32768, 507, 380,-32768,-32768,-32768,-32768, 522,
880 524, 515,-32768,-32768,-32768,-32768, 518, 2903, 514, 520,
881 -32768,-32768, 2903, 2903,-32768, 1836,-32768,-32768,-32768, 3200,
882 3109,-32768, 266,-32768,-32768,-32768,-32768, 544, 3200, 545,
883 -32768, 549, 551,-32768,-32768, 3033,-32768, 550,-32768, 114,
884 3226,-32768, 374, 382, 382, 535, 193,-32768,-32768, 273,
885 -32768,-32768,-32768, 555, 560, 562, 536,-32768, 408,-32768,
886 537,-32768, 539,-32768, 540, 541, 552,-32768,-32768, 553,
887 547,-32768,-32768, 80,-32768, 554,-32768, 453, 439,-32768,
888 439, 454, 548, 177, 2127,-32768, 556,-32768,-32768,-32768,
889 -32768,-32768, 557,-32768,-32768, 2509, 380, 1644,-32768, 322,
890 469,-32768, 47, 47,-32768,-32768, 408, 564, 538, 561,
891 559,-32768, 569, 2414, 408, 2611,-32768, 2713, 558, 36,
892 565,-32768, 293, 108, 3200, 10, 3200, 1022, 762,-32768,
893 220, 3200, 3226, 3226,-32768,-32768, 268, 374, 374, 275,
894 275, 181, 3150, 181, 181,-32768,-32768,-32768, 181,-32768,
895 382,-32768, 3200,-32768, 3200,-32768,-32768,-32768, 314,-32768,
896 -32768,-32768,-32768,-32768,-32768, 563, 568, 566,-32768,-32768,
897 -32768, 573, 181,-32768,-32768, 1836,-32768,-32768, 469, 354,
898 2224,-32768,-32768, 165,-32768,-32768, 47, 47,-32768,-32768,
899 530,-32768,-32768,-32768,-32768,-32768, 317,-32768,-32768,-32768,
900 -32768,-32768,-32768, 181, 567, 3200, 570,-32768, 572, 550,
901 362, 3200, 579, 581, 575, 577, 578,-32768,-32768, 2903,
902 384,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
903 268,-32768,-32768,-32768, 157,-32768,-32768,-32768, 275, 583,
904 -32768, 397, -8,-32768,-32768,-32768, 574,-32768, 590, 591,
905 -32768, 571,-32768, 587, 592, 363,-32768, 1547,-32768,-32768,
906 -32768, 594,-32768,-32768, 408, -8,-32768, 181,-32768, 108,
907 2808, 3200,-32768, 28, 3200,-32768,-32768,-32768,-32768, 892,
908 -32768,-32768,-32768,-32768,-32768, 108, 2903,-32768, 582,-32768,
909 181, 181, 576,-32768,-32768, 181, 593,-32768,-32768, 408,
910 605,-32768,-32768, 582,-32768,-32768, 2903,-32768,-32768, 550,
911 3200, 600,-32768, 331,-32768, 103, 408, 3200, 521,-32768,
912 -32768, 521,-32768,-32768,-32768, 629, 521,-32768, 550,-32768,
913 -32768, 108, 2903, 3200, 336, 634, 3200, 584, 597, 3200,
914 584,-32768, 601,-32768,-32768,-32768, 639, 632, 596, 615,
915 596, 613, 596, 3200,-32768, 644, 648, 337, 3200, 608,
916 49, 623,-32768, 608,-32768,-32768,-32768,-32768, 652, 3200,
917 625, 49, 651, 50,-32768, 653, 631,-32768, 627,-32768,
918 658,-32768, 63,-32768, 272, 49,-32768, 208, 642,-32768,
919 -32768, 49,-32768,-32768, 660,-32768, 222, 222,-32768, 419,
920 666,-32768, 661,-32768,-32768, 668,-32768, 41, 222,-32768,
921 316, 432, 468,-32768, 666,-32768,-32768, 426,-32768, 430,
922 -32768,-32768, 670, 676,-32768
925 static const short yypgoto[] =
927 -32768,-32768,-32768,-32768,-32768, 595,-32768,-32768, 678, 677,
928 -32768,-32768,-32768, 307, 679,-32768,-32768, 610, 612, 616,
929 -32768, -121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
930 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 580,
931 -32768, -6,-32768, 585,-32768, 461,-32768, 451, 452,-32768,
932 -32768, 471, -108, 478, -188,-32768, 232,-32768, -458,-32768,
933 127, -473, 175, -169, 142, 137, 206, -206, 120,-32768,
934 -180,-32768,-32768, -507,-32768, -190, -230, -318,-32768,-32768,
935 -32768,-32768,-32768, 381,-32768,-32768, -89,-32768,-32768,-32768,
936 -3, -18,-32768, 32,-32768,-32768, 407, 476, 68,-32768,
937 -32768, 56,-32768, -93, -127, 344, 398, -187, 257, -182,
938 -213, -101, 511, 30, -267, 603, -137,-32768, 586,-32768,
939 -32768,-32768, -531, -204, -254,-32768, 105, -46, 466,-32768,
940 -32768, -278, 455,-32768,-32768, 472, -265, -205,-32768,-32768,
941 -372,-32768, -303,-32768,-32768, 242, 7, -23, -38, 423,
949 static const short yytable[] =
951 118, 100, 103, 113, 196, 252, 413, 148, 141, 15,
952 19, 296, 186, 271, 296, 15, 209, 211, 112, 198,
953 275, 120, 395, 19, 391, 379, 341, 343, 389, 203,
954 117, 497, 2, 132, 385, 107, 101, 320, 399, 400,
955 324, 245, 391, 110, 670, 445, 595, 208, 219, 221,
956 391, 124, 545, 336, 442, 510, 643, 644, 645, 631,
957 102, 126, 151, 127, 180, 606, 426, 563, 611, 643,
958 651, 645, 361, 462, 632, 129, 381, 137, 673, 570,
959 371, 443, 151, 129, 129, 646, 526, 628, 140, 151,
960 3, 381, 330, 587, 581, 333, 142, 546, 640, 151,
961 652, 104, 151, 350, 263, 151, 151, 175, 219, 221,
962 219, 221, 15, 633, -55, 351, 19, 108, 488, 602,
963 180, 471, 100, 484, 642, 117, 105, 359, 518, 519,
964 469, 217, 218, 131, 592, 100, 100, 485, 655, 8,
965 178, 345, 109, 341, 343, 498, 327, 392, 469, 593,
966 564, 220, 218, 393, 328, 347, 9, 101, 276, 151,
967 469, 10, 152, 19, 431, 248, 435, 235, 437, 227,
968 101, 101, 228, 579, 580, 222, 151, 180, 277, 11,
969 112, 102, 472, 475, 483, 9, 271, 344, 218, 531,
970 10, 180, 180, 542, 102, 102, 232, 494, 180, 153,
971 514, 9, 9, 213, 402, 403, 10, 116, 154, 501,
972 418, 656, 541, 318, 429, 164, 151, 533, 657, 404,
973 175, 405, 406, 407, 408, 656, 341, 167, 214, 209,
974 211, 409, 657, 632, 175, 175, 156, 331, 332, 181,
975 345, 157, 345, 350, 327, 658, 256, 632, 283, 284,
976 285, 286, 328, 178, 183, 351, 396, 585, 219, 441,
977 513, 528, 283, 284, 285, 286, -101, 178, 178, 374,
978 374, 214, 318, 263, 178, 661, -405, 569, 279, 280,
979 151, 457, 631, 412, 661, 661, 402, 403, 9, 264,
980 164, -101, 215, 282, 281, 274, 661, 632, 661, 661,
981 661, 404, 167, 405, 406, 407, 408, 653, 283, 284,
982 285, 286, 209, 409, 214, 185, 588, 327, 151, 151,
983 214, 503, 287, 188, 523, 328, 657, 289, 151, 464,
984 571, 159, 217, 218, 160, 483, 151, 441, 590, 161,
985 162, 632, 163, 604, 627, 468, 214, 189, 9, 524,
986 164, 489, 490, 10, 165, 166, 283, 284, 285, 286,
987 439, 190, 167, 591, 357, 218, 239, 168, 214, 539,
988 240, 218, 374, 199, 374, 290, 291, 159, 16, 131,
989 160, -248, 292, 169, 474, 112, 356, 200, 9, 603,
990 357, 218, 279, 10, 531, 555, 558, 223, 556, 532,
991 358, 151, 9, 483, 621, 131, 623, 282, 491, 624,
992 495, 496, 598, 224, 143, 491, 539, 600, 144, 220,
993 218, 540, 283, 284, 285, 286, 666, 667, 145, 531,
994 234, 562, 318, 131, 544, 656, 287, 516, 674, 491,
995 675, 289, 657, 459, 65, 459, 67, 236, 69, 70,
996 15, 668, 72, 73, 74, 75, 669, 632, 668, 78,
997 79, 538, 668, 680, 344, 218, 584, 681, 594, 676,
998 491, 656, 283, 284, 285, 286, 112, 237, 657, 440,
999 218, 677, 679, 133, 135, 238, 151, 210, 212, 290,
1000 291, 468, 244, 632, 338, 340, 292, 486, 487, 134,
1001 136, 246, 247, 215, 249, 678, 257, 575, 283, 284,
1002 285, 286, 258, 259, 559, 65, 260, 67, 265, 69,
1003 70, 151, 272, 72, 73, 74, 75, 568, 273, 334,
1004 78, 79, 335, 353, 491, 326, 112, 159, 151, 355,
1005 160, 354, 364, 576, 365, 229, 230, 366, 163, 582,
1006 369, 372, 373, 575, 384, 386, 164, 491, 491, 387,
1007 231, 388, 15, 568, 391, 414, 401, 415, 167, 416,
1008 417, 449, 450, 168, 419, 420, 454, 421, 422, 423,
1009 424, 427, 636, 425, 434, 428, 452, 432, 520, 568,
1010 504, -406, 461, 636, 453, 505, 463, 635, 527, 554,
1011 583, 549, 529, 530, 112, 552, 636, 636, 635, 663,
1012 507, 534, 535, 636, 536, 537, 550, 506, 663, 663,
1013 543, 635, 635, 551, 553, 665, 281, 596, 635, 561,
1014 663, 577, 663, 663, 663, 159, 545, 589, 160, 599,
1015 21, 605, 279, 280, 609, 607, 614, 613, 618, 620,
1016 622, 625, 473, 281, 164, 626, 629, 282, 637, 639,
1017 641, -407, 649, 647, 648, 650, 167, 664, 645, 670,
1018 683, 671, 283, 284, 285, 286, 684, 615, 672, 7,
1019 455, 85, 139, 87, 325, 155, 287, 288, 337, 322,
1020 339, 289, 278, 525, 158, 616, 477, 478, 479, 27,
1021 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1022 38, 39, 40, 41, 42, 43, 44, 45, 601, 46,
1023 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1024 57, 58, 59, 60, 61, 193, 62, 194, 586, 290,
1025 291, 195, 612, 638, 617, 572, 292, 448, 65, 377,
1026 67, 68, 69, 70, 438, 348, 72, 73, 74, 75,
1027 76, 410, 77, 78, 79, 159, 394, 390, 160, 233,
1028 21, 565, 279, 280, 184, 349, 0, 0, 0, 0,
1029 0, 0, 473, 281, 164, 0, 0, 282, 0, 0,
1030 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1031 0, 0, 283, 284, 285, 286, 476, 0, 0, 0,
1032 0, 0, 329, 0, 0, 0, 287, 288, 0, 0,
1033 0, 289, 0, 0, 0, 0, 477, 478, 479, 27,
1034 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1035 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1036 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1037 57, 58, 59, 60, 61, 0, 62, 0, 0, 290,
1038 291, 0, 0, 0, 0, 0, 292, 0, 65, 0,
1039 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1040 76, 0, 77, 78, 79, 159, 0, 0, 160, 0,
1041 21, 0, 279, 280, 0, 0, 0, 0, 0, 0,
1042 0, 0, 473, 281, 164, 0, 0, 282, 0, 0,
1043 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1044 0, 0, 283, 284, 285, 286, 0, 0, 0, 0,
1045 0, 0, 0, 0, 0, 0, 287, 288, 0, 0,
1046 0, 289, 0, 0, 0, 0, 477, 478, 479, 27,
1047 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1048 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1049 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1050 57, 58, 59, 60, 61, 0, 62, 0, 0, 290,
1051 291, 0, 0, 0, 0, 0, 292, 0, 65, 0,
1052 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1053 76, 0, 77, 78, 79, 159, 0, 0, 160, 0,
1054 21, 0, 279, 280, 0, 0, 0, 0, 0, 0,
1055 0, 0, 473, 281, 164, 0, 0, 282, 0, 0,
1056 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1057 0, 0, 283, 284, 285, 286, 0, 0, 0, 0,
1058 0, 0, 0, 0, 0, 0, 287, 288, 0, 0,
1059 0, 289, 0, 0, 0, 0, 0, 0, 0, 27,
1060 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1061 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1062 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1063 57, 58, 59, 60, 61, 0, 62, 0, 0, 290,
1064 291, 0, 0, 0, 0, 0, 292, 0, 65, 0,
1065 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1066 76, 0, 77, 78, 79, 159, 0, 0, 160, 0,
1067 21, 0, 0, 161, 162, 0, 163, 0, 0, 0,
1068 0, 0, 22, 0, 164, 0, 0, 0, 165, 166,
1069 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1070 0, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1071 0, 0, 0, 0, 0, 0, 0, 169, 0, 0,
1072 0, 0, 0, 0, 0, 0, 0, 0, 170, 27,
1073 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1074 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1075 47, 48, 49, 50, 51, 52, 53, 54, 55, 111,
1076 57, 58, 59, 60, 61, 21, 62, 0, 0, 0,
1077 0, 0, 0, 0, 0, 0, 0, 22, 65, 0,
1078 67, 68, 69, 70, 0, 0, 72, 73, 74, 75,
1079 76, 0, 77, 78, 79, 0, 0, 0, 0, 0,
1080 0, 0, 0, 0, 0, 23, 0, 24, 0, 0,
1081 0, 0, 0, 25, 0, 0, 0, 0, 0, 26,
1082 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1083 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1084 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1085 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1086 0, 62, 0, 0, 0, 0, 63, 0, 21, 0,
1087 64, 0, 3, 65, 66, 67, 68, 69, 70, 71,
1088 22, 72, 73, 74, 75, 76, 0, 77, 78, 79,
1089 80, 81, 82, 83, 0, 0, 0, 0, 0, 0,
1090 0, 0, 0, 0, 0, 0, 0, 0, 23, 0,
1091 24, 0, 0, 0, 0, 0, 25, 0, 0, 0,
1092 0, 0, 26, 0, 0, 0, 0, 27, 28, 29,
1093 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1094 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1095 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1096 59, 60, 61, 21, 62, 0, 0, 0, 0, 63,
1097 0, 0, 0, 64, 0, 22, 65, 66, 67, 68,
1098 69, 70, 71, 0, 72, 73, 74, 75, 76, 0,
1099 77, 78, 79, 80, 81, 82, 83, 0, 0, 0,
1100 0, 0, 0, 0, 0, 24, 0, 0, 0, 0,
1101 0, 25, 0, 0, 0, 0, 0, 26, 0, 0,
1102 0, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1103 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1104 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1105 54, 55, 56, 57, 58, 59, 60, 61, 0, 62,
1106 0, 0, 0, 0, 0, 21, 0, 0, 64, 0,
1107 0, 65, 66, 67, 68, 69, 70, 22, 0, 72,
1108 73, 74, 75, 76, 0, 77, 78, 79, 80, 81,
1109 82, 83, 557, 0, 0, 0, 0, 0, 0, 0,
1110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1112 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1113 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1114 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1115 52, 53, 54, 55, 111, 57, 58, 59, 60, 61,
1116 439, 62, 21, 0, 357, 218, 0, 0, 0, 0,
1117 0, 0, 0, 65, 22, 67, 68, 69, 70, 131,
1118 0, 72, 73, 74, 75, 76, 0, 77, 78, 79,
1119 0, 81, 82, 83, 0, 0, 0, 0, 0, 0,
1120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1122 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1123 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1124 0, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1125 55, 111, 57, 58, 59, 60, 61, 239, 62, 21,
1126 0, 240, 218, 0, 0, 0, 0, 0, 0, 0,
1127 65, 22, 67, 68, 69, 70, 0, 0, 72, 73,
1128 74, 75, 76, 250, 77, 78, 79, 0, 0, 0,
1129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1130 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1131 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1132 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1133 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1134 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1135 58, 59, 60, 61, 21, 62, 0, 0, 0, 0,
1136 0, 0, 0, 0, 0, 0, 22, 65, 0, 67,
1137 68, 69, 70, 0, 0, 72, 73, 74, 75, 76,
1138 250, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1141 314, 315, 0, 27, 28, 29, 30, 31, 32, 33,
1142 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1143 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1144 53, 54, 55, 111, 57, 58, 59, 60, 61, 0,
1145 62, 21, 0, 0, 0, 0, 0, 0, 0, 0,
1146 0, 0, 65, 22, 67, 68, 69, 70, 0, 0,
1147 72, 73, 74, 75, 76, 0, 77, 78, 79, 0,
1148 319, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1151 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1152 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1153 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1154 111, 57, 58, 59, 60, 61, 0, 62, 21, 0,
1155 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
1156 22, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1157 75, 76, 250, 77, 78, 79, 0, 323, 0, 0,
1158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1160 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1161 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1162 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1163 49, 50, 51, 52, 53, 54, 55, 111, 57, 58,
1164 59, 60, 61, 0, 62, 21, 0, 0, 0, 0,
1165 0, 0, 0, 0, 0, 0, 65, 22, 67, 68,
1166 69, 70, 0, 0, 72, 73, 74, 75, 76, 250,
1167 77, 78, 79, 0, 430, 0, 0, 0, 0, 0,
1168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1170 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1171 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1172 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1173 52, 53, 54, 55, 111, 57, 58, 59, 60, 61,
1174 0, 62, 21, 0, 0, 0, 0, 0, 0, 0,
1175 0, 0, 0, 65, 22, 67, 68, 69, 70, 0,
1176 0, 72, 73, 74, 75, 76, 250, 77, 78, 79,
1177 0, 512, 0, 0, 0, 0, 0, 0, 0, 0,
1178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1180 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1181 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1182 0, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1183 55, 111, 57, 58, 59, 60, 61, 21, 62, 0,
1184 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
1185 65, 0, 67, 68, 69, 70, 0, 0, 72, 73,
1186 74, 75, 76, 250, 77, 78, 79, 0, 0, 0,
1187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1188 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1189 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1190 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1191 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1192 50, 51, 52, 53, 54, 55, 111, 57, 58, 59,
1193 60, 61, 21, 62, 0, 0, 0, 0, 0, 0,
1194 0, 0, 0, 0, 22, 65, 0, 67, 68, 69,
1195 70, 0, 0, 72, 73, 74, 75, 76, 250, 77,
1196 78, 79, 0, 0, 0, 0, 0, 0, 0, 0,
1197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1199 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1200 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1201 0, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1202 55, 111, 57, 58, 59, 60, 61, 21, 62, 0,
1203 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
1204 65, 0, 67, 68, 69, 70, 0, 267, 72, 73,
1205 74, 75, 76, 0, 77, 78, 79, 0, 0, 0,
1206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1208 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1209 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1210 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1211 50, 51, 52, 53, 54, 55, 111, 57, 58, 59,
1212 60, 61, 0, 62, 0, 0, 0, 0, 0, 21,
1213 0, 0, 0, 0, 0, 65, 0, 67, 68, 69,
1214 70, 22, 0, 72, 73, 74, 75, 76, 436, 77,
1215 78, 79, 0, 0, 0, 0, 458, 0, 0, 0,
1216 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1218 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1219 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1220 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1221 48, 49, 50, 51, 52, 53, 54, 55, 111, 57,
1222 58, 59, 60, 61, 0, 62, 0, 0, 0, 0,
1223 0, 21, 0, 0, 0, 0, 0, 65, 0, 67,
1224 68, 69, 70, 22, 0, 72, 73, 74, 75, 76,
1225 0, 77, 78, 79, 0, 0, 0, 0, 460, 0,
1226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1229 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1230 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1231 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1232 111, 57, 58, 59, 60, 61, 21, 62, 0, 0,
1233 0, 0, 0, 0, 0, 0, 0, 0, 22, 65,
1234 0, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1235 75, 76, 0, 77, 78, 79, 0, 0, 0, 0,
1236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1238 0, 0, 0, 0, 566, 27, 28, 29, 30, 31,
1239 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1240 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1241 51, 52, 53, 54, 55, 111, 57, 58, 59, 60,
1242 61, 21, 62, 0, 0, 0, 0, 0, 0, 0,
1243 0, 0, 0, 22, 65, 0, 67, 68, 69, 70,
1244 0, 0, 72, 73, 74, 75, 76, 0, 77, 78,
1245 79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1248 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1249 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1250 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1251 111, 57, 58, 59, 60, 61, 0, 62, 0, 0,
1252 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
1253 0, 67, 68, 69, 70, 0, 0, 72, 73, 74,
1254 75, 76, 0, 77, 78, 79, 159, 0, 0, 160,
1255 0, 0, 0, 279, 280, 0, 0, 0, 0, 0,
1256 0, 0, 0, 9, 281, 164, 350, 0, 282, 0,
1257 0, 0, 159, 0, 0, 160, 0, 167, 351, 279,
1258 280, 0, 0, 283, 284, 285, 286, 0, 0, 9,
1259 281, 164, 0, 0, 282, 0, 0, 287, 288, 0,
1260 0, 0, 289, 167, 0, 321, 0, 0, 0, 283,
1261 284, 285, 286, 0, 0, 0, 0, 0, 0, 0,
1262 0, 0, 159, 287, 288, 160, 0, 0, 289, 279,
1263 280, 0, 0, 0, 0, 0, 0, 0, 0, 9,
1264 281, 164, 0, 0, 282, 0, 0, 0, 0, 0,
1265 290, 291, 0, 167, 0, 380, 0, 292, 0, 283,
1266 284, 285, 286, 159, 0, 0, 160, 0, 0, 0,
1267 279, 280, 0, 287, 288, 0, 290, 291, 289, 0,
1268 9, 281, 164, 292, 0, 282, 0, 0, 0, 0,
1269 0, 0, 0, 0, 167, 0, 493, 0, 0, 0,
1270 283, 284, 285, 286, 0, 0, 0, 0, 0, 0,
1271 0, 0, 0, 159, 287, 288, 160, 0, 0, 289,
1272 279, 280, 0, 0, 0, 0, 290, 291, 0, 0,
1273 9, 281, 164, 292, 0, 282, 0, 0, 0, 159,
1274 0, 0, 160, 0, 167, 0, 279, 280, 0, 0,
1275 283, 284, 285, 286, 0, 0, 9, 0, 164, 0,
1276 0, 282, 0, 0, 287, 288, 0, 290, 291, 289,
1277 167, 0, 0, 0, 292, 0, 283, 284, 285, 286,
1278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1279 287, 0, 0, 0, 0, 289, 0, 0, 0, 0,
1280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1281 0, 0, 0, 0, 0, 0, 0, 290, 291, 0,
1282 0, 0, 0, 0, 292, 0, 0, 0, 0, 0,
1283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1284 0, 0, 0, 290, 291, 0, 0, 0, 0, 0,
1288 static const short yycheck[] =
1290 23, 4, 8, 21, 125, 185, 309, 100, 97, 2,
1291 3, 215, 120, 200, 218, 8, 143, 144, 21, 127,
1292 208, 24, 300, 16, 14, 279, 239, 240, 295, 137,
1293 23, 408, 57, 71, 288, 16, 4, 217, 303, 304,
1294 220, 178, 14, 10, 3, 363, 577, 140, 149, 150,
1295 14, 62, 60, 235, 7, 432, 6, 7, 8, 10,
1296 4, 64, 100, 66, 110, 596, 333, 525, 599, 6,
1297 7, 8, 254, 37, 25, 68, 280, 80, 37, 51,
1298 267, 34, 120, 76, 77, 35, 463, 618, 91, 127,
1299 115, 295, 229, 566, 552, 232, 99, 105, 629, 137,
1300 37, 7, 140, 23, 197, 143, 144, 110, 209, 210,
1301 211, 212, 105, 620, 97, 35, 109, 7, 396, 592,
1302 166, 111, 125, 390, 631, 118, 32, 254, 446, 447,
1303 384, 10, 11, 25, 31, 138, 139, 391, 645, 3,
1304 110, 242, 32, 356, 357, 410, 24, 33, 402, 46,
1305 527, 10, 11, 39, 32, 244, 20, 125, 37, 197,
1306 414, 25, 7, 156, 344, 183, 354, 170, 355, 162,
1307 138, 139, 165, 550, 551, 156, 214, 223, 37, 43,
1308 183, 125, 386, 387, 388, 20, 373, 10, 11, 32,
1309 25, 237, 238, 36, 138, 139, 166, 402, 244, 7,
1310 35, 20, 20, 7, 11, 12, 25, 25, 3, 414,
1311 318, 3, 490, 216, 37, 22, 254, 471, 10, 26,
1312 223, 28, 29, 30, 31, 3, 439, 34, 32, 356,
1313 357, 38, 10, 25, 237, 238, 32, 230, 231, 6,
1314 341, 37, 343, 23, 24, 37, 7, 25, 40, 41,
1315 42, 43, 32, 223, 31, 35, 302, 560, 359, 360,
1316 440, 465, 40, 41, 42, 43, 7, 237, 238, 272,
1317 273, 32, 275, 366, 244, 647, 10, 531, 10, 11,
1318 318, 374, 10, 10, 656, 657, 11, 12, 20, 7,
1319 22, 32, 33, 25, 21, 7, 668, 25, 670, 671,
1320 672, 26, 34, 28, 29, 30, 31, 35, 40, 41,
1321 42, 43, 439, 38, 32, 10, 570, 24, 356, 357,
1322 32, 7, 54, 112, 7, 32, 10, 59, 366, 36,
1323 534, 3, 10, 11, 6, 539, 374, 438, 7, 11,
1324 12, 25, 14, 7, 7, 383, 32, 112, 20, 32,
1325 22, 397, 398, 25, 26, 27, 40, 41, 42, 43,
1326 6, 97, 34, 32, 10, 11, 6, 39, 32, 32,
1327 10, 11, 375, 34, 377, 107, 108, 3, 10, 25,
1328 6, 34, 114, 55, 387, 388, 6, 10, 20, 593,
1329 10, 11, 10, 25, 32, 32, 517, 10, 35, 37,
1330 20, 439, 20, 607, 610, 25, 612, 25, 401, 613,
1331 403, 404, 581, 27, 6, 408, 32, 586, 10, 10,
1332 11, 37, 40, 41, 42, 43, 656, 657, 20, 32,
1333 27, 524, 435, 25, 37, 3, 54, 443, 668, 432,
1334 670, 59, 10, 375, 116, 377, 118, 37, 120, 121,
1335 443, 32, 124, 125, 126, 127, 37, 25, 32, 131,
1336 132, 479, 32, 37, 10, 11, 559, 37, 576, 37,
1337 463, 3, 40, 41, 42, 43, 479, 32, 10, 10,
1338 11, 671, 672, 76, 77, 32, 524, 143, 144, 107,
1339 108, 529, 53, 25, 237, 238, 114, 392, 393, 76,
1340 77, 27, 6, 33, 7, 37, 20, 545, 40, 41,
1341 42, 43, 20, 112, 517, 116, 112, 118, 25, 120,
1342 121, 559, 34, 124, 125, 126, 127, 530, 34, 27,
1343 131, 132, 111, 8, 527, 36, 539, 3, 576, 32,
1344 6, 37, 20, 546, 20, 11, 12, 32, 14, 555,
1345 32, 37, 32, 591, 10, 10, 22, 550, 551, 10,
1346 26, 10, 555, 566, 14, 10, 31, 7, 34, 7,
1347 34, 7, 34, 39, 37, 36, 7, 37, 37, 27,
1348 27, 27, 620, 36, 27, 37, 25, 31, 58, 592,
1349 27, 10, 34, 631, 35, 27, 31, 620, 31, 7,
1350 7, 27, 32, 31, 607, 34, 644, 645, 631, 647,
1351 37, 32, 37, 651, 37, 37, 26, 51, 656, 657,
1352 37, 644, 645, 32, 37, 648, 21, 106, 651, 35,
1353 668, 49, 670, 671, 672, 3, 60, 37, 6, 10,
1354 8, 7, 10, 11, 47, 61, 7, 46, 52, 34,
1355 37, 7, 20, 21, 22, 7, 48, 25, 35, 7,
1356 35, 10, 35, 10, 33, 7, 34, 25, 8, 3,
1357 0, 10, 40, 41, 42, 43, 0, 45, 10, 1,
1358 373, 4, 87, 4, 223, 105, 54, 55, 237, 218,
1359 238, 59, 214, 461, 109, 63, 64, 65, 66, 67,
1360 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1361 78, 79, 80, 81, 82, 83, 84, 85, 591, 87,
1362 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1363 98, 99, 100, 101, 102, 125, 104, 125, 563, 107,
1364 108, 125, 600, 623, 607, 539, 114, 366, 116, 273,
1365 118, 119, 120, 121, 356, 244, 124, 125, 126, 127,
1366 128, 306, 130, 131, 132, 3, 300, 295, 6, 166,
1367 8, 529, 10, 11, 118, 244, -1, -1, -1, -1,
1368 -1, -1, 20, 21, 22, -1, -1, 25, -1, -1,
1369 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1370 -1, -1, 40, 41, 42, 43, 44, -1, -1, -1,
1371 -1, -1, 226, -1, -1, -1, 54, 55, -1, -1,
1372 -1, 59, -1, -1, -1, -1, 64, 65, 66, 67,
1373 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1374 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1375 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1376 98, 99, 100, 101, 102, -1, 104, -1, -1, 107,
1377 108, -1, -1, -1, -1, -1, 114, -1, 116, -1,
1378 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1379 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1380 8, -1, 10, 11, -1, -1, -1, -1, -1, -1,
1381 -1, -1, 20, 21, 22, -1, -1, 25, -1, -1,
1382 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1383 -1, -1, 40, 41, 42, 43, -1, -1, -1, -1,
1384 -1, -1, -1, -1, -1, -1, 54, 55, -1, -1,
1385 -1, 59, -1, -1, -1, -1, 64, 65, 66, 67,
1386 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1387 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1388 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1389 98, 99, 100, 101, 102, -1, 104, -1, -1, 107,
1390 108, -1, -1, -1, -1, -1, 114, -1, 116, -1,
1391 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1392 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1393 8, -1, 10, 11, -1, -1, -1, -1, -1, -1,
1394 -1, -1, 20, 21, 22, -1, -1, 25, -1, -1,
1395 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1396 -1, -1, 40, 41, 42, 43, -1, -1, -1, -1,
1397 -1, -1, -1, -1, -1, -1, 54, 55, -1, -1,
1398 -1, 59, -1, -1, -1, -1, -1, -1, -1, 67,
1399 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1400 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1401 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1402 98, 99, 100, 101, 102, -1, 104, -1, -1, 107,
1403 108, -1, -1, -1, -1, -1, 114, -1, 116, -1,
1404 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1405 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1406 8, -1, -1, 11, 12, -1, 14, -1, -1, -1,
1407 -1, -1, 20, -1, 22, -1, -1, -1, 26, 27,
1408 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1409 -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
1410 -1, -1, -1, -1, -1, -1, -1, 55, -1, -1,
1411 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
1412 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1413 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1414 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1415 98, 99, 100, 101, 102, 8, 104, -1, -1, -1,
1416 -1, -1, -1, -1, -1, -1, -1, 20, 116, -1,
1417 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1418 128, -1, 130, 131, 132, -1, -1, -1, -1, -1,
1419 -1, -1, -1, -1, -1, 48, -1, 50, -1, -1,
1420 -1, -1, -1, 56, -1, -1, -1, -1, -1, 62,
1421 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1422 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1423 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1424 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1425 -1, 104, -1, -1, -1, -1, 109, -1, 8, -1,
1426 113, -1, 115, 116, 117, 118, 119, 120, 121, 122,
1427 20, 124, 125, 126, 127, 128, -1, 130, 131, 132,
1428 133, 134, 135, 136, -1, -1, -1, -1, -1, -1,
1429 -1, -1, -1, -1, -1, -1, -1, -1, 48, -1,
1430 50, -1, -1, -1, -1, -1, 56, -1, -1, -1,
1431 -1, -1, 62, -1, -1, -1, -1, 67, 68, 69,
1432 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1433 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1434 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1435 100, 101, 102, 8, 104, -1, -1, -1, -1, 109,
1436 -1, -1, -1, 113, -1, 20, 116, 117, 118, 119,
1437 120, 121, 122, -1, 124, 125, 126, 127, 128, -1,
1438 130, 131, 132, 133, 134, 135, 136, -1, -1, -1,
1439 -1, -1, -1, -1, -1, 50, -1, -1, -1, -1,
1440 -1, 56, -1, -1, -1, -1, -1, 62, -1, -1,
1441 -1, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1442 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1443 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1444 95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
1445 -1, -1, -1, -1, -1, 8, -1, -1, 113, -1,
1446 -1, 116, 117, 118, 119, 120, 121, 20, -1, 124,
1447 125, 126, 127, 128, -1, 130, 131, 132, 133, 134,
1448 135, 136, 35, -1, -1, -1, -1, -1, -1, -1,
1449 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1451 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1452 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1453 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1454 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1455 6, 104, 8, -1, 10, 11, -1, -1, -1, -1,
1456 -1, -1, -1, 116, 20, 118, 119, 120, 121, 25,
1457 -1, 124, 125, 126, 127, 128, -1, 130, 131, 132,
1458 -1, 134, 135, 136, -1, -1, -1, -1, -1, -1,
1459 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1461 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1462 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1463 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1464 96, 97, 98, 99, 100, 101, 102, 6, 104, 8,
1465 -1, 10, 11, -1, -1, -1, -1, -1, -1, -1,
1466 116, 20, 118, 119, 120, 121, -1, -1, 124, 125,
1467 126, 127, 128, 129, 130, 131, 132, -1, -1, -1,
1468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1469 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1470 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1471 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1472 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1473 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1474 99, 100, 101, 102, 8, 104, -1, -1, -1, -1,
1475 -1, -1, -1, -1, -1, -1, 20, 116, -1, 118,
1476 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1477 129, 130, 131, 132, -1, -1, -1, -1, -1, -1,
1478 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1479 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1480 64, 65, -1, 67, 68, 69, 70, 71, 72, 73,
1481 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1482 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1483 94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
1484 104, 8, -1, -1, -1, -1, -1, -1, -1, -1,
1485 -1, -1, 116, 20, 118, 119, 120, 121, -1, -1,
1486 124, 125, 126, 127, 128, -1, 130, 131, 132, -1,
1487 37, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1488 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1489 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1490 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1491 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1492 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1493 97, 98, 99, 100, 101, 102, -1, 104, 8, -1,
1494 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
1495 20, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1496 127, 128, 129, 130, 131, 132, -1, 37, -1, -1,
1497 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1498 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1499 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1500 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1501 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1502 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1503 100, 101, 102, -1, 104, 8, -1, -1, -1, -1,
1504 -1, -1, -1, -1, -1, -1, 116, 20, 118, 119,
1505 120, 121, -1, -1, 124, 125, 126, 127, 128, 129,
1506 130, 131, 132, -1, 37, -1, -1, -1, -1, -1,
1507 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1509 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1510 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1511 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1512 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1513 -1, 104, 8, -1, -1, -1, -1, -1, -1, -1,
1514 -1, -1, -1, 116, 20, 118, 119, 120, 121, -1,
1515 -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1516 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1,
1517 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1519 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1520 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1521 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1522 96, 97, 98, 99, 100, 101, 102, 8, 104, -1,
1523 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1524 116, -1, 118, 119, 120, 121, -1, -1, 124, 125,
1525 126, 127, 128, 129, 130, 131, 132, -1, -1, -1,
1526 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1528 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1529 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1530 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1531 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1532 101, 102, 8, 104, -1, -1, -1, -1, -1, -1,
1533 -1, -1, -1, -1, 20, 116, -1, 118, 119, 120,
1534 121, -1, -1, 124, 125, 126, 127, 128, 129, 130,
1535 131, 132, -1, -1, -1, -1, -1, -1, -1, -1,
1536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1537 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1538 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1539 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1540 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1541 96, 97, 98, 99, 100, 101, 102, 8, 104, -1,
1542 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1543 116, -1, 118, 119, 120, 121, -1, 123, 124, 125,
1544 126, 127, 128, -1, 130, 131, 132, -1, -1, -1,
1545 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1547 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1548 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1549 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1550 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1551 101, 102, -1, 104, -1, -1, -1, -1, -1, 8,
1552 -1, -1, -1, -1, -1, 116, -1, 118, 119, 120,
1553 121, 20, -1, 124, 125, 126, 127, 128, 129, 130,
1554 131, 132, -1, -1, -1, -1, 35, -1, -1, -1,
1555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1556 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1557 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1558 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1559 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1560 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1561 99, 100, 101, 102, -1, 104, -1, -1, -1, -1,
1562 -1, 8, -1, -1, -1, -1, -1, 116, -1, 118,
1563 119, 120, 121, 20, -1, 124, 125, 126, 127, 128,
1564 -1, 130, 131, 132, -1, -1, -1, -1, 35, -1,
1565 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1566 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1568 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1569 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1570 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1571 97, 98, 99, 100, 101, 102, 8, 104, -1, -1,
1572 -1, -1, -1, -1, -1, -1, -1, -1, 20, 116,
1573 -1, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1574 127, 128, -1, 130, 131, 132, -1, -1, -1, -1,
1575 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1576 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1577 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
1578 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1579 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1580 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1581 102, 8, 104, -1, -1, -1, -1, -1, -1, -1,
1582 -1, -1, -1, 20, 116, -1, 118, 119, 120, 121,
1583 -1, -1, 124, 125, 126, 127, 128, -1, 130, 131,
1584 132, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1585 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1587 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1588 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1589 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1590 97, 98, 99, 100, 101, 102, -1, 104, -1, -1,
1591 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
1592 -1, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1593 127, 128, -1, 130, 131, 132, 3, -1, -1, 6,
1594 -1, -1, -1, 10, 11, -1, -1, -1, -1, -1,
1595 -1, -1, -1, 20, 21, 22, 23, -1, 25, -1,
1596 -1, -1, 3, -1, -1, 6, -1, 34, 35, 10,
1597 11, -1, -1, 40, 41, 42, 43, -1, -1, 20,
1598 21, 22, -1, -1, 25, -1, -1, 54, 55, -1,
1599 -1, -1, 59, 34, -1, 36, -1, -1, -1, 40,
1600 41, 42, 43, -1, -1, -1, -1, -1, -1, -1,
1601 -1, -1, 3, 54, 55, 6, -1, -1, 59, 10,
1602 11, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1603 21, 22, -1, -1, 25, -1, -1, -1, -1, -1,
1604 107, 108, -1, 34, -1, 36, -1, 114, -1, 40,
1605 41, 42, 43, 3, -1, -1, 6, -1, -1, -1,
1606 10, 11, -1, 54, 55, -1, 107, 108, 59, -1,
1607 20, 21, 22, 114, -1, 25, -1, -1, -1, -1,
1608 -1, -1, -1, -1, 34, -1, 36, -1, -1, -1,
1609 40, 41, 42, 43, -1, -1, -1, -1, -1, -1,
1610 -1, -1, -1, 3, 54, 55, 6, -1, -1, 59,
1611 10, 11, -1, -1, -1, -1, 107, 108, -1, -1,
1612 20, 21, 22, 114, -1, 25, -1, -1, -1, 3,
1613 -1, -1, 6, -1, 34, -1, 10, 11, -1, -1,
1614 40, 41, 42, 43, -1, -1, 20, -1, 22, -1,
1615 -1, 25, -1, -1, 54, 55, -1, 107, 108, 59,
1616 34, -1, -1, -1, 114, -1, 40, 41, 42, 43,
1617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1618 54, -1, -1, -1, -1, 59, -1, -1, -1, -1,
1619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1620 -1, -1, -1, -1, -1, -1, -1, 107, 108, -1,
1621 -1, -1, -1, -1, 114, -1, -1, -1, -1, -1,
1622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1623 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
1626 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1628 /* Skeleton output parser for bison,
1630 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
1633 This program is free software; you can redistribute it and/or modify
1634 it under the terms of the GNU General Public License as published by
1635 the Free Software Foundation; either version 2, or (at your option)
1638 This program is distributed in the hope that it will be useful,
1639 but WITHOUT ANY WARRANTY; without even the implied warranty of
1640 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1641 GNU General Public License for more details.
1643 You should have received a copy of the GNU General Public License
1644 along with this program; if not, write to the Free Software
1645 Foundation, Inc., 59 Temple Place - Suite 330,
1646 Boston, MA 02111-1307, USA. */
1648 /* As a special exception, when this file is copied by Bison into a
1649 Bison output file, you may use that output file without restriction.
1650 This special exception was added by the Free Software Foundation
1651 in version 1.24 of Bison. */
1653 /* This is the parser code that is written into each bison parser when
1654 the %semantic_parser declaration is not specified in the grammar.
1655 It was written by Richard Stallman by simplifying the hairy parser
1656 used when %semantic_parser is specified. */
1658 /* All symbols defined below should begin with yy or YY, to avoid
1659 infringing on user name space. This should be done even for local
1660 variables, as they might otherwise be expanded by user macros.
1661 There are some unavoidable exceptions within include files to
1662 define necessary library symbols; they are noted "INFRINGES ON
1663 USER NAME SPACE" below. */
1665 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
1667 /* The parser invokes alloca or malloc; define the necessary symbols. */
1669 # if YYSTACK_USE_ALLOCA
1670 # define YYSTACK_ALLOC alloca
1672 # ifndef YYSTACK_USE_ALLOCA
1673 # if defined (alloca) || defined (_ALLOCA_H)
1674 # define YYSTACK_ALLOC alloca
1677 # define YYSTACK_ALLOC __builtin_alloca
1683 # ifdef YYSTACK_ALLOC
1684 /* Pacify GCC's `empty if-body' warning. */
1685 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1687 # if defined (__STDC__) || defined (__cplusplus)
1688 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1689 # define YYSIZE_T size_t
1691 # define YYSTACK_ALLOC malloc
1692 # define YYSTACK_FREE free
1694 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
1697 #if (! defined (yyoverflow) \
1698 && (! defined (__cplusplus) \
1699 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1701 /* A type that is properly aligned for any stack member. */
1711 /* The size of the maximum gap between one aligned stack and the next. */
1712 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
1714 /* The size of an array large to enough to hold all stacks, each with
1717 # define YYSTACK_BYTES(N) \
1718 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
1719 + 2 * YYSTACK_GAP_MAX)
1721 # define YYSTACK_BYTES(N) \
1722 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
1726 /* Copy COUNT objects from FROM to TO. The source and destination do
1730 # define YYCOPY(To, From, Count) \
1731 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1733 # define YYCOPY(To, From, Count) \
1736 register YYSIZE_T yyi; \
1737 for (yyi = 0; yyi < (Count); yyi++) \
1738 (To)[yyi] = (From)[yyi]; \
1744 /* Relocate STACK from its old location to the new one. The
1745 local variables YYSIZE and YYSTACKSIZE give the old and new number of
1746 elements in the stack, and YYPTR gives the new location of the
1747 stack. Advance YYPTR to a properly aligned location for the next
1749 # define YYSTACK_RELOCATE(Stack) \
1752 YYSIZE_T yynewbytes; \
1753 YYCOPY (&yyptr->Stack, Stack, yysize); \
1754 Stack = &yyptr->Stack; \
1755 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
1756 yyptr += yynewbytes / sizeof (*yyptr); \
1763 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
1764 # define YYSIZE_T __SIZE_TYPE__
1766 #if ! defined (YYSIZE_T) && defined (size_t)
1767 # define YYSIZE_T size_t
1769 #if ! defined (YYSIZE_T)
1770 # if defined (__STDC__) || defined (__cplusplus)
1771 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1772 # define YYSIZE_T size_t
1775 #if ! defined (YYSIZE_T)
1776 # define YYSIZE_T unsigned int
1779 #define yyerrok (yyerrstatus = 0)
1780 #define yyclearin (yychar = YYEMPTY)
1783 #define YYACCEPT goto yyacceptlab
1784 #define YYABORT goto yyabortlab
1785 #define YYERROR goto yyerrlab1
1786 /* Like YYERROR except do call yyerror. This remains here temporarily
1787 to ease the transition to the new meaning of YYERROR, for GCC.
1788 Once GCC version 2 has supplanted version 1, this can go. */
1789 #define YYFAIL goto yyerrlab
1790 #define YYRECOVERING() (!!yyerrstatus)
1791 #define YYBACKUP(Token, Value) \
1793 if (yychar == YYEMPTY && yylen == 1) \
1797 yychar1 = YYTRANSLATE (yychar); \
1803 yyerror ("syntax error: cannot back up"); \
1809 #define YYERRCODE 256
1812 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
1815 When YYLLOC_DEFAULT is run, CURRENT is set the location of the
1816 first token. By default, to implement support for ranges, extend
1817 its range to the last symbol. */
1819 #ifndef YYLLOC_DEFAULT
1820 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1821 Current.last_line = Rhs[N].last_line; \
1822 Current.last_column = Rhs[N].last_column;
1826 /* YYLEX -- calling `yylex' with the right arguments. */
1831 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
1833 # define YYLEX yylex (&yylval, &yylloc)
1835 # else /* !YYLSP_NEEDED */
1837 # define YYLEX yylex (&yylval, YYLEX_PARAM)
1839 # define YYLEX yylex (&yylval)
1841 # endif /* !YYLSP_NEEDED */
1843 # define YYLEX yylex ()
1844 #endif /* !YYPURE */
1847 /* Enable debugging if requested. */
1851 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1852 # define YYFPRINTF fprintf
1855 # define YYDPRINTF(Args) \
1860 /* Nonzero means print parse trace. It is left uninitialized so that
1861 multiple parsers can coexist. */
1863 #else /* !YYDEBUG */
1864 # define YYDPRINTF(Args)
1865 #endif /* !YYDEBUG */
1867 /* YYINITDEPTH -- initial size of the parser's stacks. */
1869 # define YYINITDEPTH 200
1872 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1873 if the built-in stack extension method is used).
1875 Do not make this value too large; the results are undefined if
1876 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
1877 evaluated with infinite-precision integer arithmetic. */
1884 # define YYMAXDEPTH 10000
1887 #ifdef YYERROR_VERBOSE
1890 # if defined (__GLIBC__) && defined (_STRING_H)
1891 # define yystrlen strlen
1893 /* Return the length of YYSTR. */
1895 # if defined (__STDC__) || defined (__cplusplus)
1896 yystrlen (const char *yystr)
1902 register const char *yys = yystr;
1904 while (*yys++ != '\0')
1907 return yys - yystr - 1;
1913 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1914 # define yystpcpy stpcpy
1916 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1919 # if defined (__STDC__) || defined (__cplusplus)
1920 yystpcpy (char *yydest, const char *yysrc)
1922 yystpcpy (yydest, yysrc)
1927 register char *yyd = yydest;
1928 register const char *yys = yysrc;
1930 while ((*yyd++ = *yys++) != '\0')
1941 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1942 into yyparse. The argument should have type void *.
1943 It should actually point to an object.
1944 Grammar actions can access the variable by casting it
1945 to the proper pointer type. */
1947 #ifdef YYPARSE_PARAM
1948 # if defined (__STDC__) || defined (__cplusplus)
1949 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1950 # define YYPARSE_PARAM_DECL
1952 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
1953 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1955 #else /* !YYPARSE_PARAM */
1956 # define YYPARSE_PARAM_ARG
1957 # define YYPARSE_PARAM_DECL
1958 #endif /* !YYPARSE_PARAM */
1960 /* Prevent warning if -Wstrict-prototypes. */
1962 # ifdef YYPARSE_PARAM
1963 int yyparse (void *);
1969 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
1970 variables are global, or local to YYPARSE. */
1972 #define YY_DECL_NON_LSP_VARIABLES \
1973 /* The lookahead symbol. */ \
1976 /* The semantic value of the lookahead symbol. */ \
1979 /* Number of parse errors so far. */ \
1983 # define YY_DECL_VARIABLES \
1984 YY_DECL_NON_LSP_VARIABLES \
1986 /* Location data for the lookahead symbol. */ \
1989 # define YY_DECL_VARIABLES \
1990 YY_DECL_NON_LSP_VARIABLES
1994 /* If nonreentrant, generate the variables here. */
1998 #endif /* !YYPURE */
2001 yyparse (YYPARSE_PARAM_ARG)
2004 /* If reentrant, generate the variables here. */
2007 #endif /* !YYPURE */
2009 register int yystate;
2012 /* Number of tokens to shift before error messages enabled. */
2014 /* Lookahead token as an internal (translated) token number. */
2017 /* Three stacks and their tools:
2018 `yyss': related to states,
2019 `yyvs': related to semantic values,
2020 `yyls': related to locations.
2022 Refer to the stacks thru separate pointers, to allow yyoverflow
2023 to reallocate them elsewhere. */
2025 /* The state stack. */
2026 short yyssa[YYINITDEPTH];
2027 short *yyss = yyssa;
2028 register short *yyssp;
2030 /* The semantic value stack. */
2031 YYSTYPE yyvsa[YYINITDEPTH];
2032 YYSTYPE *yyvs = yyvsa;
2033 register YYSTYPE *yyvsp;
2036 /* The location stack. */
2037 YYLTYPE yylsa[YYINITDEPTH];
2038 YYLTYPE *yyls = yylsa;
2043 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2045 # define YYPOPSTACK (yyvsp--, yyssp--)
2048 YYSIZE_T yystacksize = YYINITDEPTH;
2051 /* The variables used to return semantic value and location from the
2058 /* When reducing, the number of symbols on the RHS of the reduced
2062 YYDPRINTF ((stderr, "Starting parse\n"));
2067 yychar = YYEMPTY; /* Cause a token to be read. */
2069 /* Initialize stack pointers.
2070 Waste one element of value and location stack
2071 so that they stay on the same level as the state stack.
2072 The wasted elements are never initialized. */
2081 /*------------------------------------------------------------.
2082 | yynewstate -- Push a new state, which is found in yystate. |
2083 `------------------------------------------------------------*/
2085 /* In all cases, when you get here, the value and location stacks
2086 have just been pushed. so pushing a state here evens the stacks.
2093 if (yyssp >= yyss + yystacksize - 1)
2095 /* Get the current used size of the three stacks, in elements. */
2096 YYSIZE_T yysize = yyssp - yyss + 1;
2100 /* Give user a chance to reallocate the stack. Use copies of
2101 these so that the &'s don't force the real ones into
2103 YYSTYPE *yyvs1 = yyvs;
2104 short *yyss1 = yyss;
2106 /* Each stack pointer address is followed by the size of the
2107 data in use in that stack, in bytes. */
2109 YYLTYPE *yyls1 = yyls;
2110 /* This used to be a conditional around just the two extra args,
2111 but that might be undefined if yyoverflow is a macro. */
2112 yyoverflow ("parser stack overflow",
2113 &yyss1, yysize * sizeof (*yyssp),
2114 &yyvs1, yysize * sizeof (*yyvsp),
2115 &yyls1, yysize * sizeof (*yylsp),
2119 yyoverflow ("parser stack overflow",
2120 &yyss1, yysize * sizeof (*yyssp),
2121 &yyvs1, yysize * sizeof (*yyvsp),
2127 #else /* no yyoverflow */
2128 # ifndef YYSTACK_RELOCATE
2131 /* Extend the stack our own way. */
2132 if (yystacksize >= YYMAXDEPTH)
2135 if (yystacksize > YYMAXDEPTH)
2136 yystacksize = YYMAXDEPTH;
2139 short *yyss1 = yyss;
2140 union yyalloc *yyptr =
2141 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2144 YYSTACK_RELOCATE (yyss);
2145 YYSTACK_RELOCATE (yyvs);
2147 YYSTACK_RELOCATE (yyls);
2149 # undef YYSTACK_RELOCATE
2151 YYSTACK_FREE (yyss1);
2154 #endif /* no yyoverflow */
2156 yyssp = yyss + yysize - 1;
2157 yyvsp = yyvs + yysize - 1;
2159 yylsp = yyls + yysize - 1;
2162 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2163 (unsigned long int) yystacksize));
2165 if (yyssp >= yyss + yystacksize - 1)
2169 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2179 /* Do appropriate processing given the current state. */
2180 /* Read a lookahead token if we need one and don't already have one. */
2183 /* First try to decide what to do without reference to lookahead token. */
2185 yyn = yypact[yystate];
2189 /* Not known => get a lookahead token if don't already have one. */
2191 /* yychar is either YYEMPTY or YYEOF
2192 or a valid token in external form. */
2194 if (yychar == YYEMPTY)
2196 YYDPRINTF ((stderr, "Reading a token: "));
2200 /* Convert token to internal form (in yychar1) for indexing tables with */
2202 if (yychar <= 0) /* This means end of input. */
2205 yychar = YYEOF; /* Don't call YYLEX any more */
2207 YYDPRINTF ((stderr, "Now at end of input.\n"));
2211 yychar1 = YYTRANSLATE (yychar);
2214 /* We have to keep this `#if YYDEBUG', since we use variables
2215 which are defined only if `YYDEBUG' is set. */
2218 YYFPRINTF (stderr, "Next token is %d (%s",
2219 yychar, yytname[yychar1]);
2220 /* Give the individual parser a way to print the precise
2221 meaning of a token, for further debugging info. */
2223 YYPRINT (stderr, yychar, yylval);
2225 YYFPRINTF (stderr, ")\n");
2231 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2236 /* yyn is what to do for this token type in this state.
2237 Negative => reduce, -yyn is rule number.
2238 Positive => shift, yyn is new state.
2239 New state is final state => don't bother to shift,
2240 just return success.
2241 0, or most negative number => error. */
2256 /* Shift the lookahead token. */
2257 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
2258 yychar, yytname[yychar1]));
2260 /* Discard the token being shifted unless it is eof. */
2261 if (yychar != YYEOF)
2269 /* Count tokens shifted since error; after three, turn off error
2278 /*-----------------------------------------------------------.
2279 | yydefault -- do the default action for the current state. |
2280 `-----------------------------------------------------------*/
2282 yyn = yydefact[yystate];
2288 /*-----------------------------.
2289 | yyreduce -- Do a reduction. |
2290 `-----------------------------*/
2292 /* yyn is the number of a rule to reduce with. */
2295 /* If YYLEN is nonzero, implement the default value of the action:
2298 Otherwise, the following line sets YYVAL to the semantic value of
2299 the lookahead token. This behavior is undocumented and Bison
2300 users should not rely upon it. Assigning to YYVAL
2301 unconditionally makes the parser a bit smaller, and it avoids a
2302 GCC warning that YYVAL may be used uninitialized. */
2303 yyval = yyvsp[1-yylen];
2306 /* Similarly for the default location. Let the user run additional
2307 commands if for instance locations are ranges. */
2308 yyloc = yylsp[1-yylen];
2309 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
2313 /* We have to keep this `#if YYDEBUG', since we use variables which
2314 are defined only if `YYDEBUG' is set. */
2319 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
2322 /* Print the symbols being reduced, and their result. */
2323 for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
2324 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
2325 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2332 { lhExternals (yyvsp[0].interfacelist); ;
2335 { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
2338 { yyval.interfacelist = interfaceNodeList_new (); ;
2341 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2344 { yyval.interfacelist = interfaceNodeList_new (); ;
2347 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2350 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2353 { yyval.interfacelist = interfaceNodeList_new (); ;
2356 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2359 { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2360 /* assume subspecs are already processed, symbol table info in external file */
2364 { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
2367 { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
2370 { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
2373 { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
2376 { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
2379 { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
2382 { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
2385 { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
2388 { yyval.paramlist = paramNodeList_new (); ;
2391 { yyval.paramlist = yyvsp[0].paramlist; ;
2394 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
2397 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
2400 { yyval.param = markYieldParamNode (yyvsp[0].param); ;
2403 { yyval.param = yyvsp[0].param; ;
2406 { symtable_export (g_symtab, FALSE); ;
2409 { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
2412 { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
2415 { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
2418 { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
2421 { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
2424 { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
2427 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
2430 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
2433 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
2436 { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
2439 { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
2442 { yyval.typequal = qual_createPrintfLike (); ;
2445 { yyval.typequal = qual_createScanfLike (); ;
2448 { yyval.typequal = qual_createMessageLike (); ;
2451 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2454 { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls,
2455 yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2456 /* type, declarator, glovbls, privateinits,
2457 lets, checks, requires, modifies, ensures, claims */
2458 symtable_exitScope (g_symtab);
2462 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2465 { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist,
2466 yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2467 /* type, declarator, glovbls, privateinits,
2468 lets, checks, requires, modifies, ensures, claims */
2469 symtable_exitScope (g_symtab);
2473 { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
2476 { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate);
2477 symtable_exitScope (g_symtab); ;
2480 { yyval.claim = (claimNode) 0; ;
2483 {g_inTypeDef = TRUE; ;
2486 {g_inTypeDef = FALSE; ;
2489 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
2492 {g_inTypeDef = TRUE; ;
2495 {g_inTypeDef = FALSE; ;
2498 { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2501 {g_inTypeDef = TRUE; ;
2504 {g_inTypeDef = FALSE; ;
2507 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2510 {g_inTypeDef = TRUE; ;
2513 {g_inTypeDef = FALSE; ;
2516 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
2519 { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
2522 { g_inTypeDef = FALSE; ;
2525 { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
2528 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
2531 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
2534 { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
2537 { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
2540 { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
2543 { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
2546 { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
2549 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2552 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2555 { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
2558 { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
2561 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
2564 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
2567 { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
2570 { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
2573 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2576 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2579 { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
2582 { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
2585 { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
2588 { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
2591 { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
2594 { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
2597 { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
2600 { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
2603 { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
2606 { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
2607 yyvsp[-1].name, yyvsp[0].signature); ;
2610 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
2613 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
2616 { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
2619 { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
2622 { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
2625 { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
2628 { yyval.globals = varDeclarationNodeList_new (); ;
2631 { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
2634 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
2637 { yyval.vardeclaration = makeInternalStateNode (); ;
2640 { yyval.vardeclaration = makeFileSystemNode (); ;
2643 { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
2646 { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
2649 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
2652 { yyval.letdecls = letDeclNodeList_new (); ;
2655 { yyval.letdecls = yyvsp[-1].letdecls; ;
2658 { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
2661 { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
2664 { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
2667 { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
2670 { yyval.lclpredicate = (lclPredicateNode)0; ;
2673 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2676 { yyval.lclpredicate = (lclPredicateNode)0; ;
2679 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2682 { yyval.modify = (modifyNode)0; ;
2685 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
2688 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
2691 { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
2694 { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
2697 { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
2700 { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
2703 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
2706 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
2709 { yyval.storeref = makeStoreRefNodeInternal (); ;
2712 { yyval.storeref = makeStoreRefNodeSystem (); ;
2715 { yyval.lclpredicate = (lclPredicateNode)0; ;
2718 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2721 { yyval.lclpredicate = (lclPredicateNode)0; ;
2724 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2727 { yyval.paramlist = paramNodeList_new (); ;
2730 { yyval.paramlist = yyvsp[0].paramlist; ;
2733 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
2736 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
2739 { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
2742 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
2745 { yyval.program = (programNode)0; ;
2748 { yyval.program = yyvsp[-1].program; ;
2751 { yyval.program = yyvsp[-2].program; ;
2754 { yyval.program = makeProgramNode (yyvsp[0].stmt); ;
2757 { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
2760 { programNodeList x = programNodeList_new ();
2761 programNodeList_addh (x, yyvsp[-1].program);
2762 yyval.program = makeProgramNodeAction (x, ACT_ITER);
2766 { programNodeList x = programNodeList_new ();
2767 programNodeList_addh (x, yyvsp[-2].program);
2768 programNodeList_addh (x, yyvsp[0].program);
2769 yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE);
2773 { programNodeList x = programNodeList_new ();
2774 programNodeList_addh (x, yyvsp[-2].program);
2775 programNodeList_addh (x, yyvsp[0].program);
2776 yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE);
2780 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2783 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
2786 { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
2789 { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2792 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
2795 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
2798 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
2801 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
2804 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
2807 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
2810 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
2813 { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
2816 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
2819 { yyval.abstbody = (abstBodyNode)0; ;
2822 { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
2825 { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
2828 { yyval.abstbody = (abstBodyNode)0; ;
2831 { yyval.fcns = fcnNodeList_new (); ;
2834 { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
2837 { yyval.lclpredicate = (lclPredicateNode)0; ;
2840 { g_inTypeDef = FALSE; ;
2843 { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
2844 checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
2845 yyval.lclpredicate = yyvsp[-1].lclpredicate;
2846 symtable_exitScope (g_symtab);
2851 { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
2854 { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
2857 { declareForwardType (yyvsp[0].declare); ;
2860 { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
2863 { yyval.abstbody = (abstBodyNode)0; ;
2866 { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2869 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
2872 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
2875 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
2878 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
2881 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
2884 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
2887 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
2890 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
2893 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
2896 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
2899 { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
2902 { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
2905 { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
2908 { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
2911 { yyval.typequal = qual_createOut (); ;
2914 { yyval.typequal = qual_createUnused (); ;
2917 { yyval.typequal = qual_createSef (); ;
2920 { yyval.typequal = qual_createOnly (); ;
2923 { yyval.typequal = qual_createOwned (); ;
2926 { yyval.typequal = qual_createDependent (); ;
2929 { yyval.typequal = qual_createKeep (); ;
2932 { yyval.typequal = qual_createKept (); ;
2935 { yyval.typequal = qual_createObserver (); ;
2938 { yyval.typequal = qual_createExits (); ;
2941 { yyval.typequal = qual_createMayExit (); ;
2944 { yyval.typequal = qual_createTrueExit (); ;
2947 { yyval.typequal = qual_createFalseExit (); ;
2950 { yyval.typequal = qual_createNeverExit (); ;
2953 { yyval.typequal = qual_createOnly (); ;
2956 { yyval.typequal = qual_createShared (); ;
2959 { yyval.typequal = qual_createUnique (); ;
2962 { yyval.typequal = qual_createChecked (); ;
2965 { yyval.typequal = qual_createUnchecked (); ;
2968 { yyval.typequal = qual_createCheckedStrict (); ;
2971 { yyval.typequal = qual_createTrueNull (); ;
2974 { yyval.typequal = qual_createFalseNull (); ;
2977 { yyval.typequal = qual_createRelNull (); ;
2980 { yyval.typequal = qual_createRelDef (); ;
2983 { yyval.typequal = qual_createRefCounted (); ;
2986 { yyval.typequal = qual_createRefs (); ;
2989 { yyval.typequal = qual_createNewRef (); ;
2992 { yyval.typequal = qual_createKillRef (); ;
2995 { yyval.typequal = qual_createNull (); ;
2998 { yyval.typequal = qual_createNotNull (); ;
3001 { yyval.typequal = qual_createReturned (); ;
3004 { yyval.typequal = qual_createExposed (); ;
3007 { yyval.typequal = qual_createPartial (); ;
3010 { yyval.typequal = qual_createNullTerminated () ; ;
3013 { yyval.typequal = qual_createUndef (); ;
3016 { yyval.typequal = qual_createKilled (); ;
3019 { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
3022 { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
3025 { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
3028 { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
3031 { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
3034 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
3035 yyvsp[-1].lcltypespec->pointers = yyvsp[0].pointers; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
3038 { yyval.pointers = pointers_createLt (yyvsp[0].ltok); ;
3041 { yyval.pointers = pointers_extend (yyvsp[-1].pointers, pointers_createLt (yyvsp[0].ltok)); ;
3044 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
3047 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3050 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
3053 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3056 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
3059 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
3062 { yyval.ltok = ltoken_undefined; ;
3065 { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
3068 { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
3071 { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
3074 { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
3077 { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
3086 { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
3089 { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
3092 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3095 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3098 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3101 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3104 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3107 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3110 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3113 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3116 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3119 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3122 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3125 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3128 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3131 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3134 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3137 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3140 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3143 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3146 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3149 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3152 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3155 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3158 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3161 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3164 { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3167 { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3170 { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
3173 { yyval.abstDecl = (abstDeclaratorNode)0; ;
3176 { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
3179 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3182 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3185 { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
3188 { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
3191 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3194 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3197 { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
3200 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3203 { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
3206 { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
3209 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
3212 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3215 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3218 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3221 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
3222 opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3225 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3228 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3231 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3234 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3237 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3240 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3243 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3246 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3249 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
3250 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3253 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
3254 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3257 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
3258 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3261 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
3262 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3265 { yyval.count = 0; ;
3268 { yyval.count = 1; ;
3271 { yyval.count = yyvsp[-2].count + 1; ;
3274 { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3277 { yyval.ltokenList = ltokenList_new (); ;
3280 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3283 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3286 { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
3289 { yyval.term = checkSort (yyvsp[0].term); ;
3292 { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
3295 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
3298 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
3299 symtable_exitScope (g_symtab);
3303 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3306 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3309 { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
3312 { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
3315 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
3318 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3321 { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
3324 { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
3327 { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
3330 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3333 { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3336 { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
3339 { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
3342 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3345 { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3348 { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3351 { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok);
3352 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3355 { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3358 { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok);
3359 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok));
3363 { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3366 { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3369 { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3372 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3375 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3378 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
3381 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3384 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3387 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
3390 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3393 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3396 { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
3400 { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
3403 { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3406 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3409 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3412 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3415 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3418 { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
3421 { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
3424 { termNodeList x = termNodeList_new ();
3425 termNodeList_addh (x, yyvsp[-1].term);
3426 yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok);
3430 { termNodeList x = termNodeList_new ();
3431 termNodeList_addh (x, yyvsp[-3].term);
3432 termNodeList_addh (x, yyvsp[-1].term);
3433 yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok);
3437 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
3440 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
3443 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
3446 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
3449 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
3452 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
3455 { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
3458 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
3459 si->kind = SPE_QUANT;
3460 symtable_enterScope (g_symtab, si); ;
3463 { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
3466 { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
3469 { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
3472 { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
3475 { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
3490 short *yyssp1 = yyss - 1;
3491 YYFPRINTF (stderr, "state stack now");
3492 while (yyssp1 != yyssp)
3493 YYFPRINTF (stderr, " %d", *++yyssp1);
3494 YYFPRINTF (stderr, "\n");
3503 /* Now `shift' the result of the reduction. Determine what state
3504 that goes to, based on the state we popped back to and the rule
3505 number reduced by. */
3509 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3510 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3511 yystate = yytable[yystate];
3513 yystate = yydefgoto[yyn - YYNTBASE];
3518 /*------------------------------------.
3519 | yyerrlab -- here on detecting error |
3520 `------------------------------------*/
3522 /* If not already recovering from an error, report this error. */
3527 #ifdef YYERROR_VERBOSE
3528 yyn = yypact[yystate];
3530 if (yyn > YYFLAG && yyn < YYLAST)
3532 YYSIZE_T yysize = 0;
3537 /* Start YYX at -YYN if negative to avoid negative indexes in
3539 for (yyx = yyn < 0 ? -yyn : 0;
3540 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
3541 if (yycheck[yyx + yyn] == yyx)
3542 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
3543 yysize += yystrlen ("parse error, unexpected ") + 1;
3544 yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
3545 yymsg = (char *) YYSTACK_ALLOC (yysize);
3548 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
3549 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
3554 for (yyx = yyn < 0 ? -yyn : 0;
3555 yyx < (int) (sizeof (yytname) / sizeof (char *));
3557 if (yycheck[yyx + yyn] == yyx)
3559 const char *yyq = ! yycount ? ", expecting " : " or ";
3560 yyp = yystpcpy (yyp, yyq);
3561 yyp = yystpcpy (yyp, yytname[yyx]);
3566 YYSTACK_FREE (yymsg);
3569 yyerror ("parse error; also virtual memory exhausted");
3572 #endif /* defined (YYERROR_VERBOSE) */
3573 yyerror ("parse error");
3578 /*--------------------------------------------------.
3579 | yyerrlab1 -- error raised explicitly by an action |
3580 `--------------------------------------------------*/
3582 if (yyerrstatus == 3)
3584 /* If just tried and failed to reuse lookahead token after an
3585 error, discard it. */
3587 /* return failure if at end of input */
3588 if (yychar == YYEOF)
3590 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
3591 yychar, yytname[yychar1]));
3595 /* Else will try to reuse lookahead token after shifting the error
3598 yyerrstatus = 3; /* Each real token shifted decrements this */
3603 /*-------------------------------------------------------------------.
3604 | yyerrdefault -- current state does not do anything special for the |
3606 `-------------------------------------------------------------------*/
3609 /* This is wrong; only states that explicitly want error tokens
3610 should shift them. */
3612 /* If its default is to accept any token, ok. Otherwise pop it. */
3613 yyn = yydefact[yystate];
3619 /*---------------------------------------------------------------.
3620 | yyerrpop -- pop the current state because it cannot handle the |
3622 `---------------------------------------------------------------*/
3635 short *yyssp1 = yyss - 1;
3636 YYFPRINTF (stderr, "Error: state stack now");
3637 while (yyssp1 != yyssp)
3638 YYFPRINTF (stderr, " %d", *++yyssp1);
3639 YYFPRINTF (stderr, "\n");
3647 yyn = yypact[yystate];
3652 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3669 YYDPRINTF ((stderr, "Shifting error token, "));
3680 /*-------------------------------------.
3681 | yyacceptlab -- YYACCEPT comes here. |
3682 `-------------------------------------*/
3687 /*-----------------------------------.
3688 | yyabortlab -- YYABORT comes here. |
3689 `-----------------------------------*/
3694 /*---------------------------------------------.
3695 | yyoverflowab -- parser overflow comes here. |
3696 `---------------------------------------------*/
3698 yyerror ("parser stack overflow");
3705 YYSTACK_FREE (yyss);
3711 # include "bison.reset"
3714 ** yytext is set in lex scanner
3715 ** extern YYSTYPE yylval;
3716 ** yylval is defined by code generated by bison
3719 void ylerror (char *s)
3722 ** This resetting of the left context is very important when multiple
3723 ** files are to be parsed. We do not want failures to propagate.
3724 ** Lex/Yacc does not reset the flags when the parsing goes bad.
3729 lclfatalerror (yllval.ltok,
3730 message ("%s: Token code: %s, Token String: %s",
3731 cstring_fromChars (s),
3732 ltoken_unparseCodeName (yllval.ltok),
3733 ltoken_getRawString (yllval.ltok)));
3737 static void yyprint (FILE *f, int t, YYSTYPE value)
3739 fprintf (f, " type: %d (%s)", t,
3740 cstring_toCharsSafe (ltoken_getRawString (value.ltok)));
3750 ** Resets all flags in bison.head
3772 /*@=evalorderuncon@*/
3781 /*@=elseifcomplete@*/
3785 /*@=readonlytrans@*/
3788 /*@=systemunrecog@*/
3789 /*@=dependenttrans@*/
3790 /*@=unqualifiedtrans@*/
3794 /*drl added 11/27/2001*/