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