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