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