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