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