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