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