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