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