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