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