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