1    | /* A Bison parser, made by GNU Bison 1.875a.  */
2    | 
3    | /* Skeleton parser for Yacc-like parsing with Bison,
4    |    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
5    | 
6    |    This program is free software; you can redistribute it and/or modify
7    |    it under the terms of the GNU General Public License as published by
8    |    the Free Software Foundation; either version 2, or (at your option)
9    |    any later version.
10   | 
11   |    This program is distributed in the hope that it will be useful,
12   |    but WITHOUT ANY WARRANTY; without even the implied warranty of
13   |    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   |    GNU General Public License for more details.
15   | 
16   |    You should have received a copy of the GNU General Public License
17   |    along with this program; if not, write to the Free Software
18   |    Foundation, Inc., 59 Temple Place - Suite 330,
19   |    Boston, MA 02111-1307, USA.  */
20   | 
21   | /* As a special exception, when this file is copied by Bison into a
22   |    Bison output file, you may use that output file without restriction.
23   |    This special exception was added by the Free Software Foundation
24   |    in version 1.24 of Bison.  */
25   | 
26   | /* Written by Richard Stallman by simplifying the original so called
27   |    ``semantic'' parser.  */
28   | 
29   | /* All symbols defined below should begin with yy or YY, to avoid
30   |    infringing on user name space.  This should be done even for local
31   |    variables, as they might otherwise be expanded by user macros.
32   |    There are some unavoidable exceptions within include files to
33   |    define necessary library symbols; they are noted "INFRINGES ON
34   |    USER NAME SPACE" below.  */
35   | 
36   | /* Identify Bison output.  */
37   | #define YYBISON 1
38   | 
39   | /* Skeleton name.  */
40   | #define YYSKELETON_NAME "yacc.c"
41   | 
42   | /* Pure parsers.  */
43   | #define YYPURE 0
44   | 
45   | /* Using locations.  */
46   | #define YYLSP_NEEDED 0
47   | 
48   | 
49   | 
50   | /* Tokens.  */
51   | #ifndef YYTOKENTYPE
52   | # define YYTOKENTYPE
53   |    /* Put the tokens into the symbol table, so that GDB and other debuggers
54   |       know about them.  */
55   |    enum yytokentype {
56   |      IDENTIFIER = 258,
57   |      TYPE_NAME = 259,
58   |      LITERAL = 260,
59   |      STRING_LITERAL = 261,
60   |      ELLIPSES = 262,
61   |      MUL_ASSIGN = 263,
62   |      DIV_ASSIGN = 264,
63   |      MOD_ASSIGN = 265,
64   |      ADD_ASSIGN = 266,
65   |      SUB_ASSIGN = 267,
66   |      LEFT_ASSIGN = 268,
67   |      RIGHT_ASSIGN = 269,
68   |      AND_ASSIGN = 270,
69   |      XOR_ASSIGN = 271,
70   |      OR_ASSIGN = 272,
71   |      EQ_OP = 273,
72   |      NE_OP = 274,
73   |      PTR_OP = 275,
74   |      AND_OP = 276,
75   |      OR_OP = 277,
76   |      DEC_OP = 278,
77   |      INC_OP = 279,
78   |      LE_OP = 280,
79   |      GE_OP = 281,
80   |      LEFT_SHIFT = 282,
81   |      RIGHT_SHIFT = 283,
82   |      SIZEOF = 284,
83   |      TYPEDEF = 285,
84   |      EXTERN = 286,
85   |      STATIC = 287,
86   |      AUTO = 288,
87   |      REGISTER = 289,
88   |      CONST = 290,
89   |      VOLATILE = 291,
90   |      VOID = 292,
91   |      INLINE = 293,
92   |      CHAR = 294,
93   |      SHORT = 295,
94   |      INT = 296,
95   |      LONG = 297,
96   |      SIGNED = 298,
97   |      UNSIGNED = 299,
98   |      FLOAT = 300,
99   |      DOUBLE = 301,
100  |      BOOL = 302,
101  |      STRUCT = 303,
102  |      UNION = 304,
103  |      ENUM = 305,
104  |      CASE = 306,
105  |      DEFAULT = 307,
106  |      IF = 308,
107  |      ELSE = 309,
108  |      SWITCH = 310,
109  |      WHILE = 311,
110  |      DO = 312,
111  |      FOR = 313,
112  |      GOTO = 314,
113  |      CONTINUE = 315,
114  |      BREAK = 316,
115  |      RETURN = 317,
116  |      ASM = 318
117  |    };
118  | #endif
119  | #define IDENTIFIER 258
120  | #define TYPE_NAME 259
121  | #define LITERAL 260
122  | #define STRING_LITERAL 261
123  | #define ELLIPSES 262
124  | #define MUL_ASSIGN 263
125  | #define DIV_ASSIGN 264
126  | #define MOD_ASSIGN 265
127  | #define ADD_ASSIGN 266
128  | #define SUB_ASSIGN 267
129  | #define LEFT_ASSIGN 268
130  | #define RIGHT_ASSIGN 269
131  | #define AND_ASSIGN 270
132  | #define XOR_ASSIGN 271
133  | #define OR_ASSIGN 272
134  | #define EQ_OP 273
135  | #define NE_OP 274
136  | #define PTR_OP 275
137  | #define AND_OP 276
138  | #define OR_OP 277
139  | #define DEC_OP 278
140  | #define INC_OP 279
141  | #define LE_OP 280
142  | #define GE_OP 281
143  | #define LEFT_SHIFT 282
144  | #define RIGHT_SHIFT 283
145  | #define SIZEOF 284
146  | #define TYPEDEF 285
147  | #define EXTERN 286
148  | #define STATIC 287
149  | #define AUTO 288
150  | #define REGISTER 289
151  | #define CONST 290
152  | #define VOLATILE 291
153  | #define VOID 292
154  | #define INLINE 293
155  | #define CHAR 294
156  | #define SHORT 295
157  | #define INT 296
158  | #define LONG 297
159  | #define SIGNED 298
160  | #define UNSIGNED 299
161  | #define FLOAT 300
162  | #define DOUBLE 301
163  | #define BOOL 302
164  | #define STRUCT 303
165  | #define UNION 304
166  | #define ENUM 305
167  | #define CASE 306
168  | #define DEFAULT 307
169  | #define IF 308
170  | #define ELSE 309
171  | #define SWITCH 310
172  | #define WHILE 311
173  | #define DO 312
174  | #define FOR 313
175  | #define GOTO 314
176  | #define CONTINUE 315
177  | #define BREAK 316
178  | #define RETURN 317
179  | #define ASM 318
180  | 
181  | 
182  | 
183  | 
184  | /* Copy the first part of user declarations.  */
185  | #line 1 "./parse.y"
186  | 
187  | /***************************************
188  |   $Header: /home/amb/cxref/src/RCS/parse.y 1.49 2004/09/04 16:15:40 amb Exp $
189  | 
190  |   C Cross Referencing & Documentation tool. Version 1.6.
191  | 
192  |   C parser.
193  |   ******************/ /******************
194  |   Written by Andrew M. Bishop
195  | 
196  |   This file Copyright 1995,96,97,98,99,2000,01,02,03,04 Andrew M. Bishop
197  |   It may be distributed under the GNU Public License, version 2, or
198  |   any higher version.  See section COPYING of the GNU Public license
199  |   for conditions under which this file may be redistributed.
200  |   ***************************************/
201  | 
202  | #include <string.h>
203  | #include "parse-yy.h"
204  | #include "cxref.h"
205  | #include "memory.h"
206  | 
207  | /*+ A structure to hold the information about an object. +*/
208  | typedef struct _stack
209  | {
210  |  char *name;                    /*+ The name of the object. +*/
211  |  char *type;                    /*+ The type of the object. +*/
212  |  char *qual;                    /*+ The type qualifier of the object. +*/
213  | }
214  | stack;
215  | 
216  | #define yylex cxref_yylex
217  | 
218  | static int cxref_yylex(void);
219  | 
220  | static void yyerror(char *s);
221  | 
222  | /*+ When in a header file, some stuff can be skipped over quickly. +*/
223  | extern int in_header;
224  | 
225  | /*+ A flag that is set to true when typedef is seen in a statement. +*/
226  | int in_typedef=0;
227  | 
228  | /*+ The scope of the function / variable that is being examined. +*/
229  | static int scope;
230  | 
231  | /*+ The variable must be LOCAL or EXTERNAL or GLOBAL, so this checks and sets that. +*/
232  | #define SCOPE ( scope&(LOCAL|EXTERNAL|EXTERN_H|EXTERN_F) ? scope : scope|GLOBAL )
233  | 
234  | /*+ When in a function or a function definition, the behaviour is different. +*/
235  | static int in_function=0,in_funcdef=0,in_funcbody=0;
236  | 
237  | /*+ The parsing stack +*/
238  | static stack first={NULL,NULL,NULL},  /*+ first value. +*/
239  |             *list=NULL,               /*+ list of all values. +*/
240  |             *current=&first;          /*+ current values. +*/
241  | 
242  | /*+ The depth of the stack +*/
243  | static int depth=0,             /*+ currently in use. +*/
244  |            maxdepth=0;          /*+ total malloced. +*/
245  | 
246  | /*+ Declarations that are in the same statement share this comment. +*/
247  | static char* common_comment=NULL;
248  | 
249  | /*+ When inside a struct / union / enum definition, this is the depth. +*/
250  | static int in_structunion=0;
251  | 
252  | /*+ When inside a struct / union definition, this is the component type. +*/
253  | static char *comp_type=NULL;
254  | 
255  | /*+ To solve the problem where a type name is used as an identifier. +*/
256  | static int in_type_spec=0;
257  | 
258  | 
259  | /*++++++++++++++++++++++++++++++++++++++
260  |   Reset the current level on the stack.
261  |   ++++++++++++++++++++++++++++++++++++++*/
262  | 
263  | static void reset(void)
264  | {
265  |  current->name=NULL;
266  |  current->type=NULL;
267  |  current->qual=NULL;
268  | }
269  | 
270  | 
271  | /*++++++++++++++++++++++++++++++++++++++
272  |   Push a level onto the stack.
273  |   ++++++++++++++++++++++++++++++++++++++*/
274  | 
275  | static void push(void)
276  | {
277  |  if(list==NULL)
278  |    {
279  |     list=(stack*)Malloc(8*sizeof(struct _stack));
280  |     list[0]=first;
281  |     maxdepth=8;
282  |    }
283  |  else if(depth==(maxdepth-1))
284  |    {
285  |     list=Realloc(list,(maxdepth+8)*sizeof(struct _stack));
286  |     maxdepth+=8;
287  |    }
288  | 
289  |  depth++;
290  |  current=&list[depth];
291  | 
292  |  reset();
293  | }
294  | 
295  | 
296  | /*++++++++++++++++++++++++++++++++++++++
297  |   Pop a level from the stack.
298  |   ++++++++++++++++++++++++++++++++++++++*/
299  | 
300  | static void pop(void)
301  | {
302  |  reset();
303  | 
304  |  depth--;
305  |  current=&list[depth];
306  | }
307  | 
308  | 
309  | /*++++++++++++++++++++++++++++++++++++++
310  |   Reset the Parser, ready for the next file.
311  |   ++++++++++++++++++++++++++++++++++++++*/
312  | 
313  | void ResetParser(void)
314  | {
315  |  in_typedef=0;
316  |  scope=0;
317  |  in_function=0;
318  |  in_funcdef=0;
319  |  in_funcbody=0;
320  |  depth=0;
321  |  maxdepth=0;
322  |  if(list) Free(list);
323  |  list=NULL;
324  |  current=&first;
325  |  reset();
326  |  common_comment=NULL;
327  |  in_structunion=0;
328  |  comp_type=NULL;
329  |  in_type_spec=0;
330  | }
331  | 
332  | 
333  | 
334  | /* Enabling traces.  */
335  | #ifndef YYDEBUG
336  | # define YYDEBUG 0
337  | #endif
338  | 
339  | /* Enabling verbose error messages.  */
340  | #ifdef YYERROR_VERBOSE
341  | # undef YYERROR_VERBOSE
342  | # define YYERROR_VERBOSE 1
343  | #else
344  | # define YYERROR_VERBOSE 0
345  | #endif
346  | 
347  | #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
348  | typedef int YYSTYPE;
349  | # define yystype YYSTYPE /* obsolescent; will be withdrawn */
350  | # define YYSTYPE_IS_DECLARED 1
351  | # define YYSTYPE_IS_TRIVIAL 1
352  | #endif
353  | 
354  | 
355  | 
356  | /* Copy the second part of user declarations.  */
357  | 
358  | 
359  | /* Line 214 of yacc.c.  */
360  | #line 361 "y.tab.c"
361  | 
362  | #if ! defined (yyoverflow) || YYERROR_VERBOSE
363  | 
364  | /* The parser invokes alloca or malloc; define the necessary symbols.  */
365  | 
366  | # if YYSTACK_USE_ALLOCA
367  | #  define YYSTACK_ALLOC alloca
368  | # else
369  | #  ifndef YYSTACK_USE_ALLOCA
370  | #   if defined (alloca) || defined (_ALLOCA_H)
371  | #    define YYSTACK_ALLOC alloca
372  | #   else
373  | #    ifdef __GNUC__
374  | #     define YYSTACK_ALLOC __builtin_alloca
375  | #    endif
376  | #   endif
377  | #  endif
378  | # endif
379  | 
380  | # ifdef YYSTACK_ALLOC
381  |    /* Pacify GCC's `empty if-body' warning. */
382  | #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
383  | # else
384  | #  if defined (__STDC__) || defined (__cplusplus)
385  | #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
386  | #   define YYSIZE_T size_t
387  | #  endif
388  | #  define YYSTACK_ALLOC malloc
389  | #  define YYSTACK_FREE free
390  | # endif
391  | #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
392  | 
393  | 
394  | #if (! defined (yyoverflow) \
395  |      && (! defined (__cplusplus) \
396  | 	 || (YYSTYPE_IS_TRIVIAL)))
397  | 
398  | /* A type that is properly aligned for any stack member.  */
399  | union yyalloc
400  | {
401  |   short yyss;
402  |   YYSTYPE yyvs;
403  |   };
404  | 
405  | /* The size of the maximum gap between one aligned stack and the next.  */
406  | # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
407  | 
408  | /* The size of an array large to enough to hold all stacks, each with
409  |    N elements.  */
410  | # define YYSTACK_BYTES(N) \
411  |      ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
412  |       + YYSTACK_GAP_MAXIMUM)
413  | 
414  | /* Copy COUNT objects from FROM to TO.  The source and destination do
415  |    not overlap.  */
416  | # ifndef YYCOPY
417  | #  if 1 < __GNUC__
418  | #   define YYCOPY(To, From, Count) \
419  |       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
420  | #  else
421  | #   define YYCOPY(To, From, Count)		\
422  |       do					\
423  | 	{					\
424  | 	  register YYSIZE_T yyi;		\
425  | 	  for (yyi = 0; yyi < (Count); yyi++)	\
426  | 	    (To)[yyi] = (From)[yyi];		\
427  | 	}					\
428  |       while (0)
429  | #  endif
430  | # endif
431  | 
432  | /* Relocate STACK from its old location to the new one.  The
433  |    local variables YYSIZE and YYSTACKSIZE give the old and new number of
434  |    elements in the stack, and YYPTR gives the new location of the
435  |    stack.  Advance YYPTR to a properly aligned location for the next
436  |    stack.  */
437  | # define YYSTACK_RELOCATE(Stack)					\
438  |     do									\
439  |       {									\
440  | 	YYSIZE_T yynewbytes;						\
441  | 	YYCOPY (&yyptr->Stack, Stack, yysize);				\
442  | 	Stack = &yyptr->Stack;						\
443  | 	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
444  | 	yyptr += yynewbytes / sizeof (*yyptr);				\
445  |       }									\
446  |     while (0)
447  | 
448  | #endif
449  | 
450  | #if defined (__STDC__) || defined (__cplusplus)
451  |    typedef signed char yysigned_char;
452  | #else
453  |    typedef short yysigned_char;
454  | #endif
455  | 
456  | /* YYFINAL -- State number of the termination state. */
457  | #define YYFINAL  92
458  | /* YYLAST -- Last index in YYTABLE.  */
459  | #define YYLAST   1744
460  | 
461  | /* YYNTOKENS -- Number of terminals. */
462  | #define YYNTOKENS  88
463  | /* YYNNTS -- Number of nonterminals. */
464  | #define YYNNTS  172
465  | /* YYNRULES -- Number of rules. */
466  | #define YYNRULES  383
467  | /* YYNRULES -- Number of states. */
468  | #define YYNSTATES  582
469  | 
470  | /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
471  | #define YYUNDEFTOK  2
472  | #define YYMAXUTOK   318
473  | 
474  | #define YYTRANSLATE(YYX) 						\
475  |   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
476  | 
477  | /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
478  | static const unsigned char yytranslate[] =
479  | {
480  |        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
481  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
482  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
483  |        2,     2,     2,    87,     2,     2,     2,    85,    79,     2,
484  |       73,    74,    75,    82,    65,    83,    70,    84,     2,     2,
485  |        2,     2,     2,     2,     2,     2,     2,     2,    69,    64,
486  |       80,    66,    81,    76,     2,     2,     2,     2,     2,     2,
487  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
488  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
489  |        2,    71,     2,    72,    78,     2,     2,     2,     2,     2,
490  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
491  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
492  |        2,     2,     2,    67,    77,    68,    86,     2,     2,     2,
493  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
494  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
495  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
496  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
497  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
498  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
499  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
500  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
501  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
502  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
503  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
504  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
505  |        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
506  |        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
507  |       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
508  |       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
509  |       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
510  |       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
511  |       55,    56,    57,    58,    59,    60,    61,    62,    63
512  | };
513  | 
514  | #if YYDEBUG
515  | /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
516  |    YYRHS.  */
517  | static const unsigned short yyprhs[] =
518  | {
519  |        0,     0,     3,     4,     6,     8,    11,    13,    15,    17,
520  |       19,    21,    24,    28,    31,    33,    35,    38,    40,    43,
521  |       45,    48,    50,    51,    56,    58,    60,    63,    66,    70,
522  |       73,    75,    78,    82,    87,    89,    93,    95,    99,   104,
523  |      109,   115,   117,   121,   123,   126,   128,   132,   135,   139,
524  |      143,   148,   151,   155,   159,   164,   166,   169,   171,   174,
525  |      177,   181,   183,   187,   189,   191,   193,   197,   198,   199,
526  |      206,   208,   210,   212,   214,   216,   218,   220,   222,   225,
527  |      227,   229,   231,   233,   235,   237,   239,   241,   243,   245,
528  |      247,   249,   251,   254,   257,   259,   262,   265,   267,   269,
529  |      271,   273,   275,   277,   279,   281,   283,   285,   288,   290,
530  |      292,   293,   299,   300,   307,   309,   312,   314,   318,   320,
531  |      324,   326,   329,   331,   333,   335,   337,   338,   344,   345,
532  |      352,   355,   357,   359,   361,   363,   364,   370,   371,   378,
533  |      381,   383,   385,   386,   388,   390,   393,   395,   398,   401,
534  |      403,   404,   409,   410,   416,   417,   423,   425,   429,   431,
535  |      433,   435,   438,   442,   444,   446,   448,   449,   453,   455,
536  |      457,   460,   463,   467,   469,   471,   475,   478,   483,   484,
537  |      490,   492,   493,   495,   497,   499,   503,   505,   509,   511,
538  |      515,   518,   520,   523,   525,   527,   529,   531,   533,   535,
539  |      537,   539,   541,   543,   545,   547,   548,   549,   555,   556,
540  |      558,   560,   563,   565,   567,   569,   571,   579,   585,   587,
541  |      589,   591,   599,   605,   608,   612,   616,   620,   625,   630,
542  |      635,   641,   647,   650,   653,   656,   659,   664,   666,   668,
543  |      670,   676,   679,   682,   685,   689,   691,   694,   698,   700,
544  |      702,   706,   708,   710,   714,   720,   722,   724,   726,   728,
545  |      730,   732,   734,   736,   738,   740,   742,   744,   750,   755,
546  |      757,   761,   763,   767,   769,   773,   775,   779,   781,   785,
547  |      787,   791,   793,   795,   797,   801,   803,   805,   807,   809,
548  |      811,   815,   817,   819,   821,   825,   827,   829,   831,   835,
549  |      837,   839,   841,   843,   845,   847,   849,   851,   853,   855,
550  |      857,   859,   861,   863,   866,   869,   874,   881,   888,   891,
551  |      894,   897,   900,   905,   908,   911,   914,   916,   918,   920,
552  |      922,   924,   926,   928,   930,   932,   936,   940,   944,   949,
553  |      953,   958,   961,   964,   969,   971,   973,   975,   977,   979,
554  |      982,   986,   987,   988,   994,   996,   998,  1002,  1008,  1016,
555  |     1026,  1038,  1040,  1043,  1046,  1047,  1049,  1053,  1058,  1059,
556  |     1061,  1065,  1070,  1073,  1075,  1079,  1080,  1082,  1086,  1090,
557  |     1096,  1101,  1108,  1110
558  | };
559  | 
560  | /* YYRHS -- A `-1'-separated list of the rules' RHS. */
561  | static const short yyrhs[] =
562  | {
563  |       89,     0,    -1,    -1,    90,    -1,    91,    -1,    90,    91,
564  |       -1,    93,    -1,   162,    -1,   249,    -1,   200,    -1,    93,
565  |       -1,    92,    93,    -1,    94,    96,    64,    -1,    94,    64,
566  |       -1,    95,    -1,   115,    -1,   115,    95,    -1,   118,    -1,
567  |      118,    95,    -1,   117,    -1,   117,    95,    -1,    98,    -1,
568  |       -1,    96,    65,    97,    98,    -1,    99,    -1,   107,    -1,
569  |      107,   254,    -1,   107,   100,    -1,   107,   254,   100,    -1,
570  |       66,   101,    -1,   204,    -1,    67,    68,    -1,    67,   102,
571  |       68,    -1,    67,   102,    65,    68,    -1,   103,    -1,   102,
572  |       65,   103,    -1,   101,    -1,   161,    69,   101,    -1,    70,
573  |      161,    66,   101,    -1,    71,   104,    72,   101,    -1,    71,
574  |      104,    72,    66,   101,    -1,   247,    -1,   247,     7,   247,
575  |       -1,   108,    -1,   108,   106,    -1,   106,    -1,    73,   105,
576  |       74,    -1,    71,    72,    -1,   106,    71,    72,    -1,    71,
577  |      247,    72,    -1,   106,    71,   247,    72,    -1,    73,    74,
578  |       -1,   106,    73,    74,    -1,    73,   173,    74,    -1,   106,
579  |       73,   173,    74,    -1,   109,    -1,   108,   109,    -1,    75,
580  |       -1,    75,   116,    -1,    75,   108,    -1,    75,   116,   108,
581  |       -1,   110,    -1,    73,   107,    74,    -1,   111,    -1,   168,
582  |       -1,     3,    -1,   109,    71,    72,    -1,    -1,    -1,   109,
583  |       71,   112,   247,   113,    72,    -1,     3,    -1,    33,    -1,
584  |       31,    -1,    34,    -1,    32,    -1,    30,    -1,    38,    -1,
585  |      117,    -1,   116,   117,    -1,    35,    -1,    36,    -1,   119,
586  |       -1,   127,    -1,   120,    -1,   121,    -1,   123,    -1,   137,
587  |       -1,   124,    -1,   143,    -1,   125,    -1,    45,    -1,    46,
588  |       -1,    46,    42,    -1,    42,    46,    -1,   122,    -1,   122,
589  |      117,    -1,   121,   122,    -1,    43,    -1,    44,    -1,    39,
590  |       -1,    40,    -1,    41,    -1,    42,    -1,    47,    -1,     4,
591  |       -1,    37,    -1,    94,    -1,    94,   105,    -1,   128,    -1,
592  |      135,    -1,    -1,    50,    67,   129,   131,    68,    -1,    -1,
593  |       50,   136,    67,   130,   131,    68,    -1,   132,    -1,   132,
594  |       65,    -1,   133,    -1,   132,    65,   133,    -1,   134,    -1,
595  |      134,    66,   204,    -1,     3,    -1,    50,   136,    -1,     3,
596  |       -1,     4,    -1,   138,    -1,   141,    -1,    -1,    48,    67,
597  |      139,   149,    68,    -1,    -1,    48,   142,    67,   140,   149,
598  |       68,    -1,    48,   142,    -1,     3,    -1,     4,    -1,   144,
599  |       -1,   147,    -1,    -1,    49,    67,   145,   149,    68,    -1,
600  |       -1,    49,   148,    67,   146,   149,    68,    -1,    49,   148,
601  |       -1,     3,    -1,     4,    -1,    -1,   150,    -1,   151,    -1,
602  |      150,   151,    -1,    64,    -1,   138,    64,    -1,   144,    64,
603  |       -1,   152,    -1,    -1,   118,   153,   156,    64,    -1,    -1,
604  |      116,   118,   154,   156,    64,    -1,    -1,   118,   116,   155,
605  |      156,    64,    -1,   157,    -1,   156,    65,   157,    -1,   158,
606  |       -1,   159,    -1,   107,    -1,    69,   160,    -1,   107,    69,
607  |      160,    -1,   204,    -1,     3,    -1,     4,    -1,    -1,   164,
608  |      163,   177,    -1,   165,    -1,   166,    -1,    94,   166,    -1,
609  |      166,    92,    -1,    94,   166,    92,    -1,   167,    -1,   168,
610  |       -1,    73,   168,    74,    -1,   108,   168,    -1,   108,    73,
611  |      168,    74,    -1,    -1,   170,    73,   169,   171,    74,    -1,
612  |      109,    -1,    -1,   173,    -1,   172,    -1,     3,    -1,   172,
613  |       65,     3,    -1,   174,    -1,   174,    65,     7,    -1,   175,
614  |       -1,   174,    65,   175,    -1,    94,   107,    -1,    94,    -1,
615  |       94,   105,    -1,   249,    -1,   177,    -1,   183,    -1,   186,
616  |       -1,   191,    -1,   195,    -1,   196,    -1,   197,    -1,   198,
617  |       -1,   199,    -1,   200,    -1,   201,    -1,    -1,    -1,    67,
618  |      178,   180,   179,    68,    -1,    -1,   181,    -1,   182,    -1,
619  |      181,   182,    -1,   176,    -1,    93,    -1,   185,    -1,   184,
620  |       -1,    53,    73,   202,    74,   176,    54,   176,    -1,    53,
621  |       73,   202,    74,   176,    -1,   187,    -1,   188,    -1,   190,
622  |       -1,    57,   176,    56,    73,   202,    74,    64,    -1,    58,
623  |       73,   189,    74,   176,    -1,    64,    64,    -1,   202,    64,
624  |       64,    -1,    64,   202,    64,    -1,    64,    64,   202,    -1,
625  |       64,   202,    64,   202,    -1,   202,    64,    64,   202,    -1,
626  |      202,    64,   202,    64,    -1,   202,    64,   202,    64,   202,
627  |       -1,    56,    73,   202,    74,   176,    -1,   192,    69,    -1,
628  |      194,    69,    -1,   193,    69,    -1,    51,   247,    -1,    51,
629  |      247,     7,   247,    -1,    52,    -1,     3,    -1,     4,    -1,
630  |       55,    73,   202,    74,   176,    -1,    61,    64,    -1,    60,
631  |       64,    -1,   202,    64,    -1,    59,     3,    64,    -1,    64,
632  |       -1,    62,    64,    -1,    62,   202,    64,    -1,   203,    -1,
633  |      204,    -1,   203,    65,   204,    -1,   206,    -1,   255,    -1,
634  |      222,   205,   204,    -1,   222,   205,    67,   256,    68,    -1,
635  |       66,    -1,     8,    -1,     9,    -1,    10,    -1,    11,    -1,
636  |       12,    -1,    13,    -1,    14,    -1,    15,    -1,    16,    -1,
637  |       17,    -1,   207,    -1,   207,    76,   202,    69,   206,    -1,
638  |      207,    76,    69,   206,    -1,   208,    -1,   207,    22,   208,
639  |       -1,   209,    -1,   208,    21,   209,    -1,   210,    -1,   209,
640  |       77,   210,    -1,   211,    -1,   210,    78,   211,    -1,   212,
641  |       -1,   211,    79,   212,    -1,   214,    -1,   212,   213,   214,
642  |       -1,    18,    -1,    19,    -1,   216,    -1,   214,   215,   216,
643  |       -1,    80,    -1,    25,    -1,    81,    -1,    26,    -1,   218,
644  |       -1,   216,   217,   218,    -1,    27,    -1,    28,    -1,   220,
645  |       -1,   218,   219,   220,    -1,    82,    -1,    83,    -1,   222,
646  |       -1,   220,   221,   222,    -1,    75,    -1,    84,    -1,    85,
647  |       -1,   223,    -1,   224,    -1,   225,    -1,   226,    -1,   227,
648  |       -1,   228,    -1,   229,    -1,   230,    -1,   231,    -1,   232,
649  |       -1,   233,    -1,    79,   222,    -1,    86,   222,    -1,    73,
650  |      126,    74,   222,    -1,    73,   126,    74,    67,   256,    68,
651  |       -1,    73,   126,    74,    67,   259,    68,    -1,    75,   222,
652  |       -1,    87,   222,    -1,    23,   222,    -1,    24,   222,    -1,
653  |       29,    73,   126,    74,    -1,    29,   222,    -1,    83,   222,
654  |       -1,    82,   222,    -1,   234,    -1,   237,    -1,   238,    -1,
655  |      239,    -1,   240,    -1,   241,    -1,   242,    -1,   235,    -1,
656  |      236,    -1,   233,    70,   161,    -1,   233,    20,   161,    -1,
657  |      233,    73,    74,    -1,   233,    73,   248,    74,    -1,   114,
658  |       73,    74,    -1,   114,    73,   248,    74,    -1,   233,    23,
659  |       -1,   233,    24,    -1,   233,    71,   202,    72,    -1,   114,
660  |       -1,     5,    -1,   243,    -1,   244,    -1,     6,    -1,   243,
661  |        6,    -1,    73,   202,    74,    -1,    -1,    -1,    73,   245,
662  |      177,   246,    74,    -1,   202,    -1,   204,    -1,   248,    65,
663  |      204,    -1,   250,    73,   243,    74,    64,    -1,   250,    73,
664  |      243,    69,   251,    74,    64,    -1,   250,    73,   243,    69,
665  |      251,    69,   251,    74,    64,    -1,   250,    73,   243,    69,
666  |      251,    69,   251,    69,   253,    74,    64,    -1,    63,    -1,
667  |       63,    36,    -1,    36,    63,    -1,    -1,   252,    -1,   251,
668  |       65,   252,    -1,   243,    73,   202,    74,    -1,    -1,   243,
669  |       -1,   253,    65,   243,    -1,    63,    73,   243,    74,    -1,
670  |       21,   194,    -1,   257,    -1,   256,    65,   257,    -1,    -1,
671  |      204,    -1,    67,   256,    68,    -1,   161,    69,   204,    -1,
672  |      161,    69,    67,   256,    68,    -1,    70,   161,    66,   204,
673  |       -1,    70,   161,    66,    67,   256,    68,    -1,   258,    -1,
674  |      259,    65,   258,    -1
675  | };
676  | 
677  | /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
678  | static const unsigned short yyrline[] =
679  | {
680  |        0,   168,   168,   170,   174,   175,   179,   181,   183,   184,
681  |      190,   192,   198,   200,   205,   211,   212,   214,   216,   219,
682  |      220,   227,   228,   228,   232,   278,   279,   280,   281,   285,
683  |      289,   290,   291,   292,   296,   297,   301,   302,   303,   304,
684  |      305,   309,   310,   317,   318,   320,   324,   327,   329,   331,
685  |      333,   335,   337,   339,   341,   348,   350,   355,   356,   358,
686  |      360,   365,   366,   370,   371,   375,   382,   384,   384,   384,
687  |      391,   395,   397,   402,   404,   406,   410,   415,   416,   421,
688  |      423,   430,   435,   436,   437,   438,   439,   440,   441,   442,
689  |      446,   447,   448,   450,   455,   456,   458,   463,   464,   465,
690  |      466,   467,   468,   472,   476,   480,   484,   486,   493,   494,
691  |      499,   498,   512,   511,   527,   528,   532,   533,   538,   540,
692  |      545,   549,   554,   555,   561,   562,   567,   566,   580,   579,
693  |      595,   600,   601,   607,   608,   613,   612,   626,   625,   641,
694  |      646,   647,   652,   654,   658,   659,   664,   665,   668,   671,
695  |      676,   675,   680,   679,   684,   683,   690,   692,   698,   699,
696  |      703,   708,   710,   715,   719,   720,   729,   728,   735,   757,
697  |      758,   760,   761,   768,   773,   774,   775,   777,   783,   782,
698  |      793,   802,   804,   805,   809,   811,   817,   818,   824,   827,
699  |      833,   835,   837,   844,   845,   846,   847,   848,   849,   850,
700  |      851,   852,   853,   854,   855,   862,   864,   861,   868,   870,
701  |      874,   875,   879,   880,   887,   888,   892,   896,   902,   903,
702  |      904,   908,   912,   916,   917,   918,   919,   920,   921,   922,
703  |      923,   927,   933,   934,   935,   939,   940,   944,   948,   949,
704  |      955,   961,   965,   969,   973,   977,   981,   982,   988,   994,
705  |      995,  1002,  1003,  1004,  1005,  1008,  1009,  1010,  1011,  1012,
706  |     1013,  1014,  1015,  1016,  1017,  1018,  1024,  1025,  1027,  1034,
707  |     1035,  1042,  1043,  1050,  1051,  1058,  1059,  1066,  1067,  1074,
708  |     1075,  1079,  1080,  1086,  1087,  1091,  1092,  1093,  1094,  1100,
709  |     1101,  1105,  1106,  1112,  1113,  1117,  1118,  1124,  1125,  1129,
710  |     1130,  1131,  1137,  1138,  1139,  1140,  1141,  1142,  1143,  1144,
711  |     1145,  1146,  1147,  1151,  1155,  1160,  1162,  1163,  1167,  1171,
712  |     1176,  1180,  1184,  1186,  1191,  1196,  1203,  1204,  1205,  1207,
713  |     1208,  1209,  1210,  1214,  1215,  1219,  1223,  1227,  1228,  1232,
714  |     1233,  1237,  1241,  1245,  1249,  1251,  1252,  1253,  1256,  1257,
715  |     1261,  1263,  1263,  1263,  1269,  1273,  1274,  1282,  1283,  1284,
716  |     1285,  1289,  1290,  1291,  1294,  1296,  1297,  1301,  1304,  1306,
717  |     1307,  1311,  1317,  1323,  1324,  1327,  1329,  1330,  1334,  1335,
718  |     1336,  1337,  1341,  1342
719  | };
720  | #endif
721  | 
722  | #if YYDEBUG || YYERROR_VERBOSE
723  | /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
724  |    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
725  | static const char *const yytname[] =
726  | {
727  |   "$end", "error", "$undefined", "IDENTIFIER", "TYPE_NAME", "LITERAL", 
728  |   "STRING_LITERAL", "ELLIPSES", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", 
729  |   "ADD_ASSIGN", "SUB_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", 
730  |   "XOR_ASSIGN", "OR_ASSIGN", "EQ_OP", "NE_OP", "PTR_OP", "AND_OP", 
731  |   "OR_OP", "DEC_OP", "INC_OP", "LE_OP", "GE_OP", "LEFT_SHIFT", 
732  |   "RIGHT_SHIFT", "SIZEOF", "TYPEDEF", "EXTERN", "STATIC", "AUTO", 
733  |   "REGISTER", "CONST", "VOLATILE", "VOID", "INLINE", "CHAR", "SHORT", 
734  |   "INT", "LONG", "SIGNED", "UNSIGNED", "FLOAT", "DOUBLE", "BOOL", 
735  |   "STRUCT", "UNION", "ENUM", "CASE", "DEFAULT", "IF", "ELSE", "SWITCH", 
736  |   "WHILE", "DO", "FOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "ASM", 
737  |   "';'", "','", "'='", "'{'", "'}'", "':'", "'.'", "'['", "']'", "'('", 
738  |   "')'", "'*'", "'?'", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'", "'-'", 
739  |   "'/'", "'%'", "'~'", "'!'", "$accept", "file", "program", 
740  |   "top_level_declaration", "declaration_list", "declaration", 
741  |   "declaration_specifiers", "declaration_specifiers1", 
742  |   "initialized_declarator_list", "@1", "initialized_declarator", 
743  |   "initialized_declarator1", "initializer_part", "initializer", 
744  |   "initializer_list", "named_initializer", "named_initializer_index", 
745  |   "abstract_declarator", "direct_abstract_declarator", "declarator", 
746  |   "pointer", "direct_declarator", "simple_declarator", "array_declarator", 
747  |   "@2", "@3", "name", "storage_class_specifier", "type_qualifier_list", 
748  |   "type_qualifier", "type_specifier", "type_specifier1", 
749  |   "floating_type_specifier", "integer_type_specifier", 
750  |   "integer_type_specifier_part", "boolean_type_specifier", "typedef_name", 
751  |   "void_type_specifier", "type_name", "enumeration_type_specifier", 
752  |   "enumeration_type_definition", "@4", "@5", 
753  |   "enumeration_definition_list", "enumeration_definition_list1", 
754  |   "enumeration_constant_definition", "enumeration_constant", 
755  |   "enumeration_type_reference", "enumeration_tag", 
756  |   "structure_type_specifier", "structure_type_definition", "@6", "@7", 
757  |   "structure_type_reference", "structure_tag", "union_type_specifier", 
758  |   "union_type_definition", "@8", "@9", "union_type_reference", 
759  |   "union_tag", "field_list", "field_list1", "field_list2", 
760  |   "component_declaration", "@10", "@11", "@12", 
761  |   "component_declarator_list", "component_declarator", "simple_component", 
762  |   "bit_field", "width", "component_name", "function_definition", "@13", 
763  |   "function_specifier", "function_specifier1", "function_declarator", 
764  |   "function_declarator0", "function_direct_declarator", "@14", 
765  |   "function_declarator1", "function_declarator2", "identifier_list", 
766  |   "parameter_type_list", "parameter_list", "parameter_declaration", 
767  |   "statement", "compound_statement", "@15", "@16", 
768  |   "compound_statement_body", "block_item_list", "block_item", 
769  |   "conditional_statement", "if_else_statement", "if_statement", 
770  |   "iterative_statement", "do_statement", "for_statement", 
771  |   "for_expressions", "while_statement", "labeled_statement", "case_label", 
772  |   "default_label", "named_label", "switch_statement", "break_statement", 
773  |   "continue_statement", "expression_statement", "goto_statement", 
774  |   "null_statement", "return_statement", "expression", "comma_expression", 
775  |   "assignment_expression", "assignment_op", "conditional_expression", 
776  |   "logical_or_expression", "logical_and_expression", 
777  |   "bitwise_or_expression", "bitwise_xor_expression", 
778  |   "bitwise_and_expression", "equality_expression", "equality_op", 
779  |   "relational_expression", "relational_op", "shift_expression", 
780  |   "shift_op", "additive_expression", "add_op", 
781  |   "multiplicative_expression", "mult_op", "unary_expression", 
782  |   "address_expression", "bitwise_negation_expression", "cast_expression", 
783  |   "indirection_expression", "logical_negation_expression", 
784  |   "predecrement_expression", "preincrement_expression", 
785  |   "sizeof_expression", "unary_minus_expression", "unary_plus_expression", 
786  |   "postfix_expression", "component_selection_expression", 
787  |   "direct_component_selection", "indirect_component_selection", 
788  |   "function_call", "function_call_direct", "postdecrement_expression", 
789  |   "postincrement_expression", "subscript_expression", 
790  |   "primary_expression", "string_literal", "parenthesized_expression", 
791  |   "@17", "@18", "constant_expression", "expression_list", "asm_statement", 
792  |   "asm_type", "asm_inout_list", "asm_inout", "asm_clobber_list", 
793  |   "asm_label", "named_label_address", "assignment_expression_list", 
794  |   "assignment_expression_list_item", "named_assignment", 
795  |   "named_assignment_list", 0
796  | };
797  | #endif
798  | 
799  | # ifdef YYPRINT
800  | /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
801  |    token YYLEX-NUM.  */
802  | static const unsigned short yytoknum[] =
803  | {
804  |        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
805  |      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
806  |      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
807  |      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
808  |      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
809  |      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
810  |      315,   316,   317,   318,    59,    44,    61,   123,   125,    58,
811  |       46,    91,    93,    40,    41,    42,    63,   124,    94,    38,
812  |       60,    62,    43,    45,    47,    37,   126,    33
813  | };
814  | # endif
815  | 
816  | /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
817  | static const unsigned short yyr1[] =
818  | {
819  |        0,    88,    89,    89,    90,    90,    91,    91,    91,    91,
820  |       92,    92,    93,    93,    94,    95,    95,    95,    95,    95,
821  |       95,    96,    97,    96,    98,    99,    99,    99,    99,   100,
822  |      101,   101,   101,   101,   102,   102,   103,   103,   103,   103,
823  |      103,   104,   104,   105,   105,   105,   106,   106,   106,   106,
824  |      106,   106,   106,   106,   106,   107,   107,   108,   108,   108,
825  |      108,   109,   109,   109,   109,   110,   111,   112,   113,   111,
826  |      114,   115,   115,   115,   115,   115,   115,   116,   116,   117,
827  |      117,   118,   119,   119,   119,   119,   119,   119,   119,   119,
828  |      120,   120,   120,   120,   121,   121,   121,   122,   122,   122,
829  |      122,   122,   122,   123,   124,   125,   126,   126,   127,   127,
830  |      129,   128,   130,   128,   131,   131,   132,   132,   133,   133,
831  |      134,   135,   136,   136,   137,   137,   139,   138,   140,   138,
832  |      141,   142,   142,   143,   143,   145,   144,   146,   144,   147,
833  |      148,   148,   149,   149,   150,   150,   151,   151,   151,   151,
834  |      153,   152,   154,   152,   155,   152,   156,   156,   157,   157,
835  |      158,   159,   159,   160,   161,   161,   163,   162,   164,   165,
836  |      165,   165,   165,   166,   167,   167,   167,   167,   169,   168,
837  |      170,   171,   171,   171,   172,   172,   173,   173,   174,   174,
838  |      175,   175,   175,   176,   176,   176,   176,   176,   176,   176,
839  |      176,   176,   176,   176,   176,   178,   179,   177,   180,   180,
840  |      181,   181,   182,   182,   183,   183,   184,   185,   186,   186,
841  |      186,   187,   188,   189,   189,   189,   189,   189,   189,   189,
842  |      189,   190,   191,   191,   191,   192,   192,   193,   194,   194,
843  |      195,   196,   197,   198,   199,   200,   201,   201,   202,   203,
844  |      203,   204,   204,   204,   204,   205,   205,   205,   205,   205,
845  |      205,   205,   205,   205,   205,   205,   206,   206,   206,   207,
846  |      207,   208,   208,   209,   209,   210,   210,   211,   211,   212,
847  |      212,   213,   213,   214,   214,   215,   215,   215,   215,   216,
848  |      216,   217,   217,   218,   218,   219,   219,   220,   220,   221,
849  |      221,   221,   222,   222,   222,   222,   222,   222,   222,   222,
850  |      222,   222,   222,   223,   224,   225,   225,   225,   226,   227,
851  |      228,   229,   230,   230,   231,   232,   233,   233,   233,   233,
852  |      233,   233,   233,   234,   234,   235,   236,   237,   237,   238,
853  |      238,   239,   240,   241,   242,   242,   242,   242,   243,   243,
854  |      244,   245,   246,   244,   247,   248,   248,   249,   249,   249,
855  |      249,   250,   250,   250,   251,   251,   251,   252,   253,   253,
856  |      253,   254,   255,   256,   256,   257,   257,   257,   258,   258,
857  |      258,   258,   259,   259
858  | };
859  | 
860  | /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
861  | static const unsigned char yyr2[] =
862  | {
863  |        0,     2,     0,     1,     1,     2,     1,     1,     1,     1,
864  |        1,     2,     3,     2,     1,     1,     2,     1,     2,     1,
865  |        2,     1,     0,     4,     1,     1,     2,     2,     3,     2,
866  |        1,     2,     3,     4,     1,     3,     1,     3,     4,     4,
867  |        5,     1,     3,     1,     2,     1,     3,     2,     3,     3,
868  |        4,     2,     3,     3,     4,     1,     2,     1,     2,     2,
869  |        3,     1,     3,     1,     1,     1,     3,     0,     0,     6,
870  |        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
871  |        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
872  |        1,     1,     2,     2,     1,     2,     2,     1,     1,     1,
873  |        1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
874  |        0,     5,     0,     6,     1,     2,     1,     3,     1,     3,
875  |        1,     2,     1,     1,     1,     1,     0,     5,     0,     6,
876  |        2,     1,     1,     1,     1,     0,     5,     0,     6,     2,
877  |        1,     1,     0,     1,     1,     2,     1,     2,     2,     1,
878  |        0,     4,     0,     5,     0,     5,     1,     3,     1,     1,
879  |        1,     2,     3,     1,     1,     1,     0,     3,     1,     1,
880  |        2,     2,     3,     1,     1,     3,     2,     4,     0,     5,
881  |        1,     0,     1,     1,     1,     3,     1,     3,     1,     3,
882  |        2,     1,     2,     1,     1,     1,     1,     1,     1,     1,
883  |        1,     1,     1,     1,     1,     0,     0,     5,     0,     1,
884  |        1,     2,     1,     1,     1,     1,     7,     5,     1,     1,
885  |        1,     7,     5,     2,     3,     3,     3,     4,     4,     4,
886  |        5,     5,     2,     2,     2,     2,     4,     1,     1,     1,
887  |        5,     2,     2,     2,     3,     1,     2,     3,     1,     1,
888  |        3,     1,     1,     3,     5,     1,     1,     1,     1,     1,
889  |        1,     1,     1,     1,     1,     1,     1,     5,     4,     1,
890  |        3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
891  |        3,     1,     1,     1,     3,     1,     1,     1,     1,     1,
892  |        3,     1,     1,     1,     3,     1,     1,     1,     3,     1,
893  |        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
894  |        1,     1,     1,     2,     2,     4,     6,     6,     2,     2,
895  |        2,     2,     4,     2,     2,     2,     1,     1,     1,     1,
896  |        1,     1,     1,     1,     1,     3,     3,     3,     4,     3,
897  |        4,     2,     2,     4,     1,     1,     1,     1,     1,     2,
898  |        3,     0,     0,     5,     1,     1,     3,     5,     7,     9,
899  |       11,     1,     2,     2,     0,     1,     3,     4,     0,     1,
900  |        3,     4,     2,     1,     3,     0,     1,     3,     3,     5,
901  |        4,     6,     1,     3
902  | };
903  | 
904  | /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
905  |    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
906  |    means the default is an error.  */
907  | static const unsigned short yydefact[] =
908  | {
909  |        2,    65,   104,    75,    72,    74,    71,    73,    79,    80,
910  |      105,    76,    99,   100,   101,   102,    97,    98,    90,    91,
911  |      103,     0,     0,     0,   361,   245,     0,    57,     0,     3,
912  |        4,     6,     0,    14,     0,   180,    61,    63,    15,    19,
913  |       17,    81,    83,    84,    94,    85,    87,    89,    82,   108,
914  |      109,    86,   124,   125,    88,   133,   134,     7,   166,   168,
915  |      169,   173,   174,     0,     9,     8,     0,   363,    93,    92,
916  |      131,   132,   126,   130,   140,   141,   135,   139,   122,   123,
917  |      110,   121,   362,     0,     0,     0,    55,    64,    80,    59,
918  |       58,    77,     1,     5,    13,     0,    21,    24,    25,     0,
919  |      170,     0,   176,    67,    16,    20,    18,   102,    96,    95,
920  |        0,   171,    10,     0,   178,     0,   142,   128,   142,   137,
921  |        0,   112,    64,    62,    56,   175,    60,    78,    12,    22,
922  |        0,     0,    27,    26,   172,    64,    66,     0,   205,   167,
923  |       11,   181,   348,     0,   146,     0,   150,   124,   133,     0,
924  |      143,   144,   149,   142,     0,   142,   120,     0,   114,   116,
925  |      118,     0,     0,     0,    70,   345,     0,     0,     0,     0,
926  |        0,   351,     0,     0,     0,     0,     0,     0,    29,   344,
927  |       30,   251,   266,   269,   271,   273,   275,   277,   279,   283,
928  |      289,   293,   297,   302,   303,   304,   305,   306,   307,   308,
929  |      309,   310,   311,   312,   326,   333,   334,   327,   328,   329,
930  |      330,   331,   332,   346,   347,   252,    28,   177,   354,   248,
931  |      249,    68,   208,   184,   191,     0,   183,   182,   186,   188,
932  |      349,   364,     0,   152,   154,     0,   147,   148,   127,   145,
933  |        0,   136,     0,   111,   115,     0,     0,    23,     0,   238,
934  |      239,   372,   320,   321,   351,   323,    70,   165,    31,     0,
935  |        0,    36,     0,    34,     0,   106,     0,     0,     0,   318,
936  |      313,   325,   324,   314,   319,     0,     0,     0,     0,     0,
937  |        0,     0,   281,   282,     0,   286,   288,   285,   287,     0,
938  |      291,   292,     0,   295,   296,     0,   299,   300,   301,     0,
939  |      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
940  |      255,     0,     0,   341,   342,     0,     0,     0,     0,     0,
941  |       70,   104,     0,   237,     0,     0,     0,     0,     0,     0,
942  |        0,     0,     0,   213,   212,   194,   206,   209,   210,   195,
943  |      215,   214,   196,   218,   219,   220,   197,     0,     0,     0,
944  |      198,   199,   200,   201,   202,   203,   204,     0,   193,     0,
945  |        0,   192,    45,   190,    43,   179,     0,     0,     0,     0,
946  |      365,   357,     0,     0,     0,   160,     0,   156,   158,   159,
947  |      129,   138,   117,   119,   113,   371,     0,   164,     0,     0,
948  |       41,     0,    32,     0,     0,   107,    43,     0,   350,   352,
949  |      339,   355,     0,   270,   297,     0,     0,   272,   274,   276,
950  |      278,   280,   284,   290,   294,   298,   375,   253,   336,   335,
951  |        0,   337,     0,   250,    69,   235,     0,     0,     0,     0,
952  |        0,     0,     0,   242,   241,   246,     0,     0,   211,   232,
953  |      234,   233,   243,    47,     0,    51,     0,     0,     0,     0,
954  |       44,   185,   187,   189,     0,     0,   364,     0,     0,     0,
955  |      161,   163,     0,   151,     0,   322,     0,     0,     0,    33,
956  |       35,    37,   375,   315,     0,     0,   340,   268,     0,   375,
957  |      376,     0,   373,   343,   338,     0,     0,     0,     0,     0,
958  |        0,     0,     0,   244,   247,   207,    49,    46,    53,    48,
959  |        0,    52,     0,     0,   366,     0,   358,   153,   155,   162,
960  |      157,    38,     0,    39,    42,     0,     0,     0,   382,     0,
961  |      353,   356,   267,     0,   375,   254,   236,     0,     0,     0,
962  |        0,   223,     0,     0,     0,    50,    54,   367,   368,     0,
963  |       40,     0,     0,   316,     0,   317,   377,   374,   217,   240,
964  |      231,     0,   226,   225,   222,   224,     0,   369,     0,   359,
965  |        0,   375,   378,   383,     0,     0,   227,   228,   229,     0,
966  |        0,   375,   380,     0,   216,   221,   230,   370,   360,     0,
967  |      379,   381
968  | };
969  | 
970  | /* YYDEFGOTO[NTERM-NUM]. */
971  | static const short yydefgoto[] =
972  | {
973  |       -1,    28,    29,    30,   111,    31,   113,    33,    95,   162,
974  |       96,    97,   132,   261,   262,   263,   389,   446,   362,    84,
975  |       85,    86,    36,    37,   137,   319,   179,    38,   145,    39,
976  |       40,    41,    42,    43,    44,    45,    46,    47,   266,    48,
977  |       49,   120,   161,   157,   158,   159,   160,    50,    81,    51,
978  |       52,   116,   153,    53,    73,    54,    55,   118,   155,    56,
979  |       77,   149,   150,   151,   152,   235,   372,   373,   376,   377,
980  |      378,   379,   460,   264,    57,   110,    58,    59,    60,    61,
981  |      122,   141,    63,   225,   226,   447,   228,   229,   334,   335,
982  |      222,   437,   336,   337,   338,   339,   340,   341,   342,   343,
983  |      344,   491,   345,   346,   347,   348,   349,   350,   351,   352,
984  |      353,   354,   355,   356,   357,   219,   220,   311,   181,   182,
985  |      183,   184,   185,   186,   187,   284,   188,   289,   189,   292,
986  |      190,   295,   191,   299,   192,   193,   194,   195,   196,   197,
987  |      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
988  |      208,   209,   210,   211,   212,   213,   214,   268,   474,   221,
989  |      402,   358,    66,   369,   370,   558,   133,   215,   481,   482,
990  |      518,   519
991  | };
992  | 
993  | /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
994  |    STATE-NUM.  */
995  | #define YYPACT_NINF -458
996  | static const short yypact[] =
997  | {
998  |     1436,  -458,  -458,  -458,  -458,  -458,  -458,  -458,  -458,   -44,
999  |     -458,  -458,  -458,  -458,  -458,   -13,  -458,  -458,  -458,     2,
1000 |     -458,    70,   130,   140,    35,  -458,    46,   124,    50,  1436,
1001 |     -458,  -458,    15,  -458,    29,    68,  -458,  -458,  1694,  1694,
1002 |     1694,  -458,  -458,   237,    22,  -458,  -458,  -458,  -458,  -458,
1003 |     -458,  -458,  -458,  -458,  -458,  -458,  -458,  -458,  -458,  -458,
1004 |     1694,  -458,   354,    19,  -458,  -458,    79,  -458,  -458,  -458,
1005 |     -458,  -458,  -458,    91,  -458,  -458,  -458,    95,  -458,  -458,
1006 |     -458,   110,  -458,    46,   118,    32,    55,   126,  -458,  -458,
1007 |      124,  -458,  -458,  -458,  -458,   131,  -458,  -458,   -43,    29,
1008 |     1694,    46,   354,   134,  -458,  -458,  -458,  -458,  -458,  -458,
1009 |      154,  1694,  -458,    18,  -458,   219,   666,  -458,   666,  -458,
1010 |      226,  -458,  -458,  -458,    55,  -458,  -458,  -458,  -458,  -458,
1011 |      170,   768,  -458,   182,  1694,   209,  -458,  1344,  -458,  -458,
1012 |     -458,  1626,  -458,    41,  -458,  1501,    22,   192,   247,   258,
1013 |      666,  -458,  -458,   666,   261,   666,  -458,   264,   257,  -458,
1014 |      269,   226,    46,   219,  -458,  -458,   213,   151,   151,  1378,
1015 |      304,   520,   151,   151,   151,   151,   151,   151,  -458,   272,
1016 |     -458,  -458,     4,   303,   259,   268,   271,   255,   123,   263,
1017 |      211,   127,   396,  -458,  -458,  -458,  -458,  -458,  -458,  -458,
1018 |     -458,  -458,  -458,   216,  -458,  -458,  -458,  -458,  -458,  -458,
1019 |     -458,  -458,  -458,   347,  -458,  -458,  -458,  -458,  -458,   290,
1020 |     -458,  -458,   435,  -458,    25,   282,   292,  -458,   293,  -458,
1021 |     -458,   219,   296,  -458,    22,    38,  -458,  -458,  -458,  -458,
1022 |      294,  -458,   295,  -458,   226,  1344,   298,  -458,    21,  -458,
1023 |     -458,  -458,  -458,  -458,   520,  -458,   300,  -458,  -458,   310,
1024 |     1344,  -458,    57,  -458,   301,   178,   302,   306,   154,  -458,
1025 |     -458,  -458,  -458,  -458,  -458,   793,   151,   868,   151,   151,
1026 |      151,   151,  -458,  -458,   151,  -458,  -458,  -458,  -458,   151,
1027 |     -458,  -458,   151,  -458,  -458,   151,  -458,  -458,  -458,   151,
1028 |     -458,  -458,  -458,  -458,  -458,  -458,  -458,  -458,  -458,  -458,
1029 |     -458,   890,   310,  -458,  -458,   310,  1344,   915,  1344,   309,
1030 |      313,   316,  1344,  -458,   291,   305,   315,   568,   319,   386,
1031 |      329,   333,   990,  -458,  -458,  -458,  -458,   435,  -458,  -458,
1032 |     -458,  -458,  -458,  -458,  -458,  -458,  -458,   346,   352,   357,
1033 |     -458,  -458,  -458,  -458,  -458,  -458,  -458,   334,  -458,  1012,
1034 |     1484,  -458,   189,  -458,    14,  -458,   399,  1647,    45,    76,
1035 |     -458,  -458,    38,    38,  1344,   359,   251,  -458,  -458,  -458,
1036 |     -458,  -458,  -458,  -458,  -458,  -458,   342,  -458,   363,   358,
1037 |      424,   653,  -458,   768,  1531,  -458,   196,  1313,  -458,  -458,
1038 |     -458,  -458,    62,   303,  -458,   151,   366,   259,   268,   271,
1039 |      255,   123,   263,   211,   127,  -458,  1037,  -458,  -458,  -458,
1040 |      364,  -458,    90,  -458,  -458,   437,  1344,  1344,  1344,   -44,
1041 |      389,  1108,   378,  -458,  -458,  -458,   382,   379,  -458,  -458,
1042 |     -458,  -458,  -458,  -458,   376,  -458,   375,   377,  1130,  1578,
1043 |      189,  -458,  -458,  -458,  1344,   219,   219,   388,   254,   256,
1044 |     -458,  -458,  1344,  -458,    38,  1313,   768,   746,  1344,  -458,
1045 |     -458,  -458,   675,  -458,   381,  1344,  -458,  -458,   151,  1037,
1046 |     -458,   105,  -458,  -458,  -458,  1344,   383,   387,   415,   380,
1047 |     1155,   426,   439,  -458,  -458,  -458,  -458,  -458,  -458,  -458,
1048 |      391,  -458,   427,   430,  -458,   119,  -458,  -458,  -458,  -458,
1049 |     -458,  -458,   768,  -458,  -458,   310,   436,   113,  -458,   176,
1050 |     -458,  -458,  -458,   193,  1037,  -458,  -458,   568,   568,   568,
1051 |     1344,  1344,   442,   568,  1226,  -458,  -458,  -458,   219,   443,
1052 |     -458,   394,  1248,  -458,    42,  -458,  -458,  -458,   455,  -458,
1053 |     -458,   438,  -458,  1344,  -458,  1344,   447,   347,   158,  -458,
1054 |     1273,  1037,  -458,  -458,   568,   449,  -458,  -458,  1344,   219,
1055 |      451,  1037,  -458,   203,  -458,  -458,  -458,   347,  -458,   217,
1056 |     -458,  -458
1057 | };
1058 | 
1059 | /* YYPGOTO[NTERM-NUM].  */
1060 | static const short yypgoto[] =
1061 | {
1062 |     -458,  -458,  -458,   487,   419,   -35,     1,   266,  -458,  -458,
1063 |      365,  -458,   395,  -118,  -458,   129,  -458,  -104,  -327,   -30,
1064 |        7,     9,  -458,  -458,  -458,  -458,  -458,  -458,   -22,   -15,
1065 |       97,  -458,  -458,  -458,   486,  -458,  -458,  -458,   276,  -458,
1066 |     -458,  -458,  -458,   370,  -458,   288,  -458,  -458,  -458,  -458,
1067 |      104,  -458,  -458,  -458,  -458,  -458,   148,  -458,  -458,  -458,
1068 |     -458,   -87,  -458,   384,  -458,  -458,  -458,  -458,   -42,    69,
1069 |     -458,  -458,    73,  -245,  -458,  -458,  -458,  -458,   504,  -458,
1070 |       52,  -458,  -458,  -458,  -458,  -137,  -458,   171,  -319,   -99,
1071 |     -458,  -458,  -458,  -458,   200,  -458,  -458,  -458,  -458,  -458,
1072 |     -458,  -458,  -458,  -458,  -458,  -458,   373,  -458,  -458,  -458,
1073 |     -458,  -458,    24,  -458,  -131,  -458,  -128,  -458,  -389,  -458,
1074 |      270,   262,   297,   265,   267,  -458,   299,  -458,   253,  -458,
1075 |      283,  -458,   252,  -458,  -113,  -458,  -458,  -458,  -458,  -458,
1076 |     -458,  -458,  -458,  -458,  -458,  -458,  -458,  -458,  -458,  -458,
1077 |     -458,  -458,  -458,  -458,  -458,  -115,  -458,  -458,  -458,  -250,
1078 |      260,    77,  -458,   122,   125,  -458,  -458,  -458,  -457,    58,
1079 |       37,  -458
1080 | };
1081 | 
1082 | /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1083 |    positive, shift that token.  If negative, reduce the rule which
1084 |    number is the opposite.  If zero, do what YYDEFACT says.
1085 |    If YYTABLE_NINF, syntax error.  */
1086 | #define YYTABLE_NINF -240
1087 | static const short yytable[] =
1088 | {
1089 |      143,    32,    98,   180,   227,    90,   218,    34,   430,    35,
1090 |      390,   139,    91,   178,   388,   517,   477,     1,     1,    67,
1091 |      130,     1,   523,   131,    64,   112,   276,   230,     1,   109,
1092 |       32,   154,     1,    68,    89,     1,    34,   450,    35,    99,
1093 |      267,     1,   180,    35,    69,   387,   257,   230,   248,     1,
1094 |       92,   230,    62,    64,   252,   253,   255,     8,    88,   269,
1095 |      270,   271,   272,   273,   274,   112,   240,   418,   242,   450,
1096 |      419,    82,   425,    70,    71,   127,   140,    65,    87,    94,
1097 |      277,    62,    94,    98,    62,   359,   102,   360,    26,   522,
1098 |       27,    83,   114,    27,   124,   385,   359,   126,   360,   140,
1099 |       27,    91,   101,    91,   573,    83,    65,   374,   124,   444,
1100 |      231,    83,   515,    27,   579,   232,   368,   383,   454,    83,
1101 |      361,    27,   391,   267,   234,   392,   103,   475,  -180,   218,
1102 |      127,    91,    98,    74,    75,    91,   476,    72,    91,   103,
1103 |       91,   455,   224,    78,    79,   456,   406,   401,   285,   286,
1104 |      457,   102,   115,   135,   164,   475,   165,   142,   117,     8,
1105 |       88,   395,   119,   404,   484,   404,   404,   404,   404,   399,
1106 |      524,   404,   265,   525,   167,   168,   404,   121,   524,   404,
1107 |      169,   543,   404,   417,   455,   420,   415,   333,   538,   401,
1108 |      423,   218,   123,   539,   363,   128,   129,    76,   500,    27,
1109 |      125,   436,   296,   287,   288,   375,   136,    80,   548,   549,
1110 |      550,   297,   298,   146,   554,   146,   249,   250,   514,   127,
1111 |      147,   138,   147,   569,   171,   142,   172,   516,   218,   156,
1112 |      173,   364,   570,   174,   175,   526,   312,   176,   177,   313,
1113 |      314,   544,   233,   163,   545,   574,   461,   146,   131,   359,
1114 |      146,   394,   146,    27,   147,   265,   236,   147,   524,   147,
1115 |      448,   546,   449,   180,   148,   180,   148,   359,   524,   394,
1116 |      541,   580,   396,   282,   283,   471,    12,    13,    14,   107,
1117 |       16,    17,   524,   217,   473,   581,   315,   316,   480,   317,
1118 |      290,   291,   404,   293,   294,   486,   487,   488,   148,   516,
1119 |      492,   148,   333,   148,   104,   105,   106,   256,   257,   165,
1120 |      142,   237,   502,   387,   257,   463,   464,   218,   507,   464,
1121 |      508,   464,   244,   503,   278,   166,   238,   167,   168,   241,
1122 |      458,   459,   243,   169,   461,   245,   279,   218,   180,   180,
1123 |      368,   368,   375,   375,   480,   275,   280,   521,   511,   513,
1124 |      281,   480,   473,   230,   218,   318,   365,   366,   367,   532,
1125 |      371,   224,   380,   381,   426,   404,   384,   364,   224,  -164,
1126 |      393,   170,   258,   124,   259,   260,   397,   171,   427,   172,
1127 |      398,   424,  -238,   173,   180,  -239,   174,   175,   428,   432,
1128 |      176,   177,   431,   433,   540,   224,   480,   434,   442,   551,
1129 |      552,   396,   451,   556,   300,   301,   302,   303,   304,   305,
1130 |      306,   307,   308,   309,   562,   439,   465,   -64,   -64,   -64,
1131 |      -64,   440,   566,   557,   567,   -64,   441,   -64,   462,   466,
1132 |      467,   468,   572,   480,   375,   478,   483,   576,   320,   321,
1133 |      165,   142,   493,   480,   485,   489,   494,   495,   496,   497,
1134 |      224,   498,   506,   530,   577,   520,   166,   527,   167,   168,
1135 |      560,   528,   310,   535,   169,     3,     4,     5,     6,     7,
1136 |        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1137 |       18,    19,    20,    21,    22,    23,   322,   323,   324,   529,
1138 |      325,   326,   327,   328,   329,   330,   331,   332,    24,    25,
1139 |      533,   536,   138,   534,   537,   542,   553,   559,   171,   564,
1140 |      172,   568,   565,   575,   173,   578,    93,   174,   175,   134,
1141 |      470,   176,   177,   164,     2,   165,   142,   247,   216,   108,
1142 |      386,   246,   382,   510,   239,   509,   100,   438,   453,   251,
1143 |      407,   166,   412,   167,   168,   409,   403,   414,   410,   169,
1144 |        3,     4,     5,     6,     7,     8,    88,    10,    11,    12,
1145 |       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1146 |       23,   320,   250,   165,   142,   413,   408,   422,   505,     0,
1147 |      504,   563,   547,   411,     0,     0,     0,     0,     0,   166,
1148 |        0,   167,   168,   171,     0,   172,     0,   169,     0,   173,
1149 |        0,     0,   174,   175,   429,     0,   176,   177,     0,     0,
1150 |        0,     0,     0,     0,     0,     0,     0,     0,     0,   322,
1151 |      323,   324,     0,   325,   326,   327,   328,   329,   330,   331,
1152 |      332,    24,    25,     0,     0,   138,     0,     0,     0,     0,
1153 |        0,   171,     0,   172,     0,     0,     0,   173,     0,     0,
1154 |      174,   175,     0,     0,   176,   177,   256,   257,   165,   142,
1155 |        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1156 |        2,     0,     0,     0,   166,     0,   167,   168,   256,   257,
1157 |      165,   142,   169,     0,     0,     0,     0,     0,     0,     0,
1158 |        0,     0,     0,     0,     0,     0,   166,     0,   167,   168,
1159 |        0,     8,    88,    10,   169,    12,    13,    14,    15,    16,
1160 |       17,    18,    19,    20,    21,    22,    23,     0,     0,     0,
1161 |      170,   469,     0,   259,   260,     0,   171,     0,   172,     0,
1162 |      144,     0,   173,     0,     0,   174,   175,     0,     0,   176,
1163 |      177,     0,   479,     0,     0,   515,     0,     0,   171,   164,
1164 |      172,   165,   142,     0,   173,     0,     0,   174,   175,     0,
1165 |        0,   176,   177,     0,     0,     0,     0,   166,     0,   167,
1166 |      168,   164,     0,   165,   142,   169,     0,     0,     0,     0,
1167 |        0,     0,     0,     0,     0,     0,     0,     0,     0,   166,
1168 |        0,   167,   168,     0,     0,     0,   164,   169,   165,   142,
1169 |        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1170 |        0,     0,   512,   170,   166,     0,   167,   168,     0,   171,
1171 |        0,   172,   169,     0,     0,   173,     0,     0,   174,   175,
1172 |        0,     0,   176,   177,     0,   170,     0,     0,     0,     0,
1173 |        0,   171,     0,   172,     0,     0,     0,   173,     0,     0,
1174 |      174,   175,     0,     0,   176,   177,     0,     0,     0,     0,
1175 |        0,     0,     0,     0,     0,     0,   171,   400,   172,     0,
1176 |        0,   164,   173,   165,   142,   174,   175,     0,     0,   176,
1177 |      177,     0,     0,     0,     0,     0,     0,     0,     0,   166,
1178 |        0,   167,   168,   164,     0,   165,   142,   169,     0,     0,
1179 |        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1180 |        0,   166,     0,   167,   168,     0,     0,     0,   164,   169,
1181 |      165,   142,     0,     0,     0,     0,     0,     0,     0,     0,
1182 |        0,     0,     0,     0,     0,     0,   166,   405,   167,   168,
1183 |        0,   171,     0,   172,   169,     0,     0,   173,     0,     0,
1184 |      174,   175,     0,     0,   176,   177,     0,   416,     0,     0,
1185 |        0,     0,     0,   171,     0,   172,     0,     0,     0,   173,
1186 |        0,     0,   174,   175,     0,     0,   176,   177,     0,     0,
1187 |        0,     0,     0,     0,     0,     0,     0,     0,   171,   421,
1188 |      172,     0,     0,   164,   173,   165,   142,   174,   175,     0,
1189 |        0,   176,   177,     0,     0,     0,     0,     0,     0,     0,
1190 |        0,   166,     0,   167,   168,   164,     0,   165,   142,   169,
1191 |        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1192 |        0,     0,     0,   166,     0,   167,   168,     0,     0,     0,
1193 |      164,   169,   165,   142,     0,     0,     0,     0,     0,     0,
1194 |        0,     0,     0,     0,   435,     0,     0,     0,   166,     0,
1195 |      167,   168,     0,   171,     0,   172,   169,     0,     0,   173,
1196 |        0,     0,   174,   175,     0,     0,   176,   177,     0,     0,
1197 |        0,     0,     0,     0,   443,   171,     0,   172,     0,     0,
1198 |        0,   173,     0,     0,   174,   175,     0,     0,   176,   177,
1199 |        0,     0,     0,     0,   479,     0,     0,     0,     0,     0,
1200 |      171,   164,   172,   165,   142,     0,   173,     0,     0,   174,
1201 |      175,     0,     0,   176,   177,     0,     0,     0,     0,   166,
1202 |        0,   167,   168,   164,     0,   165,   142,   169,     0,     0,
1203 |        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1204 |        0,   166,     0,   167,   168,     0,     0,     0,   164,   169,
1205 |      165,   142,     0,     0,     0,     0,     0,     0,     0,     0,
1206 |        0,     0,   490,     0,     0,     0,   166,     0,   167,   168,
1207 |        0,   171,     0,   172,   169,     0,     0,   173,     0,     0,
1208 |      174,   175,     0,     0,   176,   177,     0,     0,     0,     0,
1209 |        0,     0,   499,   171,     0,   172,     0,     0,     0,   173,
1210 |        0,     0,   174,   175,     0,     0,   176,   177,     0,   531,
1211 |        0,     0,     0,     0,     0,     0,     0,     0,   171,   164,
1212 |      172,   165,   142,     0,   173,     0,     0,   174,   175,     0,
1213 |        0,   176,   177,     0,     0,     0,     0,   166,     0,   167,
1214 |      168,   164,     0,   165,   142,   169,     0,     0,     0,     0,
1215 |        0,     0,     0,     0,     0,     0,     0,     0,     0,   166,
1216 |        0,   167,   168,     0,     0,     0,   164,   169,   165,   142,
1217 |        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1218 |      555,     0,     0,     0,   166,     0,   167,   168,     0,   171,
1219 |        0,   172,   169,     0,     0,   173,     0,     0,   174,   175,
1220 |        0,     0,   176,   177,     0,   561,   164,     0,   165,   142,
1221 |        0,   171,     0,   172,     0,     0,     0,   173,     0,     0,
1222 |      174,   175,     0,     0,   176,   177,   167,   168,     0,     0,
1223 |      571,     0,   169,     0,     0,     0,   171,   164,   172,   165,
1224 |      142,     0,   173,     0,     0,   174,   175,     0,     0,   176,
1225 |      177,     0,     0,     0,     0,   166,     0,   167,   168,     0,
1226 |        0,     0,     0,   169,     0,     0,     0,     0,     0,     0,
1227 |      472,   164,     0,   165,   142,     0,   171,     0,   172,     0,
1228 |        0,     0,   173,     0,     0,   174,   175,     0,     0,   176,
1229 |      177,   167,   168,     0,     0,     0,     0,   169,     0,     0,
1230 |        0,     0,     0,     0,     0,     0,     0,   171,     0,   172,
1231 |        0,     0,     0,   173,     0,     0,   174,   175,     0,     0,
1232 |      176,   177,     0,     0,     0,     0,     0,     0,     0,     1,
1233 |        2,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1234 |        0,   254,     0,   172,     0,     0,     0,   173,     0,     0,
1235 |      174,   175,     0,     0,   176,   177,     3,     4,     5,     6,
1236 |        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1237 |       17,    18,    19,    20,    21,    22,    23,     1,     2,     0,
1238 |        0,     0,     0,     0,     0,     0,     0,     0,     0,    24,
1239 |       25,     0,     0,     0,     0,     2,     0,     0,     0,    26,
1240 |        0,    27,     0,     0,     3,     4,     5,     6,     7,     8,
1241 |       88,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1242 |       19,    20,    21,    22,    23,     2,     8,    88,    10,     0,
1243 |       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1244 |       22,    23,     0,     0,     0,   359,     0,   360,   445,    27,
1245 |        0,     3,     4,     5,     6,     7,     8,    88,    10,    11,
1246 |       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1247 |       22,    23,     2,     0,     0,     0,     0,     0,     0,     0,
1248 |        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1249 |        0,     0,   359,     0,   394,   445,    27,     0,     3,     4,
1250 |        5,     6,     7,     8,    88,    10,    11,    12,    13,    14,
1251 |       15,    16,    17,    18,    19,    20,    21,    22,    23,   223,
1252 |        2,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1253 |        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1254 |        0,     2,   501,     0,   452,     0,     3,     4,     5,     6,
1255 |        7,     8,    88,    10,    11,    12,    13,    14,    15,    16,
1256 |       17,    18,    19,    20,    21,    22,    23,     3,     4,     5,
1257 |        6,     7,     8,    88,    10,    11,    12,    13,    14,    15,
1258 |       16,    17,    18,    19,    20,    21,    22,    23,     2,     0,
1259 |        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1260 |        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1261 |        0,     0,     0,     0,     3,     4,     5,     6,     7,     8,
1262 |       88,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1263 |       19,    20,    21,    22,    23
1264 | };
1265 | 
1266 | static const short yycheck[] =
1267 | {
1268 |      115,     0,    32,   131,   141,    27,   137,     0,   327,     0,
1269 |      260,   110,    27,   131,   259,   472,   405,     3,     3,    63,
1270 |       63,     3,   479,    66,     0,    60,    22,     6,     3,    44,
1271 |       29,   118,     3,    46,    27,     3,    29,   364,    29,    32,
1272 |      171,     3,   170,    34,    42,     3,     4,     6,   163,     3,
1273 |        0,     6,     0,    29,   167,   168,   169,    35,    36,   172,
1274 |      173,   174,   175,   176,   177,   100,   153,   312,   155,   396,
1275 |      315,    36,   322,     3,     4,    90,   111,     0,    26,    64,
1276 |       76,    29,    64,   113,    32,    71,    34,    73,    73,   478,
1277 |       75,    73,    73,    75,    85,    74,    71,    90,    73,   134,
1278 |       75,   116,    73,   118,   561,    73,    29,    69,    99,   359,
1279 |       69,    73,    70,    75,   571,    74,   231,   245,    73,    73,
1280 |      224,    75,    65,   254,   146,    68,    71,    65,    73,   260,
1281 |      145,   146,   162,     3,     4,   150,    74,    67,   153,    71,
1282 |      155,    65,   141,     3,     4,    69,   277,   275,    25,    26,
1283 |       74,    99,    73,   101,     3,    65,     5,     6,    67,    35,
1284 |       36,   265,    67,   276,    74,   278,   279,   280,   281,   268,
1285 |       65,   284,   171,    68,    23,    24,   289,    67,    65,   292,
1286 |       29,    68,   295,   311,    65,   316,   299,   222,    69,   317,
1287 |      318,   322,    74,    74,   224,    64,    65,    67,   448,    75,
1288 |       74,   332,    75,    80,    81,   235,    72,    67,   527,   528,
1289 |      529,    84,    85,   116,   533,   118,     3,     4,   468,   234,
1290 |      116,    67,   118,    65,    73,     6,    75,   472,   359,     3,
1291 |       79,   224,    74,    82,    83,   485,    20,    86,    87,    23,
1292 |       24,    65,   145,    73,    68,   564,   374,   150,    66,    71,
1293 |      153,    73,   155,    75,   150,   254,    64,   153,    65,   155,
1294 |       71,    68,    73,   391,   116,   393,   118,    71,    65,    73,
1295 |      515,    68,   265,    18,    19,   393,    39,    40,    41,    42,
1296 |       43,    44,    65,    74,   397,    68,    70,    71,   416,    73,
1297 |       27,    28,   405,    82,    83,   426,   427,   428,   150,   544,
1298 |      431,   153,   337,   155,    38,    39,    40,     3,     4,     5,
1299 |        6,    64,   449,     3,     4,    64,    65,   448,    64,    65,
1300 |       64,    65,    65,   454,    21,    21,    68,    23,    24,    68,
1301 |      372,   373,    68,    29,   462,    66,    77,   468,   466,   467,
1302 |      455,   456,   372,   373,   472,    73,    78,   475,   466,   467,
1303 |       79,   479,   465,     6,   485,    65,    74,    65,    65,   490,
1304 |       64,   360,    68,    68,    73,   478,    68,   360,   367,    69,
1305 |       69,    67,    68,   364,    70,    71,    74,    73,    73,    75,
1306 |       74,    72,    69,    79,   512,    69,    82,    83,    73,     3,
1307 |       86,    87,    73,    64,   512,   394,   524,    64,    64,   530,
1308 |      531,   394,     3,   534,     8,     9,    10,    11,    12,    13,
1309 |       14,    15,    16,    17,   542,    69,    74,    63,    64,    65,
1310 |       66,    69,   553,   538,   555,    71,    69,    73,    69,    66,
1311 |       72,     7,   560,   561,   464,    69,    72,   568,     3,     4,
1312 |        5,     6,    64,   571,     7,    56,    64,    68,    72,    74,
1313 |      449,    74,    64,    73,   569,    74,    21,    74,    23,    24,
1314 |       66,    74,    66,    72,    29,    30,    31,    32,    33,    34,
1315 |       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1316 |       45,    46,    47,    48,    49,    50,    51,    52,    53,    74,
1317 |       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1318 |       74,    74,    67,    64,    74,    69,    64,    64,    73,    54,
1319 |       75,    64,    74,    64,    79,    64,    29,    82,    83,   100,
1320 |      391,    86,    87,     3,     4,     5,     6,   162,   133,    43,
1321 |      254,   161,   244,   464,   150,   462,    32,   337,   367,   166,
1322 |      278,    21,   289,    23,    24,   280,   276,   295,   281,    29,
1323 |       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1324 |       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1325 |       50,     3,     4,     5,     6,   292,   279,   317,   456,    -1,
1326 |      455,   544,   524,   284,    -1,    -1,    -1,    -1,    -1,    21,
1327 |       -1,    23,    24,    73,    -1,    75,    -1,    29,    -1,    79,
1328 |       -1,    -1,    82,    83,    36,    -1,    86,    87,    -1,    -1,
1329 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,
1330 |       52,    53,    -1,    55,    56,    57,    58,    59,    60,    61,
1331 |       62,    63,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,
1332 |       -1,    73,    -1,    75,    -1,    -1,    -1,    79,    -1,    -1,
1333 |       82,    83,    -1,    -1,    86,    87,     3,     4,     5,     6,
1334 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1335 |        4,    -1,    -1,    -1,    21,    -1,    23,    24,     3,     4,
1336 |        5,     6,    29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1337 |       -1,    -1,    -1,    -1,    -1,    -1,    21,    -1,    23,    24,
1338 |       -1,    35,    36,    37,    29,    39,    40,    41,    42,    43,
1339 |       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
1340 |       67,    68,    -1,    70,    71,    -1,    73,    -1,    75,    -1,
1341 |       64,    -1,    79,    -1,    -1,    82,    83,    -1,    -1,    86,
1342 |       87,    -1,    67,    -1,    -1,    70,    -1,    -1,    73,     3,
1343 |       75,     5,     6,    -1,    79,    -1,    -1,    82,    83,    -1,
1344 |       -1,    86,    87,    -1,    -1,    -1,    -1,    21,    -1,    23,
1345 |       24,     3,    -1,     5,     6,    29,    -1,    -1,    -1,    -1,
1346 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,
1347 |       -1,    23,    24,    -1,    -1,    -1,     3,    29,     5,     6,
1348 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1349 |       -1,    -1,    66,    67,    21,    -1,    23,    24,    -1,    73,
1350 |       -1,    75,    29,    -1,    -1,    79,    -1,    -1,    82,    83,
1351 |       -1,    -1,    86,    87,    -1,    67,    -1,    -1,    -1,    -1,
1352 |       -1,    73,    -1,    75,    -1,    -1,    -1,    79,    -1,    -1,
1353 |       82,    83,    -1,    -1,    86,    87,    -1,    -1,    -1,    -1,
1354 |       -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,    -1,
1355 |       -1,     3,    79,     5,     6,    82,    83,    -1,    -1,    86,
1356 |       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,
1357 |       -1,    23,    24,     3,    -1,     5,     6,    29,    -1,    -1,
1358 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1359 |       -1,    21,    -1,    23,    24,    -1,    -1,    -1,     3,    29,
1360 |        5,     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1361 |       -1,    -1,    -1,    -1,    -1,    -1,    21,    69,    23,    24,
1362 |       -1,    73,    -1,    75,    29,    -1,    -1,    79,    -1,    -1,
1363 |       82,    83,    -1,    -1,    86,    87,    -1,    67,    -1,    -1,
1364 |       -1,    -1,    -1,    73,    -1,    75,    -1,    -1,    -1,    79,
1365 |       -1,    -1,    82,    83,    -1,    -1,    86,    87,    -1,    -1,
1366 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    74,
1367 |       75,    -1,    -1,     3,    79,     5,     6,    82,    83,    -1,
1368 |       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1369 |       -1,    21,    -1,    23,    24,     3,    -1,     5,     6,    29,
1370 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1371 |       -1,    -1,    -1,    21,    -1,    23,    24,    -1,    -1,    -1,
1372 |        3,    29,     5,     6,    -1,    -1,    -1,    -1,    -1,    -1,
1373 |       -1,    -1,    -1,    -1,    64,    -1,    -1,    -1,    21,    -1,
1374 |       23,    24,    -1,    73,    -1,    75,    29,    -1,    -1,    79,
1375 |       -1,    -1,    82,    83,    -1,    -1,    86,    87,    -1,    -1,
1376 |       -1,    -1,    -1,    -1,    72,    73,    -1,    75,    -1,    -1,
1377 |       -1,    79,    -1,    -1,    82,    83,    -1,    -1,    86,    87,
1378 |       -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
1379 |       73,     3,    75,     5,     6,    -1,    79,    -1,    -1,    82,
1380 |       83,    -1,    -1,    86,    87,    -1,    -1,    -1,    -1,    21,
1381 |       -1,    23,    24,     3,    -1,     5,     6,    29,    -1,    -1,
1382 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1383 |       -1,    21,    -1,    23,    24,    -1,    -1,    -1,     3,    29,
1384 |        5,     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1385 |       -1,    -1,    64,    -1,    -1,    -1,    21,    -1,    23,    24,
1386 |       -1,    73,    -1,    75,    29,    -1,    -1,    79,    -1,    -1,
1387 |       82,    83,    -1,    -1,    86,    87,    -1,    -1,    -1,    -1,
1388 |       -1,    -1,    72,    73,    -1,    75,    -1,    -1,    -1,    79,
1389 |       -1,    -1,    82,    83,    -1,    -1,    86,    87,    -1,    64,
1390 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,     3,
1391 |       75,     5,     6,    -1,    79,    -1,    -1,    82,    83,    -1,
1392 |       -1,    86,    87,    -1,    -1,    -1,    -1,    21,    -1,    23,
1393 |       24,     3,    -1,     5,     6,    29,    -1,    -1,    -1,    -1,
1394 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,
1395 |       -1,    23,    24,    -1,    -1,    -1,     3,    29,     5,     6,
1396 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1397 |       64,    -1,    -1,    -1,    21,    -1,    23,    24,    -1,    73,
1398 |       -1,    75,    29,    -1,    -1,    79,    -1,    -1,    82,    83,
1399 |       -1,    -1,    86,    87,    -1,    67,     3,    -1,     5,     6,
1400 |       -1,    73,    -1,    75,    -1,    -1,    -1,    79,    -1,    -1,
1401 |       82,    83,    -1,    -1,    86,    87,    23,    24,    -1,    -1,
1402 |       67,    -1,    29,    -1,    -1,    -1,    73,     3,    75,     5,
1403 |        6,    -1,    79,    -1,    -1,    82,    83,    -1,    -1,    86,
1404 |       87,    -1,    -1,    -1,    -1,    21,    -1,    23,    24,    -1,
1405 |       -1,    -1,    -1,    29,    -1,    -1,    -1,    -1,    -1,    -1,
1406 |       67,     3,    -1,     5,     6,    -1,    73,    -1,    75,    -1,
1407 |       -1,    -1,    79,    -1,    -1,    82,    83,    -1,    -1,    86,
1408 |       87,    23,    24,    -1,    -1,    -1,    -1,    29,    -1,    -1,
1409 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    -1,    75,
1410 |       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    -1,
1411 |       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
1412 |        4,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1413 |       -1,    73,    -1,    75,    -1,    -1,    -1,    79,    -1,    -1,
1414 |       82,    83,    -1,    -1,    86,    87,    30,    31,    32,    33,
1415 |       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1416 |       44,    45,    46,    47,    48,    49,    50,     3,     4,    -1,
1417 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,
1418 |       64,    -1,    -1,    -1,    -1,     4,    -1,    -1,    -1,    73,
1419 |       -1,    75,    -1,    -1,    30,    31,    32,    33,    34,    35,
1420 |       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1421 |       46,    47,    48,    49,    50,     4,    35,    36,    37,    -1,
1422 |       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1423 |       49,    50,    -1,    -1,    -1,    71,    -1,    73,    74,    75,
1424 |       -1,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1425 |       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1426 |       49,    50,     4,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1427 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1428 |       -1,    -1,    71,    -1,    73,    74,    75,    -1,    30,    31,
1429 |       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1430 |       42,    43,    44,    45,    46,    47,    48,    49,    50,     3,
1431 |        4,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1432 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1433 |       -1,     4,    74,    -1,     7,    -1,    30,    31,    32,    33,
1434 |       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1435 |       44,    45,    46,    47,    48,    49,    50,    30,    31,    32,
1436 |       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1437 |       43,    44,    45,    46,    47,    48,    49,    50,     4,    -1,
1438 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1439 |       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1440 |       -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,    35,
1441 |       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1442 |       46,    47,    48,    49,    50
1443 | };
1444 | 
1445 | /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1446 |    symbol of state STATE-NUM.  */
1447 | static const unsigned short yystos[] =
1448 | {
1449 |        0,     3,     4,    30,    31,    32,    33,    34,    35,    36,
1450 |       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1451 |       47,    48,    49,    50,    63,    64,    73,    75,    89,    90,
1452 |       91,    93,    94,    95,   108,   109,   110,   111,   115,   117,
1453 |      118,   119,   120,   121,   122,   123,   124,   125,   127,   128,
1454 |      135,   137,   138,   141,   143,   144,   147,   162,   164,   165,
1455 |      166,   167,   168,   170,   200,   249,   250,    63,    46,    42,
1456 |        3,     4,    67,   142,     3,     4,    67,   148,     3,     4,
1457 |       67,   136,    36,    73,   107,   108,   109,   168,    36,   108,
1458 |      116,   117,     0,    91,    64,    96,    98,    99,   107,   108,
1459 |      166,    73,   168,    71,    95,    95,    95,    42,   122,   117,
1460 |      163,    92,    93,    94,    73,    73,   139,    67,   145,    67,
1461 |      129,    67,   168,    74,   109,    74,   108,   117,    64,    65,
1462 |       63,    66,   100,   254,    92,   168,    72,   112,    67,   177,
1463 |       93,   169,     6,   243,    64,   116,   118,   138,   144,   149,
1464 |      150,   151,   152,   140,   149,   146,     3,   131,   132,   133,
1465 |      134,   130,    97,    73,     3,     5,    21,    23,    24,    29,
1466 |       67,    73,    75,    79,    82,    83,    86,    87,   101,   114,
1467 |      204,   206,   207,   208,   209,   210,   211,   212,   214,   216,
1468 |      218,   220,   222,   223,   224,   225,   226,   227,   228,   229,
1469 |      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1470 |      240,   241,   242,   243,   244,   255,   100,    74,   202,   203,
1471 |      204,   247,   178,     3,    94,   171,   172,   173,   174,   175,
1472 |        6,    69,    74,   118,   116,   153,    64,    64,    68,   151,
1473 |      149,    68,   149,    68,    65,    66,   131,    98,   243,     3,
1474 |        4,   194,   222,   222,    73,   222,     3,     4,    68,    70,
1475 |       71,   101,   102,   103,   161,    94,   126,   202,   245,   222,
1476 |      222,   222,   222,   222,   222,    73,    22,    76,    21,    77,
1477 |       78,    79,    18,    19,   213,    25,    26,    80,    81,   215,
1478 |       27,    28,   217,    82,    83,   219,    75,    84,    85,   221,
1479 |        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1480 |       66,   205,    20,    23,    24,    70,    71,    73,    65,   113,
1481 |        3,     4,    51,    52,    53,    55,    56,    57,    58,    59,
1482 |       60,    61,    62,    93,   176,   177,   180,   181,   182,   183,
1483 |      184,   185,   186,   187,   188,   190,   191,   192,   193,   194,
1484 |      195,   196,   197,   198,   199,   200,   201,   202,   249,    71,
1485 |       73,   105,   106,   107,   108,    74,    65,    65,   243,   251,
1486 |      252,    64,   154,   155,    69,   107,   156,   157,   158,   159,
1487 |       68,    68,   133,   204,    68,    74,   126,     3,   161,   104,
1488 |      247,    65,    68,    69,    73,   105,   108,    74,    74,   177,
1489 |       74,   204,   248,   208,   222,    69,   202,   209,   210,   211,
1490 |      212,   214,   216,   218,   220,   222,    67,   204,   161,   161,
1491 |      202,    74,   248,   204,    72,   247,    73,    73,    73,    36,
1492 |      176,    73,     3,    64,    64,    64,   202,   179,   182,    69,
1493 |       69,    69,    64,    72,   247,    74,   105,   173,    71,    73,
1494 |      106,     3,     7,   175,    73,    65,    69,    74,   156,   156,
1495 |      160,   204,    69,    64,    65,    74,    66,    72,     7,    68,
1496 |      103,   101,    67,   222,   246,    65,    74,   206,    69,    67,
1497 |      204,   256,   257,    72,    74,     7,   202,   202,   202,    56,
1498 |       64,   189,   202,    64,    64,    68,    72,    74,    74,    72,
1499 |      247,    74,   173,   202,   252,   251,    64,    64,    64,   160,
1500 |      157,   101,    66,   101,   247,    70,   161,   256,   258,   259,
1501 |       74,   204,   206,   256,    65,    68,   247,    74,    74,    74,
1502 |       73,    64,   202,    74,    64,    72,    74,    74,    69,    74,
1503 |      101,   161,    69,    68,    65,    68,    68,   257,   176,   176,
1504 |      176,   202,   202,    64,   176,    64,   202,   243,   253,    64,
1505 |       66,    67,   204,   258,    54,    74,   202,   202,    64,    65,
1506 |       74,    67,   204,   256,   176,    64,   202,   243,    64,   256,
1507 |       68,    68
1508 | };
1509 | 
1510 | #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
1511 | # define YYSIZE_T __SIZE_TYPE__
1512 | #endif
1513 | #if ! defined (YYSIZE_T) && defined (size_t)
1514 | # define YYSIZE_T size_t
1515 | #endif
1516 | #if ! defined (YYSIZE_T)
1517 | # if defined (__STDC__) || defined (__cplusplus)
1518 | #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1519 | #  define YYSIZE_T size_t
1520 | # endif
1521 | #endif
1522 | #if ! defined (YYSIZE_T)
1523 | # define YYSIZE_T unsigned int
1524 | #endif
1525 | 
1526 | #define yyerrok		(yyerrstatus = 0)
1527 | #define yyclearin	(yychar = YYEMPTY)
1528 | #define YYEMPTY		(-2)
1529 | #define YYEOF		0
1530 | 
1531 | #define YYACCEPT	goto yyacceptlab
1532 | #define YYABORT		goto yyabortlab
1533 | #define YYERROR		goto yyerrlab1
1534 | 
1535 | 
1536 | /* Like YYERROR except do call yyerror.  This remains here temporarily
1537 |    to ease the transition to the new meaning of YYERROR, for GCC.
1538 |    Once GCC version 2 has supplanted version 1, this can go.  */
1539 | 
1540 | #define YYFAIL		goto yyerrlab
1541 | 
1542 | #define YYRECOVERING()  (!!yyerrstatus)
1543 | 
1544 | #define YYBACKUP(Token, Value)					\
1545 | do								\
1546 |   if (yychar == YYEMPTY && yylen == 1)				\
1547 |     {								\
1548 |       yychar = (Token);						\
1549 |       yylval = (Value);						\
1550 |       yytoken = YYTRANSLATE (yychar);				\
1551 |       YYPOPSTACK;						\
1552 |       goto yybackup;						\
1553 |     }								\
1554 |   else								\
1555 |     { 								\
1556 |       yyerror ("syntax error: cannot back up");\
1557 |       YYERROR;							\
1558 |     }								\
1559 | while (0)
1560 | 
1561 | #define YYTERROR	1
1562 | #define YYERRCODE	256
1563 | 
1564 | /* YYLLOC_DEFAULT -- Compute the default location (before the actions
1565 |    are run).  */
1566 | 
1567 | #ifndef YYLLOC_DEFAULT
1568 | # define YYLLOC_DEFAULT(Current, Rhs, N)         \
1569 |   Current.first_line   = Rhs[1].first_line;      \
1570 |   Current.first_column = Rhs[1].first_column;    \
1571 |   Current.last_line    = Rhs[N].last_line;       \
1572 |   Current.last_column  = Rhs[N].last_column;
1573 | #endif
1574 | 
1575 | /* YYLEX -- calling `yylex' with the right arguments.  */
1576 | 
1577 | #ifdef YYLEX_PARAM
1578 | # define YYLEX yylex (YYLEX_PARAM)
1579 | #else
1580 | # define YYLEX yylex ()
1581 | #endif
1582 | 
1583 | /* Enable debugging if requested.  */
1584 | #if YYDEBUG
1585 | 
1586 | # ifndef YYFPRINTF
1587 | #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1588 | #  define YYFPRINTF fprintf
1589 | # endif
1590 | 
1591 | # define YYDPRINTF(Args)			\