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