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