]> andersk Git - splint.git/blame - src/llgrammar.c.der
*** empty log message ***
[splint.git] / src / llgrammar.c.der
CommitLineData
885824d3 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
a0a162cd 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
885824d3 235
236
a0a162cd 237#line 78 "llgrammar.y"
885824d3 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,
a0a162cd 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,
885824d3 562 834, 835, 836, 837, 838, 839, 840, 841, 842, 843,
563 844, 845, 846, 847, 848, 849, 850, 851, 852, 853,
a0a162cd 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
885824d3 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. */
a0a162cd 1568#line 3 "/usr/share/misc/bison.simple"
885824d3 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
a0a162cd 1761#line 196 "/usr/share/misc/bison.simple"
885824d3 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:
a0a162cd 2066#line 382 "llgrammar.y"
885824d3 2067{ lhExternals (yyvsp[0].interfacelist); ;
2068 break;}
2069case 2:
a0a162cd 2070#line 383 "llgrammar.y"
885824d3 2071{ interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
2072 break;}
2073case 3:
a0a162cd 2074#line 386 "llgrammar.y"
885824d3 2075{ yyval.interfacelist = interfaceNodeList_new (); ;
2076 break;}
2077case 4:
a0a162cd 2078#line 387 "llgrammar.y"
885824d3 2079{ yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2080 break;}
2081case 7:
a0a162cd 2082#line 394 "llgrammar.y"
885824d3 2083{ yyval.interfacelist = interfaceNodeList_new (); ;
2084 break;}
2085case 8:
a0a162cd 2086#line 395 "llgrammar.y"
885824d3 2087{ yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2088 break;}
2089case 9:
a0a162cd 2090#line 396 "llgrammar.y"
885824d3 2091{ yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2092 break;}
2093case 10:
a0a162cd 2094#line 399 "llgrammar.y"
885824d3 2095{ yyval.interfacelist = interfaceNodeList_new (); ;
2096 break;}
2097case 11:
a0a162cd 2098#line 400 "llgrammar.y"
885824d3 2099{ yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2100 break;}
2101case 15:
a0a162cd 2102#line 409 "llgrammar.y"
885824d3 2103{ yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2104 /* assume subspecs are already processed, symbol table info in external file */
2105 ;
2106 break;}
2107case 16:
a0a162cd 2108#line 415 "llgrammar.y"
885824d3 2109{ yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
2110 break;}
2111case 17:
a0a162cd 2112#line 419 "llgrammar.y"
885824d3 2113{ declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
2114 break;}
2115case 18:
a0a162cd 2116#line 421 "llgrammar.y"
885824d3 2117{ declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
2118 break;}
2119case 19:
a0a162cd 2120#line 423 "llgrammar.y"
885824d3 2121{ declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
2122 break;}
2123case 20:
a0a162cd 2124#line 425 "llgrammar.y"
885824d3 2125{ declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
2126 break;}
2127case 21:
a0a162cd 2128#line 427 "llgrammar.y"
885824d3 2129{ yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
2130 break;}
2131case 22:
a0a162cd 2132#line 429 "llgrammar.y"
885824d3 2133{ declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
2134 break;}
2135case 23:
a0a162cd 2136#line 433 "llgrammar.y"
885824d3 2137{ yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
2138 break;}
2139case 24:
a0a162cd 2140#line 436 "llgrammar.y"
885824d3 2141{ yyval.paramlist = paramNodeList_new (); ;
2142 break;}
2143case 25:
a0a162cd 2144#line 437 "llgrammar.y"
885824d3 2145{ yyval.paramlist = yyvsp[0].paramlist; ;
2146 break;}
2147case 26:
a0a162cd 2148#line 441 "llgrammar.y"
885824d3 2149{ yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
2150 break;}
2151case 27:
a0a162cd 2152#line 443 "llgrammar.y"
885824d3 2153{ yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
2154 break;}
2155case 28:
a0a162cd 2156#line 446 "llgrammar.y"
885824d3 2157{ yyval.param = markYieldParamNode (yyvsp[0].param); ;
2158 break;}
2159case 29:
a0a162cd 2160#line 447 "llgrammar.y"
885824d3 2161{ yyval.param = yyvsp[0].param; ;
2162 break;}
2163case 30:
a0a162cd 2164#line 450 "llgrammar.y"
885824d3 2165{ symtable_export (g_symtab, FALSE); ;
2166 break;}
2167case 31:
a0a162cd 2168#line 451 "llgrammar.y"
885824d3 2169{ yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
2170 break;}
2171case 32:
a0a162cd 2172#line 455 "llgrammar.y"
885824d3 2173{ declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
2174 break;}
2175case 33:
a0a162cd 2176#line 457 "llgrammar.y"
885824d3 2177{ declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
2178 break;}
2179case 34:
a0a162cd 2180#line 459 "llgrammar.y"
885824d3 2181{ declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
2182 break;}
2183case 35:
a0a162cd 2184#line 461 "llgrammar.y"
885824d3 2185{ declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
2186 break;}
2187case 36:
a0a162cd 2188#line 465 "llgrammar.y"
885824d3 2189{ yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
2190 break;}
2191case 37:
a0a162cd 2192#line 469 "llgrammar.y"
885824d3 2193{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
2194 break;}
2195case 38:
a0a162cd 2196#line 471 "llgrammar.y"
885824d3 2197{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
2198 break;}
2199case 39:
a0a162cd 2200#line 473 "llgrammar.y"
885824d3 2201{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
2202 break;}
2203case 40:
a0a162cd 2204#line 476 "llgrammar.y"
885824d3 2205{ yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
2206 break;}
2207case 41:
a0a162cd 2208#line 477 "llgrammar.y"
885824d3 2209{ yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
2210 break;}
2211case 42:
a0a162cd 2212#line 480 "llgrammar.y"
885824d3 2213{ yyval.typequal = qual_createPrintfLike (); ;
2214 break;}
2215case 43:
a0a162cd 2216#line 481 "llgrammar.y"
885824d3 2217{ yyval.typequal = qual_createScanfLike (); ;
2218 break;}
2219case 44:
a0a162cd 2220#line 482 "llgrammar.y"
885824d3 2221{ yyval.typequal = qual_createMessageLike (); ;
2222 break;}
2223case 45:
a0a162cd 2224#line 485 "llgrammar.y"
885824d3 2225{ enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2226 break;}
2227case 46:
a0a162cd 2228#line 487 "llgrammar.y"
885824d3 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:
a0a162cd 2237#line 493 "llgrammar.y"
885824d3 2238{ enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2239 break;}
2240case 48:
a0a162cd 2241#line 497 "llgrammar.y"
885824d3 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:
a0a162cd 2250#line 507 "llgrammar.y"
885824d3 2251{ enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
2252 break;}
2253case 50:
a0a162cd 2254#line 509 "llgrammar.y"
885824d3 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:
a0a162cd 2259#line 512 "llgrammar.y"
885824d3 2260{ yyval.claim = (claimNode) 0; ;
2261 break;}
2262case 52:
a0a162cd 2263#line 515 "llgrammar.y"
885824d3 2264{g_inTypeDef = TRUE; ;
2265 break;}
2266case 53:
a0a162cd 2267#line 515 "llgrammar.y"
885824d3 2268{g_inTypeDef = FALSE; ;
2269 break;}
2270case 54:
a0a162cd 2271#line 516 "llgrammar.y"
885824d3 2272{ yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
2273 break;}
2274case 55:
a0a162cd 2275#line 517 "llgrammar.y"
885824d3 2276{g_inTypeDef = TRUE; ;
2277 break;}
2278case 56:
a0a162cd 2279#line 518 "llgrammar.y"
885824d3 2280{g_inTypeDef = FALSE; ;
2281 break;}
2282case 57:
a0a162cd 2283#line 519 "llgrammar.y"
885824d3 2284{ yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2285 break;}
2286case 58:
a0a162cd 2287#line 520 "llgrammar.y"
885824d3 2288{g_inTypeDef = TRUE; ;
2289 break;}
2290case 59:
a0a162cd 2291#line 521 "llgrammar.y"
885824d3 2292{g_inTypeDef = FALSE; ;
2293 break;}
2294case 60:
a0a162cd 2295#line 522 "llgrammar.y"
885824d3 2296{ yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2297 break;}
2298case 61:
a0a162cd 2299#line 523 "llgrammar.y"
885824d3 2300{g_inTypeDef = TRUE; ;
2301 break;}
2302case 62:
a0a162cd 2303#line 523 "llgrammar.y"
885824d3 2304{g_inTypeDef = FALSE; ;
2305 break;}
2306case 63:
a0a162cd 2307#line 524 "llgrammar.y"
885824d3 2308{ yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
2309 break;}
2310case 64:
a0a162cd 2311#line 527 "llgrammar.y"
885824d3 2312{ g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
2313 break;}
2314case 65:
a0a162cd 2315#line 528 "llgrammar.y"
885824d3 2316{ g_inTypeDef = FALSE; ;
2317 break;}
2318case 66:
a0a162cd 2319#line 529 "llgrammar.y"
885824d3 2320{ yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
2321 break;}
2322case 67:
a0a162cd 2323#line 531 "llgrammar.y"
885824d3 2324{ yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
2325 break;}
2326case 68:
a0a162cd 2327#line 533 "llgrammar.y"
885824d3 2328{ yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
2329 break;}
2330case 69:
a0a162cd 2331#line 549 "llgrammar.y"
885824d3 2332{ yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
2333 break;}
2334case 70:
a0a162cd 2335#line 551 "llgrammar.y"
885824d3 2336{ yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
2337 break;}
2338case 71:
a0a162cd 2339#line 554 "llgrammar.y"
885824d3 2340{ yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
2341 break;}
2342case 72:
a0a162cd 2343#line 556 "llgrammar.y"
885824d3 2344{ checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
2345 break;}
2346case 73:
a0a162cd 2347#line 557 "llgrammar.y"
885824d3 2348{ yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
2349 break;}
2350case 74:
a0a162cd 2351#line 560 "llgrammar.y"
885824d3 2352{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2353 break;}
2354case 75:
a0a162cd 2355#line 561 "llgrammar.y"
885824d3 2356{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2357 break;}
2358case 77:
a0a162cd 2359#line 569 "llgrammar.y"
885824d3 2360{ yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
2361 break;}
2362case 78:
a0a162cd 2363#line 571 "llgrammar.y"
885824d3 2364{ yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
2365 break;}
2366case 79:
a0a162cd 2367#line 575 "llgrammar.y"
885824d3 2368{ yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
2369 break;}
2370case 80:
a0a162cd 2371#line 577 "llgrammar.y"
885824d3 2372{ yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
2373 break;}
2374case 81:
a0a162cd 2375#line 579 "llgrammar.y"
885824d3 2376{ yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
2377 break;}
2378case 82:
a0a162cd 2379#line 581 "llgrammar.y"
885824d3 2380{ yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
2381 break;}
2382case 83:
a0a162cd 2383#line 584 "llgrammar.y"
885824d3 2384{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2385 break;}
2386case 84:
a0a162cd 2387#line 585 "llgrammar.y"
885824d3 2388{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2389 break;}
2390case 85:
a0a162cd 2391#line 589 "llgrammar.y"
885824d3 2392{ yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
2393 break;}
2394case 86:
a0a162cd 2395#line 591 "llgrammar.y"
885824d3 2396{ yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
2397 break;}
2398case 87:
a0a162cd 2399#line 592 "llgrammar.y"
885824d3 2400{ yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
2401 break;}
2402case 88:
a0a162cd 2403#line 596 "llgrammar.y"
885824d3 2404{ yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
2405 break;}
2406case 89:
a0a162cd 2407#line 597 "llgrammar.y"
885824d3 2408{ yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
2409 break;}
2410case 90:
a0a162cd 2411#line 601 "llgrammar.y"
885824d3 2412{ yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
2413 break;}
2414case 91:
a0a162cd 2415#line 602 "llgrammar.y"
885824d3 2416{ yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
2417 break;}
2418case 92:
a0a162cd 2419#line 605 "llgrammar.y"
885824d3 2420{ yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
2421 break;}
2422case 93:
a0a162cd 2423#line 606 "llgrammar.y"
885824d3 2424{ yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
2425 break;}
2426case 94:
a0a162cd 2427#line 607 "llgrammar.y"
885824d3 2428{ yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
2429 yyvsp[-1].name, yyvsp[0].signature); ;
2430 break;}
2431case 95:
a0a162cd 2432#line 611 "llgrammar.y"
885824d3 2433{ yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
2434 break;}
2435case 96:
a0a162cd 2436#line 612 "llgrammar.y"
885824d3 2437{ yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
2438 break;}
2439case 99:
a0a162cd 2440#line 620 "llgrammar.y"
885824d3 2441{ yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
2442 break;}
2443case 100:
a0a162cd 2444#line 622 "llgrammar.y"
885824d3 2445{ yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
2446 break;}
2447case 101:
a0a162cd 2448#line 625 "llgrammar.y"
885824d3 2449{ yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
2450 break;}
2451case 102:
a0a162cd 2452#line 626 "llgrammar.y"
885824d3 2453{ yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
2454 break;}
2455case 103:
a0a162cd 2456#line 630 "llgrammar.y"
885824d3 2457{ yyval.globals = varDeclarationNodeList_new (); ;
2458 break;}
2459case 104:
a0a162cd 2460#line 632 "llgrammar.y"
885824d3 2461{ varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
2462 break;}
2463case 105:
a0a162cd 2464#line 635 "llgrammar.y"
885824d3 2465{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
2466 break;}
2467case 106:
a0a162cd 2468#line 636 "llgrammar.y"
885824d3 2469{ yyval.vardeclaration = makeInternalStateNode (); ;
2470 break;}
2471case 107:
a0a162cd 2472#line 637 "llgrammar.y"
885824d3 2473{ yyval.vardeclaration = makeFileSystemNode (); ;
2474 break;}
2475case 108:
a0a162cd 2476#line 640 "llgrammar.y"
885824d3 2477{ yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
2478 break;}
2479case 109:
a0a162cd 2480#line 641 "llgrammar.y"
885824d3 2481{ varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
2482 break;}
2483case 110:
a0a162cd 2484#line 645 "llgrammar.y"
885824d3 2485{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
2486 break;}
2487case 111:
a0a162cd 2488#line 648 "llgrammar.y"
885824d3 2489{ yyval.letdecls = letDeclNodeList_new (); ;
2490 break;}
2491case 112:
a0a162cd 2492#line 649 "llgrammar.y"
885824d3 2493{ yyval.letdecls = yyvsp[-1].letdecls; ;
2494 break;}
2495case 113:
a0a162cd 2496#line 652 "llgrammar.y"
885824d3 2497{ yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
2498 break;}
2499case 114:
a0a162cd 2500#line 653 "llgrammar.y"
885824d3 2501{ yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
2502 break;}
2503case 115:
a0a162cd 2504#line 656 "llgrammar.y"
885824d3 2505{ yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
2506 break;}
2507case 116:
a0a162cd 2508#line 657 "llgrammar.y"
885824d3 2509{ yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
2510 break;}
2511case 118:
a0a162cd 2512#line 662 "llgrammar.y"
885824d3 2513{ yyval.lclpredicate = (lclPredicateNode)0; ;
2514 break;}
2515case 119:
a0a162cd 2516#line 663 "llgrammar.y"
885824d3 2517{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2518 break;}
2519case 120:
a0a162cd 2520#line 666 "llgrammar.y"
885824d3 2521{ yyval.lclpredicate = (lclPredicateNode)0; ;
2522 break;}
2523case 121:
a0a162cd 2524#line 667 "llgrammar.y"
885824d3 2525{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2526 break;}
2527case 122:
a0a162cd 2528#line 670 "llgrammar.y"
885824d3 2529{ yyval.modify = (modifyNode)0; ;
2530 break;}
2531case 123:
a0a162cd 2532#line 671 "llgrammar.y"
885824d3 2533{ yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
2534 break;}
2535case 124:
a0a162cd 2536#line 672 "llgrammar.y"
885824d3 2537{ yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
2538 break;}
2539case 125:
a0a162cd 2540#line 673 "llgrammar.y"
885824d3 2541{ yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
2542 break;}
2543case 126:
a0a162cd 2544#line 676 "llgrammar.y"
885824d3 2545{ yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
2546 break;}
2547case 127:
a0a162cd 2548#line 677 "llgrammar.y"
885824d3 2549{ yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
2550 break;}
2551case 128:
a0a162cd 2552#line 680 "llgrammar.y"
885824d3 2553{ yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
2554 break;}
2555case 129:
a0a162cd 2556#line 681 "llgrammar.y"
885824d3 2557{ yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
2558 break;}
2559case 130:
a0a162cd 2560#line 682 "llgrammar.y"
885824d3 2561{ yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
2562 break;}
2563case 131:
a0a162cd 2564#line 683 "llgrammar.y"
885824d3 2565{ yyval.storeref = makeStoreRefNodeInternal (); ;
2566 break;}
2567case 132:
a0a162cd 2568#line 684 "llgrammar.y"
885824d3 2569{ yyval.storeref = makeStoreRefNodeSystem (); ;
2570 break;}
2571case 133:
a0a162cd 2572#line 687 "llgrammar.y"
885824d3 2573{ yyval.lclpredicate = (lclPredicateNode)0; ;
2574 break;}
2575case 134:
a0a162cd 2576#line 688 "llgrammar.y"
885824d3 2577{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2578 break;}
2579case 135:
a0a162cd 2580#line 691 "llgrammar.y"
885824d3 2581{ yyval.lclpredicate = (lclPredicateNode)0; ;
2582 break;}
2583case 136:
a0a162cd 2584#line 692 "llgrammar.y"
885824d3 2585{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2586 break;}
2587case 137:
a0a162cd 2588#line 695 "llgrammar.y"
885824d3 2589{ yyval.paramlist = paramNodeList_new (); ;
2590 break;}
2591case 138:
a0a162cd 2592#line 696 "llgrammar.y"
885824d3 2593{ yyval.paramlist = yyvsp[0].paramlist; ;
2594 break;}
2595case 140:
a0a162cd 2596#line 700 "llgrammar.y"
885824d3 2597{ yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
2598 break;}
2599case 141:
a0a162cd 2600#line 701 "llgrammar.y"
885824d3 2601{ yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
2602 break;}
2603case 142:
a0a162cd 2604#line 704 "llgrammar.y"
885824d3 2605{ yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
2606 break;}
2607case 143:
a0a162cd 2608#line 705 "llgrammar.y"
885824d3 2609{ yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
2610 break;}
2611case 144:
a0a162cd 2612#line 708 "llgrammar.y"
885824d3 2613{ yyval.program = (programNode)0; ;
2614 break;}
2615case 145:
a0a162cd 2616#line 709 "llgrammar.y"
885824d3 2617{ yyval.program = yyvsp[-1].program; ;
2618 break;}
2619case 146:
a0a162cd 2620#line 710 "llgrammar.y"
885824d3 2621{ yyval.program = yyvsp[-2].program; ;
2622 break;}
2623case 147:
a0a162cd 2624#line 713 "llgrammar.y"
885824d3 2625{ yyval.program = makeProgramNode (yyvsp[0].stmt); ;
2626 break;}
2627case 148:
a0a162cd 2628#line 716 "llgrammar.y"
885824d3 2629{ yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
2630 break;}
2631case 149:
a0a162cd 2632#line 718 "llgrammar.y"
885824d3 2633{ programNodeList x = programNodeList_new ();
2634 programNodeList_addh (x, yyvsp[-1].program);
2635 yyval.program = makeProgramNodeAction (x, ACT_ITER);
2636 ;
2637 break;}
2638case 150:
a0a162cd 2639#line 723 "llgrammar.y"
885824d3 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:
a0a162cd 2647#line 729 "llgrammar.y"
885824d3 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:
a0a162cd 2655#line 737 "llgrammar.y"
885824d3 2656{ yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2657 break;}
2658case 153:
a0a162cd 2659#line 739 "llgrammar.y"
885824d3 2660{ yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
2661 break;}
2662case 154:
a0a162cd 2663#line 741 "llgrammar.y"
885824d3 2664{ yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
2665 break;}
2666case 155:
a0a162cd 2667#line 743 "llgrammar.y"
885824d3 2668{ yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2669 break;}
2670case 156:
a0a162cd 2671#line 746 "llgrammar.y"
885824d3 2672{ yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
2673 break;}
2674case 157:
a0a162cd 2675#line 747 "llgrammar.y"
885824d3 2676{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
2677 break;}
2678case 159:
a0a162cd 2679#line 751 "llgrammar.y"
885824d3 2680{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
2681 break;}
2682case 160:
a0a162cd 2683#line 752 "llgrammar.y"
885824d3 2684{ yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
2685 break;}
2686case 161:
a0a162cd 2687#line 753 "llgrammar.y"
885824d3 2688{ yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
2689 break;}
2690case 162:
a0a162cd 2691#line 754 "llgrammar.y"
885824d3 2692{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
2693 break;}
2694case 163:
a0a162cd 2695#line 755 "llgrammar.y"
885824d3 2696{ yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
2697 break;}
2698case 164:
a0a162cd 2699#line 757 "llgrammar.y"
885824d3 2700{ yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
2701 break;}
2702case 165:
a0a162cd 2703#line 759 "llgrammar.y"
885824d3 2704{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
2705 break;}
2706case 166:
a0a162cd 2707#line 762 "llgrammar.y"
885824d3 2708{ yyval.abstbody = (abstBodyNode)0; ;
2709 break;}
2710case 167:
a0a162cd 2711#line 763 "llgrammar.y"
885824d3 2712{ yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
2713 break;}
2714case 168:
a0a162cd 2715#line 764 "llgrammar.y"
885824d3 2716{ yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
2717 break;}
2718case 169:
a0a162cd 2719#line 765 "llgrammar.y"
885824d3 2720{ yyval.abstbody = (abstBodyNode)0; ;
2721 break;}
2722case 170:
a0a162cd 2723#line 768 "llgrammar.y"
885824d3 2724{ yyval.fcns = fcnNodeList_new (); ;
2725 break;}
2726case 171:
a0a162cd 2727#line 769 "llgrammar.y"
885824d3 2728{ yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
2729 break;}
2730case 172:
a0a162cd 2731#line 772 "llgrammar.y"
885824d3 2732{ yyval.lclpredicate = (lclPredicateNode)0; ;
2733 break;}
2734case 174:
a0a162cd 2735#line 776 "llgrammar.y"
885824d3 2736{ g_inTypeDef = FALSE; ;
2737 break;}
2738case 175:
a0a162cd 2739#line 777 "llgrammar.y"
885824d3 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:
a0a162cd 2748#line 785 "llgrammar.y"
885824d3 2749{ yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
2750 break;}
2751case 177:
a0a162cd 2752#line 787 "llgrammar.y"
885824d3 2753{ yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
2754 break;}
2755case 178:
a0a162cd 2756#line 790 "llgrammar.y"
885824d3 2757{ declareForwardType (yyvsp[0].declare); ;
2758 break;}
2759case 179:
a0a162cd 2760#line 791 "llgrammar.y"
885824d3 2761{ yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
2762 break;}
2763case 180:
a0a162cd 2764#line 794 "llgrammar.y"
885824d3 2765{ yyval.abstbody = (abstBodyNode)0; ;
2766 break;}
2767case 181:
a0a162cd 2768#line 795 "llgrammar.y"
885824d3 2769{ yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2770 break;}
2771case 182:
a0a162cd 2772#line 798 "llgrammar.y"
885824d3 2773{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
2774 break;}
2775case 183:
a0a162cd 2776#line 799 "llgrammar.y"
885824d3 2777{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
2778 break;}
2779case 184:
a0a162cd 2780#line 800 "llgrammar.y"
885824d3 2781{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
2782 break;}
2783case 185:
a0a162cd 2784#line 801 "llgrammar.y"
885824d3 2785{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
2786 break;}
2787case 186:
a0a162cd 2788#line 802 "llgrammar.y"
885824d3 2789{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
2790 break;}
2791case 187:
a0a162cd 2792#line 803 "llgrammar.y"
885824d3 2793{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
2794 break;}
2795case 188:
a0a162cd 2796#line 804 "llgrammar.y"
885824d3 2797{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
2798 break;}
2799case 189:
a0a162cd 2800#line 805 "llgrammar.y"
885824d3 2801{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
2802 break;}
2803case 190:
a0a162cd 2804#line 806 "llgrammar.y"
885824d3 2805{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
2806 break;}
2807case 191:
a0a162cd 2808#line 807 "llgrammar.y"
885824d3 2809{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
2810 break;}
2811case 192:
a0a162cd 2812#line 815 "llgrammar.y"
885824d3 2813{ yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
2814 break;}
2815case 193:
a0a162cd 2816#line 816 "llgrammar.y"
885824d3 2817{ yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
2818 break;}
2819case 194:
a0a162cd 2820#line 822 "llgrammar.y"
885824d3 2821{ yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
2822 break;}
2823case 195:
a0a162cd 2824#line 824 "llgrammar.y"
885824d3 2825{ yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
2826 break;}
2827case 196:
a0a162cd 2828#line 829 "llgrammar.y"
885824d3 2829{ yyval.typequal = qual_createOut (); ;
2830 break;}
2831case 197:
a0a162cd 2832#line 830 "llgrammar.y"
885824d3 2833{ yyval.typequal = qual_createUnused (); ;
2834 break;}
2835case 198:
a0a162cd 2836#line 831 "llgrammar.y"
885824d3 2837{ yyval.typequal = qual_createSef (); ;
2838 break;}
2839case 199:
a0a162cd 2840#line 832 "llgrammar.y"
885824d3 2841{ yyval.typequal = qual_createOnly (); ;
2842 break;}
2843case 200:
a0a162cd 2844#line 833 "llgrammar.y"
885824d3 2845{ yyval.typequal = qual_createOwned (); ;
2846 break;}
2847case 201:
a0a162cd 2848#line 834 "llgrammar.y"
885824d3 2849{ yyval.typequal = qual_createDependent (); ;
2850 break;}
2851case 202:
a0a162cd 2852#line 835 "llgrammar.y"
885824d3 2853{ yyval.typequal = qual_createKeep (); ;
2854 break;}
2855case 203:
a0a162cd 2856#line 836 "llgrammar.y"
885824d3 2857{ yyval.typequal = qual_createKept (); ;
2858 break;}
2859case 204:
a0a162cd 2860#line 837 "llgrammar.y"
885824d3 2861{ yyval.typequal = qual_createObserver (); ;
2862 break;}
2863case 205:
a0a162cd 2864#line 838 "llgrammar.y"
885824d3 2865{ yyval.typequal = qual_createExits (); ;
2866 break;}
2867case 206:
a0a162cd 2868#line 839 "llgrammar.y"
885824d3 2869{ yyval.typequal = qual_createMayExit (); ;
2870 break;}
2871case 207:
a0a162cd 2872#line 840 "llgrammar.y"
885824d3 2873{ yyval.typequal = qual_createTrueExit (); ;
2874 break;}
2875case 208:
a0a162cd 2876#line 841 "llgrammar.y"
885824d3 2877{ yyval.typequal = qual_createFalseExit (); ;
2878 break;}
2879case 209:
a0a162cd 2880#line 842 "llgrammar.y"
885824d3 2881{ yyval.typequal = qual_createNeverExit (); ;
2882 break;}
2883case 210:
a0a162cd 2884#line 843 "llgrammar.y"
885824d3 2885{ yyval.typequal = qual_createOnly (); ;
2886 break;}
2887case 211:
a0a162cd 2888#line 844 "llgrammar.y"
885824d3 2889{ yyval.typequal = qual_createShared (); ;
2890 break;}
2891case 212:
a0a162cd 2892#line 845 "llgrammar.y"
885824d3 2893{ yyval.typequal = qual_createUnique (); ;
2894 break;}
2895case 213:
a0a162cd 2896#line 846 "llgrammar.y"
885824d3 2897{ yyval.typequal = qual_createChecked (); ;
2898 break;}
2899case 214:
a0a162cd 2900#line 847 "llgrammar.y"
885824d3 2901{ yyval.typequal = qual_createUnchecked (); ;
2902 break;}
2903case 215:
a0a162cd 2904#line 848 "llgrammar.y"
885824d3 2905{ yyval.typequal = qual_createCheckedStrict (); ;
2906 break;}
2907case 216:
a0a162cd 2908#line 849 "llgrammar.y"
885824d3 2909{ yyval.typequal = qual_createTrueNull (); ;
2910 break;}
2911case 217:
a0a162cd 2912#line 850 "llgrammar.y"
885824d3 2913{ yyval.typequal = qual_createFalseNull (); ;
2914 break;}
2915case 218:
a0a162cd 2916#line 851 "llgrammar.y"
885824d3 2917{ yyval.typequal = qual_createRelNull (); ;
2918 break;}
2919case 219:
a0a162cd 2920#line 852 "llgrammar.y"
885824d3 2921{ yyval.typequal = qual_createRelDef (); ;
2922 break;}
2923case 220:
a0a162cd 2924#line 853 "llgrammar.y"
885824d3 2925{ yyval.typequal = qual_createRefCounted (); ;
2926 break;}
2927case 221:
a0a162cd 2928#line 854 "llgrammar.y"
885824d3 2929{ yyval.typequal = qual_createRefs (); ;
2930 break;}
2931case 222:
a0a162cd 2932#line 855 "llgrammar.y"
885824d3 2933{ yyval.typequal = qual_createNewRef (); ;
2934 break;}
2935case 223:
a0a162cd 2936#line 856 "llgrammar.y"
885824d3 2937{ yyval.typequal = qual_createKillRef (); ;
2938 break;}
2939case 224:
a0a162cd 2940#line 857 "llgrammar.y"
885824d3 2941{ yyval.typequal = qual_createNull (); ;
2942 break;}
2943case 225:
a0a162cd 2944#line 858 "llgrammar.y"
885824d3 2945{ yyval.typequal = qual_createNotNull (); ;
2946 break;}
2947case 226:
a0a162cd 2948#line 859 "llgrammar.y"
885824d3 2949{ yyval.typequal = qual_createReturned (); ;
2950 break;}
2951case 227:
a0a162cd 2952#line 860 "llgrammar.y"
885824d3 2953{ yyval.typequal = qual_createExposed (); ;
2954 break;}
2955case 228:
a0a162cd 2956#line 861 "llgrammar.y"
885824d3 2957{ yyval.typequal = qual_createPartial (); ;
2958 break;}
2959case 229:
a0a162cd 2960#line 862 "llgrammar.y"
885824d3 2961{ yyval.typequal = qual_createUndef (); ;
2962 break;}
2963case 230:
a0a162cd 2964#line 863 "llgrammar.y"
885824d3 2965{ yyval.typequal = qual_createKilled (); ;
2966 break;}
2967case 231:
a0a162cd 2968#line 867 "llgrammar.y"
885824d3 2969{ yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
2970 break;}
2971case 232:
a0a162cd 2972#line 869 "llgrammar.y"
885824d3 2973{ yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
2974 break;}
2975case 233:
a0a162cd 2976#line 871 "llgrammar.y"
885824d3 2977{ yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
2978 break;}
2979case 234:
a0a162cd 2980#line 873 "llgrammar.y"
885824d3 2981{ yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
2982 break;}
2983case 235:
a0a162cd 2984#line 875 "llgrammar.y"
885824d3 2985{ yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
2986 break;}
2987case 237:
a0a162cd 2988#line 885 "llgrammar.y"
885824d3 2989{ llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
2990 yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
2991 break;}
2992case 238:
a0a162cd 2993#line 889 "llgrammar.y"
885824d3 2994{ yyval.count = 1; ;
2995 break;}
2996case 239:
a0a162cd 2997#line 890 "llgrammar.y"
885824d3 2998{ yyval.count = yyvsp[-1].count + 1; ;
2999 break;}
3000case 240:
a0a162cd 3001#line 894 "llgrammar.y"
885824d3 3002{ (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
3003 break;}
3004case 241:
a0a162cd 3005#line 896 "llgrammar.y"
885824d3 3006{ yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3007 break;}
3008case 242:
a0a162cd 3009#line 898 "llgrammar.y"
885824d3 3010{ (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
3011 break;}
3012case 243:
a0a162cd 3013#line 900 "llgrammar.y"
885824d3 3014{ yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3015 break;}
3016case 244:
a0a162cd 3017#line 902 "llgrammar.y"
885824d3 3018{ yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
3019 break;}
3020case 245:
a0a162cd 3021#line 904 "llgrammar.y"
885824d3 3022{ yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
3023 break;}
3024case 246:
a0a162cd 3025#line 907 "llgrammar.y"
885824d3 3026{ yyval.ltok = ltoken_undefined; ;
3027 break;}
3028case 248:
a0a162cd 3029#line 911 "llgrammar.y"
885824d3 3030{ yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
3031 break;}
3032case 249:
a0a162cd 3033#line 912 "llgrammar.y"
885824d3 3034{ yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
3035 break;}
3036case 250:
a0a162cd 3037#line 917 "llgrammar.y"
885824d3 3038{ yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
3039 break;}
3040case 251:
a0a162cd 3041#line 921 "llgrammar.y"
885824d3 3042{ yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
3043 break;}
3044case 252:
a0a162cd 3045#line 923 "llgrammar.y"
885824d3 3046{ yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
3047 break;}
3048case 253:
a0a162cd 3049#line 926 "llgrammar.y"
885824d3 3050{ ; ;
3051 break;}
3052case 254:
a0a162cd 3053#line 927 "llgrammar.y"
885824d3 3054{ ; ;
3055 break;}
3056case 255:
a0a162cd 3057#line 931 "llgrammar.y"
885824d3 3058{ yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
3059 break;}
3060case 256:
a0a162cd 3061#line 933 "llgrammar.y"
885824d3 3062{ yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
3063 break;}
3064case 257:
a0a162cd 3065#line 936 "llgrammar.y"
885824d3 3066{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3067 break;}
3068case 258:
a0a162cd 3069#line 937 "llgrammar.y"
885824d3 3070{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3071 break;}
3072case 259:
a0a162cd 3073#line 947 "llgrammar.y"
885824d3 3074{ yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3075 break;}
3076case 260:
a0a162cd 3077#line 948 "llgrammar.y"
885824d3 3078{ yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3079 break;}
3080case 261:
a0a162cd 3081#line 951 "llgrammar.y"
885824d3 3082{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3083 break;}
3084case 262:
a0a162cd 3085#line 952 "llgrammar.y"
885824d3 3086{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3087 break;}
3088case 263:
a0a162cd 3089#line 953 "llgrammar.y"
885824d3 3090{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3091 break;}
3092case 264:
a0a162cd 3093#line 954 "llgrammar.y"
885824d3 3094{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3095 break;}
3096case 265:
a0a162cd 3097#line 955 "llgrammar.y"
885824d3 3098{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3099 break;}
3100case 266:
a0a162cd 3101#line 956 "llgrammar.y"
885824d3 3102{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3103 break;}
3104case 267:
a0a162cd 3105#line 959 "llgrammar.y"
885824d3 3106{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3107 break;}
3108case 268:
a0a162cd 3109#line 960 "llgrammar.y"
885824d3 3110{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3111 break;}
3112case 269:
a0a162cd 3113#line 961 "llgrammar.y"
885824d3 3114{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3115 break;}
3116case 270:
a0a162cd 3117#line 962 "llgrammar.y"
885824d3 3118{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3119 break;}
3120case 271:
a0a162cd 3121#line 963 "llgrammar.y"
885824d3 3122{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3123 break;}
3124case 272:
a0a162cd 3125#line 964 "llgrammar.y"
885824d3 3126{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3127 break;}
3128case 273:
a0a162cd 3129#line 973 "llgrammar.y"
885824d3 3130{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3131 break;}
3132case 274:
a0a162cd 3133#line 974 "llgrammar.y"
885824d3 3134{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3135 break;}
3136case 275:
a0a162cd 3137#line 975 "llgrammar.y"
885824d3 3138{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3139 break;}
3140case 276:
a0a162cd 3141#line 976 "llgrammar.y"
885824d3 3142{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3143 break;}
3144case 277:
a0a162cd 3145#line 977 "llgrammar.y"
885824d3 3146{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3147 break;}
3148case 278:
a0a162cd 3149#line 983 "llgrammar.y"
885824d3 3150{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3151 break;}
3152case 279:
a0a162cd 3153#line 984 "llgrammar.y"
885824d3 3154{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3155 break;}
3156case 280:
a0a162cd 3157#line 985 "llgrammar.y"
885824d3 3158{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3159 break;}
3160case 281:
a0a162cd 3161#line 995 "llgrammar.y"
885824d3 3162{ yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3163 break;}
3164case 282:
a0a162cd 3165#line 996 "llgrammar.y"
885824d3 3166{ yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3167 break;}
3168case 283:
a0a162cd 3169#line 997 "llgrammar.y"
885824d3 3170{ yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
3171 break;}
3172case 284:
a0a162cd 3173#line 1002 "llgrammar.y"
885824d3 3174{ yyval.abstDecl = (abstDeclaratorNode)0; ;
3175 break;}
3176case 285:
a0a162cd 3177#line 1003 "llgrammar.y"
885824d3 3178{ yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
3179 break;}
3180case 286:
a0a162cd 3181#line 1006 "llgrammar.y"
885824d3 3182{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3183 break;}
3184case 287:
a0a162cd 3185#line 1007 "llgrammar.y"
885824d3 3186{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3187 break;}
3188case 288:
a0a162cd 3189#line 1008 "llgrammar.y"
885824d3 3190{ yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
3191 break;}
3192case 289:
a0a162cd 3193#line 1009 "llgrammar.y"
885824d3 3194{ yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
3195 break;}
3196case 290:
a0a162cd 3197#line 1010 "llgrammar.y"
885824d3 3198{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3199 break;}
3200case 291:
a0a162cd 3201#line 1011 "llgrammar.y"
885824d3 3202{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3203 break;}
3204case 292:
a0a162cd 3205#line 1012 "llgrammar.y"
885824d3 3206{ yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
3207 break;}
3208case 293:
a0a162cd 3209#line 1013 "llgrammar.y"
885824d3 3210{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3211 break;}
3212case 294:
a0a162cd 3213#line 1016 "llgrammar.y"
885824d3 3214{ yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
3215 break;}
3216case 295:
a0a162cd 3217#line 1017 "llgrammar.y"
885824d3 3218{ yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
3219 break;}
3220case 296:
a0a162cd 3221#line 1021 "llgrammar.y"
885824d3 3222{ yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
3223 break;}
3224case 297:
a0a162cd 3225#line 1023 "llgrammar.y"
885824d3 3226{ yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3227 break;}
3228case 298:
a0a162cd 3229#line 1025 "llgrammar.y"
885824d3 3230{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3231 break;}
3232case 299:
a0a162cd 3233#line 1027 "llgrammar.y"
885824d3 3234{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3235 break;}
3236case 300:
a0a162cd 3237#line 1029 "llgrammar.y"
885824d3 3238{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
3239 opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3240 break;}
3241case 301:
a0a162cd 3242#line 1032 "llgrammar.y"
885824d3 3243{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3244 break;}
3245case 302:
a0a162cd 3246#line 1034 "llgrammar.y"
885824d3 3247{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3248 break;}
3249case 303:
a0a162cd 3250#line 1036 "llgrammar.y"
885824d3 3251{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3252 break;}
3253case 304:
a0a162cd 3254#line 1038 "llgrammar.y"
885824d3 3255{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3256 break;}
3257case 305:
a0a162cd 3258#line 1040 "llgrammar.y"
885824d3 3259{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3260 break;}
3261case 306:
a0a162cd 3262#line 1042 "llgrammar.y"
885824d3 3263{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3264 break;}
3265case 307:
a0a162cd 3266#line 1050 "llgrammar.y"
885824d3 3267{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3268 break;}
3269case 308:
a0a162cd 3270#line 1052 "llgrammar.y"
885824d3 3271{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3272 break;}
3273case 309:
a0a162cd 3274#line 1054 "llgrammar.y"
885824d3 3275{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
3276 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3277 break;}
3278case 310:
a0a162cd 3279#line 1057 "llgrammar.y"
885824d3 3280{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
3281 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3282 break;}
3283case 311:
a0a162cd 3284#line 1060 "llgrammar.y"
885824d3 3285{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
3286 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3287 break;}
3288case 312:
a0a162cd 3289#line 1063 "llgrammar.y"
885824d3 3290{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
3291 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3292 break;}
3293case 320:
a0a162cd 3294#line 1080 "llgrammar.y"
885824d3 3295{ yyval.count = 0; ;
3296 break;}
3297case 322:
a0a162cd 3298#line 1084 "llgrammar.y"
885824d3 3299{ yyval.count = 1; ;
3300 break;}
3301case 323:
a0a162cd 3302#line 1085 "llgrammar.y"
885824d3 3303{ yyval.count = yyvsp[-2].count + 1; ;
3304 break;}
3305case 326:
a0a162cd 3306#line 1092 "llgrammar.y"
885824d3 3307{ yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3308 break;}
3309case 327:
a0a162cd 3310#line 1095 "llgrammar.y"
885824d3 3311{ yyval.ltokenList = ltokenList_new (); ;
3312 break;}
3313case 329:
a0a162cd 3314#line 1099 "llgrammar.y"
885824d3 3315{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3316 break;}
3317case 330:
a0a162cd 3318#line 1100 "llgrammar.y"
885824d3 3319{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3320 break;}
3321case 331:
a0a162cd 3322#line 1103 "llgrammar.y"
885824d3 3323{ yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
3324 break;}
3325case 332:
a0a162cd 3326#line 1106 "llgrammar.y"
885824d3 3327{ yyval.term = checkSort (yyvsp[0].term); ;
3328 break;}
3329case 333:
a0a162cd 3330#line 1113 "llgrammar.y"
885824d3 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:
a0a162cd 3334#line 1115 "llgrammar.y"
885824d3 3335{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
3336 break;}
3337case 337:
a0a162cd 3338#line 1121 "llgrammar.y"
885824d3 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:
a0a162cd 3344#line 1125 "llgrammar.y"
885824d3 3345{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3346 break;}
3347case 339:
a0a162cd 3348#line 1127 "llgrammar.y"
885824d3 3349{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3350 break;}
3351case 341:
a0a162cd 3352#line 1131 "llgrammar.y"
885824d3 3353{ yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
3354 break;}
3355case 342:
a0a162cd 3356#line 1132 "llgrammar.y"
885824d3 3357{ yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
3358 break;}
3359case 346:
a0a162cd 3360#line 1140 "llgrammar.y"
885824d3 3361{ yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
3362 break;}
3363case 347:
a0a162cd 3364#line 1143 "llgrammar.y"
885824d3 3365{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3366 break;}
3367case 348:
a0a162cd 3368#line 1144 "llgrammar.y"
885824d3 3369{ yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
3370 break;}
3371case 349:
a0a162cd 3372#line 1147 "llgrammar.y"
885824d3 3373{ yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
3374 break;}
3375case 350:
a0a162cd 3376#line 1148 "llgrammar.y"
885824d3 3377{ yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
3378 break;}
3379case 352:
a0a162cd 3380#line 1152 "llgrammar.y"
885824d3 3381{ yyval.term = computePossibleSorts (yyvsp[0].term); ;
3382 break;}
3383case 353:
a0a162cd 3384#line 1153 "llgrammar.y"
885824d3 3385{ yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3386 break;}
3387case 354:
a0a162cd 3388#line 1154 "llgrammar.y"
885824d3 3389{ yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
3390 break;}
3391case 355:
a0a162cd 3392#line 1155 "llgrammar.y"
885824d3 3393{ yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
3394 break;}
3395case 356:
a0a162cd 3396#line 1156 "llgrammar.y"
885824d3 3397{ yyval.term = computePossibleSorts (yyvsp[0].term); ;
3398 break;}
3399case 357:
a0a162cd 3400#line 1157 "llgrammar.y"
885824d3 3401{ yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3402 break;}
3403case 358:
a0a162cd 3404#line 1160 "llgrammar.y"
885824d3 3405{ yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3406 break;}
3407case 360:
a0a162cd 3408#line 1165 "llgrammar.y"
885824d3 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:
a0a162cd 3413#line 1168 "llgrammar.y"
885824d3 3414{ yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3415 break;}
3416case 362:
a0a162cd 3417#line 1170 "llgrammar.y"
885824d3 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:
a0a162cd 3423#line 1174 "llgrammar.y"
885824d3 3424{ yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3425 break;}
3426case 364:
a0a162cd 3427#line 1177 "llgrammar.y"
885824d3 3428{ yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3429 break;}
3430case 365:
a0a162cd 3431#line 1178 "llgrammar.y"
885824d3 3432{ yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
3433 break;}
3434case 366:
a0a162cd 3435#line 1181 "llgrammar.y"
885824d3 3436{ yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3437 break;}
3438case 367:
a0a162cd 3439#line 1182 "llgrammar.y"
885824d3 3440{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3441 break;}
3442case 368:
a0a162cd 3443#line 1186 "llgrammar.y"
885824d3 3444{ yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
3445 break;}
3446case 369:
a0a162cd 3447#line 1188 "llgrammar.y"
885824d3 3448{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3449 break;}
3450case 370:
a0a162cd 3451#line 1190 "llgrammar.y"
885824d3 3452{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3453 break;}
3454case 372:
a0a162cd 3455#line 1193 "llgrammar.y"
885824d3 3456{ yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
3457 break;}
3458case 373:
a0a162cd 3459#line 1195 "llgrammar.y"
885824d3 3460{ ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3461 break;}
3462case 374:
a0a162cd 3463#line 1197 "llgrammar.y"
885824d3 3464{ ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3465 break;}
3466case 375:
a0a162cd 3467#line 1199 "llgrammar.y"
885824d3 3468{ yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
3469 (termNode)0); ;
3470 break;}
3471case 376:
a0a162cd 3472#line 1202 "llgrammar.y"
885824d3 3473{ yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
3474 break;}
3475case 377:
a0a162cd 3476#line 1204 "llgrammar.y"
885824d3 3477{ yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3478 break;}
3479case 378:
a0a162cd 3480#line 1207 "llgrammar.y"
885824d3 3481{ yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
3482 break;}
3483case 379:
a0a162cd 3484#line 1208 "llgrammar.y"
885824d3 3485{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3486 break;}
3487case 385:
a0a162cd 3488#line 1218 "llgrammar.y"
885824d3 3489{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3490 break;}
3491case 386:
a0a162cd 3492#line 1219 "llgrammar.y"
885824d3 3493{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3494 break;}
3495case 387:
a0a162cd 3496#line 1220 "llgrammar.y"
885824d3 3497{ yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
3498 break;}
3499case 388:
a0a162cd 3500#line 1221 "llgrammar.y"
885824d3 3501{ yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
3502 break;}
3503case 389:
a0a162cd 3504#line 1223 "llgrammar.y"
885824d3 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:
a0a162cd 3511#line 1228 "llgrammar.y"
885824d3 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:
a0a162cd 3519#line 1233 "llgrammar.y"
885824d3 3520{ yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
3521 break;}
3522case 392:
a0a162cd 3523#line 1243 "llgrammar.y"
885824d3 3524{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
3525 break;}
3526case 393:
a0a162cd 3527#line 1244 "llgrammar.y"
885824d3 3528{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
3529 break;}
3530case 394:
a0a162cd 3531#line 1245 "llgrammar.y"
885824d3 3532{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
3533 break;}
3534case 395:
a0a162cd 3535#line 1246 "llgrammar.y"
885824d3 3536{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
3537 break;}
3538case 396:
a0a162cd 3539#line 1250 "llgrammar.y"
885824d3 3540{ yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
3541 break;}
3542case 397:
a0a162cd 3543#line 1252 "llgrammar.y"
885824d3 3544{ yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
3545 break;}
3546case 398:
a0a162cd 3547#line 1255 "llgrammar.y"
885824d3 3548{ scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
3549 si->kind = SPE_QUANT;
3550 symtable_enterScope (g_symtab, si); ;
3551 break;}
3552case 399:
a0a162cd 3553#line 1259 "llgrammar.y"
885824d3 3554{ yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
3555 break;}
3556case 400:
a0a162cd 3557#line 1262 "llgrammar.y"
885824d3 3558{ yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
3559 break;}
3560case 401:
a0a162cd 3561#line 1263 "llgrammar.y"
885824d3 3562{ yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
3563 break;}
3564case 402:
a0a162cd 3565#line 1266 "llgrammar.y"
885824d3 3566{ yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
3567 break;}
3568case 403:
a0a162cd 3569#line 1267 "llgrammar.y"
885824d3 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 */
a0a162cd 3574#line 498 "/usr/share/misc/bison.simple"
885824d3 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}
a0a162cd 3770#line 1282 "llgrammar.y"
885824d3 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.6534 seconds and 5 git commands to generate.