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