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