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