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