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