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