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