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