]> andersk Git - splint.git/blame_incremental - src/llgrammar.c.der
Finshed basic merge. Still trying to get it through the test suit.
[splint.git] / src / llgrammar.c.der
... / ...
CommitLineData
1/*
2** Inserted at beginning of c files generated by bison
3** REMEMBER: Change bison.reset too.
4*/
5
6/*@-allmacros@*/
7/*@+boolint@*/
8/*@+charint@*/
9/*@-macroparams@*/
10/*@-macroundef@*/
11/*@-unreachable@*/
12/*@-macrospec@*/
13/*@-varuse@*/
14/*@+ignorequals@*/
15/*@-macrostmt@*/
16/*@-noeffect@*/
17/*@-shadow@*/
18/*@-exitarg@*/
19/*@-macroredef@*/
20/*@-uniondef@*/
21/*@-compdef@*/
22/*@-matchfields@*/
23/*@-exportlocal@*/
24/*@-evalorderuncon@*/
25/*@-exportheader@*/
26/*@-typeuse@*/
27/*@-redecl@*/
28/*@-redef@*/
29/*@-noparams@*/
30/*@-ansireserved@*/
31/*@-fielduse@*/
32/*@-ifblock@*/
33/*@-elseifcomplete@*/
34/*@-whileblock@*/
35/*@-forblock@*/
36/*@-branchstate@*/
37/*@-readonlytrans@*/
38/*@-namechecks@*/
39/*@-usedef@*/
40/*@-systemunrecog@*/
41/*@-dependenttrans@*/
42/*@-unqualifiedtrans@*/
43/*@-nullassign@*/
44
45/* < end of bison.head > */
46
47
48/* A Bison parser, made from llgrammar.y
49 by GNU Bison version 1.25
50 */
51
52#define YYBISON 1 /* Identify Bison output. */
53
54#define yyparse ylparse
55#define yylex yllex
56#define yyerror ylerror
57#define yylval yllval
58#define yychar ylchar
59#define yydebug yldebug
60#define yynerrs ylnerrs
61#define simpleOp 258
62#define PREFIX_OP 259
63#define POSTFIX_OP 260
64#define LLT_MULOP 261
65#define LLT_SEMI 262
66#define LLT_VERTICALBAR 263
67#define ITERATION_OP 264
68#define LLT_LPAR 265
69#define LLT_LBRACKET 266
70#define selectSym 267
71#define LLT_IF_THEN_ELSE 268
72#define logicalOp 269
73#define eqSepSym 270
74#define equationSym 271
75#define commentSym 272
76#define LLT_WHITESPACE 273
77#define LLT_EOL 274
78#define LLT_TYPEDEF_NAME 275
79#define quantifierSym 276
80#define openSym 277
81#define closeSym 278
82#define sepSym 279
83#define simpleId 280
84#define mapSym 281
85#define markerSym 282
86#define preSym 283
87#define postSym 284
88#define anySym 285
89#define LLT_COLON 286
90#define LLT_COMMA 287
91#define LLT_EQUALS 288
92#define LLT_LBRACE 289
93#define LLT_RBRACE 290
94#define LLT_RBRACKET 291
95#define LLT_RPAR 292
96#define LLT_QUOTE 293
97#define eqOp 294
98#define LLT_CCHAR 295
99#define LLT_CFLOAT 296
100#define LLT_CINTEGER 297
101#define LLT_LCSTRING 298
102#define LLT_ALL 299
103#define LLT_ANYTHING 300
104#define LLT_BE 301
105#define LLT_BODY 302
106#define LLT_CLAIMS 303
107#define LLT_CHECKS 304
108#define LLT_CONSTANT 305
109#define LLT_ELSE 306
110#define LLT_ENSURES 307
111#define LLT_FOR 308
112#define LLT_FRESH 309
113#define LLT_IF 310
114#define LLT_IMMUTABLE 311
115#define LLT_IMPORTS 312
116#define LLT_CONSTRAINT 313
117#define LLT_ISSUB 314
118#define LLT_LET 315
119#define LLT_MODIFIES 316
120#define LLT_MUTABLE 317
121#define LLT_NOTHING 318
122#define LLT_INTERNAL 319
123#define LLT_FILESYS 320
124#define LLT_OBJ 321
125#define LLT_OUT 322
126#define LLT_SEF 323
127#define LLT_ONLY 324
128#define LLT_PARTIAL 325
129#define LLT_OWNED 326
130#define LLT_DEPENDENT 327
131#define LLT_KEEP 328
132#define LLT_KEPT 329
133#define LLT_TEMP 330
134#define LLT_SHARED 331
135#define LLT_UNIQUE 332
136#define LLT_UNUSED 333
137#define LLT_EXITS 334
138#define LLT_MAYEXIT 335
139#define LLT_NEVEREXIT 336
140#define LLT_TRUEEXIT 337
141#define LLT_FALSEEXIT 338
142#define LLT_UNDEF 339
143#define LLT_KILLED 340
144#define LLT_CHECKMOD 341
145#define LLT_CHECKED 342
146#define LLT_UNCHECKED 343
147#define LLT_CHECKEDSTRICT 344
148#define LLT_TRUENULL 345
149#define LLT_FALSENULL 346
150#define LLT_LNULL 347
151#define LLT_LNOTNULL 348
152#define LLT_RETURNED 349
153#define LLT_OBSERVER 350
154#define LLT_EXPOSED 351
155#define LLT_REFCOUNTED 352
156#define LLT_REFS 353
157#define LLT_RELNULL 354
158#define LLT_RELDEF 355
159#define LLT_KILLREF 356
160#define LLT_TEMPREF 357
161#define LLT_NEWREF 358
162#define LLT_PRIVATE 359
163#define LLT_REQUIRES 360
164#define LLT_RESULT 361
165#define LLT_SIZEOF 362
166#define LLT_SPEC 363
167#define LLT_TAGGEDUNION 364
168#define LLT_THEN 365
169#define LLT_TYPE 366
170#define LLT_TYPEDEF 367
171#define LLT_UNCHANGED 368
172#define LLT_USES 369
173#define LLT_CHAR 370
174#define LLT_CONST 371
175#define LLT_DOUBLE 372
176#define LLT_ENUM 373
177#define LLT_FLOAT 374
178#define LLT_INT 375
179#define LLT_ITER 376
180#define LLT_YIELD 377
181#define LLT_LONG 378
182#define LLT_SHORT 379
183#define LLT_SIGNED 380
184#define LLT_UNKNOWN 381
185#define LLT_STRUCT 382
186#define LLT_TELIPSIS 383
187#define LLT_UNION 384
188#define LLT_UNSIGNED 385
189#define LLT_VOID 386
190#define LLT_VOLATILE 387
191#define LLT_PRINTFLIKE 388
192#define LLT_SCANFLIKE 389
193#define LLT_MESSAGELIKE 390
194
195#line 36 "llgrammar.y"
196
197
198# include "lclintMacros.nf"
199# include "llbasic.h"
200# include "lclscan.h"
201# include "checking.h"
202# include "lslparse.h"
203# include "lh.h"
204# include "usymtab_interface.h"
205
206/*@-noparams@*/
207static /*@unused@*/ void yyprint ();
208/*@=noparams@*/
209
210/*@-redecl@*/
211void ylerror (char *) /*@modifies *g_msgstream@*/ ;
212/*@=redecl@*/
213
214bool g_inTypeDef = FALSE;
215
216/*@constant int YYDEBUG;@*/
217# define YYDEBUG 1
218
219/*@notfunction@*/
220# define YYPRINT(file, type, value) yyprint (file, type, value)
221
222/*
223** This is necessary, or else when the bison-generated code #include's malloc.h,
224** there will be a parse error.
225**
226** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
227** in bison-generated files under Win32.
228*/
229
230# ifdef WIN32
231# undef malloc
232# undef calloc
233# undef realloc
234# endif
235
236
237#line 78 "llgrammar.y"
238typedef union
239{
240 ltoken ltok; /* a leaf is also an ltoken */
241 qual typequal;
242 unsigned int count;
243 /*@only@*/ ltokenList ltokenList;
244 /*@only@*/ abstDeclaratorNode abstDecl;
245 /*@only@*/ declaratorNode declare;
246 /*@only@*/ declaratorNodeList declarelist;
247 /*@only@*/ typeExpr typeexpr;
248 /*@only@*/ arrayQualNode array;
249 /*@only@*/ quantifierNode quantifier;
250 /*@only@*/ quantifierNodeList quantifiers;
251 /*@only@*/ varNode var;
252 /*@only@*/ varNodeList vars;
253 /*@only@*/ storeRefNode storeref;
254 /*@only@*/ storeRefNodeList storereflist;
255 /*@only@*/ termNode term;
256 /*@only@*/ termNodeList termlist;
257 /*@only@*/ programNode program;
258 /*@only@*/ stmtNode stmt;
259 /*@only@*/ claimNode claim;
260 /*@only@*/ typeNode type;
261 /*@only@*/ iterNode iter;
262 /*@only@*/ fcnNode fcn;
263 /*@only@*/ fcnNodeList fcns;
264 /*@only@*/ letDeclNode letdecl;
265 /*@only@*/ letDeclNodeList letdecls;
266 /*@only@*/ lclPredicateNode lclpredicate;
267 /*@only@*/ modifyNode modify;
268 /*@only@*/ paramNode param;
269 /*@only@*/ paramNodeList paramlist;
270 /*@only@*/ declaratorInvNodeList declaratorinvs;
271 /*@only@*/ declaratorInvNode declaratorinv;
272 /*@only@*/ abstBodyNode abstbody;
273 /*@only@*/ abstractNode abstract;
274 /*@only@*/ exposedNode exposed;
275 /* taggedUnionNode taggedunion; */
276 /*@only@*/ globalList globals;
277 /*@only@*/ constDeclarationNode constdeclaration;
278 /*@only@*/ varDeclarationNode vardeclaration;
279 /*@only@*/ varDeclarationNodeList vardeclarationlist;
280 /*@only@*/ initDeclNodeList initdecls;
281 /*@only@*/ initDeclNode initdecl;
282 /*@only@*/ stDeclNodeList structdecls;
283 /*@only@*/ stDeclNode structdecl;
284 /*@only@*/ strOrUnionNode structorunion;
285 /*@only@*/ enumSpecNode enumspec;
286 /*@only@*/ lclTypeSpecNode lcltypespec;
287 /*@only@*/ typeNameNode typname;
288 /*@only@*/ opFormNode opform;
289 /*@only@*/ sigNode signature;
290 /*@only@*/ nameNode name;
291 /*@only@*/ typeNameNodeList namelist;
292 /*@only@*/ replaceNode replace;
293 /*@only@*/ replaceNodeList replacelist;
294 /*@only@*/ renamingNode renaming;
295 /*@only@*/ traitRefNode traitref;
296 /*@only@*/ traitRefNodeList traitreflist;
297 /*@only@*/ importNode import;
298 /*@only@*/ importNodeList importlist;
299 /*@only@*/ interfaceNode iface;
300 /*@only@*/ interfaceNodeList interfacelist;
301 /*@only@*/ CTypesNode ctypes;
302} YYSTYPE;
303#ifndef YYDEBUG
304#define YYDEBUG 1
305#endif
306
307#include <stdio.h>
308
309#ifndef __cplusplus
310#ifndef __STDC__
311#define const
312#endif
313#endif
314
315
316
317#define YYFINAL 683
318#define YYFLAG -32768
319#define YYNTBASE 136
320
321#define YYTRANSLATE(x) ((unsigned)(x) <= 390 ? yytranslate[x] : 290)
322
323static const short yytranslate[] = { 0,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
350 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
351 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
352 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
353 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
354 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
355 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
356 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
357 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
358 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
359 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
360 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
361 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
362 126, 127, 128, 129, 130, 131, 132, 133, 134, 135
363};
364
365#if YYDEBUG != 0
366static const short yyprhs[] = { 0,
367 0, 1, 5, 6, 9, 11, 13, 14, 17, 20,
368 21, 24, 26, 28, 30, 34, 38, 40, 42, 44,
369 46, 48, 50, 57, 58, 60, 62, 66, 69, 71,
370 72, 76, 78, 80, 82, 84, 89, 93, 98, 103,
371 105, 107, 109, 111, 113, 114, 128, 129, 144, 145,
372 159, 164, 165, 166, 173, 174, 175, 183, 184, 185,
373 193, 194, 195, 202, 203, 204, 211, 214, 217, 219,
374 223, 225, 229, 231, 233, 237, 239, 241, 245, 247,
375 252, 256, 263, 265, 269, 271, 273, 277, 279, 283,
376 285, 289, 293, 297, 302, 304, 306, 308, 310, 312,
377 316, 318, 322, 323, 326, 330, 333, 336, 337, 340,
378 345, 346, 350, 352, 356, 362, 366, 368, 369, 373,
379 374, 378, 379, 383, 387, 391, 393, 397, 399, 401,
380 404, 406, 408, 409, 413, 414, 418, 419, 421, 423,
381 425, 429, 431, 435, 436, 441, 447, 449, 453, 456,
382 460, 464, 469, 473, 479, 486, 488, 492, 494, 496,
383 499, 502, 506, 510, 514, 519, 521, 525, 530, 534,
384 535, 538, 539, 541, 542, 549, 551, 555, 556, 560,
385 561, 565, 567, 569, 571, 573, 575, 577, 579, 581,
386 583, 585, 587, 590, 592, 594, 596, 598, 600, 602,
387 604, 606, 608, 610, 612, 614, 616, 618, 620, 622,
388 624, 626, 628, 630, 632, 634, 636, 638, 640, 642,
389 644, 646, 648, 650, 652, 654, 656, 658, 660, 662,
390 664, 666, 668, 670, 673, 679, 681, 684, 686, 689,
391 690, 697, 698, 705, 708, 711, 712, 714, 716, 719,
392 723, 725, 729, 730, 732, 739, 742, 744, 748, 750,
393 752, 754, 758, 761, 764, 768, 773, 775, 779, 782,
394 785, 789, 794, 796, 799, 802, 806, 811, 814, 817,
395 820, 823, 827, 829, 830, 832, 836, 839, 841, 843,
396 846, 850, 854, 859, 862, 866, 873, 875, 878, 881,
397 885, 889, 894, 899, 905, 909, 914, 919, 925, 928,
398 931, 935, 939, 941, 943, 945, 947, 949, 951, 953,
399 954, 956, 958, 962, 964, 966, 971, 972, 974, 976,
400 980, 982, 984, 991, 993, 997, 999, 1004, 1008, 1012,
401 1014, 1017, 1020, 1022, 1024, 1026, 1029, 1031, 1034, 1037,
402 1041, 1043, 1045, 1048, 1051, 1055, 1057, 1060, 1064, 1066,
403 1072, 1076, 1081, 1084, 1088, 1091, 1093, 1097, 1101, 1103,
404 1108, 1110, 1113, 1117, 1121, 1125, 1130, 1134, 1136, 1140,
405 1142, 1144, 1146, 1148, 1150, 1152, 1157, 1162, 1167, 1172,
406 1179, 1184, 1186, 1188, 1190, 1192, 1194, 1197, 1198, 1202,
407 1204, 1208, 1212, 1217, 1219, 1221, 1223, 1225, 1227, 1229,
408 1231, 1233
409};
410
411static const short yyrhs[] = { -1,
412 138, 137, 140, 0, 0, 138, 139, 0, 143, 0,
413 144, 0, 0, 145, 141, 0, 150, 141, 0, 0,
414 141, 142, 0, 145, 0, 150, 0, 144, 0, 57,
415 174, 7, 0, 114, 178, 7, 0, 153, 0, 154,
416 0, 155, 0, 157, 0, 160, 0, 146, 0, 121,
417 284, 10, 147, 37, 7, 0, 0, 148, 0, 149,
418 0, 148, 32, 149, 0, 122, 243, 0, 243, 0,
419 0, 108, 151, 152, 0, 153, 0, 154, 0, 155,
420 0, 157, 0, 50, 226, 188, 7, 0, 226, 188,
421 7, 0, 116, 226, 188, 7, 0, 132, 226, 188,
422 7, 0, 162, 0, 171, 0, 133, 0, 134, 0,
423 135, 0, 0, 226, 239, 190, 158, 34, 192, 194,
424 198, 199, 200, 203, 204, 35, 0, 0, 156, 226,
425 239, 190, 159, 34, 192, 194, 198, 199, 200, 203,
426 204, 35, 0, 0, 48, 286, 10, 205, 37, 190,
427 161, 34, 194, 199, 208, 203, 35, 0, 48, 283,
428 286, 7, 0, 0, 0, 62, 163, 111, 20, 164,
429 213, 0, 0, 0, 62, 165, 97, 111, 20, 166,
430 213, 0, 0, 0, 97, 62, 167, 111, 20, 168,
431 213, 0, 0, 0, 56, 169, 111, 20, 170, 213,
432 0, 0, 0, 112, 226, 172, 218, 173, 7, 0,
433 229, 7, 0, 237, 7, 0, 175, 0, 174, 32,
434 175, 0, 177, 0, 3, 177, 3, 0, 43, 0,
435 177, 0, 176, 32, 177, 0, 282, 0, 179, 0,
436 178, 32, 179, 0, 288, 0, 288, 10, 181, 37,
437 0, 10, 180, 37, 0, 10, 180, 37, 10, 181,
438 37, 0, 288, 0, 180, 32, 288, 0, 183, 0,
439 182, 0, 182, 32, 183, 0, 244, 0, 182, 32,
440 244, 0, 184, 0, 183, 32, 184, 0, 244, 53,
441 222, 0, 244, 53, 185, 0, 244, 53, 185, 255,
442 0, 289, 0, 248, 0, 187, 0, 259, 0, 189,
443 0, 188, 32, 189, 0, 239, 0, 239, 33, 186,
444 0, 0, 190, 191, 0, 226, 188, 7, 0, 64,
445 7, 0, 65, 7, 0, 0, 192, 193, 0, 104,
446 226, 188, 7, 0, 0, 60, 195, 7, 0, 196,
447 0, 195, 32, 196, 0, 284, 31, 197, 46, 259,
448 0, 284, 46, 259, 0, 226, 0, 0, 49, 258,
449 7, 0, 0, 105, 258, 7, 0, 0, 61, 63,
450 7, 0, 61, 45, 7, 0, 61, 201, 7, 0,
451 202, 0, 201, 32, 202, 0, 259, 0, 227, 0,
452 66, 227, 0, 64, 0, 65, 0, 0, 52, 258,
453 7, 0, 0, 48, 258, 7, 0, 0, 206, 0,
454 207, 0, 128, 0, 207, 32, 128, 0, 243, 0,
455 207, 32, 243, 0, 0, 47, 34, 209, 35, 0,
456 47, 34, 209, 7, 35, 0, 210, 0, 10, 209,
457 37, 0, 209, 6, 0, 209, 8, 209, 0, 209,
458 7, 209, 0, 283, 10, 211, 37, 0, 283, 10,
459 37, 0, 284, 33, 283, 10, 37, 0, 284, 33,
460 283, 10, 211, 37, 0, 212, 0, 211, 32, 212,
461 0, 276, 0, 284, 0, 3, 212, 0, 212, 3,
462 0, 212, 3, 212, 0, 10, 212, 37, 0, 283,
463 10, 37, 0, 283, 10, 211, 37, 0, 7, 0,
464 34, 214, 35, 0, 34, 176, 35, 7, 0, 34,
465 35, 7, 0, 0, 214, 157, 0, 0, 216, 0,
466 0, 58, 217, 278, 10, 258, 37, 0, 219, 0,
467 218, 32, 219, 0, 0, 239, 220, 221, 0, 0,
468 34, 215, 35, 0, 131, 0, 115, 0, 117, 0,
469 119, 0, 120, 0, 123, 0, 124, 0, 125, 0,
470 130, 0, 126, 0, 222, 0, 223, 222, 0, 20,
471 0, 223, 0, 67, 0, 78, 0, 68, 0, 69,
472 0, 71, 0, 72, 0, 73, 0, 74, 0, 95,
473 0, 79, 0, 80, 0, 82, 0, 83, 0, 81,
474 0, 75, 0, 76, 0, 77, 0, 87, 0, 88,
475 0, 89, 0, 90, 0, 91, 0, 99, 0, 100,
476 0, 97, 0, 98, 0, 103, 0, 101, 0, 92,
477 0, 93, 0, 94, 0, 96, 0, 70, 0, 84,
478 0, 85, 0, 224, 0, 229, 0, 237, 0, 225,
479 226, 0, 8, 227, 31, 227, 8, 0, 226, 0,
480 226, 228, 0, 6, 0, 228, 6, 0, 0, 127,
481 232, 230, 34, 233, 35, 0, 0, 129, 232, 231,
482 34, 233, 35, 0, 127, 285, 0, 129, 285, 0,
483 0, 285, 0, 234, 0, 233, 234, 0, 226, 235,
484 7, 0, 239, 0, 235, 32, 239, 0, 0, 32,
485 0, 118, 232, 34, 238, 236, 35, 0, 118, 285,
486 0, 25, 0, 238, 32, 25, 0, 241, 0, 240,
487 0, 284, 0, 10, 240, 37, 0, 6, 240, 0,
488 240, 247, 0, 240, 10, 37, 0, 240, 10, 206,
489 37, 0, 20, 0, 10, 241, 37, 0, 6, 241,
490 0, 241, 247, 0, 241, 10, 37, 0, 241, 10,
491 206, 37, 0, 20, 0, 6, 242, 0, 242, 247,
492 0, 242, 10, 37, 0, 242, 10, 206, 37, 0,
493 226, 242, 0, 226, 240, 0, 226, 245, 0, 226,
494 245, 0, 66, 226, 245, 0, 248, 0, 0, 246,
495 0, 10, 246, 37, 0, 6, 246, 0, 6, 0,
496 247, 0, 246, 247, 0, 246, 10, 37, 0, 10,
497 206, 37, 0, 246, 10, 206, 37, 0, 11, 36,
498 0, 11, 187, 36, 0, 55, 27, 110, 27, 51,
499 27, 0, 251, 0, 27, 251, 0, 251, 27, 0,
500 27, 251, 27, 0, 249, 252, 250, 0, 27, 249,
501 252, 250, 0, 249, 252, 250, 27, 0, 27, 249,
502 252, 250, 27, 0, 11, 252, 36, 0, 11, 252,
503 36, 27, 0, 27, 11, 252, 36, 0, 27, 11,
504 252, 36, 27, 0, 12, 282, 0, 26, 282, 0,
505 27, 12, 282, 0, 27, 26, 282, 0, 22, 0,
506 34, 0, 23, 0, 35, 0, 263, 0, 14, 0,
507 39, 0, 0, 253, 0, 27, 0, 253, 254, 27,
508 0, 32, 0, 24, 0, 31, 256, 26, 287, 0,
509 0, 257, 0, 287, 0, 257, 32, 287, 0, 259,
510 0, 260, 0, 55, 260, 110, 260, 51, 260, 0,
511 261, 0, 260, 14, 260, 0, 262, 0, 277, 10,
512 258, 37, 0, 262, 39, 262, 0, 262, 33, 262,
513 0, 264, 0, 267, 265, 0, 267, 266, 0, 3,
514 0, 6, 0, 267, 0, 263, 264, 0, 263, 0,
515 265, 263, 0, 263, 267, 0, 266, 263, 267, 0,
516 272, 0, 268, 0, 268, 272, 0, 272, 268, 0,
517 272, 268, 272, 0, 269, 0, 269, 272, 0, 270,
518 31, 287, 0, 270, 0, 11, 271, 36, 31, 287,
519 0, 11, 271, 36, 0, 11, 36, 31, 287, 0,
520 11, 36, 0, 249, 271, 250, 0, 249, 250, 0,
521 259, 0, 271, 254, 259, 0, 10, 260, 37, 0,
522 284, 0, 289, 10, 273, 37, 0, 275, 0, 272,
523 274, 0, 272, 12, 282, 0, 272, 26, 282, 0,
524 272, 11, 36, 0, 272, 11, 273, 36, 0, 272,
525 31, 287, 0, 260, 0, 273, 32, 260, 0, 28,
526 0, 29, 0, 30, 0, 38, 0, 276, 0, 106,
527 0, 54, 10, 273, 37, 0, 113, 10, 44, 37,
528 0, 113, 10, 201, 37, 0, 107, 10, 259, 37,
529 0, 59, 10, 259, 32, 259, 37, 0, 107, 10,
530 226, 37, 0, 42, 0, 43, 0, 40, 0, 41,
531 0, 278, 0, 277, 278, 0, 0, 21, 279, 280,
532 0, 281, 0, 280, 32, 281, 0, 284, 31, 197,
533 0, 284, 31, 66, 197, 0, 25, 0, 20, 0,
534 25, 0, 25, 0, 282, 0, 282, 0, 282, 0,
535 282, 0, 282, 0
536};
537
538#endif
539
540#if YYDEBUG != 0
541static const short yyrline[] = { 0,
542 382, 383, 386, 387, 390, 391, 394, 395, 396, 399,
543 400, 403, 404, 405, 408, 414, 418, 420, 422, 424,
544 426, 428, 432, 436, 437, 440, 442, 446, 447, 450,
545 451, 454, 456, 458, 460, 464, 468, 470, 472, 476,
546 477, 480, 481, 482, 485, 486, 493, 495, 506, 508,
547 511, 515, 515, 516, 517, 517, 519, 520, 521, 522,
548 523, 523, 524, 527, 528, 529, 530, 532, 548, 550,
549 554, 555, 557, 560, 561, 564, 568, 570, 574, 576,
550 578, 580, 584, 585, 588, 590, 592, 595, 597, 600,
551 602, 605, 606, 607, 611, 612, 614, 616, 619, 621,
552 625, 626, 629, 631, 635, 636, 637, 640, 641, 644,
553 648, 649, 652, 653, 656, 657, 659, 662, 663, 666,
554 667, 670, 671, 672, 673, 676, 677, 680, 681, 682,
555 683, 684, 687, 688, 691, 692, 695, 696, 699, 700,
556 701, 704, 705, 708, 709, 710, 713, 714, 717, 722,
557 728, 736, 738, 740, 742, 746, 747, 750, 751, 752,
558 753, 754, 755, 756, 758, 762, 763, 764, 765, 768,
559 769, 772, 773, 776, 776, 785, 786, 790, 791, 794,
560 795, 798, 799, 800, 801, 802, 803, 804, 805, 806,
561 807, 815, 816, 821, 823, 829, 830, 831, 832, 833,
562 834, 835, 836, 837, 838, 839, 840, 841, 842, 843,
563 844, 845, 846, 847, 848, 849, 850, 851, 852, 853,
564 854, 855, 856, 857, 858, 859, 860, 861, 862, 863,
565 866, 868, 870, 872, 874, 883, 884, 889, 890, 893,
566 895, 897, 899, 901, 903, 907, 908, 911, 912, 917,
567 920, 922, 926, 927, 930, 932, 936, 937, 947, 948,
568 951, 952, 953, 954, 955, 956, 959, 960, 961, 962,
569 963, 964, 973, 974, 975, 976, 977, 983, 984, 985,
570 995, 996, 997, 1002, 1003, 1006, 1007, 1008, 1009, 1010,
571 1011, 1012, 1013, 1016, 1017, 1020, 1022, 1024, 1026, 1028,
572 1031, 1033, 1035, 1037, 1039, 1041, 1049, 1051, 1053, 1056,
573 1059, 1062, 1067, 1068, 1071, 1072, 1075, 1076, 1077, 1080,
574 1081, 1084, 1085, 1088, 1089, 1092, 1095, 1096, 1099, 1100,
575 1103, 1106, 1112, 1114, 1115, 1118, 1119, 1124, 1126, 1130,
576 1131, 1132, 1135, 1136, 1139, 1140, 1143, 1144, 1147, 1148,
577 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1160, 1161, 1164,
578 1167, 1169, 1173, 1177, 1178, 1181, 1182, 1185, 1187, 1189,
579 1191, 1192, 1194, 1196, 1198, 1201, 1203, 1207, 1208, 1211,
580 1212, 1213, 1214, 1217, 1218, 1219, 1220, 1221, 1222, 1227,
581 1233, 1243, 1244, 1245, 1246, 1249, 1251, 1255, 1259, 1262,
582 1263, 1266, 1267, 1270, 1271, 1274, 1275, 1276, 1277, 1278,
583 1279, 1280
584};
585#endif
586
587
588#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
589
590static const char * const yytname[] = { "$","error","$undefined.","simpleOp",
591"PREFIX_OP","POSTFIX_OP","LLT_MULOP","LLT_SEMI","LLT_VERTICALBAR","ITERATION_OP",
592"LLT_LPAR","LLT_LBRACKET","selectSym","LLT_IF_THEN_ELSE","logicalOp","eqSepSym",
593"equationSym","commentSym","LLT_WHITESPACE","LLT_EOL","LLT_TYPEDEF_NAME","quantifierSym",
594"openSym","closeSym","sepSym","simpleId","mapSym","markerSym","preSym","postSym",
595"anySym","LLT_COLON","LLT_COMMA","LLT_EQUALS","LLT_LBRACE","LLT_RBRACE","LLT_RBRACKET",
596"LLT_RPAR","LLT_QUOTE","eqOp","LLT_CCHAR","LLT_CFLOAT","LLT_CINTEGER","LLT_LCSTRING",
597"LLT_ALL","LLT_ANYTHING","LLT_BE","LLT_BODY","LLT_CLAIMS","LLT_CHECKS","LLT_CONSTANT",
598"LLT_ELSE","LLT_ENSURES","LLT_FOR","LLT_FRESH","LLT_IF","LLT_IMMUTABLE","LLT_IMPORTS",
599"LLT_CONSTRAINT","LLT_ISSUB","LLT_LET","LLT_MODIFIES","LLT_MUTABLE","LLT_NOTHING",
600"LLT_INTERNAL","LLT_FILESYS","LLT_OBJ","LLT_OUT","LLT_SEF","LLT_ONLY","LLT_PARTIAL",
601"LLT_OWNED","LLT_DEPENDENT","LLT_KEEP","LLT_KEPT","LLT_TEMP","LLT_SHARED","LLT_UNIQUE",
602"LLT_UNUSED","LLT_EXITS","LLT_MAYEXIT","LLT_NEVEREXIT","LLT_TRUEEXIT","LLT_FALSEEXIT",
603"LLT_UNDEF","LLT_KILLED","LLT_CHECKMOD","LLT_CHECKED","LLT_UNCHECKED","LLT_CHECKEDSTRICT",
604"LLT_TRUENULL","LLT_FALSENULL","LLT_LNULL","LLT_LNOTNULL","LLT_RETURNED","LLT_OBSERVER",
605"LLT_EXPOSED","LLT_REFCOUNTED","LLT_REFS","LLT_RELNULL","LLT_RELDEF","LLT_KILLREF",
606"LLT_TEMPREF","LLT_NEWREF","LLT_PRIVATE","LLT_REQUIRES","LLT_RESULT","LLT_SIZEOF",
607"LLT_SPEC","LLT_TAGGEDUNION","LLT_THEN","LLT_TYPE","LLT_TYPEDEF","LLT_UNCHANGED",
608"LLT_USES","LLT_CHAR","LLT_CONST","LLT_DOUBLE","LLT_ENUM","LLT_FLOAT","LLT_INT",
609"LLT_ITER","LLT_YIELD","LLT_LONG","LLT_SHORT","LLT_SIGNED","LLT_UNKNOWN","LLT_STRUCT",
610"LLT_TELIPSIS","LLT_UNION","LLT_UNSIGNED","LLT_VOID","LLT_VOLATILE","LLT_PRINTFLIKE",
611"LLT_SCANFLIKE","LLT_MESSAGELIKE","interface","@1","externals","external","optDeclarations",
612"declarations","declaration","imports","uses","export","iter","iterParamList",
613"realIterParamList","iterParam","private","@2","private2","constDeclaration",
614"varDeclaration","type","special","fcn","@3","@4","claim","@5","abstract","@6",
615"@7","@8","@9","@10","@11","@12","@13","exposed","@14","@15","importNameList",
616"importName","interfaceNameList","interfaceName","traitRefNodeList","traitRef",
617"traitIdList","renaming","nameList","replaceNodeList","replace","name","initializer",
618"constLclExpr","initDecls","initDecl","globals","globalDecl","privateInits",
619"privateInit","optLetDecl","beDeclList","beDecl","sortSpec","optChecks","optRequire",
620"optModify","storeRefList","storeRef","optEnsure","optClaim","optParamList",
621"realParamList","paramList","optBody","callExpr","stmt","valueList","value",
622"abstBody","fcns","optTypeInv","typeInv","@16","declaratorInvs","declaratorInv",
623"@17","optExposedBody","CType","CTypes","typeSpecifier","specialQualifier","lclTypeSpec",
624"lclType","pointers","structOrUnionSpec","@18","@19","optTagId","structDecls",
625"structDecl","declaratorList","optCOMMA","enumSpec","enumeratorList","declarator",
626"notype_decl","after_type_decl","parameter_decl","param","typeName","optAbstDeclarator",
627"abstDeclarator","arrayQual","opForm","open","close","anyOp","middle","placeList",
628"separator","signature","domain","sortList","lclPredicate","term","term0","equalityTerm",
629"simpleOpTerm","simpleOp2","prefixOpTerm","postfixOps","infixOpPart","secondary",
630"bracketed","sqBracketed","matched","args","primary","termList","stateFcn","lclPrimary",
631"cLiteral","quantifiers","quantifier","@20","quantifiedList","quantified","simpleIdOrTypedefName",
632"fcnId","varId","tagId","claimId","sortId","traitId","opId", NULL
633};
634#endif
635
636static const short yyr1[] = { 0,
637 137, 136, 138, 138, 139, 139, 140, 140, 140, 141,
638 141, 142, 142, 142, 143, 144, 145, 145, 145, 145,
639 145, 145, 146, 147, 147, 148, 148, 149, 149, 151,
640 150, 152, 152, 152, 152, 153, 154, 154, 154, 155,
641 155, 156, 156, 156, 158, 157, 159, 157, 161, 160,
642 160, 163, 164, 162, 165, 166, 162, 167, 168, 162,
643 169, 170, 162, 172, 173, 171, 171, 171, 174, 174,
644 175, 175, 175, 176, 176, 177, 178, 178, 179, 179,
645 179, 179, 180, 180, 181, 181, 181, 182, 182, 183,
646 183, 184, 184, 184, 185, 185, 186, 187, 188, 188,
647 189, 189, 190, 190, 191, 191, 191, 192, 192, 193,
648 194, 194, 195, 195, 196, 196, 197, 198, 198, 199,
649 199, 200, 200, 200, 200, 201, 201, 202, 202, 202,
650 202, 202, 203, 203, 204, 204, 205, 205, 206, 206,
651 206, 207, 207, 208, 208, 208, 209, 209, 209, 209,
652 209, 210, 210, 210, 210, 211, 211, 212, 212, 212,
653 212, 212, 212, 212, 212, 213, 213, 213, 213, 214,
654 214, 215, 215, 217, 216, 218, 218, 220, 219, 221,
655 221, 222, 222, 222, 222, 222, 222, 222, 222, 222,
656 222, 223, 223, 224, 224, 225, 225, 225, 225, 225,
657 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
658 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
659 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
660 226, 226, 226, 226, 226, 227, 227, 228, 228, 230,
661 229, 231, 229, 229, 229, 232, 232, 233, 233, 234,
662 235, 235, 236, 236, 237, 237, 238, 238, 239, 239,
663 240, 240, 240, 240, 240, 240, 241, 241, 241, 241,
664 241, 241, 242, 242, 242, 242, 242, 243, 243, 243,
665 244, 244, 244, 245, 245, 246, 246, 246, 246, 246,
666 246, 246, 246, 247, 247, 248, 248, 248, 248, 248,
667 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
668 248, 248, 249, 249, 250, 250, 251, 251, 251, 252,
669 252, 253, 253, 254, 254, 255, 256, 256, 257, 257,
670 258, 259, 260, 260, 260, 261, 261, 261, 261, 262,
671 262, 262, 263, 263, 264, 264, 265, 265, 266, 266,
672 267, 267, 267, 267, 267, 267, 267, 268, 268, 269,
673 269, 269, 269, 270, 270, 271, 271, 272, 272, 272,
674 272, 272, 272, 272, 272, 272, 272, 273, 273, 274,
675 274, 274, 274, 275, 275, 275, 275, 275, 275, 275,
676 275, 276, 276, 276, 276, 277, 277, 279, 278, 280,
677 280, 281, 281, 282, 282, 283, 284, 285, 286, 287,
678 288, 289
679};
680
681static const short yyr2[] = { 0,
682 0, 3, 0, 2, 1, 1, 0, 2, 2, 0,
683 2, 1, 1, 1, 3, 3, 1, 1, 1, 1,
684 1, 1, 6, 0, 1, 1, 3, 2, 1, 0,
685 3, 1, 1, 1, 1, 4, 3, 4, 4, 1,
686 1, 1, 1, 1, 0, 13, 0, 14, 0, 13,
687 4, 0, 0, 6, 0, 0, 7, 0, 0, 7,
688 0, 0, 6, 0, 0, 6, 2, 2, 1, 3,
689 1, 3, 1, 1, 3, 1, 1, 3, 1, 4,
690 3, 6, 1, 3, 1, 1, 3, 1, 3, 1,
691 3, 3, 3, 4, 1, 1, 1, 1, 1, 3,
692 1, 3, 0, 2, 3, 2, 2, 0, 2, 4,
693 0, 3, 1, 3, 5, 3, 1, 0, 3, 0,
694 3, 0, 3, 3, 3, 1, 3, 1, 1, 2,
695 1, 1, 0, 3, 0, 3, 0, 1, 1, 1,
696 3, 1, 3, 0, 4, 5, 1, 3, 2, 3,
697 3, 4, 3, 5, 6, 1, 3, 1, 1, 2,
698 2, 3, 3, 3, 4, 1, 3, 4, 3, 0,
699 2, 0, 1, 0, 6, 1, 3, 0, 3, 0,
700 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
701 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
702 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
703 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
704 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
705 1, 1, 1, 2, 5, 1, 2, 1, 2, 0,
706 6, 0, 6, 2, 2, 0, 1, 1, 2, 3,
707 1, 3, 0, 1, 6, 2, 1, 3, 1, 1,
708 1, 3, 2, 2, 3, 4, 1, 3, 2, 2,
709 3, 4, 1, 2, 2, 3, 4, 2, 2, 2,
710 2, 3, 1, 0, 1, 3, 2, 1, 1, 2,
711 3, 3, 4, 2, 3, 6, 1, 2, 2, 3,
712 3, 4, 4, 5, 3, 4, 4, 5, 2, 2,
713 3, 3, 1, 1, 1, 1, 1, 1, 1, 0,
714 1, 1, 3, 1, 1, 4, 0, 1, 1, 3,
715 1, 1, 6, 1, 3, 1, 4, 3, 3, 1,
716 2, 2, 1, 1, 1, 2, 1, 2, 2, 3,
717 1, 1, 2, 2, 3, 1, 2, 3, 1, 5,
718 3, 4, 2, 3, 2, 1, 3, 3, 1, 4,
719 1, 2, 3, 3, 3, 4, 3, 1, 3, 1,
720 1, 1, 1, 1, 1, 4, 4, 4, 4, 6,
721 4, 1, 1, 1, 1, 1, 2, 0, 3, 1,
722 3, 3, 4, 1, 1, 1, 1, 1, 1, 1,
723 1, 1
724};
725
726static const short yydefact[] = { 3,
727 1, 0, 0, 7, 4, 5, 6, 0, 405, 404,
728 73, 0, 69, 71, 76, 0, 0, 77, 411, 79,
729 0, 194, 0, 0, 61, 52, 196, 198, 199, 228,
730 200, 201, 202, 203, 210, 211, 212, 197, 205, 206,
731 209, 207, 208, 229, 230, 213, 214, 215, 216, 217,
732 224, 225, 226, 204, 227, 220, 221, 218, 219, 223,
733 222, 30, 0, 183, 0, 184, 246, 185, 186, 0,
734 187, 188, 189, 191, 246, 246, 190, 182, 0, 42,
735 43, 44, 2, 10, 22, 10, 17, 18, 19, 0,
736 20, 21, 40, 41, 192, 195, 231, 0, 0, 232,
737 233, 0, 15, 0, 0, 83, 16, 0, 0, 220,
738 236, 0, 232, 233, 406, 409, 0, 0, 0, 0,
739 0, 0, 58, 0, 64, 0, 0, 408, 256, 407,
740 0, 240, 244, 242, 245, 0, 8, 9, 0, 193,
741 234, 0, 0, 267, 0, 99, 103, 260, 259, 261,
742 67, 68, 72, 70, 0, 81, 78, 343, 344, 320,
743 0, 318, 313, 0, 0, 314, 319, 0, 0, 0,
744 86, 85, 90, 284, 88, 283, 320, 297, 317, 238,
745 237, 0, 0, 137, 0, 101, 0, 0, 0, 0,
746 31, 32, 33, 34, 35, 0, 0, 0, 24, 0,
747 0, 0, 11, 14, 12, 13, 103, 263, 269, 0,
748 0, 37, 0, 0, 45, 0, 0, 264, 0, 270,
749 84, 0, 322, 0, 321, 309, 310, 320, 0, 0,
750 320, 298, 0, 284, 80, 0, 0, 288, 0, 281,
751 285, 289, 0, 0, 299, 239, 0, 51, 140, 0,
752 138, 139, 284, 142, 36, 62, 53, 0, 0, 65,
753 176, 178, 38, 257, 253, 0, 0, 25, 26, 29,
754 0, 0, 39, 47, 262, 268, 100, 0, 0, 398,
755 407, 394, 395, 392, 393, 0, 0, 0, 385, 0,
756 0, 102, 97, 0, 98, 332, 334, 336, 0, 340,
757 345, 352, 356, 359, 351, 371, 384, 0, 396, 412,
758 369, 0, 0, 0, 0, 104, 0, 265, 0, 294,
759 0, 271, 0, 0, 305, 325, 324, 0, 0, 311,
760 312, 0, 300, 0, 282, 87, 89, 91, 0, 287,
761 0, 0, 0, 290, 93, 92, 96, 95, 315, 316,
762 301, 235, 103, 0, 288, 0, 273, 279, 278, 280,
763 0, 0, 56, 59, 0, 0, 180, 254, 0, 28,
764 0, 0, 0, 0, 248, 0, 0, 0, 363, 366,
765 0, 0, 0, 0, 0, 0, 0, 365, 0, 0,
766 0, 0, 346, 345, 347, 341, 342, 353, 357, 0,
767 0, 0, 0, 380, 381, 382, 0, 383, 354, 372,
768 0, 397, 0, 106, 107, 108, 0, 266, 295, 272,
769 82, 306, 323, 307, 302, 0, 292, 286, 291, 0,
770 327, 94, 303, 49, 141, 143, 274, 288, 0, 275,
771 166, 170, 63, 54, 0, 0, 177, 66, 172, 179,
772 258, 255, 23, 27, 0, 251, 241, 249, 243, 108,
773 368, 0, 361, 0, 399, 400, 0, 378, 0, 0,
774 0, 194, 0, 0, 0, 131, 132, 0, 0, 126,
775 129, 128, 364, 335, 339, 338, 349, 348, 0, 410,
776 358, 375, 0, 373, 374, 377, 355, 0, 331, 0,
777 111, 105, 308, 304, 0, 293, 0, 328, 329, 0,
778 276, 0, 0, 0, 74, 0, 57, 60, 174, 0,
779 173, 250, 0, 111, 362, 0, 367, 0, 0, 0,
780 386, 0, 0, 391, 389, 387, 130, 0, 388, 350,
781 376, 337, 370, 0, 0, 109, 118, 296, 0, 0,
782 111, 277, 169, 0, 0, 167, 171, 0, 0, 181,
783 252, 118, 360, 401, 0, 402, 117, 379, 0, 0,
784 127, 0, 113, 0, 0, 0, 120, 326, 330, 120,
785 75, 168, 103, 0, 120, 403, 333, 390, 112, 0,
786 0, 0, 0, 0, 0, 122, 144, 0, 122, 114,
787 0, 116, 110, 119, 0, 0, 133, 0, 133, 0,
788 133, 0, 121, 0, 0, 0, 0, 135, 0, 0,
789 175, 135, 115, 124, 123, 125, 0, 0, 0, 0,
790 407, 0, 147, 0, 0, 50, 0, 134, 0, 46,
791 0, 149, 0, 0, 145, 0, 0, 48, 136, 0,
792 148, 146, 151, 150, 0, 0, 153, 0, 156, 158,
793 0, 159, 406, 0, 160, 0, 0, 152, 161, 0,
794 0, 163, 157, 162, 164, 0, 154, 0, 165, 155,
795 0, 0, 0
796};
797
798static const short yydefgoto[] = { 681,
799 4, 1, 5, 83, 137, 203, 6, 204, 205, 85,
800 267, 268, 269, 206, 124, 191, 87, 88, 89, 90,
801 91, 315, 377, 92, 510, 93, 121, 362, 122, 445,
802 190, 446, 120, 361, 94, 196, 366, 12, 13, 514,
803 14, 17, 18, 105, 170, 171, 172, 173, 345, 292,
804 293, 145, 146, 215, 316, 501, 546, 547, 572, 573,
805 566, 577, 596, 607, 479, 480, 618, 629, 250, 341,
806 252, 609, 653, 633, 658, 659, 443, 516, 520, 521,
807 559, 260, 261, 367, 450, 95, 96, 97, 98, 253,
808 481, 181, 113, 200, 201, 127, 374, 375, 455, 369,
809 114, 265, 186, 148, 149, 359, 254, 175, 240, 241,
810 242, 176, 294, 351, 178, 224, 225, 464, 432, 507,
811 508, 498, 499, 296, 297, 298, 299, 300, 396, 397,
812 301, 302, 303, 304, 381, 305, 469, 410, 306, 307,
813 308, 309, 382, 465, 466, 310, 661, 311, 129, 118,
814 491, 20, 312
815};
816
817static const short yypact[] = {-32768,
818 -28, 224, 372, 1343,-32768,-32768,-32768, 132,-32768,-32768,
819-32768, 48,-32768,-32768,-32768, 132, 105,-32768,-32768, 49,
820 2880,-32768, 227, 2880,-32768, 17,-32768,-32768,-32768,-32768,
821-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
822-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
823-32768,-32768,-32768,-32768,-32768, 161,-32768,-32768,-32768,-32768,
824-32768,-32768, 2880,-32768, 2880,-32768, 132,-32768,-32768, 221,
825-32768,-32768,-32768,-32768, 132, 132,-32768,-32768, 2880,-32768,
826-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2880,
827-32768,-32768,-32768,-32768,-32768, 1065,-32768, 2880, 396, 247,
828 270, 280,-32768, 224, 311,-32768,-32768, 372, 1147,-32768,
829 310, 265,-32768,-32768, 343,-32768, 132, 345, 396, 209,
830 246, 264,-32768, 1437,-32768, 396, 340,-32768, 346,-32768,
831 378,-32768, 346,-32768, 346, 396, 1241, 1241, 396,-32768,
832-32768, 396, 396,-32768, 123,-32768, 118, 198, 294,-32768,
833-32768,-32768,-32768,-32768, 132, 431,-32768,-32768,-32768, 416,
834 132,-32768,-32768, 132, 488,-32768,-32768, 423, 2880, 427,
835 442, 444,-32768, 462, 417,-32768, 416, 466,-32768,-32768,
836 499, 2880, 502, 2302, 149, 484, 501, 512, 428, 429,
837-32768,-32768,-32768,-32768,-32768, 396, 156, 509, 2396, 504,
838 507, 165,-32768,-32768,-32768,-32768,-32768, 198, 294, 89,
839 112,-32768, 396, 3134, 1824, 1920, 3009,-32768, 2016,-32768,
840-32768, 1147,-32768, 500, 33,-32768,-32768, 416, 132, 132,
841 416, 516, 437, 462,-32768, 1147, 1147, 462, 1730,-32768,
842 329,-32768, 239, 93,-32768,-32768, 538,-32768,-32768, 513,
843-32768, 517, 379,-32768,-32768,-32768,-32768, 533, 534, 523,
844-32768,-32768,-32768,-32768, 526, 2880, 522, 532,-32768,-32768,
845 2880, 2880,-32768, 1824,-32768,-32768,-32768, 3134, 3036,-32768,
846 343,-32768,-32768,-32768,-32768, 555, 3134, 556,-32768, 559,
847 560,-32768,-32768, 412,-32768, 558,-32768, 121, 557,-32768,
848 436, 438, 438, 540, 761,-32768,-32768, 290,-32768,-32768,
849-32768, 563, 567, 568, 542,-32768, 396,-32768, 541,-32768,
850 544,-32768, 546, 547, 562,-32768,-32768, 566, 549,-32768,
851-32768, 93,-32768, 574,-32768, 444, 417,-32768, 417, 329,
852 550, 128, 2112,-32768, 564,-32768,-32768,-32768,-32768,-32768,
853 575,-32768,-32768, 2490, 379, 1634,-32768, 198, 376,-32768,
854 34, 34,-32768,-32768, 396, 579, 570, 565, 578,-32768,
855 587, 2396, 396, 2591,-32768, 2692, 576, 159, 583,-32768,
856 393, 221, 3134, 21, 3134, 1018, 760,-32768, 463, 3134,
857 557, 557,-32768,-32768, 288, 436, 436, 295, 295, 132,
858 3077, 132, 132,-32768,-32768,-32768, 132,-32768, 438,-32768,
859 3134,-32768, 3134,-32768,-32768,-32768, 211,-32768,-32768,-32768,
860-32768,-32768,-32768, 582, 588, 571,-32768,-32768,-32768, 586,
861 132,-32768,-32768, 1824,-32768,-32768, 376, 434, 2208,-32768,
862-32768, 373,-32768,-32768, 34, 34,-32768,-32768, 561,-32768,
863-32768,-32768,-32768,-32768, 249,-32768,-32768,-32768,-32768,-32768,
864-32768, 132, 594, 3134, 596,-32768, 595, 558, 419, 3134,
865 598, 625, 599, 601, 603,-32768,-32768, 2880, 425,-32768,
866-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 288,-32768,
867-32768,-32768, 20,-32768,-32768,-32768, 295, 606,-32768, 445,
868 -7,-32768,-32768,-32768, 617,-32768, 619, 614,-32768, 613,
869-32768, 611, 642, 472,-32768, 1538,-32768,-32768,-32768, 615,
870-32768,-32768, 396, -7,-32768, 132,-32768, 221, 2786, 3134,
871-32768, 28, 3134,-32768,-32768,-32768,-32768, 889,-32768,-32768,
872-32768,-32768,-32768, 221, 2880,-32768, 605,-32768, 132, 132,
873 597,-32768,-32768, 132, 648,-32768,-32768, 396, 637,-32768,
874-32768, 605,-32768,-32768, 2880,-32768,-32768, 558, 3134, 622,
875-32768, 277,-32768, 115, 396, 3134, 572,-32768,-32768, 572,
876-32768,-32768,-32768, 650, 572,-32768, 558,-32768,-32768, 221,
877 2880, 3134, 282, 654, 3134, 607, 620, 3134, 607,-32768,
878 616,-32768,-32768,-32768, 659, 631, 623, 635, 623, 641,
879 623, 3134,-32768, 672, 673, 334, 3134, 633, 192, 647,
880-32768, 633,-32768,-32768,-32768,-32768, 676, 3134, 649, 192,
881 677, 187,-32768, 678, 656,-32768, 657,-32768, 684,-32768,
882 65,-32768, 200, 192,-32768, 245, 668,-32768,-32768, 192,
883-32768,-32768, 709,-32768, 189, 189,-32768, 451, 730,-32768,
884 725,-32768,-32768, 726,-32768, 47, 189,-32768, 250, 309,
885 335,-32768, 730,-32768,-32768, 452,-32768, 464,-32768,-32768,
886 739, 740,-32768
887};
888
889static const short yypgoto[] = {-32768,
890-32768,-32768,-32768,-32768, 655,-32768,-32768, 741, 743,-32768,
891-32768,-32768, 371, 748,-32768,-32768, 621, 629, 640,-32768,
892 -120,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
893-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 661,-32768,
894 -6,-32768, 651,-32768, 545,-32768, 539, 537,-32768,-32768,
895 552, -114, 573, -179,-32768, 316,-32768, -434,-32768, 188,
896 -522, 215, -77, 180, 178, 255, -420, 166,-32768, -165,
897-32768,-32768, -406,-32768, -251, -288, -326,-32768,-32768,-32768,
898-32768,-32768, 432,-32768,-32768, -76,-32768,-32768,-32768, -3,
899 -18,-32768, 45,-32768,-32768, 440, 524, -79,-32768,-32768,
900 63,-32768, -93, -135, 369, 443, -174, 287, -189, -212,
901 -101, 569, -32, -257, 643, -137,-32768, 580,-32768,-32768,
902-32768, -532, -201, -254,-32768, 137, -95, 508,-32768,-32768,
903 -282, 505,-32768,-32768, 515, -264, -173,-32768,-32768, -243,
904-32768, -297,-32768,-32768, 278, 7, -23, -38, 455, 694,
905 -373, 15, 577
906};
907
908
909#define YYLAST 3247
910
911
912static const short yytable[] = { 117,
913 99, 102, 112, 195, 185, 147, 208, 210, 15, 19,
914 412, 197, 295, 179, 15, 295, 394, 111, 251, 140,
915 119, 202, 19, 378, 270, 340, 342, 274, 2, 116,
916 106, 131, 384, 496, 390, 444, 388, 398, 399, 244,
917 441, 390, 586, 594, 335, 207, 218, 220, 100, 669,
918 319, 530, 544, 323, 103, 541, 326, 509, 109, 125,
919 150, 126, 605, 360, 327, 610, 101, 442, 601, 179,
920 642, 650, 644, 128, 425, 136, 177, 380, 569, 104,
921 150, 128, 128, 672, 627, 3, 139, 150, 525, 562,
922 329, 370, 380, 332, 141, 639, 545, 150, 216, 217,
923 150, 651, 262, 150, 150, 174, 218, 220, 218, 220,
924 15, 107, 487, -55, 19, 349, 580, 358, 517, 518,
925 99, 219, 217, 116, -101, 275, 179, 350, 468, 212,
926 470, 483, 231, 99, 99, 484, 108, 343, 217, 344,
927 179, 179, 340, 342, 497, 591, 468, 179, 276, -101,
928 214, 9, 563, 391, 213, 255, 10, 150, 468, 392,
929 592, 19, 263, 247, 428, 234, 346, 226, 100, 221,
930 227, 273, 390, 434, 150, 578, 579, 430, 111, 436,
931 213, 100, 100, 471, 474, 482, 101, 213, 620, 177,
932 622, 655, 642, 643, 644, 461, 213, 270, 656, 101,
933 101, 630, 417, 177, 177, 395, 540, 216, 217, 630,
934 177, 317, 632, 631, 150, 532, 631, 502, 174, 208,
935 210, 645, 123, 641, 631, 340, 8, 493, 282, 283,
936 284, 285, 174, 174, 652, 330, 331, 654, 344, 500,
937 344, 158, 213, 9, 159, 130, 9, 655, 10, 160,
938 161, 115, 162, 151, 656, 522, 218, 440, 9, 656,
939 163, 584, 527, 10, 164, 165, 11, 373, 373, 631,
940 317, 262, 166, 512, 631, 568, 152, 167, 150, 456,
941 523, 657, 153, 589, 282, 283, 284, 285, 603, 282,
942 283, 284, 285, 168, 458, 182, 458, 278, 279, 411,
943 488, 489, 208, 219, 217, 401, 402, 9, 590, 163,
944 280, 655, 281, 213, 587, 180, 150, 150, 656, 187,
945 403, 166, 404, 405, 406, 407, 150, 282, 283, 284,
946 285, 570, 408, 631, 150, 440, 482, 655, 343, 217,
947 626, 286, 155, 467, 656, 675, 288, 156, 282, 283,
948 284, 285, -404, 64, 184, 66, 188, 68, 69, 631,
949 189, 71, 72, 73, 74, 538, 665, 666, 77, 78,
950 373, 677, 373, 198, 282, 283, 284, 285, 673, -247,
951 674, 16, 473, 111, 355, 439, 217, 199, 356, 217,
952 602, 9, 9, 289, 290, 557, 10, 10, 357, 150,
953 291, 142, 660, 130, 482, 143, 490, 513, 494, 495,
954 623, 660, 660, 490, 158, 144, 326, 159, 676, 678,
955 130, 278, 279, 660, 327, 660, 660, 660, 463, 561,
956 317, 9, 280, 163, 349, 515, 281, 490, 158, 438,
957 222, 159, 223, 356, 217, 166, 350, 278, 15, 233,
958 530, 282, 283, 284, 285, 531, 538, 9, 130, 537,
959 593, 539, 281, 235, 583, 286, 287, 238, 490, 243,
960 288, 239, 217, 236, 111, 237, 530, 282, 283, 284,
961 285, 543, 667, 667, 150, 349, 326, 668, 679, 467,
962 158, 286, 245, 159, 327, 667, 288, 350, 228, 229,
963 680, 162, 597, 554, 246, 574, 555, 599, 248, 163,
964 209, 211, 558, 230, 132, 134, 214, 289, 290, 150,
965 256, 166, 337, 339, 291, 567, 167, 485, 486, 133,
966 135, 257, 490, 264, 111, 325, 150, 271, 258, 259,
967 272, 575, 333, 289, 290, 352, 334, 581, 354, 353,
968 291, 574, 363, 364, 365, 490, 490, 368, 371, 158,
969 15, 567, 159, 372, 383, 385, 278, 279, 386, 387,
970 400, 390, 413, 414, 415, 416, 9, 418, 163, 419,
971 635, 281, 420, 421, 424, 448, 427, 567, 422, 451,
972 166, 635, 423, 453, 431, 634, 282, 283, 284, 285,
973 426, 433, 111, 449, 635, 635, 634, 662, 503, 460,
974 286, 635, 452, 462, 504, 288, 662, 662, 519, 634,
975 634, 505, 506, 664, 526, 529, 634, 528, 662, 533,
976 662, 662, 662, 158, -405, 534, 159, 535, 21, 536,
977 278, 279, 542, 548, 549, 550, 551, 552, 553, 560,
978 472, 280, 163, 576, 582, 281, 544, 280, 588, 598,
979 604, 612, 289, 290, 166, 613, 608, 606, 619, 291,
980 282, 283, 284, 285, 617, 614, 595, 621, 624, 625,
981 628, 636, 638, 640, 286, 287, -406, 646, 647, 288,
982 649, 648, 663, 615, 476, 477, 478, 27, 28, 29,
983 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
984 40, 41, 42, 43, 44, 45, 644, 46, 47, 48,
985 49, 50, 51, 52, 53, 54, 55, 110, 57, 58,
986 59, 60, 669, 61, 670, 671, 289, 290, 682, 683,
987 138, 7, 454, 291, 192, 64, 84, 66, 67, 68,
988 69, 86, 193, 71, 72, 73, 74, 75, 157, 76,
989 77, 78, 158, 194, 154, 159, 324, 21, 321, 278,
990 279, 401, 402, 338, 336, 524, 585, 600, 611, 472,
991 280, 163, 163, 616, 281, 277, 403, 637, 404, 405,
992 406, 407, 571, 166, 166, 376, 447, 437, 408, 282,
993 283, 284, 285, 475, 328, 564, 393, 232, 389, 409,
994 183, 347, 0, 286, 287, 0, 0, 0, 288, 348,
995 0, 0, 0, 476, 477, 478, 27, 28, 29, 30,
996 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
997 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
998 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
999 60, 0, 61, 0, 0, 289, 290, 0, 0, 0,
1000 0, 0, 291, 0, 64, 0, 66, 67, 68, 69,
1001 0, 0, 71, 72, 73, 74, 75, 0, 76, 77,
1002 78, 158, 0, 0, 159, 0, 21, 0, 278, 279,
1003 0, 0, 0, 0, 0, 0, 0, 0, 472, 280,
1004 163, 0, 0, 281, 0, 0, 0, 0, 0, 0,
1005 0, 0, 166, 0, 0, 0, 0, 0, 282, 283,
1006 284, 285, 0, 0, 0, 0, 0, 0, 0, 0,
1007 0, 0, 286, 287, 0, 0, 0, 288, 0, 0,
1008 0, 0, 476, 477, 478, 27, 28, 29, 30, 31,
1009 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1010 42, 43, 44, 45, 0, 46, 47, 48, 49, 50,
1011 51, 52, 53, 54, 55, 110, 57, 58, 59, 60,
1012 0, 61, 0, 0, 289, 290, 0, 0, 0, 0,
1013 0, 291, 0, 64, 0, 66, 67, 68, 69, 0,
1014 0, 71, 72, 73, 74, 75, 0, 76, 77, 78,
1015 158, 0, 0, 159, 0, 21, 0, 278, 279, 0,
1016 0, 0, 0, 0, 0, 0, 0, 472, 280, 163,
1017 0, 0, 281, 0, 0, 0, 0, 0, 0, 0,
1018 0, 166, 0, 0, 0, 0, 0, 282, 283, 284,
1019 285, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1020 0, 286, 287, 0, 0, 0, 288, 0, 0, 0,
1021 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1022 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1023 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1024 52, 53, 54, 55, 110, 57, 58, 59, 60, 0,
1025 61, 0, 0, 289, 290, 0, 0, 0, 0, 0,
1026 291, 0, 64, 0, 66, 67, 68, 69, 0, 0,
1027 71, 72, 73, 74, 75, 0, 76, 77, 78, 158,
1028 0, 0, 159, 0, 21, 0, 0, 160, 161, 0,
1029 162, 0, 0, 0, 0, 0, 22, 0, 163, 0,
1030 0, 0, 164, 165, 0, 0, 0, 0, 0, 64,
1031 166, 66, 0, 68, 69, 167, 0, 71, 72, 73,
1032 74, 0, 0, 0, 77, 78, 0, 0, 0, 0,
1033 0, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1034 0, 0, 169, 27, 28, 29, 30, 31, 32, 33,
1035 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1036 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1037 53, 54, 55, 110, 57, 58, 59, 60, 21, 61,
1038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1039 22, 64, 0, 66, 67, 68, 69, 0, 0, 71,
1040 72, 73, 74, 75, 0, 76, 77, 78, 0, 0,
1041 0, 0, 0, 0, 0, 0, 0, 0, 23, 0,
1042 24, 0, 0, 0, 0, 0, 25, 0, 0, 0,
1043 0, 0, 26, 0, 0, 0, 0, 27, 28, 29,
1044 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1045 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1046 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1047 59, 60, 0, 61, 0, 0, 0, 0, 62, 0,
1048 21, 0, 63, 0, 3, 64, 65, 66, 67, 68,
1049 69, 70, 22, 71, 72, 73, 74, 75, 0, 76,
1050 77, 78, 79, 80, 81, 82, 0, 0, 0, 0,
1051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1052 23, 0, 24, 0, 0, 0, 0, 0, 25, 0,
1053 0, 0, 0, 0, 26, 0, 0, 0, 0, 27,
1054 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1055 38, 39, 40, 41, 42, 43, 44, 45, 0, 46,
1056 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1057 57, 58, 59, 60, 21, 61, 0, 0, 0, 0,
1058 62, 0, 0, 0, 63, 0, 22, 64, 65, 66,
1059 67, 68, 69, 70, 0, 71, 72, 73, 74, 75,
1060 0, 76, 77, 78, 79, 80, 81, 82, 0, 0,
1061 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
1062 0, 0, 25, 0, 0, 0, 0, 0, 26, 0,
1063 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1064 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1065 44, 45, 0, 46, 47, 48, 49, 50, 51, 52,
1066 53, 54, 55, 56, 57, 58, 59, 60, 0, 61,
1067 0, 0, 0, 0, 0, 21, 0, 0, 63, 0,
1068 0, 64, 65, 66, 67, 68, 69, 22, 0, 71,
1069 72, 73, 74, 75, 0, 76, 77, 78, 79, 80,
1070 81, 82, 556, 0, 0, 0, 0, 0, 0, 0,
1071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1073 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1074 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1075 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1076 52, 53, 54, 55, 110, 57, 58, 59, 60, 438,
1077 61, 21, 0, 356, 217, 0, 0, 0, 0, 0,
1078 0, 0, 64, 22, 66, 67, 68, 69, 130, 0,
1079 71, 72, 73, 74, 75, 0, 76, 77, 78, 0,
1080 80, 81, 82, 0, 0, 0, 0, 0, 0, 0,
1081 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1083 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1084 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1085 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1086 110, 57, 58, 59, 60, 238, 61, 21, 0, 239,
1087 217, 0, 0, 0, 0, 0, 0, 0, 64, 22,
1088 66, 67, 68, 69, 0, 0, 71, 72, 73, 74,
1089 75, 249, 76, 77, 78, 0, 0, 0, 0, 0,
1090 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1091 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1092 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1093 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1094 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1095 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
1096 60, 21, 61, 0, 0, 0, 0, 0, 0, 0,
1097 0, 0, 0, 22, 64, 0, 66, 67, 68, 69,
1098 0, 0, 71, 72, 73, 74, 75, 249, 76, 77,
1099 78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1101 0, 0, 0, 0, 0, 0, 0, 313, 314, 0,
1102 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1103 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1104 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1105 110, 57, 58, 59, 60, 0, 61, 21, 0, 0,
1106 0, 0, 0, 0, 0, 0, 0, 0, 64, 22,
1107 66, 67, 68, 69, 0, 0, 71, 72, 73, 74,
1108 75, 0, 76, 77, 78, 0, 318, 0, 0, 0,
1109 0, 0, 0, 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, 27, 28, 29, 30,
1112 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1113 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1114 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
1115 60, 0, 61, 21, 0, 0, 0, 0, 0, 0,
1116 0, 0, 0, 0, 64, 22, 66, 67, 68, 69,
1117 0, 0, 71, 72, 73, 74, 75, 249, 76, 77,
1118 78, 0, 322, 0, 0, 0, 0, 0, 0, 0,
1119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1121 0, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1122 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1123 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1124 54, 55, 110, 57, 58, 59, 60, 0, 61, 21,
1125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1126 64, 22, 66, 67, 68, 69, 0, 0, 71, 72,
1127 73, 74, 75, 249, 76, 77, 78, 0, 429, 0,
1128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1130 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1131 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1132 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1133 48, 49, 50, 51, 52, 53, 54, 55, 110, 57,
1134 58, 59, 60, 0, 61, 21, 0, 0, 0, 0,
1135 0, 0, 0, 0, 0, 0, 64, 22, 66, 67,
1136 68, 69, 0, 0, 71, 72, 73, 74, 75, 249,
1137 76, 77, 78, 0, 511, 0, 0, 0, 0, 0,
1138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1140 0, 0, 0, 0, 27, 28, 29, 30, 31, 32,
1141 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1142 43, 44, 45, 0, 46, 47, 48, 49, 50, 51,
1143 52, 53, 54, 55, 110, 57, 58, 59, 60, 21,
1144 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1145 0, 22, 64, 0, 66, 67, 68, 69, 0, 0,
1146 71, 72, 73, 74, 75, 249, 76, 77, 78, 0,
1147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1149 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1150 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1151 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1152 48, 49, 50, 51, 52, 53, 54, 55, 110, 57,
1153 58, 59, 60, 21, 61, 0, 0, 0, 0, 0,
1154 0, 0, 0, 0, 0, 22, 64, 0, 66, 67,
1155 68, 69, 0, 0, 71, 72, 73, 74, 75, 249,
1156 76, 77, 78, 0, 0, 0, 0, 0, 0, 0,
1157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1159 0, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1160 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1161 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1162 54, 55, 110, 57, 58, 59, 60, 21, 61, 0,
1163 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
1164 64, 0, 66, 67, 68, 69, 0, 266, 71, 72,
1165 73, 74, 75, 0, 76, 77, 78, 0, 0, 0,
1166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1168 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1169 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1170 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1171 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
1172 60, 0, 61, 0, 0, 0, 0, 0, 21, 0,
1173 0, 0, 0, 0, 64, 0, 66, 67, 68, 69,
1174 22, 0, 71, 72, 73, 74, 75, 435, 76, 77,
1175 78, 0, 0, 0, 0, 457, 0, 0, 0, 0,
1176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1178 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
1179 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1180 40, 41, 42, 43, 44, 45, 0, 46, 47, 48,
1181 49, 50, 51, 52, 53, 54, 55, 110, 57, 58,
1182 59, 60, 0, 61, 0, 0, 0, 0, 0, 21,
1183 0, 0, 0, 0, 0, 64, 0, 66, 67, 68,
1184 69, 22, 0, 71, 72, 73, 74, 75, 0, 76,
1185 77, 78, 0, 0, 0, 0, 459, 0, 0, 0,
1186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1188 0, 0, 0, 0, 0, 0, 0, 0, 27, 28,
1189 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1190 39, 40, 41, 42, 43, 44, 45, 0, 46, 47,
1191 48, 49, 50, 51, 52, 53, 54, 55, 110, 57,
1192 58, 59, 60, 21, 61, 0, 0, 0, 0, 0,
1193 0, 0, 0, 0, 0, 22, 64, 0, 66, 67,
1194 68, 69, 0, 0, 71, 72, 73, 74, 75, 0,
1195 76, 77, 78, 0, 0, 0, 0, 0, 0, 0,
1196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1198 0, 565, 27, 28, 29, 30, 31, 32, 33, 34,
1199 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1200 45, 0, 46, 47, 48, 49, 50, 51, 52, 53,
1201 54, 55, 110, 57, 58, 59, 60, 21, 61, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
1203 64, 0, 66, 67, 68, 69, 0, 0, 71, 72,
1204 73, 74, 75, 0, 76, 77, 78, 0, 0, 0,
1205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1207 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
1208 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1209 41, 42, 43, 44, 45, 0, 46, 47, 48, 49,
1210 50, 51, 52, 53, 54, 55, 110, 57, 58, 59,
1211 60, 0, 61, 0, 0, 0, 0, 0, 0, 0,
1212 0, 0, 0, 0, 64, 0, 66, 67, 68, 69,
1213 0, 0, 71, 72, 73, 74, 75, 0, 76, 77,
1214 78, 158, 0, 0, 159, 0, 0, 0, 278, 279,
1215 0, 0, 0, 0, 0, 0, 0, 0, 9, 280,
1216 163, 0, 0, 281, 0, 0, 0, 0, 158, 0,
1217 0, 159, 166, 0, 320, 278, 279, 0, 282, 283,
1218 284, 285, 0, 0, 0, 9, 280, 163, 0, 0,
1219 281, 0, 286, 287, 0, 0, 0, 288, 0, 166,
1220 0, 379, 0, 0, 0, 282, 283, 284, 285, 158,
1221 0, 0, 159, 0, 0, 0, 278, 279, 0, 286,
1222 287, 0, 0, 0, 288, 0, 9, 280, 163, 0,
1223 0, 281, 0, 0, 0, 0, 0, 0, 0, 0,
1224 166, 0, 492, 0, 289, 290, 282, 283, 284, 285,
1225 0, 291, 0, 0, 0, 0, 0, 0, 0, 0,
1226 286, 287, 0, 0, 0, 288, 158, 0, 0, 159,
1227 0, 289, 290, 278, 279, 0, 0, 0, 291, 0,
1228 0, 0, 0, 9, 280, 163, 0, 0, 281, 0,
1229 0, 0, 0, 0, 0, 0, 0, 166, 0, 0,
1230 0, 0, 0, 282, 283, 284, 285, 0, 0, 0,
1231 0, 0, 289, 290, 0, 0, 0, 286, 287, 291,
1232 0, 0, 288, 0, 0, 0, 0, 0, 0, 0,
1233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1236 0, 0, 0, 0, 0, 0, 0, 0, 0, 289,
1237 290, 0, 0, 0, 0, 0, 291
1238};
1239
1240static const short yycheck[] = { 23,
1241 4, 8, 21, 124, 119, 99, 142, 143, 2, 3,
1242 308, 126, 214, 109, 8, 217, 299, 21, 184, 96,
1243 24, 136, 16, 278, 199, 238, 239, 207, 57, 23,
1244 16, 70, 287, 407, 14, 362, 294, 302, 303, 177,
1245 7, 14, 565, 576, 234, 139, 148, 149, 4, 3,
1246 216, 32, 60, 219, 7, 36, 24, 431, 10, 63,
1247 99, 65, 595, 253, 32, 598, 4, 34, 591, 165,
1248 6, 7, 8, 67, 332, 79, 109, 279, 51, 32,
1249 119, 75, 76, 37, 617, 114, 90, 126, 462, 524,
1250 228, 266, 294, 231, 98, 628, 104, 136, 10, 11,
1251 139, 37, 196, 142, 143, 109, 208, 209, 210, 211,
1252 104, 7, 395, 97, 108, 23, 551, 253, 445, 446,
1253 124, 10, 11, 117, 7, 37, 222, 35, 383, 7,
1254 110, 389, 165, 137, 138, 390, 32, 10, 11, 241,
1255 236, 237, 355, 356, 409, 31, 401, 243, 37, 32,
1256 33, 20, 526, 33, 32, 7, 25, 196, 413, 39,
1257 46, 155, 7, 182, 37, 169, 243, 161, 124, 155,
1258 164, 7, 14, 353, 213, 549, 550, 343, 182, 354,
1259 32, 137, 138, 385, 386, 387, 124, 32, 609, 222,
1260 611, 3, 6, 7, 8, 37, 32, 372, 10, 137,
1261 138, 10, 317, 236, 237, 301, 489, 10, 11, 10,
1262 243, 215, 619, 25, 253, 470, 25, 7, 222, 355,
1263 356, 35, 62, 630, 25, 438, 3, 401, 40, 41,
1264 42, 43, 236, 237, 35, 229, 230, 644, 340, 413,
1265 342, 3, 32, 20, 6, 25, 20, 3, 25, 11,
1266 12, 25, 14, 7, 10, 7, 358, 359, 20, 10,
1267 22, 559, 464, 25, 26, 27, 43, 271, 272, 25,
1268 274, 365, 34, 439, 25, 530, 7, 39, 317, 373,
1269 32, 37, 3, 7, 40, 41, 42, 43, 7, 40,
1270 41, 42, 43, 55, 374, 31, 376, 10, 11, 10,
1271 396, 397, 438, 10, 11, 11, 12, 20, 32, 22,
1272 21, 3, 25, 32, 569, 6, 355, 356, 10, 111,
1273 26, 34, 28, 29, 30, 31, 365, 40, 41, 42,
1274 43, 533, 38, 25, 373, 437, 538, 3, 10, 11,
1275 7, 54, 32, 382, 10, 37, 59, 37, 40, 41,
1276 42, 43, 10, 115, 10, 117, 111, 119, 120, 25,
1277 97, 123, 124, 125, 126, 32, 655, 656, 130, 131,
1278 374, 37, 376, 34, 40, 41, 42, 43, 667, 34,
1279 669, 10, 386, 387, 6, 10, 11, 10, 10, 11,
1280 592, 20, 20, 106, 107, 516, 25, 25, 20, 438,
1281 113, 6, 646, 25, 606, 10, 400, 35, 402, 403,
1282 612, 655, 656, 407, 3, 20, 24, 6, 670, 671,
1283 25, 10, 11, 667, 32, 669, 670, 671, 36, 523,
1284 434, 20, 21, 22, 23, 442, 25, 431, 3, 6,
1285 10, 6, 27, 10, 11, 34, 35, 10, 442, 27,
1286 32, 40, 41, 42, 43, 37, 32, 20, 25, 478,
1287 575, 37, 25, 37, 558, 54, 55, 6, 462, 53,
1288 59, 10, 11, 32, 478, 32, 32, 40, 41, 42,
1289 43, 37, 32, 32, 523, 23, 24, 37, 37, 528,
1290 3, 54, 27, 6, 32, 32, 59, 35, 11, 12,
1291 37, 14, 580, 32, 6, 544, 35, 585, 7, 22,
1292 142, 143, 516, 26, 75, 76, 33, 106, 107, 558,
1293 20, 34, 236, 237, 113, 529, 39, 391, 392, 75,
1294 76, 20, 526, 25, 538, 36, 575, 34, 111, 111,
1295 34, 545, 27, 106, 107, 8, 110, 554, 32, 37,
1296 113, 590, 20, 20, 32, 549, 550, 32, 37, 3,
1297 554, 565, 6, 32, 10, 10, 10, 11, 10, 10,
1298 31, 14, 10, 7, 7, 34, 20, 37, 22, 36,
1299 619, 25, 37, 37, 36, 7, 37, 591, 27, 25,
1300 34, 630, 27, 7, 31, 619, 40, 41, 42, 43,
1301 27, 27, 606, 34, 643, 644, 630, 646, 27, 34,
1302 54, 650, 35, 31, 27, 59, 655, 656, 58, 643,
1303 644, 51, 37, 647, 31, 31, 650, 32, 667, 32,
1304 669, 670, 671, 3, 10, 37, 6, 37, 8, 37,
1305 10, 11, 37, 27, 26, 32, 34, 37, 7, 35,
1306 20, 21, 22, 49, 7, 25, 60, 21, 37, 10,
1307 7, 46, 106, 107, 34, 7, 47, 61, 34, 113,
1308 40, 41, 42, 43, 52, 45, 105, 37, 7, 7,
1309 48, 35, 7, 35, 54, 55, 10, 10, 33, 59,
1310 7, 35, 25, 63, 64, 65, 66, 67, 68, 69,
1311 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1312 80, 81, 82, 83, 84, 85, 8, 87, 88, 89,
1313 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1314 100, 101, 3, 103, 10, 10, 106, 107, 0, 0,
1315 86, 1, 372, 113, 124, 115, 4, 117, 118, 119,
1316 120, 4, 124, 123, 124, 125, 126, 127, 108, 129,
1317 130, 131, 3, 124, 104, 6, 222, 8, 217, 10,
1318 11, 11, 12, 237, 236, 460, 562, 590, 599, 20,
1319 21, 22, 22, 606, 25, 213, 26, 622, 28, 29,
1320 30, 31, 538, 34, 34, 272, 365, 355, 38, 40,
1321 41, 42, 43, 44, 225, 528, 299, 165, 294, 305,
1322 117, 243, -1, 54, 55, -1, -1, -1, 59, 243,
1323 -1, -1, -1, 64, 65, 66, 67, 68, 69, 70,
1324 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1325 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1326 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1327 101, -1, 103, -1, -1, 106, 107, -1, -1, -1,
1328 -1, -1, 113, -1, 115, -1, 117, 118, 119, 120,
1329 -1, -1, 123, 124, 125, 126, 127, -1, 129, 130,
1330 131, 3, -1, -1, 6, -1, 8, -1, 10, 11,
1331 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1332 22, -1, -1, 25, -1, -1, -1, -1, -1, -1,
1333 -1, -1, 34, -1, -1, -1, -1, -1, 40, 41,
1334 42, 43, -1, -1, -1, -1, -1, -1, -1, -1,
1335 -1, -1, 54, 55, -1, -1, -1, 59, -1, -1,
1336 -1, -1, 64, 65, 66, 67, 68, 69, 70, 71,
1337 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1338 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1339 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1340 -1, 103, -1, -1, 106, 107, -1, -1, -1, -1,
1341 -1, 113, -1, 115, -1, 117, 118, 119, 120, -1,
1342 -1, 123, 124, 125, 126, 127, -1, 129, 130, 131,
1343 3, -1, -1, 6, -1, 8, -1, 10, 11, -1,
1344 -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
1345 -1, -1, 25, -1, -1, -1, -1, -1, -1, -1,
1346 -1, 34, -1, -1, -1, -1, -1, 40, 41, 42,
1347 43, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1348 -1, 54, 55, -1, -1, -1, 59, -1, -1, -1,
1349 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1350 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1351 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1352 93, 94, 95, 96, 97, 98, 99, 100, 101, -1,
1353 103, -1, -1, 106, 107, -1, -1, -1, -1, -1,
1354 113, -1, 115, -1, 117, 118, 119, 120, -1, -1,
1355 123, 124, 125, 126, 127, -1, 129, 130, 131, 3,
1356 -1, -1, 6, -1, 8, -1, -1, 11, 12, -1,
1357 14, -1, -1, -1, -1, -1, 20, -1, 22, -1,
1358 -1, -1, 26, 27, -1, -1, -1, -1, -1, 115,
1359 34, 117, -1, 119, 120, 39, -1, 123, 124, 125,
1360 126, -1, -1, -1, 130, 131, -1, -1, -1, -1,
1361 -1, 55, -1, -1, -1, -1, -1, -1, -1, -1,
1362 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
1363 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1364 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1365 94, 95, 96, 97, 98, 99, 100, 101, 8, 103,
1366 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1367 20, 115, -1, 117, 118, 119, 120, -1, -1, 123,
1368 124, 125, 126, 127, -1, 129, 130, 131, -1, -1,
1369 -1, -1, -1, -1, -1, -1, -1, -1, 48, -1,
1370 50, -1, -1, -1, -1, -1, 56, -1, -1, -1,
1371 -1, -1, 62, -1, -1, -1, -1, 67, 68, 69,
1372 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1373 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1374 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1375 100, 101, -1, 103, -1, -1, -1, -1, 108, -1,
1376 8, -1, 112, -1, 114, 115, 116, 117, 118, 119,
1377 120, 121, 20, 123, 124, 125, 126, 127, -1, 129,
1378 130, 131, 132, 133, 134, 135, -1, -1, -1, -1,
1379 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1380 48, -1, 50, -1, -1, -1, -1, -1, 56, -1,
1381 -1, -1, -1, -1, 62, -1, -1, -1, -1, 67,
1382 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1383 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1384 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1385 98, 99, 100, 101, 8, 103, -1, -1, -1, -1,
1386 108, -1, -1, -1, 112, -1, 20, 115, 116, 117,
1387 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
1388 -1, 129, 130, 131, 132, 133, 134, 135, -1, -1,
1389 -1, -1, -1, -1, -1, -1, 50, -1, -1, -1,
1390 -1, -1, 56, -1, -1, -1, -1, -1, 62, -1,
1391 -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
1392 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1393 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1394 94, 95, 96, 97, 98, 99, 100, 101, -1, 103,
1395 -1, -1, -1, -1, -1, 8, -1, -1, 112, -1,
1396 -1, 115, 116, 117, 118, 119, 120, 20, -1, 123,
1397 124, 125, 126, 127, -1, 129, 130, 131, 132, 133,
1398 134, 135, 35, -1, -1, -1, -1, -1, -1, -1,
1399 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1400 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1401 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1402 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1403 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1404 93, 94, 95, 96, 97, 98, 99, 100, 101, 6,
1405 103, 8, -1, 10, 11, -1, -1, -1, -1, -1,
1406 -1, -1, 115, 20, 117, 118, 119, 120, 25, -1,
1407 123, 124, 125, 126, 127, -1, 129, 130, 131, -1,
1408 133, 134, 135, -1, -1, -1, -1, -1, -1, -1,
1409 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1410 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1411 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1412 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1413 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1414 97, 98, 99, 100, 101, 6, 103, 8, -1, 10,
1415 11, -1, -1, -1, -1, -1, -1, -1, 115, 20,
1416 117, 118, 119, 120, -1, -1, 123, 124, 125, 126,
1417 127, 128, 129, 130, 131, -1, -1, -1, -1, -1,
1418 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1420 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1421 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1422 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1423 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1424 101, 8, 103, -1, -1, -1, -1, -1, -1, -1,
1425 -1, -1, -1, 20, 115, -1, 117, 118, 119, 120,
1426 -1, -1, 123, 124, 125, 126, 127, 128, 129, 130,
1427 131, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1428 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1429 -1, -1, -1, -1, -1, -1, -1, 64, 65, -1,
1430 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1431 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1432 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1433 97, 98, 99, 100, 101, -1, 103, 8, -1, -1,
1434 -1, -1, -1, -1, -1, -1, -1, -1, 115, 20,
1435 117, 118, 119, 120, -1, -1, 123, 124, 125, 126,
1436 127, -1, 129, 130, 131, -1, 37, -1, -1, -1,
1437 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1438 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1439 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1440 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1441 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1442 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1443 101, -1, 103, 8, -1, -1, -1, -1, -1, -1,
1444 -1, -1, -1, -1, 115, 20, 117, 118, 119, 120,
1445 -1, -1, 123, 124, 125, 126, 127, 128, 129, 130,
1446 131, -1, 37, -1, -1, -1, -1, -1, -1, -1,
1447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1449 -1, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1450 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1451 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1452 95, 96, 97, 98, 99, 100, 101, -1, 103, 8,
1453 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1454 115, 20, 117, 118, 119, 120, -1, -1, 123, 124,
1455 125, 126, 127, 128, 129, 130, 131, -1, 37, -1,
1456 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1457 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1458 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1459 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1460 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1461 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1462 99, 100, 101, -1, 103, 8, -1, -1, -1, -1,
1463 -1, -1, -1, -1, -1, -1, 115, 20, 117, 118,
1464 119, 120, -1, -1, 123, 124, 125, 126, 127, 128,
1465 129, 130, 131, -1, 37, -1, -1, -1, -1, -1,
1466 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1467 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1468 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1469 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1470 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1471 93, 94, 95, 96, 97, 98, 99, 100, 101, 8,
1472 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1473 -1, 20, 115, -1, 117, 118, 119, 120, -1, -1,
1474 123, 124, 125, 126, 127, 128, 129, 130, 131, -1,
1475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1477 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1478 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1479 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1480 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1481 99, 100, 101, 8, 103, -1, -1, -1, -1, -1,
1482 -1, -1, -1, -1, -1, 20, 115, -1, 117, 118,
1483 119, 120, -1, -1, 123, 124, 125, 126, 127, 128,
1484 129, 130, 131, -1, -1, -1, -1, -1, -1, -1,
1485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1487 -1, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1488 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1489 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1490 95, 96, 97, 98, 99, 100, 101, 8, 103, -1,
1491 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1492 115, -1, 117, 118, 119, 120, -1, 122, 123, 124,
1493 125, 126, 127, -1, 129, 130, 131, -1, -1, -1,
1494 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1495 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1496 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1497 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1498 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1499 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1500 101, -1, 103, -1, -1, -1, -1, -1, 8, -1,
1501 -1, -1, -1, -1, 115, -1, 117, 118, 119, 120,
1502 20, -1, 123, 124, 125, 126, 127, 128, 129, 130,
1503 131, -1, -1, -1, -1, 35, -1, -1, -1, -1,
1504 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1506 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1507 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1508 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1509 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1510 100, 101, -1, 103, -1, -1, -1, -1, -1, 8,
1511 -1, -1, -1, -1, -1, 115, -1, 117, 118, 119,
1512 120, 20, -1, 123, 124, 125, 126, 127, -1, 129,
1513 130, 131, -1, -1, -1, -1, 35, -1, -1, -1,
1514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1516 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1517 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1518 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1519 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1520 99, 100, 101, 8, 103, -1, -1, -1, -1, -1,
1521 -1, -1, -1, -1, -1, 20, 115, -1, 117, 118,
1522 119, 120, -1, -1, 123, 124, 125, 126, 127, -1,
1523 129, 130, 131, -1, -1, -1, -1, -1, -1, -1,
1524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1526 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1527 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1528 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1529 95, 96, 97, 98, 99, 100, 101, 8, 103, -1,
1530 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1531 115, -1, 117, 118, 119, 120, -1, -1, 123, 124,
1532 125, 126, 127, -1, 129, 130, 131, -1, -1, -1,
1533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1534 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1535 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1536 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1537 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1538 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1539 101, -1, 103, -1, -1, -1, -1, -1, -1, -1,
1540 -1, -1, -1, -1, 115, -1, 117, 118, 119, 120,
1541 -1, -1, 123, 124, 125, 126, 127, -1, 129, 130,
1542 131, 3, -1, -1, 6, -1, -1, -1, 10, 11,
1543 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1544 22, -1, -1, 25, -1, -1, -1, -1, 3, -1,
1545 -1, 6, 34, -1, 36, 10, 11, -1, 40, 41,
1546 42, 43, -1, -1, -1, 20, 21, 22, -1, -1,
1547 25, -1, 54, 55, -1, -1, -1, 59, -1, 34,
1548 -1, 36, -1, -1, -1, 40, 41, 42, 43, 3,
1549 -1, -1, 6, -1, -1, -1, 10, 11, -1, 54,
1550 55, -1, -1, -1, 59, -1, 20, 21, 22, -1,
1551 -1, 25, -1, -1, -1, -1, -1, -1, -1, -1,
1552 34, -1, 36, -1, 106, 107, 40, 41, 42, 43,
1553 -1, 113, -1, -1, -1, -1, -1, -1, -1, -1,
1554 54, 55, -1, -1, -1, 59, 3, -1, -1, 6,
1555 -1, 106, 107, 10, 11, -1, -1, -1, 113, -1,
1556 -1, -1, -1, 20, 21, 22, -1, -1, 25, -1,
1557 -1, -1, -1, -1, -1, -1, -1, 34, -1, -1,
1558 -1, -1, -1, 40, 41, 42, 43, -1, -1, -1,
1559 -1, -1, 106, 107, -1, -1, -1, 54, 55, 113,
1560 -1, -1, 59, -1, -1, -1, -1, -1, -1, -1,
1561 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1562 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1563 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1564 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
1565 107, -1, -1, -1, -1, -1, 113
1566};
1567/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1568#line 3 "/usr/share/misc/bison.simple"
1569
1570/* Skeleton output parser for bison,
1571 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1572
1573 This program is free software; you can redistribute it and/or modify
1574 it under the terms of the GNU General Public License as published by
1575 the Free Software Foundation; either version 2, or (at your option)
1576 any later version.
1577
1578 This program is distributed in the hope that it will be useful,
1579 but WITHOUT ANY WARRANTY; without even the implied warranty of
1580 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1581 GNU General Public License for more details.
1582
1583 You should have received a copy of the GNU General Public License
1584 along with this program; if not, write to the Free Software
1585 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1586
1587/* As a special exception, when this file is copied by Bison into a
1588 Bison output file, you may use that output file without restriction.
1589 This special exception was added by the Free Software Foundation
1590 in version 1.24 of Bison. */
1591
1592#ifndef alloca
1593#ifdef __GNUC__
1594#define alloca __builtin_alloca
1595#else /* not GNU C. */
1596#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1597#include <alloca.h>
1598#else /* not sparc */
1599#if defined (MSDOS) && !defined (__TURBOC__)
1600#include <malloc.h>
1601#else /* not MSDOS, or __TURBOC__ */
1602#if defined(_AIX)
1603#include <malloc.h>
1604 #pragma alloca
1605#else /* not MSDOS, __TURBOC__, or _AIX */
1606#ifdef __hpux
1607#ifdef __cplusplus
1608extern "C" {
1609void *alloca (unsigned int);
1610};
1611#else /* not __cplusplus */
1612void *alloca ();
1613#endif /* not __cplusplus */
1614#endif /* __hpux */
1615#endif /* not _AIX */
1616#endif /* not MSDOS, or __TURBOC__ */
1617#endif /* not sparc. */
1618#endif /* not GNU C. */
1619#endif /* alloca not defined. */
1620
1621/* This is the parser code that is written into each bison parser
1622 when the %semantic_parser declaration is not specified in the grammar.
1623 It was written by Richard Stallman by simplifying the hairy parser
1624 used when %semantic_parser is specified. */
1625
1626/* Note: there must be only one dollar sign in this file.
1627 It is replaced by the list of actions, each action
1628 as one case of the switch. */
1629
1630#define yyerrok (yyerrstatus = 0)
1631#define yyclearin (yychar = YYEMPTY)
1632#define YYEMPTY -2
1633#define YYEOF 0
1634#define YYACCEPT return(0)
1635#define YYABORT return(1)
1636#define YYERROR goto yyerrlab1
1637/* Like YYERROR except do call yyerror.
1638 This remains here temporarily to ease the
1639 transition to the new meaning of YYERROR, for GCC.
1640 Once GCC version 2 has supplanted version 1, this can go. */
1641#define YYFAIL goto yyerrlab
1642#define YYRECOVERING() (!!yyerrstatus)
1643#define YYBACKUP(token, value) \
1644do \
1645 if (yychar == YYEMPTY && yylen == 1) \
1646 { yychar = (token), yylval = (value); \
1647 yychar1 = YYTRANSLATE (yychar); \
1648 YYPOPSTACK; \
1649 goto yybackup; \
1650 } \
1651 else \
1652 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1653while (0)
1654
1655#define YYTERROR 1
1656#define YYERRCODE 256
1657
1658#ifndef YYPURE
1659#define YYLEX yylex()
1660#endif
1661
1662#ifdef YYPURE
1663#ifdef YYLSP_NEEDED
1664#ifdef YYLEX_PARAM
1665#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1666#else
1667#define YYLEX yylex(&yylval, &yylloc)
1668#endif
1669#else /* not YYLSP_NEEDED */
1670#ifdef YYLEX_PARAM
1671#define YYLEX yylex(&yylval, YYLEX_PARAM)
1672#else
1673#define YYLEX yylex(&yylval)
1674#endif
1675#endif /* not YYLSP_NEEDED */
1676#endif
1677
1678/* If nonreentrant, generate the variables here */
1679
1680#ifndef YYPURE
1681
1682int yychar; /* the lookahead symbol */
1683YYSTYPE yylval; /* the semantic value of the */
1684 /* lookahead symbol */
1685
1686#ifdef YYLSP_NEEDED
1687YYLTYPE yylloc; /* location data for the lookahead */
1688 /* symbol */
1689#endif
1690
1691int yynerrs; /* number of parse errors so far */
1692#endif /* not YYPURE */
1693
1694#if YYDEBUG != 0
1695int yydebug; /* nonzero means print parse trace */
1696/* Since this is uninitialized, it does not stop multiple parsers
1697 from coexisting. */
1698#endif
1699
1700/* YYINITDEPTH indicates the initial size of the parser's stacks */
1701
1702#ifndef YYINITDEPTH
1703#define YYINITDEPTH 200
1704#endif
1705
1706/* YYMAXDEPTH is the maximum size the stacks can grow to
1707 (effective only if the built-in stack extension method is used). */
1708
1709#if YYMAXDEPTH == 0
1710#undef YYMAXDEPTH
1711#endif
1712
1713#ifndef YYMAXDEPTH
1714#define YYMAXDEPTH 10000
1715#endif
1716
1717/* Prevent warning if -Wstrict-prototypes. */
1718#ifdef __GNUC__
1719int yyparse (void);
1720#endif
1721\f
1722#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1723#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1724#else /* not GNU C or C++ */
1725#ifndef __cplusplus
1726
1727/* This is the most reliable way to avoid incompatibilities
1728 in available built-in functions on various systems. */
1729static void
1730__yy_memcpy (to, from, count)
1731 char *to;
1732 char *from;
1733 int count;
1734{
1735 register char *f = from;
1736 register char *t = to;
1737 register int i = count;
1738
1739 while (i-- > 0)
1740 *t++ = *f++;
1741}
1742
1743#else /* __cplusplus */
1744
1745/* This is the most reliable way to avoid incompatibilities
1746 in available built-in functions on various systems. */
1747static void
1748__yy_memcpy (char *to, char *from, int count)
1749{
1750 register char *f = from;
1751 register char *t = to;
1752 register int i = count;
1753
1754 while (i-- > 0)
1755 *t++ = *f++;
1756}
1757
1758#endif
1759#endif
1760\f
1761#line 196 "/usr/share/misc/bison.simple"
1762
1763/* The user can define YYPARSE_PARAM as the name of an argument to be passed
1764 into yyparse. The argument should have type void *.
1765 It should actually point to an object.
1766 Grammar actions can access the variable by casting it
1767 to the proper pointer type. */
1768
1769#ifdef YYPARSE_PARAM
1770#ifdef __cplusplus
1771#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1772#define YYPARSE_PARAM_DECL
1773#else /* not __cplusplus */
1774#define YYPARSE_PARAM_ARG YYPARSE_PARAM
1775#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1776#endif /* not __cplusplus */
1777#else /* not YYPARSE_PARAM */
1778#define YYPARSE_PARAM_ARG
1779#define YYPARSE_PARAM_DECL
1780#endif /* not YYPARSE_PARAM */
1781
1782int
1783yyparse(YYPARSE_PARAM_ARG)
1784 YYPARSE_PARAM_DECL
1785{
1786 register int yystate;
1787 register int yyn;
1788 register short *yyssp;
1789 register YYSTYPE *yyvsp;
1790 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1791 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1792
1793 short yyssa[YYINITDEPTH]; /* the state stack */
1794 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1795
1796 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1797 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1798
1799#ifdef YYLSP_NEEDED
1800 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1801 YYLTYPE *yyls = yylsa;
1802 YYLTYPE *yylsp;
1803
1804#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1805#else
1806#define YYPOPSTACK (yyvsp--, yyssp--)
1807#endif
1808
1809 int yystacksize = YYINITDEPTH;
1810
1811#ifdef YYPURE
1812 int yychar;
1813 YYSTYPE yylval;
1814 int yynerrs;
1815#ifdef YYLSP_NEEDED
1816 YYLTYPE yylloc;
1817#endif
1818#endif
1819
1820 YYSTYPE yyval; /* the variable used to return */
1821 /* semantic values from the action */
1822 /* routines */
1823
1824 int yylen;
1825
1826#if YYDEBUG != 0
1827 if (yydebug)
1828 fprintf(stderr, "Starting parse\n");
1829#endif
1830
1831 yystate = 0;
1832 yyerrstatus = 0;
1833 yynerrs = 0;
1834 yychar = YYEMPTY; /* Cause a token to be read. */
1835
1836 /* Initialize stack pointers.
1837 Waste one element of value and location stack
1838 so that they stay on the same level as the state stack.
1839 The wasted elements are never initialized. */
1840
1841 yyssp = yyss - 1;
1842 yyvsp = yyvs;
1843#ifdef YYLSP_NEEDED
1844 yylsp = yyls;
1845#endif
1846
1847/* Push a new state, which is found in yystate . */
1848/* In all cases, when you get here, the value and location stacks
1849 have just been pushed. so pushing a state here evens the stacks. */
1850yynewstate:
1851
1852 *++yyssp = yystate;
1853
1854 if (yyssp >= yyss + yystacksize - 1)
1855 {
1856 /* Give user a chance to reallocate the stack */
1857 /* Use copies of these so that the &'s don't force the real ones into memory. */
1858 YYSTYPE *yyvs1 = yyvs;
1859 short *yyss1 = yyss;
1860#ifdef YYLSP_NEEDED
1861 YYLTYPE *yyls1 = yyls;
1862#endif
1863
1864 /* Get the current used size of the three stacks, in elements. */
1865 int size = yyssp - yyss + 1;
1866
1867#ifdef yyoverflow
1868 /* Each stack pointer address is followed by the size of
1869 the data in use in that stack, in bytes. */
1870#ifdef YYLSP_NEEDED
1871 /* This used to be a conditional around just the two extra args,
1872 but that might be undefined if yyoverflow is a macro. */
1873 yyoverflow("parser stack overflow",
1874 &yyss1, size * sizeof (*yyssp),
1875 &yyvs1, size * sizeof (*yyvsp),
1876 &yyls1, size * sizeof (*yylsp),
1877 &yystacksize);
1878#else
1879 yyoverflow("parser stack overflow",
1880 &yyss1, size * sizeof (*yyssp),
1881 &yyvs1, size * sizeof (*yyvsp),
1882 &yystacksize);
1883#endif
1884
1885 yyss = yyss1; yyvs = yyvs1;
1886#ifdef YYLSP_NEEDED
1887 yyls = yyls1;
1888#endif
1889#else /* no yyoverflow */
1890 /* Extend the stack our own way. */
1891 if (yystacksize >= YYMAXDEPTH)
1892 {
1893 yyerror("parser stack overflow");
1894 return 2;
1895 }
1896 yystacksize *= 2;
1897 if (yystacksize > YYMAXDEPTH)
1898 yystacksize = YYMAXDEPTH;
1899 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1900 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
1901 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1902 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
1903#ifdef YYLSP_NEEDED
1904 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1905 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
1906#endif
1907#endif /* no yyoverflow */
1908
1909 yyssp = yyss + size - 1;
1910 yyvsp = yyvs + size - 1;
1911#ifdef YYLSP_NEEDED
1912 yylsp = yyls + size - 1;
1913#endif
1914
1915#if YYDEBUG != 0
1916 if (yydebug)
1917 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1918#endif
1919
1920 if (yyssp >= yyss + yystacksize - 1)
1921 YYABORT;
1922 }
1923
1924#if YYDEBUG != 0
1925 if (yydebug)
1926 fprintf(stderr, "Entering state %d\n", yystate);
1927#endif
1928
1929 goto yybackup;
1930 yybackup:
1931
1932/* Do appropriate processing given the current state. */
1933/* Read a lookahead token if we need one and don't already have one. */
1934/* yyresume: */
1935
1936 /* First try to decide what to do without reference to lookahead token. */
1937
1938 yyn = yypact[yystate];
1939 if (yyn == YYFLAG)
1940 goto yydefault;
1941
1942 /* Not known => get a lookahead token if don't already have one. */
1943
1944 /* yychar is either YYEMPTY or YYEOF
1945 or a valid token in external form. */
1946
1947 if (yychar == YYEMPTY)
1948 {
1949#if YYDEBUG != 0
1950 if (yydebug)
1951 fprintf(stderr, "Reading a token: ");
1952#endif
1953 yychar = YYLEX;
1954 }
1955
1956 /* Convert token to internal form (in yychar1) for indexing tables with */
1957
1958 if (yychar <= 0) /* This means end of input. */
1959 {
1960 yychar1 = 0;
1961 yychar = YYEOF; /* Don't call YYLEX any more */
1962
1963#if YYDEBUG != 0
1964 if (yydebug)
1965 fprintf(stderr, "Now at end of input.\n");
1966#endif
1967 }
1968 else
1969 {
1970 yychar1 = YYTRANSLATE(yychar);
1971
1972#if YYDEBUG != 0
1973 if (yydebug)
1974 {
1975 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1976 /* Give the individual parser a way to print the precise meaning
1977 of a token, for further debugging info. */
1978#ifdef YYPRINT
1979 YYPRINT (stderr, yychar, yylval);
1980#endif
1981 fprintf (stderr, ")\n");
1982 }
1983#endif
1984 }
1985
1986 yyn += yychar1;
1987 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1988 goto yydefault;
1989
1990 yyn = yytable[yyn];
1991
1992 /* yyn is what to do for this token type in this state.
1993 Negative => reduce, -yyn is rule number.
1994 Positive => shift, yyn is new state.
1995 New state is final state => don't bother to shift,
1996 just return success.
1997 0, or most negative number => error. */
1998
1999 if (yyn < 0)
2000 {
2001 if (yyn == YYFLAG)
2002 goto yyerrlab;
2003 yyn = -yyn;
2004 goto yyreduce;
2005 }
2006 else if (yyn == 0)
2007 goto yyerrlab;
2008
2009 if (yyn == YYFINAL)
2010 YYACCEPT;
2011
2012 /* Shift the lookahead token. */
2013
2014#if YYDEBUG != 0
2015 if (yydebug)
2016 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2017#endif
2018
2019 /* Discard the token being shifted unless it is eof. */
2020 if (yychar != YYEOF)
2021 yychar = YYEMPTY;
2022
2023 *++yyvsp = yylval;
2024#ifdef YYLSP_NEEDED
2025 *++yylsp = yylloc;
2026#endif
2027
2028 /* count tokens shifted since error; after three, turn off error status. */
2029 if (yyerrstatus) yyerrstatus--;
2030
2031 yystate = yyn;
2032 goto yynewstate;
2033
2034/* Do the default action for the current state. */
2035yydefault:
2036
2037 yyn = yydefact[yystate];
2038 if (yyn == 0)
2039 goto yyerrlab;
2040
2041/* Do a reduction. yyn is the number of a rule to reduce with. */
2042yyreduce:
2043 yylen = yyr2[yyn];
2044 if (yylen > 0)
2045 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2046
2047#if YYDEBUG != 0
2048 if (yydebug)
2049 {
2050 int i;
2051
2052 fprintf (stderr, "Reducing via rule %d (line %d), ",
2053 yyn, yyrline[yyn]);
2054
2055 /* Print the symbols being reduced, and their result. */
2056 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2057 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2058 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2059 }
2060#endif
2061
2062
2063 switch (yyn) {
2064
2065case 1:
2066#line 382 "llgrammar.y"
2067{ lhExternals (yyvsp[0].interfacelist); ;
2068 break;}
2069case 2:
2070#line 383 "llgrammar.y"
2071{ interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
2072 break;}
2073case 3:
2074#line 386 "llgrammar.y"
2075{ yyval.interfacelist = interfaceNodeList_new (); ;
2076 break;}
2077case 4:
2078#line 387 "llgrammar.y"
2079{ yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2080 break;}
2081case 7:
2082#line 394 "llgrammar.y"
2083{ yyval.interfacelist = interfaceNodeList_new (); ;
2084 break;}
2085case 8:
2086#line 395 "llgrammar.y"
2087{ yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2088 break;}
2089case 9:
2090#line 396 "llgrammar.y"
2091{ yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2092 break;}
2093case 10:
2094#line 399 "llgrammar.y"
2095{ yyval.interfacelist = interfaceNodeList_new (); ;
2096 break;}
2097case 11:
2098#line 400 "llgrammar.y"
2099{ yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2100 break;}
2101case 15:
2102#line 409 "llgrammar.y"
2103{ yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2104 /* assume subspecs are already processed, symbol table info in external file */
2105 ;
2106 break;}
2107case 16:
2108#line 415 "llgrammar.y"
2109{ yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
2110 break;}
2111case 17:
2112#line 419 "llgrammar.y"
2113{ declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
2114 break;}
2115case 18:
2116#line 421 "llgrammar.y"
2117{ declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
2118 break;}
2119case 19:
2120#line 423 "llgrammar.y"
2121{ declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
2122 break;}
2123case 20:
2124#line 425 "llgrammar.y"
2125{ declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
2126 break;}
2127case 21:
2128#line 427 "llgrammar.y"
2129{ yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
2130 break;}
2131case 22:
2132#line 429 "llgrammar.y"
2133{ declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
2134 break;}
2135case 23:
2136#line 433 "llgrammar.y"
2137{ yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
2138 break;}
2139case 24:
2140#line 436 "llgrammar.y"
2141{ yyval.paramlist = paramNodeList_new (); ;
2142 break;}
2143case 25:
2144#line 437 "llgrammar.y"
2145{ yyval.paramlist = yyvsp[0].paramlist; ;
2146 break;}
2147case 26:
2148#line 441 "llgrammar.y"
2149{ yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
2150 break;}
2151case 27:
2152#line 443 "llgrammar.y"
2153{ yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
2154 break;}
2155case 28:
2156#line 446 "llgrammar.y"
2157{ yyval.param = markYieldParamNode (yyvsp[0].param); ;
2158 break;}
2159case 29:
2160#line 447 "llgrammar.y"
2161{ yyval.param = yyvsp[0].param; ;
2162 break;}
2163case 30:
2164#line 450 "llgrammar.y"
2165{ symtable_export (g_symtab, FALSE); ;
2166 break;}
2167case 31:
2168#line 451 "llgrammar.y"
2169{ yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
2170 break;}
2171case 32:
2172#line 455 "llgrammar.y"
2173{ declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
2174 break;}
2175case 33:
2176#line 457 "llgrammar.y"
2177{ declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
2178 break;}
2179case 34:
2180#line 459 "llgrammar.y"
2181{ declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
2182 break;}
2183case 35:
2184#line 461 "llgrammar.y"
2185{ declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
2186 break;}
2187case 36:
2188#line 465 "llgrammar.y"
2189{ yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
2190 break;}
2191case 37:
2192#line 469 "llgrammar.y"
2193{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
2194 break;}
2195case 38:
2196#line 471 "llgrammar.y"
2197{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
2198 break;}
2199case 39:
2200#line 473 "llgrammar.y"
2201{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
2202 break;}
2203case 40:
2204#line 476 "llgrammar.y"
2205{ yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
2206 break;}
2207case 41:
2208#line 477 "llgrammar.y"
2209{ yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
2210 break;}
2211case 42:
2212#line 480 "llgrammar.y"
2213{ yyval.typequal = qual_createPrintfLike (); ;
2214 break;}
2215case 43:
2216#line 481 "llgrammar.y"
2217{ yyval.typequal = qual_createScanfLike (); ;
2218 break;}
2219case 44:
2220#line 482 "llgrammar.y"
2221{ yyval.typequal = qual_createMessageLike (); ;
2222 break;}
2223case 45:
2224#line 485 "llgrammar.y"
2225{ enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2226 break;}
2227case 46:
2228#line 487 "llgrammar.y"
2229{ yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls,
2230 yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2231 /* type, declarator, glovbls, privateinits,
2232 lets, checks, requires, modifies, ensures, claims */
2233 symtable_exitScope (g_symtab);
2234 ;
2235 break;}
2236case 47:
2237#line 493 "llgrammar.y"
2238{ enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2239 break;}
2240case 48:
2241#line 497 "llgrammar.y"
2242{ yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist,
2243 yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2244 /* type, declarator, glovbls, privateinits,
2245 lets, checks, requires, modifies, ensures, claims */
2246 symtable_exitScope (g_symtab);
2247 ;
2248 break;}
2249case 49:
2250#line 507 "llgrammar.y"
2251{ enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
2252 break;}
2253case 50:
2254#line 509 "llgrammar.y"
2255{ yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate);
2256 symtable_exitScope (g_symtab); ;
2257 break;}
2258case 51:
2259#line 512 "llgrammar.y"
2260{ yyval.claim = (claimNode) 0; ;
2261 break;}
2262case 52:
2263#line 515 "llgrammar.y"
2264{g_inTypeDef = TRUE; ;
2265 break;}
2266case 53:
2267#line 515 "llgrammar.y"
2268{g_inTypeDef = FALSE; ;
2269 break;}
2270case 54:
2271#line 516 "llgrammar.y"
2272{ yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
2273 break;}
2274case 55:
2275#line 517 "llgrammar.y"
2276{g_inTypeDef = TRUE; ;
2277 break;}
2278case 56:
2279#line 518 "llgrammar.y"
2280{g_inTypeDef = FALSE; ;
2281 break;}
2282case 57:
2283#line 519 "llgrammar.y"
2284{ yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2285 break;}
2286case 58:
2287#line 520 "llgrammar.y"
2288{g_inTypeDef = TRUE; ;
2289 break;}
2290case 59:
2291#line 521 "llgrammar.y"
2292{g_inTypeDef = FALSE; ;
2293 break;}
2294case 60:
2295#line 522 "llgrammar.y"
2296{ yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2297 break;}
2298case 61:
2299#line 523 "llgrammar.y"
2300{g_inTypeDef = TRUE; ;
2301 break;}
2302case 62:
2303#line 523 "llgrammar.y"
2304{g_inTypeDef = FALSE; ;
2305 break;}
2306case 63:
2307#line 524 "llgrammar.y"
2308{ yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
2309 break;}
2310case 64:
2311#line 527 "llgrammar.y"
2312{ g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
2313 break;}
2314case 65:
2315#line 528 "llgrammar.y"
2316{ g_inTypeDef = FALSE; ;
2317 break;}
2318case 66:
2319#line 529 "llgrammar.y"
2320{ yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
2321 break;}
2322case 67:
2323#line 531 "llgrammar.y"
2324{ yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
2325 break;}
2326case 68:
2327#line 533 "llgrammar.y"
2328{ yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
2329 break;}
2330case 69:
2331#line 549 "llgrammar.y"
2332{ yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
2333 break;}
2334case 70:
2335#line 551 "llgrammar.y"
2336{ yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
2337 break;}
2338case 71:
2339#line 554 "llgrammar.y"
2340{ yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
2341 break;}
2342case 72:
2343#line 556 "llgrammar.y"
2344{ checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
2345 break;}
2346case 73:
2347#line 557 "llgrammar.y"
2348{ yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
2349 break;}
2350case 74:
2351#line 560 "llgrammar.y"
2352{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2353 break;}
2354case 75:
2355#line 561 "llgrammar.y"
2356{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2357 break;}
2358case 77:
2359#line 569 "llgrammar.y"
2360{ yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
2361 break;}
2362case 78:
2363#line 571 "llgrammar.y"
2364{ yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
2365 break;}
2366case 79:
2367#line 575 "llgrammar.y"
2368{ yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
2369 break;}
2370case 80:
2371#line 577 "llgrammar.y"
2372{ yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
2373 break;}
2374case 81:
2375#line 579 "llgrammar.y"
2376{ yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
2377 break;}
2378case 82:
2379#line 581 "llgrammar.y"
2380{ yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
2381 break;}
2382case 83:
2383#line 584 "llgrammar.y"
2384{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2385 break;}
2386case 84:
2387#line 585 "llgrammar.y"
2388{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2389 break;}
2390case 85:
2391#line 589 "llgrammar.y"
2392{ yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
2393 break;}
2394case 86:
2395#line 591 "llgrammar.y"
2396{ yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
2397 break;}
2398case 87:
2399#line 592 "llgrammar.y"
2400{ yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
2401 break;}
2402case 88:
2403#line 596 "llgrammar.y"
2404{ yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
2405 break;}
2406case 89:
2407#line 597 "llgrammar.y"
2408{ yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
2409 break;}
2410case 90:
2411#line 601 "llgrammar.y"
2412{ yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
2413 break;}
2414case 91:
2415#line 602 "llgrammar.y"
2416{ yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
2417 break;}
2418case 92:
2419#line 605 "llgrammar.y"
2420{ yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
2421 break;}
2422case 93:
2423#line 606 "llgrammar.y"
2424{ yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
2425 break;}
2426case 94:
2427#line 607 "llgrammar.y"
2428{ yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
2429 yyvsp[-1].name, yyvsp[0].signature); ;
2430 break;}
2431case 95:
2432#line 611 "llgrammar.y"
2433{ yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
2434 break;}
2435case 96:
2436#line 612 "llgrammar.y"
2437{ yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
2438 break;}
2439case 99:
2440#line 620 "llgrammar.y"
2441{ yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
2442 break;}
2443case 100:
2444#line 622 "llgrammar.y"
2445{ yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
2446 break;}
2447case 101:
2448#line 625 "llgrammar.y"
2449{ yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
2450 break;}
2451case 102:
2452#line 626 "llgrammar.y"
2453{ yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
2454 break;}
2455case 103:
2456#line 630 "llgrammar.y"
2457{ yyval.globals = varDeclarationNodeList_new (); ;
2458 break;}
2459case 104:
2460#line 632 "llgrammar.y"
2461{ varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
2462 break;}
2463case 105:
2464#line 635 "llgrammar.y"
2465{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
2466 break;}
2467case 106:
2468#line 636 "llgrammar.y"
2469{ yyval.vardeclaration = makeInternalStateNode (); ;
2470 break;}
2471case 107:
2472#line 637 "llgrammar.y"
2473{ yyval.vardeclaration = makeFileSystemNode (); ;
2474 break;}
2475case 108:
2476#line 640 "llgrammar.y"
2477{ yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
2478 break;}
2479case 109:
2480#line 641 "llgrammar.y"
2481{ varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
2482 break;}
2483case 110:
2484#line 645 "llgrammar.y"
2485{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
2486 break;}
2487case 111:
2488#line 648 "llgrammar.y"
2489{ yyval.letdecls = letDeclNodeList_new (); ;
2490 break;}
2491case 112:
2492#line 649 "llgrammar.y"
2493{ yyval.letdecls = yyvsp[-1].letdecls; ;
2494 break;}
2495case 113:
2496#line 652 "llgrammar.y"
2497{ yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
2498 break;}
2499case 114:
2500#line 653 "llgrammar.y"
2501{ yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
2502 break;}
2503case 115:
2504#line 656 "llgrammar.y"
2505{ yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
2506 break;}
2507case 116:
2508#line 657 "llgrammar.y"
2509{ yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
2510 break;}
2511case 118:
2512#line 662 "llgrammar.y"
2513{ yyval.lclpredicate = (lclPredicateNode)0; ;
2514 break;}
2515case 119:
2516#line 663 "llgrammar.y"
2517{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2518 break;}
2519case 120:
2520#line 666 "llgrammar.y"
2521{ yyval.lclpredicate = (lclPredicateNode)0; ;
2522 break;}
2523case 121:
2524#line 667 "llgrammar.y"
2525{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2526 break;}
2527case 122:
2528#line 670 "llgrammar.y"
2529{ yyval.modify = (modifyNode)0; ;
2530 break;}
2531case 123:
2532#line 671 "llgrammar.y"
2533{ yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
2534 break;}
2535case 124:
2536#line 672 "llgrammar.y"
2537{ yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
2538 break;}
2539case 125:
2540#line 673 "llgrammar.y"
2541{ yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
2542 break;}
2543case 126:
2544#line 676 "llgrammar.y"
2545{ yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
2546 break;}
2547case 127:
2548#line 677 "llgrammar.y"
2549{ yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
2550 break;}
2551case 128:
2552#line 680 "llgrammar.y"
2553{ yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
2554 break;}
2555case 129:
2556#line 681 "llgrammar.y"
2557{ yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
2558 break;}
2559case 130:
2560#line 682 "llgrammar.y"
2561{ yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
2562 break;}
2563case 131:
2564#line 683 "llgrammar.y"
2565{ yyval.storeref = makeStoreRefNodeInternal (); ;
2566 break;}
2567case 132:
2568#line 684 "llgrammar.y"
2569{ yyval.storeref = makeStoreRefNodeSystem (); ;
2570 break;}
2571case 133:
2572#line 687 "llgrammar.y"
2573{ yyval.lclpredicate = (lclPredicateNode)0; ;
2574 break;}
2575case 134:
2576#line 688 "llgrammar.y"
2577{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2578 break;}
2579case 135:
2580#line 691 "llgrammar.y"
2581{ yyval.lclpredicate = (lclPredicateNode)0; ;
2582 break;}
2583case 136:
2584#line 692 "llgrammar.y"
2585{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2586 break;}
2587case 137:
2588#line 695 "llgrammar.y"
2589{ yyval.paramlist = paramNodeList_new (); ;
2590 break;}
2591case 138:
2592#line 696 "llgrammar.y"
2593{ yyval.paramlist = yyvsp[0].paramlist; ;
2594 break;}
2595case 140:
2596#line 700 "llgrammar.y"
2597{ yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
2598 break;}
2599case 141:
2600#line 701 "llgrammar.y"
2601{ yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
2602 break;}
2603case 142:
2604#line 704 "llgrammar.y"
2605{ yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
2606 break;}
2607case 143:
2608#line 705 "llgrammar.y"
2609{ yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
2610 break;}
2611case 144:
2612#line 708 "llgrammar.y"
2613{ yyval.program = (programNode)0; ;
2614 break;}
2615case 145:
2616#line 709 "llgrammar.y"
2617{ yyval.program = yyvsp[-1].program; ;
2618 break;}
2619case 146:
2620#line 710 "llgrammar.y"
2621{ yyval.program = yyvsp[-2].program; ;
2622 break;}
2623case 147:
2624#line 713 "llgrammar.y"
2625{ yyval.program = makeProgramNode (yyvsp[0].stmt); ;
2626 break;}
2627case 148:
2628#line 716 "llgrammar.y"
2629{ yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
2630 break;}
2631case 149:
2632#line 718 "llgrammar.y"
2633{ programNodeList x = programNodeList_new ();
2634 programNodeList_addh (x, yyvsp[-1].program);
2635 yyval.program = makeProgramNodeAction (x, ACT_ITER);
2636 ;
2637 break;}
2638case 150:
2639#line 723 "llgrammar.y"
2640{ programNodeList x = programNodeList_new ();
2641 programNodeList_addh (x, yyvsp[-2].program);
2642 programNodeList_addh (x, yyvsp[0].program);
2643 yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE);
2644 ;
2645 break;}
2646case 151:
2647#line 729 "llgrammar.y"
2648{ programNodeList x = programNodeList_new ();
2649 programNodeList_addh (x, yyvsp[-2].program);
2650 programNodeList_addh (x, yyvsp[0].program);
2651 yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE);
2652 ;
2653 break;}
2654case 152:
2655#line 737 "llgrammar.y"
2656{ yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2657 break;}
2658case 153:
2659#line 739 "llgrammar.y"
2660{ yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
2661 break;}
2662case 154:
2663#line 741 "llgrammar.y"
2664{ yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
2665 break;}
2666case 155:
2667#line 743 "llgrammar.y"
2668{ yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2669 break;}
2670case 156:
2671#line 746 "llgrammar.y"
2672{ yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
2673 break;}
2674case 157:
2675#line 747 "llgrammar.y"
2676{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
2677 break;}
2678case 159:
2679#line 751 "llgrammar.y"
2680{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
2681 break;}
2682case 160:
2683#line 752 "llgrammar.y"
2684{ yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
2685 break;}
2686case 161:
2687#line 753 "llgrammar.y"
2688{ yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
2689 break;}
2690case 162:
2691#line 754 "llgrammar.y"
2692{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
2693 break;}
2694case 163:
2695#line 755 "llgrammar.y"
2696{ yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
2697 break;}
2698case 164:
2699#line 757 "llgrammar.y"
2700{ yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
2701 break;}
2702case 165:
2703#line 759 "llgrammar.y"
2704{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
2705 break;}
2706case 166:
2707#line 762 "llgrammar.y"
2708{ yyval.abstbody = (abstBodyNode)0; ;
2709 break;}
2710case 167:
2711#line 763 "llgrammar.y"
2712{ yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
2713 break;}
2714case 168:
2715#line 764 "llgrammar.y"
2716{ yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
2717 break;}
2718case 169:
2719#line 765 "llgrammar.y"
2720{ yyval.abstbody = (abstBodyNode)0; ;
2721 break;}
2722case 170:
2723#line 768 "llgrammar.y"
2724{ yyval.fcns = fcnNodeList_new (); ;
2725 break;}
2726case 171:
2727#line 769 "llgrammar.y"
2728{ yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
2729 break;}
2730case 172:
2731#line 772 "llgrammar.y"
2732{ yyval.lclpredicate = (lclPredicateNode)0; ;
2733 break;}
2734case 174:
2735#line 776 "llgrammar.y"
2736{ g_inTypeDef = FALSE; ;
2737 break;}
2738case 175:
2739#line 777 "llgrammar.y"
2740{ yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
2741 checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
2742 yyval.lclpredicate = yyvsp[-1].lclpredicate;
2743 symtable_exitScope (g_symtab);
2744 g_inTypeDef = TRUE;
2745 ;
2746 break;}
2747case 176:
2748#line 785 "llgrammar.y"
2749{ yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
2750 break;}
2751case 177:
2752#line 787 "llgrammar.y"
2753{ yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
2754 break;}
2755case 178:
2756#line 790 "llgrammar.y"
2757{ declareForwardType (yyvsp[0].declare); ;
2758 break;}
2759case 179:
2760#line 791 "llgrammar.y"
2761{ yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
2762 break;}
2763case 180:
2764#line 794 "llgrammar.y"
2765{ yyval.abstbody = (abstBodyNode)0; ;
2766 break;}
2767case 181:
2768#line 795 "llgrammar.y"
2769{ yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2770 break;}
2771case 182:
2772#line 798 "llgrammar.y"
2773{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
2774 break;}
2775case 183:
2776#line 799 "llgrammar.y"
2777{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
2778 break;}
2779case 184:
2780#line 800 "llgrammar.y"
2781{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
2782 break;}
2783case 185:
2784#line 801 "llgrammar.y"
2785{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
2786 break;}
2787case 186:
2788#line 802 "llgrammar.y"
2789{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
2790 break;}
2791case 187:
2792#line 803 "llgrammar.y"
2793{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
2794 break;}
2795case 188:
2796#line 804 "llgrammar.y"
2797{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
2798 break;}
2799case 189:
2800#line 805 "llgrammar.y"
2801{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
2802 break;}
2803case 190:
2804#line 806 "llgrammar.y"
2805{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
2806 break;}
2807case 191:
2808#line 807 "llgrammar.y"
2809{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
2810 break;}
2811case 192:
2812#line 815 "llgrammar.y"
2813{ yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
2814 break;}
2815case 193:
2816#line 816 "llgrammar.y"
2817{ yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
2818 break;}
2819case 194:
2820#line 822 "llgrammar.y"
2821{ yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
2822 break;}
2823case 195:
2824#line 824 "llgrammar.y"
2825{ yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
2826 break;}
2827case 196:
2828#line 829 "llgrammar.y"
2829{ yyval.typequal = qual_createOut (); ;
2830 break;}
2831case 197:
2832#line 830 "llgrammar.y"
2833{ yyval.typequal = qual_createUnused (); ;
2834 break;}
2835case 198:
2836#line 831 "llgrammar.y"
2837{ yyval.typequal = qual_createSef (); ;
2838 break;}
2839case 199:
2840#line 832 "llgrammar.y"
2841{ yyval.typequal = qual_createOnly (); ;
2842 break;}
2843case 200:
2844#line 833 "llgrammar.y"
2845{ yyval.typequal = qual_createOwned (); ;
2846 break;}
2847case 201:
2848#line 834 "llgrammar.y"
2849{ yyval.typequal = qual_createDependent (); ;
2850 break;}
2851case 202:
2852#line 835 "llgrammar.y"
2853{ yyval.typequal = qual_createKeep (); ;
2854 break;}
2855case 203:
2856#line 836 "llgrammar.y"
2857{ yyval.typequal = qual_createKept (); ;
2858 break;}
2859case 204:
2860#line 837 "llgrammar.y"
2861{ yyval.typequal = qual_createObserver (); ;
2862 break;}
2863case 205:
2864#line 838 "llgrammar.y"
2865{ yyval.typequal = qual_createExits (); ;
2866 break;}
2867case 206:
2868#line 839 "llgrammar.y"
2869{ yyval.typequal = qual_createMayExit (); ;
2870 break;}
2871case 207:
2872#line 840 "llgrammar.y"
2873{ yyval.typequal = qual_createTrueExit (); ;
2874 break;}
2875case 208:
2876#line 841 "llgrammar.y"
2877{ yyval.typequal = qual_createFalseExit (); ;
2878 break;}
2879case 209:
2880#line 842 "llgrammar.y"
2881{ yyval.typequal = qual_createNeverExit (); ;
2882 break;}
2883case 210:
2884#line 843 "llgrammar.y"
2885{ yyval.typequal = qual_createOnly (); ;
2886 break;}
2887case 211:
2888#line 844 "llgrammar.y"
2889{ yyval.typequal = qual_createShared (); ;
2890 break;}
2891case 212:
2892#line 845 "llgrammar.y"
2893{ yyval.typequal = qual_createUnique (); ;
2894 break;}
2895case 213:
2896#line 846 "llgrammar.y"
2897{ yyval.typequal = qual_createChecked (); ;
2898 break;}
2899case 214:
2900#line 847 "llgrammar.y"
2901{ yyval.typequal = qual_createUnchecked (); ;
2902 break;}
2903case 215:
2904#line 848 "llgrammar.y"
2905{ yyval.typequal = qual_createCheckedStrict (); ;
2906 break;}
2907case 216:
2908#line 849 "llgrammar.y"
2909{ yyval.typequal = qual_createTrueNull (); ;
2910 break;}
2911case 217:
2912#line 850 "llgrammar.y"
2913{ yyval.typequal = qual_createFalseNull (); ;
2914 break;}
2915case 218:
2916#line 851 "llgrammar.y"
2917{ yyval.typequal = qual_createRelNull (); ;
2918 break;}
2919case 219:
2920#line 852 "llgrammar.y"
2921{ yyval.typequal = qual_createRelDef (); ;
2922 break;}
2923case 220:
2924#line 853 "llgrammar.y"
2925{ yyval.typequal = qual_createRefCounted (); ;
2926 break;}
2927case 221:
2928#line 854 "llgrammar.y"
2929{ yyval.typequal = qual_createRefs (); ;
2930 break;}
2931case 222:
2932#line 855 "llgrammar.y"
2933{ yyval.typequal = qual_createNewRef (); ;
2934 break;}
2935case 223:
2936#line 856 "llgrammar.y"
2937{ yyval.typequal = qual_createKillRef (); ;
2938 break;}
2939case 224:
2940#line 857 "llgrammar.y"
2941{ yyval.typequal = qual_createNull (); ;
2942 break;}
2943case 225:
2944#line 858 "llgrammar.y"
2945{ yyval.typequal = qual_createNotNull (); ;
2946 break;}
2947case 226:
2948#line 859 "llgrammar.y"
2949{ yyval.typequal = qual_createReturned (); ;
2950 break;}
2951case 227:
2952#line 860 "llgrammar.y"
2953{ yyval.typequal = qual_createExposed (); ;
2954 break;}
2955case 228:
2956#line 861 "llgrammar.y"
2957{ yyval.typequal = qual_createPartial (); ;
2958 break;}
2959case 229:
2960#line 862 "llgrammar.y"
2961{ yyval.typequal = qual_createUndef (); ;
2962 break;}
2963case 230:
2964#line 863 "llgrammar.y"
2965{ yyval.typequal = qual_createKilled (); ;
2966 break;}
2967case 231:
2968#line 867 "llgrammar.y"
2969{ yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
2970 break;}
2971case 232:
2972#line 869 "llgrammar.y"
2973{ yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
2974 break;}
2975case 233:
2976#line 871 "llgrammar.y"
2977{ yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
2978 break;}
2979case 234:
2980#line 873 "llgrammar.y"
2981{ yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
2982 break;}
2983case 235:
2984#line 875 "llgrammar.y"
2985{ yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
2986 break;}
2987case 237:
2988#line 885 "llgrammar.y"
2989{ llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
2990 yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
2991 break;}
2992case 238:
2993#line 889 "llgrammar.y"
2994{ yyval.count = 1; ;
2995 break;}
2996case 239:
2997#line 890 "llgrammar.y"
2998{ yyval.count = yyvsp[-1].count + 1; ;
2999 break;}
3000case 240:
3001#line 894 "llgrammar.y"
3002{ (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
3003 break;}
3004case 241:
3005#line 896 "llgrammar.y"
3006{ yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3007 break;}
3008case 242:
3009#line 898 "llgrammar.y"
3010{ (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
3011 break;}
3012case 243:
3013#line 900 "llgrammar.y"
3014{ yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3015 break;}
3016case 244:
3017#line 902 "llgrammar.y"
3018{ yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
3019 break;}
3020case 245:
3021#line 904 "llgrammar.y"
3022{ yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
3023 break;}
3024case 246:
3025#line 907 "llgrammar.y"
3026{ yyval.ltok = ltoken_undefined; ;
3027 break;}
3028case 248:
3029#line 911 "llgrammar.y"
3030{ yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
3031 break;}
3032case 249:
3033#line 912 "llgrammar.y"
3034{ yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
3035 break;}
3036case 250:
3037#line 917 "llgrammar.y"
3038{ yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
3039 break;}
3040case 251:
3041#line 921 "llgrammar.y"
3042{ yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
3043 break;}
3044case 252:
3045#line 923 "llgrammar.y"
3046{ yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
3047 break;}
3048case 253:
3049#line 926 "llgrammar.y"
3050{ ; ;
3051 break;}
3052case 254:
3053#line 927 "llgrammar.y"
3054{ ; ;
3055 break;}
3056case 255:
3057#line 931 "llgrammar.y"
3058{ yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
3059 break;}
3060case 256:
3061#line 933 "llgrammar.y"
3062{ yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
3063 break;}
3064case 257:
3065#line 936 "llgrammar.y"
3066{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3067 break;}
3068case 258:
3069#line 937 "llgrammar.y"
3070{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3071 break;}
3072case 259:
3073#line 947 "llgrammar.y"
3074{ yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3075 break;}
3076case 260:
3077#line 948 "llgrammar.y"
3078{ yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3079 break;}
3080case 261:
3081#line 951 "llgrammar.y"
3082{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3083 break;}
3084case 262:
3085#line 952 "llgrammar.y"
3086{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3087 break;}
3088case 263:
3089#line 953 "llgrammar.y"
3090{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3091 break;}
3092case 264:
3093#line 954 "llgrammar.y"
3094{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3095 break;}
3096case 265:
3097#line 955 "llgrammar.y"
3098{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3099 break;}
3100case 266:
3101#line 956 "llgrammar.y"
3102{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3103 break;}
3104case 267:
3105#line 959 "llgrammar.y"
3106{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3107 break;}
3108case 268:
3109#line 960 "llgrammar.y"
3110{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3111 break;}
3112case 269:
3113#line 961 "llgrammar.y"
3114{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3115 break;}
3116case 270:
3117#line 962 "llgrammar.y"
3118{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3119 break;}
3120case 271:
3121#line 963 "llgrammar.y"
3122{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3123 break;}
3124case 272:
3125#line 964 "llgrammar.y"
3126{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3127 break;}
3128case 273:
3129#line 973 "llgrammar.y"
3130{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3131 break;}
3132case 274:
3133#line 974 "llgrammar.y"
3134{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3135 break;}
3136case 275:
3137#line 975 "llgrammar.y"
3138{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3139 break;}
3140case 276:
3141#line 976 "llgrammar.y"
3142{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3143 break;}
3144case 277:
3145#line 977 "llgrammar.y"
3146{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3147 break;}
3148case 278:
3149#line 983 "llgrammar.y"
3150{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3151 break;}
3152case 279:
3153#line 984 "llgrammar.y"
3154{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3155 break;}
3156case 280:
3157#line 985 "llgrammar.y"
3158{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3159 break;}
3160case 281:
3161#line 995 "llgrammar.y"
3162{ yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3163 break;}
3164case 282:
3165#line 996 "llgrammar.y"
3166{ yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3167 break;}
3168case 283:
3169#line 997 "llgrammar.y"
3170{ yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
3171 break;}
3172case 284:
3173#line 1002 "llgrammar.y"
3174{ yyval.abstDecl = (abstDeclaratorNode)0; ;
3175 break;}
3176case 285:
3177#line 1003 "llgrammar.y"
3178{ yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
3179 break;}
3180case 286:
3181#line 1006 "llgrammar.y"
3182{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3183 break;}
3184case 287:
3185#line 1007 "llgrammar.y"
3186{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3187 break;}
3188case 288:
3189#line 1008 "llgrammar.y"
3190{ yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
3191 break;}
3192case 289:
3193#line 1009 "llgrammar.y"
3194{ yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
3195 break;}
3196case 290:
3197#line 1010 "llgrammar.y"
3198{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3199 break;}
3200case 291:
3201#line 1011 "llgrammar.y"
3202{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3203 break;}
3204case 292:
3205#line 1012 "llgrammar.y"
3206{ yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
3207 break;}
3208case 293:
3209#line 1013 "llgrammar.y"
3210{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3211 break;}
3212case 294:
3213#line 1016 "llgrammar.y"
3214{ yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
3215 break;}
3216case 295:
3217#line 1017 "llgrammar.y"
3218{ yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
3219 break;}
3220case 296:
3221#line 1021 "llgrammar.y"
3222{ yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
3223 break;}
3224case 297:
3225#line 1023 "llgrammar.y"
3226{ yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3227 break;}
3228case 298:
3229#line 1025 "llgrammar.y"
3230{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3231 break;}
3232case 299:
3233#line 1027 "llgrammar.y"
3234{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3235 break;}
3236case 300:
3237#line 1029 "llgrammar.y"
3238{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
3239 opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3240 break;}
3241case 301:
3242#line 1032 "llgrammar.y"
3243{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3244 break;}
3245case 302:
3246#line 1034 "llgrammar.y"
3247{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3248 break;}
3249case 303:
3250#line 1036 "llgrammar.y"
3251{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3252 break;}
3253case 304:
3254#line 1038 "llgrammar.y"
3255{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3256 break;}
3257case 305:
3258#line 1040 "llgrammar.y"
3259{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3260 break;}
3261case 306:
3262#line 1042 "llgrammar.y"
3263{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3264 break;}
3265case 307:
3266#line 1050 "llgrammar.y"
3267{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3268 break;}
3269case 308:
3270#line 1052 "llgrammar.y"
3271{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3272 break;}
3273case 309:
3274#line 1054 "llgrammar.y"
3275{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
3276 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3277 break;}
3278case 310:
3279#line 1057 "llgrammar.y"
3280{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
3281 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3282 break;}
3283case 311:
3284#line 1060 "llgrammar.y"
3285{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
3286 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3287 break;}
3288case 312:
3289#line 1063 "llgrammar.y"
3290{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
3291 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3292 break;}
3293case 320:
3294#line 1080 "llgrammar.y"
3295{ yyval.count = 0; ;
3296 break;}
3297case 322:
3298#line 1084 "llgrammar.y"
3299{ yyval.count = 1; ;
3300 break;}
3301case 323:
3302#line 1085 "llgrammar.y"
3303{ yyval.count = yyvsp[-2].count + 1; ;
3304 break;}
3305case 326:
3306#line 1092 "llgrammar.y"
3307{ yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3308 break;}
3309case 327:
3310#line 1095 "llgrammar.y"
3311{ yyval.ltokenList = ltokenList_new (); ;
3312 break;}
3313case 329:
3314#line 1099 "llgrammar.y"
3315{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3316 break;}
3317case 330:
3318#line 1100 "llgrammar.y"
3319{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3320 break;}
3321case 331:
3322#line 1103 "llgrammar.y"
3323{ yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
3324 break;}
3325case 332:
3326#line 1106 "llgrammar.y"
3327{ yyval.term = checkSort (yyvsp[0].term); ;
3328 break;}
3329case 333:
3330#line 1113 "llgrammar.y"
3331{ yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
3332 break;}
3333case 335:
3334#line 1115 "llgrammar.y"
3335{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
3336 break;}
3337case 337:
3338#line 1121 "llgrammar.y"
3339{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
3340 symtable_exitScope (g_symtab);
3341 ;
3342 break;}
3343case 338:
3344#line 1125 "llgrammar.y"
3345{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3346 break;}
3347case 339:
3348#line 1127 "llgrammar.y"
3349{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3350 break;}
3351case 341:
3352#line 1131 "llgrammar.y"
3353{ yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
3354 break;}
3355case 342:
3356#line 1132 "llgrammar.y"
3357{ yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
3358 break;}
3359case 346:
3360#line 1140 "llgrammar.y"
3361{ yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
3362 break;}
3363case 347:
3364#line 1143 "llgrammar.y"
3365{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3366 break;}
3367case 348:
3368#line 1144 "llgrammar.y"
3369{ yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
3370 break;}
3371case 349:
3372#line 1147 "llgrammar.y"
3373{ yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
3374 break;}
3375case 350:
3376#line 1148 "llgrammar.y"
3377{ yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
3378 break;}
3379case 352:
3380#line 1152 "llgrammar.y"
3381{ yyval.term = computePossibleSorts (yyvsp[0].term); ;
3382 break;}
3383case 353:
3384#line 1153 "llgrammar.y"
3385{ yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3386 break;}
3387case 354:
3388#line 1154 "llgrammar.y"
3389{ yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
3390 break;}
3391case 355:
3392#line 1155 "llgrammar.y"
3393{ yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
3394 break;}
3395case 356:
3396#line 1156 "llgrammar.y"
3397{ yyval.term = computePossibleSorts (yyvsp[0].term); ;
3398 break;}
3399case 357:
3400#line 1157 "llgrammar.y"
3401{ yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3402 break;}
3403case 358:
3404#line 1160 "llgrammar.y"
3405{ yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3406 break;}
3407case 360:
3408#line 1165 "llgrammar.y"
3409{ yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok);
3410 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3411 break;}
3412case 361:
3413#line 1168 "llgrammar.y"
3414{ yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3415 break;}
3416case 362:
3417#line 1170 "llgrammar.y"
3418{ yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok);
3419 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok));
3420 ;
3421 break;}
3422case 363:
3423#line 1174 "llgrammar.y"
3424{ yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3425 break;}
3426case 364:
3427#line 1177 "llgrammar.y"
3428{ yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3429 break;}
3430case 365:
3431#line 1178 "llgrammar.y"
3432{ yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3433 break;}
3434case 366:
3435#line 1181 "llgrammar.y"
3436{ yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3437 break;}
3438case 367:
3439#line 1182 "llgrammar.y"
3440{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3441 break;}
3442case 368:
3443#line 1186 "llgrammar.y"
3444{ yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
3445 break;}
3446case 369:
3447#line 1188 "llgrammar.y"
3448{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3449 break;}
3450case 370:
3451#line 1190 "llgrammar.y"
3452{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3453 break;}
3454case 372:
3455#line 1193 "llgrammar.y"
3456{ yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
3457 break;}
3458case 373:
3459#line 1195 "llgrammar.y"
3460{ ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3461 break;}
3462case 374:
3463#line 1197 "llgrammar.y"
3464{ ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3465 break;}
3466case 375:
3467#line 1199 "llgrammar.y"
3468{ yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
3469 (termNode)0); ;
3470 break;}
3471case 376:
3472#line 1202 "llgrammar.y"
3473{ yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
3474 break;}
3475case 377:
3476#line 1204 "llgrammar.y"
3477{ yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3478 break;}
3479case 378:
3480#line 1207 "llgrammar.y"
3481{ yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3482 break;}
3483case 379:
3484#line 1208 "llgrammar.y"
3485{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3486 break;}
3487case 385:
3488#line 1218 "llgrammar.y"
3489{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3490 break;}
3491case 386:
3492#line 1219 "llgrammar.y"
3493{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3494 break;}
3495case 387:
3496#line 1220 "llgrammar.y"
3497{ yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
3498 break;}
3499case 388:
3500#line 1221 "llgrammar.y"
3501{ yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
3502 break;}
3503case 389:
3504#line 1223 "llgrammar.y"
3505{ termNodeList x = termNodeList_new ();
3506 termNodeList_addh (x, yyvsp[-1].term);
3507 yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok);
3508 ;
3509 break;}
3510case 390:
3511#line 1228 "llgrammar.y"
3512{ termNodeList x = termNodeList_new ();
3513 termNodeList_addh (x, yyvsp[-3].term);
3514 termNodeList_addh (x, yyvsp[-1].term);
3515 yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok);
3516 ;
3517 break;}
3518case 391:
3519#line 1233 "llgrammar.y"
3520{ yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
3521 break;}
3522case 392:
3523#line 1243 "llgrammar.y"
3524{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
3525 break;}
3526case 393:
3527#line 1244 "llgrammar.y"
3528{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
3529 break;}
3530case 394:
3531#line 1245 "llgrammar.y"
3532{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
3533 break;}
3534case 395:
3535#line 1246 "llgrammar.y"
3536{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
3537 break;}
3538case 396:
3539#line 1250 "llgrammar.y"
3540{ yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
3541 break;}
3542case 397:
3543#line 1252 "llgrammar.y"
3544{ yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
3545 break;}
3546case 398:
3547#line 1255 "llgrammar.y"
3548{ scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
3549 si->kind = SPE_QUANT;
3550 symtable_enterScope (g_symtab, si); ;
3551 break;}
3552case 399:
3553#line 1259 "llgrammar.y"
3554{ yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
3555 break;}
3556case 400:
3557#line 1262 "llgrammar.y"
3558{ yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
3559 break;}
3560case 401:
3561#line 1263 "llgrammar.y"
3562{ yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
3563 break;}
3564case 402:
3565#line 1266 "llgrammar.y"
3566{ yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
3567 break;}
3568case 403:
3569#line 1267 "llgrammar.y"
3570{ yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
3571 break;}
3572}
3573 /* the action file gets copied in in place of this dollarsign */
3574#line 498 "/usr/share/misc/bison.simple"
3575\f
3576 yyvsp -= yylen;
3577 yyssp -= yylen;
3578#ifdef YYLSP_NEEDED
3579 yylsp -= yylen;
3580#endif
3581
3582#if YYDEBUG != 0
3583 if (yydebug)
3584 {
3585 short *ssp1 = yyss - 1;
3586 fprintf (stderr, "state stack now");
3587 while (ssp1 != yyssp)
3588 fprintf (stderr, " %d", *++ssp1);
3589 fprintf (stderr, "\n");
3590 }
3591#endif
3592
3593 *++yyvsp = yyval;
3594
3595#ifdef YYLSP_NEEDED
3596 yylsp++;
3597 if (yylen == 0)
3598 {
3599 yylsp->first_line = yylloc.first_line;
3600 yylsp->first_column = yylloc.first_column;
3601 yylsp->last_line = (yylsp-1)->last_line;
3602 yylsp->last_column = (yylsp-1)->last_column;
3603 yylsp->text = 0;
3604 }
3605 else
3606 {
3607 yylsp->last_line = (yylsp+yylen-1)->last_line;
3608 yylsp->last_column = (yylsp+yylen-1)->last_column;
3609 }
3610#endif
3611
3612 /* Now "shift" the result of the reduction.
3613 Determine what state that goes to,
3614 based on the state we popped back to
3615 and the rule number reduced by. */
3616
3617 yyn = yyr1[yyn];
3618
3619 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3620 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3621 yystate = yytable[yystate];
3622 else
3623 yystate = yydefgoto[yyn - YYNTBASE];
3624
3625 goto yynewstate;
3626
3627yyerrlab: /* here on detecting error */
3628
3629 if (! yyerrstatus)
3630 /* If not already recovering from an error, report this error. */
3631 {
3632 ++yynerrs;
3633
3634#ifdef YYERROR_VERBOSE
3635 yyn = yypact[yystate];
3636
3637 if (yyn > YYFLAG && yyn < YYLAST)
3638 {
3639 int size = 0;
3640 char *msg;
3641 int x, count;
3642
3643 count = 0;
3644 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3645 for (x = (yyn < 0 ? -yyn : 0);
3646 x < (sizeof(yytname) / sizeof(char *)); x++)
3647 if (yycheck[x + yyn] == x)
3648 size += strlen(yytname[x]) + 15, count++;
3649 msg = (char *) malloc(size + 15);
3650 if (msg != 0)
3651 {
3652 strcpy(msg, "parse error");
3653
3654 if (count < 5)
3655 {
3656 count = 0;
3657 for (x = (yyn < 0 ? -yyn : 0);
3658 x < (sizeof(yytname) / sizeof(char *)); x++)
3659 if (yycheck[x + yyn] == x)
3660 {
3661 strcat(msg, count == 0 ? ", expecting `" : " or `");
3662 strcat(msg, yytname[x]);
3663 strcat(msg, "'");
3664 count++;
3665 }
3666 }
3667 yyerror(msg);
3668 free(msg);
3669 }
3670 else
3671 yyerror ("parse error; also virtual memory exceeded");
3672 }
3673 else
3674#endif /* YYERROR_VERBOSE */
3675 yyerror("parse error");
3676 }
3677
3678 goto yyerrlab1;
3679yyerrlab1: /* here on error raised explicitly by an action */
3680
3681 if (yyerrstatus == 3)
3682 {
3683 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3684
3685 /* return failure if at end of input */
3686 if (yychar == YYEOF)
3687 YYABORT;
3688
3689#if YYDEBUG != 0
3690 if (yydebug)
3691 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3692#endif
3693
3694 yychar = YYEMPTY;
3695 }
3696
3697 /* Else will try to reuse lookahead token
3698 after shifting the error token. */
3699
3700 yyerrstatus = 3; /* Each real token shifted decrements this */
3701
3702 goto yyerrhandle;
3703
3704yyerrdefault: /* current state does not do anything special for the error token. */
3705
3706#if 0
3707 /* This is wrong; only states that explicitly want error tokens
3708 should shift them. */
3709 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3710 if (yyn) goto yydefault;
3711#endif
3712
3713yyerrpop: /* pop the current state because it cannot handle the error token */
3714
3715 if (yyssp == yyss) YYABORT;
3716 yyvsp--;
3717 yystate = *--yyssp;
3718#ifdef YYLSP_NEEDED
3719 yylsp--;
3720#endif
3721
3722#if YYDEBUG != 0
3723 if (yydebug)
3724 {
3725 short *ssp1 = yyss - 1;
3726 fprintf (stderr, "Error: state stack now");
3727 while (ssp1 != yyssp)
3728 fprintf (stderr, " %d", *++ssp1);
3729 fprintf (stderr, "\n");
3730 }
3731#endif
3732
3733yyerrhandle:
3734
3735 yyn = yypact[yystate];
3736 if (yyn == YYFLAG)
3737 goto yyerrdefault;
3738
3739 yyn += YYTERROR;
3740 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3741 goto yyerrdefault;
3742
3743 yyn = yytable[yyn];
3744 if (yyn < 0)
3745 {
3746 if (yyn == YYFLAG)
3747 goto yyerrpop;
3748 yyn = -yyn;
3749 goto yyreduce;
3750 }
3751 else if (yyn == 0)
3752 goto yyerrpop;
3753
3754 if (yyn == YYFINAL)
3755 YYACCEPT;
3756
3757#if YYDEBUG != 0
3758 if (yydebug)
3759 fprintf(stderr, "Shifting error token, ");
3760#endif
3761
3762 *++yyvsp = yylval;
3763#ifdef YYLSP_NEEDED
3764 *++yylsp = yylloc;
3765#endif
3766
3767 yystate = yyn;
3768 goto yynewstate;
3769}
3770#line 1282 "llgrammar.y"
3771
3772
3773# include "bison.reset"
3774
3775/*
3776** yytext is set in lex scanner
3777** extern YYSTYPE yylval;
3778** yylval is defined by code generated by bison
3779*/
3780
3781void ylerror (char *s)
3782{
3783 /*
3784 ** This resetting of the left context is very important when multiple
3785 ** files are to be parsed. We do not want failures to propagate.
3786 ** Lex/Yacc does not reset the flags when the parsing goes bad.
3787 ** BEGIN 0;
3788 **/
3789
3790 /*@-mustfree@*/
3791 lclfatalerror (yllval.ltok,
3792 message ("%s: Token code: %s, Token String: %s",
3793 cstring_fromChars (s),
3794 ltoken_unparseCodeName (yllval.ltok),
3795 ltoken_getRawString (yllval.ltok)));
3796 /*@=mustfree@*/
3797}
3798
3799static void yyprint (FILE *f, int t, YYSTYPE value)
3800{
3801 fprintf (f, " type: %d (%s)", t,
3802 cstring_toCharsSafe (ltoken_getRawString (value.ltok)));
3803}
3804
3805
3806
3807
3808
3809
3810
3811/*
3812** Resets all flags in bison.head
3813*/
3814
3815
3816/*@=allmacros@*/
3817/*@=boolint@*/
3818/*@=charint@*/
3819/*@=macroparams@*/
3820/*@=macroundef@*/
3821/*@=unreachable@*/
3822/*@=macrospec@*/
3823/*@=varuse@*/
3824/*@=ignorequals@*/
3825/*@=macrostmt@*/
3826/*@=noeffect@*/
3827/*@=shadow@*/
3828/*@=exitarg@*/
3829/*@=macroredef@*/
3830/*@=uniondef@*/
3831/*@=compdef@*/
3832/*@=matchfields@*/
3833/*@=exportlocal@*/
3834/*@=evalorderuncon@*/
3835/*@=exportheader@*/
3836/*@=typeuse@*/
3837/*@=redecl@*/
3838/*@=redef@*/
3839/*@=noparams@*/
3840/*@=ansireserved@*/
3841/*@=fielduse@*/
3842/*@=ifblock@*/
3843/*@=elseifcomplete@*/
3844/*@=whileblock@*/
3845/*@=forblock@*/
3846/*@=branchstate@*/
3847/*@=readonlytrans@*/
3848/*@=namechecks@*/
3849/*@=usedef@*/
3850/*@=systemunrecog@*/
3851/*@=dependenttrans@*/
3852/*@=unqualifiedtrans@*/
This page took 0.101638 seconds and 5 git commands to generate.