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