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