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