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