Revert tracking chare constructor definitions in the grammar
[charm.git] / src / xlat-i / xi-grammar.tab.C
1
2 /* A Bison parser, made by GNU Bison 2.4.1.  */
3
4 /* Skeleton implementation for Bison's Yacc-like parsers in C
5    
6       Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7    Free Software Foundation, Inc.
8    
9    This program is free software: you can redistribute it and/or modify
10    it under the terms of the GNU General Public License as published by
11    the Free Software Foundation, either version 3 of the License, or
12    (at your option) any later version.
13    
14    This program is distributed in the hope that it will be useful,
15    but WITHOUT ANY WARRANTY; without even the implied warranty of
16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17    GNU General Public License for more details.
18    
19    You should have received a copy of the GNU General Public License
20    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
21
22 /* As a special exception, you may create a larger work that contains
23    part or all of the Bison parser skeleton and distribute that work
24    under terms of your choice, so long as that work isn't itself a
25    parser generator using the skeleton or a modified version thereof
26    as a parser skeleton.  Alternatively, if you modify or redistribute
27    the parser skeleton itself, you may (at your option) remove this
28    special exception, which will cause the skeleton and the resulting
29    Bison output files to be licensed under the GNU General Public
30    License without this special exception.
31    
32    This special exception was added by the Free Software Foundation in
33    version 2.2 of Bison.  */
34
35 /* C LALR(1) parser skeleton written by Richard Stallman, by
36    simplifying the original so-called "semantic" parser.  */
37
38 /* All symbols defined below should begin with yy or YY, to avoid
39    infringing on user name space.  This should be done even for local
40    variables, as they might otherwise be expanded by user macros.
41    There are some unavoidable exceptions within include files to
42    define necessary library symbols; they are noted "INFRINGES ON
43    USER NAME SPACE" below.  */
44
45 /* Identify Bison output.  */
46 #define YYBISON 1
47
48 /* Bison version.  */
49 #define YYBISON_VERSION "2.4.1"
50
51 /* Skeleton name.  */
52 #define YYSKELETON_NAME "yacc.c"
53
54 /* Pure parsers.  */
55 #define YYPURE 0
56
57 /* Push parsers.  */
58 #define YYPUSH 0
59
60 /* Pull parsers.  */
61 #define YYPULL 1
62
63 /* Using locations.  */
64 #define YYLSP_NEEDED 0
65
66
67
68 /* Copy the first part of user declarations.  */
69
70 /* Line 189 of yacc.c  */
71 #line 2 "xi-grammar.y"
72
73 #include <iostream>
74 #include <string>
75 #include <string.h>
76 #include "xi-symbol.h"
77 #include "EToken.h"
78 using namespace xi;
79 extern int yylex (void) ;
80 extern unsigned char in_comment;
81 void yyerror(const char *);
82 extern unsigned int lineno;
83 extern int in_bracket,in_braces,in_int_expr;
84 extern TList<Entry *> *connectEntries;
85 ModuleList *modlist;
86 namespace xi {
87 extern int macroDefined(const char *str, int istrue);
88 extern const char *python_doc;
89 void splitScopedName(const char* name, const char** scope, const char** basename);
90 }
91
92
93 /* Line 189 of yacc.c  */
94 #line 95 "y.tab.c"
95
96 /* Enabling traces.  */
97 #ifndef YYDEBUG
98 # define YYDEBUG 0
99 #endif
100
101 /* Enabling verbose error messages.  */
102 #ifdef YYERROR_VERBOSE
103 # undef YYERROR_VERBOSE
104 # define YYERROR_VERBOSE 1
105 #else
106 # define YYERROR_VERBOSE 0
107 #endif
108
109 /* Enabling the token table.  */
110 #ifndef YYTOKEN_TABLE
111 # define YYTOKEN_TABLE 0
112 #endif
113
114
115 /* Tokens.  */
116 #ifndef YYTOKENTYPE
117 # define YYTOKENTYPE
118    /* Put the tokens into the symbol table, so that GDB and other debuggers
119       know about them.  */
120    enum yytokentype {
121      MODULE = 258,
122      MAINMODULE = 259,
123      EXTERN = 260,
124      READONLY = 261,
125      INITCALL = 262,
126      INITNODE = 263,
127      INITPROC = 264,
128      PUPABLE = 265,
129      CHARE = 266,
130      MAINCHARE = 267,
131      GROUP = 268,
132      NODEGROUP = 269,
133      ARRAY = 270,
134      MESSAGE = 271,
135      CONDITIONAL = 272,
136      CLASS = 273,
137      INCLUDE = 274,
138      STACKSIZE = 275,
139      THREADED = 276,
140      TEMPLATE = 277,
141      SYNC = 278,
142      IGET = 279,
143      EXCLUSIVE = 280,
144      IMMEDIATE = 281,
145      SKIPSCHED = 282,
146      INLINE = 283,
147      VIRTUAL = 284,
148      MIGRATABLE = 285,
149      CREATEHERE = 286,
150      CREATEHOME = 287,
151      NOKEEP = 288,
152      NOTRACE = 289,
153      VOID = 290,
154      CONST = 291,
155      PACKED = 292,
156      VARSIZE = 293,
157      ENTRY = 294,
158      FOR = 295,
159      FORALL = 296,
160      WHILE = 297,
161      WHEN = 298,
162      OVERLAP = 299,
163      ATOMIC = 300,
164      FORWARD = 301,
165      IF = 302,
166      ELSE = 303,
167      CONNECT = 304,
168      PUBLISHES = 305,
169      PYTHON = 306,
170      LOCAL = 307,
171      NAMESPACE = 308,
172      USING = 309,
173      IDENT = 310,
174      NUMBER = 311,
175      LITERAL = 312,
176      CPROGRAM = 313,
177      HASHIF = 314,
178      HASHIFDEF = 315,
179      INT = 316,
180      LONG = 317,
181      SHORT = 318,
182      CHAR = 319,
183      FLOAT = 320,
184      DOUBLE = 321,
185      UNSIGNED = 322,
186      ACCEL = 323,
187      READWRITE = 324,
188      WRITEONLY = 325,
189      ACCELBLOCK = 326,
190      MEMCRITICAL = 327,
191      REDUCTIONTARGET = 328
192    };
193 #endif
194 /* Tokens.  */
195 #define MODULE 258
196 #define MAINMODULE 259
197 #define EXTERN 260
198 #define READONLY 261
199 #define INITCALL 262
200 #define INITNODE 263
201 #define INITPROC 264
202 #define PUPABLE 265
203 #define CHARE 266
204 #define MAINCHARE 267
205 #define GROUP 268
206 #define NODEGROUP 269
207 #define ARRAY 270
208 #define MESSAGE 271
209 #define CONDITIONAL 272
210 #define CLASS 273
211 #define INCLUDE 274
212 #define STACKSIZE 275
213 #define THREADED 276
214 #define TEMPLATE 277
215 #define SYNC 278
216 #define IGET 279
217 #define EXCLUSIVE 280
218 #define IMMEDIATE 281
219 #define SKIPSCHED 282
220 #define INLINE 283
221 #define VIRTUAL 284
222 #define MIGRATABLE 285
223 #define CREATEHERE 286
224 #define CREATEHOME 287
225 #define NOKEEP 288
226 #define NOTRACE 289
227 #define VOID 290
228 #define CONST 291
229 #define PACKED 292
230 #define VARSIZE 293
231 #define ENTRY 294
232 #define FOR 295
233 #define FORALL 296
234 #define WHILE 297
235 #define WHEN 298
236 #define OVERLAP 299
237 #define ATOMIC 300
238 #define FORWARD 301
239 #define IF 302
240 #define ELSE 303
241 #define CONNECT 304
242 #define PUBLISHES 305
243 #define PYTHON 306
244 #define LOCAL 307
245 #define NAMESPACE 308
246 #define USING 309
247 #define IDENT 310
248 #define NUMBER 311
249 #define LITERAL 312
250 #define CPROGRAM 313
251 #define HASHIF 314
252 #define HASHIFDEF 315
253 #define INT 316
254 #define LONG 317
255 #define SHORT 318
256 #define CHAR 319
257 #define FLOAT 320
258 #define DOUBLE 321
259 #define UNSIGNED 322
260 #define ACCEL 323
261 #define READWRITE 324
262 #define WRITEONLY 325
263 #define ACCELBLOCK 326
264 #define MEMCRITICAL 327
265 #define REDUCTIONTARGET 328
266
267
268
269
270 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
271 typedef union YYSTYPE
272 {
273
274 /* Line 214 of yacc.c  */
275 #line 23 "xi-grammar.y"
276
277   ModuleList *modlist;
278   Module *module;
279   ConstructList *conslist;
280   Construct *construct;
281   TParam *tparam;
282   TParamList *tparlist;
283   Type *type;
284   PtrType *ptype;
285   NamedType *ntype;
286   FuncType *ftype;
287   Readonly *readonly;
288   Message *message;
289   Chare *chare;
290   Entry *entry;
291   EntryList *entrylist;
292   Parameter *pname;
293   ParamList *plist;
294   Template *templat;
295   TypeList *typelist;
296   MemberList *mbrlist;
297   Member *member;
298   TVar *tvar;
299   TVarList *tvarlist;
300   Value *val;
301   ValueList *vallist;
302   MsgVar *mv;
303   MsgVarList *mvlist;
304   PUPableClass *pupable;
305   IncludeFile *includeFile;
306   const char *strval;
307   int intval;
308   Chare::attrib_t cattr;
309   SdagConstruct *sc;
310   XStr* xstrptr;
311   AccelBlock* accelBlock;
312
313
314
315 /* Line 214 of yacc.c  */
316 #line 317 "y.tab.c"
317 } YYSTYPE;
318 # define YYSTYPE_IS_TRIVIAL 1
319 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
320 # define YYSTYPE_IS_DECLARED 1
321 #endif
322
323
324 /* Copy the second part of user declarations.  */
325
326
327 /* Line 264 of yacc.c  */
328 #line 329 "y.tab.c"
329
330 #ifdef short
331 # undef short
332 #endif
333
334 #ifdef YYTYPE_UINT8
335 typedef YYTYPE_UINT8 yytype_uint8;
336 #else
337 typedef unsigned char yytype_uint8;
338 #endif
339
340 #ifdef YYTYPE_INT8
341 typedef YYTYPE_INT8 yytype_int8;
342 #elif (defined __STDC__ || defined __C99__FUNC__ \
343      || defined __cplusplus || defined _MSC_VER)
344 typedef signed char yytype_int8;
345 #else
346 typedef short int yytype_int8;
347 #endif
348
349 #ifdef YYTYPE_UINT16
350 typedef YYTYPE_UINT16 yytype_uint16;
351 #else
352 typedef unsigned short int yytype_uint16;
353 #endif
354
355 #ifdef YYTYPE_INT16
356 typedef YYTYPE_INT16 yytype_int16;
357 #else
358 typedef short int yytype_int16;
359 #endif
360
361 #ifndef YYSIZE_T
362 # ifdef __SIZE_TYPE__
363 #  define YYSIZE_T __SIZE_TYPE__
364 # elif defined size_t
365 #  define YYSIZE_T size_t
366 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
367      || defined __cplusplus || defined _MSC_VER)
368 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
369 #  define YYSIZE_T size_t
370 # else
371 #  define YYSIZE_T unsigned int
372 # endif
373 #endif
374
375 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
376
377 #ifndef YY_
378 # if YYENABLE_NLS
379 #  if ENABLE_NLS
380 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
381 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
382 #  endif
383 # endif
384 # ifndef YY_
385 #  define YY_(msgid) msgid
386 # endif
387 #endif
388
389 /* Suppress unused-variable warnings by "using" E.  */
390 #if ! defined lint || defined __GNUC__
391 # define YYUSE(e) ((void) (e))
392 #else
393 # define YYUSE(e) /* empty */
394 #endif
395
396 /* Identity function, used to suppress warnings about constant conditions.  */
397 #ifndef lint
398 # define YYID(n) (n)
399 #else
400 #if (defined __STDC__ || defined __C99__FUNC__ \
401      || defined __cplusplus || defined _MSC_VER)
402 static int
403 YYID (int yyi)
404 #else
405 static int
406 YYID (yyi)
407     int yyi;
408 #endif
409 {
410   return yyi;
411 }
412 #endif
413
414 #if ! defined yyoverflow || YYERROR_VERBOSE
415
416 /* The parser invokes alloca or malloc; define the necessary symbols.  */
417
418 # ifdef YYSTACK_USE_ALLOCA
419 #  if YYSTACK_USE_ALLOCA
420 #   ifdef __GNUC__
421 #    define YYSTACK_ALLOC __builtin_alloca
422 #   elif defined __BUILTIN_VA_ARG_INCR
423 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
424 #   elif defined _AIX
425 #    define YYSTACK_ALLOC __alloca
426 #   elif defined _MSC_VER
427 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
428 #    define alloca _alloca
429 #   else
430 #    define YYSTACK_ALLOC alloca
431 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
432      || defined __cplusplus || defined _MSC_VER)
433 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
434 #     ifndef _STDLIB_H
435 #      define _STDLIB_H 1
436 #     endif
437 #    endif
438 #   endif
439 #  endif
440 # endif
441
442 # ifdef YYSTACK_ALLOC
443    /* Pacify GCC's `empty if-body' warning.  */
444 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
445 #  ifndef YYSTACK_ALLOC_MAXIMUM
446     /* The OS might guarantee only one guard page at the bottom of the stack,
447        and a page size can be as small as 4096 bytes.  So we cannot safely
448        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
449        to allow for a few compiler-allocated temporary stack slots.  */
450 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
451 #  endif
452 # else
453 #  define YYSTACK_ALLOC YYMALLOC
454 #  define YYSTACK_FREE YYFREE
455 #  ifndef YYSTACK_ALLOC_MAXIMUM
456 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
457 #  endif
458 #  if (defined __cplusplus && ! defined _STDLIB_H \
459        && ! ((defined YYMALLOC || defined malloc) \
460              && (defined YYFREE || defined free)))
461 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
462 #   ifndef _STDLIB_H
463 #    define _STDLIB_H 1
464 #   endif
465 #  endif
466 #  ifndef YYMALLOC
467 #   define YYMALLOC malloc
468 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
469      || defined __cplusplus || defined _MSC_VER)
470 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
471 #   endif
472 #  endif
473 #  ifndef YYFREE
474 #   define YYFREE free
475 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
476      || defined __cplusplus || defined _MSC_VER)
477 void free (void *); /* INFRINGES ON USER NAME SPACE */
478 #   endif
479 #  endif
480 # endif
481 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
482
483
484 #if (! defined yyoverflow \
485      && (! defined __cplusplus \
486          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
487
488 /* A type that is properly aligned for any stack member.  */
489 union yyalloc
490 {
491   yytype_int16 yyss_alloc;
492   YYSTYPE yyvs_alloc;
493 };
494
495 /* The size of the maximum gap between one aligned stack and the next.  */
496 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
497
498 /* The size of an array large to enough to hold all stacks, each with
499    N elements.  */
500 # define YYSTACK_BYTES(N) \
501      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
502       + YYSTACK_GAP_MAXIMUM)
503
504 /* Copy COUNT objects from FROM to TO.  The source and destination do
505    not overlap.  */
506 # ifndef YYCOPY
507 #  if defined __GNUC__ && 1 < __GNUC__
508 #   define YYCOPY(To, From, Count) \
509       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
510 #  else
511 #   define YYCOPY(To, From, Count)              \
512       do                                        \
513         {                                       \
514           YYSIZE_T yyi;                         \
515           for (yyi = 0; yyi < (Count); yyi++)   \
516             (To)[yyi] = (From)[yyi];            \
517         }                                       \
518       while (YYID (0))
519 #  endif
520 # endif
521
522 /* Relocate STACK from its old location to the new one.  The
523    local variables YYSIZE and YYSTACKSIZE give the old and new number of
524    elements in the stack, and YYPTR gives the new location of the
525    stack.  Advance YYPTR to a properly aligned location for the next
526    stack.  */
527 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
528     do                                                                  \
529       {                                                                 \
530         YYSIZE_T yynewbytes;                                            \
531         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
532         Stack = &yyptr->Stack_alloc;                                    \
533         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
534         yyptr += yynewbytes / sizeof (*yyptr);                          \
535       }                                                                 \
536     while (YYID (0))
537
538 #endif
539
540 /* YYFINAL -- State number of the termination state.  */
541 #define YYFINAL  9
542 /* YYLAST -- Last index in YYTABLE.  */
543 #define YYLAST   916
544
545 /* YYNTOKENS -- Number of terminals.  */
546 #define YYNTOKENS  90
547 /* YYNNTS -- Number of nonterminals.  */
548 #define YYNNTS  113
549 /* YYNRULES -- Number of rules.  */
550 #define YYNRULES  302
551 /* YYNRULES -- Number of states.  */
552 #define YYNSTATES  606
553
554 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
555 #define YYUNDEFTOK  2
556 #define YYMAXUTOK   328
557
558 #define YYTRANSLATE(YYX)                                                \
559   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
560
561 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
562 static const yytype_uint8 yytranslate[] =
563 {
564        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
565        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
566        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
567        2,     2,     2,     2,     2,     2,     2,     2,    84,     2,
568       82,    83,    81,     2,    78,    88,    89,     2,     2,     2,
569        2,     2,     2,     2,     2,     2,     2,     2,    75,    74,
570       79,    87,    80,     2,     2,     2,     2,     2,     2,     2,
571        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
572        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
573        2,    85,     2,    86,     2,     2,     2,     2,     2,     2,
574        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
575        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
576        2,     2,     2,    76,     2,    77,     2,     2,     2,     2,
577        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
578        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
579        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
580        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
581        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
582        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
583        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
584        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
585        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
586        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
587        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
588        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
589        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
590        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
591       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
592       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
593       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
594       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
595       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
596       65,    66,    67,    68,    69,    70,    71,    72,    73
597 };
598
599 #if YYDEBUG
600 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
601    YYRHS.  */
602 static const yytype_uint16 yyprhs[] =
603 {
604        0,     0,     3,     5,     6,     9,    10,    12,    13,    15,
605       17,    19,    24,    28,    32,    34,    39,    40,    43,    47,
606       50,    53,    56,    64,    70,    76,    79,    82,    85,    88,
607       91,    94,    97,   100,   102,   104,   106,   108,   110,   112,
608      114,   116,   120,   121,   123,   124,   128,   130,   132,   134,
609      136,   139,   142,   146,   150,   153,   156,   159,   161,   163,
610      166,   168,   171,   174,   176,   178,   181,   184,   187,   196,
611      198,   200,   202,   204,   207,   210,   213,   215,   217,   219,
612      223,   224,   227,   232,   238,   239,   241,   242,   246,   248,
613      252,   254,   256,   257,   261,   263,   267,   268,   270,   272,
614      273,   277,   279,   283,   285,   287,   288,   290,   291,   294,
615      300,   302,   305,   309,   316,   317,   320,   322,   326,   332,
616      338,   344,   350,   355,   359,   366,   373,   379,   385,   391,
617      397,   403,   408,   416,   417,   420,   421,   424,   427,   431,
618      434,   438,   440,   444,   449,   452,   455,   458,   461,   464,
619      466,   471,   472,   475,   477,   479,   481,   483,   486,   489,
620      492,   496,   503,   513,   517,   524,   528,   535,   545,   555,
621      557,   561,   563,   566,   569,   571,   574,   576,   578,   580,
622      582,   584,   586,   588,   590,   592,   594,   596,   598,   606,
623      612,   625,   631,   634,   636,   638,   639,   643,   645,   647,
624      651,   653,   655,   657,   659,   661,   663,   665,   667,   669,
625      671,   673,   675,   678,   680,   682,   684,   686,   688,   690,
626      691,   693,   697,   698,   700,   706,   712,   718,   723,   727,
627      729,   731,   733,   737,   742,   746,   748,   750,   752,   754,
628      759,   763,   768,   773,   778,   782,   790,   796,   803,   805,
629      809,   811,   815,   819,   822,   826,   829,   830,   834,   835,
630      837,   841,   843,   846,   848,   851,   852,   857,   859,   863,
631      865,   866,   873,   882,   887,   891,   897,   902,   914,   924,
632      937,   952,   959,   968,   974,   982,   986,   990,   992,   993,
633      996,  1001,  1003,  1007,  1009,  1011,  1014,  1020,  1022,  1026,
634     1028,  1030,  1033
635 };
636
637 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
638 static const yytype_int16 yyrhs[] =
639 {
640       91,     0,    -1,    92,    -1,    -1,    97,    92,    -1,    -1,
641        5,    -1,    -1,    74,    -1,    55,    -1,    55,    -1,    96,
642       75,    75,    55,    -1,     3,    95,    98,    -1,     4,    95,
643       98,    -1,    74,    -1,    76,    99,    77,    94,    -1,    -1,
644      101,    99,    -1,    54,    53,    96,    -1,    54,    96,    -1,
645       93,   156,    -1,    93,   135,    -1,     5,    39,   166,   108,
646       95,   105,   183,    -1,    93,    76,    99,    77,    94,    -1,
647       53,    95,    76,    99,    77,    -1,   100,    74,    -1,   100,
648      163,    -1,    93,    97,    -1,    93,   138,    -1,    93,   139,
649       -1,    93,   140,    -1,    93,   142,    -1,    93,   153,    -1,
650      201,    -1,   202,    -1,   165,    -1,     1,    -1,   114,    -1,
651       56,    -1,    57,    -1,   102,    -1,   102,    78,   103,    -1,
652       -1,   103,    -1,    -1,    79,   104,    80,    -1,    61,    -1,
653       62,    -1,    63,    -1,    64,    -1,    67,    61,    -1,    67,
654       62,    -1,    67,    62,    61,    -1,    67,    62,    62,    -1,
655       67,    63,    -1,    67,    64,    -1,    62,    62,    -1,    65,
656       -1,    66,    -1,    62,    66,    -1,    35,    -1,    95,   105,
657       -1,    96,   105,    -1,   106,    -1,   108,    -1,   109,    81,
658       -1,   110,    81,    -1,   111,    81,    -1,   113,    82,    81,
659       95,    83,    82,   181,    83,    -1,   109,    -1,   110,    -1,
660      111,    -1,   112,    -1,    36,   113,    -1,   113,    36,    -1,
661      113,    84,    -1,   113,    -1,    56,    -1,    96,    -1,    85,
662      115,    86,    -1,    -1,   116,   117,    -1,     6,   114,    96,
663      117,    -1,     6,    16,   109,    81,    95,    -1,    -1,    35,
664       -1,    -1,    85,   122,    86,    -1,   123,    -1,   123,    78,
665      122,    -1,    37,    -1,    38,    -1,    -1,    85,   125,    86,
666       -1,   130,    -1,   130,    78,   125,    -1,    -1,    57,    -1,
667       51,    -1,    -1,    85,   129,    86,    -1,   127,    -1,   127,
668       78,   129,    -1,    30,    -1,    51,    -1,    -1,    17,    -1,
669       -1,    85,    86,    -1,   131,   114,    95,   132,    74,    -1,
670      133,    -1,   133,   134,    -1,    16,   121,   107,    -1,    16,
671      121,   107,    76,   134,    77,    -1,    -1,    75,   137,    -1,
672      108,    -1,   108,    78,   137,    -1,    11,   124,   107,   136,
673      154,    -1,    12,   124,   107,   136,   154,    -1,    13,   124,
674      107,   136,   154,    -1,    14,   124,   107,   136,   154,    -1,
675       85,    56,    95,    86,    -1,    85,    95,    86,    -1,    15,
676      128,   141,   107,   136,   154,    -1,    15,   141,   128,   107,
677      136,   154,    -1,    11,   124,    95,   136,   154,    -1,    12,
678      124,    95,   136,   154,    -1,    13,   124,    95,   136,   154,
679       -1,    14,   124,    95,   136,   154,    -1,    15,   141,    95,
680      136,   154,    -1,    16,   121,    95,    74,    -1,    16,   121,
681       95,    76,   134,    77,    74,    -1,    -1,    87,   114,    -1,
682       -1,    87,    56,    -1,    87,    57,    -1,    18,    95,   148,
683       -1,   112,   149,    -1,   114,    95,   149,    -1,   150,    -1,
684      150,    78,   151,    -1,    22,    79,   151,    80,    -1,   152,
685      143,    -1,   152,   144,    -1,   152,   145,    -1,   152,   146,
686       -1,   152,   147,    -1,    74,    -1,    76,   155,    77,    94,
687       -1,    -1,   161,   155,    -1,   118,    -1,   119,    -1,   158,
688       -1,   157,    -1,    10,   159,    -1,    19,   160,    -1,    18,
689       95,    -1,     8,   120,    96,    -1,     8,   120,    96,    82,
690      120,    83,    -1,     8,   120,    96,    79,   103,    80,    82,
691      120,    83,    -1,     7,   120,    96,    -1,     7,   120,    96,
692       82,   120,    83,    -1,     9,   120,    96,    -1,     9,   120,
693       96,    82,   120,    83,    -1,     9,   120,    96,    79,   103,
694       80,    82,   120,    83,    -1,     9,    85,    68,    86,   120,
695       96,    82,   120,    83,    -1,   108,    -1,   108,    78,   159,
696       -1,    57,    -1,   162,    74,    -1,   162,   163,    -1,   164,
697       -1,   152,   164,    -1,   156,    -1,    39,    -1,    77,    -1,
698        7,    -1,     8,    -1,     9,    -1,    11,    -1,    12,    -1,
699       15,    -1,    13,    -1,    14,    -1,     6,    -1,    39,   167,
700      166,    95,   183,   185,   186,    -1,    39,   167,    95,   183,
701      186,    -1,    39,    85,    68,    86,    35,    95,   183,   184,
702      174,   172,   175,    95,    -1,    71,   174,   172,   175,    74,
703       -1,    71,    74,    -1,    35,    -1,   110,    -1,    -1,    85,
704      168,    86,    -1,     1,    -1,   169,    -1,   169,    78,   168,
705       -1,    21,    -1,    23,    -1,    24,    -1,    25,    -1,    31,
706       -1,    32,    -1,    33,    -1,    34,    -1,    26,    -1,    27,
707       -1,    28,    -1,    52,    -1,    51,   126,    -1,    72,    -1,
708       73,    -1,     1,    -1,    57,    -1,    56,    -1,    96,    -1,
709       -1,    58,    -1,    58,    78,   171,    -1,    -1,    58,    -1,
710       58,    85,   172,    86,   172,    -1,    58,    76,   172,    77,
711      172,    -1,    58,    82,   171,    83,   172,    -1,    82,   172,
712       83,   172,    -1,   114,    95,    85,    -1,    76,    -1,    77,
713       -1,   114,    -1,   114,    95,   131,    -1,   114,    95,    87,
714      170,    -1,   173,   172,    86,    -1,     6,    -1,    69,    -1,
715       70,    -1,    95,    -1,   178,    88,    80,    95,    -1,   178,
716       89,    95,    -1,   178,    85,   178,    86,    -1,   178,    85,
717       56,    86,    -1,   178,    82,   178,    83,    -1,   173,   172,
718       86,    -1,   177,    75,   114,    95,    79,   178,    80,    -1,
719      114,    95,    79,   178,    80,    -1,   177,    75,   179,    79,
720      178,    80,    -1,   176,    -1,   176,    78,   181,    -1,   180,
721       -1,   180,    78,   182,    -1,    82,   181,    83,    -1,    82,
722       83,    -1,    85,   182,    86,    -1,    85,    86,    -1,    -1,
723       20,    87,    56,    -1,    -1,   192,    -1,    76,   187,    77,
724       -1,   192,    -1,   192,   187,    -1,   192,    -1,   192,   187,
725       -1,    -1,    50,    82,   190,    83,    -1,    55,    -1,    55,
726       78,   190,    -1,    57,    -1,    -1,    45,   191,   174,   172,
727      175,   189,    -1,    49,    82,    55,   183,    83,   174,   172,
728       77,    -1,    43,   198,    76,    77,    -1,    43,   198,   192,
729       -1,    43,   198,    76,   187,    77,    -1,    44,    76,   188,
730       77,    -1,    40,   196,   172,    74,   172,    74,   172,   195,
731       76,   187,    77,    -1,    40,   196,   172,    74,   172,    74,
732      172,   195,   192,    -1,    41,    85,    55,    86,   196,   172,
733       75,   172,    78,   172,   195,   192,    -1,    41,    85,    55,
734       86,   196,   172,    75,   172,    78,   172,   195,    76,   187,
735       77,    -1,    47,   196,   172,   195,   192,   193,    -1,    47,
736      196,   172,   195,    76,   187,    77,   193,    -1,    42,   196,
737      172,   195,   192,    -1,    42,   196,   172,   195,    76,   187,
738       77,    -1,    46,   194,    74,    -1,   174,   172,   175,    -1,
739        1,    -1,    -1,    48,   192,    -1,    48,    76,   187,    77,
740       -1,    55,    -1,    55,    78,   194,    -1,    83,    -1,    82,
741       -1,    55,   183,    -1,    55,   199,   172,   200,   183,    -1,
742      197,    -1,   197,    78,   198,    -1,    85,    -1,    86,    -1,
743       59,    95,    -1,    60,    95,    -1
744 };
745
746 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
747 static const yytype_uint16 yyrline[] =
748 {
749        0,   154,   154,   159,   162,   167,   168,   173,   174,   178,
750      182,   184,   192,   196,   203,   205,   210,   211,   215,   217,
751      219,   221,   223,   235,   237,   239,   241,   243,   245,   247,
752      249,   251,   253,   255,   257,   259,   261,   265,   267,   269,
753      273,   275,   280,   281,   286,   287,   291,   293,   295,   297,
754      299,   301,   303,   305,   307,   309,   311,   313,   315,   317,
755      319,   323,   324,   331,   333,   337,   341,   343,   347,   351,
756      353,   355,   357,   360,   362,   366,   368,   372,   374,   378,
757      383,   384,   388,   392,   397,   398,   403,   404,   414,   416,
758      420,   422,   427,   428,   432,   434,   439,   440,   444,   449,
759      450,   454,   456,   460,   462,   467,   468,   472,   473,   476,
760      480,   482,   486,   488,   493,   494,   498,   500,   504,   506,
761      510,   514,   518,   524,   528,   530,   534,   536,   540,   544,
762      548,   552,   554,   559,   560,   565,   566,   568,   572,   574,
763      576,   580,   582,   586,   590,   592,   594,   596,   598,   602,
764      604,   609,   627,   631,   633,   635,   636,   638,   640,   642,
765      646,   648,   650,   656,   659,   664,   666,   668,   674,   682,
766      684,   687,   691,   694,   698,   700,   705,   709,   711,   713,
767      715,   717,   719,   721,   723,   725,   727,   729,   732,   740,
768      753,   771,   773,   777,   779,   784,   785,   787,   791,   793,
769      797,   799,   801,   803,   805,   807,   809,   811,   813,   815,
770      817,   819,   821,   823,   825,   827,   831,   833,   835,   840,
771      841,   843,   852,   853,   855,   861,   867,   873,   881,   888,
772      896,   903,   905,   907,   909,   916,   917,   918,   921,   922,
773      923,   924,   931,   937,   946,   953,   959,   965,   973,   975,
774      979,   981,   985,   987,   991,   993,   998,   999,  1004,  1005,
775     1007,  1011,  1013,  1017,  1019,  1024,  1025,  1029,  1031,  1035,
776     1038,  1041,  1045,  1059,  1061,  1063,  1065,  1067,  1070,  1073,
777     1076,  1079,  1081,  1083,  1085,  1087,  1089,  1091,  1098,  1099,
778     1101,  1104,  1106,  1110,  1114,  1118,  1120,  1124,  1126,  1130,
779     1133,  1137,  1141
780 };
781 #endif
782
783 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
784 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
785    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
786 static const char *const yytname[] =
787 {
788   "$end", "error", "$undefined", "MODULE", "MAINMODULE", "EXTERN",
789   "READONLY", "INITCALL", "INITNODE", "INITPROC", "PUPABLE", "CHARE",
790   "MAINCHARE", "GROUP", "NODEGROUP", "ARRAY", "MESSAGE", "CONDITIONAL",
791   "CLASS", "INCLUDE", "STACKSIZE", "THREADED", "TEMPLATE", "SYNC", "IGET",
792   "EXCLUSIVE", "IMMEDIATE", "SKIPSCHED", "INLINE", "VIRTUAL", "MIGRATABLE",
793   "CREATEHERE", "CREATEHOME", "NOKEEP", "NOTRACE", "VOID", "CONST",
794   "PACKED", "VARSIZE", "ENTRY", "FOR", "FORALL", "WHILE", "WHEN",
795   "OVERLAP", "ATOMIC", "FORWARD", "IF", "ELSE", "CONNECT", "PUBLISHES",
796   "PYTHON", "LOCAL", "NAMESPACE", "USING", "IDENT", "NUMBER", "LITERAL",
797   "CPROGRAM", "HASHIF", "HASHIFDEF", "INT", "LONG", "SHORT", "CHAR",
798   "FLOAT", "DOUBLE", "UNSIGNED", "ACCEL", "READWRITE", "WRITEONLY",
799   "ACCELBLOCK", "MEMCRITICAL", "REDUCTIONTARGET", "';'", "':'", "'{'",
800   "'}'", "','", "'<'", "'>'", "'*'", "'('", "')'", "'&'", "'['", "']'",
801   "'='", "'-'", "'.'", "$accept", "File", "ModuleEList", "OptExtern",
802   "OptSemiColon", "Name", "QualName", "Module", "ConstructEList",
803   "ConstructList", "ConstructSemi", "Construct", "TParam", "TParamList",
804   "TParamEList", "OptTParams", "BuiltinType", "NamedType", "QualNamedType",
805   "SimpleType", "OnePtrType", "PtrType", "FuncType", "BaseType", "Type",
806   "ArrayDim", "Dim", "DimList", "Readonly", "ReadonlyMsg", "OptVoid",
807   "MAttribs", "MAttribList", "MAttrib", "CAttribs", "CAttribList",
808   "PythonOptions", "ArrayAttrib", "ArrayAttribs", "ArrayAttribList",
809   "CAttrib", "OptConditional", "MsgArray", "Var", "VarList", "Message",
810   "OptBaseList", "BaseList", "Chare", "Group", "NodeGroup",
811   "ArrayIndexType", "Array", "TChare", "TGroup", "TNodeGroup", "TArray",
812   "TMessage", "OptTypeInit", "OptNameInit", "TVar", "TVarList",
813   "TemplateSpec", "Template", "MemberEList", "MemberList",
814   "NonEntryMember", "InitNode", "InitProc", "PUPableClass", "IncludeFile",
815   "Member", "MemberBody", "UnexpectedToken", "Entry", "AccelBlock",
816   "EReturn", "EAttribs", "EAttribList", "EAttrib", "DefaultParameter",
817   "CPROGRAM_List", "CCode", "ParamBracketStart", "ParamBraceStart",
818   "ParamBraceEnd", "Parameter", "AccelBufferType", "AccelInstName",
819   "AccelArrayParam", "AccelParameter", "ParamList", "AccelParamList",
820   "EParameters", "AccelEParameters", "OptStackSize", "OptSdagCode",
821   "Slist", "Olist", "OptPubList", "PublishesList", "OptTraceName",
822   "SingleConstruct", "HasElse", "ForwardList", "EndIntExpr",
823   "StartIntExpr", "SEntry", "SEntryList", "SParamBracketStart",
824   "SParamBracketEnd", "HashIFComment", "HashIFDefComment", 0
825 };
826 #endif
827
828 # ifdef YYPRINT
829 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
830    token YYLEX-NUM.  */
831 static const yytype_uint16 yytoknum[] =
832 {
833        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
834      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
835      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
836      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
837      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
838      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
839      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
840      325,   326,   327,   328,    59,    58,   123,   125,    44,    60,
841       62,    42,    40,    41,    38,    91,    93,    61,    45,    46
842 };
843 # endif
844
845 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
846 static const yytype_uint8 yyr1[] =
847 {
848        0,    90,    91,    92,    92,    93,    93,    94,    94,    95,
849       96,    96,    97,    97,    98,    98,    99,    99,   100,   100,
850      100,   100,   100,   101,   101,   101,   101,   101,   101,   101,
851      101,   101,   101,   101,   101,   101,   101,   102,   102,   102,
852      103,   103,   104,   104,   105,   105,   106,   106,   106,   106,
853      106,   106,   106,   106,   106,   106,   106,   106,   106,   106,
854      106,   107,   108,   109,   109,   110,   111,   111,   112,   113,
855      113,   113,   113,   113,   113,   114,   114,   115,   115,   116,
856      117,   117,   118,   119,   120,   120,   121,   121,   122,   122,
857      123,   123,   124,   124,   125,   125,   126,   126,   127,   128,
858      128,   129,   129,   130,   130,   131,   131,   132,   132,   133,
859      134,   134,   135,   135,   136,   136,   137,   137,   138,   138,
860      139,   140,   141,   141,   142,   142,   143,   143,   144,   145,
861      146,   147,   147,   148,   148,   149,   149,   149,   150,   150,
862      150,   151,   151,   152,   153,   153,   153,   153,   153,   154,
863      154,   155,   155,   156,   156,   156,   156,   156,   156,   156,
864      157,   157,   157,   157,   157,   158,   158,   158,   158,   159,
865      159,   160,   161,   161,   162,   162,   162,   163,   163,   163,
866      163,   163,   163,   163,   163,   163,   163,   163,   164,   164,
867      164,   165,   165,   166,   166,   167,   167,   167,   168,   168,
868      169,   169,   169,   169,   169,   169,   169,   169,   169,   169,
869      169,   169,   169,   169,   169,   169,   170,   170,   170,   171,
870      171,   171,   172,   172,   172,   172,   172,   172,   173,   174,
871      175,   176,   176,   176,   176,   177,   177,   177,   178,   178,
872      178,   178,   178,   178,   179,   180,   180,   180,   181,   181,
873      182,   182,   183,   183,   184,   184,   185,   185,   186,   186,
874      186,   187,   187,   188,   188,   189,   189,   190,   190,   191,
875      191,   192,   192,   192,   192,   192,   192,   192,   192,   192,
876      192,   192,   192,   192,   192,   192,   192,   192,   193,   193,
877      193,   194,   194,   195,   196,   197,   197,   198,   198,   199,
878      200,   201,   202
879 };
880
881 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
882 static const yytype_uint8 yyr2[] =
883 {
884        0,     2,     1,     0,     2,     0,     1,     0,     1,     1,
885        1,     4,     3,     3,     1,     4,     0,     2,     3,     2,
886        2,     2,     7,     5,     5,     2,     2,     2,     2,     2,
887        2,     2,     2,     1,     1,     1,     1,     1,     1,     1,
888        1,     3,     0,     1,     0,     3,     1,     1,     1,     1,
889        2,     2,     3,     3,     2,     2,     2,     1,     1,     2,
890        1,     2,     2,     1,     1,     2,     2,     2,     8,     1,
891        1,     1,     1,     2,     2,     2,     1,     1,     1,     3,
892        0,     2,     4,     5,     0,     1,     0,     3,     1,     3,
893        1,     1,     0,     3,     1,     3,     0,     1,     1,     0,
894        3,     1,     3,     1,     1,     0,     1,     0,     2,     5,
895        1,     2,     3,     6,     0,     2,     1,     3,     5,     5,
896        5,     5,     4,     3,     6,     6,     5,     5,     5,     5,
897        5,     4,     7,     0,     2,     0,     2,     2,     3,     2,
898        3,     1,     3,     4,     2,     2,     2,     2,     2,     1,
899        4,     0,     2,     1,     1,     1,     1,     2,     2,     2,
900        3,     6,     9,     3,     6,     3,     6,     9,     9,     1,
901        3,     1,     2,     2,     1,     2,     1,     1,     1,     1,
902        1,     1,     1,     1,     1,     1,     1,     1,     7,     5,
903       12,     5,     2,     1,     1,     0,     3,     1,     1,     3,
904        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
905        1,     1,     2,     1,     1,     1,     1,     1,     1,     0,
906        1,     3,     0,     1,     5,     5,     5,     4,     3,     1,
907        1,     1,     3,     4,     3,     1,     1,     1,     1,     4,
908        3,     4,     4,     4,     3,     7,     5,     6,     1,     3,
909        1,     3,     3,     2,     3,     2,     0,     3,     0,     1,
910        3,     1,     2,     1,     2,     0,     4,     1,     3,     1,
911        0,     6,     8,     4,     3,     5,     4,    11,     9,    12,
912       14,     6,     8,     5,     7,     3,     3,     1,     0,     2,
913        4,     1,     3,     1,     1,     2,     5,     1,     3,     1,
914        1,     2,     2
915 };
916
917 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
918    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
919    means the default is an error.  */
920 static const yytype_uint16 yydefact[] =
921 {
922        3,     0,     0,     0,     2,     3,     9,     0,     0,     1,
923        4,    14,     0,    12,    13,    36,     6,     0,     0,     0,
924        0,     0,     0,     0,     0,     0,    35,    33,    34,     0,
925        0,     0,    10,    19,   301,   302,   192,   229,   222,     0,
926       84,    84,    84,     0,    92,    92,    92,    92,     0,    86,
927        0,     0,     0,     0,    27,   153,   154,    21,    28,    29,
928       30,    31,     0,    32,    20,   156,   155,     7,   187,   179,
929      180,   181,   182,   183,   185,   186,   184,   177,    25,   178,
930       26,    17,    60,    46,    47,    48,    49,    57,    58,     0,
931       44,    63,    64,     0,   194,     0,     0,    18,     0,   223,
932      222,     0,     0,    60,     0,    69,    70,    71,    72,    76,
933        0,    85,     0,     0,     0,     0,   169,   157,     0,     0,
934        0,     0,     0,     0,     0,    99,     0,     0,   159,   171,
935      158,     0,     0,    92,    92,    92,    92,     0,    86,   144,
936      145,   146,   147,   148,     8,    15,    56,    59,    50,    51,
937       54,    55,    42,    62,    65,     0,     0,     0,   222,   219,
938      222,     0,   230,     0,     0,    73,    66,    67,    74,     0,
939       75,    80,   163,   160,     0,   165,     0,   103,   104,     0,
940       94,    44,   114,   114,   114,   114,    98,     0,     0,   101,
941        0,     0,     0,     0,     0,    90,    91,     0,    88,   112,
942        0,    72,     0,   141,     0,     7,     0,     0,     0,     0,
943        0,     0,    52,    53,    38,    39,    40,    43,     0,    37,
944       44,    24,    11,     0,   220,     0,     0,   222,   191,     0,
945        0,     0,    80,    82,    84,     0,    84,    84,     0,    84,
946      170,    93,     0,    61,     0,     0,     0,     0,     0,     0,
947      123,     0,   100,   114,   114,    87,     0,   105,   133,     0,
948      139,   135,     0,   143,    23,   114,   114,   114,   114,   114,
949        0,     0,    45,     0,   222,   219,   222,   222,   227,    83,
950        0,    77,    78,     0,    81,     0,     0,     0,     0,     0,
951        0,    95,   116,   115,   149,   151,   118,   119,   120,   121,
952      122,   102,     0,     0,    89,   106,     0,   105,     0,     0,
953      138,   136,   137,   140,   142,     0,     0,     0,     0,     0,
954      131,   105,    41,     0,    22,   225,   221,   226,   224,     0,
955       79,   164,     0,   161,     0,     0,   166,     0,     0,     0,
956        0,   176,   151,     0,   174,   124,   125,     0,   111,   113,
957      134,   126,   127,   128,   129,   130,     0,   253,   231,   222,
958      248,     0,     0,    84,    84,    84,   117,   197,     0,     0,
959      175,     7,   152,   172,   173,   107,     0,   105,     0,     0,
960      252,     0,     0,     0,     0,   215,   200,   201,   202,   203,
961      208,   209,   210,   204,   205,   206,   207,    96,   211,     0,
962      213,   214,     0,   198,    10,     0,     0,   150,     0,     0,
963      132,   228,     0,   232,   234,   249,    68,   162,   168,   167,
964       97,   212,     0,   196,     0,     0,     0,   108,   109,   217,
965      216,   218,   233,     0,   199,   287,     0,     0,     0,     0,
966        0,   270,     0,     0,     0,     0,   222,   189,   259,   256,
967        0,   294,   222,     0,   222,     0,   297,     0,     0,   269,
968        0,   291,     0,   222,     0,     0,     0,     0,     0,     0,
969        0,     0,     0,     0,   299,   295,   222,     0,     0,   274,
970        0,     0,   222,     0,   285,     0,     0,   260,   262,   286,
971        0,   188,     0,     0,   222,     0,   293,     0,     0,   298,
972      273,     0,   276,   264,     0,   292,     0,     0,   257,   235,
973      236,   237,   255,     0,     0,   250,     0,   222,     0,   222,
974        0,   283,   300,     0,   275,   265,     0,   288,     0,     0,
975        0,     0,   254,     0,   222,     0,     0,   296,     0,   271,
976        0,     0,   281,   222,     0,     0,   222,     0,   251,     0,
977        0,   222,   284,     0,   288,     0,   289,     0,   238,     0,
978        0,     0,     0,   190,     0,     0,   267,     0,   282,     0,
979      272,   246,     0,     0,     0,     0,     0,   244,     0,     0,
980      278,   222,     0,   266,   290,     0,     0,     0,     0,   240,
981        0,   247,     0,     0,   268,   243,   242,   241,   239,   245,
982      277,     0,     0,   279,     0,   280
983 };
984
985 /* YYDEFGOTO[NTERM-NUM].  */
986 static const yytype_int16 yydefgoto[] =
987 {
988       -1,     3,     4,    22,   145,   181,    90,     5,    13,    23,
989       24,    25,   216,   217,   218,   153,    91,   182,    92,   105,
990      106,   107,   108,   109,   219,   283,   232,   233,    55,    56,
991      112,   127,   197,   198,   119,   179,   421,   189,   124,   190,
992      180,   306,   409,   307,   308,    57,   245,   293,    58,    59,
993       60,   125,    61,   139,   140,   141,   142,   143,   310,   260,
994      203,   204,   339,    63,   296,   340,   341,    65,    66,   117,
995      130,   342,   343,    80,   344,    26,    95,   369,   402,   403,
996      432,   225,   101,   359,   446,   163,   360,   514,   559,   547,
997      515,   361,   516,   324,   493,   469,   447,   465,   480,   539,
998      567,   460,   466,   542,   462,   497,   452,   456,   457,   476,
999      523,    27,    28
1000 };
1001
1002 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1003    STATE-NUM.  */
1004 #define YYPACT_NINF -474
1005 static const yytype_int16 yypact[] =
1006 {
1007      114,   -31,   -31,    66,  -474,   114,  -474,    71,    71,  -474,
1008     -474,  -474,   457,  -474,  -474,  -474,    69,   -31,    31,   -31,
1009      -31,   120,   657,    49,   681,   457,  -474,  -474,  -474,   816,
1010       80,   129,  -474,   100,  -474,  -474,  -474,  -474,   -30,   568,
1011      152,   152,   -14,   129,   108,   108,   108,   108,   117,   131,
1012      -31,   166,   161,   457,  -474,  -474,  -474,  -474,  -474,  -474,
1013     -474,  -474,   349,  -474,  -474,  -474,  -474,   169,  -474,  -474,
1014     -474,  -474,  -474,  -474,  -474,  -474,  -474,  -474,  -474,  -474,
1015     -474,  -474,   191,  -474,   111,  -474,  -474,  -474,  -474,   235,
1016      138,  -474,  -474,   171,  -474,   129,   457,   100,   175,    21,
1017      -30,   184,   834,  -474,   801,   171,   195,   205,  -474,    25,
1018      129,  -474,   129,   129,   220,   129,   215,  -474,     3,   -31,
1019      -31,   -31,   -31,   227,   216,   217,   124,   -31,  -474,  -474,
1020     -474,   760,   226,   108,   108,   108,   108,   216,   131,  -474,
1021     -474,  -474,  -474,  -474,  -474,  -474,  -474,  -474,  -474,   203,
1022     -474,  -474,   783,  -474,  -474,   -31,   239,   249,   -30,   255,
1023      -30,   234,  -474,   254,   248,    10,  -474,  -474,  -474,   251,
1024     -474,     8,    48,   113,   244,   136,   129,  -474,  -474,   258,
1025      263,   268,   284,   284,   284,   284,  -474,   -31,   280,   294,
1026      287,   219,   -31,   323,   -31,  -474,  -474,   289,   298,   301,
1027      -31,    11,   -31,   300,   302,   169,   -31,   -31,   -31,   -31,
1028      -31,   -31,  -474,  -474,  -474,  -474,   303,  -474,   304,  -474,
1029      268,  -474,  -474,   306,   307,   296,   310,   -30,  -474,   -31,
1030      -31,   229,   314,  -474,   152,   783,   152,   152,   783,   152,
1031     -474,  -474,     3,  -474,   129,   145,   145,   145,   145,   316,
1032     -474,   323,  -474,   284,   284,  -474,   124,   383,   317,   212,
1033     -474,   319,   760,  -474,  -474,   284,   284,   284,   284,   284,
1034      173,   783,  -474,   305,   -30,   255,   -30,   -30,  -474,  -474,
1035      320,  -474,   100,   321,  -474,   325,   329,   335,   129,   340,
1036      339,  -474,   347,  -474,  -474,   795,  -474,  -474,  -474,  -474,
1037     -474,  -474,   145,   145,  -474,  -474,   801,    -3,   350,   801,
1038     -474,  -474,  -474,  -474,  -474,   145,   145,   145,   145,   145,
1039     -474,   383,  -474,   745,  -474,  -474,  -474,  -474,  -474,   344,
1040     -474,  -474,   346,  -474,    54,   351,  -474,   129,   104,   390,
1041      353,  -474,   795,   758,  -474,  -474,  -474,   -31,  -474,  -474,
1042     -474,  -474,  -474,  -474,  -474,  -474,   354,  -474,   -31,   -30,
1043      356,   352,   801,   152,   152,   152,  -474,  -474,   676,   849,
1044     -474,   169,  -474,  -474,  -474,   355,   362,     0,   357,   801,
1045     -474,   359,   361,   365,   366,  -474,  -474,  -474,  -474,  -474,
1046     -474,  -474,  -474,  -474,  -474,  -474,  -474,   380,  -474,   367,
1047     -474,  -474,   368,   373,   363,   305,   -31,  -474,   391,   378,
1048     -474,  -474,     1,  -474,  -474,  -474,  -474,  -474,  -474,  -474,
1049     -474,  -474,   404,  -474,   690,   551,   305,  -474,  -474,  -474,
1050     -474,   100,  -474,   -31,  -474,  -474,   377,   393,   377,   425,
1051      406,   426,   429,   377,   405,   190,   -30,  -474,  -474,   466,
1052      305,  -474,   -30,   433,   -30,   -50,   411,   348,   370,  -474,
1053      414,   413,   418,   -30,   438,   427,   278,   184,   419,   551,
1054      422,   434,   428,   430,  -474,  -474,   -30,   425,   213,  -474,
1055      441,   293,   -30,   429,  -474,   430,   305,  -474,  -474,  -474,
1056      459,  -474,   245,   414,   -30,   377,  -474,   456,   444,  -474,
1057     -474,   442,  -474,  -474,   184,  -474,   480,   448,  -474,  -474,
1058     -474,  -474,  -474,   -31,   460,   458,   452,   -30,   465,   -30,
1059      190,  -474,  -474,   305,  -474,   490,   190,   493,   414,   463,
1060      801,   724,  -474,   184,   -30,   474,   473,  -474,   469,  -474,
1061      476,   536,  -474,   -30,   -31,   -31,   -30,   475,  -474,   -31,
1062      430,   -30,  -474,   500,   493,   190,  -474,   491,  -474,    39,
1063       55,   481,   -31,  -474,   598,   492,   495,   486,  -474,   509,
1064     -474,  -474,   -31,   236,   508,   -31,   -31,  -474,    75,   190,
1065     -474,   -30,   500,  -474,  -474,   115,   503,   156,   -31,  -474,
1066       94,  -474,   528,   430,  -474,  -474,  -474,  -474,  -474,  -474,
1067     -474,   608,   190,  -474,   529,  -474
1068 };
1069
1070 /* YYPGOTO[NTERM-NUM].  */
1071 static const yytype_int16 yypgoto[] =
1072 {
1073     -474,  -474,   602,  -474,  -199,    -1,   -11,   586,   603,    -2,
1074     -474,  -474,  -474,  -191,  -474,  -150,  -474,   -82,   -32,   -24,
1075      -21,  -474,  -121,   506,   -36,  -474,  -474,   381,  -474,  -474,
1076      -12,   482,   400,  -474,   -20,   379,  -474,  -474,   494,   371,
1077     -474,   247,  -474,  -474,  -248,  -474,  -116,   309,  -474,  -474,
1078     -474,   -49,  -474,  -474,  -474,  -474,  -474,  -474,  -474,   375,
1079     -474,   364,   615,  -474,   299,   336,   636,  -474,  -474,   483,
1080     -474,  -474,  -474,   337,   342,  -474,   313,  -474,   238,  -474,
1081     -474,   408,   -96,   155,   -19,  -454,  -474,  -474,  -430,  -474,
1082     -474,  -307,   167,  -390,  -474,  -474,   237,  -444,  -474,  -474,
1083      123,  -474,  -416,   132,   242,  -473,  -395,  -474,   252,  -474,
1084     -474,  -474,  -474
1085 };
1086
1087 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1088    positive, shift that token.  If negative, reduce the rule which
1089    number is the opposite.  If zero, do what YYDEFACT says.
1090    If YYTABLE_NINF, syntax error.  */
1091 #define YYTABLE_NINF -264
1092 static const yytype_int16 yytable[] =
1093 {
1094        7,     8,    38,   110,   161,    93,   264,    33,    94,   448,
1095      201,   116,   506,   489,   305,   425,    30,   305,    34,    35,
1096       97,   111,   488,    81,     6,   120,   121,   122,    99,   113,
1097      115,   243,   323,   177,   501,   474,   449,   503,   183,   184,
1098      185,   479,   481,   454,   286,   199,   168,   289,   463,   128,
1099      525,   132,   100,   448,   178,   381,    32,   429,   430,   348,
1100      470,   168,   223,   155,   226,   475,     9,   246,   247,   248,
1101      273,   114,   415,   356,  -110,   192,   536,   564,   164,   549,
1102      322,   521,   540,    98,    31,   411,    32,   412,   210,  -135,
1103      527,  -135,   169,   231,   156,   202,   507,   158,   259,   171,
1104      519,   172,   173,   159,   175,   367,   160,   169,    29,   170,
1105      253,   569,   254,   206,   207,   208,   209,     1,     2,   571,
1106      601,   572,   188,    98,   573,   556,    67,   574,   575,    98,
1107      234,   278,   578,   537,   576,   592,   364,   302,   303,  -195,
1108      411,   201,   585,   587,   116,    11,   590,    12,   580,   315,
1109      316,   317,   318,   319,   220,   591,    96,   572,   604,  -195,
1110      573,   195,   196,   574,   575,  -195,  -195,  -195,  -195,  -195,
1111     -195,  -195,   407,   146,   599,    98,   572,   147,   325,   573,
1112      327,   328,   574,   575,    32,   603,   249,   111,    98,   368,
1113      188,   435,   235,   118,    36,   236,    37,   572,   595,   258,
1114      573,   261,   123,   574,   575,   265,   266,   267,   268,   269,
1115      270,    98,   292,    98,   435,   238,   126,   152,   239,   294,
1116      282,   295,   285,   129,   287,   288,   202,   290,   279,   280,
1117      436,   437,   438,   439,   440,   441,   442,   443,   572,   444,
1118      131,   573,   597,   144,   574,   575,  -193,   320,  -229,   321,
1119      157,   509,   154,   436,   437,   438,   439,   440,   441,   442,
1120      443,   162,   444,   378,   212,   213,    37,  -229,   311,   312,
1121      347,  -229,  -229,   350,     6,   187,   166,   334,   186,   435,
1122      103,   104,     6,   187,    32,   281,   167,   358,   174,    37,
1123      500,     6,   586,   176,   435,  -229,   148,   149,   150,   151,
1124       32,   191,   193,   205,   222,   292,    83,    84,    85,    86,
1125       87,    88,    89,   224,   510,   511,   221,   227,   436,   437,
1126      438,   439,   440,   441,   442,   443,   358,   444,   228,   229,
1127      237,   512,   230,   436,   437,   438,   439,   440,   441,   442,
1128      443,   242,   444,   358,   241,    93,   375,   152,    94,   435,
1129      467,   382,   383,   384,    37,  -261,   471,   377,   473,   244,
1130      133,   134,   135,   136,   137,   138,   250,   485,   405,    37,
1131     -263,   435,   251,   252,   186,   255,   256,   257,   262,   276,
1132      498,   271,   263,   274,   272,   275,   504,   323,   436,   437,
1133      438,   439,   440,   441,   442,   443,   277,   444,   518,   231,
1134      305,   431,   300,   329,   309,   426,   259,   330,   331,   332,
1135      436,   437,   438,   439,   440,   441,   442,   443,   333,   444,
1136      335,   533,   336,   535,   478,   337,   362,   349,   363,   338,
1137      371,   376,   450,   365,   379,   380,   410,   420,   550,   433,
1138      408,   482,   416,   414,   417,    -9,    37,   557,   418,   419,
1139      561,   424,   428,   422,   423,   565,   513,   435,    15,   451,
1140       -5,    -5,    16,    -5,    -5,    -5,    -5,    -5,    -5,    -5,
1141       -5,    -5,    -5,    -5,   517,    -5,    -5,   427,   453,    -5,
1142      455,   435,   458,   459,   461,   593,   468,   464,   472,   477,
1143       37,   483,   484,   486,   545,   513,   436,   437,   438,   439,
1144      440,   441,   442,   443,   487,   444,   490,   492,   494,   543,
1145       17,    18,   529,   496,   495,   508,    19,    20,   502,   524,
1146      436,   437,   438,   439,   440,   441,   442,   443,    21,   444,
1147      522,   528,   520,    -5,   -16,   530,   531,   435,   532,   534,
1148      538,   541,   544,   558,   560,   297,   298,   299,   563,   551,
1149      552,   553,   435,   554,   562,   566,   526,  -258,  -258,  -258,
1150     -258,   558,  -258,  -258,  -258,  -258,  -258,   577,   570,   583,
1151      581,   558,   558,   582,   589,   558,   436,   437,   438,   439,
1152      440,   441,   442,   443,   102,   444,   584,   598,   588,   596,
1153     -258,   436,   437,   438,   439,   440,   441,   442,   443,   435,
1154      444,   345,   346,   103,   104,   600,   605,    10,    54,   435,
1155      165,    14,   555,   284,   351,   352,   353,   354,   355,   194,
1156      211,   291,   301,    32,   413,  -258,   314,   445,  -258,    83,
1157       84,    85,    86,    87,    88,    89,   313,    62,   436,   437,
1158      438,   439,   440,   441,   442,   443,   366,   444,   436,   437,
1159      438,   439,   440,   441,   442,   443,   304,   444,    64,   240,
1160        1,     2,   434,    39,    40,    41,    42,    43,    44,    45,
1161       46,    47,    48,    49,   579,    50,    51,   385,   372,    52,
1162      374,   370,   406,   326,   602,   546,   568,    68,    69,    70,
1163       71,   385,    72,    73,    74,    75,    76,   386,   548,   387,
1164      388,   389,   390,   391,   392,   594,   491,   393,   394,   395,
1165      396,   386,     0,   387,   388,   389,   390,   391,   392,     0,
1166       77,   393,   394,   395,   396,   505,     0,   397,   398,   499,
1167      509,     0,     0,    53,     0,     0,     0,     0,     0,     0,
1168        0,   397,   398,     0,   399,     0,     0,     0,   400,   401,
1169        0,     0,     0,     0,     0,    78,     0,     0,    79,   103,
1170      104,     0,   400,   401,    68,    69,    70,    71,     0,    72,
1171       73,    74,    75,    76,     0,     0,     0,     0,   200,    32,
1172      103,   104,     0,     0,     0,    83,    84,    85,    86,    87,
1173       88,    89,     0,   510,   511,   103,   104,    77,     0,     0,
1174       32,    39,    40,    41,    42,    43,    83,    84,    85,    86,
1175       87,    88,    89,    50,    51,    32,     0,    52,   103,   104,
1176        0,    83,    84,    85,    86,    87,    88,    89,   357,     0,
1177        0,     0,   373,     0,   338,    79,   103,   104,    32,   214,
1178      215,     0,     0,     0,    83,    84,    85,    86,    87,    88,
1179       89,    82,     0,     0,     0,     0,    32,     0,     0,     0,
1180        0,     0,    83,    84,    85,    86,    87,    88,    89,   103,
1181        0,    32,     0,     0,     0,     0,     0,    83,    84,    85,
1182       86,    87,    88,    89,    82,     0,     0,     0,     0,    32,
1183        0,     0,     0,     0,     0,    83,    84,    85,    86,    87,
1184       88,    89,     0,     0,   404,     0,     0,     0,     0,     0,
1185       83,    84,    85,    86,    87,    88,    89
1186 };
1187
1188 static const yytype_int16 yycheck[] =
1189 {
1190        1,     2,    21,    39,   100,    29,   205,    18,    29,   425,
1191      131,    43,   485,   467,    17,   405,    17,    17,    19,    20,
1192       31,    35,   466,    25,    55,    45,    46,    47,    58,    41,
1193       42,   181,    82,    30,   478,    85,   426,   481,   120,   121,
1194      122,   457,   458,   438,   235,   127,    36,   238,   443,    50,
1195      504,    53,    82,   469,    51,   362,    55,    56,    57,   307,
1196      450,    36,   158,    95,   160,   455,     0,   183,   184,   185,
1197      220,    85,   379,   321,    77,   124,   520,   550,   102,   533,
1198      271,   497,   526,    75,    53,    85,    55,    87,   137,    78,
1199      506,    80,    82,    85,    96,   131,   486,    76,    87,   110,
1200      495,   112,   113,    82,   115,     1,    85,    82,    39,    84,
1201      192,   555,   194,   133,   134,   135,   136,     3,     4,    80,
1202      593,    82,   123,    75,    85,   541,    77,    88,    89,    75,
1203       82,   227,   562,   523,    79,   579,    82,   253,   254,    35,
1204       85,   262,   572,   573,   176,    74,   576,    76,   564,   265,
1205      266,   267,   268,   269,   155,    80,    76,    82,   602,    55,
1206       85,    37,    38,    88,    89,    61,    62,    63,    64,    65,
1207       66,    67,   371,    62,    80,    75,    82,    66,   274,    85,
1208      276,   277,    88,    89,    55,   601,   187,    35,    75,    85,
1209      191,     1,    79,    85,    74,    82,    76,    82,    83,   200,
1210       85,   202,    85,    88,    89,   206,   207,   208,   209,   210,
1211      211,    75,   244,    75,     1,    79,    85,    79,    82,    74,
1212      231,    76,   234,    57,   236,   237,   262,   239,   229,   230,
1213       40,    41,    42,    43,    44,    45,    46,    47,    82,    49,
1214       79,    85,    86,    74,    88,    89,    55,    74,    58,    76,
1215       75,     6,    81,    40,    41,    42,    43,    44,    45,    46,
1216       47,    77,    49,   359,    61,    62,    76,    77,    56,    57,
1217      306,    58,    82,   309,    55,    56,    81,   288,    51,     1,
1218       35,    36,    55,    56,    55,    56,    81,   323,    68,    76,
1219       77,    55,    56,    78,     1,    82,    61,    62,    63,    64,
1220       55,    85,    85,    77,    55,   337,    61,    62,    63,    64,
1221       65,    66,    67,    58,    69,    70,    77,    83,    40,    41,
1222       42,    43,    44,    45,    46,    47,   362,    49,    74,    81,
1223       86,    86,    81,    40,    41,    42,    43,    44,    45,    46,
1224       47,    78,    49,   379,    86,   369,   347,    79,   369,     1,
1225      446,   363,   364,   365,    76,    77,   452,   358,   454,    75,
1226       11,    12,    13,    14,    15,    16,    86,   463,   369,    76,
1227       77,     1,    78,    86,    51,    86,    78,    76,    78,    83,
1228      476,    78,    80,    77,    80,    78,   482,    82,    40,    41,
1229       42,    43,    44,    45,    46,    47,    86,    49,   494,    85,
1230       17,   412,    86,    83,    87,   406,    87,    86,    83,    80,
1231       40,    41,    42,    43,    44,    45,    46,    47,    83,    49,
1232       80,   517,    83,   519,    76,    78,    82,    77,    82,    39,
1233       77,    77,   433,    82,    78,    83,    74,    57,   534,    35,
1234       85,   460,    83,    86,    83,    82,    76,   543,    83,    83,
1235      546,    78,    74,    86,    86,   551,   492,     1,     1,    82,
1236        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1237       13,    14,    15,    16,   493,    18,    19,    86,    85,    22,
1238       55,     1,    76,    57,    55,   581,    20,    82,    55,    78,
1239       76,    78,    74,    55,   530,   531,    40,    41,    42,    43,
1240       44,    45,    46,    47,    77,    49,    87,    85,    74,   528,
1241       53,    54,   513,    83,    86,    56,    59,    60,    77,    77,
1242       40,    41,    42,    43,    44,    45,    46,    47,    71,    49,
1243       86,    83,    76,    76,    77,    75,    78,     1,    86,    74,
1244       50,    48,    79,   544,   545,   246,   247,   248,   549,    75,
1245       77,    82,     1,    77,    79,    55,    76,     6,     7,     8,
1246        9,   562,    11,    12,    13,    14,    15,    86,    77,    83,
1247       78,   572,   573,    78,   575,   576,    40,    41,    42,    43,
1248       44,    45,    46,    47,    16,    49,    77,   588,    80,    86,
1249       39,    40,    41,    42,    43,    44,    45,    46,    47,     1,
1250       49,   302,   303,    35,    36,    77,    77,     5,    22,     1,
1251      104,     8,    76,   232,   315,   316,   317,   318,   319,   125,
1252      138,   242,   251,    55,   377,    74,   262,    76,    77,    61,
1253       62,    63,    64,    65,    66,    67,   261,    22,    40,    41,
1254       42,    43,    44,    45,    46,    47,   337,    49,    40,    41,
1255       42,    43,    44,    45,    46,    47,   256,    49,    22,   176,
1256        3,     4,   424,     6,     7,     8,     9,    10,    11,    12,
1257       13,    14,    15,    16,    76,    18,    19,     1,   342,    22,
1258      343,   339,   369,   275,    76,   530,   554,     6,     7,     8,
1259        9,     1,    11,    12,    13,    14,    15,    21,   531,    23,
1260       24,    25,    26,    27,    28,   582,   469,    31,    32,    33,
1261       34,    21,    -1,    23,    24,    25,    26,    27,    28,    -1,
1262       39,    31,    32,    33,    34,   483,    -1,    51,    52,   477,
1263        6,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,
1264       -1,    51,    52,    -1,    68,    -1,    -1,    -1,    72,    73,
1265       -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,    77,    35,
1266       36,    -1,    72,    73,     6,     7,     8,     9,    -1,    11,
1267       12,    13,    14,    15,    -1,    -1,    -1,    -1,    18,    55,
1268       35,    36,    -1,    -1,    -1,    61,    62,    63,    64,    65,
1269       66,    67,    -1,    69,    70,    35,    36,    39,    -1,    -1,
1270       55,     6,     7,     8,     9,    10,    61,    62,    63,    64,
1271       65,    66,    67,    18,    19,    55,    -1,    22,    35,    36,
1272       -1,    61,    62,    63,    64,    65,    66,    67,    83,    -1,
1273       -1,    -1,    74,    -1,    39,    77,    35,    36,    55,    56,
1274       57,    -1,    -1,    -1,    61,    62,    63,    64,    65,    66,
1275       67,    35,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,
1276       -1,    -1,    61,    62,    63,    64,    65,    66,    67,    35,
1277       -1,    55,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,
1278       64,    65,    66,    67,    35,    -1,    -1,    -1,    -1,    55,
1279       -1,    -1,    -1,    -1,    -1,    61,    62,    63,    64,    65,
1280       66,    67,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,
1281       61,    62,    63,    64,    65,    66,    67
1282 };
1283
1284 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1285    symbol of state STATE-NUM.  */
1286 static const yytype_uint8 yystos[] =
1287 {
1288        0,     3,     4,    91,    92,    97,    55,    95,    95,     0,
1289       92,    74,    76,    98,    98,     1,     5,    53,    54,    59,
1290       60,    71,    93,    99,   100,   101,   165,   201,   202,    39,
1291       95,    53,    55,    96,    95,    95,    74,    76,   174,     6,
1292        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1293       18,    19,    22,    76,    97,   118,   119,   135,   138,   139,
1294      140,   142,   152,   153,   156,   157,   158,    77,     6,     7,
1295        8,     9,    11,    12,    13,    14,    15,    39,    74,    77,
1296      163,    99,    35,    61,    62,    63,    64,    65,    66,    67,
1297       96,   106,   108,   109,   110,   166,    76,    96,    75,    58,
1298       82,   172,    16,    35,    36,   109,   110,   111,   112,   113,
1299      114,    35,   120,   120,    85,   120,   108,   159,    85,   124,
1300      124,   124,   124,    85,   128,   141,    85,   121,    95,    57,
1301      160,    79,    99,    11,    12,    13,    14,    15,    16,   143,
1302      144,   145,   146,   147,    74,    94,    62,    66,    61,    62,
1303       63,    64,    79,   105,    81,   108,    99,    75,    76,    82,
1304       85,   172,    77,   175,   109,   113,    81,    81,    36,    82,
1305       84,    96,    96,    96,    68,    96,    78,    30,    51,   125,
1306      130,    95,   107,   107,   107,   107,    51,    56,    95,   127,
1307      129,    85,   141,    85,   128,    37,    38,   122,   123,   107,
1308       18,   112,   114,   150,   151,    77,   124,   124,   124,   124,
1309      141,   121,    61,    62,    56,    57,   102,   103,   104,   114,
1310       95,    77,    55,   172,    58,   171,   172,    83,    74,    81,
1311       81,    85,   116,   117,    82,    79,    82,    86,    79,    82,
1312      159,    86,    78,   105,    75,   136,   136,   136,   136,    95,
1313       86,    78,    86,   107,   107,    86,    78,    76,    95,    87,
1314      149,    95,    78,    80,    94,    95,    95,    95,    95,    95,
1315       95,    78,    80,   105,    77,    78,    83,    86,   172,    95,
1316       95,    56,    96,   115,   117,   120,   103,   120,   120,   103,
1317      120,   125,   108,   137,    74,    76,   154,   154,   154,   154,
1318       86,   129,   136,   136,   122,    17,   131,   133,   134,    87,
1319      148,    56,    57,   149,   151,   136,   136,   136,   136,   136,
1320       74,    76,   103,    82,   183,   172,   171,   172,   172,    83,
1321       86,    83,    80,    83,    96,    80,    83,    78,    39,   152,
1322      155,   156,   161,   162,   164,   154,   154,   114,   134,    77,
1323      114,   154,   154,   154,   154,   154,   134,    83,   114,   173,
1324      176,   181,    82,    82,    82,    82,   137,     1,    85,   167,
1325      164,    77,   155,    74,   163,    95,    77,    95,   172,    78,
1326       83,   181,   120,   120,   120,     1,    21,    23,    24,    25,
1327       26,    27,    28,    31,    32,    33,    34,    51,    52,    68,
1328       72,    73,   168,   169,    55,    95,   166,    94,    85,   132,
1329       74,    85,    87,   131,    86,   181,    83,    83,    83,    83,
1330       57,   126,    86,    86,    78,   183,    95,    86,    74,    56,
1331       57,    96,   170,    35,   168,     1,    40,    41,    42,    43,
1332       44,    45,    46,    47,    49,    76,   174,   186,   192,   183,
1333       95,    82,   196,    85,   196,    55,   197,   198,    76,    57,
1334      191,    55,   194,   196,    82,   187,   192,   172,    20,   185,
1335      183,   172,    55,   172,    85,   183,   199,    78,    76,   192,
1336      188,   192,   174,    78,    74,   172,    55,    77,   187,   175,
1337       87,   186,    85,   184,    74,    86,    83,   195,   172,   198,
1338       77,   187,    77,   187,   172,   194,   195,   183,    56,     6,
1339       69,    70,    86,   114,   177,   180,   182,   174,   172,   196,
1340       76,   192,    86,   200,    77,   175,    76,   192,    83,    95,
1341       75,    78,    86,   172,    74,   172,   187,   183,    50,   189,
1342      187,    48,   193,   174,    79,   114,   173,   179,   182,   175,
1343      172,    75,    77,    82,    77,    76,   192,   172,    95,   178,
1344       95,   172,    79,    95,   195,   172,    55,   190,   193,   187,
1345       77,    80,    82,    85,    88,    89,    79,    86,   178,    76,
1346      192,    78,    78,    83,    77,   178,    56,   178,    80,    95,
1347      178,    80,   187,   172,   190,    83,    86,    86,    95,    80,
1348       77,   195,    76,   192,   187,    77
1349 };
1350
1351 #define yyerrok         (yyerrstatus = 0)
1352 #define yyclearin       (yychar = YYEMPTY)
1353 #define YYEMPTY         (-2)
1354 #define YYEOF           0
1355
1356 #define YYACCEPT        goto yyacceptlab
1357 #define YYABORT         goto yyabortlab
1358 #define YYERROR         goto yyerrorlab
1359
1360
1361 /* Like YYERROR except do call yyerror.  This remains here temporarily
1362    to ease the transition to the new meaning of YYERROR, for GCC.
1363    Once GCC version 2 has supplanted version 1, this can go.  */
1364
1365 #define YYFAIL          goto yyerrlab
1366
1367 #define YYRECOVERING()  (!!yyerrstatus)
1368
1369 #define YYBACKUP(Token, Value)                                  \
1370 do                                                              \
1371   if (yychar == YYEMPTY && yylen == 1)                          \
1372     {                                                           \
1373       yychar = (Token);                                         \
1374       yylval = (Value);                                         \
1375       yytoken = YYTRANSLATE (yychar);                           \
1376       YYPOPSTACK (1);                                           \
1377       goto yybackup;                                            \
1378     }                                                           \
1379   else                                                          \
1380     {                                                           \
1381       yyerror (YY_("syntax error: cannot back up")); \
1382       YYERROR;                                                  \
1383     }                                                           \
1384 while (YYID (0))
1385
1386
1387 #define YYTERROR        1
1388 #define YYERRCODE       256
1389
1390
1391 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1392    If N is 0, then set CURRENT to the empty location which ends
1393    the previous symbol: RHS[0] (always defined).  */
1394
1395 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1396 #ifndef YYLLOC_DEFAULT
1397 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
1398     do                                                                  \
1399       if (YYID (N))                                                    \
1400         {                                                               \
1401           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
1402           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
1403           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
1404           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
1405         }                                                               \
1406       else                                                              \
1407         {                                                               \
1408           (Current).first_line   = (Current).last_line   =              \
1409             YYRHSLOC (Rhs, 0).last_line;                                \
1410           (Current).first_column = (Current).last_column =              \
1411             YYRHSLOC (Rhs, 0).last_column;                              \
1412         }                                                               \
1413     while (YYID (0))
1414 #endif
1415
1416
1417 /* YY_LOCATION_PRINT -- Print the location on the stream.
1418    This macro was not mandated originally: define only if we know
1419    we won't break user code: when these are the locations we know.  */
1420
1421 #ifndef YY_LOCATION_PRINT
1422 # if YYLTYPE_IS_TRIVIAL
1423 #  define YY_LOCATION_PRINT(File, Loc)                  \
1424      fprintf (File, "%d.%d-%d.%d",                      \
1425               (Loc).first_line, (Loc).first_column,     \
1426               (Loc).last_line,  (Loc).last_column)
1427 # else
1428 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1429 # endif
1430 #endif
1431
1432
1433 /* YYLEX -- calling `yylex' with the right arguments.  */
1434
1435 #ifdef YYLEX_PARAM
1436 # define YYLEX yylex (YYLEX_PARAM)
1437 #else
1438 # define YYLEX yylex ()
1439 #endif
1440
1441 /* Enable debugging if requested.  */
1442 #if YYDEBUG
1443
1444 # ifndef YYFPRINTF
1445 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1446 #  define YYFPRINTF fprintf
1447 # endif
1448
1449 # define YYDPRINTF(Args)                        \
1450 do {                                            \
1451   if (yydebug)                                  \
1452     YYFPRINTF Args;                             \
1453 } while (YYID (0))
1454
1455 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
1456 do {                                                                      \
1457   if (yydebug)                                                            \
1458     {                                                                     \
1459       YYFPRINTF (stderr, "%s ", Title);                                   \
1460       yy_symbol_print (stderr,                                            \
1461                   Type, Value); \
1462       YYFPRINTF (stderr, "\n");                                           \
1463     }                                                                     \
1464 } while (YYID (0))
1465
1466
1467 /*--------------------------------.
1468 | Print this symbol on YYOUTPUT.  |
1469 `--------------------------------*/
1470
1471 /*ARGSUSED*/
1472 #if (defined __STDC__ || defined __C99__FUNC__ \
1473      || defined __cplusplus || defined _MSC_VER)
1474 static void
1475 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1476 #else
1477 static void
1478 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
1479     FILE *yyoutput;
1480     int yytype;
1481     YYSTYPE const * const yyvaluep;
1482 #endif
1483 {
1484   if (!yyvaluep)
1485     return;
1486 # ifdef YYPRINT
1487   if (yytype < YYNTOKENS)
1488     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1489 # else
1490   YYUSE (yyoutput);
1491 # endif
1492   switch (yytype)
1493     {
1494       default:
1495         break;
1496     }
1497 }
1498
1499
1500 /*--------------------------------.
1501 | Print this symbol on YYOUTPUT.  |
1502 `--------------------------------*/
1503
1504 #if (defined __STDC__ || defined __C99__FUNC__ \
1505      || defined __cplusplus || defined _MSC_VER)
1506 static void
1507 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1508 #else
1509 static void
1510 yy_symbol_print (yyoutput, yytype, yyvaluep)
1511     FILE *yyoutput;
1512     int yytype;
1513     YYSTYPE const * const yyvaluep;
1514 #endif
1515 {
1516   if (yytype < YYNTOKENS)
1517     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1518   else
1519     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1520
1521   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1522   YYFPRINTF (yyoutput, ")");
1523 }
1524
1525 /*------------------------------------------------------------------.
1526 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1527 | TOP (included).                                                   |
1528 `------------------------------------------------------------------*/
1529
1530 #if (defined __STDC__ || defined __C99__FUNC__ \
1531      || defined __cplusplus || defined _MSC_VER)
1532 static void
1533 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1534 #else
1535 static void
1536 yy_stack_print (yybottom, yytop)
1537     yytype_int16 *yybottom;
1538     yytype_int16 *yytop;
1539 #endif
1540 {
1541   YYFPRINTF (stderr, "Stack now");
1542   for (; yybottom <= yytop; yybottom++)
1543     {
1544       int yybot = *yybottom;
1545       YYFPRINTF (stderr, " %d", yybot);
1546     }
1547   YYFPRINTF (stderr, "\n");
1548 }
1549
1550 # define YY_STACK_PRINT(Bottom, Top)                            \
1551 do {                                                            \
1552   if (yydebug)                                                  \
1553     yy_stack_print ((Bottom), (Top));                           \
1554 } while (YYID (0))
1555
1556
1557 /*------------------------------------------------.
1558 | Report that the YYRULE is going to be reduced.  |
1559 `------------------------------------------------*/
1560
1561 #if (defined __STDC__ || defined __C99__FUNC__ \
1562      || defined __cplusplus || defined _MSC_VER)
1563 static void
1564 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1565 #else
1566 static void
1567 yy_reduce_print (yyvsp, yyrule)
1568     YYSTYPE *yyvsp;
1569     int yyrule;
1570 #endif
1571 {
1572   int yynrhs = yyr2[yyrule];
1573   int yyi;
1574   unsigned long int yylno = yyrline[yyrule];
1575   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1576              yyrule - 1, yylno);
1577   /* The symbols being reduced.  */
1578   for (yyi = 0; yyi < yynrhs; yyi++)
1579     {
1580       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1581       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1582                        &(yyvsp[(yyi + 1) - (yynrhs)])
1583                                        );
1584       YYFPRINTF (stderr, "\n");
1585     }
1586 }
1587
1588 # define YY_REDUCE_PRINT(Rule)          \
1589 do {                                    \
1590   if (yydebug)                          \
1591     yy_reduce_print (yyvsp, Rule); \
1592 } while (YYID (0))
1593
1594 /* Nonzero means print parse trace.  It is left uninitialized so that
1595    multiple parsers can coexist.  */
1596 int yydebug;
1597 #else /* !YYDEBUG */
1598 # define YYDPRINTF(Args)
1599 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1600 # define YY_STACK_PRINT(Bottom, Top)
1601 # define YY_REDUCE_PRINT(Rule)
1602 #endif /* !YYDEBUG */
1603
1604
1605 /* YYINITDEPTH -- initial size of the parser's stacks.  */
1606 #ifndef YYINITDEPTH
1607 # define YYINITDEPTH 200
1608 #endif
1609
1610 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1611    if the built-in stack extension method is used).
1612
1613    Do not make this value too large; the results are undefined if
1614    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1615    evaluated with infinite-precision integer arithmetic.  */
1616
1617 #ifndef YYMAXDEPTH
1618 # define YYMAXDEPTH 10000
1619 #endif
1620
1621 \f
1622
1623 #if YYERROR_VERBOSE
1624
1625 # ifndef yystrlen
1626 #  if defined __GLIBC__ && defined _STRING_H
1627 #   define yystrlen strlen
1628 #  else
1629 /* Return the length of YYSTR.  */
1630 #if (defined __STDC__ || defined __C99__FUNC__ \
1631      || defined __cplusplus || defined _MSC_VER)
1632 static YYSIZE_T
1633 yystrlen (const char *yystr)
1634 #else
1635 static YYSIZE_T
1636 yystrlen (yystr)
1637     const char *yystr;
1638 #endif
1639 {
1640   YYSIZE_T yylen;
1641   for (yylen = 0; yystr[yylen]; yylen++)
1642     continue;
1643   return yylen;
1644 }
1645 #  endif
1646 # endif
1647
1648 # ifndef yystpcpy
1649 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1650 #   define yystpcpy stpcpy
1651 #  else
1652 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1653    YYDEST.  */
1654 #if (defined __STDC__ || defined __C99__FUNC__ \
1655      || defined __cplusplus || defined _MSC_VER)
1656 static char *
1657 yystpcpy (char *yydest, const char *yysrc)
1658 #else
1659 static char *
1660 yystpcpy (yydest, yysrc)
1661     char *yydest;
1662     const char *yysrc;
1663 #endif
1664 {
1665   char *yyd = yydest;
1666   const char *yys = yysrc;
1667
1668   while ((*yyd++ = *yys++) != '\0')
1669     continue;
1670
1671   return yyd - 1;
1672 }
1673 #  endif
1674 # endif
1675
1676 # ifndef yytnamerr
1677 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1678    quotes and backslashes, so that it's suitable for yyerror.  The
1679    heuristic is that double-quoting is unnecessary unless the string
1680    contains an apostrophe, a comma, or backslash (other than
1681    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1682    null, do not copy; instead, return the length of what the result
1683    would have been.  */
1684 static YYSIZE_T
1685 yytnamerr (char *yyres, const char *yystr)
1686 {
1687   if (*yystr == '"')
1688     {
1689       YYSIZE_T yyn = 0;
1690       char const *yyp = yystr;
1691
1692       for (;;)
1693         switch (*++yyp)
1694           {
1695           case '\'':
1696           case ',':
1697             goto do_not_strip_quotes;
1698
1699           case '\\':
1700             if (*++yyp != '\\')
1701               goto do_not_strip_quotes;
1702             /* Fall through.  */
1703           default:
1704             if (yyres)
1705               yyres[yyn] = *yyp;
1706             yyn++;
1707             break;
1708
1709           case '"':
1710             if (yyres)
1711               yyres[yyn] = '\0';
1712             return yyn;
1713           }
1714     do_not_strip_quotes: ;
1715     }
1716
1717   if (! yyres)
1718     return yystrlen (yystr);
1719
1720   return yystpcpy (yyres, yystr) - yyres;
1721 }
1722 # endif
1723
1724 /* Copy into YYRESULT an error message about the unexpected token
1725    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
1726    including the terminating null byte.  If YYRESULT is null, do not
1727    copy anything; just return the number of bytes that would be
1728    copied.  As a special case, return 0 if an ordinary "syntax error"
1729    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
1730    size calculation.  */
1731 static YYSIZE_T
1732 yysyntax_error (char *yyresult, int yystate, int yychar)
1733 {
1734   int yyn = yypact[yystate];
1735
1736   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1737     return 0;
1738   else
1739     {
1740       int yytype = YYTRANSLATE (yychar);
1741       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1742       YYSIZE_T yysize = yysize0;
1743       YYSIZE_T yysize1;
1744       int yysize_overflow = 0;
1745       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1746       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1747       int yyx;
1748
1749 # if 0
1750       /* This is so xgettext sees the translatable formats that are
1751          constructed on the fly.  */
1752       YY_("syntax error, unexpected %s");
1753       YY_("syntax error, unexpected %s, expecting %s");
1754       YY_("syntax error, unexpected %s, expecting %s or %s");
1755       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1756       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1757 # endif
1758       char *yyfmt;
1759       char const *yyf;
1760       static char const yyunexpected[] = "syntax error, unexpected %s";
1761       static char const yyexpecting[] = ", expecting %s";
1762       static char const yyor[] = " or %s";
1763       char yyformat[sizeof yyunexpected
1764                     + sizeof yyexpecting - 1
1765                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1766                        * (sizeof yyor - 1))];
1767       char const *yyprefix = yyexpecting;
1768
1769       /* Start YYX at -YYN if negative to avoid negative indexes in
1770          YYCHECK.  */
1771       int yyxbegin = yyn < 0 ? -yyn : 0;
1772
1773       /* Stay within bounds of both yycheck and yytname.  */
1774       int yychecklim = YYLAST - yyn + 1;
1775       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1776       int yycount = 1;
1777
1778       yyarg[0] = yytname[yytype];
1779       yyfmt = yystpcpy (yyformat, yyunexpected);
1780
1781       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1782         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1783           {
1784             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1785               {
1786                 yycount = 1;
1787                 yysize = yysize0;
1788                 yyformat[sizeof yyunexpected - 1] = '\0';
1789                 break;
1790               }
1791             yyarg[yycount++] = yytname[yyx];
1792             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1793             yysize_overflow |= (yysize1 < yysize);
1794             yysize = yysize1;
1795             yyfmt = yystpcpy (yyfmt, yyprefix);
1796             yyprefix = yyor;
1797           }
1798
1799       yyf = YY_(yyformat);
1800       yysize1 = yysize + yystrlen (yyf);
1801       yysize_overflow |= (yysize1 < yysize);
1802       yysize = yysize1;
1803
1804       if (yysize_overflow)
1805         return YYSIZE_MAXIMUM;
1806
1807       if (yyresult)
1808         {
1809           /* Avoid sprintf, as that infringes on the user's name space.
1810              Don't have undefined behavior even if the translation
1811              produced a string with the wrong number of "%s"s.  */
1812           char *yyp = yyresult;
1813           int yyi = 0;
1814           while ((*yyp = *yyf) != '\0')
1815             {
1816               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1817                 {
1818                   yyp += yytnamerr (yyp, yyarg[yyi++]);
1819                   yyf += 2;
1820                 }
1821               else
1822                 {
1823                   yyp++;
1824                   yyf++;
1825                 }
1826             }
1827         }
1828       return yysize;
1829     }
1830 }
1831 #endif /* YYERROR_VERBOSE */
1832 \f
1833
1834 /*-----------------------------------------------.
1835 | Release the memory associated to this symbol.  |
1836 `-----------------------------------------------*/
1837
1838 /*ARGSUSED*/
1839 #if (defined __STDC__ || defined __C99__FUNC__ \
1840      || defined __cplusplus || defined _MSC_VER)
1841 static void
1842 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1843 #else
1844 static void
1845 yydestruct (yymsg, yytype, yyvaluep)
1846     const char *yymsg;
1847     int yytype;
1848     YYSTYPE *yyvaluep;
1849 #endif
1850 {
1851   YYUSE (yyvaluep);
1852
1853   if (!yymsg)
1854     yymsg = "Deleting";
1855   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1856
1857   switch (yytype)
1858     {
1859
1860       default:
1861         break;
1862     }
1863 }
1864
1865 /* Prevent warnings from -Wmissing-prototypes.  */
1866 #ifdef YYPARSE_PARAM
1867 #if defined __STDC__ || defined __cplusplus
1868 int yyparse (void *YYPARSE_PARAM);
1869 #else
1870 int yyparse ();
1871 #endif
1872 #else /* ! YYPARSE_PARAM */
1873 #if defined __STDC__ || defined __cplusplus
1874 int yyparse (void);
1875 #else
1876 int yyparse ();
1877 #endif
1878 #endif /* ! YYPARSE_PARAM */
1879
1880
1881 /* The lookahead symbol.  */
1882 int yychar;
1883
1884 /* The semantic value of the lookahead symbol.  */
1885 YYSTYPE yylval;
1886
1887 /* Number of syntax errors so far.  */
1888 int yynerrs;
1889
1890
1891
1892 /*-------------------------.
1893 | yyparse or yypush_parse.  |
1894 `-------------------------*/
1895
1896 #ifdef YYPARSE_PARAM
1897 #if (defined __STDC__ || defined __C99__FUNC__ \
1898      || defined __cplusplus || defined _MSC_VER)
1899 int
1900 yyparse (void *YYPARSE_PARAM)
1901 #else
1902 int
1903 yyparse (YYPARSE_PARAM)
1904     void *YYPARSE_PARAM;
1905 #endif
1906 #else /* ! YYPARSE_PARAM */
1907 #if (defined __STDC__ || defined __C99__FUNC__ \
1908      || defined __cplusplus || defined _MSC_VER)
1909 int
1910 yyparse (void)
1911 #else
1912 int
1913 yyparse ()
1914
1915 #endif
1916 #endif
1917 {
1918
1919
1920     int yystate;
1921     /* Number of tokens to shift before error messages enabled.  */
1922     int yyerrstatus;
1923
1924     /* The stacks and their tools:
1925        `yyss': related to states.
1926        `yyvs': related to semantic values.
1927
1928        Refer to the stacks thru separate pointers, to allow yyoverflow
1929        to reallocate them elsewhere.  */
1930
1931     /* The state stack.  */
1932     yytype_int16 yyssa[YYINITDEPTH];
1933     yytype_int16 *yyss;
1934     yytype_int16 *yyssp;
1935
1936     /* The semantic value stack.  */
1937     YYSTYPE yyvsa[YYINITDEPTH];
1938     YYSTYPE *yyvs;
1939     YYSTYPE *yyvsp;
1940
1941     YYSIZE_T yystacksize;
1942
1943   int yyn;
1944   int yyresult;
1945   /* Lookahead token as an internal (translated) token number.  */
1946   int yytoken;
1947   /* The variables used to return semantic value and location from the
1948      action routines.  */
1949   YYSTYPE yyval;
1950
1951 #if YYERROR_VERBOSE
1952   /* Buffer for error messages, and its allocated size.  */
1953   char yymsgbuf[128];
1954   char *yymsg = yymsgbuf;
1955   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1956 #endif
1957
1958 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
1959
1960   /* The number of symbols on the RHS of the reduced rule.
1961      Keep to zero when no symbol should be popped.  */
1962   int yylen = 0;
1963
1964   yytoken = 0;
1965   yyss = yyssa;
1966   yyvs = yyvsa;
1967   yystacksize = YYINITDEPTH;
1968
1969   YYDPRINTF ((stderr, "Starting parse\n"));
1970
1971   yystate = 0;
1972   yyerrstatus = 0;
1973   yynerrs = 0;
1974   yychar = YYEMPTY; /* Cause a token to be read.  */
1975
1976   /* Initialize stack pointers.
1977      Waste one element of value and location stack
1978      so that they stay on the same level as the state stack.
1979      The wasted elements are never initialized.  */
1980   yyssp = yyss;
1981   yyvsp = yyvs;
1982
1983   goto yysetstate;
1984
1985 /*------------------------------------------------------------.
1986 | yynewstate -- Push a new state, which is found in yystate.  |
1987 `------------------------------------------------------------*/
1988  yynewstate:
1989   /* In all cases, when you get here, the value and location stacks
1990      have just been pushed.  So pushing a state here evens the stacks.  */
1991   yyssp++;
1992
1993  yysetstate:
1994   *yyssp = yystate;
1995
1996   if (yyss + yystacksize - 1 <= yyssp)
1997     {
1998       /* Get the current used size of the three stacks, in elements.  */
1999       YYSIZE_T yysize = yyssp - yyss + 1;
2000
2001 #ifdef yyoverflow
2002       {
2003         /* Give user a chance to reallocate the stack.  Use copies of
2004            these so that the &'s don't force the real ones into
2005            memory.  */
2006         YYSTYPE *yyvs1 = yyvs;
2007         yytype_int16 *yyss1 = yyss;
2008
2009         /* Each stack pointer address is followed by the size of the
2010            data in use in that stack, in bytes.  This used to be a
2011            conditional around just the two extra args, but that might
2012            be undefined if yyoverflow is a macro.  */
2013         yyoverflow (YY_("memory exhausted"),
2014                     &yyss1, yysize * sizeof (*yyssp),
2015                     &yyvs1, yysize * sizeof (*yyvsp),
2016                     &yystacksize);
2017
2018         yyss = yyss1;
2019         yyvs = yyvs1;
2020       }
2021 #else /* no yyoverflow */
2022 # ifndef YYSTACK_RELOCATE
2023       goto yyexhaustedlab;
2024 # else
2025       /* Extend the stack our own way.  */
2026       if (YYMAXDEPTH <= yystacksize)
2027         goto yyexhaustedlab;
2028       yystacksize *= 2;
2029       if (YYMAXDEPTH < yystacksize)
2030         yystacksize = YYMAXDEPTH;
2031
2032       {
2033         yytype_int16 *yyss1 = yyss;
2034         union yyalloc *yyptr =
2035           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2036         if (! yyptr)
2037           goto yyexhaustedlab;
2038         YYSTACK_RELOCATE (yyss_alloc, yyss);
2039         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2040 #  undef YYSTACK_RELOCATE
2041         if (yyss1 != yyssa)
2042           YYSTACK_FREE (yyss1);
2043       }
2044 # endif
2045 #endif /* no yyoverflow */
2046
2047       yyssp = yyss + yysize - 1;
2048       yyvsp = yyvs + yysize - 1;
2049
2050       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2051                   (unsigned long int) yystacksize));
2052
2053       if (yyss + yystacksize - 1 <= yyssp)
2054         YYABORT;
2055     }
2056
2057   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2058
2059   if (yystate == YYFINAL)
2060     YYACCEPT;
2061
2062   goto yybackup;
2063
2064 /*-----------.
2065 | yybackup.  |
2066 `-----------*/
2067 yybackup:
2068
2069   /* Do appropriate processing given the current state.  Read a
2070      lookahead token if we need one and don't already have one.  */
2071
2072   /* First try to decide what to do without reference to lookahead token.  */
2073   yyn = yypact[yystate];
2074   if (yyn == YYPACT_NINF)
2075     goto yydefault;
2076
2077   /* Not known => get a lookahead token if don't already have one.  */
2078
2079   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
2080   if (yychar == YYEMPTY)
2081     {
2082       YYDPRINTF ((stderr, "Reading a token: "));
2083       yychar = YYLEX;
2084     }
2085
2086   if (yychar <= YYEOF)
2087     {
2088       yychar = yytoken = YYEOF;
2089       YYDPRINTF ((stderr, "Now at end of input.\n"));
2090     }
2091   else
2092     {
2093       yytoken = YYTRANSLATE (yychar);
2094       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2095     }
2096
2097   /* If the proper action on seeing token YYTOKEN is to reduce or to
2098      detect an error, take that action.  */
2099   yyn += yytoken;
2100   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2101     goto yydefault;
2102   yyn = yytable[yyn];
2103   if (yyn <= 0)
2104     {
2105       if (yyn == 0 || yyn == YYTABLE_NINF)
2106         goto yyerrlab;
2107       yyn = -yyn;
2108       goto yyreduce;
2109     }
2110
2111   /* Count tokens shifted since error; after three, turn off error
2112      status.  */
2113   if (yyerrstatus)
2114     yyerrstatus--;
2115
2116   /* Shift the lookahead token.  */
2117   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2118
2119   /* Discard the shifted token.  */
2120   yychar = YYEMPTY;
2121
2122   yystate = yyn;
2123   *++yyvsp = yylval;
2124
2125   goto yynewstate;
2126
2127
2128 /*-----------------------------------------------------------.
2129 | yydefault -- do the default action for the current state.  |
2130 `-----------------------------------------------------------*/
2131 yydefault:
2132   yyn = yydefact[yystate];
2133   if (yyn == 0)
2134     goto yyerrlab;
2135   goto yyreduce;
2136
2137
2138 /*-----------------------------.
2139 | yyreduce -- Do a reduction.  |
2140 `-----------------------------*/
2141 yyreduce:
2142   /* yyn is the number of a rule to reduce with.  */
2143   yylen = yyr2[yyn];
2144
2145   /* If YYLEN is nonzero, implement the default value of the action:
2146      `$$ = $1'.
2147
2148      Otherwise, the following line sets YYVAL to garbage.
2149      This behavior is undocumented and Bison
2150      users should not rely upon it.  Assigning to YYVAL
2151      unconditionally makes the parser a bit smaller, and it avoids a
2152      GCC warning that YYVAL may be used uninitialized.  */
2153   yyval = yyvsp[1-yylen];
2154
2155
2156   YY_REDUCE_PRINT (yyn);
2157   switch (yyn)
2158     {
2159         case 2:
2160
2161 /* Line 1455 of yacc.c  */
2162 #line 155 "xi-grammar.y"
2163     { (yyval.modlist) = (yyvsp[(1) - (1)].modlist); modlist = (yyvsp[(1) - (1)].modlist); }
2164     break;
2165
2166   case 3:
2167
2168 /* Line 1455 of yacc.c  */
2169 #line 159 "xi-grammar.y"
2170     { 
2171                   (yyval.modlist) = 0; 
2172                 }
2173     break;
2174
2175   case 4:
2176
2177 /* Line 1455 of yacc.c  */
2178 #line 163 "xi-grammar.y"
2179     { (yyval.modlist) = new ModuleList(lineno, (yyvsp[(1) - (2)].module), (yyvsp[(2) - (2)].modlist)); }
2180     break;
2181
2182   case 5:
2183
2184 /* Line 1455 of yacc.c  */
2185 #line 167 "xi-grammar.y"
2186     { (yyval.intval) = 0; }
2187     break;
2188
2189   case 6:
2190
2191 /* Line 1455 of yacc.c  */
2192 #line 169 "xi-grammar.y"
2193     { (yyval.intval) = 1; }
2194     break;
2195
2196   case 7:
2197
2198 /* Line 1455 of yacc.c  */
2199 #line 173 "xi-grammar.y"
2200     { (yyval.intval) = 0; }
2201     break;
2202
2203   case 8:
2204
2205 /* Line 1455 of yacc.c  */
2206 #line 175 "xi-grammar.y"
2207     { (yyval.intval) = 1; }
2208     break;
2209
2210   case 9:
2211
2212 /* Line 1455 of yacc.c  */
2213 #line 179 "xi-grammar.y"
2214     { (yyval.strval) = (yyvsp[(1) - (1)].strval); }
2215     break;
2216
2217   case 10:
2218
2219 /* Line 1455 of yacc.c  */
2220 #line 183 "xi-grammar.y"
2221     { (yyval.strval) = (yyvsp[(1) - (1)].strval); }
2222     break;
2223
2224   case 11:
2225
2226 /* Line 1455 of yacc.c  */
2227 #line 185 "xi-grammar.y"
2228     {
2229                   char *tmp = new char[strlen((yyvsp[(1) - (4)].strval))+strlen((yyvsp[(4) - (4)].strval))+3];
2230                   sprintf(tmp,"%s::%s", (yyvsp[(1) - (4)].strval), (yyvsp[(4) - (4)].strval));
2231                   (yyval.strval) = tmp;
2232                 }
2233     break;
2234
2235   case 12:
2236
2237 /* Line 1455 of yacc.c  */
2238 #line 193 "xi-grammar.y"
2239     { 
2240                     (yyval.module) = new Module(lineno, (yyvsp[(2) - (3)].strval), (yyvsp[(3) - (3)].conslist)); 
2241                 }
2242     break;
2243
2244   case 13:
2245
2246 /* Line 1455 of yacc.c  */
2247 #line 197 "xi-grammar.y"
2248     {  
2249                     (yyval.module) = new Module(lineno, (yyvsp[(2) - (3)].strval), (yyvsp[(3) - (3)].conslist)); 
2250                     (yyval.module)->setMain();
2251                 }
2252     break;
2253
2254   case 14:
2255
2256 /* Line 1455 of yacc.c  */
2257 #line 204 "xi-grammar.y"
2258     { (yyval.conslist) = 0; }
2259     break;
2260
2261   case 15:
2262
2263 /* Line 1455 of yacc.c  */
2264 #line 206 "xi-grammar.y"
2265     { (yyval.conslist) = (yyvsp[(2) - (4)].conslist); }
2266     break;
2267
2268   case 16:
2269
2270 /* Line 1455 of yacc.c  */
2271 #line 210 "xi-grammar.y"
2272     { (yyval.conslist) = 0; }
2273     break;
2274
2275   case 17:
2276
2277 /* Line 1455 of yacc.c  */
2278 #line 212 "xi-grammar.y"
2279     { (yyval.conslist) = new ConstructList(lineno, (yyvsp[(1) - (2)].construct), (yyvsp[(2) - (2)].conslist)); }
2280     break;
2281
2282   case 18:
2283
2284 /* Line 1455 of yacc.c  */
2285 #line 216 "xi-grammar.y"
2286     { (yyval.construct) = new UsingScope((yyvsp[(3) - (3)].strval), false); }
2287     break;
2288
2289   case 19:
2290
2291 /* Line 1455 of yacc.c  */
2292 #line 218 "xi-grammar.y"
2293     { (yyval.construct) = new UsingScope((yyvsp[(2) - (2)].strval), true); }
2294     break;
2295
2296   case 20:
2297
2298 /* Line 1455 of yacc.c  */
2299 #line 220 "xi-grammar.y"
2300     { (yyvsp[(2) - (2)].member)->setExtern((yyvsp[(1) - (2)].intval)); (yyval.construct) = (yyvsp[(2) - (2)].member); }
2301     break;
2302
2303   case 21:
2304
2305 /* Line 1455 of yacc.c  */
2306 #line 222 "xi-grammar.y"
2307     { (yyvsp[(2) - (2)].message)->setExtern((yyvsp[(1) - (2)].intval)); (yyval.construct) = (yyvsp[(2) - (2)].message); }
2308     break;
2309
2310   case 22:
2311
2312 /* Line 1455 of yacc.c  */
2313 #line 224 "xi-grammar.y"
2314     {
2315                   Entry *e = new Entry(lineno, 0, (yyvsp[(3) - (7)].type), (yyvsp[(5) - (7)].strval), (yyvsp[(7) - (7)].plist), 0, 0, 0, 0, 0);
2316                   int isExtern = 1;
2317                   e->setExtern(isExtern);
2318                   e->targs = (yyvsp[(6) - (7)].tparlist);
2319                   e->label = new XStr;
2320                   (yyvsp[(4) - (7)].ntype)->print(*e->label);
2321                   (yyval.construct) = e;
2322                 }
2323     break;
2324
2325   case 23:
2326
2327 /* Line 1455 of yacc.c  */
2328 #line 236 "xi-grammar.y"
2329     { if((yyvsp[(3) - (5)].conslist)) (yyvsp[(3) - (5)].conslist)->setExtern((yyvsp[(1) - (5)].intval)); (yyval.construct) = (yyvsp[(3) - (5)].conslist); }
2330     break;
2331
2332   case 24:
2333
2334 /* Line 1455 of yacc.c  */
2335 #line 238 "xi-grammar.y"
2336     { (yyval.construct) = new Scope((yyvsp[(2) - (5)].strval), (yyvsp[(4) - (5)].conslist)); }
2337     break;
2338
2339   case 25:
2340
2341 /* Line 1455 of yacc.c  */
2342 #line 240 "xi-grammar.y"
2343     { (yyval.construct) = (yyvsp[(1) - (2)].construct); }
2344     break;
2345
2346   case 26:
2347
2348 /* Line 1455 of yacc.c  */
2349 #line 242 "xi-grammar.y"
2350     { yyerror("The preceding construct must be semicolon terminated"); YYABORT; }
2351     break;
2352
2353   case 27:
2354
2355 /* Line 1455 of yacc.c  */
2356 #line 244 "xi-grammar.y"
2357     { (yyvsp[(2) - (2)].module)->setExtern((yyvsp[(1) - (2)].intval)); (yyval.construct) = (yyvsp[(2) - (2)].module); }
2358     break;
2359
2360   case 28:
2361
2362 /* Line 1455 of yacc.c  */
2363 #line 246 "xi-grammar.y"
2364     { (yyvsp[(2) - (2)].chare)->setExtern((yyvsp[(1) - (2)].intval)); (yyval.construct) = (yyvsp[(2) - (2)].chare); }
2365     break;
2366
2367   case 29:
2368
2369 /* Line 1455 of yacc.c  */
2370 #line 248 "xi-grammar.y"
2371     { (yyvsp[(2) - (2)].chare)->setExtern((yyvsp[(1) - (2)].intval)); (yyval.construct) = (yyvsp[(2) - (2)].chare); }
2372     break;
2373
2374   case 30:
2375
2376 /* Line 1455 of yacc.c  */
2377 #line 250 "xi-grammar.y"
2378     { (yyvsp[(2) - (2)].chare)->setExtern((yyvsp[(1) - (2)].intval)); (yyval.construct) = (yyvsp[(2) - (2)].chare); }
2379     break;
2380
2381   case 31:
2382
2383 /* Line 1455 of yacc.c  */
2384 #line 252 "xi-grammar.y"
2385     { (yyvsp[(2) - (2)].chare)->setExtern((yyvsp[(1) - (2)].intval)); (yyval.construct) = (yyvsp[(2) - (2)].chare); }
2386     break;
2387
2388   case 32:
2389
2390 /* Line 1455 of yacc.c  */
2391 #line 254 "xi-grammar.y"
2392     { (yyvsp[(2) - (2)].templat)->setExtern((yyvsp[(1) - (2)].intval)); (yyval.construct) = (yyvsp[(2) - (2)].templat); }
2393     break;
2394
2395   case 33:
2396
2397 /* Line 1455 of yacc.c  */
2398 #line 256 "xi-grammar.y"
2399     { (yyval.construct) = NULL; }
2400     break;
2401
2402   case 34:
2403
2404 /* Line 1455 of yacc.c  */
2405 #line 258 "xi-grammar.y"
2406     { (yyval.construct) = NULL; }
2407     break;
2408
2409   case 35:
2410
2411 /* Line 1455 of yacc.c  */
2412 #line 260 "xi-grammar.y"
2413     { (yyval.construct) = (yyvsp[(1) - (1)].accelBlock); }
2414     break;
2415
2416   case 36:
2417
2418 /* Line 1455 of yacc.c  */
2419 #line 262 "xi-grammar.y"
2420     { printf("Invalid construct\n"); YYABORT; }
2421     break;
2422
2423   case 37:
2424
2425 /* Line 1455 of yacc.c  */
2426 #line 266 "xi-grammar.y"
2427     { (yyval.tparam) = new TParamType((yyvsp[(1) - (1)].type)); }
2428     break;
2429
2430   case 38:
2431
2432 /* Line 1455 of yacc.c  */
2433 #line 268 "xi-grammar.y"
2434     { (yyval.tparam) = new TParamVal((yyvsp[(1) - (1)].strval)); }
2435     break;
2436
2437   case 39:
2438
2439 /* Line 1455 of yacc.c  */
2440 #line 270 "xi-grammar.y"
2441     { (yyval.tparam) = new TParamVal((yyvsp[(1) - (1)].strval)); }
2442     break;
2443
2444   case 40:
2445
2446 /* Line 1455 of yacc.c  */
2447 #line 274 "xi-grammar.y"
2448     { (yyval.tparlist) = new TParamList((yyvsp[(1) - (1)].tparam)); }
2449     break;
2450
2451   case 41:
2452
2453 /* Line 1455 of yacc.c  */
2454 #line 276 "xi-grammar.y"
2455     { (yyval.tparlist) = new TParamList((yyvsp[(1) - (3)].tparam), (yyvsp[(3) - (3)].tparlist)); }
2456     break;
2457
2458   case 42:
2459
2460 /* Line 1455 of yacc.c  */
2461 #line 280 "xi-grammar.y"
2462     { (yyval.tparlist) = 0; }
2463     break;
2464
2465   case 43:
2466
2467 /* Line 1455 of yacc.c  */
2468 #line 282 "xi-grammar.y"
2469     { (yyval.tparlist) = (yyvsp[(1) - (1)].tparlist); }
2470     break;
2471
2472   case 44:
2473
2474 /* Line 1455 of yacc.c  */
2475 #line 286 "xi-grammar.y"
2476     { (yyval.tparlist) = 0; }
2477     break;
2478
2479   case 45:
2480
2481 /* Line 1455 of yacc.c  */
2482 #line 288 "xi-grammar.y"
2483     { (yyval.tparlist) = (yyvsp[(2) - (3)].tparlist); }
2484     break;
2485
2486   case 46:
2487
2488 /* Line 1455 of yacc.c  */
2489 #line 292 "xi-grammar.y"
2490     { (yyval.type) = new BuiltinType("int"); }
2491     break;
2492
2493   case 47:
2494
2495 /* Line 1455 of yacc.c  */
2496 #line 294 "xi-grammar.y"
2497     { (yyval.type) = new BuiltinType("long"); }
2498     break;
2499
2500   case 48:
2501
2502 /* Line 1455 of yacc.c  */
2503 #line 296 "xi-grammar.y"
2504     { (yyval.type) = new BuiltinType("short"); }
2505     break;
2506
2507   case 49:
2508
2509 /* Line 1455 of yacc.c  */
2510 #line 298 "xi-grammar.y"
2511     { (yyval.type) = new BuiltinType("char"); }
2512     break;
2513
2514   case 50:
2515
2516 /* Line 1455 of yacc.c  */
2517 #line 300 "xi-grammar.y"
2518     { (yyval.type) = new BuiltinType("unsigned int"); }
2519     break;
2520
2521   case 51:
2522
2523 /* Line 1455 of yacc.c  */
2524 #line 302 "xi-grammar.y"
2525     { (yyval.type) = new BuiltinType("unsigned long"); }
2526     break;
2527
2528   case 52:
2529
2530 /* Line 1455 of yacc.c  */
2531 #line 304 "xi-grammar.y"
2532     { (yyval.type) = new BuiltinType("unsigned long"); }
2533     break;
2534
2535   case 53:
2536
2537 /* Line 1455 of yacc.c  */
2538 #line 306 "xi-grammar.y"
2539     { (yyval.type) = new BuiltinType("unsigned long long"); }
2540     break;
2541
2542   case 54:
2543
2544 /* Line 1455 of yacc.c  */
2545 #line 308 "xi-grammar.y"
2546     { (yyval.type) = new BuiltinType("unsigned short"); }
2547     break;
2548
2549   case 55:
2550
2551 /* Line 1455 of yacc.c  */
2552 #line 310 "xi-grammar.y"
2553     { (yyval.type) = new BuiltinType("unsigned char"); }
2554     break;
2555
2556   case 56:
2557
2558 /* Line 1455 of yacc.c  */
2559 #line 312 "xi-grammar.y"
2560     { (yyval.type) = new BuiltinType("long long"); }
2561     break;
2562
2563   case 57:
2564
2565 /* Line 1455 of yacc.c  */
2566 #line 314 "xi-grammar.y"
2567     { (yyval.type) = new BuiltinType("float"); }
2568     break;
2569
2570   case 58:
2571
2572 /* Line 1455 of yacc.c  */
2573 #line 316 "xi-grammar.y"
2574     { (yyval.type) = new BuiltinType("double"); }
2575     break;
2576
2577   case 59:
2578
2579 /* Line 1455 of yacc.c  */
2580 #line 318 "xi-grammar.y"
2581     { (yyval.type) = new BuiltinType("long double"); }
2582     break;
2583
2584   case 60:
2585
2586 /* Line 1455 of yacc.c  */
2587 #line 320 "xi-grammar.y"
2588     { (yyval.type) = new BuiltinType("void"); }
2589     break;
2590
2591   case 61:
2592
2593 /* Line 1455 of yacc.c  */
2594 #line 323 "xi-grammar.y"
2595     { (yyval.ntype) = new NamedType((yyvsp[(1) - (2)].strval),(yyvsp[(2) - (2)].tparlist)); }
2596     break;
2597
2598   case 62:
2599
2600 /* Line 1455 of yacc.c  */
2601 #line 324 "xi-grammar.y"
2602     { 
2603                     const char* basename, *scope;
2604                     splitScopedName((yyvsp[(1) - (2)].strval), &scope, &basename);
2605                     (yyval.ntype) = new NamedType(basename, (yyvsp[(2) - (2)].tparlist), scope);
2606                 }
2607     break;
2608
2609   case 63:
2610
2611 /* Line 1455 of yacc.c  */
2612 #line 332 "xi-grammar.y"
2613     { (yyval.type) = (yyvsp[(1) - (1)].type); }
2614     break;
2615
2616   case 64:
2617
2618 /* Line 1455 of yacc.c  */
2619 #line 334 "xi-grammar.y"
2620     { (yyval.type) = (yyvsp[(1) - (1)].ntype); }
2621     break;
2622
2623   case 65:
2624
2625 /* Line 1455 of yacc.c  */
2626 #line 338 "xi-grammar.y"
2627     { (yyval.ptype) = new PtrType((yyvsp[(1) - (2)].type)); }
2628     break;
2629
2630   case 66:
2631
2632 /* Line 1455 of yacc.c  */
2633 #line 342 "xi-grammar.y"
2634     { (yyvsp[(1) - (2)].ptype)->indirect(); (yyval.ptype) = (yyvsp[(1) - (2)].ptype); }
2635     break;
2636
2637   case 67:
2638
2639 /* Line 1455 of yacc.c  */
2640 #line 344 "xi-grammar.y"
2641     { (yyvsp[(1) - (2)].ptype)->indirect(); (yyval.ptype) = (yyvsp[(1) - (2)].ptype); }
2642     break;
2643
2644   case 68:
2645
2646 /* Line 1455 of yacc.c  */
2647 #line 348 "xi-grammar.y"
2648     { (yyval.ftype) = new FuncType((yyvsp[(1) - (8)].type), (yyvsp[(4) - (8)].strval), (yyvsp[(7) - (8)].plist)); }
2649     break;
2650
2651   case 69:
2652
2653 /* Line 1455 of yacc.c  */
2654 #line 352 "xi-grammar.y"
2655     { (yyval.type) = (yyvsp[(1) - (1)].type); }
2656     break;
2657
2658   case 70:
2659
2660 /* Line 1455 of yacc.c  */
2661 #line 354 "xi-grammar.y"
2662     { (yyval.type) = (yyvsp[(1) - (1)].ptype); }
2663     break;
2664
2665   case 71:
2666
2667 /* Line 1455 of yacc.c  */
2668 #line 356 "xi-grammar.y"
2669     { (yyval.type) = (yyvsp[(1) - (1)].ptype); }
2670     break;
2671
2672   case 72:
2673
2674 /* Line 1455 of yacc.c  */
2675 #line 358 "xi-grammar.y"
2676     { (yyval.type) = (yyvsp[(1) - (1)].ftype); }
2677     break;
2678
2679   case 73:
2680
2681 /* Line 1455 of yacc.c  */
2682 #line 361 "xi-grammar.y"
2683     { (yyval.type) = (yyvsp[(2) - (2)].type); }
2684     break;
2685
2686   case 74:
2687
2688 /* Line 1455 of yacc.c  */
2689 #line 363 "xi-grammar.y"
2690     { (yyval.type) = (yyvsp[(1) - (2)].type); }
2691     break;
2692
2693   case 75:
2694
2695 /* Line 1455 of yacc.c  */
2696 #line 367 "xi-grammar.y"
2697     { (yyval.type) = new ReferenceType((yyvsp[(1) - (2)].type)); }
2698     break;
2699
2700   case 76:
2701
2702 /* Line 1455 of yacc.c  */
2703 #line 369 "xi-grammar.y"
2704     { (yyval.type) = (yyvsp[(1) - (1)].type); }
2705     break;
2706
2707   case 77:
2708
2709 /* Line 1455 of yacc.c  */
2710 #line 373 "xi-grammar.y"
2711     { (yyval.val) = new Value((yyvsp[(1) - (1)].strval)); }
2712     break;
2713
2714   case 78:
2715
2716 /* Line 1455 of yacc.c  */
2717 #line 375 "xi-grammar.y"
2718     { (yyval.val) = new Value((yyvsp[(1) - (1)].strval)); }
2719     break;
2720
2721   case 79:
2722
2723 /* Line 1455 of yacc.c  */
2724 #line 379 "xi-grammar.y"
2725     { (yyval.val) = (yyvsp[(2) - (3)].val); }
2726     break;
2727
2728   case 80:
2729
2730 /* Line 1455 of yacc.c  */
2731 #line 383 "xi-grammar.y"
2732     { (yyval.vallist) = 0; }
2733     break;
2734
2735   case 81:
2736
2737 /* Line 1455 of yacc.c  */
2738 #line 385 "xi-grammar.y"
2739     { (yyval.vallist) = new ValueList((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].vallist)); }
2740     break;
2741
2742   case 82:
2743
2744 /* Line 1455 of yacc.c  */
2745 #line 389 "xi-grammar.y"
2746     { (yyval.readonly) = new Readonly(lineno, (yyvsp[(2) - (4)].type), (yyvsp[(3) - (4)].strval), (yyvsp[(4) - (4)].vallist)); }
2747     break;
2748
2749   case 83:
2750
2751 /* Line 1455 of yacc.c  */
2752 #line 393 "xi-grammar.y"
2753     { (yyval.readonly) = new Readonly(lineno, (yyvsp[(3) - (5)].type), (yyvsp[(5) - (5)].strval), 0, 1); }
2754     break;
2755
2756   case 84:
2757
2758 /* Line 1455 of yacc.c  */
2759 #line 397 "xi-grammar.y"
2760     { (yyval.intval) = 0;}
2761     break;
2762
2763   case 85:
2764
2765 /* Line 1455 of yacc.c  */
2766 #line 399 "xi-grammar.y"
2767     { (yyval.intval) = 0;}
2768     break;
2769
2770   case 86:
2771
2772 /* Line 1455 of yacc.c  */
2773 #line 403 "xi-grammar.y"
2774     { (yyval.intval) = 0; }
2775     break;
2776
2777   case 87:
2778
2779 /* Line 1455 of yacc.c  */
2780 #line 405 "xi-grammar.y"
2781     { 
2782                   /*
2783                   printf("Warning: Message attributes are being phased out.\n");
2784                   printf("Warning: Please remove them from interface files.\n");
2785                   */
2786                   (yyval.intval) = (yyvsp[(2) - (3)].intval); 
2787                 }
2788     break;
2789
2790   case 88:
2791
2792 /* Line 1455 of yacc.c  */
2793 #line 415 "xi-grammar.y"
2794     { (yyval.intval) = (yyvsp[(1) - (1)].intval); }
2795     break;
2796
2797   case 89:
2798
2799 /* Line 1455 of yacc.c  */
2800 #line 417 "xi-grammar.y"
2801     { (yyval.intval) = (yyvsp[(1) - (3)].intval) | (yyvsp[(3) - (3)].intval); }
2802     break;
2803
2804   case 90:
2805
2806 /* Line 1455 of yacc.c  */
2807 #line 421 "xi-grammar.y"
2808     { (yyval.intval) = 0; }
2809     break;
2810
2811   case 91:
2812
2813 /* Line 1455 of yacc.c  */
2814 #line 423 "xi-grammar.y"
2815     { (yyval.intval) = 0; }
2816     break;
2817
2818   case 92:
2819
2820 /* Line 1455 of yacc.c  */
2821 #line 427 "xi-grammar.y"
2822     { (yyval.cattr) = 0; }
2823     break;
2824
2825   case 93:
2826
2827 /* Line 1455 of yacc.c  */
2828 #line 429 "xi-grammar.y"
2829     { (yyval.cattr) = (yyvsp[(2) - (3)].cattr); }
2830     break;
2831
2832   case 94:
2833
2834 /* Line 1455 of yacc.c  */
2835 #line 433 "xi-grammar.y"
2836     { (yyval.cattr) = (yyvsp[(1) - (1)].cattr); }
2837     break;
2838
2839   case 95:
2840
2841 /* Line 1455 of yacc.c  */
2842 #line 435 "xi-grammar.y"
2843     { (yyval.cattr) = (yyvsp[(1) - (3)].cattr) | (yyvsp[(3) - (3)].cattr); }
2844     break;
2845
2846   case 96:
2847
2848 /* Line 1455 of yacc.c  */
2849 #line 439 "xi-grammar.y"
2850     { python_doc = NULL; (yyval.intval) = 0; }
2851     break;
2852
2853   case 97:
2854
2855 /* Line 1455 of yacc.c  */
2856 #line 441 "xi-grammar.y"
2857     { python_doc = (yyvsp[(1) - (1)].strval); (yyval.intval) = 0; }
2858     break;
2859
2860   case 98:
2861
2862 /* Line 1455 of yacc.c  */
2863 #line 445 "xi-grammar.y"
2864     { (yyval.cattr) = Chare::CPYTHON; }
2865     break;
2866
2867   case 99:
2868
2869 /* Line 1455 of yacc.c  */
2870 #line 449 "xi-grammar.y"
2871     { (yyval.cattr) = 0; }
2872     break;
2873
2874   case 100:
2875
2876 /* Line 1455 of yacc.c  */
2877 #line 451 "xi-grammar.y"
2878     { (yyval.cattr) = (yyvsp[(2) - (3)].cattr); }
2879     break;
2880
2881   case 101:
2882
2883 /* Line 1455 of yacc.c  */
2884 #line 455 "xi-grammar.y"
2885     { (yyval.cattr) = (yyvsp[(1) - (1)].cattr); }
2886     break;
2887
2888   case 102:
2889
2890 /* Line 1455 of yacc.c  */
2891 #line 457 "xi-grammar.y"
2892     { (yyval.cattr) = (yyvsp[(1) - (3)].cattr) | (yyvsp[(3) - (3)].cattr); }
2893     break;
2894
2895   case 103:
2896
2897 /* Line 1455 of yacc.c  */
2898 #line 461 "xi-grammar.y"
2899     { (yyval.cattr) = Chare::CMIGRATABLE; }
2900     break;
2901
2902   case 104:
2903
2904 /* Line 1455 of yacc.c  */
2905 #line 463 "xi-grammar.y"
2906     { (yyval.cattr) = Chare::CPYTHON; }
2907     break;
2908
2909   case 105:
2910
2911 /* Line 1455 of yacc.c  */
2912 #line 467 "xi-grammar.y"
2913     { (yyval.intval) = 0; }
2914     break;
2915
2916   case 106:
2917
2918 /* Line 1455 of yacc.c  */
2919 #line 469 "xi-grammar.y"
2920     { (yyval.intval) = 1; }
2921     break;
2922
2923   case 107:
2924
2925 /* Line 1455 of yacc.c  */
2926 #line 472 "xi-grammar.y"
2927     { (yyval.intval) = 0; }
2928     break;
2929
2930   case 108:
2931
2932 /* Line 1455 of yacc.c  */
2933 #line 474 "xi-grammar.y"
2934     { (yyval.intval) = 1; }
2935     break;
2936
2937   case 109:
2938
2939 /* Line 1455 of yacc.c  */
2940 #line 477 "xi-grammar.y"
2941     { (yyval.mv) = new MsgVar((yyvsp[(2) - (5)].type), (yyvsp[(3) - (5)].strval), (yyvsp[(1) - (5)].intval), (yyvsp[(4) - (5)].intval)); }
2942     break;
2943
2944   case 110:
2945
2946 /* Line 1455 of yacc.c  */
2947 #line 481 "xi-grammar.y"
2948     { (yyval.mvlist) = new MsgVarList((yyvsp[(1) - (1)].mv)); }
2949     break;
2950
2951   case 111:
2952
2953 /* Line 1455 of yacc.c  */
2954 #line 483 "xi-grammar.y"
2955     { (yyval.mvlist) = new MsgVarList((yyvsp[(1) - (2)].mv), (yyvsp[(2) - (2)].mvlist)); }
2956     break;
2957
2958   case 112:
2959
2960 /* Line 1455 of yacc.c  */
2961 #line 487 "xi-grammar.y"
2962     { (yyval.message) = new Message(lineno, (yyvsp[(3) - (3)].ntype)); }
2963     break;
2964
2965   case 113:
2966
2967 /* Line 1455 of yacc.c  */
2968 #line 489 "xi-grammar.y"
2969     { (yyval.message) = new Message(lineno, (yyvsp[(3) - (6)].ntype), (yyvsp[(5) - (6)].mvlist)); }
2970     break;
2971
2972   case 114:
2973
2974 /* Line 1455 of yacc.c  */
2975 #line 493 "xi-grammar.y"
2976     { (yyval.typelist) = 0; }
2977     break;
2978
2979   case 115:
2980
2981 /* Line 1455 of yacc.c  */
2982 #line 495 "xi-grammar.y"
2983     { (yyval.typelist) = (yyvsp[(2) - (2)].typelist); }
2984     break;
2985
2986   case 116:
2987
2988 /* Line 1455 of yacc.c  */
2989 #line 499 "xi-grammar.y"
2990     { (yyval.typelist) = new TypeList((yyvsp[(1) - (1)].ntype)); }
2991     break;
2992
2993   case 117:
2994
2995 /* Line 1455 of yacc.c  */
2996 #line 501 "xi-grammar.y"
2997     { (yyval.typelist) = new TypeList((yyvsp[(1) - (3)].ntype), (yyvsp[(3) - (3)].typelist)); }
2998     break;
2999
3000   case 118:
3001
3002 /* Line 1455 of yacc.c  */
3003 #line 505 "xi-grammar.y"
3004     { (yyval.chare) = new Chare(lineno, (yyvsp[(2) - (5)].cattr)|Chare::CCHARE, (yyvsp[(3) - (5)].ntype), (yyvsp[(4) - (5)].typelist), (yyvsp[(5) - (5)].mbrlist)); }
3005     break;
3006
3007   case 119:
3008
3009 /* Line 1455 of yacc.c  */
3010 #line 507 "xi-grammar.y"
3011     { (yyval.chare) = new MainChare(lineno, (yyvsp[(2) - (5)].cattr), (yyvsp[(3) - (5)].ntype), (yyvsp[(4) - (5)].typelist), (yyvsp[(5) - (5)].mbrlist)); }
3012     break;
3013
3014   case 120:
3015
3016 /* Line 1455 of yacc.c  */
3017 #line 511 "xi-grammar.y"
3018     { (yyval.chare) = new Group(lineno, (yyvsp[(2) - (5)].cattr), (yyvsp[(3) - (5)].ntype), (yyvsp[(4) - (5)].typelist), (yyvsp[(5) - (5)].mbrlist)); }
3019     break;
3020
3021   case 121:
3022
3023 /* Line 1455 of yacc.c  */
3024 #line 515 "xi-grammar.y"
3025     { (yyval.chare) = new NodeGroup(lineno, (yyvsp[(2) - (5)].cattr), (yyvsp[(3) - (5)].ntype), (yyvsp[(4) - (5)].typelist), (yyvsp[(5) - (5)].mbrlist)); }
3026     break;
3027
3028   case 122:
3029
3030 /* Line 1455 of yacc.c  */
3031 #line 519 "xi-grammar.y"
3032     {/*Stupid special case for [1D] indices*/
3033                         char *buf=new char[40];
3034                         sprintf(buf,"%sD",(yyvsp[(2) - (4)].strval));
3035                         (yyval.ntype) = new NamedType(buf); 
3036                 }
3037     break;
3038
3039   case 123:
3040
3041 /* Line 1455 of yacc.c  */
3042 #line 525 "xi-grammar.y"
3043     { (yyval.ntype) = new NamedType((yyvsp[(2) - (3)].strval)); }
3044     break;
3045
3046   case 124:
3047
3048 /* Line 1455 of yacc.c  */
3049 #line 529 "xi-grammar.y"
3050     {  (yyval.chare) = new Array(lineno, (yyvsp[(2) - (6)].cattr), (yyvsp[(3) - (6)].ntype), (yyvsp[(4) - (6)].ntype), (yyvsp[(5) - (6)].typelist), (yyvsp[(6) - (6)].mbrlist)); }
3051     break;
3052
3053   case 125:
3054
3055 /* Line 1455 of yacc.c  */
3056 #line 531 "xi-grammar.y"
3057     {  (yyval.chare) = new Array(lineno, (yyvsp[(3) - (6)].cattr), (yyvsp[(2) - (6)].ntype), (yyvsp[(4) - (6)].ntype), (yyvsp[(5) - (6)].typelist), (yyvsp[(6) - (6)].mbrlist)); }
3058     break;
3059
3060   case 126:
3061
3062 /* Line 1455 of yacc.c  */
3063 #line 535 "xi-grammar.y"
3064     { (yyval.chare) = new Chare(lineno, (yyvsp[(2) - (5)].cattr)|Chare::CCHARE, new NamedType((yyvsp[(3) - (5)].strval)), (yyvsp[(4) - (5)].typelist), (yyvsp[(5) - (5)].mbrlist));}
3065     break;
3066
3067   case 127:
3068
3069 /* Line 1455 of yacc.c  */
3070 #line 537 "xi-grammar.y"
3071     { (yyval.chare) = new MainChare(lineno, (yyvsp[(2) - (5)].cattr), new NamedType((yyvsp[(3) - (5)].strval)), (yyvsp[(4) - (5)].typelist), (yyvsp[(5) - (5)].mbrlist)); }
3072     break;
3073
3074   case 128:
3075
3076 /* Line 1455 of yacc.c  */
3077 #line 541 "xi-grammar.y"
3078     { (yyval.chare) = new Group(lineno, (yyvsp[(2) - (5)].cattr), new NamedType((yyvsp[(3) - (5)].strval)), (yyvsp[(4) - (5)].typelist), (yyvsp[(5) - (5)].mbrlist)); }
3079     break;
3080
3081   case 129:
3082
3083 /* Line 1455 of yacc.c  */
3084 #line 545 "xi-grammar.y"
3085     { (yyval.chare) = new NodeGroup( lineno, (yyvsp[(2) - (5)].cattr), new NamedType((yyvsp[(3) - (5)].strval)), (yyvsp[(4) - (5)].typelist), (yyvsp[(5) - (5)].mbrlist)); }
3086     break;
3087
3088   case 130:
3089
3090 /* Line 1455 of yacc.c  */
3091 #line 549 "xi-grammar.y"
3092     { (yyval.chare) = new Array( lineno, 0, (yyvsp[(2) - (5)].ntype), new NamedType((yyvsp[(3) - (5)].strval)), (yyvsp[(4) - (5)].typelist), (yyvsp[(5) - (5)].mbrlist)); }
3093     break;
3094
3095   case 131:
3096
3097 /* Line 1455 of yacc.c  */
3098 #line 553 "xi-grammar.y"
3099     { (yyval.message) = new Message(lineno, new NamedType((yyvsp[(3) - (4)].strval))); }
3100     break;
3101
3102   case 132:
3103
3104 /* Line 1455 of yacc.c  */
3105 #line 555 "xi-grammar.y"
3106     { (yyval.message) = new Message(lineno, new NamedType((yyvsp[(3) - (7)].strval)), (yyvsp[(5) - (7)].mvlist)); }
3107     break;
3108
3109   case 133:
3110
3111 /* Line 1455 of yacc.c  */
3112 #line 559 "xi-grammar.y"
3113     { (yyval.type) = 0; }
3114     break;
3115
3116   case 134:
3117
3118 /* Line 1455 of yacc.c  */
3119 #line 561 "xi-grammar.y"
3120     { (yyval.type) = (yyvsp[(2) - (2)].type); }
3121     break;
3122
3123   case 135:
3124
3125 /* Line 1455 of yacc.c  */
3126 #line 565 "xi-grammar.y"
3127     { (yyval.strval) = 0; }
3128     break;
3129
3130   case 136:
3131
3132 /* Line 1455 of yacc.c  */
3133 #line 567 "xi-grammar.y"
3134     { (yyval.strval) = (yyvsp[(2) - (2)].strval); }
3135     break;
3136
3137   case 137:
3138
3139 /* Line 1455 of yacc.c  */
3140 #line 569 "xi-grammar.y"
3141     { (yyval.strval) = (yyvsp[(2) - (2)].strval); }
3142     break;
3143
3144   case 138:
3145
3146 /* Line 1455 of yacc.c  */
3147 #line 573 "xi-grammar.y"
3148     { (yyval.tvar) = new TType(new NamedType((yyvsp[(2) - (3)].strval)), (yyvsp[(3) - (3)].type)); }
3149     break;
3150
3151   case 139:
3152
3153 /* Line 1455 of yacc.c  */
3154 #line 575 "xi-grammar.y"
3155     { (yyval.tvar) = new TFunc((yyvsp[(1) - (2)].ftype), (yyvsp[(2) - (2)].strval)); }
3156     break;
3157
3158   case 140:
3159
3160 /* Line 1455 of yacc.c  */
3161 #line 577 "xi-grammar.y"
3162     { (yyval.tvar) = new TName((yyvsp[(1) - (3)].type), (yyvsp[(2) - (3)].strval), (yyvsp[(3) - (3)].strval)); }
3163     break;
3164
3165   case 141:
3166
3167 /* Line 1455 of yacc.c  */
3168 #line 581 "xi-grammar.y"
3169     { (yyval.tvarlist) = new TVarList((yyvsp[(1) - (1)].tvar)); }
3170     break;
3171
3172   case 142:
3173
3174 /* Line 1455 of yacc.c  */
3175 #line 583 "xi-grammar.y"
3176     { (yyval.tvarlist) = new TVarList((yyvsp[(1) - (3)].tvar), (yyvsp[(3) - (3)].tvarlist)); }
3177     break;
3178
3179   case 143:
3180
3181 /* Line 1455 of yacc.c  */
3182 #line 587 "xi-grammar.y"
3183     { (yyval.tvarlist) = (yyvsp[(3) - (4)].tvarlist); }
3184     break;
3185
3186   case 144:
3187
3188 /* Line 1455 of yacc.c  */
3189 #line 591 "xi-grammar.y"
3190     { (yyval.templat) = new Template((yyvsp[(1) - (2)].tvarlist), (yyvsp[(2) - (2)].chare)); (yyvsp[(2) - (2)].chare)->setTemplate((yyval.templat)); }
3191     break;
3192
3193   case 145:
3194
3195 /* Line 1455 of yacc.c  */
3196 #line 593 "xi-grammar.y"
3197     { (yyval.templat) = new Template((yyvsp[(1) - (2)].tvarlist), (yyvsp[(2) - (2)].chare)); (yyvsp[(2) - (2)].chare)->setTemplate((yyval.templat)); }
3198     break;
3199
3200   case 146:
3201
3202 /* Line 1455 of yacc.c  */
3203 #line 595 "xi-grammar.y"
3204     { (yyval.templat) = new Template((yyvsp[(1) - (2)].tvarlist), (yyvsp[(2) - (2)].chare)); (yyvsp[(2) - (2)].chare)->setTemplate((yyval.templat)); }
3205     break;
3206
3207   case 147:
3208
3209 /* Line 1455 of yacc.c  */
3210 #line 597 "xi-grammar.y"
3211     { (yyval.templat) = new Template((yyvsp[(1) - (2)].tvarlist), (yyvsp[(2) - (2)].chare)); (yyvsp[(2) - (2)].chare)->setTemplate((yyval.templat)); }
3212     break;
3213
3214   case 148:
3215
3216 /* Line 1455 of yacc.c  */
3217 #line 599 "xi-grammar.y"
3218     { (yyval.templat) = new Template((yyvsp[(1) - (2)].tvarlist), (yyvsp[(2) - (2)].message)); (yyvsp[(2) - (2)].message)->setTemplate((yyval.templat)); }
3219     break;
3220
3221   case 149:
3222
3223 /* Line 1455 of yacc.c  */
3224 #line 603 "xi-grammar.y"
3225     { (yyval.mbrlist) = 0; }
3226     break;
3227
3228   case 150:
3229
3230 /* Line 1455 of yacc.c  */
3231 #line 605 "xi-grammar.y"