]> andersk Git - splint.git/blame - src/llgrammar.c.der
Fix tracker issue 1837229.
[splint.git] / src / llgrammar.c.der
CommitLineData
885824d3 1/*
2** Inserted at beginning of c files generated by bison
3** REMEMBER: Change bison.reset too.
4*/
5
6/*@-allmacros@*/
7/*@+boolint@*/
8/*@+charint@*/
9/*@-macroparams@*/
10/*@-macroundef@*/
11/*@-unreachable@*/
12/*@-macrospec@*/
13/*@-varuse@*/
14/*@+ignorequals@*/
15/*@-macrostmt@*/
16/*@-noeffect@*/
17/*@-shadow@*/
18/*@-exitarg@*/
19/*@-macroredef@*/
20/*@-uniondef@*/
21/*@-compdef@*/
22/*@-matchfields@*/
23/*@-exportlocal@*/
24/*@-evalorderuncon@*/
25/*@-exportheader@*/
26/*@-typeuse@*/
27/*@-redecl@*/
28/*@-redef@*/
29/*@-noparams@*/
30/*@-ansireserved@*/
31/*@-fielduse@*/
32/*@-ifblock@*/
33/*@-elseifcomplete@*/
34/*@-whileblock@*/
35/*@-forblock@*/
36/*@-branchstate@*/
37/*@-readonlytrans@*/
38/*@-namechecks@*/
39/*@-usedef@*/
40/*@-systemunrecog@*/
41/*@-dependenttrans@*/
42/*@-unqualifiedtrans@*/
43/*@-nullassign@*/
bb7c2085 44/*@-nullpass@*/
45/*@-nullptrarith*/
46/*@-usereleased@*/
c05aefaa 47/*@-declundef@*/
885824d3 48
c05aefaa 49/*drl added 11/27/2001*/
bb7c2085 50/*@-bounds@*/
e015e087 51
52/*drl added 12/11/2002*/
53/*@-type@*/
54
a9ec3280 55/*@-enummemuse@*/
56
885824d3 57/* < end of bison.head > */
58
08cf8642 59/* A Bison parser, made by GNU Bison 2.3. */
885824d3 60
08cf8642 61/* Skeleton implementation for Bison's Yacc-like parsers in C
885824d3 62
08cf8642 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. */
885824d3 120#define yyparse ylparse
08cf8642 121#define yylex yllex
885824d3 122#define yyerror ylerror
08cf8642 123#define yylval yllval
124#define yychar ylchar
885824d3 125#define yydebug yldebug
126#define yynerrs ylnerrs
08cf8642 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. */
69db2541 411#line 27 "llgrammar.y"
885824d3 412
413
1b8ae690 414# include "splintMacros.nf"
b73d1009 415# include "basic.h"
885824d3 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@*/
80489f0a 427void ylerror (char *) /*@modifies *g_warningstream@*/ ;
885824d3 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
a0a162cd 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
885824d3 451
452
08cf8642 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
69db2541 474#line 72 "llgrammar.y"
368f75ae 475{
885824d3 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;
f9264521 511 /*@only@*/ pointers pointers;
885824d3 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;
c05aefaa 539 /*@-redef@*/
08cf8642 540}
69db2541 541/* Line 187 of yacc.c. */
542#line 485 "llgrammar.tab.c"
08cf8642 543 YYSTYPE;
544# define yystype YYSTYPE /* obsolescent; will be withdrawn */
545# define YYSTYPE_IS_DECLARED 1
e5081f8c 546# define YYSTYPE_IS_TRIVIAL 1
0866200b 547#endif
08cf8642 548
549
550
551/* Copy the second part of user declarations. */
552
553
554/* Line 216 of yacc.c. */
69db2541 555#line 498 "llgrammar.tab.c"
08cf8642 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;
368f75ae 580#endif
a889b5ee 581
08cf8642 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 */
885824d3 709
710
08cf8642 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))
885824d3 764
08cf8642 765#endif
885824d3 766
08cf8642 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[] =
e5081f8c 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,
08cf8642 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
885824d3 831};
832
e5081f8c 833#if YYDEBUG
08cf8642 834/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
835 YYRHS. */
836static const yytype_uint16 yyprhs[] =
e5081f8c 837{
08cf8642 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
885824d3 880};
08cf8642 881
882/* YYRHS -- A `-1'-separated list of the rules' RHS. */
883static const yytype_int16 yyrhs[] =
e5081f8c 884{
08cf8642 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
885824d3 1009};
1010
08cf8642 1011/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
1012static const yytype_uint16 yyrline[] =
e5081f8c 1013{
08cf8642 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
885824d3 1056};
1057#endif
1058
08cf8642 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. */
e5081f8c 1062static const char *const yytname[] =
1063{
08cf8642 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
885824d3 1122};
1123#endif
1124
08cf8642 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[] =
e5081f8c 1149{
08cf8642 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
885824d3 1192};
1193
08cf8642 1194/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1195static const yytype_uint8 yyr2[] =
e5081f8c 1196{
08cf8642 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,
e5081f8c 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,
08cf8642 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
885824d3 1239};
1240
08cf8642 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[] =
e5081f8c 1245{
08cf8642 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
885824d3 1315};
1316
08cf8642 1317/* YYDEFGOTO[NTERM-NUM]. */
1318static const yytype_int16 yydefgoto[] =
e5081f8c 1319{
08cf8642 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
885824d3 1336};
1337
08cf8642 1338/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1339 STATE-NUM. */
1340#define YYPACT_NINF -607
1341static const yytype_int16 yypact[] =
e5081f8c 1342{
08cf8642 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
885824d3 1412};
1413
08cf8642 1414/* YYPGOTO[NTERM-NUM]. */
1415static const yytype_int16 yypgoto[] =
e5081f8c 1416{
08cf8642 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
885824d3 1433};
1434
08cf8642 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[] =
e5081f8c 1441{
08cf8642 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,
8f58355a 1525 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
08cf8642 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,
8f58355a 1574 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
08cf8642 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,
e5081f8c 1601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
e5081f8c 1611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
e5081f8c 1620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
e5081f8c 1630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
e5081f8c 1640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
e5081f8c 1649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
e5081f8c 1659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
e5081f8c 1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
e5081f8c 1678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
e5081f8c 1688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
368f75ae 1697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
e5081f8c 1698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
e5081f8c 1707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
e5081f8c 1717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
e5081f8c 1719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
368f75ae 1727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
e5081f8c 1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
e5081f8c 1738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 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,
e5081f8c 1769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
e5081f8c 1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
368f75ae 1771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
08cf8642 1772 0, 0, 0, 0, 0, 0, 0, 292, 293, 0,
1773 0, 0, 0, 0, 294
885824d3 1774};
1775
08cf8642 1776static const yytype_int16 yycheck[] =
e5081f8c 1777{
08cf8642 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,
e5081f8c 1848 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
08cf8642 1849 78, 79, 80, 81, 82, 83, 84, 85, 127, 87,
e5081f8c 1850 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
08cf8642 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,
e5081f8c 1858 -1, -1, 40, 41, 42, 43, 44, -1, -1, -1,
08cf8642 1859 -1, -1, -1, -1, -1, -1, 54, 55, -1, -1,
e5081f8c 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,
08cf8642 1868 8, -1, -1, 11, 12, -1, -1, -1, -1, -1,
e5081f8c 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,
08cf8642 1881 8, -1, -1, 11, 12, -1, -1, -1, -1, -1,
e5081f8c 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,
08cf8642 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,
e5081f8c 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,
08cf8642 1904 -1, -1, 107, 108, -1, -1, -1, 20, 116, 114,
e5081f8c 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,
08cf8642 1943 6, 104, 8, -1, -1, 11, 12, -1, -1, -1,
e5081f8c 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,
08cf8642 1953 -1, -1, 11, 12, -1, -1, -1, -1, -1, -1,
e5081f8c 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,
08cf8642 2082 -1, -1, -1, -1, 11, 12, -1, -1, -1, -1,
e5081f8c 2083 -1, -1, -1, 20, 21, 22, 23, -1, 25, -1,
08cf8642 2084 -1, -1, 3, -1, -1, 6, -1, 34, 35, -1,
2085 11, 12, -1, 40, 41, 42, 43, -1, -1, 20,
e5081f8c 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,
08cf8642 2089 -1, -1, 3, 54, 55, 6, -1, -1, 59, -1,
2090 11, 12, -1, -1, -1, -1, -1, -1, -1, 20,
e5081f8c 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,
08cf8642 2094 -1, 11, 12, 54, 55, -1, 107, 108, 59, -1,
e5081f8c 2095 20, 21, 22, 114, -1, 25, -1, -1, -1, -1,
08cf8642 2096 -1, -1, -1, -1, 34, -1, -1, -1, -1, -1,
e5081f8c 2097 40, 41, 42, 43, -1, -1, -1, -1, -1, -1,
2098 -1, -1, -1, 3, 54, 55, 6, -1, -1, 59,
08cf8642 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,
e5081f8c 2105 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
e5081f8c 2106 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
368f75ae 2107 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
08cf8642 2108 -1, -1, -1, -1, -1, -1, -1, 107, 108, -1,
2109 -1, -1, -1, -1, 114
885824d3 2110};
3e3ec469 2111
08cf8642 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};
885824d3 2186
08cf8642 2187#define yyerrok (yyerrstatus = 0)
2188#define yyclearin (yychar = YYEMPTY)
2189#define YYEMPTY (-2)
2190#define YYEOF 0
885824d3 2191
08cf8642 2192#define YYACCEPT goto yyacceptlab
2193#define YYABORT goto yyabortlab
2194#define YYERROR goto yyerrorlab
885824d3 2195
885824d3 2196
08cf8642 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. */
e5081f8c 2200
08cf8642 2201#define YYFAIL goto yyerrlab
e5081f8c 2202
08cf8642 2203#define YYRECOVERING() (!!yyerrstatus)
e5081f8c 2204
08cf8642 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))
e5081f8c 2221
368f75ae 2222
08cf8642 2223#define YYTERROR 1
2224#define YYERRCODE 256
368f75ae 2225
368f75ae 2226
08cf8642 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). */
368f75ae 2230
08cf8642 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
368f75ae 2251
368f75ae 2252
08cf8642 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. */
368f75ae 2256
08cf8642 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)
368f75ae 2263# else
08cf8642 2264# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
368f75ae 2265# endif
08cf8642 2266#endif
368f75ae 2267
368f75ae 2268
08cf8642 2269/* YYLEX -- calling `yylex' with the right arguments. */
368f75ae 2270
08cf8642 2271#ifdef YYLEX_PARAM
2272# define YYLEX yylex (YYLEX_PARAM)
2273#else
2274# define YYLEX yylex ()
368f75ae 2275#endif
2276
08cf8642 2277/* Enable debugging if requested. */
2278#if YYDEBUG
368f75ae 2279
08cf8642 2280# ifndef YYFPRINTF
2281# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2282# define YYFPRINTF fprintf
368f75ae 2283# endif
08cf8642 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;
368f75ae 2318#endif
08cf8642 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}
368f75ae 2334
885824d3 2335
08cf8642 2336/*--------------------------------.
2337| Print this symbol on YYOUTPUT. |
2338`--------------------------------*/
885824d3 2339
08cf8642 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]);
368f75ae 2356
08cf8642 2357 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2358 YYFPRINTF (yyoutput, ")");
2359}
368f75ae 2360
08cf8642 2361/*------------------------------------------------------------------.
2362| yy_stack_print -- Print the state stack from its BOTTOM up to its |
2363| TOP (included). |
2364`------------------------------------------------------------------*/
885824d3 2365
08cf8642 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;
885824d3 2375#endif
08cf8642 2376{
2377 YYFPRINTF (stderr, "Stack now");
2378 for (; bottom <= top; ++bottom)
2379 YYFPRINTF (stderr, " %d", *bottom);
2380 YYFPRINTF (stderr, "\n");
2381}
885824d3 2382
08cf8642 2383# define YY_STACK_PRINT(Bottom, Top) \
2384do { \
2385 if (yydebug) \
2386 yy_stack_print ((Bottom), (Top)); \
2387} while (YYID (0))
368f75ae 2388
368f75ae 2389
08cf8642 2390/*------------------------------------------------.
2391| Report that the YYRULE is going to be reduced. |
2392`------------------------------------------------*/
e5081f8c 2393
08cf8642 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}
e5081f8c 2420
08cf8642 2421# define YY_REDUCE_PRINT(Rule) \
2422do { \
2423 if (yydebug) \
2424 yy_reduce_print (yyvsp, Rule); \
2425} while (YYID (0))
885824d3 2426
e5081f8c 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)
08cf8642 2432# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2433# define YY_STACK_PRINT(Bottom, Top)
2434# define YY_REDUCE_PRINT(Rule)
e5081f8c 2435#endif /* !YYDEBUG */
2436
08cf8642 2437
e5081f8c 2438/* YYINITDEPTH -- initial size of the parser's stacks. */
885824d3 2439#ifndef YYINITDEPTH
e5081f8c 2440# define YYINITDEPTH 200
885824d3 2441#endif
2442
e5081f8c 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
08cf8642 2447 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
e5081f8c 2448 evaluated with infinite-precision integer arithmetic. */
a889b5ee 2449
885824d3 2450#ifndef YYMAXDEPTH
e5081f8c 2451# define YYMAXDEPTH 10000
885824d3 2452#endif
08cf8642 2453
885824d3 2454\f
08cf8642 2455
2456#if YYERROR_VERBOSE
e5081f8c 2457
2458# ifndef yystrlen
08cf8642 2459# if defined __GLIBC__ && defined _STRING_H
e5081f8c 2460# define yystrlen strlen
2461# else
2462/* Return the length of YYSTR. */
08cf8642 2463#if (defined __STDC__ || defined __C99__FUNC__ \
2464 || defined __cplusplus || defined _MSC_VER)
e5081f8c 2465static YYSIZE_T
e5081f8c 2466yystrlen (const char *yystr)
08cf8642 2467#else
2468static YYSIZE_T
e5081f8c 2469yystrlen (yystr)
08cf8642 2470 const char *yystr;
2471#endif
885824d3 2472{
08cf8642 2473 YYSIZE_T yylen;
2474 for (yylen = 0; yystr[yylen]; yylen++)
e5081f8c 2475 continue;
08cf8642 2476 return yylen;
e5081f8c 2477}
2478# endif
2479# endif
a889b5ee 2480
e5081f8c 2481# ifndef yystpcpy
08cf8642 2482# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
e5081f8c 2483# define yystpcpy stpcpy
2484# else
2485/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2486 YYDEST. */
08cf8642 2487#if (defined __STDC__ || defined __C99__FUNC__ \
2488 || defined __cplusplus || defined _MSC_VER)
e5081f8c 2489static char *
e5081f8c 2490yystpcpy (char *yydest, const char *yysrc)
08cf8642 2491#else
2492static char *
e5081f8c 2493yystpcpy (yydest, yysrc)
08cf8642 2494 char *yydest;
2495 const char *yysrc;
2496#endif
0866200b 2497{
08cf8642 2498 char *yyd = yydest;
2499 const char *yys = yysrc;
a889b5ee 2500
e5081f8c 2501 while ((*yyd++ = *yys++) != '\0')
2502 continue;
0866200b 2503
e5081f8c 2504 return yyd - 1;
2505}
2506# endif
2507# endif
885824d3 2508
08cf8642 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 }
368f75ae 2549
08cf8642 2550 if (! yyres)
2551 return yystrlen (yystr);
885824d3 2552
08cf8642 2553 return yystpcpy (yyres, yystr) - yyres;
2554}
e5081f8c 2555# endif
08cf8642 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");
368f75ae 2590# endif
08cf8642 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;
c05aefaa 2682#endif
08cf8642 2683{
2684 YYUSE (yyvaluep);
8f58355a 2685
08cf8642 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. */
c05aefaa 2700
08cf8642 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);
368f75ae 2710#else
08cf8642 2711int yyparse ();
368f75ae 2712#endif
08cf8642 2713#endif /* ! YYPARSE_PARAM */
2714
2715
e5081f8c 2716
08cf8642 2717/* The look-ahead symbol. */
2718int yychar;
e5081f8c 2719
08cf8642 2720/* The semantic value of the look-ahead symbol. */
2721YYSTYPE yylval;
e5081f8c 2722
08cf8642 2723/* Number of syntax errors so far. */
2724int yynerrs;
2725
2726
2727
2728/*----------.
2729| yyparse. |
2730`----------*/
e5081f8c 2731
08cf8642 2732#ifdef YYPARSE_PARAM
2733#if (defined __STDC__ || defined __C99__FUNC__ \
2734 || defined __cplusplus || defined _MSC_VER)
368f75ae 2735int
08cf8642 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 ()
368f75ae 2750
08cf8642 2751#endif
2752#endif
2753{
2754
2755 int yystate;
2756 int yyn;
e5081f8c 2757 int yyresult;
2758 /* Number of tokens to shift before error messages enabled. */
2759 int yyerrstatus;
08cf8642 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
e5081f8c 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
08cf8642 2777 /* The state stack. */
2778 yytype_int16 yyssa[YYINITDEPTH];
2779 yytype_int16 *yyss = yyssa;
2780 yytype_int16 *yyssp;
a889b5ee 2781
e5081f8c 2782 /* The semantic value stack. */
2783 YYSTYPE yyvsa[YYINITDEPTH];
2784 YYSTYPE *yyvs = yyvsa;
08cf8642 2785 YYSTYPE *yyvsp;
0866200b 2786
885824d3 2787
885824d3 2788
08cf8642 2789#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
885824d3 2790
08cf8642 2791 YYSIZE_T yystacksize = YYINITDEPTH;
368f75ae 2792
e5081f8c 2793 /* The variables used to return semantic value and location from the
2794 action routines. */
2795 YYSTYPE yyval;
0866200b 2796
08cf8642 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;
885824d3 2801
e5081f8c 2802 YYDPRINTF ((stderr, "Starting parse\n"));
885824d3 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
e5081f8c 2814 yyssp = yyss;
885824d3 2815 yyvsp = yyvs;
08cf8642 2816
e5081f8c 2817 goto yysetstate;
885824d3 2818
e5081f8c 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
08cf8642 2824 have just been pushed. So pushing a state here evens the stacks. */
e5081f8c 2825 yyssp++;
885824d3 2826
e5081f8c 2827 yysetstate:
2828 *yyssp = yystate;
885824d3 2829
08cf8642 2830 if (yyss + yystacksize - 1 <= yyssp)
885824d3 2831 {
885824d3 2832 /* Get the current used size of the three stacks, in elements. */
e5081f8c 2833 YYSIZE_T yysize = yyssp - yyss + 1;
885824d3 2834
2835#ifdef yyoverflow
e5081f8c 2836 {
08cf8642 2837 /* Give user a chance to reallocate the stack. Use copies of
e5081f8c 2838 these so that the &'s don't force the real ones into
2839 memory. */
2840 YYSTYPE *yyvs1 = yyvs;
08cf8642 2841 yytype_int16 *yyss1 = yyss;
2842
e5081f8c 2843
2844 /* Each stack pointer address is followed by the size of the
08cf8642 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"),
368f75ae 2849 &yyss1, yysize * sizeof (*yyssp),
2850 &yyvs1, yysize * sizeof (*yyvsp),
08cf8642 2851
368f75ae 2852 &yystacksize);
08cf8642 2853
e5081f8c 2854 yyss = yyss1;
2855 yyvs = yyvs1;
2856 }
885824d3 2857#else /* no yyoverflow */
e5081f8c 2858# ifndef YYSTACK_RELOCATE
08cf8642 2859 goto yyexhaustedlab;
e5081f8c 2860# else
885824d3 2861 /* Extend the stack our own way. */
08cf8642 2862 if (YYMAXDEPTH <= yystacksize)
2863 goto yyexhaustedlab;
885824d3 2864 yystacksize *= 2;
08cf8642 2865 if (YYMAXDEPTH < yystacksize)
885824d3 2866 yystacksize = YYMAXDEPTH;
e5081f8c 2867
2868 {
08cf8642 2869 yytype_int16 *yyss1 = yyss;
e5081f8c 2870 union yyalloc *yyptr =
2871 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2872 if (! yyptr)
08cf8642 2873 goto yyexhaustedlab;
e5081f8c 2874 YYSTACK_RELOCATE (yyss);
2875 YYSTACK_RELOCATE (yyvs);
08cf8642 2876
2877# undef YYSTACK_RELOCATE
e5081f8c 2878 if (yyss1 != yyssa)
2879 YYSTACK_FREE (yyss1);
2880 }
2881# endif
885824d3 2882#endif /* no yyoverflow */
2883
e5081f8c 2884 yyssp = yyss + yysize - 1;
2885 yyvsp = yyvs + yysize - 1;
08cf8642 2886
885824d3 2887
e5081f8c 2888 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2889 (unsigned long int) yystacksize));
885824d3 2890
08cf8642 2891 if (yyss + yystacksize - 1 <= yyssp)
885824d3 2892 YYABORT;
2893 }
2894
e5081f8c 2895 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
885824d3 2896
2897 goto yybackup;
e5081f8c 2898
e5081f8c 2899/*-----------.
2900| yybackup. |
2901`-----------*/
2902yybackup:
885824d3 2903
08cf8642 2904 /* Do appropriate processing given the current state. Read a
2905 look-ahead token if we need one and don't already have one. */
885824d3 2906
08cf8642 2907 /* First try to decide what to do without reference to look-ahead token. */
885824d3 2908 yyn = yypact[yystate];
08cf8642 2909 if (yyn == YYPACT_NINF)
885824d3 2910 goto yydefault;
2911
08cf8642 2912 /* Not known => get a look-ahead token if don't already have one. */
368f75ae 2913
08cf8642 2914 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
885824d3 2915 if (yychar == YYEMPTY)
2916 {
e5081f8c 2917 YYDPRINTF ((stderr, "Reading a token: "));
885824d3 2918 yychar = YYLEX;
2919 }
2920
08cf8642 2921 if (yychar <= YYEOF)
885824d3 2922 {
08cf8642 2923 yychar = yytoken = YYEOF;
e5081f8c 2924 YYDPRINTF ((stderr, "Now at end of input.\n"));
885824d3 2925 }
2926 else
2927 {
08cf8642 2928 yytoken = YYTRANSLATE (yychar);
2929 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
885824d3 2930 }
2931
08cf8642 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)
885824d3 2936 goto yydefault;
885824d3 2937 yyn = yytable[yyn];
08cf8642 2938 if (yyn <= 0)
885824d3 2939 {
08cf8642 2940 if (yyn == 0 || yyn == YYTABLE_NINF)
885824d3 2941 goto yyerrlab;
2942 yyn = -yyn;
2943 goto yyreduce;
2944 }
885824d3 2945
2946 if (yyn == YYFINAL)
2947 YYACCEPT;
2948
e5081f8c 2949 /* Count tokens shifted since error; after three, turn off error
2950 status. */
2951 if (yyerrstatus)
2952 yyerrstatus--;
885824d3 2953
08cf8642 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;
885824d3 2965
0866200b 2966
e5081f8c 2967/*-----------------------------------------------------------.
2968| yydefault -- do the default action for the current state. |
2969`-----------------------------------------------------------*/
2970yydefault:
885824d3 2971 yyn = yydefact[yystate];
2972 if (yyn == 0)
2973 goto yyerrlab;
e5081f8c 2974 goto yyreduce;
2975
885824d3 2976
08cf8642 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:
69db2541 2999#line 382 "llgrammar.y"
08cf8642 3000 { lhExternals ((yyvsp[(1) - (1)].interfacelist)); ;}
3001 break;
3002
3003 case 3:
69db2541 3004#line 383 "llgrammar.y"
08cf8642 3005 { interfaceNodeList_free ((yyvsp[(1) - (3)].interfacelist)); interfaceNodeList_free ((yyvsp[(3) - (3)].interfacelist)); ;}
3006 break;
3007
3008 case 4:
69db2541 3009#line 387 "llgrammar.y"
08cf8642 3010 { (yyval.interfacelist) = interfaceNodeList_new (); ;}
3011 break;
3012
3013 case 5:
69db2541 3014#line 388 "llgrammar.y"
08cf8642 3015 { (yyval.interfacelist) = interfaceNodeList_addh ((yyvsp[(1) - (2)].interfacelist), (yyvsp[(2) - (2)].iface));;}
3016 break;
3017
3018 case 8:
69db2541 3019#line 397 "llgrammar.y"
08cf8642 3020 { (yyval.interfacelist) = interfaceNodeList_new (); ;}
3021 break;
3022
3023 case 9:
69db2541 3024#line 398 "llgrammar.y"
08cf8642 3025 { (yyval.interfacelist) = consInterfaceNode ((yyvsp[(1) - (2)].iface), (yyvsp[(2) - (2)].interfacelist));;}
3026 break;
3027
3028 case 10:
69db2541 3029#line 399 "llgrammar.y"
08cf8642 3030 { (yyval.interfacelist) = consInterfaceNode ((yyvsp[(1) - (2)].iface), (yyvsp[(2) - (2)].interfacelist));;}
3031 break;
3032
3033 case 11:
69db2541 3034#line 403 "llgrammar.y"
08cf8642 3035 { (yyval.interfacelist) = interfaceNodeList_new (); ;}
3036 break;
3037
3038 case 12:
69db2541 3039#line 404 "llgrammar.y"
08cf8642 3040 { (yyval.interfacelist) = interfaceNodeList_addh ((yyvsp[(1) - (2)].interfacelist), (yyvsp[(2) - (2)].iface));;}
3041 break;
3042
3043 case 16:
69db2541 3044#line 415 "llgrammar.y"
08cf8642 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:
69db2541 3051#line 422 "llgrammar.y"
08cf8642 3052 { (yyval.iface) = makeInterfaceNodeUses ((yyvsp[(2) - (3)].traitreflist)); readlsignatures ((yyval.iface));;}
3053 break;
3054
3055 case 18:
69db2541 3056#line 427 "llgrammar.y"
08cf8642 3057 { declareConstant ((yyvsp[(1) - (1)].constdeclaration)); (yyval.iface) = interfaceNode_makeConst ((yyvsp[(1) - (1)].constdeclaration)); ;}
3058 break;
3059
3060 case 19:
69db2541 3061#line 429 "llgrammar.y"
08cf8642 3062 { declareVar ((yyvsp[(1) - (1)].vardeclaration)); (yyval.iface) = interfaceNode_makeVar ((yyvsp[(1) - (1)].vardeclaration)); ;}
3063 break;
3064
3065 case 20:
69db2541 3066#line 431 "llgrammar.y"
08cf8642 3067 { declareType ((yyvsp[(1) - (1)].type)); (yyval.iface) = interfaceNode_makeType ((yyvsp[(1) - (1)].type)); ;}
3068 break;
3069
3070 case 21:
69db2541 3071#line 433 "llgrammar.y"
08cf8642 3072 { declareFcn ((yyvsp[(1) - (1)].fcn), typeId_invalid); (yyval.iface) = interfaceNode_makeFcn ((yyvsp[(1) - (1)].fcn)); ;}
3073 break;
3074
3075 case 22:
69db2541 3076#line 435 "llgrammar.y"
08cf8642 3077 { (yyval.iface) = interfaceNode_makeClaim ((yyvsp[(1) - (1)].claim)); ;}
3078 break;
3079
3080 case 23:
69db2541 3081#line 437 "llgrammar.y"
08cf8642 3082 { declareIter ((yyvsp[(1) - (1)].iter)); (yyval.iface) = interfaceNode_makeIter ((yyvsp[(1) - (1)].iter)); ;}
3083 break;
3084
3085 case 24:
69db2541 3086#line 442 "llgrammar.y"
08cf8642 3087 { (yyval.iter) = makeIterNode ((yyvsp[(2) - (6)].ltok), (yyvsp[(4) - (6)].paramlist)); ;}
3088 break;
3089
3090 case 25:
69db2541 3091#line 446 "llgrammar.y"
08cf8642 3092 { (yyval.paramlist) = paramNodeList_new (); ;}
3093 break;
3094
3095 case 26:
69db2541 3096#line 447 "llgrammar.y"
08cf8642 3097 { (yyval.paramlist) = (yyvsp[(1) - (1)].paramlist); ;}
3098 break;
3099
3100 case 27:
69db2541 3101#line 452 "llgrammar.y"
08cf8642 3102 { (yyval.paramlist) = paramNodeList_add (paramNodeList_new (), (yyvsp[(1) - (1)].param)); ;}
3103 break;
3104
3105 case 28:
69db2541 3106#line 454 "llgrammar.y"
08cf8642 3107 { (yyval.paramlist) = paramNodeList_add ((yyvsp[(1) - (3)].paramlist),(yyvsp[(3) - (3)].param)); ;}
3108 break;
3109
3110 case 29:
69db2541 3111#line 458 "llgrammar.y"
08cf8642 3112 { (yyval.param) = markYieldParamNode ((yyvsp[(2) - (2)].param)); ;}
3113 break;
3114
3115 case 30:
69db2541 3116#line 459 "llgrammar.y"
08cf8642 3117 { (yyval.param) = (yyvsp[(1) - (1)].param); ;}
3118 break;
3119
3120 case 31:
69db2541 3121#line 463 "llgrammar.y"
08cf8642 3122 { symtable_export (g_symtab, FALSE); ;}
3123 break;
3124
3125 case 32:
69db2541 3126#line 464 "llgrammar.y"
08cf8642 3127 { (yyval.iface) = (yyvsp[(3) - (3)].iface); symtable_export (g_symtab, TRUE); ;}
3128 break;
3129
3130 case 33:
69db2541 3131#line 469 "llgrammar.y"
08cf8642 3132 { declarePrivConstant ((yyvsp[(1) - (1)].constdeclaration)); (yyval.iface) = interfaceNode_makePrivConst ((yyvsp[(1) - (1)].constdeclaration)); ;}
3133 break;
3134
3135 case 34:
69db2541 3136#line 471 "llgrammar.y"
08cf8642 3137 { declarePrivVar ((yyvsp[(1) - (1)].vardeclaration)); (yyval.iface) = interfaceNode_makePrivVar ((yyvsp[(1) - (1)].vardeclaration)); ;}
3138 break;
3139
3140 case 35:
69db2541 3141#line 473 "llgrammar.y"
08cf8642 3142 { declarePrivType ((yyvsp[(1) - (1)].type)); (yyval.iface) = interfaceNode_makePrivType ((yyvsp[(1) - (1)].type)); ;}
3143 break;
3144
3145 case 36:
69db2541 3146#line 475 "llgrammar.y"
08cf8642 3147 { declarePrivFcn ((yyvsp[(1) - (1)].fcn), typeId_invalid); (yyval.iface) = interfaceNode_makePrivFcn ((yyvsp[(1) - (1)].fcn)); ;}
3148 break;
3149
3150 case 37:
69db2541 3151#line 480 "llgrammar.y"
08cf8642 3152 { (yyval.constdeclaration) = makeConstDeclarationNode ((yyvsp[(2) - (4)].lcltypespec), (yyvsp[(3) - (4)].initdecls)); ;}
3153 break;
3154
3155 case 38:
69db2541 3156#line 485 "llgrammar.y"
08cf8642 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:
69db2541 3161#line 487 "llgrammar.y"
08cf8642 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:
69db2541 3166#line 489 "llgrammar.y"
08cf8642 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:
69db2541 3171#line 493 "llgrammar.y"
08cf8642 3172 { (yyval.type) = makeAbstractTypeNode ((yyvsp[(1) - (1)].abstract)); ;}
3173 break;
3174
3175 case 42:
69db2541 3176#line 494 "llgrammar.y"
08cf8642 3177 { (yyval.type) = makeExposedTypeNode ((yyvsp[(1) - (1)].exposed)); ;}
3178 break;
3179
3180 case 43:
69db2541 3181#line 498 "llgrammar.y"
08cf8642 3182 { (yyval.typequal) = qual_createPrintfLike (); ;}
3183 break;
3184
3185 case 44:
69db2541 3186#line 499 "llgrammar.y"
08cf8642 3187 { (yyval.typequal) = qual_createScanfLike (); ;}
3188 break;
3189
3190 case 45:
69db2541 3191#line 500 "llgrammar.y"
08cf8642 3192 { (yyval.typequal) = qual_createMessageLike (); ;}
3193 break;
3194
3195 case 46:
69db2541 3196#line 504 "llgrammar.y"
08cf8642 3197 { enteringFcnScope ((yyvsp[(1) - (3)].lcltypespec), (yyvsp[(2) - (3)].declare), (yyvsp[(3) - (3)].globals)); ;}
3198 break;
3199
3200 case 47:
69db2541 3201#line 506 "llgrammar.y"
08cf8642 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:
69db2541 3211#line 512 "llgrammar.y"
08cf8642 3212 { enteringFcnScope ((yyvsp[(2) - (4)].lcltypespec), (yyvsp[(3) - (4)].declare), (yyvsp[(4) - (4)].globals)); ;}
3213 break;
3214
3215 case 49:
69db2541 3216#line 516 "llgrammar.y"
08cf8642 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:
69db2541 3226#line 526 "llgrammar.y"
08cf8642 3227 { enteringClaimScope ((yyvsp[(4) - (6)].paramlist), (yyvsp[(6) - (6)].globals)); ;}
3228 break;
3229
3230 case 51:
69db2541 3231#line 528 "llgrammar.y"
08cf8642 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:
69db2541 3237#line 531 "llgrammar.y"
08cf8642 3238 { (yyval.claim) = (claimNode) 0; ;}
3239 break;
3240
3241 case 53:
69db2541 3242#line 535 "llgrammar.y"
08cf8642 3243 {g_inTypeDef = TRUE; ;}
3244 break;
3245
3246 case 54:
69db2541 3247#line 535 "llgrammar.y"
08cf8642 3248 {g_inTypeDef = FALSE; ;}
3249 break;
3250
3251 case 55:
69db2541 3252#line 536 "llgrammar.y"
08cf8642 3253 { (yyval.abstract) = makeAbstractNode ((yyvsp[(1) - (6)].ltok), (yyvsp[(4) - (6)].ltok), TRUE, FALSE, (yyvsp[(6) - (6)].abstbody)); ;}
3254 break;
3255
3256 case 56:
69db2541 3257#line 537 "llgrammar.y"
08cf8642 3258 {g_inTypeDef = TRUE; ;}
3259 break;
3260
3261 case 57:
69db2541 3262#line 538 "llgrammar.y"
08cf8642 3263 {g_inTypeDef = FALSE; ;}
3264 break;
3265
3266 case 58:
69db2541 3267#line 539 "llgrammar.y"
08cf8642 3268 { (yyval.abstract) = makeAbstractNode ((yyvsp[(1) - (7)].ltok), (yyvsp[(5) - (7)].ltok), TRUE, TRUE, (yyvsp[(7) - (7)].abstbody)); ;}
3269 break;
3270
3271 case 59:
69db2541 3272#line 540 "llgrammar.y"
08cf8642 3273 {g_inTypeDef = TRUE; ;}
3274 break;
3275
3276 case 60:
69db2541 3277#line 541 "llgrammar.y"
08cf8642 3278 {g_inTypeDef = FALSE; ;}
3279 break;
3280
3281 case 61:
69db2541 3282#line 542 "llgrammar.y"
08cf8642 3283 { (yyval.abstract) = makeAbstractNode ((yyvsp[(2) - (7)].ltok), (yyvsp[(5) - (7)].ltok), TRUE, TRUE, (yyvsp[(7) - (7)].abstbody)); ;}
3284 break;
3285
3286 case 62:
69db2541 3287#line 543 "llgrammar.y"
08cf8642 3288 {g_inTypeDef = TRUE; ;}
3289 break;
3290
3291 case 63:
69db2541 3292#line 543 "llgrammar.y"
08cf8642 3293 {g_inTypeDef = FALSE; ;}
3294 break;
3295
3296 case 64:
69db2541 3297#line 544 "llgrammar.y"
08cf8642 3298 { (yyval.abstract) = makeAbstractNode ((yyvsp[(1) - (6)].ltok), (yyvsp[(4) - (6)].ltok), FALSE, FALSE, (yyvsp[(6) - (6)].abstbody)); ;}
3299 break;
3300
3301 case 65:
69db2541 3302#line 548 "llgrammar.y"
08cf8642 3303 { g_inTypeDef = TRUE; setExposedType ((yyvsp[(2) - (2)].lcltypespec)); ;}
3304 break;
3305
3306 case 66:
69db2541 3307#line 549 "llgrammar.y"
08cf8642 3308 { g_inTypeDef = FALSE; ;}
3309 break;
3310
3311 case 67:
69db2541 3312#line 550 "llgrammar.y"
08cf8642 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:
69db2541 3317#line 552 "llgrammar.y"
08cf8642 3318 { (yyval.exposed) = makeExposedNode ((yyvsp[(2) - (2)].ltok), makeLclTypeSpecNodeSU ((yyvsp[(1) - (2)].structorunion)), declaratorInvNodeList_new ()); ;}
3319 break;
3320
3321 case 69:
69db2541 3322#line 554 "llgrammar.y"
08cf8642 3323 { (yyval.exposed) = makeExposedNode ((yyvsp[(2) - (2)].ltok), makeLclTypeSpecNodeEnum ((yyvsp[(1) - (2)].enumspec)), declaratorInvNodeList_new ()); ;}
3324 break;
3325
3326 case 70:
69db2541 3327#line 571 "llgrammar.y"
08cf8642 3328 { (yyval.importlist) = importNodeList_add (importNodeList_new (), (yyvsp[(1) - (1)].import)); ;}
3329 break;
3330
3331 case 71:
69db2541 3332#line 573 "llgrammar.y"
08cf8642 3333 { (yyval.importlist) = importNodeList_add ((yyvsp[(1) - (3)].importlist), (yyvsp[(3) - (3)].import)); ;}
3334 break;
3335
3336 case 72:
69db2541 3337#line 577 "llgrammar.y"
08cf8642 3338 { (yyval.import) = importNode_makePlain ((yyvsp[(1) - (1)].ltok)); ;}
3339 break;
3340
3341 case 73:
69db2541 3342#line 579 "llgrammar.y"
08cf8642 3343 { checkBrackets ((yyvsp[(1) - (3)].ltok), (yyvsp[(3) - (3)].ltok)); (yyval.import) = importNode_makeBracketed ((yyvsp[(2) - (3)].ltok)); ;}
3344 break;
3345
3346 case 74:
69db2541 3347#line 580 "llgrammar.y"
08cf8642 3348 { (yyval.import) = importNode_makeQuoted ((yyvsp[(1) - (1)].ltok)); ;}
3349 break;
3350
3351 case 75:
69db2541 3352#line 584 "llgrammar.y"
08cf8642 3353 { (yyval.ltokenList) = ltokenList_singleton ((yyvsp[(1) - (1)].ltok)); ;}
3354 break;
3355
3356 case 76:
69db2541 3357#line 585 "llgrammar.y"
08cf8642 3358 { (yyval.ltokenList) = ltokenList_push ((yyvsp[(1) - (3)].ltokenList), (yyvsp[(3) - (3)].ltok)); ;}
3359 break;
3360
3361 case 78:
69db2541 3362#line 595 "llgrammar.y"
08cf8642 3363 { (yyval.traitreflist) = traitRefNodeList_add (traitRefNodeList_new (), (yyvsp[(1) - (1)].traitref)); ;}
3364 break;
3365
3366 case 79:
69db2541 3367#line 597 "llgrammar.y"
08cf8642 3368 { (yyval.traitreflist) = traitRefNodeList_add ((yyvsp[(1) - (3)].traitreflist), (yyvsp[(3) - (3)].traitref)); ;}
3369 break;
3370
3371 case 80:
69db2541 3372#line 602 "llgrammar.y"
08cf8642 3373 { (yyval.traitref) = makeTraitRefNode (ltokenList_singleton ((yyvsp[(1) - (1)].ltok)), (renamingNode)0); ;}
3374 break;
3375
3376 case 81:
69db2541 3377#line 604 "llgrammar.y"
08cf8642 3378 { (yyval.traitref) = makeTraitRefNode (ltokenList_singleton ((yyvsp[(1) - (4)].ltok)), (yyvsp[(3) - (4)].renaming)); ;}
3379 break;
3380
3381 case 82:
69db2541 3382#line 606 "llgrammar.y"
08cf8642 3383 { (yyval.traitref) = makeTraitRefNode ((yyvsp[(2) - (3)].ltokenList), (renamingNode)0); ;}
3384 break;
3385
3386 case 83:
69db2541 3387#line 608 "llgrammar.y"
08cf8642 3388 { (yyval.traitref) = makeTraitRefNode ((yyvsp[(2) - (6)].ltokenList), (yyvsp[(5) - (6)].renaming)); ;}
3389 break;
3390
3391 case 84:
69db2541 3392#line 612 "llgrammar.y"
08cf8642 3393 { (yyval.ltokenList) = ltokenList_singleton ((yyvsp[(1) - (1)].ltok)); ;}
3394 break;
3395
3396 case 85:
69db2541 3397#line 613 "llgrammar.y"
08cf8642 3398 { (yyval.ltokenList) = ltokenList_push ((yyvsp[(1) - (3)].ltokenList), (yyvsp[(3) - (3)].ltok)); ;}
3399 break;
3400
3401 case 86:
69db2541 3402#line 618 "llgrammar.y"
08cf8642 3403 { (yyval.renaming) = makeRenamingNode (typeNameNodeList_new (), (yyvsp[(1) - (1)].replacelist)); ;}
3404 break;
3405
3406 case 87:
69db2541 3407#line 620 "llgrammar.y"
08cf8642 3408 { (yyval.renaming) = makeRenamingNode ((yyvsp[(1) - (1)].namelist), replaceNodeList_new ()); ;}
3409 break;
3410
3411 case 88:
69db2541 3412#line 621 "llgrammar.y"
08cf8642 3413 { (yyval.renaming) = makeRenamingNode ((yyvsp[(1) - (3)].namelist), (yyvsp[(3) - (3)].replacelist)); ;}
3414 break;
3415
3416 case 89:
69db2541 3417#line 626 "llgrammar.y"
08cf8642 3418 { (yyval.namelist) = typeNameNodeList_add (typeNameNodeList_new (), (yyvsp[(1) - (1)].typname)); ;}
3419 break;
3420
3421 case 90:
69db2541 3422#line 627 "llgrammar.y"
08cf8642 3423 { (yyval.namelist) = typeNameNodeList_add ((yyvsp[(1) - (3)].namelist), (yyvsp[(3) - (3)].typname)); ;}
3424 break;
3425
3426 case 91:
69db2541 3427#line 632 "llgrammar.y"
08cf8642 3428 { (yyval.replacelist) = replaceNodeList_add (replaceNodeList_new (), (yyvsp[(1) - (1)].replace)); ;}
3429 break;
3430
3431 case 92:
69db2541 3432#line 633 "llgrammar.y"
08cf8642 3433 { (yyval.replacelist) = replaceNodeList_add ((yyvsp[(1) - (3)].replacelist), (yyvsp[(3) - (3)].replace)); ;}
3434 break;
3435
3436 case 93:
69db2541 3437#line 637 "llgrammar.y"
08cf8642 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:
69db2541 3442#line 638 "llgrammar.y"
08cf8642 3443 { (yyval.replace) = makeReplaceNameNode ((yyvsp[(2) - (3)].ltok), (yyvsp[(1) - (3)].typname), (yyvsp[(3) - (3)].name)); ;}
3444 break;
3445
3446 case 95:
69db2541 3447#line 639 "llgrammar.y"
08cf8642 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:
69db2541 3453#line 644 "llgrammar.y"
08cf8642 3454 { (yyval.name) = makeNameNodeId ((yyvsp[(1) - (1)].ltok)); ;}
3455 break;
3456
3457 case 97:
69db2541 3458#line 645 "llgrammar.y"
08cf8642 3459 { (yyval.name) = makeNameNodeForm ((yyvsp[(1) - (1)].opform)); ;}
3460 break;
3461
3462 case 100:
69db2541 3463#line 656 "llgrammar.y"
08cf8642 3464 { (yyval.initdecls) = initDeclNodeList_add (initDeclNodeList_new (), (yyvsp[(1) - (1)].initdecl)); ;}
3465 break;
3466
3467 case 101:
69db2541 3468#line 658 "llgrammar.y"
08cf8642 3469 { (yyval.initdecls) = initDeclNodeList_add ((yyvsp[(1) - (3)].initdecls), (yyvsp[(3) - (3)].initdecl)); ;}
3470 break;
3471
3472 case 102:
69db2541 3473#line 662 "llgrammar.y"
08cf8642 3474 { (yyval.initdecl) = makeInitDeclNode ((yyvsp[(1) - (1)].declare), (termNode)0); ;}
3475 break;
3476
3477 case 103:
69db2541 3478#line 663 "llgrammar.y"
08cf8642 3479 { (yyval.initdecl) = makeInitDeclNode ((yyvsp[(1) - (3)].declare), (yyvsp[(3) - (3)].term)); ;}
3480 break;
3481
3482 case 104:
69db2541 3483#line 668 "llgrammar.y"
08cf8642 3484 { (yyval.globals) = varDeclarationNodeList_new (); ;}
3485 break;
3486
3487 case 105:
69db2541 3488#line 670 "llgrammar.y"
08cf8642 3489 { varDeclarationNodeList_addh ((yyvsp[(1) - (2)].globals), (yyvsp[(2) - (2)].vardeclaration)); (yyval.globals) = (yyvsp[(1) - (2)].globals); ;}
3490 break;
3491
3492 case 106:
69db2541 3493#line 674 "llgrammar.y"
08cf8642 3494 { (yyval.vardeclaration) = makeVarDeclarationNode ((yyvsp[(1) - (3)].lcltypespec), (yyvsp[(2) - (3)].initdecls), TRUE, FALSE); ;}
3495 break;
3496
3497 case 107:
69db2541 3498#line 675 "llgrammar.y"
08cf8642 3499 { (yyval.vardeclaration) = makeInternalStateNode (); ;}
3500 break;
3501
3502 case 108:
69db2541 3503#line 676 "llgrammar.y"
08cf8642 3504 { (yyval.vardeclaration) = makeFileSystemNode (); ;}
3505 break;
3506
3507 case 109:
69db2541 3508#line 680 "llgrammar.y"
08cf8642 3509 { (yyval.vardeclarationlist) = varDeclarationNodeList_new (); ;}
3510 break;
3511
3512 case 110:
69db2541 3513#line 681 "llgrammar.y"
08cf8642 3514 { varDeclarationNodeList_addh ((yyvsp[(1) - (2)].vardeclarationlist), (yyvsp[(2) - (2)].vardeclaration)); (yyval.vardeclarationlist) = (yyvsp[(1) - (2)].vardeclarationlist); ;}
3515 break;
3516
3517 case 111:
69db2541 3518#line 686 "llgrammar.y"
08cf8642 3519 { (yyval.vardeclaration) = makeVarDeclarationNode ((yyvsp[(2) - (4)].lcltypespec), (yyvsp[(3) - (4)].initdecls), FALSE, TRUE); ;}
3520 break;
3521
3522 case 112:
69db2541 3523#line 690 "llgrammar.y"
08cf8642 3524 { (yyval.letdecls) = letDeclNodeList_new (); ;}
3525 break;
3526
3527 case 113:
69db2541 3528#line 691 "llgrammar.y"
08cf8642 3529 { (yyval.letdecls) = (yyvsp[(2) - (3)].letdecls); ;}
3530 break;
3531
3532 case 114:
69db2541 3533#line 695 "llgrammar.y"
08cf8642 3534 { (yyval.letdecls) = letDeclNodeList_add (letDeclNodeList_new (), (yyvsp[(1) - (1)].letdecl)); ;}
3535 break;
3536
3537 case 115:
69db2541 3538#line 696 "llgrammar.y"
08cf8642 3539 { (yyval.letdecls) = letDeclNodeList_add ((yyvsp[(1) - (3)].letdecls), (yyvsp[(3) - (3)].letdecl)); ;}
3540 break;
3541
3542 case 116:
69db2541 3543#line 700 "llgrammar.y"
08cf8642 3544 { (yyval.letdecl) = makeLetDeclNode ((yyvsp[(1) - (5)].ltok), (yyvsp[(3) - (5)].lcltypespec), (yyvsp[(5) - (5)].term)); ;}
3545 break;
3546
3547 case 117:
69db2541 3548#line 701 "llgrammar.y"
08cf8642 3549 { (yyval.letdecl) = makeLetDeclNode ((yyvsp[(1) - (3)].ltok), (lclTypeSpecNode)0, (yyvsp[(3) - (3)].term)); ;}
3550 break;
3551
3552 case 119:
69db2541 3553#line 708 "llgrammar.y"
08cf8642 3554 { (yyval.lclpredicate) = (lclPredicateNode)0; ;}
3555 break;
3556
3557 case 120:
69db2541 3558#line 709 "llgrammar.y"
08cf8642 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:
69db2541 3563#line 713 "llgrammar.y"
08cf8642 3564 { (yyval.lclpredicate) = (lclPredicateNode)0; ;}
3565 break;
3566
3567 case 122:
69db2541 3568#line 714 "llgrammar.y"
08cf8642 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:
69db2541 3573#line 718 "llgrammar.y"
08cf8642 3574 { (yyval.modify) = (modifyNode)0; ;}
3575 break;
3576
3577 case 124:
69db2541 3578#line 719 "llgrammar.y"
08cf8642 3579 { (yyval.modify) = makeModifyNodeSpecial ((yyvsp[(1) - (3)].ltok), TRUE); ;}
3580 break;
3581
3582 case 125:
69db2541 3583#line 720 "llgrammar.y"
08cf8642 3584 { (yyval.modify) = makeModifyNodeSpecial ((yyvsp[(1) - (3)].ltok), FALSE); ;}
3585 break;
3586
3587 case 126:
69db2541 3588#line 721 "llgrammar.y"
08cf8642 3589 { (yyval.modify) = makeModifyNodeRef ((yyvsp[(1) - (3)].ltok), (yyvsp[(2) - (3)].storereflist)); ;}
3590 break;
3591
3592 case 127:
69db2541 3593#line 725 "llgrammar.y"
08cf8642 3594 { (yyval.storereflist) = storeRefNodeList_add (storeRefNodeList_new (), (yyvsp[(1) - (1)].storeref)); ;}
3595 break;
3596
3597 case 128:
69db2541 3598#line 726 "llgrammar.y"
08cf8642 3599 { (yyval.storereflist) = storeRefNodeList_add ((yyvsp[(1) - (3)].storereflist), (yyvsp[(3) - (3)].storeref)); ;}
3600 break;
3601
3602 case 129:
69db2541 3603#line 730 "llgrammar.y"
08cf8642 3604 { (yyval.storeref) = makeStoreRefNodeTerm ((yyvsp[(1) - (1)].term)); ;}
3605 break;
3606
3607 case 130:
69db2541 3608#line 731 "llgrammar.y"
08cf8642 3609 { (yyval.storeref) = makeStoreRefNodeType ((yyvsp[(1) - (1)].lcltypespec), FALSE); ;}
3610 break;
3611
3612 case 131:
69db2541 3613#line 732 "llgrammar.y"
08cf8642 3614 { (yyval.storeref) = makeStoreRefNodeType ((yyvsp[(2) - (2)].lcltypespec), TRUE); ;}
3615 break;
3616
3617 case 132:
69db2541 3618#line 733 "llgrammar.y"
08cf8642 3619 { (yyval.storeref) = makeStoreRefNodeInternal (); ;}
3620 break;
3621
3622 case 133:
69db2541 3623#line 734 "llgrammar.y"
08cf8642 3624 { (yyval.storeref) = makeStoreRefNodeSystem (); ;}
3625 break;
3626
3627 case 134:
69db2541 3628#line 738 "llgrammar.y"
08cf8642 3629 { (yyval.lclpredicate) = (lclPredicateNode)0; ;}
3630 break;
3631
3632 case 135:
69db2541 3633#line 739 "llgrammar.y"
08cf8642 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:
69db2541 3638#line 743 "llgrammar.y"
08cf8642 3639 { (yyval.lclpredicate) = (lclPredicateNode)0; ;}
3640 break;
3641
3642 case 137:
69db2541 3643#line 744 "llgrammar.y"
08cf8642 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:
69db2541 3648#line 748 "llgrammar.y"
08cf8642 3649 { (yyval.paramlist) = paramNodeList_new (); ;}
3650 break;
3651
3652 case 139:
69db2541 3653#line 749 "llgrammar.y"
08cf8642 3654 { (yyval.paramlist) = (yyvsp[(1) - (1)].paramlist); ;}
3655 break;
3656
3657 case 141:
69db2541 3658#line 754 "llgrammar.y"
08cf8642 3659 { (yyval.paramlist) = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;}
3660 break;
3661
3662 case 142:
69db2541 3663#line 755 "llgrammar.y"
08cf8642 3664 { (yyval.paramlist) = paramNodeList_add ((yyvsp[(1) - (3)].paramlist), paramNode_elipsis ()); ;}
3665 break;
3666
3667 case 143:
69db2541 3668#line 759 "llgrammar.y"
08cf8642 3669 { (yyval.paramlist) = paramNodeList_single ((yyvsp[(1) - (1)].param)); ;}
3670 break;
3671
3672 case 144:
69db2541 3673#line 760 "llgrammar.y"
08cf8642 3674 { (yyval.paramlist) = paramNodeList_add ((yyvsp[(1) - (3)].paramlist), (yyvsp[(3) - (3)].param)); ;}
3675 break;
3676
3677 case 145:
69db2541 3678#line 764 "llgrammar.y"
08cf8642 3679 { (yyval.program) = (programNode)0; ;}
3680 break;
3681
3682 case 146:
69db2541 3683#line 765 "llgrammar.y"
08cf8642 3684 { (yyval.program) = (yyvsp[(3) - (4)].program); ;}
3685 break;
3686
3687 case 147:
69db2541 3688#line 766 "llgrammar.y"
08cf8642 3689 { (yyval.program) = (yyvsp[(3) - (5)].program); ;}
3690 break;
3691
3692 case 148:
69db2541 3693#line 770 "llgrammar.y"
08cf8642 3694 { (yyval.program) = makeProgramNode ((yyvsp[(1) - (1)].stmt)); ;}
3695 break;
3696
3697 case 149:
69db2541 3698#line 773 "llgrammar.y"
08cf8642 3699 { (yyval.program) = (yyvsp[(2) - (3)].program); (yyval.program)->wrapped = (yyval.program)->wrapped + 1; ;}
3700 break;
3701
3702 case 150:
69db2541 3703#line 775 "llgrammar.y"
08cf8642 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:
69db2541 3711#line 780 "llgrammar.y"
08cf8642 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:
69db2541 3720#line 786 "llgrammar.y"
08cf8642 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:
69db2541 3729#line 795 "llgrammar.y"
08cf8642 3730 { (yyval.stmt) = makeStmtNode (ltoken_undefined, (yyvsp[(1) - (4)].ltok), (yyvsp[(3) - (4)].termlist)); ;}
3731 break;
3732
3733 case 154:
69db2541 3734#line 797 "llgrammar.y"
08cf8642 3735 { (yyval.stmt) = makeStmtNode (ltoken_undefined, (yyvsp[(1) - (3)].ltok), termNodeList_new ()); ;}
3736 break;
3737
3738 case 155:
69db2541 3739#line 799 "llgrammar.y"
08cf8642 3740 { (yyval.stmt) = makeStmtNode ((yyvsp[(1) - (5)].ltok), (yyvsp[(3) - (5)].ltok), termNodeList_new ()); ;}
3741 break;
3742
3743 case 156:
69db2541 3744#line 801 "llgrammar.y"
08cf8642 3745 { (yyval.stmt) = makeStmtNode ((yyvsp[(1) - (6)].ltok), (yyvsp[(3) - (6)].ltok), (yyvsp[(5) - (6)].termlist)); ;}
3746 break;
3747
3748 case 157:
69db2541 3749#line 805 "llgrammar.y"
08cf8642 3750 { (yyval.termlist) = termNodeList_push (termNodeList_new (), (yyvsp[(1) - (1)].term)); ;}
3751 break;
3752
3753 case 158:
69db2541 3754#line 806 "llgrammar.y"
08cf8642 3755 { (yyval.termlist) = termNodeList_push ((yyvsp[(1) - (3)].termlist), (yyvsp[(3) - (3)].term)); ;}
3756 break;
3757
3758 case 160:
69db2541 3759#line 811 "llgrammar.y"
08cf8642 3760 { (yyval.term) = makeSimpleTermNode ((yyvsp[(1) - (1)].ltok)); ;}
3761 break;
3762
3763 case 161:
69db2541 3764#line 812 "llgrammar.y"
08cf8642 3765 { (yyval.term) = makePrefixTermNode ((yyvsp[(1) - (2)].ltok), (yyvsp[(2) - (2)].term)); ;}
3766 break;
3767
3768 case 162:
69db2541 3769#line 813 "llgrammar.y"
08cf8642 3770 { (yyval.term) = makePostfixTermNode2 ((yyvsp[(1) - (2)].term), (yyvsp[(2) - (2)].ltok)); ;}
3771 break;
3772
3773 case 163:
69db2541 3774#line 814 "llgrammar.y"
08cf8642 3775 { (yyval.term) = makeInfixTermNode ((yyvsp[(1) - (3)].term), (yyvsp[(2) - (3)].ltok), (yyvsp[(3) - (3)].term)); ;}
3776 break;
3777
3778 case 164:
69db2541 3779#line 815 "llgrammar.y"
08cf8642 3780 { (yyval.term) = (yyvsp[(2) - (3)].term); (yyval.term)->wrapped = (yyval.term)->wrapped + 1; ;}
3781 break;
3782
3783 case 165:
69db2541 3784#line 817 "llgrammar.y"
08cf8642 3785 { (yyval.term) = makeOpCallTermNode ((yyvsp[(1) - (3)].ltok), (yyvsp[(2) - (3)].ltok), termNodeList_new (), (yyvsp[(3) - (3)].ltok)); ;}
3786 break;
3787
3788 case 166:
69db2541 3789#line 819 "llgrammar.y"
08cf8642 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:
69db2541 3794#line 823 "llgrammar.y"
08cf8642 3795 { (yyval.abstbody) = (abstBodyNode)0; ;}
3796 break;
3797
3798 case 168:
69db2541 3799#line 824 "llgrammar.y"
08cf8642 3800 { (yyval.abstbody) = makeAbstBodyNode ((yyvsp[(1) - (3)].ltok), (yyvsp[(2) - (3)].fcns)); ;}
3801 break;
3802
3803 case 169:
69db2541 3804#line 825 "llgrammar.y"
08cf8642 3805 { (yyval.abstbody) = makeAbstBodyNode2 ((yyvsp[(1) - (4)].ltok), (yyvsp[(2) - (4)].ltokenList)); ;}
3806 break;
3807
3808 case 170:
69db2541 3809#line 826 "llgrammar.y"
08cf8642 3810 { (yyval.abstbody) = (abstBodyNode)0; ;}
3811 break;
3812
3813 case 171:
69db2541 3814#line 830 "llgrammar.y"
08cf8642 3815 { (yyval.fcns) = fcnNodeList_new (); ;}
3816 break;
3817
3818 case 172:
69db2541 3819#line 831 "llgrammar.y"
08cf8642 3820 { (yyval.fcns) = fcnNodeList_add ((yyvsp[(1) - (2)].fcns), (yyvsp[(2) - (2)].fcn)); ;}
3821 break;
3822
3823 case 173:
69db2541 3824#line 835 "llgrammar.y"
08cf8642 3825 { (yyval.lclpredicate) = (lclPredicateNode)0; ;}
3826 break;
3827
3828 case 175:
69db2541 3829#line 840 "llgrammar.y"
08cf8642 3830 { g_inTypeDef = FALSE; ;}
3831 break;
3832
3833 case 176:
69db2541 3834#line 841 "llgrammar.y"
08cf8642 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:
69db2541 3844#line 850 "llgrammar.y"
08cf8642 3845 { (yyval.declaratorinvs) = declaratorInvNodeList_add (declaratorInvNodeList_new (), (yyvsp[(1) - (1)].declaratorinv)); ;}
3846 break;
3847
3848 case 178:
69db2541 3849#line 852 "llgrammar.y"
08cf8642 3850 { (yyval.declaratorinvs) = declaratorInvNodeList_add ((yyvsp[(1) - (3)].declaratorinvs), (yyvsp[(3) - (3)].declaratorinv)); ;}
3851 break;
3852
3853 case 179:
69db2541 3854#line 856 "llgrammar.y"
08cf8642 3855 { declareForwardType ((yyvsp[(1) - (1)].declare)); ;}
3856 break;
3857
3858 case 180:
69db2541 3859#line 857 "llgrammar.y"
08cf8642 3860 { (yyval.declaratorinv) = makeDeclaratorInvNode ((yyvsp[(1) - (3)].declare), (yyvsp[(3) - (3)].abstbody)); ;}
3861 break;
3862
3863 case 181:
69db2541 3864#line 861 "llgrammar.y"
08cf8642 3865 { (yyval.abstbody) = (abstBodyNode)0; ;}
3866 break;
3867
3868 case 182:
69db2541 3869#line 862 "llgrammar.y"
08cf8642 3870 { (yyval.abstbody) = makeExposedBodyNode ((yyvsp[(1) - (3)].ltok), (yyvsp[(2) - (3)].lclpredicate)); ;}
3871 break;
3872
3873 case 183:
69db2541 3874#line 866 "llgrammar.y"
08cf8642 3875 { (yyval.ltok) = (yyvsp[(1) - (1)].ltok); ltoken_setIntField ((yyval.ltok), fixBits (TS_VOID, 0)); ;}
3876 break;
3877
3878 case 184:
69db2541 3879#line 867 "llgrammar.y"
08cf8642 3880 { (yyval.ltok) = (yyvsp[(1) - (1)].ltok); ltoken_setIntField ((yyval.ltok), fixBits (TS_CHAR, 0)); ;}
3881 break;
3882
3883 case 185:
69db2541 3884#line 868 "llgrammar.y"
08cf8642 3885 { (yyval.ltok) = (yyvsp[(1) - (1)].ltok); ltoken_setIntField ((yyval.ltok), fixBits (TS_DOUBLE, 0)); ;}
3886 break;
3887
3888 case 186:
69db2541 3889#line 869 "llgrammar.y"
08cf8642 3890 { (yyval.ltok) = (yyvsp[(1) - (1)].ltok); ltoken_setIntField ((yyval.ltok), fixBits (TS_FLOAT, 0)); ;}
3891 break;
3892
3893 case 187:
69db2541 3894#line 870 "llgrammar.y"
08cf8642 3895 { (yyval.ltok) = (yyvsp[(1) - (1)].ltok); ltoken_setIntField ((yyval.ltok), fixBits (TS_INT, 0)); ;}
3896 break;
3897
3898 case 188:
69db2541 3899#line 871 "llgrammar.y"
08cf8642 3900 { (yyval.ltok) = (yyvsp[(1) - (1)].ltok); ltoken_setIntField ((yyval.ltok), fixBits (TS_LONG, 0)); ;}
3901 break;
3902
3903 case 189:
69db2541 3904#line 872 "llgrammar.y"
08cf8642 3905 { (yyval.ltok) = (yyvsp[(1) - (1)].ltok); ltoken_setIntField ((yyval.ltok), fixBits (TS_SHORT, 0)); ;}
3906 break;
3907
3908 case 190:
69db2541 3909#line 873 "llgrammar.y"
08cf8642 3910 { (yyval.ltok) = (yyvsp[(1) - (1)].ltok); ltoken_setIntField ((yyval.ltok), fixBits (TS_SIGNED, 0)); ;}
3911 break;
3912
3913 case 191:
69db2541 3914#line 874 "llgrammar.y"
08cf8642 3915 { (yyval.ltok) = (yyvsp[(1) - (1)].ltok); ltoken_setIntField ((yyval.ltok), fixBits (TS_UNSIGNED, 0)); ;}
3916 break;
3917
3918 case 192:
69db2541 3919#line 875 "llgrammar.y"
08cf8642 3920 { (yyval.ltok) = (yyvsp[(1) - (1)].ltok); ltoken_setIntField ((yyval.ltok), fixBits (TS_UNKNOWN, 0)); ;}
3921 break;
3922
3923 case 193:
69db2541 3924#line 884 "llgrammar.y"
08cf8642 3925 { (yyval.ctypes) = makeCTypesNode ((CTypesNode)0, (yyvsp[(1) - (1)].ltok)); ;}
3926 break;
3927
3928 case 194:
69db2541 3929#line 885 "llgrammar.y"
08cf8642 3930 { (yyval.ctypes) = makeCTypesNode ((yyvsp[(1) - (2)].ctypes), (yyvsp[(2) - (2)].ltok)); ;}
3931 break;
3932
3933 case 195:
69db2541 3934#line 892 "llgrammar.y"
08cf8642 3935 { (yyval.ctypes) = makeTypeSpecifier ((yyvsp[(1) - (1)].ltok)); ;}
3936 break;
3937
3938 case 196:
69db2541 3939#line 894 "llgrammar.y"
08cf8642 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:
69db2541 3944#line 900 "llgrammar.y"
08cf8642 3945 { (yyval.typequal) = qual_createOut (); ;}
3946 break;
3947
3948 case 198:
69db2541 3949#line 901 "llgrammar.y"
08cf8642 3950 { (yyval.typequal) = qual_createUnused (); ;}
3951 break;
3952
3953 case 199:
69db2541 3954#line 902 "llgrammar.y"
08cf8642 3955 { (yyval.typequal) = qual_createSef (); ;}
3956 break;
3957
3958 case 200:
69db2541 3959#line 903 "llgrammar.y"
08cf8642 3960 { (yyval.typequal) = qual_createOnly (); ;}
3961 break;
3962
3963 case 201:
69db2541 3964#line 904 "llgrammar.y"
08cf8642 3965 { (yyval.typequal) = qual_createOwned (); ;}
3966 break;
3967
3968 case 202:
69db2541 3969#line 905 "llgrammar.y"
08cf8642 3970 { (yyval.typequal) = qual_createDependent (); ;}
3971 break;
3972
3973 case 203:
69db2541 3974#line 906 "llgrammar.y"
08cf8642 3975 { (yyval.typequal) = qual_createKeep (); ;}
3976 break;
3977
3978 case 204:
69db2541 3979#line 907 "llgrammar.y"
08cf8642 3980 { (yyval.typequal) = qual_createKept (); ;}
3981 break;
3982
3983 case 205:
69db2541 3984#line 908 "llgrammar.y"
08cf8642 3985 { (yyval.typequal) = qual_createObserver (); ;}
3986 break;
3987
3988 case 206:
69db2541 3989#line 909 "llgrammar.y"
08cf8642 3990 { (yyval.typequal) = qual_createExits (); ;}
3991 break;
3992
3993 case 207:
69db2541 3994#line 910 "llgrammar.y"
08cf8642 3995 { (yyval.typequal) = qual_createMayExit (); ;}
3996 break;
3997
3998 case 208:
69db2541 3999#line 911 "llgrammar.y"
08cf8642 4000 { (yyval.typequal) = qual_createTrueExit (); ;}
4001 break;
4002
4003 case 209:
69db2541 4004#line 912 "llgrammar.y"
08cf8642 4005 { (yyval.typequal) = qual_createFalseExit (); ;}
4006 break;
4007
4008 case 210:
69db2541 4009#line 913 "llgrammar.y"
08cf8642 4010 { (yyval.typequal) = qual_createNeverExit (); ;}
4011 break;
4012
4013 case 211:
69db2541 4014#line 914 "llgrammar.y"
08cf8642 4015 { (yyval.typequal) = qual_createOnly (); ;}
4016 break;
4017
4018 case 212:
69db2541 4019#line 915 "llgrammar.y"
08cf8642 4020 { (yyval.typequal) = qual_createShared (); ;}
4021 break;
4022
4023 case 213:
69db2541 4024#line 916 "llgrammar.y"
08cf8642 4025 { (yyval.typequal) = qual_createUnique (); ;}
4026 break;
4027
4028 case 214:
69db2541 4029#line 917 "llgrammar.y"
08cf8642 4030 { (yyval.typequal) = qual_createChecked (); ;}
4031 break;
4032
4033 case 215:
69db2541 4034#line 918 "llgrammar.y"
08cf8642 4035 { (yyval.typequal) = qual_createUnchecked (); ;}
4036 break;
4037
4038 case 216:
69db2541 4039#line 919 "llgrammar.y"
08cf8642 4040 { (yyval.typequal) = qual_createCheckedStrict (); ;}
4041 break;
4042
4043 case 217:
69db2541 4044#line 920 "llgrammar.y"
08cf8642 4045 { (yyval.typequal) = qual_createTrueNull (); ;}
4046 break;
4047
4048 case 218:
69db2541 4049#line 921 "llgrammar.y"
08cf8642 4050 { (yyval.typequal) = qual_createFalseNull (); ;}
4051 break;
4052
4053 case 219:
69db2541 4054#line 922 "llgrammar.y"
08cf8642 4055 { (yyval.typequal) = qual_createRelNull (); ;}
4056 break;
4057
4058 case 220:
69db2541 4059#line 923 "llgrammar.y"
08cf8642 4060 { (yyval.typequal) = qual_createRelDef (); ;}
4061 break;
4062
4063 case 221:
69db2541 4064#line 924 "llgrammar.y"
08cf8642 4065 { (yyval.typequal) = qual_createRefCounted (); ;}
4066 break;
4067
4068 case 222:
69db2541 4069#line 925 "llgrammar.y"
08cf8642 4070 { (yyval.typequal) = qual_createRefs (); ;}
4071 break;
4072
4073 case 223:
69db2541 4074#line 926 "llgrammar.y"
08cf8642 4075 { (yyval.typequal) = qual_createNewRef (); ;}
4076 break;
4077
4078 case 224:
69db2541 4079#line 927 "llgrammar.y"
08cf8642 4080 { (yyval.typequal) = qual_createKillRef (); ;}
4081 break;
4082
4083 case 225:
69db2541 4084#line 928 "llgrammar.y"
08cf8642 4085 { (yyval.typequal) = qual_createNull (); ;}
4086 break;
4087
4088 case 226:
69db2541 4089#line 929 "llgrammar.y"
08cf8642 4090 { (yyval.typequal) = qual_createNotNull (); ;}
4091 break;
4092
4093 case 227:
69db2541 4094#line 930 "llgrammar.y"
08cf8642 4095 { (yyval.typequal) = qual_createReturned (); ;}
4096 break;
4097
4098 case 228:
69db2541 4099#line 931 "llgrammar.y"
08cf8642 4100 { (yyval.typequal) = qual_createExposed (); ;}
4101 break;
4102
4103 case 229:
69db2541 4104#line 932 "llgrammar.y"
08cf8642 4105 { (yyval.typequal) = qual_createPartial (); ;}
4106 break;
4107
4108 case 230:
69db2541 4109#line 933 "llgrammar.y"
08cf8642 4110 { (yyval.typequal) = qual_createNullTerminated () ; ;}
4111 break;
4112
4113 case 231:
69db2541 4114#line 934 "llgrammar.y"
08cf8642 4115 { (yyval.typequal) = qual_createUndef (); ;}
4116 break;
4117
4118 case 232:
69db2541 4119#line 935 "llgrammar.y"
08cf8642 4120 { (yyval.typequal) = qual_createKilled (); ;}
4121 break;
4122
4123 case 233:
69db2541 4124#line 940 "llgrammar.y"
08cf8642 4125 { (yyval.lcltypespec) = makeLclTypeSpecNodeType ((yyvsp[(1) - (1)].ctypes)); ;}
4126 break;
4127
4128 case 234:
69db2541 4129#line 942 "llgrammar.y"
08cf8642 4130 { (yyval.lcltypespec) = makeLclTypeSpecNodeSU ((yyvsp[(1) - (1)].structorunion)); ;}
4131 break;
4132
4133 case 235:
69db2541 4134#line 944 "llgrammar.y"
08cf8642 4135 { (yyval.lcltypespec) = makeLclTypeSpecNodeEnum ((yyvsp[(1) - (1)].enumspec)); ;}
4136 break;
4137
4138 case 236:
69db2541 4139#line 946 "llgrammar.y"
08cf8642 4140 { (yyval.lcltypespec) = lclTypeSpecNode_addQual ((yyvsp[(2) - (2)].lcltypespec), (yyvsp[(1) - (2)].typequal)); ;}
4141 break;
4142
4143 case 237:
69db2541 4144#line 948 "llgrammar.y"
08cf8642 4145 { (yyval.lcltypespec) = makeLclTypeSpecNodeConj ((yyvsp[(2) - (5)].lcltypespec), (yyvsp[(4) - (5)].lcltypespec)); ;}
4146 break;
4147
4148 case 239:
69db2541 4149#line 959 "llgrammar.y"
08cf8642 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:
69db2541 4155#line 964 "llgrammar.y"
08cf8642 4156 { (yyval.pointers) = pointers_createLt ((yyvsp[(1) - (1)].ltok)); ;}
4157 break;
4158
4159 case 241:
69db2541 4160#line 965 "llgrammar.y"
08cf8642 4161 { (yyval.pointers) = pointers_extend ((yyvsp[(1) - (2)].pointers), pointers_createLt ((yyvsp[(2) - (2)].ltok))); ;}
4162 break;
4163
4164 case 242:
69db2541 4165#line 970 "llgrammar.y"
08cf8642 4166 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy ((yyvsp[(2) - (2)].ltok))); ;}
4167 break;
4168
4169 case 243:
69db2541 4170#line 972 "llgrammar.y"
08cf8642 4171 { (yyval.structorunion) = makestrOrUnionNode ((yyvsp[(1) - (6)].ltok), SU_STRUCT, (yyvsp[(2) - (6)].ltok), (yyvsp[(5) - (6)].structdecls)); ;}
4172 break;
4173
4174 case 244:
69db2541 4175#line 974 "llgrammar.y"
08cf8642 4176 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy ((yyvsp[(2) - (2)].ltok))); ;}
4177 break;
4178
4179 case 245:
69db2541 4180#line 976 "llgrammar.y"
08cf8642 4181 { (yyval.structorunion) = makestrOrUnionNode ((yyvsp[(1) - (6)].ltok), SU_UNION, (yyvsp[(2) - (6)].ltok), (yyvsp[(5) - (6)].structdecls)); ;}
4182 break;
4183
4184 case 246:
69db2541 4185#line 978 "llgrammar.y"
08cf8642 4186 { (yyval.structorunion) = makeForwardstrOrUnionNode ((yyvsp[(1) - (2)].ltok), SU_STRUCT, (yyvsp[(2) - (2)].ltok)); ;}
4187 break;
4188
4189 case 247:
69db2541 4190#line 980 "llgrammar.y"
08cf8642 4191 { (yyval.structorunion) = makeForwardstrOrUnionNode ((yyvsp[(1) - (2)].ltok), SU_UNION, (yyvsp[(2) - (2)].ltok)); ;}
4192 break;
4193
4194 case 248:
69db2541 4195#line 984 "llgrammar.y"
08cf8642 4196 { (yyval.ltok) = ltoken_undefined; ;}
4197 break;
4198
4199 case 250:
69db2541 4200#line 989 "llgrammar.y"
08cf8642 4201 { (yyval.structdecls) = stDeclNodeList_add (stDeclNodeList_new (), (yyvsp[(1) - (1)].structdecl)); ;}
4202 break;
4203
4204 case 251:
69db2541 4205#line 990 "llgrammar.y"
08cf8642 4206 { (yyval.structdecls) = stDeclNodeList_add ((yyvsp[(1) - (2)].structdecls), (yyvsp[(2) - (2)].structdecl)); ;}
4207 break;
4208
4209 case 252:
69db2541 4210#line 996 "llgrammar.y"
08cf8642 4211 { (yyval.structdecl) = makestDeclNode ((yyvsp[(1) - (3)].lcltypespec), (yyvsp[(2) - (3)].declarelist)); ;}
4212 break;
4213
4214 case 253:
69db2541 4215#line 1001 "llgrammar.y"
08cf8642 4216 { (yyval.declarelist) = declaratorNodeList_add (declaratorNodeList_new (), (yyvsp[(1) - (1)].declare)); ;}
4217 break;
4218
4219 case 254:
69db2541 4220#line 1003 "llgrammar.y"
08cf8642 4221 { (yyval.declarelist) = declaratorNodeList_add ((yyvsp[(1) - (3)].declarelist), (yyvsp[(3) - (3)].declare)); ;}
4222 break;
4223
4224 case 255:
69db2541 4225#line 1007 "llgrammar.y"
08cf8642 4226 { ; ;}
4227 break;
4228
4229 case 256:
69db2541 4230#line 1008 "llgrammar.y"
08cf8642 4231 { ; ;}
4232 break;
4233
4234 case 257:
69db2541 4235#line 1013 "llgrammar.y"
08cf8642 4236 { (yyval.enumspec) = makeEnumSpecNode ((yyvsp[(1) - (6)].ltok), (yyvsp[(2) - (6)].ltok), (yyvsp[(4) - (6)].ltokenList)); ;}
4237 break;
4238
4239 case 258:
69db2541 4240#line 1015 "llgrammar.y"
08cf8642 4241 { (yyval.enumspec) = makeEnumSpecNode2 ((yyvsp[(1) - (2)].ltok), (yyvsp[(2) - (2)].ltok)); ;}
4242 break;
4243
4244 case 259:
69db2541 4245#line 1019 "llgrammar.y"
08cf8642 4246 { (yyval.ltokenList) = ltokenList_singleton ((yyvsp[(1) - (1)].ltok)); ;}
4247 break;
4248
4249 case 260:
69db2541 4250#line 1020 "llgrammar.y"
08cf8642 4251 { (yyval.ltokenList) = ltokenList_push ((yyvsp[(1) - (3)].ltokenList), (yyvsp[(3) - (3)].ltok)); ;}
4252 break;
4253
4254 case 261:
69db2541 4255#line 1031 "llgrammar.y"
08cf8642 4256 { (yyval.declare) = makeDeclaratorNode ((yyvsp[(1) - (1)].typeexpr)); ;}
4257 break;
4258
4259 case 262:
69db2541 4260#line 1032 "llgrammar.y"
08cf8642 4261 { (yyval.declare) = makeDeclaratorNode ((yyvsp[(1) - (1)].typeexpr)); ;}
4262 break;
4263
4264 case 263:
69db2541 4265#line 1036 "llgrammar.y"
08cf8642 4266 { (yyval.typeexpr) = makeTypeExpr ((yyvsp[(1) - (1)].ltok)); ;}
4267 break;
4268
4269 case 264:
69db2541 4270#line 1037 "llgrammar.y"
08cf8642 4271 { (yyval.typeexpr) = (yyvsp[(2) - (3)].typeexpr); (yyval.typeexpr)->wrapped = (yyval.typeexpr)->wrapped + 1; ;}
4272 break;
4273
4274 case 265:
69db2541 4275#line 1038 "llgrammar.y"
08cf8642 4276 { (yyval.typeexpr) = makePointerNode ((yyvsp[(1) - (2)].ltok), (yyvsp[(2) - (2)].typeexpr)); ;}
4277 break;
4278
4279 case 266:
69db2541 4280#line 1039 "llgrammar.y"
08cf8642 4281 { (yyval.typeexpr) = makeArrayNode ((yyvsp[(1) - (2)].typeexpr), (yyvsp[(2) - (2)].array)); ;}
4282 break;
4283
4284 case 267:
69db2541 4285#line 1040 "llgrammar.y"
08cf8642 4286 { (yyval.typeexpr) = makeFunctionNode ((yyvsp[(1) - (3)].typeexpr), paramNodeList_new ()); ;}
4287 break;
4288
4289 case 268:
69db2541 4290#line 1041 "llgrammar.y"
08cf8642 4291 { (yyval.typeexpr) = makeFunctionNode ((yyvsp[(1) - (4)].typeexpr), (yyvsp[(3) - (4)].paramlist)); ;}
4292 break;
4293
4294 case 269:
69db2541 4295#line 1045 "llgrammar.y"
08cf8642 4296 { (yyval.typeexpr) = makeTypeExpr ((yyvsp[(1) - (1)].ltok)); ;}
4297 break;
4298
4299 case 270:
69db2541 4300#line 1046 "llgrammar.y"
08cf8642 4301 { (yyval.typeexpr) = (yyvsp[(2) - (3)].typeexpr); (yyval.typeexpr)->wrapped = (yyval.typeexpr)->wrapped + 1; ;}
4302 break;
4303
4304 case 271:
69db2541 4305#line 1047 "llgrammar.y"
08cf8642 4306 { (yyval.typeexpr) = makePointerNode ((yyvsp[(1) - (2)].ltok), (yyvsp[(2) - (2)].typeexpr)); ;}
4307 break;
4308
4309 case 272:
69db2541 4310#line 1048 "llgrammar.y"
08cf8642 4311 { (yyval.typeexpr) = makeArrayNode ((yyvsp[(1) - (2)].typeexpr), (yyvsp[(2) - (2)].array)); ;}
4312 break;
4313
4314 case 273:
69db2541 4315#line 1049 "llgrammar.y"
08cf8642 4316 { (yyval.typeexpr) = makeFunctionNode ((yyvsp[(1) - (3)].typeexpr), paramNodeList_new ()); ;}
4317 break;
4318
4319 case 274:
69db2541 4320#line 1050 "llgrammar.y"
08cf8642 4321 { (yyval.typeexpr) = makeFunctionNode ((yyvsp[(1) - (4)].typeexpr), (yyvsp[(3) - (4)].paramlist)); ;}
4322 break;
4323
4324 case 275:
69db2541 4325#line 1060 "llgrammar.y"
08cf8642 4326 { (yyval.typeexpr) = makeTypeExpr ((yyvsp[(1) - (1)].ltok)); ;}
4327 break;
4328
4329 case 276:
69db2541 4330#line 1061 "llgrammar.y"
08cf8642 4331 { (yyval.typeexpr) = makePointerNode ((yyvsp[(1) - (2)].ltok), (yyvsp[(2) - (2)].typeexpr)); ;}
4332 break;
4333
4334 case 277:
69db2541 4335#line 1062 "llgrammar.y"
08cf8642 4336 { (yyval.typeexpr) = makeArrayNode ((yyvsp[(1) - (2)].typeexpr), (yyvsp[(2) - (2)].array)); ;}
4337 break;
4338
4339 case 278:
69db2541 4340#line 1063 "llgrammar.y"
08cf8642 4341 { (yyval.typeexpr) = makeFunctionNode ((yyvsp[(1) - (3)].typeexpr), paramNodeList_new ()); ;}
4342 break;
4343
4344 case 279:
69db2541 4345#line 1064 "llgrammar.y"
08cf8642 4346 { (yyval.typeexpr) = makeFunctionNode ((yyvsp[(1) - (4)].typeexpr), (yyvsp[(3) - (4)].paramlist)); ;}
4347 break;
4348
4349 case 280:
69db2541 4350#line 1071 "llgrammar.y"
08cf8642 4351 { (yyval.param) = makeParamNode ((yyvsp[(1) - (2)].lcltypespec), (yyvsp[(2) - (2)].typeexpr)); ;}
4352 break;
4353
4354 case 281:
69db2541 4355#line 1072 "llgrammar.y"
08cf8642 4356 { (yyval.param) = makeParamNode ((yyvsp[(1) - (2)].lcltypespec), (yyvsp[(2) - (2)].typeexpr)); ;}
4357 break;
4358
4359 case 282:
69db2541 4360#line 1073 "llgrammar.y"
08cf8642 4361 { (yyval.param) = makeParamNode ((yyvsp[(1) - (2)].lcltypespec), (yyvsp[(2) - (2)].abstDecl)); ;}
4362 break;
4363
4364 case 283:
69db2541 4365#line 1084 "llgrammar.y"
08cf8642 4366 { (yyval.typname) = makeTypeNameNode (FALSE, (yyvsp[(1) - (2)].lcltypespec), (yyvsp[(2) - (2)].abstDecl)); ;}
4367 break;
4368
4369 case 284:
69db2541 4370#line 1085 "llgrammar.y"
08cf8642 4371 { (yyval.typname) = makeTypeNameNode (TRUE, (yyvsp[(2) - (3)].lcltypespec), (yyvsp[(3) - (3)].abstDecl)); ;}
4372 break;
4373
4374 case 285:
69db2541 4375#line 1086 "llgrammar.y"
08cf8642 4376 { (yyval.typname) = makeTypeNameNodeOp ((yyvsp[(1) - (1)].opform)); ;}
4377 break;
4378
4379 case 286:
69db2541 4380#line 1092 "llgrammar.y"
08cf8642 4381 { (yyval.abstDecl) = (abstDeclaratorNode)0; ;}
4382 break;
4383
4384 case 287:
69db2541 4385#line 1093 "llgrammar.y"
08cf8642 4386 { (yyval.abstDecl) = (abstDeclaratorNode)(yyvsp[(1) - (1)].typeexpr); ;}
4387 break;
4388
4389 case 288:
69db2541 4390#line 1097 "llgrammar.y"
08cf8642 4391 { (yyval.typeexpr) = (yyvsp[(2) - (3)].typeexpr); (yyval.typeexpr)->wrapped = (yyval.typeexpr)->wrapped + 1; ;}
4392 break;
4393
4394 case 289:
69db2541 4395#line 1098 "llgrammar.y"
08cf8642 4396 { (yyval.typeexpr) = makePointerNode ((yyvsp[(1) - (2)].ltok), (yyvsp[(2) - (2)].typeexpr)); ;}
4397 break;
4398
4399 case 290:
69db2541 4400#line 1099 "llgrammar.y"
08cf8642 4401 { (yyval.typeexpr) = makePointerNode ((yyvsp[(1) - (1)].ltok), (typeExpr)0); ;}
4402 break;
4403
4404 case 291:
69db2541 4405#line 1100 "llgrammar.y"
08cf8642 4406 { (yyval.typeexpr) = makeArrayNode ((typeExpr)0, (yyvsp[(1) - (1)].array)); ;}
4407 break;
4408
4409 case 292:
69db2541 4410#line 1101 "llgrammar.y"
08cf8642 4411 { (yyval.typeexpr) = makeArrayNode ((yyvsp[(1) - (2)].typeexpr), (yyvsp[(2) - (2)].array)); ;}
4412 break;
4413
4414 case 293:
69db2541 4415#line 1102 "llgrammar.y"
08cf8642 4416 { (yyval.typeexpr) = makeFunctionNode ((yyvsp[(1) - (3)].typeexpr), paramNodeList_new ()); ;}
4417 break;
4418
4419 case 294:
69db2541 4420#line 1103 "llgrammar.y"
08cf8642 4421 { (yyval.typeexpr) = makeFunctionNode ((typeExpr)0, (yyvsp[(2) - (3)].paramlist)); ;}
4422 break;
4423
4424 case 295:
69db2541 4425#line 1104 "llgrammar.y"
08cf8642 4426 { (yyval.typeexpr) = makeFunctionNode ((yyvsp[(1) - (4)].typeexpr), (yyvsp[(3) - (4)].paramlist)); ;}
4427 break;
4428
4429 case 296:
69db2541 4430#line 1108 "llgrammar.y"
08cf8642 4431 { (yyval.array) = makeArrayQualNode ((yyvsp[(1) - (2)].ltok), (termNode)0); ;}
4432 break;
885824d3 4433
08cf8642 4434 case 297:
69db2541 4435#line 1109 "llgrammar.y"
08cf8642 4436 { (yyval.array) = makeArrayQualNode ((yyvsp[(1) - (3)].ltok), (yyvsp[(2) - (3)].term)); ;}
4437 break;
e5081f8c 4438
08cf8642 4439 case 298:
69db2541 4440#line 1114 "llgrammar.y"
08cf8642 4441 { (yyval.opform) = makeOpFormNode ((yyvsp[(1) - (6)].ltok), OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;}
4442 break;
885824d3 4443
08cf8642 4444 case 299:
69db2541 4445#line 1116 "llgrammar.y"
08cf8642 4446 { (yyval.opform) = makeOpFormNode ((yyvsp[(1) - (1)].ltok), OPF_ANYOP, opFormUnion_createAnyOp ((yyvsp[(1) - (1)].ltok)), ltoken_undefined); ;}
4447 break;
8f58355a 4448
08cf8642 4449 case 300:
69db2541 4450#line 1118 "llgrammar.y"
08cf8642 4451 { (yyval.opform) = makeOpFormNode ((yyvsp[(1) - (2)].ltok), OPF_MANYOP, opFormUnion_createAnyOp ((yyvsp[(2) - (2)].ltok)), ltoken_undefined); ;}
4452 break;
4453
4454 case 301:
69db2541 4455#line 1120 "llgrammar.y"
08cf8642 4456 { (yyval.opform) = makeOpFormNode ((yyvsp[(1) - (2)].ltok), OPF_ANYOPM, opFormUnion_createAnyOp ((yyvsp[(1) - (2)].ltok)), ltoken_undefined); ;}
4457 break;
4458
4459 case 302:
69db2541 4460#line 1122 "llgrammar.y"
08cf8642 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:
69db2541 4466#line 1125 "llgrammar.y"
08cf8642 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:
69db2541 4471#line 1127 "llgrammar.y"
08cf8642 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:
69db2541 4476#line 1129 "llgrammar.y"
08cf8642 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:
69db2541 4481#line 1131 "llgrammar.y"
08cf8642 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:
69db2541 4486#line 1133 "llgrammar.y"
08cf8642 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:
69db2541 4491#line 1135 "llgrammar.y"
08cf8642 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:
69db2541 4496#line 1143 "llgrammar.y"
08cf8642 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:
69db2541 4501#line 1145 "llgrammar.y"
08cf8642 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:
69db2541 4506#line 1147 "llgrammar.y"
08cf8642 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:
69db2541 4512#line 1150 "llgrammar.y"
08cf8642 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:
69db2541 4518#line 1153 "llgrammar.y"
08cf8642 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:
69db2541 4524#line 1156 "llgrammar.y"
08cf8642 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:
69db2541 4530#line 1177 "llgrammar.y"
08cf8642 4531 { (yyval.count) = 0; ;}
4532 break;
4533
4534 case 324:
69db2541 4535#line 1182 "llgrammar.y"
08cf8642 4536 { (yyval.count) = 1; ;}
4537 break;
4538
4539 case 325:
69db2541 4540#line 1183 "llgrammar.y"
08cf8642 4541 { (yyval.count) = (yyvsp[(1) - (3)].count) + 1; ;}
4542 break;
4543
4544 case 328:
69db2541 4545#line 1192 "llgrammar.y"
08cf8642 4546 { (yyval.signature) = makesigNode ((yyvsp[(1) - (4)].ltok), (yyvsp[(2) - (4)].ltokenList), (yyvsp[(4) - (4)].ltok)); ;}
4547 break;
4548
4549 case 329:
69db2541 4550#line 1196 "llgrammar.y"
08cf8642 4551 { (yyval.ltokenList) = ltokenList_new (); ;}
4552 break;
4553
4554 case 331:
69db2541 4555#line 1201 "llgrammar.y"
08cf8642 4556 { (yyval.ltokenList) = ltokenList_singleton ((yyvsp[(1) - (1)].ltok)); ;}
4557 break;
4558
4559 case 332:
69db2541 4560#line 1202 "llgrammar.y"
08cf8642 4561 { (yyval.ltokenList) = ltokenList_push ((yyvsp[(1) - (3)].ltokenList), (yyvsp[(3) - (3)].ltok)); ;}
4562 break;
4563
4564 case 333:
69db2541 4565#line 1206 "llgrammar.y"
08cf8642 4566 { (yyval.lclpredicate) = makeLclPredicateNode (ltoken_undefined, (yyvsp[(1) - (1)].term), LPD_PLAIN);;}
4567 break;
4568
4569 case 334:
69db2541 4570#line 1210 "llgrammar.y"
08cf8642 4571 { (yyval.term) = checkSort ((yyvsp[(1) - (1)].term)); ;}
4572 break;
4573
4574 case 335:
69db2541 4575#line 1218 "llgrammar.y"
08cf8642 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:
69db2541 4580#line 1220 "llgrammar.y"
08cf8642 4581 { (yyval.term) = makeInfixTermNode ((yyvsp[(1) - (3)].term), (yyvsp[(2) - (3)].ltok), (yyvsp[(3) - (3)].term)); ;}
4582 break;
4583
4584 case 339:
69db2541 4585#line 1227 "llgrammar.y"
08cf8642 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));
368f75ae 4587 symtable_exitScope (g_symtab);
08cf8642 4588 ;}
4589 break;
4590
4591 case 340:
69db2541 4592#line 1231 "llgrammar.y"
08cf8642 4593 { (yyval.term) = makeInfixTermNode ((yyvsp[(1) - (3)].term), (yyvsp[(2) - (3)].ltok), (yyvsp[(3) - (3)].term));;}
4594 break;
4595
4596 case 341:
69db2541 4597#line 1233 "llgrammar.y"
08cf8642 4598 { (yyval.term) = makeInfixTermNode ((yyvsp[(1) - (3)].term), (yyvsp[(2) - (3)].ltok), (yyvsp[(3) - (3)].term));;}
4599 break;
4600
4601 case 343:
69db2541 4602#line 1238 "llgrammar.y"
08cf8642 4603 { (yyval.term) = makePostfixTermNode ((yyvsp[(1) - (2)].term), (yyvsp[(2) - (2)].ltokenList)); ;}
4604 break;
4605
4606 case 344:
69db2541 4607#line 1239 "llgrammar.y"
08cf8642 4608 { (yyval.term) = CollapseInfixTermNode ((yyvsp[(1) - (2)].term), (yyvsp[(2) - (2)].termlist)); ;}
4609 break;
4610
4611 case 348:
69db2541 4612#line 1249 "llgrammar.y"
08cf8642 4613 { (yyval.term) = makePrefixTermNode ((yyvsp[(1) - (2)].ltok), (yyvsp[(2) - (2)].term)); ;}
4614 break;
4615
4616 case 349:
69db2541 4617#line 1253 "llgrammar.y"
08cf8642 4618 { (yyval.ltokenList) = ltokenList_singleton ((yyvsp[(1) - (1)].ltok)); ;}
4619 break;
4620
4621 case 350:
69db2541 4622#line 1254 "llgrammar.y"
08cf8642 4623 { (yyval.ltokenList) = ltokenList_push ((yyvsp[(1) - (2)].ltokenList), (yyvsp[(2) - (2)].ltok)); ;}
4624 break;
4625
4626 case 351:
69db2541 4627#line 1258 "llgrammar.y"
08cf8642 4628 { (yyval.termlist) = pushInfixOpPartNode (termNodeList_new (), (yyvsp[(1) - (2)].ltok), (yyvsp[(2) - (2)].term)); ;}
4629 break;
4630
4631 case 352:
69db2541 4632#line 1259 "llgrammar.y"
08cf8642 4633 { (yyval.termlist) = pushInfixOpPartNode ((yyvsp[(1) - (3)].termlist), (yyvsp[(2) - (3)].ltok), (yyvsp[(3) - (3)].term)); ;}
4634 break;
4635
4636 case 354:
69db2541 4637#line 1264 "llgrammar.y"
08cf8642 4638 { (yyval.term) = computePossibleSorts ((yyvsp[(1) - (1)].term)); ;}
4639 break;
4640
4641 case 355:
69db2541 4642#line 1265 "llgrammar.y"
08cf8642 4643 { (yyval.term) = updateMatchedNode ((termNode)0, (yyvsp[(1) - (2)].term), (yyvsp[(2) - (2)].term)); ;}
4644 break;
4645
4646 case 356:
69db2541 4647#line 1266 "llgrammar.y"
08cf8642 4648 { (yyval.term) = updateMatchedNode ((yyvsp[(1) - (2)].term), (yyvsp[(2) - (2)].term), (termNode)0); ;}
4649 break;
4650
4651 case 357:
69db2541 4652#line 1267 "llgrammar.y"
08cf8642 4653 { (yyval.term) = updateMatchedNode ((yyvsp[(1) - (3)].term), (yyvsp[(2) - (3)].term), (yyvsp[(3) - (3)].term)); ;}
4654 break;
4655
4656 case 358:
69db2541 4657#line 1268 "llgrammar.y"
08cf8642 4658 { (yyval.term) = computePossibleSorts ((yyvsp[(1) - (1)].term)); ;}
4659 break;
4660
4661 case 359:
69db2541 4662#line 1269 "llgrammar.y"
08cf8642 4663 { (yyval.term) = updateSqBracketedNode ((termNode)0, (yyvsp[(1) - (2)].term), (yyvsp[(2) - (2)].term)); ;}
4664 break;
4665
4666 case 360:
69db2541 4667#line 1273 "llgrammar.y"
08cf8642 4668 { (yyval.term) = (yyvsp[(1) - (3)].term); (yyval.term)->sort = sort_lookupName (ltoken_getText ((yyvsp[(3) - (3)].ltok))); ;}
4669 break;
4670
4671 case 362:
69db2541 4672#line 1279 "llgrammar.y"
08cf8642 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:
69db2541 4678#line 1282 "llgrammar.y"
08cf8642 4679 { (yyval.term) = makeSqBracketedNode ((yyvsp[(1) - (3)].ltok), (yyvsp[(2) - (3)].termlist), (yyvsp[(3) - (3)].ltok)); ;}
4680 break;
4681
4682 case 364:
69db2541 4683#line 1284 "llgrammar.y"
08cf8642 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:
69db2541 4690#line 1288 "llgrammar.y"
08cf8642 4691 { (yyval.term) = makeSqBracketedNode ((yyvsp[(1) - (2)].ltok), termNodeList_new (), (yyvsp[(2) - (2)].ltok)); ;}
4692 break;
4693
4694 case 366:
69db2541 4695#line 1292 "llgrammar.y"
08cf8642 4696 { (yyval.term) = makeMatchedNode ((yyvsp[(1) - (3)].ltok), (yyvsp[(2) - (3)].termlist), (yyvsp[(3) - (3)].ltok)); ;}
4697 break;
4698
4699 case 367:
69db2541 4700#line 1293 "llgrammar.y"
08cf8642 4701 { (yyval.term) = makeMatchedNode ((yyvsp[(1) - (2)].ltok), termNodeList_new (), (yyvsp[(2) - (2)].ltok)); ;}
4702 break;
4703
4704 case 368:
69db2541 4705#line 1297 "llgrammar.y"
08cf8642 4706 { (yyval.termlist) = termNodeList_push (termNodeList_new (), (yyvsp[(1) - (1)].term)); ;}
4707 break;
4708
4709 case 369:
69db2541 4710#line 1298 "llgrammar.y"
08cf8642 4711 { (yyval.termlist) = termNodeList_push ((yyvsp[(1) - (3)].termlist), (yyvsp[(3) - (3)].term)); ;}
4712 break;
4713
4714 case 370:
69db2541 4715#line 1303 "llgrammar.y"
08cf8642 4716 { (yyval.term) = (yyvsp[(2) - (3)].term); (yyval.term)->wrapped = (yyval.term)->wrapped + 1; ;}
4717 break;
4718
4719 case 371:
69db2541 4720#line 1305 "llgrammar.y"
08cf8642 4721 { (yyval.term) = makeSimpleTermNode ((yyvsp[(1) - (1)].ltok)); ;}
4722 break;
4723
4724 case 372:
69db2541 4725#line 1307 "llgrammar.y"
08cf8642 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:
69db2541 4730#line 1310 "llgrammar.y"
08cf8642 4731 { (yyval.term) = makePostfixTermNode2 ((yyvsp[(1) - (2)].term), (yyvsp[(2) - (2)].ltok)); ;}
4732 break;
4733
4734 case 375:
69db2541 4735#line 1312 "llgrammar.y"
08cf8642 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:
69db2541 4740#line 1314 "llgrammar.y"
08cf8642 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:
69db2541 4745#line 1316 "llgrammar.y"
08cf8642 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:
69db2541 4751#line 1319 "llgrammar.y"
08cf8642 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:
69db2541 4756#line 1321 "llgrammar.y"
08cf8642 4757 { (yyval.term) = (yyvsp[(1) - (3)].term); (yyval.term)->given = sort_lookupName (ltoken_getText ((yyvsp[(3) - (3)].ltok))); ;}
4758 break;
4759
4760 case 380:
69db2541 4761#line 1325 "llgrammar.y"
08cf8642 4762 { (yyval.termlist) = termNodeList_push (termNodeList_new (), (yyvsp[(1) - (1)].term)); ;}
4763 break;
4764
4765 case 381:
69db2541 4766#line 1326 "llgrammar.y"
08cf8642 4767 { (yyval.termlist) = termNodeList_push ((yyvsp[(1) - (3)].termlist), (yyvsp[(3) - (3)].term)); ;}
4768 break;
4769
4770 case 387:
69db2541 4771#line 1338 "llgrammar.y"
08cf8642 4772 { (yyval.term) = makeSimpleTermNode ((yyvsp[(1) - (1)].ltok)); ;}
4773 break;
4774
4775 case 388:
69db2541 4776#line 1339 "llgrammar.y"
08cf8642 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:
69db2541 4781#line 1340 "llgrammar.y"
08cf8642 4782 { (yyval.term) = makeUnchangedTermNode1 ((yyvsp[(1) - (4)].ltok), (yyvsp[(3) - (4)].ltok)); ;}
4783 break;
4784
4785 case 390:
69db2541 4786#line 1341 "llgrammar.y"
08cf8642 4787 { (yyval.term) = makeUnchangedTermNode2 ((yyvsp[(1) - (4)].ltok), (yyvsp[(3) - (4)].storereflist)); ;}
4788 break;
4789
4790 case 391:
69db2541 4791#line 1343 "llgrammar.y"
08cf8642 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:
69db2541 4799#line 1348 "llgrammar.y"
08cf8642 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:
69db2541 4808#line 1353 "llgrammar.y"
08cf8642 4809 { (yyval.term) = makeSizeofTermNode ((yyvsp[(1) - (4)].ltok), (yyvsp[(3) - (4)].lcltypespec)); ;}
4810 break;
4811
4812 case 394:
69db2541 4813#line 1364 "llgrammar.y"
08cf8642 4814 { (yyval.term) = makeLiteralTermNode ((yyvsp[(1) - (1)].ltok), g_sortInt); ;}
4815 break;
4816
4817 case 395:
69db2541 4818#line 1365 "llgrammar.y"
08cf8642 4819 { (yyval.term) = makeLiteralTermNode ((yyvsp[(1) - (1)].ltok), g_sortCstring); ;}
4820 break;
4821
4822 case 396:
69db2541 4823#line 1366 "llgrammar.y"
08cf8642 4824 { (yyval.term) = makeLiteralTermNode ((yyvsp[(1) - (1)].ltok), g_sortChar); ;}
4825 break;
4826
4827 case 397:
69db2541 4828#line 1367 "llgrammar.y"
08cf8642 4829 { (yyval.term) = makeLiteralTermNode ((yyvsp[(1) - (1)].ltok), g_sortDouble); ;}
4830 break;
4831
4832 case 398:
69db2541 4833#line 1372 "llgrammar.y"
08cf8642 4834 { (yyval.quantifiers) = quantifierNodeList_add (quantifierNodeList_new (), (yyvsp[(1) - (1)].quantifier)); ;}
4835 break;
4836
4837 case 399:
69db2541 4838#line 1374 "llgrammar.y"
08cf8642 4839 { (yyval.quantifiers) = quantifierNodeList_add ((yyvsp[(1) - (2)].quantifiers), (yyvsp[(2) - (2)].quantifier)); ;}
4840 break;
4841
4842 case 400:
69db2541 4843#line 1378 "llgrammar.y"
08cf8642 4844 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
885824d3 4845 si->kind = SPE_QUANT;
08cf8642 4846 symtable_enterScope (g_symtab, si); ;}
4847 break;
8f58355a 4848
08cf8642 4849 case 401:
69db2541 4850#line 1382 "llgrammar.y"
08cf8642 4851 { (yyval.quantifier) = makeQuantifierNode ((yyvsp[(3) - (3)].vars), (yyvsp[(1) - (3)].ltok)); ;}
4852 break;
885824d3 4853
08cf8642 4854 case 402:
69db2541 4855#line 1386 "llgrammar.y"
08cf8642 4856 { (yyval.vars) = varNodeList_add (varNodeList_new (), (yyvsp[(1) - (1)].var)); ;}
4857 break;
4858
4859 case 403:
69db2541 4860#line 1387 "llgrammar.y"
08cf8642 4861 { (yyval.vars) = varNodeList_add ((yyvsp[(1) - (3)].vars), (yyvsp[(3) - (3)].var)); ;}
4862 break;
4863
4864 case 404:
69db2541 4865#line 1391 "llgrammar.y"
08cf8642 4866 { (yyval.var) = makeVarNode ((yyvsp[(1) - (3)].ltok), FALSE, (yyvsp[(3) - (3)].lcltypespec)); ;}
4867 break;
4868
4869 case 405:
69db2541 4870#line 1392 "llgrammar.y"
08cf8642 4871 { (yyval.var) = makeVarNode ((yyvsp[(1) - (4)].ltok), TRUE, (yyvsp[(4) - (4)].lcltypespec)); ;}
4872 break;
4873
4874
4875/* Line 1267 of yacc.c. */
69db2541 4876#line 4819 "llgrammar.tab.c"
08cf8642 4877 default: break;
368f75ae 4878 }
08cf8642 4879 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
4880
4881 YYPOPSTACK (yylen);
4882 yylen = 0;
4883 YY_STACK_PRINT (yyss, yyssp);
885824d3 4884
4885 *++yyvsp = yyval;
08cf8642 4886
885824d3 4887
e5081f8c 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. */
885824d3 4891
4892 yyn = yyr1[yyn];
4893
08cf8642 4894 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
4895 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
885824d3 4896 yystate = yytable[yystate];
4897 else
08cf8642 4898 yystate = yydefgoto[yyn - YYNTOKENS];
885824d3 4899
4900 goto yynewstate;
4901
885824d3 4902
e5081f8c 4903/*------------------------------------.
4904| yyerrlab -- here on detecting error |
4905`------------------------------------*/
4906yyerrlab:
4907 /* If not already recovering from an error, report this error. */
4908 if (!yyerrstatus)
885824d3 4909 {
4910 ++yynerrs;
08cf8642 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)
e5081f8c 4922 YYSTACK_FREE (yymsg);
08cf8642 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
885824d3 4946 }
d0b80d80 4947
e5081f8c 4948
08cf8642 4949
885824d3 4950 if (yyerrstatus == 3)
4951 {
08cf8642 4952 /* If just tried and failed to reuse look-ahead token after an
e5081f8c 4953 error, discard it. */
885824d3 4954
08cf8642 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 }
885824d3 4967 }
4968
08cf8642 4969 /* Else will try to reuse look-ahead token after shifting the error
e5081f8c 4970 token. */
08cf8642 4971 goto yyerrlab1;
885824d3 4972
368f75ae 4973
08cf8642 4974/*---------------------------------------------------.
4975| yyerrorlab -- error raised explicitly by YYERROR. |
4976`---------------------------------------------------*/
4977yyerrorlab:
368f75ae 4978
08cf8642 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;
368f75ae 4984
08cf8642 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;
885824d3 4992
885824d3 4993
08cf8642 4994/*-------------------------------------------------------------.
4995| yyerrlab1 -- common code for both syntax error and YYERROR. |
4996`-------------------------------------------------------------*/
4997yyerrlab1:
4998 yyerrstatus = 3; /* Each real token shifted decrements this. */
368f75ae 4999
08cf8642 5000 for (;;)
885824d3 5001 {
08cf8642 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 }
885824d3 5013
08cf8642 5014 /* Pop the current state because it cannot handle the error token. */
5015 if (yyssp == yyss)
5016 YYABORT;
885824d3 5017
885824d3 5018
08cf8642 5019 yydestruct ("Error: popping",
5020 yystos[yystate], yyvsp);
5021 YYPOPSTACK (1);
5022 yystate = *yyssp;
5023 YY_STACK_PRINT (yyss, yyssp);
885824d3 5024 }
885824d3 5025
5026 if (yyn == YYFINAL)
5027 YYACCEPT;
5028
885824d3 5029 *++yyvsp = yylval;
08cf8642 5030
5031
5032 /* Shift the error token. */
5033 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
885824d3 5034
5035 yystate = yyn;
5036 goto yynewstate;
c05aefaa 5037
c05aefaa 5038
e5081f8c 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
08cf8642 5053#ifndef yyoverflow
5054/*-------------------------------------------------.
5055| yyexhaustedlab -- memory exhaustion comes here. |
5056`-------------------------------------------------*/
5057yyexhaustedlab:
5058 yyerror (YY_("memory exhausted"));
e5081f8c 5059 yyresult = 2;
5060 /* Fall through. */
08cf8642 5061#endif
e5081f8c 5062
5063yyreturn:
08cf8642 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 }
e5081f8c 5077#ifndef yyoverflow
5078 if (yyss != yyssa)
5079 YYSTACK_FREE (yyss);
c05aefaa 5080#endif
08cf8642 5081#if YYERROR_VERBOSE
5082 if (yymsg != yymsgbuf)
5083 YYSTACK_FREE (yymsg);
5084#endif
5085 /* Make sure YYID is used. */
5086 return YYID (yyresult);
885824d3 5087}
885824d3 5088
5089
69db2541 5090#line 1409 "llgrammar.y"
08cf8642 5091
5092
885824d3 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
08cf8642 5131
885824d3 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@*/
c05aefaa 5174/*@=declundef@*/
5175
5176
5177/*drl added 11/27/2001*/
bb7c2085 5178/*@=bounds@*/
e015e087 5179
5180/*drl added 12/11/2002*/
5181/*@=type@*/
a9ec3280 5182
5183/*@=enummemuse@*/
This page took 1.28602 seconds and 5 git commands to generate.