1 /* A Bison parser, made by GNU Bison 3.0.5. */ 2 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc. 6 7 This program is free software: you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation, either version 3 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19 20 /* As a special exception, you may create a larger work that contains 21 part or all of the Bison parser skeleton and distribute that work 22 under terms of your choice, so long as that work isn't itself a 23 parser generator using the skeleton or a modified version thereof 24 as a parser skeleton. Alternatively, if you modify or redistribute 25 the parser skeleton itself, you may (at your option) remove this 26 special exception, which will cause the skeleton and the resulting 27 Bison output files to be licensed under the GNU General Public 28 License without this special exception. 29 30 This special exception was added by the Free Software Foundation in 31 version 2.2 of Bison. */ 32 33 /* C LALR(1) parser skeleton written by Richard Stallman, by 34 simplifying the original so-called "semantic" parser. */ 35 36 /* All symbols defined below should begin with yy or YY, to avoid 37 infringing on user name space. This should be done even for local 38 variables, as they might otherwise be expanded by user macros. 39 There are some unavoidable exceptions within include files to 40 define necessary library symbols; they are noted "INFRINGES ON 41 USER NAME SPACE" below. */ 42 43 /* Identify Bison output. */ 44 #define YYBISON 1 45 46 /* Bison version. */ 47 #define YYBISON_VERSION "3.0.5" 48 49 /* Skeleton name. */ 50 #define YYSKELETON_NAME "yacc.c" 51 52 /* Pure parsers. */ 53 #define YYPURE 0 54 55 /* Push parsers. */ 56 #define YYPUSH 0 57 58 /* Pull parsers. */ 59 #define YYPULL 1 60 61 62 63 64 /* Copy the first part of user declarations. */ 65 #line 1 "rcparse.y" /* yacc.c:339 */ 66 /* rcparse.y -- parser for Windows rc files 67 Copyright (C) 1997-2020 Free Software Foundation, Inc. 68 Written by Ian Lance Taylor, Cygnus Support. 69 Extended by Kai Tietz, Onevision. 70 71 This file is part of GNU Binutils. 72 73 This program is free software; you can redistribute it and/or modify 74 it under the terms of the GNU General Public License as published by 75 the Free Software Foundation; either version 3 of the License, or 76 (at your option) any later version. 77 78 This program is distributed in the hope that it will be useful, 79 but WITHOUT ANY WARRANTY; without even the implied warranty of 80 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 81 GNU General Public License for more details. 82 83 You should have received a copy of the GNU General Public License 84 along with this program; if not, write to the Free Software 85 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 86 02110-1301, USA. */ 87 88 89 /* This is a parser for Windows rc files. It is based on the parser 90 by Gunther Ebert <gunther.ebert@ixos-leipzig.de>. */ 91 92 #include "sysdep.h" 93 #include "bfd.h" 94 #include "bucomm.h" 95 #include "libiberty.h" 96 #include "windres.h" 97 #include "safe-ctype.h" 98 99 /* The current language. */ 100 101 static unsigned short language; 102 103 /* The resource information during a sub statement. */ 104 105 static rc_res_res_info sub_res_info; 106 107 /* Dialog information. This is built by the nonterminals styles and 108 controls. */ 109 110 static rc_dialog dialog; 111 112 /* This is used when building a style. It is modified by the 113 nonterminal styleexpr. */ 114 115 static unsigned long style; 116 117 /* These are used when building a control. They are set before using 118 control_params. */ 119 120 static rc_uint_type base_style; 121 static rc_uint_type default_style; 122 static rc_res_id class; 123 static rc_res_id res_text_field; 124 static unichar null_unichar; 125 126 /* This is used for COMBOBOX, LISTBOX and EDITTEXT which 127 do not allow resource 'text' field in control definition. */ 128 static const rc_res_id res_null_text = { 1, {{0, &null_unichar}}}; 129 130 131 #line 132 "rcparse.c" /* yacc.c:339 */ 132 133 # ifndef YY_NULLPTR 134 # if defined __cplusplus && 201103L <= __cplusplus 135 # define YY_NULLPTR nullptr 136 # else 137 # define YY_NULLPTR 0 138 # endif 139 # endif 140 141 /* Enabling verbose error messages. */ 142 #ifdef YYERROR_VERBOSE 143 # undef YYERROR_VERBOSE 144 # define YYERROR_VERBOSE 1 145 #else 146 # define YYERROR_VERBOSE 0 147 #endif 148 149 /* In a future release of Bison, this section will be replaced 150 by #include "y.tab.h". */ 151 #ifndef YY_YY_RCPARSE_H_INCLUDED 152 # define YY_YY_RCPARSE_H_INCLUDED 153 /* Debug traces. */ 154 #ifndef YYDEBUG 155 # define YYDEBUG 0 156 #endif 157 #if YYDEBUG 158 extern int yydebug; 159 #endif 160 161 /* Token type. */ 162 #ifndef YYTOKENTYPE 163 # define YYTOKENTYPE 164 enum yytokentype 165 { 166 BEG = 258, 167 END = 259, 168 ACCELERATORS = 260, 169 VIRTKEY = 261, 170 ASCII = 262, 171 NOINVERT = 263, 172 SHIFT = 264, 173 CONTROL = 265, 174 ALT = 266, 175 BITMAP = 267, 176 CURSOR = 268, 177 DIALOG = 269, 178 DIALOGEX = 270, 179 EXSTYLE = 271, 180 CAPTION = 272, 181 CLASS = 273, 182 STYLE = 274, 183 AUTO3STATE = 275, 184 AUTOCHECKBOX = 276, 185 AUTORADIOBUTTON = 277, 186 CHECKBOX = 278, 187 COMBOBOX = 279, 188 CTEXT = 280, 189 DEFPUSHBUTTON = 281, 190 EDITTEXT = 282, 191 GROUPBOX = 283, 192 LISTBOX = 284, 193 LTEXT = 285, 194 PUSHBOX = 286, 195 PUSHBUTTON = 287, 196 RADIOBUTTON = 288, 197 RTEXT = 289, 198 SCROLLBAR = 290, 199 STATE3 = 291, 200 USERBUTTON = 292, 201 BEDIT = 293, 202 HEDIT = 294, 203 IEDIT = 295, 204 FONT = 296, 205 ICON = 297, 206 ANICURSOR = 298, 207 ANIICON = 299, 208 DLGINCLUDE = 300, 209 DLGINIT = 301, 210 FONTDIR = 302, 211 HTML = 303, 212 MANIFEST = 304, 213 PLUGPLAY = 305, 214 VXD = 306, 215 TOOLBAR = 307, 216 BUTTON = 308, 217 LANGUAGE = 309, 218 CHARACTERISTICS = 310, 219 VERSIONK = 311, 220 MENU = 312, 221 MENUEX = 313, 222 MENUITEM = 314, 223 SEPARATOR = 315, 224 POPUP = 316, 225 CHECKED = 317, 226 GRAYED = 318, 227 HELP = 319, 228 INACTIVE = 320, 229 MENUBARBREAK = 321, 230 MENUBREAK = 322, 231 MESSAGETABLE = 323, 232 RCDATA = 324, 233 STRINGTABLE = 325, 234 VERSIONINFO = 326, 235 FILEVERSION = 327, 236 PRODUCTVERSION = 328, 237 FILEFLAGSMASK = 329, 238 FILEFLAGS = 330, 239 FILEOS = 331, 240 FILETYPE = 332, 241 FILESUBTYPE = 333, 242 BLOCKSTRINGFILEINFO = 334, 243 BLOCKVARFILEINFO = 335, 244 VALUE = 336, 245 BLOCK = 337, 246 MOVEABLE = 338, 247 FIXED = 339, 248 PURE = 340, 249 IMPURE = 341, 250 PRELOAD = 342, 251 LOADONCALL = 343, 252 DISCARDABLE = 344, 253 NOT = 345, 254 QUOTEDUNISTRING = 346, 255 QUOTEDSTRING = 347, 256 STRING = 348, 257 NUMBER = 349, 258 SIZEDUNISTRING = 350, 259 SIZEDSTRING = 351, 260 IGNORED_TOKEN = 352, 261 NEG = 353 262 }; 263 #endif 264 /* Tokens. */ 265 #define BEG 258 266 #define END 259 267 #define ACCELERATORS 260 268 #define VIRTKEY 261 269 #define ASCII 262 270 #define NOINVERT 263 271 #define SHIFT 264 272 #define CONTROL 265 273 #define ALT 266 274 #define BITMAP 267 275 #define CURSOR 268 276 #define DIALOG 269 277 #define DIALOGEX 270 278 #define EXSTYLE 271 279 #define CAPTION 272 280 #define CLASS 273 281 #define STYLE 274 282 #define AUTO3STATE 275 283 #define AUTOCHECKBOX 276 284 #define AUTORADIOBUTTON 277 285 #define CHECKBOX 278 286 #define COMBOBOX 279 287 #define CTEXT 280 288 #define DEFPUSHBUTTON 281 289 #define EDITTEXT 282 290 #define GROUPBOX 283 291 #define LISTBOX 284 292 #define LTEXT 285 293 #define PUSHBOX 286 294 #define PUSHBUTTON 287 295 #define RADIOBUTTON 288 296 #define RTEXT 289 297 #define SCROLLBAR 290 298 #define STATE3 291 299 #define USERBUTTON 292 300 #define BEDIT 293 301 #define HEDIT 294 302 #define IEDIT 295 303 #define FONT 296 304 #define ICON 297 305 #define ANICURSOR 298 306 #define ANIICON 299 307 #define DLGINCLUDE 300 308 #define DLGINIT 301 309 #define FONTDIR 302 310 #define HTML 303 311 #define MANIFEST 304 312 #define PLUGPLAY 305 313 #define VXD 306 314 #define TOOLBAR 307 315 #define BUTTON 308 316 #define LANGUAGE 309 317 #define CHARACTERISTICS 310 318 #define VERSIONK 311 319 #define MENU 312 320 #define MENUEX 313 321 #define MENUITEM 314 322 #define SEPARATOR 315 323 #define POPUP 316 324 #define CHECKED 317 325 #define GRAYED 318 326 #define HELP 319 327 #define INACTIVE 320 328 #define MENUBARBREAK 321 329 #define MENUBREAK 322 330 #define MESSAGETABLE 323 331 #define RCDATA 324 332 #define STRINGTABLE 325 333 #define VERSIONINFO 326 334 #define FILEVERSION 327 335 #define PRODUCTVERSION 328 336 #define FILEFLAGSMASK 329 337 #define FILEFLAGS 330 338 #define FILEOS 331 339 #define FILETYPE 332 340 #define FILESUBTYPE 333 341 #define BLOCKSTRINGFILEINFO 334 342 #define BLOCKVARFILEINFO 335 343 #define VALUE 336 344 #define BLOCK 337 345 #define MOVEABLE 338 346 #define FIXED 339 347 #define PURE 340 348 #define IMPURE 341 349 #define PRELOAD 342 350 #define LOADONCALL 343 351 #define DISCARDABLE 344 352 #define NOT 345 353 #define QUOTEDUNISTRING 346 354 #define QUOTEDSTRING 347 355 #define STRING 348 356 #define NUMBER 349 357 #define SIZEDUNISTRING 350 358 #define SIZEDSTRING 351 359 #define IGNORED_TOKEN 352 360 #define NEG 353 361 362 /* Value type. */ 363 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 364 365 union YYSTYPE 366 { 367 #line 68 "rcparse.y" /* yacc.c:355 */ 368 369 rc_accelerator acc; 370 rc_accelerator *pacc; 371 rc_dialog_control *dialog_control; 372 rc_menuitem *menuitem; 373 struct 374 { 375 rc_rcdata_item *first; 376 rc_rcdata_item *last; 377 } rcdata; 378 rc_rcdata_item *rcdata_item; 379 rc_fixed_versioninfo *fixver; 380 rc_ver_info *verinfo; 381 rc_ver_stringtable *verstringtable; 382 rc_ver_stringinfo *verstring; 383 rc_ver_varinfo *vervar; 384 rc_toolbar_item *toobar_item; 385 rc_res_id id; 386 rc_res_res_info res_info; 387 struct 388 { 389 rc_uint_type on; 390 rc_uint_type off; 391 } memflags; 392 struct 393 { 394 rc_uint_type val; 395 /* Nonzero if this number was explicitly specified as long. */ 396 int dword; 397 } i; 398 rc_uint_type il; 399 rc_uint_type is; 400 const char *s; 401 struct 402 { 403 rc_uint_type length; 404 const char *s; 405 } ss; 406 unichar *uni; 407 struct 408 { 409 rc_uint_type length; 410 const unichar *s; 411 } suni; 412 413 #line 414 "rcparse.c" /* yacc.c:355 */ 414 }; 415 416 typedef union YYSTYPE YYSTYPE; 417 # define YYSTYPE_IS_TRIVIAL 1 418 # define YYSTYPE_IS_DECLARED 1 419 #endif 420 421 422 extern YYSTYPE yylval; 423 424 int yyparse (void); 425 426 #endif /* !YY_YY_RCPARSE_H_INCLUDED */ 427 428 /* Copy the second part of user declarations. */ 429 430 #line 431 "rcparse.c" /* yacc.c:358 */ 431 432 #ifdef short 433 # undef short 434 #endif 435 436 #ifdef YYTYPE_UINT8 437 typedef YYTYPE_UINT8 yytype_uint8; 438 #else 439 typedef unsigned char yytype_uint8; 440 #endif 441 442 #ifdef YYTYPE_INT8 443 typedef YYTYPE_INT8 yytype_int8; 444 #else 445 typedef signed char yytype_int8; 446 #endif 447 448 #ifdef YYTYPE_UINT16 449 typedef YYTYPE_UINT16 yytype_uint16; 450 #else 451 typedef unsigned short int yytype_uint16; 452 #endif 453 454 #ifdef YYTYPE_INT16 455 typedef YYTYPE_INT16 yytype_int16; 456 #else 457 typedef short int yytype_int16; 458 #endif 459 460 #ifndef YYSIZE_T 461 # ifdef __SIZE_TYPE__ 462 # define YYSIZE_T __SIZE_TYPE__ 463 # elif defined size_t 464 # define YYSIZE_T size_t 465 # elif ! defined YYSIZE_T 466 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 467 # define YYSIZE_T size_t 468 # else 469 # define YYSIZE_T unsigned int 470 # endif 471 #endif 472 473 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 474 475 #ifndef YY_ 476 # if defined YYENABLE_NLS && YYENABLE_NLS 477 # if ENABLE_NLS 478 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 479 # define YY_(Msgid) dgettext ("bison-runtime", Msgid) 480 # endif 481 # endif 482 # ifndef YY_ 483 # define YY_(Msgid) Msgid 484 # endif 485 #endif 486 487 #ifndef YY_ATTRIBUTE 488 # if (defined __GNUC__ \ 489 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 490 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 491 # define YY_ATTRIBUTE(Spec) __attribute__(Spec) 492 # else 493 # define YY_ATTRIBUTE(Spec) /* empty */ 494 # endif 495 #endif 496 497 #ifndef YY_ATTRIBUTE_PURE 498 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 499 #endif 500 501 #ifndef YY_ATTRIBUTE_UNUSED 502 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 503 #endif 504 505 #if !defined _Noreturn \ 506 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 507 # if defined _MSC_VER && 1200 <= _MSC_VER 508 # define _Noreturn __declspec (noreturn) 509 # else 510 # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 511 # endif 512 #endif 513 514 /* Suppress unused-variable warnings by "using" E. */ 515 #if ! defined lint || defined __GNUC__ 516 # define YYUSE(E) ((void) (E)) 517 #else 518 # define YYUSE(E) /* empty */ 519 #endif 520 521 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 522 /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 523 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 524 _Pragma ("GCC diagnostic push") \ 525 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 526 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 527 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 528 _Pragma ("GCC diagnostic pop") 529 #else 530 # define YY_INITIAL_VALUE(Value) Value 531 #endif 532 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 533 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 534 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 535 #endif 536 #ifndef YY_INITIAL_VALUE 537 # define YY_INITIAL_VALUE(Value) /* Nothing. */ 538 #endif 539 540 541 #if ! defined yyoverflow || YYERROR_VERBOSE 542 543 /* The parser invokes alloca or malloc; define the necessary symbols. */ 544 545 # ifdef YYSTACK_USE_ALLOCA 546 # if YYSTACK_USE_ALLOCA 547 # ifdef __GNUC__ 548 # define YYSTACK_ALLOC __builtin_alloca 549 # elif defined __BUILTIN_VA_ARG_INCR 550 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 551 # elif defined _AIX 552 # define YYSTACK_ALLOC __alloca 553 # elif defined _MSC_VER 554 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 555 # define alloca _alloca 556 # else 557 # define YYSTACK_ALLOC alloca 558 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 559 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 560 /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 561 # ifndef EXIT_SUCCESS 562 # define EXIT_SUCCESS 0 563 # endif 564 # endif 565 # endif 566 # endif 567 # endif 568 569 # ifdef YYSTACK_ALLOC 570 /* Pacify GCC's 'empty if-body' warning. */ 571 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 572 # ifndef YYSTACK_ALLOC_MAXIMUM 573 /* The OS might guarantee only one guard page at the bottom of the stack, 574 and a page size can be as small as 4096 bytes. So we cannot safely 575 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 576 to allow for a few compiler-allocated temporary stack slots. */ 577 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 578 # endif 579 # else 580 # define YYSTACK_ALLOC YYMALLOC 581 # define YYSTACK_FREE YYFREE 582 # ifndef YYSTACK_ALLOC_MAXIMUM 583 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 584 # endif 585 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 586 && ! ((defined YYMALLOC || defined malloc) \ 587 && (defined YYFREE || defined free))) 588 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 589 # ifndef EXIT_SUCCESS 590 # define EXIT_SUCCESS 0 591 # endif 592 # endif 593 # ifndef YYMALLOC 594 # define YYMALLOC malloc 595 # if ! defined malloc && ! defined EXIT_SUCCESS 596 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 597 # endif 598 # endif 599 # ifndef YYFREE 600 # define YYFREE free 601 # if ! defined free && ! defined EXIT_SUCCESS 602 void free (void *); /* INFRINGES ON USER NAME SPACE */ 603 # endif 604 # endif 605 # endif 606 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 607 608 609 #if (! defined yyoverflow \ 610 && (! defined __cplusplus \ 611 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 612 613 /* A type that is properly aligned for any stack member. */ 614 union yyalloc 615 { 616 yytype_int16 yyss_alloc; 617 YYSTYPE yyvs_alloc; 618 }; 619 620 /* The size of the maximum gap between one aligned stack and the next. */ 621 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 622 623 /* The size of an array large to enough to hold all stacks, each with 624 N elements. */ 625 # define YYSTACK_BYTES(N) \ 626 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 627 + YYSTACK_GAP_MAXIMUM) 628 629 # define YYCOPY_NEEDED 1 630 631 /* Relocate STACK from its old location to the new one. The 632 local variables YYSIZE and YYSTACKSIZE give the old and new number of 633 elements in the stack, and YYPTR gives the new location of the 634 stack. Advance YYPTR to a properly aligned location for the next 635 stack. */ 636 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 637 do \ 638 { \ 639 YYSIZE_T yynewbytes; \ 640 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 641 Stack = &yyptr->Stack_alloc; \ 642 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 643 yyptr += yynewbytes / sizeof (*yyptr); \ 644 } \ 645 while (0) 646 647 #endif 648 649 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 650 /* Copy COUNT objects from SRC to DST. The source and destination do 651 not overlap. */ 652 # ifndef YYCOPY 653 # if defined __GNUC__ && 1 < __GNUC__ 654 # define YYCOPY(Dst, Src, Count) \ 655 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 656 # else 657 # define YYCOPY(Dst, Src, Count) \ 658 do \ 659 { \ 660 YYSIZE_T yyi; \ 661 for (yyi = 0; yyi < (Count); yyi++) \ 662 (Dst)[yyi] = (Src)[yyi]; \ 663 } \ 664 while (0) 665 # endif 666 # endif 667 #endif /* !YYCOPY_NEEDED */ 668 669 /* YYFINAL -- State number of the termination state. */ 670 #define YYFINAL 2 671 /* YYLAST -- Last index in YYTABLE. */ 672 #define YYLAST 830 673 674 /* YYNTOKENS -- Number of terminals. */ 675 #define YYNTOKENS 112 676 /* YYNNTS -- Number of nonterminals. */ 677 #define YYNNTS 102 678 /* YYNRULES -- Number of rules. */ 679 #define YYNRULES 276 680 /* YYNSTATES -- Number of states. */ 681 #define YYNSTATES 520 682 683 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 684 by yylex, with out-of-bounds checking. */ 685 #define YYUNDEFTOK 2 686 #define YYMAXUTOK 353 687 688 #define YYTRANSLATE(YYX) \ 689 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 690 691 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 692 as returned by yylex, without out-of-bounds checking. */ 693 static const yytype_uint8 yytranslate[] = 694 { 695 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 696 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 697 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 698 2, 2, 2, 2, 2, 2, 2, 105, 100, 2, 699 110, 111, 103, 101, 108, 102, 2, 104, 2, 2, 700 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 701 2, 109, 2, 2, 2, 2, 2, 2, 2, 2, 702 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 703 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 704 2, 2, 2, 2, 99, 2, 2, 2, 2, 2, 705 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 706 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 707 2, 2, 2, 2, 98, 2, 106, 2, 2, 2, 708 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 709 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 710 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 711 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 712 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 713 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 714 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 715 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 716 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 717 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 718 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 719 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 720 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 721 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 722 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 723 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 724 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 725 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 726 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 727 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 728 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 729 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 730 95, 96, 97, 107 731 }; 732 733 #if YYDEBUG 734 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 735 static const yytype_uint16 yyrline[] = 736 { 737 0, 178, 178, 180, 181, 182, 183, 184, 185, 186, 738 187, 188, 189, 190, 191, 192, 193, 194, 200, 211, 739 214, 235, 240, 252, 272, 282, 286, 291, 298, 302, 740 307, 311, 315, 319, 328, 340, 354, 352, 379, 377, 741 406, 404, 436, 439, 445, 447, 453, 457, 462, 466, 742 470, 483, 498, 513, 528, 532, 536, 540, 546, 548, 743 560, 559, 572, 571, 584, 583, 596, 595, 611, 610, 744 623, 622, 636, 647, 657, 656, 669, 668, 681, 680, 745 693, 692, 705, 704, 719, 724, 730, 736, 743, 742, 746 758, 757, 770, 769, 782, 781, 793, 792, 805, 804, 747 817, 816, 829, 828, 841, 840, 854, 852, 873, 884, 748 895, 907, 918, 921, 925, 930, 940, 943, 953, 952, 749 959, 958, 965, 964, 972, 984, 997, 1006, 1017, 1020, 750 1037, 1041, 1045, 1053, 1056, 1060, 1067, 1071, 1075, 1079, 751 1083, 1087, 1096, 1107, 1110, 1127, 1131, 1135, 1139, 1143, 752 1147, 1151, 1155, 1165, 1178, 1178, 1190, 1194, 1201, 1209, 753 1217, 1225, 1234, 1243, 1252, 1262, 1261, 1266, 1268, 1273, 754 1278, 1286, 1290, 1295, 1300, 1305, 1310, 1315, 1320, 1325, 755 1330, 1341, 1348, 1358, 1364, 1365, 1384, 1409, 1420, 1425, 756 1432, 1439, 1444, 1449, 1454, 1459, 1474, 1477, 1481, 1489, 757 1492, 1500, 1503, 1511, 1514, 1523, 1528, 1537, 1541, 1551, 758 1556, 1560, 1571, 1577, 1583, 1588, 1593, 1604, 1609, 1621, 759 1626, 1638, 1643, 1648, 1653, 1658, 1663, 1668, 1678, 1682, 760 1690, 1695, 1710, 1714, 1723, 1727, 1739, 1744, 1760, 1764, 761 1776, 1780, 1802, 1806, 1810, 1814, 1821, 1825, 1835, 1838, 762 1847, 1856, 1865, 1869, 1873, 1878, 1883, 1888, 1893, 1898, 763 1903, 1908, 1913, 1918, 1929, 1938, 1949, 1953, 1957, 1962, 764 1967, 1972, 1978, 1983, 1988, 1993, 1998 765 }; 766 #endif 767 768 #if YYDEBUG || YYERROR_VERBOSE || 0 769 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 770 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 771 static const char *const yytname[] = 772 { 773 "$end", "error", "$undefined", "BEG", "END", "ACCELERATORS", "VIRTKEY", 774 "ASCII", "NOINVERT", "SHIFT", "CONTROL", "ALT", "BITMAP", "CURSOR", 775 "DIALOG", "DIALOGEX", "EXSTYLE", "CAPTION", "CLASS", "STYLE", 776 "AUTO3STATE", "AUTOCHECKBOX", "AUTORADIOBUTTON", "CHECKBOX", "COMBOBOX", 777 "CTEXT", "DEFPUSHBUTTON", "EDITTEXT", "GROUPBOX", "LISTBOX", "LTEXT", 778 "PUSHBOX", "PUSHBUTTON", "RADIOBUTTON", "RTEXT", "SCROLLBAR", "STATE3", 779 "USERBUTTON", "BEDIT", "HEDIT", "IEDIT", "FONT", "ICON", "ANICURSOR", 780 "ANIICON", "DLGINCLUDE", "DLGINIT", "FONTDIR", "HTML", "MANIFEST", 781 "PLUGPLAY", "VXD", "TOOLBAR", "BUTTON", "LANGUAGE", "CHARACTERISTICS", 782 "VERSIONK", "MENU", "MENUEX", "MENUITEM", "SEPARATOR", "POPUP", 783 "CHECKED", "GRAYED", "HELP", "INACTIVE", "MENUBARBREAK", "MENUBREAK", 784 "MESSAGETABLE", "RCDATA", "STRINGTABLE", "VERSIONINFO", "FILEVERSION", 785 "PRODUCTVERSION", "FILEFLAGSMASK", "FILEFLAGS", "FILEOS", "FILETYPE", 786 "FILESUBTYPE", "BLOCKSTRINGFILEINFO", "BLOCKVARFILEINFO", "VALUE", 787 "BLOCK", "MOVEABLE", "FIXED", "PURE", "IMPURE", "PRELOAD", "LOADONCALL", 788 "DISCARDABLE", "NOT", "QUOTEDUNISTRING", "QUOTEDSTRING", "STRING", 789 "NUMBER", "SIZEDUNISTRING", "SIZEDSTRING", "IGNORED_TOKEN", "'|'", "'^'", 790 "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "'~'", "NEG", "','", "'='", 791 "'('", "')'", "$accept", "input", "accelerator", "acc_entries", 792 "acc_entry", "acc_event", "acc_options", "acc_option", "bitmap", 793 "cursor", "dialog", "$@1", "$@2", "$@3", "exstyle", "styles", "controls", 794 "control", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", 795 "$@12", "$@13", "$@14", "$@15", "$@16", "$@17", "$@18", "$@19", "$@20", 796 "$@21", "$@22", "$@23", "$@24", "control_params", "cresid", "optresidc", 797 "resid", "opt_control_data", "control_styleexpr", "$@25", 798 "icon_styleexpr", "$@26", "control_params_styleexpr", "$@27", "font", 799 "icon", "language", "menu", "menuitems", "menuitem", "menuitem_flags", 800 "menuitem_flag", "menuex", "menuexitems", "menuexitem", "messagetable", 801 "optrcdata_data", "$@28", "optrcdata_data_int", "rcdata_data", 802 "stringtable", "$@29", "string_data", "rcdata_id", "user", "toolbar", 803 "toolbar_data", "versioninfo", "fixedverinfo", "verblocks", 804 "verstringtables", "vervals", "vertrans", "id", "resname", "resref", 805 "suboptions", "memflags_move_discard", "memflags_move", "memflag", 806 "file_name", "res_unicode_string_concat", "res_unicode_string", 807 "res_unicode_sizedstring", "res_unicode_sizedstring_concat", 808 "sizedstring", "sizedunistring", "styleexpr", "parennumber", 809 "optcnumexpr", "cnumexpr", "numexpr", "sizednumexpr", "cposnumexpr", 810 "posnumexpr", "sizedposnumexpr", YY_NULLPTR 811 }; 812 #endif 813 814 # ifdef YYPRINT 815 /* YYTOKNUM[NUM] -- (External) token number corresponding to the 816 (internal) symbol number NUM (which must be that of a token). */ 817 static const yytype_uint16 yytoknum[] = 818 { 819 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 820 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 821 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 822 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 823 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 824 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 825 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 826 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 827 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 828 345, 346, 347, 348, 349, 350, 351, 352, 124, 94, 829 38, 43, 45, 42, 47, 37, 126, 353, 44, 61, 830 40, 41 831 }; 832 # endif 833 834 #define YYPACT_NINF -446 835 836 #define yypact_value_is_default(Yystate) \ 837 (!!((Yystate) == (-446))) 838 839 #define YYTABLE_NINF -231 840 841 #define yytable_value_is_error(Yytable_value) \ 842 0 843 844 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 845 STATE-NUM. */ 846 static const yytype_int16 yypact[] = 847 { 848 -446, 75, -446, 317, -446, -446, -446, -446, -446, -446, 849 317, 317, -446, -446, -446, -446, -446, -446, -446, -446, 850 -446, -446, -446, -446, -446, -446, 463, -446, -446, -446, 851 589, -446, 317, 317, 317, -93, 626, 209, -446, 437, 852 -446, -446, -446, -446, -446, -446, -446, -446, -446, -446, 853 -446, -446, -446, -446, -446, -446, -446, -446, -446, -446, 854 -446, -446, -446, 317, 317, 317, 317, 317, 317, 317, 855 317, -446, -446, 526, 317, -446, 317, 317, 317, 317, 856 317, 317, 317, 317, -446, 317, 317, 317, -446, -446, 857 -446, -446, -446, -446, -446, -446, -446, 267, 675, 675, 858 275, 275, 675, 675, 491, 404, 441, 675, 168, 256, 859 719, 379, 397, 213, 213, -446, -446, -446, -446, -446, 860 719, 379, 397, 213, 213, -446, -446, -446, -446, -93, 861 -446, -446, -446, -446, -446, -446, -446, -446, -446, -65, 862 144, 144, -446, -446, -93, -446, -446, -446, -446, 317, 863 317, 317, 317, 317, 317, 317, -446, -446, 18, -446, 864 21, 317, -93, -93, 31, 140, 155, 126, -93, -93, 865 -446, -446, -446, -446, -446, 47, 177, -446, -446, 212, 866 -446, -446, -446, -34, -446, -446, -93, -93, -446, -446, 867 -36, -5, -446, -446, -25, -5, -446, -446, 119, 131, 868 -93, -446, -93, -446, -446, -446, -446, 54, 68, 84, 869 626, 2, -446, 2, 68, 84, 144, 87, -93, -93, 870 25, -446, 95, -446, -5, -446, 95, 62, -446, 102, 871 -93, -93, 177, -446, -446, 2, -446, -446, 552, -446, 872 -93, -446, 306, -446, -446, -446, 76, -93, -446, 8, 873 6, -5, -446, -446, 68, 84, 626, -446, -446, -446, 874 -446, -446, -446, 167, -446, -446, -446, -446, -446, 271, 875 -446, -446, -446, -446, -446, -446, -446, 763, -446, -93, 876 161, -446, 11, -446, 197, -5, 552, -446, 374, 548, 877 -446, 178, -446, -446, -446, 190, -446, -93, -446, 3, 878 -446, -446, 317, -5, 306, -47, 317, 317, 317, 317, 879 306, -446, 565, -446, -446, 194, 201, -1, -446, -93, 880 639, -446, -5, -446, -5, 143, -33, -446, 317, 110, 881 -446, 105, -93, -446, -446, -446, 676, -446, -446, -446, 882 -446, -5, -446, -446, 311, 311, 311, 311, 311, -446, 883 311, 311, -446, 311, -446, 311, 311, 311, 311, 311, 884 -446, 311, 306, 311, 311, 311, 306, -446, -446, 104, 885 -42, -5, -446, -446, 713, 207, 99, 317, 113, -5, 886 -446, -446, -446, -446, -446, 317, -446, -446, 317, -446, 887 317, -446, -446, -446, -446, -446, 317, -446, 115, 317, 888 120, -446, -446, -446, 317, -446, -33, -446, 95, -446, 889 -446, -5, 152, -446, 317, 317, 317, 317, -446, -93, 890 317, 317, -446, 317, -446, 317, 317, 317, 317, 317, 891 -446, 317, -446, 153, -446, 317, 317, 317, -93, -446, 892 -93, -5, 311, 159, -446, -446, -446, -446, -93, -446, 893 -446, -446, -446, -446, -446, -446, -446, -446, 317, -446, 894 -446, -446, -93, -93, -446, -446, -93, -93, 173, 15, 895 -446, -47, -93, -93, 317, -446, -446, -93, 110, -93, 896 27, 180, 244, 29, -93, -446, -446, -93, 317, -446, 897 -446, -446, -93, -93, -47, 273, -93, 192, -47, 273, 898 -93, 273, -93, 110, -446, 273, 317, 110, -446, 273, 899 -446, 273, -446, 193, -446, -446, -446, -47, -75, -446 900 }; 901 902 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 903 Performed when YYTABLE does not specify something else to do. Zero 904 means the default is an error. */ 905 static const yytype_uint16 yydefact[] = 906 { 907 2, 0, 1, 0, 212, 232, 233, 208, 266, 17, 908 0, 0, 3, 4, 5, 6, 7, 8, 9, 10, 909 11, 12, 13, 15, 14, 16, 0, 206, 207, 205, 910 265, 252, 0, 0, 0, 0, 251, 0, 268, 0, 911 212, 219, 217, 219, 219, 217, 217, 179, 180, 177, 912 178, 172, 174, 175, 176, 212, 212, 212, 219, 173, 913 188, 212, 171, 0, 0, 0, 0, 0, 0, 0, 914 0, 255, 254, 0, 0, 126, 0, 0, 0, 0, 915 0, 0, 0, 0, 165, 0, 0, 0, 221, 222, 916 223, 224, 225, 226, 227, 213, 267, 0, 0, 0, 917 42, 42, 0, 0, 0, 0, 0, 0, 0, 0, 918 276, 275, 274, 272, 273, 269, 270, 271, 253, 250, 919 263, 262, 261, 259, 260, 256, 257, 258, 167, 0, 920 214, 216, 19, 228, 229, 220, 34, 218, 35, 0, 921 0, 0, 124, 125, 0, 128, 143, 153, 196, 0, 922 0, 0, 0, 0, 0, 0, 154, 182, 0, 215, 923 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 924 191, 192, 193, 194, 195, 0, 156, 170, 166, 0, 925 18, 23, 20, 0, 24, 43, 0, 0, 184, 127, 926 0, 0, 129, 142, 0, 0, 144, 187, 0, 0, 927 248, 249, 248, 181, 240, 238, 155, 157, 158, 159, 928 160, 0, 236, 168, 235, 234, 0, 21, 0, 0, 929 0, 131, 0, 230, 133, 148, 145, 0, 199, 0, 930 248, 248, 164, 239, 241, 169, 237, 264, 0, 36, 931 38, 183, 0, 186, 231, 133, 0, 146, 143, 0, 932 0, 0, 189, 190, 161, 162, 163, 28, 29, 30, 933 31, 32, 33, 22, 25, 44, 44, 40, 185, 130, 934 128, 136, 137, 138, 139, 140, 141, 0, 135, 248, 935 0, 143, 0, 197, 0, 203, 0, 27, 0, 0, 936 44, 0, 134, 147, 149, 0, 143, 248, 201, 0, 937 26, 58, 0, 0, 0, 0, 0, 0, 0, 0, 938 0, 58, 0, 132, 150, 0, 0, 0, 198, 0, 939 0, 48, 45, 46, 49, 207, 0, 246, 0, 47, 940 242, 0, 0, 55, 57, 54, 0, 58, 151, 143, 941 200, 0, 204, 37, 112, 112, 112, 112, 112, 70, 942 112, 112, 78, 112, 90, 112, 112, 112, 112, 112, 943 102, 112, 0, 112, 112, 112, 0, 59, 243, 0, 944 0, 0, 56, 39, 0, 0, 0, 0, 0, 115, 945 114, 60, 62, 64, 68, 0, 74, 76, 0, 80, 946 0, 92, 94, 96, 98, 100, 0, 104, 210, 0, 947 0, 66, 82, 88, 0, 247, 0, 244, 50, 41, 948 152, 0, 0, 113, 0, 0, 0, 0, 71, 0, 949 0, 0, 79, 0, 91, 0, 0, 0, 0, 0, 950 103, 0, 211, 0, 209, 0, 0, 0, 0, 245, 951 51, 202, 0, 0, 61, 63, 65, 69, 0, 75, 952 77, 81, 93, 95, 97, 99, 101, 105, 0, 67, 953 83, 89, 0, 52, 111, 118, 0, 0, 0, 116, 954 53, 0, 0, 0, 0, 154, 84, 0, 119, 0, 955 116, 0, 0, 116, 0, 122, 108, 248, 0, 117, 956 120, 85, 248, 248, 0, 116, 249, 0, 0, 116, 957 249, 116, 249, 123, 109, 116, 0, 121, 86, 116, 958 72, 116, 110, 0, 87, 73, 106, 0, 248, 107 959 }; 960 961 /* YYPGOTO[NTERM-NUM]. */ 962 static const yytype_int16 yypgoto[] = 963 { 964 -446, -446, -446, -446, -446, -446, -446, -236, -446, -446, 965 -446, -446, -446, -446, 184, -262, -273, -446, -446, -446, 966 -446, -446, -446, -446, -446, -446, -446, -446, -446, -446, 967 -446, -446, -446, -446, -446, -446, -446, -446, -446, 219, 968 -446, 442, -123, 274, -446, -446, -446, -446, -446, -446, 969 -446, -446, -446, -446, 77, -446, 101, 88, -446, -239, 970 -446, -446, -109, -446, -446, -446, -446, -446, -446, -446, 971 -446, -446, -446, -446, -446, -446, -446, -446, -446, -24, 972 -245, 4, 169, 211, 270, 710, 175, -178, 5, -173, 973 157, -156, -122, -445, -325, -161, -30, -3, 26, -446, 974 20, -446 975 }; 976 977 /* YYDEFGOTO[NTERM-NUM]. */ 978 static const yytype_int16 yydefgoto[] = 979 { 980 -1, 1, 12, 160, 182, 183, 263, 264, 13, 14, 981 15, 265, 266, 290, 140, 288, 320, 367, 414, 415, 982 416, 435, 417, 385, 420, 421, 388, 423, 436, 437, 983 390, 425, 426, 427, 428, 429, 396, 431, 517, 418, 984 443, 377, 378, 476, 466, 471, 492, 498, 487, 494, 985 16, 17, 18, 19, 165, 192, 246, 278, 20, 166, 986 196, 21, 175, 176, 206, 207, 22, 128, 158, 61, 987 23, 24, 220, 25, 108, 167, 250, 317, 299, 26, 988 27, 399, 37, 99, 98, 95, 136, 379, 223, 212, 989 213, 214, 215, 329, 330, 200, 201, 419, 36, 217, 990 380, 30 991 }; 992 993 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 994 positive, shift that token. If negative, reduce the rule whose 995 number is the opposite. If YYTABLE_NINF, syntax error. */ 996 static const yytype_int16 yytable[] = 997 { 998 35, 368, 62, 340, 289, 75, 28, 318, 202, 280, 999 283, 281, 222, 224, 296, 74, 226, 227, 475, 177, 1000 208, 29, 178, 370, 221, 180, 478, 287, 312, 241, 1001 475, 28, 475, 74, 188, 225, 38, 39, 336, 230, 1002 236, 231, 295, 326, 161, 407, 29, 327, 406, 503, 1003 300, 203, 327, 507, 209, 5, 6, 315, 71, 72, 1004 73, 327, 236, 328, 374, 248, 5, 6, 328, 252, 1005 253, 119, 518, 285, 216, 2, 254, 328, 242, 270, 1006 341, 439, 129, 130, 131, 243, 5, 6, 284, 110, 1007 111, 112, 113, 114, 115, 116, 117, 204, 205, 159, 1008 375, 144, 120, 121, 122, 123, 124, 125, 126, 127, 1009 255, 74, 31, 181, 164, 8, 74, 398, 293, 74, 1010 32, 398, 228, 74, 33, 322, 324, 10, 34, 3, 1011 197, 11, 186, 187, 229, 485, 316, 490, 271, 272, 1012 273, 274, 275, 276, 189, 4, 168, 169, 170, 171, 1013 172, 173, 174, 5, 6, 179, 218, 219, 185, 193, 1014 162, 163, 232, 376, 233, 294, 5, 6, 7, 8, 1015 74, 148, 9, 257, 258, 259, 260, 261, 262, 234, 1016 184, 10, 313, 251, 277, 11, 5, 6, 239, 240, 1017 5, 6, 245, 408, 314, 238, 247, 249, 338, 190, 1018 298, 191, 210, 74, 339, 198, 199, 411, 370, 97, 1019 267, 410, 84, 371, 194, 405, 195, 279, 268, 282, 1020 194, 413, 195, 432, 104, 105, 106, 244, 434, 244, 1021 109, 244, 244, 441, -230, -230, 237, 190, 8, 191, 1022 149, 150, 151, 152, 153, 154, 155, 28, 489, 194, 1023 10, 195, 297, 194, 11, 195, 102, 103, 256, 156, 1024 442, 458, 29, 85, 86, 87, 194, 465, 195, 319, 1025 132, 31, 204, 205, 138, 286, 475, 142, 143, 32, 1026 323, 474, 147, 33, 157, 141, 335, 34, 488, 342, 1027 244, 139, 88, 89, 90, 91, 92, 93, 94, 321, 1028 506, 516, 372, 331, 332, 333, 334, 204, 205, 325, 1029 85, 86, 87, 100, 101, 28, 81, 82, 83, 464, 1030 211, 85, 86, 87, 29, 369, 495, 244, 107, 244, 1031 29, 499, 501, 271, 272, 273, 274, 275, 276, 88, 1032 89, 90, 91, 92, 93, 94, 269, 291, 133, 134, 1033 88, 89, 90, 91, 92, 93, 94, 519, 88, 89, 1034 90, 91, 92, 93, 94, 292, 482, 28, 235, 0, 1035 404, 28, 0, 0, 412, 0, 0, 301, 440, 277, 1036 0, 244, 400, 0, 244, 0, 400, 0, 0, 448, 1037 302, 303, 304, 305, 0, 0, 433, 5, 6, 7, 1038 8, 438, 5, 6, 0, 8, 0, 145, 462, 0, 1039 463, 31, 10, 244, 0, 306, 11, 10, 467, 32, 1040 0, 11, 0, 33, 0, 0, 0, 34, 307, 308, 1041 309, 310, 469, 470, 0, 0, 472, 473, 0, 477, 1042 0, 0, 479, 480, 146, 0, 244, 483, 0, 484, 1043 0, 0, 0, 0, 493, 468, 0, 496, 85, 86, 1044 87, 0, 500, 502, 0, 0, 505, 0, 40, 0, 1045 509, 481, 511, 0, 0, 41, 42, 43, 44, 78, 1046 79, 80, 81, 82, 83, 497, 0, 88, 89, 90, 1047 91, 92, 93, 94, 0, 85, 86, 87, 79, 80, 1048 81, 82, 83, 513, 45, 46, 47, 48, 49, 50, 1049 0, 51, 52, 53, 54, 55, 0, 0, 0, 0, 1050 56, 57, 0, 0, 88, 89, 90, 91, 92, 93, 1051 94, 58, 59, 0, 60, 76, 77, 78, 79, 80, 1052 81, 82, 83, 0, 0, 85, 86, 87, 96, 0, 1053 0, 311, 0, 0, 5, 6, 7, 8, 257, 258, 1054 259, 260, 261, 262, 302, 303, 304, 305, 337, 10, 1055 0, 0, 0, 11, 88, 89, 90, 91, 92, 93, 1056 94, 302, 303, 304, 305, 31, 0, 0, 0, 306, 1057 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 1058 0, 34, 307, 308, 309, 310, 306, 422, 0, 424, 1059 0, 0, 0, 0, 0, 430, 0, 0, 0, 307, 1060 308, 309, 310, 0, 76, 77, 78, 79, 80, 81, 1061 82, 83, 0, 444, 445, 446, 447, 118, 0, 449, 1062 450, 0, 451, 343, 452, 453, 454, 455, 456, 344, 1063 457, 0, 0, 0, 459, 460, 461, 0, 0, 345, 1064 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 1065 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 1066 373, 366, 0, 0, 0, 0, 344, 63, 64, 65, 1067 66, 67, 68, 69, 70, 0, 345, 346, 347, 348, 1068 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 1069 359, 360, 361, 362, 363, 364, 365, 409, 366, 0, 1070 0, 0, 0, 344, 76, 77, 78, 79, 80, 81, 1071 82, 83, 0, 345, 346, 347, 348, 349, 350, 351, 1072 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 1073 362, 363, 364, 365, 486, 366, 0, 491, 88, 89, 1074 90, 91, 92, 93, 94, 0, 0, 133, 134, 504, 1075 0, 0, 0, 508, 0, 510, 0, 0, 0, 512, 1076 0, 0, 0, 514, 0, 515, 0, 381, 382, 383, 1077 384, 0, 386, 387, 0, 389, 0, 391, 392, 393, 1078 394, 395, 0, 397, 0, 401, 402, 403, 135, 137, 1079 135, 135, 137, 137, 0, 0, 0, 135, 77, 78, 1080 79, 80, 81, 82, 83, 271, 272, 273, 274, 275, 1081 276 1082 }; 1083 1084 static const yytype_int16 yycheck[] = 1085 { 1086 3, 326, 26, 4, 266, 35, 1, 4, 169, 248, 1087 4, 3, 190, 191, 3, 108, 194, 195, 3, 1, 1088 176, 1, 4, 98, 60, 4, 471, 263, 290, 4, 1089 3, 26, 3, 108, 3, 60, 10, 11, 311, 200, 1090 213, 202, 281, 90, 109, 370, 26, 94, 90, 494, 1091 286, 4, 94, 498, 176, 91, 92, 296, 32, 33, 1092 34, 94, 235, 110, 337, 3, 91, 92, 110, 230, 1093 231, 74, 517, 251, 108, 0, 232, 110, 53, 3, 1094 81, 406, 85, 86, 87, 60, 91, 92, 82, 63, 1095 64, 65, 66, 67, 68, 69, 70, 95, 96, 129, 1096 339, 104, 76, 77, 78, 79, 80, 81, 82, 83, 1097 232, 108, 94, 92, 144, 94, 108, 362, 279, 108, 1098 102, 366, 3, 108, 106, 303, 304, 106, 110, 54, 1099 4, 110, 162, 163, 3, 108, 297, 108, 62, 63, 1100 64, 65, 66, 67, 4, 70, 149, 150, 151, 152, 1101 153, 154, 155, 91, 92, 158, 186, 187, 161, 4, 1102 140, 141, 108, 341, 96, 4, 91, 92, 93, 94, 1103 108, 3, 97, 6, 7, 8, 9, 10, 11, 95, 1104 160, 106, 4, 81, 108, 110, 91, 92, 218, 219, 1105 91, 92, 222, 371, 4, 108, 226, 227, 4, 59, 1106 3, 61, 176, 108, 3, 79, 80, 108, 98, 40, 1107 240, 4, 3, 108, 59, 111, 61, 247, 242, 249, 1108 59, 108, 61, 108, 55, 56, 57, 222, 108, 224, 1109 61, 226, 227, 411, 91, 92, 216, 59, 94, 61, 1110 72, 73, 74, 75, 76, 77, 78, 242, 4, 59, 1111 106, 61, 282, 59, 110, 61, 45, 46, 232, 3, 1112 108, 108, 242, 54, 55, 56, 59, 108, 61, 299, 1113 3, 94, 95, 96, 99, 108, 3, 102, 103, 102, 1114 304, 108, 107, 106, 109, 101, 310, 110, 108, 319, 1115 285, 16, 83, 84, 85, 86, 87, 88, 89, 302, 1116 108, 108, 332, 306, 307, 308, 309, 95, 96, 304, 1117 54, 55, 56, 43, 44, 310, 103, 104, 105, 442, 1118 108, 54, 55, 56, 304, 328, 487, 322, 58, 324, 1119 310, 492, 493, 62, 63, 64, 65, 66, 67, 83, 1120 84, 85, 86, 87, 88, 89, 245, 270, 92, 93, 1121 83, 84, 85, 86, 87, 88, 89, 518, 83, 84, 1122 85, 86, 87, 88, 89, 277, 475, 362, 211, -1, 1123 366, 366, -1, -1, 377, -1, -1, 3, 408, 108, 1124 -1, 376, 362, -1, 379, -1, 366, -1, -1, 419, 1125 16, 17, 18, 19, -1, -1, 399, 91, 92, 93, 1126 94, 404, 91, 92, -1, 94, -1, 3, 438, -1, 1127 440, 94, 106, 408, -1, 41, 110, 106, 448, 102, 1128 -1, 110, -1, 106, -1, -1, -1, 110, 54, 55, 1129 56, 57, 462, 463, -1, -1, 466, 467, -1, 469, 1130 -1, -1, 472, 473, 3, -1, 441, 477, -1, 479, 1131 -1, -1, -1, -1, 484, 458, -1, 487, 54, 55, 1132 56, -1, 492, 493, -1, -1, 496, -1, 5, -1, 1133 500, 474, 502, -1, -1, 12, 13, 14, 15, 100, 1134 101, 102, 103, 104, 105, 488, -1, 83, 84, 85, 1135 86, 87, 88, 89, -1, 54, 55, 56, 101, 102, 1136 103, 104, 105, 506, 41, 42, 43, 44, 45, 46, 1137 -1, 48, 49, 50, 51, 52, -1, -1, -1, -1, 1138 57, 58, -1, -1, 83, 84, 85, 86, 87, 88, 1139 89, 68, 69, -1, 71, 98, 99, 100, 101, 102, 1140 103, 104, 105, -1, -1, 54, 55, 56, 111, -1, 1141 -1, 3, -1, -1, 91, 92, 93, 94, 6, 7, 1142 8, 9, 10, 11, 16, 17, 18, 19, 3, 106, 1143 -1, -1, -1, 110, 83, 84, 85, 86, 87, 88, 1144 89, 16, 17, 18, 19, 94, -1, -1, -1, 41, 1145 -1, -1, -1, 102, -1, -1, -1, 106, -1, -1, 1146 -1, 110, 54, 55, 56, 57, 41, 388, -1, 390, 1147 -1, -1, -1, -1, -1, 396, -1, -1, -1, 54, 1148 55, 56, 57, -1, 98, 99, 100, 101, 102, 103, 1149 104, 105, -1, 414, 415, 416, 417, 111, -1, 420, 1150 421, -1, 423, 4, 425, 426, 427, 428, 429, 10, 1151 431, -1, -1, -1, 435, 436, 437, -1, -1, 20, 1152 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 1153 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 1154 4, 42, -1, -1, -1, -1, 10, 98, 99, 100, 1155 101, 102, 103, 104, 105, -1, 20, 21, 22, 23, 1156 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 1157 34, 35, 36, 37, 38, 39, 40, 4, 42, -1, 1158 -1, -1, -1, 10, 98, 99, 100, 101, 102, 103, 1159 104, 105, -1, 20, 21, 22, 23, 24, 25, 26, 1160 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 1161 37, 38, 39, 40, 480, 42, -1, 483, 83, 84, 1162 85, 86, 87, 88, 89, -1, -1, 92, 93, 495, 1163 -1, -1, -1, 499, -1, 501, -1, -1, -1, 505, 1164 -1, -1, -1, 509, -1, 511, -1, 345, 346, 347, 1165 348, -1, 350, 351, -1, 353, -1, 355, 356, 357, 1166 358, 359, -1, 361, -1, 363, 364, 365, 98, 99, 1167 100, 101, 102, 103, -1, -1, -1, 107, 99, 100, 1168 101, 102, 103, 104, 105, 62, 63, 64, 65, 66, 1169 67 1170 }; 1171 1172 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 1173 symbol of state STATE-NUM. */ 1174 static const yytype_uint8 yystos[] = 1175 { 1176 0, 113, 0, 54, 70, 91, 92, 93, 94, 97, 1177 106, 110, 114, 120, 121, 122, 162, 163, 164, 165, 1178 170, 173, 178, 182, 183, 185, 191, 192, 200, 212, 1179 213, 94, 102, 106, 110, 209, 210, 194, 210, 210, 1180 5, 12, 13, 14, 15, 41, 42, 43, 44, 45, 1181 46, 48, 49, 50, 51, 52, 57, 58, 68, 69, 1182 71, 181, 191, 98, 99, 100, 101, 102, 103, 104, 1183 105, 210, 210, 210, 108, 208, 98, 99, 100, 101, 1184 102, 103, 104, 105, 3, 54, 55, 56, 83, 84, 1185 85, 86, 87, 88, 89, 197, 111, 194, 196, 195, 1186 196, 196, 195, 195, 194, 194, 194, 196, 186, 194, 1187 210, 210, 210, 210, 210, 210, 210, 210, 111, 209, 1188 210, 210, 210, 210, 210, 210, 210, 210, 179, 209, 1189 209, 209, 3, 92, 93, 197, 198, 197, 198, 16, 1190 126, 126, 198, 198, 209, 3, 3, 198, 3, 72, 1191 73, 74, 75, 76, 77, 78, 3, 198, 180, 208, 1192 115, 109, 212, 212, 208, 166, 171, 187, 209, 209, 1193 209, 209, 209, 209, 209, 174, 175, 1, 4, 209, 1194 4, 92, 116, 117, 212, 209, 208, 208, 3, 4, 1195 59, 61, 167, 4, 59, 61, 172, 4, 79, 80, 1196 207, 208, 207, 4, 95, 96, 176, 177, 203, 204, 1197 210, 108, 201, 202, 203, 204, 108, 211, 208, 208, 1198 184, 60, 199, 200, 199, 60, 199, 199, 3, 3, 1199 207, 207, 108, 96, 95, 202, 201, 212, 108, 208, 1200 208, 4, 53, 60, 200, 208, 168, 208, 3, 208, 1201 188, 81, 207, 207, 203, 204, 210, 6, 7, 8, 1202 9, 10, 11, 118, 119, 123, 124, 208, 191, 168, 1203 3, 62, 63, 64, 65, 66, 67, 108, 169, 208, 1204 171, 3, 208, 4, 82, 199, 108, 119, 127, 127, 1205 125, 166, 169, 207, 4, 171, 3, 208, 3, 190, 1206 119, 3, 16, 17, 18, 19, 41, 54, 55, 56, 1207 57, 3, 127, 4, 4, 171, 207, 189, 4, 208, 1208 128, 209, 199, 191, 199, 200, 90, 94, 110, 205, 1209 206, 209, 209, 209, 209, 191, 128, 3, 4, 3, 1210 4, 81, 208, 4, 10, 20, 21, 22, 23, 24, 1211 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 1212 35, 36, 37, 38, 39, 40, 42, 129, 206, 209, 1213 98, 108, 208, 4, 128, 171, 199, 153, 154, 199, 1214 212, 153, 153, 153, 153, 135, 153, 153, 138, 153, 1215 142, 153, 153, 153, 153, 153, 148, 153, 192, 193, 1216 212, 153, 153, 153, 193, 111, 90, 206, 199, 4, 1217 4, 108, 209, 108, 130, 131, 132, 134, 151, 209, 1218 136, 137, 151, 139, 151, 143, 144, 145, 146, 147, 1219 151, 149, 108, 209, 108, 133, 140, 141, 209, 206, 1220 208, 199, 108, 152, 151, 151, 151, 151, 208, 151, 1221 151, 151, 151, 151, 151, 151, 151, 151, 108, 151, 1222 151, 151, 208, 208, 154, 108, 156, 208, 209, 208, 1223 208, 157, 208, 208, 108, 3, 155, 208, 205, 208, 1224 208, 209, 174, 208, 208, 108, 155, 160, 108, 4, 1225 108, 155, 158, 208, 161, 207, 208, 209, 159, 207, 1226 208, 207, 208, 205, 155, 208, 108, 205, 155, 208, 1227 155, 208, 155, 209, 155, 155, 108, 150, 205, 207 1228 }; 1229 1230 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 1231 static const yytype_uint8 yyr1[] = 1232 { 1233 0, 112, 113, 113, 113, 113, 113, 113, 113, 113, 1234 113, 113, 113, 113, 113, 113, 113, 113, 114, 115, 1235 115, 116, 116, 117, 117, 118, 118, 118, 119, 119, 1236 119, 119, 119, 119, 120, 121, 123, 122, 124, 122, 1237 125, 122, 126, 126, 127, 127, 127, 127, 127, 127, 1238 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 1239 130, 129, 131, 129, 132, 129, 133, 129, 134, 129, 1240 135, 129, 129, 129, 136, 129, 137, 129, 138, 129, 1241 139, 129, 140, 129, 129, 129, 129, 129, 141, 129, 1242 142, 129, 143, 129, 144, 129, 145, 129, 146, 129, 1243 147, 129, 148, 129, 149, 129, 150, 129, 151, 151, 1244 151, 152, 153, 153, 154, 154, 155, 155, 157, 156, 1245 159, 158, 161, 160, 162, 163, 164, 165, 166, 166, 1246 167, 167, 167, 168, 168, 168, 169, 169, 169, 169, 1247 169, 169, 170, 171, 171, 172, 172, 172, 172, 172, 1248 172, 172, 172, 173, 175, 174, 176, 176, 177, 177, 1249 177, 177, 177, 177, 177, 179, 178, 180, 180, 180, 1250 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 1251 181, 182, 182, 183, 184, 184, 184, 185, 186, 186, 1252 186, 186, 186, 186, 186, 186, 187, 187, 187, 188, 1253 188, 189, 189, 190, 190, 191, 191, 192, 192, 193, 1254 193, 193, 194, 194, 194, 194, 194, 195, 195, 196, 1255 196, 197, 197, 197, 197, 197, 197, 197, 198, 198, 1256 199, 199, 200, 200, 201, 201, 202, 202, 203, 203, 1257 204, 204, 205, 205, 205, 205, 206, 206, 207, 207, 1258 208, 209, 210, 210, 210, 210, 210, 210, 210, 210, 1259 210, 210, 210, 210, 211, 212, 213, 213, 213, 213, 1260 213, 213, 213, 213, 213, 213, 213 1261 }; 1262 1263 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 1264 static const yytype_uint8 yyr2[] = 1265 { 1266 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 1267 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 1268 2, 2, 4, 1, 1, 1, 3, 2, 1, 1, 1269 1, 1, 1, 1, 4, 4, 0, 13, 0, 13, 1270 0, 14, 0, 3, 0, 3, 3, 3, 3, 3, 1271 5, 6, 7, 8, 3, 3, 4, 3, 0, 2, 1272 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 1273 0, 3, 11, 12, 0, 4, 0, 4, 0, 3, 1274 0, 4, 0, 4, 6, 8, 10, 11, 0, 4, 1275 0, 3, 0, 4, 0, 4, 0, 4, 0, 4, 1276 0, 4, 0, 3, 0, 4, 0, 15, 6, 8, 1277 9, 2, 0, 2, 1, 1, 0, 3, 0, 3, 1278 0, 3, 0, 3, 4, 4, 3, 6, 0, 2, 1279 4, 2, 6, 0, 3, 2, 1, 1, 1, 1, 1280 1, 1, 6, 0, 2, 2, 3, 5, 2, 5, 1281 6, 7, 9, 4, 0, 2, 0, 1, 1, 1, 1282 1, 3, 3, 3, 2, 0, 6, 0, 3, 4, 1283 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1284 1, 6, 4, 8, 0, 3, 2, 6, 0, 6, 1285 6, 3, 3, 3, 3, 3, 0, 5, 7, 0, 1286 5, 0, 5, 0, 3, 1, 1, 1, 1, 2, 1287 1, 2, 0, 2, 3, 4, 3, 0, 2, 0, 1288 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1289 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1290 1, 2, 1, 2, 3, 4, 1, 3, 0, 1, 1291 2, 1, 1, 3, 2, 2, 3, 3, 3, 3, 1292 3, 3, 3, 3, 2, 1, 1, 3, 2, 3, 1293 3, 3, 3, 3, 3, 3, 3 1294 }; 1295 1296 1297 #define yyerrok (yyerrstatus = 0) 1298 #define yyclearin (yychar = YYEMPTY) 1299 #define YYEMPTY (-2) 1300 #define YYEOF 0 1301 1302 #define YYACCEPT goto yyacceptlab 1303 #define YYABORT goto yyabortlab 1304 #define YYERROR goto yyerrorlab 1305 1306 1307 #define YYRECOVERING() (!!yyerrstatus) 1308 1309 #define YYBACKUP(Token, Value) \ 1310 do \ 1311 if (yychar == YYEMPTY) \ 1312 { \ 1313 yychar = (Token); \ 1314 yylval = (Value); \ 1315 YYPOPSTACK (yylen); \ 1316 yystate = *yyssp; \ 1317 goto yybackup; \ 1318 } \ 1319 else \ 1320 { \ 1321 yyerror (YY_("syntax error: cannot back up")); \ 1322 YYERROR; \ 1323 } \ 1324 while (0) 1325 1326 /* Error token number */ 1327 #define YYTERROR 1 1328 #define YYERRCODE 256 1329 1330 1331 1332 /* Enable debugging if requested. */ 1333 #if YYDEBUG 1334 1335 # ifndef YYFPRINTF 1336 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 1337 # define YYFPRINTF fprintf 1338 # endif 1339 1340 # define YYDPRINTF(Args) \ 1341 do { \ 1342 if (yydebug) \ 1343 YYFPRINTF Args; \ 1344 } while (0) 1345 1346 /* This macro is provided for backward compatibility. */ 1347 #ifndef YY_LOCATION_PRINT 1348 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 1349 #endif 1350 1351 1352 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 1353 do { \ 1354 if (yydebug) \ 1355 { \ 1356 YYFPRINTF (stderr, "%s ", Title); \ 1357 yy_symbol_print (stderr, \ 1358 Type, Value); \ 1359 YYFPRINTF (stderr, "\n"); \ 1360 } \ 1361 } while (0) 1362 1363 1364 /*----------------------------------------. 1365 | Print this symbol's value on YYOUTPUT. | 1366 `----------------------------------------*/ 1367 1368 static void 1369 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 1370 { 1371 FILE *yyo = yyoutput; 1372 YYUSE (yyo); 1373 if (!yyvaluep) 1374 return; 1375 # ifdef YYPRINT 1376 if (yytype < YYNTOKENS) 1377 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 1378 # endif 1379 YYUSE (yytype); 1380 } 1381 1382 1383 /*--------------------------------. 1384 | Print this symbol on YYOUTPUT. | 1385 `--------------------------------*/ 1386 1387 static void 1388 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 1389 { 1390 YYFPRINTF (yyoutput, "%s %s (", 1391 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 1392 1393 yy_symbol_value_print (yyoutput, yytype, yyvaluep); 1394 YYFPRINTF (yyoutput, ")"); 1395 } 1396 1397 /*------------------------------------------------------------------. 1398 | yy_stack_print -- Print the state stack from its BOTTOM up to its | 1399 | TOP (included). | 1400 `------------------------------------------------------------------*/ 1401 1402 static void 1403 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 1404 { 1405 YYFPRINTF (stderr, "Stack now"); 1406 for (; yybottom <= yytop; yybottom++) 1407 { 1408 int yybot = *yybottom; 1409 YYFPRINTF (stderr, " %d", yybot); 1410 } 1411 YYFPRINTF (stderr, "\n"); 1412 } 1413 1414 # define YY_STACK_PRINT(Bottom, Top) \ 1415 do { \ 1416 if (yydebug) \ 1417 yy_stack_print ((Bottom), (Top)); \ 1418 } while (0) 1419 1420 1421 /*------------------------------------------------. 1422 | Report that the YYRULE is going to be reduced. | 1423 `------------------------------------------------*/ 1424 1425 static void 1426 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 1427 { 1428 unsigned long int yylno = yyrline[yyrule]; 1429 int yynrhs = yyr2[yyrule]; 1430 int yyi; 1431 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 1432 yyrule - 1, yylno); 1433 /* The symbols being reduced. */ 1434 for (yyi = 0; yyi < yynrhs; yyi++) 1435 { 1436 YYFPRINTF (stderr, " $%d = ", yyi + 1); 1437 yy_symbol_print (stderr, 1438 yystos[yyssp[yyi + 1 - yynrhs]], 1439 &(yyvsp[(yyi + 1) - (yynrhs)]) 1440 ); 1441 YYFPRINTF (stderr, "\n"); 1442 } 1443 } 1444 1445 # define YY_REDUCE_PRINT(Rule) \ 1446 do { \ 1447 if (yydebug) \ 1448 yy_reduce_print (yyssp, yyvsp, Rule); \ 1449 } while (0) 1450 1451 /* Nonzero means print parse trace. It is left uninitialized so that 1452 multiple parsers can coexist. */ 1453 int yydebug; 1454 #else /* !YYDEBUG */ 1455 # define YYDPRINTF(Args) 1456 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 1457 # define YY_STACK_PRINT(Bottom, Top) 1458 # define YY_REDUCE_PRINT(Rule) 1459 #endif /* !YYDEBUG */ 1460 1461 1462 /* YYINITDEPTH -- initial size of the parser's stacks. */ 1463 #ifndef YYINITDEPTH 1464 # define YYINITDEPTH 200 1465 #endif 1466 1467 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 1468 if the built-in stack extension method is used). 1469 1470 Do not make this value too large; the results are undefined if 1471 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 1472 evaluated with infinite-precision integer arithmetic. */ 1473 1474 #ifndef YYMAXDEPTH 1475 # define YYMAXDEPTH 10000 1476 #endif 1477 1478 1479 #if YYERROR_VERBOSE 1480 1481 # ifndef yystrlen 1482 # if defined __GLIBC__ && defined _STRING_H 1483 # define yystrlen strlen 1484 # else 1485 /* Return the length of YYSTR. */ 1486 static YYSIZE_T 1487 yystrlen (const char *yystr) 1488 { 1489 YYSIZE_T yylen; 1490 for (yylen = 0; yystr[yylen]; yylen++) 1491 continue; 1492 return yylen; 1493 } 1494 # endif 1495 # endif 1496 1497 # ifndef yystpcpy 1498 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 1499 # define yystpcpy stpcpy 1500 # else 1501 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 1502 YYDEST. */ 1503 static char * 1504 yystpcpy (char *yydest, const char *yysrc) 1505 { 1506 char *yyd = yydest; 1507 const char *yys = yysrc; 1508 1509 while ((*yyd++ = *yys++) != '\0') 1510 continue; 1511 1512 return yyd - 1; 1513 } 1514 # endif 1515 # endif 1516 1517 # ifndef yytnamerr 1518 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary 1519 quotes and backslashes, so that it's suitable for yyerror. The 1520 heuristic is that double-quoting is unnecessary unless the string 1521 contains an apostrophe, a comma, or backslash (other than 1522 backslash-backslash). YYSTR is taken from yytname. If YYRES is 1523 null, do not copy; instead, return the length of what the result 1524 would have been. */ 1525 static YYSIZE_T 1526 yytnamerr (char *yyres, const char *yystr) 1527 { 1528 if (*yystr == '"') 1529 { 1530 YYSIZE_T yyn = 0; 1531 char const *yyp = yystr; 1532 1533 for (;;) 1534 switch (*++yyp) 1535 { 1536 case '\'': 1537 case ',': 1538 goto do_not_strip_quotes; 1539 1540 case '\\': 1541 if (*++yyp != '\\') 1542 goto do_not_strip_quotes; 1543 /* Fall through. */ 1544 default: 1545 if (yyres) 1546 yyres[yyn] = *yyp; 1547 yyn++; 1548 break; 1549 1550 case '"': 1551 if (yyres) 1552 yyres[yyn] = '\0'; 1553 return yyn; 1554 } 1555 do_not_strip_quotes: ; 1556 } 1557 1558 if (! yyres) 1559 return yystrlen (yystr); 1560 1561 return yystpcpy (yyres, yystr) - yyres; 1562 } 1563 # endif 1564 1565 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message 1566 about the unexpected token YYTOKEN for the state stack whose top is 1567 YYSSP. 1568 1569 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is 1570 not large enough to hold the message. In that case, also set 1571 *YYMSG_ALLOC to the required number of bytes. Return 2 if the 1572 required number of bytes is too large to store. */ 1573 static int 1574 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, 1575 yytype_int16 *yyssp, int yytoken) 1576 { 1577 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 1578 YYSIZE_T yysize = yysize0; 1579 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 1580 /* Internationalized format string. */ 1581 const char *yyformat = YY_NULLPTR; 1582 /* Arguments of yyformat. */ 1583 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 1584 /* Number of reported tokens (one for the "unexpected", one per 1585 "expected"). */ 1586 int yycount = 0; 1587 1588 /* There are many possibilities here to consider: 1589 - If this state is a consistent state with a default action, then 1590 the only way this function was invoked is if the default action 1591 is an error action. In that case, don't check for expected 1592 tokens because there are none. 1593 - The only way there can be no lookahead present (in yychar) is if 1594 this state is a consistent state with a default action. Thus, 1595 detecting the absence of a lookahead is sufficient to determine 1596 that there is no unexpected or expected token to report. In that 1597 case, just report a simple "syntax error". 1598 - Don't assume there isn't a lookahead just because this state is a 1599 consistent state with a default action. There might have been a 1600 previous inconsistent state, consistent state with a non-default 1601 action, or user semantic action that manipulated yychar. 1602 - Of course, the expected token list depends on states to have 1603 correct lookahead information, and it depends on the parser not 1604 to perform extra reductions after fetching a lookahead from the 1605 scanner and before detecting a syntax error. Thus, state merging 1606 (from LALR or IELR) and default reductions corrupt the expected 1607 token list. However, the list is correct for canonical LR with 1608 one exception: it will still contain any token that will not be 1609 accepted due to an error action in a later state. 1610 */ 1611 if (yytoken != YYEMPTY) 1612 { 1613 int yyn = yypact[*yyssp]; 1614 yyarg[yycount++] = yytname[yytoken]; 1615 if (!yypact_value_is_default (yyn)) 1616 { 1617 /* Start YYX at -YYN if negative to avoid negative indexes in 1618 YYCHECK. In other words, skip the first -YYN actions for 1619 this state because they are default actions. */ 1620 int yyxbegin = yyn < 0 ? -yyn : 0; 1621 /* Stay within bounds of both yycheck and yytname. */ 1622 int yychecklim = YYLAST - yyn + 1; 1623 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 1624 int yyx; 1625 1626 for (yyx = yyxbegin; yyx < yyxend; ++yyx) 1627 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR 1628 && !yytable_value_is_error (yytable[yyx + yyn])) 1629 { 1630 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 1631 { 1632 yycount = 1; 1633 yysize = yysize0; 1634 break; 1635 } 1636 yyarg[yycount++] = yytname[yyx]; 1637 { 1638 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 1639 if (! (yysize <= yysize1 1640 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 1641 return 2; 1642 yysize = yysize1; 1643 } 1644 } 1645 } 1646 } 1647 1648 switch (yycount) 1649 { 1650 # define YYCASE_(N, S) \ 1651 case N: \ 1652 yyformat = S; \ 1653 break 1654 default: /* Avoid compiler warnings. */ 1655 YYCASE_(0, YY_("syntax error")); 1656 YYCASE_(1, YY_("syntax error, unexpected %s")); 1657 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); 1658 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); 1659 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); 1660 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); 1661 # undef YYCASE_ 1662 } 1663 1664 { 1665 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 1666 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 1667 return 2; 1668 yysize = yysize1; 1669 } 1670 1671 if (*yymsg_alloc < yysize) 1672 { 1673 *yymsg_alloc = 2 * yysize; 1674 if (! (yysize <= *yymsg_alloc 1675 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) 1676 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; 1677 return 1; 1678 } 1679 1680 /* Avoid sprintf, as that infringes on the user's name space. 1681 Don't have undefined behavior even if the translation 1682 produced a string with the wrong number of "%s"s. */ 1683 { 1684 char *yyp = *yymsg; 1685 int yyi = 0; 1686 while ((*yyp = *yyformat) != '\0') 1687 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) 1688 { 1689 yyp += yytnamerr (yyp, yyarg[yyi++]); 1690 yyformat += 2; 1691 } 1692 else 1693 { 1694 yyp++; 1695 yyformat++; 1696 } 1697 } 1698 return 0; 1699 } 1700 #endif /* YYERROR_VERBOSE */ 1701 1702 /*-----------------------------------------------. 1703 | Release the memory associated to this symbol. | 1704 `-----------------------------------------------*/ 1705 1706 static void 1707 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 1708 { 1709 YYUSE (yyvaluep); 1710 if (!yymsg) 1711 yymsg = "Deleting"; 1712 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 1713 1714 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1715 YYUSE (yytype); 1716 YY_IGNORE_MAYBE_UNINITIALIZED_END 1717 } 1718 1719 1720 1721 1722 /* The lookahead symbol. */ 1723 int yychar; 1724 1725 /* The semantic value of the lookahead symbol. */ 1726 YYSTYPE yylval; 1727 /* Number of syntax errors so far. */ 1728 int yynerrs; 1729 1730 1731 /*----------. 1732 | yyparse. | 1733 `----------*/ 1734 1735 int 1736 yyparse (void) 1737 { 1738 int yystate; 1739 /* Number of tokens to shift before error messages enabled. */ 1740 int yyerrstatus; 1741 1742 /* The stacks and their tools: 1743 'yyss': related to states. 1744 'yyvs': related to semantic values. 1745 1746 Refer to the stacks through separate pointers, to allow yyoverflow 1747 to reallocate them elsewhere. */ 1748 1749 /* The state stack. */ 1750 yytype_int16 yyssa[YYINITDEPTH]; 1751 yytype_int16 *yyss; 1752 yytype_int16 *yyssp; 1753 1754 /* The semantic value stack. */ 1755 YYSTYPE yyvsa[YYINITDEPTH]; 1756 YYSTYPE *yyvs; 1757 YYSTYPE *yyvsp; 1758 1759 YYSIZE_T yystacksize; 1760 1761 int yyn; 1762 int yyresult; 1763 /* Lookahead token as an internal (translated) token number. */ 1764 int yytoken = 0; 1765 /* The variables used to return semantic value and location from the 1766 action routines. */ 1767 YYSTYPE yyval; 1768 1769 #if YYERROR_VERBOSE 1770 /* Buffer for error messages, and its allocated size. */ 1771 char yymsgbuf[128]; 1772 char *yymsg = yymsgbuf; 1773 YYSIZE_T yymsg_alloc = sizeof yymsgbuf; 1774 #endif 1775 1776 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 1777 1778 /* The number of symbols on the RHS of the reduced rule. 1779 Keep to zero when no symbol should be popped. */ 1780 int yylen = 0; 1781 1782 yyssp = yyss = yyssa; 1783 yyvsp = yyvs = yyvsa; 1784 yystacksize = YYINITDEPTH; 1785 1786 YYDPRINTF ((stderr, "Starting parse\n")); 1787 1788 yystate = 0; 1789 yyerrstatus = 0; 1790 yynerrs = 0; 1791 yychar = YYEMPTY; /* Cause a token to be read. */ 1792 goto yysetstate; 1793 1794 /*------------------------------------------------------------. 1795 | yynewstate -- Push a new state, which is found in yystate. | 1796 `------------------------------------------------------------*/ 1797 yynewstate: 1798 /* In all cases, when you get here, the value and location stacks 1799 have just been pushed. So pushing a state here evens the stacks. */ 1800 yyssp++; 1801 1802 yysetstate: 1803 *yyssp = yystate; 1804 1805 if (yyss + yystacksize - 1 <= yyssp) 1806 { 1807 /* Get the current used size of the three stacks, in elements. */ 1808 YYSIZE_T yysize = yyssp - yyss + 1; 1809 1810 #ifdef yyoverflow 1811 { 1812 /* Give user a chance to reallocate the stack. Use copies of 1813 these so that the &'s don't force the real ones into 1814 memory. */ 1815 YYSTYPE *yyvs1 = yyvs; 1816 yytype_int16 *yyss1 = yyss; 1817 1818 /* Each stack pointer address is followed by the size of the 1819 data in use in that stack, in bytes. This used to be a 1820 conditional around just the two extra args, but that might 1821 be undefined if yyoverflow is a macro. */ 1822 yyoverflow (YY_("memory exhausted"), 1823 &yyss1, yysize * sizeof (*yyssp), 1824 &yyvs1, yysize * sizeof (*yyvsp), 1825 &yystacksize); 1826 1827 yyss = yyss1; 1828 yyvs = yyvs1; 1829 } 1830 #else /* no yyoverflow */ 1831 # ifndef YYSTACK_RELOCATE 1832 goto yyexhaustedlab; 1833 # else 1834 /* Extend the stack our own way. */ 1835 if (YYMAXDEPTH <= yystacksize) 1836 goto yyexhaustedlab; 1837 yystacksize *= 2; 1838 if (YYMAXDEPTH < yystacksize) 1839 yystacksize = YYMAXDEPTH; 1840 1841 { 1842 yytype_int16 *yyss1 = yyss; 1843 union yyalloc *yyptr = 1844 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 1845 if (! yyptr) 1846 goto yyexhaustedlab; 1847 YYSTACK_RELOCATE (yyss_alloc, yyss); 1848 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 1849 # undef YYSTACK_RELOCATE 1850 if (yyss1 != yyssa) 1851 YYSTACK_FREE (yyss1); 1852 } 1853 # endif 1854 #endif /* no yyoverflow */ 1855 1856 yyssp = yyss + yysize - 1; 1857 yyvsp = yyvs + yysize - 1; 1858 1859 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 1860 (unsigned long int) yystacksize)); 1861 1862 if (yyss + yystacksize - 1 <= yyssp) 1863 YYABORT; 1864 } 1865 1866 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 1867 1868 if (yystate == YYFINAL) 1869 YYACCEPT; 1870 1871 goto yybackup; 1872 1873 /*-----------. 1874 | yybackup. | 1875 `-----------*/ 1876 yybackup: 1877 1878 /* Do appropriate processing given the current state. Read a 1879 lookahead token if we need one and don't already have one. */ 1880 1881 /* First try to decide what to do without reference to lookahead token. */ 1882 yyn = yypact[yystate]; 1883 if (yypact_value_is_default (yyn)) 1884 goto yydefault; 1885 1886 /* Not known => get a lookahead token if don't already have one. */ 1887 1888 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 1889 if (yychar == YYEMPTY) 1890 { 1891 YYDPRINTF ((stderr, "Reading a token: ")); 1892 yychar = yylex (); 1893 } 1894 1895 if (yychar <= YYEOF) 1896 { 1897 yychar = yytoken = YYEOF; 1898 YYDPRINTF ((stderr, "Now at end of input.\n")); 1899 } 1900 else 1901 { 1902 yytoken = YYTRANSLATE (yychar); 1903 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 1904 } 1905 1906 /* If the proper action on seeing token YYTOKEN is to reduce or to 1907 detect an error, take that action. */ 1908 yyn += yytoken; 1909 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 1910 goto yydefault; 1911 yyn = yytable[yyn]; 1912 if (yyn <= 0) 1913 { 1914 if (yytable_value_is_error (yyn)) 1915 goto yyerrlab; 1916 yyn = -yyn; 1917 goto yyreduce; 1918 } 1919 1920 /* Count tokens shifted since error; after three, turn off error 1921 status. */ 1922 if (yyerrstatus) 1923 yyerrstatus--; 1924 1925 /* Shift the lookahead token. */ 1926 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 1927 1928 /* Discard the shifted token. */ 1929 yychar = YYEMPTY; 1930 1931 yystate = yyn; 1932 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1933 *++yyvsp = yylval; 1934 YY_IGNORE_MAYBE_UNINITIALIZED_END 1935 1936 goto yynewstate; 1937 1938 1939 /*-----------------------------------------------------------. 1940 | yydefault -- do the default action for the current state. | 1941 `-----------------------------------------------------------*/ 1942 yydefault: 1943 yyn = yydefact[yystate]; 1944 if (yyn == 0) 1945 goto yyerrlab; 1946 goto yyreduce; 1947 1948 1949 /*-----------------------------. 1950 | yyreduce -- Do a reduction. | 1951 `-----------------------------*/ 1952 yyreduce: 1953 /* yyn is the number of a rule to reduce with. */ 1954 yylen = yyr2[yyn]; 1955 1956 /* If YYLEN is nonzero, implement the default value of the action: 1957 '$$ = $1'. 1958 1959 Otherwise, the following line sets YYVAL to garbage. 1960 This behavior is undocumented and Bison 1961 users should not rely upon it. Assigning to YYVAL 1962 unconditionally makes the parser a bit smaller, and it avoids a 1963 GCC warning that YYVAL may be used uninitialized. */ 1964 yyval = yyvsp[1-yylen]; 1965 1966 1967 YY_REDUCE_PRINT (yyn); 1968 switch (yyn) 1969 { 1970 case 18: 1971 #line 201 "rcparse.y" /* yacc.c:1648 */ 1972 { 1973 define_accelerator ((yyvsp[-5].id), &(yyvsp[-3].res_info), (yyvsp[-1].pacc)); 1974 if (yychar != YYEMPTY) 1975 YYERROR; 1976 rcparse_discard_strings (); 1977 } 1978 #line 1979 "rcparse.c" /* yacc.c:1648 */ 1979 break; 1980 1981 case 19: 1982 #line 211 "rcparse.y" /* yacc.c:1648 */ 1983 { 1984 (yyval.pacc) = NULL; 1985 } 1986 #line 1987 "rcparse.c" /* yacc.c:1648 */ 1987 break; 1988 1989 case 20: 1990 #line 215 "rcparse.y" /* yacc.c:1648 */ 1991 { 1992 rc_accelerator *a; 1993 1994 a = (rc_accelerator *) res_alloc (sizeof *a); 1995 *a = (yyvsp[0].acc); 1996 if ((yyvsp[-1].pacc) == NULL) 1997 (yyval.pacc) = a; 1998 else 1999 { 2000 rc_accelerator **pp; 2001 2002 for (pp = &(yyvsp[-1].pacc)->next; *pp != NULL; pp = &(*pp)->next) 2003 ; 2004 *pp = a; 2005 (yyval.pacc) = (yyvsp[-1].pacc); 2006 } 2007 } 2008 #line 2009 "rcparse.c" /* yacc.c:1648 */ 2009 break; 2010 2011 case 21: 2012 #line 236 "rcparse.y" /* yacc.c:1648 */ 2013 { 2014 (yyval.acc) = (yyvsp[-1].acc); 2015 (yyval.acc).id = (yyvsp[0].il); 2016 } 2017 #line 2018 "rcparse.c" /* yacc.c:1648 */ 2018 break; 2019 2020 case 22: 2021 #line 241 "rcparse.y" /* yacc.c:1648 */ 2022 { 2023 (yyval.acc) = (yyvsp[-3].acc); 2024 (yyval.acc).id = (yyvsp[-2].il); 2025 (yyval.acc).flags |= (yyvsp[0].is); 2026 if (((yyval.acc).flags & ACC_VIRTKEY) == 0 2027 && ((yyval.acc).flags & (ACC_SHIFT | ACC_CONTROL)) != 0) 2028 rcparse_warning (_("inappropriate modifiers for non-VIRTKEY")); 2029 } 2030 #line 2031 "rcparse.c" /* yacc.c:1648 */ 2031 break; 2032 2033 case 23: 2034 #line 253 "rcparse.y" /* yacc.c:1648 */ 2035 { 2036 const char *s = (yyvsp[0].s); 2037 char ch; 2038 2039 (yyval.acc).next = NULL; 2040 (yyval.acc).id = 0; 2041 ch = *s; 2042 if (ch != '^') 2043 (yyval.acc).flags = 0; 2044 else 2045 { 2046 (yyval.acc).flags = ACC_CONTROL | ACC_VIRTKEY; 2047 ++s; 2048 ch = TOUPPER (s[0]); 2049 } 2050 (yyval.acc).key = ch; 2051 if (s[1] != '\0') 2052 rcparse_warning (_("accelerator should only be one character")); 2053 } 2054 #line 2055 "rcparse.c" /* yacc.c:1648 */ 2055 break; 2056 2057 case 24: 2058 #line 273 "rcparse.y" /* yacc.c:1648 */ 2059 { 2060 (yyval.acc).next = NULL; 2061 (yyval.acc).flags = 0; 2062 (yyval.acc).id = 0; 2063 (yyval.acc).key = (yyvsp[0].il); 2064 } 2065 #line 2066 "rcparse.c" /* yacc.c:1648 */ 2066 break; 2067 2068 case 25: 2069 #line 283 "rcparse.y" /* yacc.c:1648 */ 2070 { 2071 (yyval.is) = (yyvsp[0].is); 2072 } 2073 #line 2074 "rcparse.c" /* yacc.c:1648 */ 2074 break; 2075 2076 case 26: 2077 #line 287 "rcparse.y" /* yacc.c:1648 */ 2078 { 2079 (yyval.is) = (yyvsp[-2].is) | (yyvsp[0].is); 2080 } 2081 #line 2082 "rcparse.c" /* yacc.c:1648 */ 2082 break; 2083 2084 case 27: 2085 #line 292 "rcparse.y" /* yacc.c:1648 */ 2086 { 2087 (yyval.is) = (yyvsp[-1].is) | (yyvsp[0].is); 2088 } 2089 #line 2090 "rcparse.c" /* yacc.c:1648 */ 2090 break; 2091 2092 case 28: 2093 #line 299 "rcparse.y" /* yacc.c:1648 */ 2094 { 2095 (yyval.is) = ACC_VIRTKEY; 2096 } 2097 #line 2098 "rcparse.c" /* yacc.c:1648 */ 2098 break; 2099 2100 case 29: 2101 #line 303 "rcparse.y" /* yacc.c:1648 */ 2102 { 2103 /* This is just the absence of VIRTKEY. */ 2104 (yyval.is) = 0; 2105 } 2106 #line 2107 "rcparse.c" /* yacc.c:1648 */ 2107 break; 2108 2109 case 30: 2110 #line 308 "rcparse.y" /* yacc.c:1648 */ 2111 { 2112 (yyval.is) = ACC_NOINVERT; 2113 } 2114 #line 2115 "rcparse.c" /* yacc.c:1648 */ 2115 break; 2116 2117 case 31: 2118 #line 312 "rcparse.y" /* yacc.c:1648 */ 2119 { 2120 (yyval.is) = ACC_SHIFT; 2121 } 2122 #line 2123 "rcparse.c" /* yacc.c:1648 */ 2123 break; 2124 2125 case 32: 2126 #line 316 "rcparse.y" /* yacc.c:1648 */ 2127 { 2128 (yyval.is) = ACC_CONTROL; 2129 } 2130 #line 2131 "rcparse.c" /* yacc.c:1648 */ 2131 break; 2132 2133 case 33: 2134 #line 320 "rcparse.y" /* yacc.c:1648 */ 2135 { 2136 (yyval.is) = ACC_ALT; 2137 } 2138 #line 2139 "rcparse.c" /* yacc.c:1648 */ 2139 break; 2140 2141 case 34: 2142 #line 329 "rcparse.y" /* yacc.c:1648 */ 2143 { 2144 define_bitmap ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s)); 2145 if (yychar != YYEMPTY) 2146 YYERROR; 2147 rcparse_discard_strings (); 2148 } 2149 #line 2150 "rcparse.c" /* yacc.c:1648 */ 2150 break; 2151 2152 case 35: 2153 #line 341 "rcparse.y" /* yacc.c:1648 */ 2154 { 2155 define_cursor ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s)); 2156 if (yychar != YYEMPTY) 2157 YYERROR; 2158 rcparse_discard_strings (); 2159 } 2160 #line 2161 "rcparse.c" /* yacc.c:1648 */ 2161 break; 2162 2163 case 36: 2164 #line 354 "rcparse.y" /* yacc.c:1648 */ 2165 { 2166 memset (&dialog, 0, sizeof dialog); 2167 dialog.x = (yyvsp[-3].il); 2168 dialog.y = (yyvsp[-2].il); 2169 dialog.width = (yyvsp[-1].il); 2170 dialog.height = (yyvsp[0].il); 2171 dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; 2172 dialog.exstyle = (yyvsp[-4].il); 2173 dialog.menu.named = 1; 2174 dialog.class.named = 1; 2175 dialog.font = NULL; 2176 dialog.ex = NULL; 2177 dialog.controls = NULL; 2178 sub_res_info = (yyvsp[-5].res_info); 2179 style = 0; 2180 } 2181 #line 2182 "rcparse.c" /* yacc.c:1648 */ 2182 break; 2183 2184 case 37: 2185 #line 371 "rcparse.y" /* yacc.c:1648 */ 2186 { 2187 define_dialog ((yyvsp[-12].id), &sub_res_info, &dialog); 2188 if (yychar != YYEMPTY) 2189 YYERROR; 2190 rcparse_discard_strings (); 2191 } 2192 #line 2193 "rcparse.c" /* yacc.c:1648 */ 2193 break; 2194 2195 case 38: 2196 #line 379 "rcparse.y" /* yacc.c:1648 */ 2197 { 2198 memset (&dialog, 0, sizeof dialog); 2199 dialog.x = (yyvsp[-3].il); 2200 dialog.y = (yyvsp[-2].il); 2201 dialog.width = (yyvsp[-1].il); 2202 dialog.height = (yyvsp[0].il); 2203 dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; 2204 dialog.exstyle = (yyvsp[-4].il); 2205 dialog.menu.named = 1; 2206 dialog.class.named = 1; 2207 dialog.font = NULL; 2208 dialog.ex = ((rc_dialog_ex *) 2209 res_alloc (sizeof (rc_dialog_ex))); 2210 memset (dialog.ex, 0, sizeof (rc_dialog_ex)); 2211 dialog.controls = NULL; 2212 sub_res_info = (yyvsp[-5].res_info); 2213 style = 0; 2214 } 2215 #line 2216 "rcparse.c" /* yacc.c:1648 */ 2216 break; 2217 2218 case 39: 2219 #line 398 "rcparse.y" /* yacc.c:1648 */ 2220 { 2221 define_dialog ((yyvsp[-12].id), &sub_res_info, &dialog); 2222 if (yychar != YYEMPTY) 2223 YYERROR; 2224 rcparse_discard_strings (); 2225 } 2226 #line 2227 "rcparse.c" /* yacc.c:1648 */ 2227 break; 2228 2229 case 40: 2230 #line 406 "rcparse.y" /* yacc.c:1648 */ 2231 { 2232 memset (&dialog, 0, sizeof dialog); 2233 dialog.x = (yyvsp[-4].il); 2234 dialog.y = (yyvsp[-3].il); 2235 dialog.width = (yyvsp[-2].il); 2236 dialog.height = (yyvsp[-1].il); 2237 dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; 2238 dialog.exstyle = (yyvsp[-5].il); 2239 dialog.menu.named = 1; 2240 dialog.class.named = 1; 2241 dialog.font = NULL; 2242 dialog.ex = ((rc_dialog_ex *) 2243 res_alloc (sizeof (rc_dialog_ex))); 2244 memset (dialog.ex, 0, sizeof (rc_dialog_ex)); 2245 dialog.ex->help = (yyvsp[0].il); 2246 dialog.controls = NULL; 2247 sub_res_info = (yyvsp[-6].res_info); 2248 style = 0; 2249 } 2250 #line 2251 "rcparse.c" /* yacc.c:1648 */ 2251 break; 2252 2253 case 41: 2254 #line 426 "rcparse.y" /* yacc.c:1648 */ 2255 { 2256 define_dialog ((yyvsp[-13].id), &sub_res_info, &dialog); 2257 if (yychar != YYEMPTY) 2258 YYERROR; 2259 rcparse_discard_strings (); 2260 } 2261 #line 2262 "rcparse.c" /* yacc.c:1648 */ 2262 break; 2263 2264 case 42: 2265 #line 436 "rcparse.y" /* yacc.c:1648 */ 2266 { 2267 (yyval.il) = 0; 2268 } 2269 #line 2270 "rcparse.c" /* yacc.c:1648 */ 2270 break; 2271 2272 case 43: 2273 #line 440 "rcparse.y" /* yacc.c:1648 */ 2274 { 2275 (yyval.il) = (yyvsp[0].il); 2276 } 2277 #line 2278 "rcparse.c" /* yacc.c:1648 */ 2278 break; 2279 2280 case 45: 2281 #line 448 "rcparse.y" /* yacc.c:1648 */ 2282 { 2283 dialog.style |= WS_CAPTION; 2284 style |= WS_CAPTION; 2285 dialog.caption = (yyvsp[0].uni); 2286 } 2287 #line 2288 "rcparse.c" /* yacc.c:1648 */ 2288 break; 2289 2290 case 46: 2291 #line 454 "rcparse.y" /* yacc.c:1648 */ 2292 { 2293 dialog.class = (yyvsp[0].id); 2294 } 2295 #line 2296 "rcparse.c" /* yacc.c:1648 */ 2296 break; 2297 2298 case 47: 2299 #line 459 "rcparse.y" /* yacc.c:1648 */ 2300 { 2301 dialog.style = style; 2302 } 2303 #line 2304 "rcparse.c" /* yacc.c:1648 */ 2304 break; 2305 2306 case 48: 2307 #line 463 "rcparse.y" /* yacc.c:1648 */ 2308 { 2309 dialog.exstyle = (yyvsp[0].il); 2310 } 2311 #line 2312 "rcparse.c" /* yacc.c:1648 */ 2312 break; 2313 2314 case 49: 2315 #line 467 "rcparse.y" /* yacc.c:1648 */ 2316 { 2317 res_unistring_to_id (& dialog.class, (yyvsp[0].uni)); 2318 } 2319 #line 2320 "rcparse.c" /* yacc.c:1648 */ 2320 break; 2321 2322 case 50: 2323 #line 471 "rcparse.y" /* yacc.c:1648 */ 2324 { 2325 dialog.style |= DS_SETFONT; 2326 style |= DS_SETFONT; 2327 dialog.pointsize = (yyvsp[-2].il); 2328 dialog.font = (yyvsp[0].uni); 2329 if (dialog.ex != NULL) 2330 { 2331 dialog.ex->weight = 0; 2332 dialog.ex->italic = 0; 2333 dialog.ex->charset = 1; 2334 } 2335 } 2336 #line 2337 "rcparse.c" /* yacc.c:1648 */ 2337 break; 2338 2339 case 51: 2340 #line 484 "rcparse.y" /* yacc.c:1648 */ 2341 { 2342 dialog.style |= DS_SETFONT; 2343 style |= DS_SETFONT; 2344 dialog.pointsize = (yyvsp[-3].il); 2345 dialog.font = (yyvsp[-1].uni); 2346 if (dialog.ex == NULL) 2347 rcparse_warning (_("extended FONT requires DIALOGEX")); 2348 else 2349 { 2350 dialog.ex->weight = (yyvsp[0].il); 2351 dialog.ex->italic = 0; 2352 dialog.ex->charset = 1; 2353 } 2354 } 2355 #line 2356 "rcparse.c" /* yacc.c:1648 */ 2356 break; 2357 2358 case 52: 2359 #line 499 "rcparse.y" /* yacc.c:1648 */ 2360 { 2361 dialog.style |= DS_SETFONT; 2362 style |= DS_SETFONT; 2363 dialog.pointsize = (yyvsp[-4].il); 2364 dialog.font = (yyvsp[-2].uni); 2365 if (dialog.ex == NULL) 2366 rcparse_warning (_("extended FONT requires DIALOGEX")); 2367 else 2368 { 2369 dialog.ex->weight = (yyvsp[-1].il); 2370 dialog.ex->italic = (yyvsp[0].il); 2371 dialog.ex->charset = 1; 2372 } 2373 } 2374 #line 2375 "rcparse.c" /* yacc.c:1648 */ 2375 break; 2376 2377 case 53: 2378 #line 514 "rcparse.y" /* yacc.c:1648 */ 2379 { 2380 dialog.style |= DS_SETFONT; 2381 style |= DS_SETFONT; 2382 dialog.pointsize = (yyvsp[-5].il); 2383 dialog.font = (yyvsp[-3].uni); 2384 if (dialog.ex == NULL) 2385 rcparse_warning (_("extended FONT requires DIALOGEX")); 2386 else 2387 { 2388 dialog.ex->weight = (yyvsp[-2].il); 2389 dialog.ex->italic = (yyvsp[-1].il); 2390 dialog.ex->charset = (yyvsp[0].il); 2391 } 2392 } 2393 #line 2394 "rcparse.c" /* yacc.c:1648 */ 2394 break; 2395 2396 case 54: 2397 #line 529 "rcparse.y" /* yacc.c:1648 */ 2398 { 2399 dialog.menu = (yyvsp[0].id); 2400 } 2401 #line 2402 "rcparse.c" /* yacc.c:1648 */ 2402 break; 2403 2404 case 55: 2405 #line 533 "rcparse.y" /* yacc.c:1648 */ 2406 { 2407 sub_res_info.characteristics = (yyvsp[0].il); 2408 } 2409 #line 2410 "rcparse.c" /* yacc.c:1648 */ 2410 break; 2411 2412 case 56: 2413 #line 537 "rcparse.y" /* yacc.c:1648 */ 2414 { 2415 sub_res_info.language = (yyvsp[-1].il) | ((yyvsp[0].il) << SUBLANG_SHIFT); 2416 } 2417 #line 2418 "rcparse.c" /* yacc.c:1648 */ 2418 break; 2419 2420 case 57: 2421 #line 541 "rcparse.y" /* yacc.c:1648 */ 2422 { 2423 sub_res_info.version = (yyvsp[0].il); 2424 } 2425 #line 2426 "rcparse.c" /* yacc.c:1648 */ 2426 break; 2427 2428 case 59: 2429 #line 549 "rcparse.y" /* yacc.c:1648 */ 2430 { 2431 rc_dialog_control **pp; 2432 2433 for (pp = &dialog.controls; *pp != NULL; pp = &(*pp)->next) 2434 ; 2435 *pp = (yyvsp[0].dialog_control); 2436 } 2437 #line 2438 "rcparse.c" /* yacc.c:1648 */ 2438 break; 2439 2440 case 60: 2441 #line 560 "rcparse.y" /* yacc.c:1648 */ 2442 { 2443 default_style = BS_AUTO3STATE | WS_TABSTOP; 2444 base_style = BS_AUTO3STATE; 2445 class.named = 0; 2446 class.u.id = CTL_BUTTON; 2447 res_text_field = (yyvsp[0].id); 2448 } 2449 #line 2450 "rcparse.c" /* yacc.c:1648 */ 2450 break; 2451 2452 case 61: 2453 #line 568 "rcparse.y" /* yacc.c:1648 */ 2454 { 2455 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2456 } 2457 #line 2458 "rcparse.c" /* yacc.c:1648 */ 2458 break; 2459 2460 case 62: 2461 #line 572 "rcparse.y" /* yacc.c:1648 */ 2462 { 2463 default_style = BS_AUTOCHECKBOX | WS_TABSTOP; 2464 base_style = BS_AUTOCHECKBOX; 2465 class.named = 0; 2466 class.u.id = CTL_BUTTON; 2467 res_text_field = (yyvsp[0].id); 2468 } 2469 #line 2470 "rcparse.c" /* yacc.c:1648 */ 2470 break; 2471 2472 case 63: 2473 #line 580 "rcparse.y" /* yacc.c:1648 */ 2474 { 2475 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2476 } 2477 #line 2478 "rcparse.c" /* yacc.c:1648 */ 2478 break; 2479 2480 case 64: 2481 #line 584 "rcparse.y" /* yacc.c:1648 */ 2482 { 2483 default_style = BS_AUTORADIOBUTTON | WS_TABSTOP; 2484 base_style = BS_AUTORADIOBUTTON; 2485 class.named = 0; 2486 class.u.id = CTL_BUTTON; 2487 res_text_field = (yyvsp[0].id); 2488 } 2489 #line 2490 "rcparse.c" /* yacc.c:1648 */ 2490 break; 2491 2492 case 65: 2493 #line 592 "rcparse.y" /* yacc.c:1648 */ 2494 { 2495 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2496 } 2497 #line 2498 "rcparse.c" /* yacc.c:1648 */ 2498 break; 2499 2500 case 66: 2501 #line 596 "rcparse.y" /* yacc.c:1648 */ 2502 { 2503 default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2504 base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2505 class.named = 0; 2506 class.u.id = CTL_EDIT; 2507 res_text_field = (yyvsp[0].id); 2508 } 2509 #line 2510 "rcparse.c" /* yacc.c:1648 */ 2510 break; 2511 2512 case 67: 2513 #line 604 "rcparse.y" /* yacc.c:1648 */ 2514 { 2515 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2516 if (dialog.ex == NULL) 2517 rcparse_warning (_("BEDIT requires DIALOGEX")); 2518 res_string_to_id (&(yyval.dialog_control)->class, "BEDIT"); 2519 } 2520 #line 2521 "rcparse.c" /* yacc.c:1648 */ 2521 break; 2522 2523 case 68: 2524 #line 611 "rcparse.y" /* yacc.c:1648 */ 2525 { 2526 default_style = BS_CHECKBOX | WS_TABSTOP; 2527 base_style = BS_CHECKBOX | WS_TABSTOP; 2528 class.named = 0; 2529 class.u.id = CTL_BUTTON; 2530 res_text_field = (yyvsp[0].id); 2531 } 2532 #line 2533 "rcparse.c" /* yacc.c:1648 */ 2533 break; 2534 2535 case 69: 2536 #line 619 "rcparse.y" /* yacc.c:1648 */ 2537 { 2538 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2539 } 2540 #line 2541 "rcparse.c" /* yacc.c:1648 */ 2541 break; 2542 2543 case 70: 2544 #line 623 "rcparse.y" /* yacc.c:1648 */ 2545 { 2546 /* This is as per MSDN documentation. With some (???) 2547 versions of MS rc.exe their is no default style. */ 2548 default_style = CBS_SIMPLE | WS_TABSTOP; 2549 base_style = 0; 2550 class.named = 0; 2551 class.u.id = CTL_COMBOBOX; 2552 res_text_field = res_null_text; 2553 } 2554 #line 2555 "rcparse.c" /* yacc.c:1648 */ 2555 break; 2556 2557 case 71: 2558 #line 633 "rcparse.y" /* yacc.c:1648 */ 2559 { 2560 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2561 } 2562 #line 2563 "rcparse.c" /* yacc.c:1648 */ 2563 break; 2564 2565 case 72: 2566 #line 638 "rcparse.y" /* yacc.c:1648 */ 2567 { 2568 (yyval.dialog_control) = define_control ((yyvsp[-9].id), (yyvsp[-8].il), (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-2].il), (yyvsp[-7].id), style, (yyvsp[-1].il)); 2569 if ((yyvsp[0].rcdata_item) != NULL) 2570 { 2571 if (dialog.ex == NULL) 2572 rcparse_warning (_("control data requires DIALOGEX")); 2573 (yyval.dialog_control)->data = (yyvsp[0].rcdata_item); 2574 } 2575 } 2576 #line 2577 "rcparse.c" /* yacc.c:1648 */ 2577 break; 2578 2579 case 73: 2580 #line 649 "rcparse.y" /* yacc.c:1648 */ 2581 { 2582 (yyval.dialog_control) = define_control ((yyvsp[-10].id), (yyvsp[-9].il), (yyvsp[-6].il), (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-8].id), style, (yyvsp[-2].il)); 2583 if (dialog.ex == NULL) 2584 rcparse_warning (_("help ID requires DIALOGEX")); 2585 (yyval.dialog_control)->help = (yyvsp[-1].il); 2586 (yyval.dialog_control)->data = (yyvsp[0].rcdata_item); 2587 } 2588 #line 2589 "rcparse.c" /* yacc.c:1648 */ 2589 break; 2590 2591 case 74: 2592 #line 657 "rcparse.y" /* yacc.c:1648 */ 2593 { 2594 default_style = SS_CENTER | WS_GROUP; 2595 base_style = SS_CENTER; 2596 class.named = 0; 2597 class.u.id = CTL_STATIC; 2598 res_text_field = (yyvsp[0].id); 2599 } 2600 #line 2601 "rcparse.c" /* yacc.c:1648 */ 2601 break; 2602 2603 case 75: 2604 #line 665 "rcparse.y" /* yacc.c:1648 */ 2605 { 2606 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2607 } 2608 #line 2609 "rcparse.c" /* yacc.c:1648 */ 2609 break; 2610 2611 case 76: 2612 #line 669 "rcparse.y" /* yacc.c:1648 */ 2613 { 2614 default_style = BS_DEFPUSHBUTTON | WS_TABSTOP; 2615 base_style = BS_DEFPUSHBUTTON | WS_TABSTOP; 2616 class.named = 0; 2617 class.u.id = CTL_BUTTON; 2618 res_text_field = (yyvsp[0].id); 2619 } 2620 #line 2621 "rcparse.c" /* yacc.c:1648 */ 2621 break; 2622 2623 case 77: 2624 #line 677 "rcparse.y" /* yacc.c:1648 */ 2625 { 2626 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2627 } 2628 #line 2629 "rcparse.c" /* yacc.c:1648 */ 2629 break; 2630 2631 case 78: 2632 #line 681 "rcparse.y" /* yacc.c:1648 */ 2633 { 2634 default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2635 base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2636 class.named = 0; 2637 class.u.id = CTL_EDIT; 2638 res_text_field = res_null_text; 2639 } 2640 #line 2641 "rcparse.c" /* yacc.c:1648 */ 2641 break; 2642 2643 case 79: 2644 #line 689 "rcparse.y" /* yacc.c:1648 */ 2645 { 2646 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2647 } 2648 #line 2649 "rcparse.c" /* yacc.c:1648 */ 2649 break; 2650 2651 case 80: 2652 #line 693 "rcparse.y" /* yacc.c:1648 */ 2653 { 2654 default_style = BS_GROUPBOX; 2655 base_style = BS_GROUPBOX; 2656 class.named = 0; 2657 class.u.id = CTL_BUTTON; 2658 res_text_field = (yyvsp[0].id); 2659 } 2660 #line 2661 "rcparse.c" /* yacc.c:1648 */ 2661 break; 2662 2663 case 81: 2664 #line 701 "rcparse.y" /* yacc.c:1648 */ 2665 { 2666 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2667 } 2668 #line 2669 "rcparse.c" /* yacc.c:1648 */ 2669 break; 2670 2671 case 82: 2672 #line 705 "rcparse.y" /* yacc.c:1648 */ 2673 { 2674 default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2675 base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2676 class.named = 0; 2677 class.u.id = CTL_EDIT; 2678 res_text_field = (yyvsp[0].id); 2679 } 2680 #line 2681 "rcparse.c" /* yacc.c:1648 */ 2681 break; 2682 2683 case 83: 2684 #line 713 "rcparse.y" /* yacc.c:1648 */ 2685 { 2686 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2687 if (dialog.ex == NULL) 2688 rcparse_warning (_("IEDIT requires DIALOGEX")); 2689 res_string_to_id (&(yyval.dialog_control)->class, "HEDIT"); 2690 } 2691 #line 2692 "rcparse.c" /* yacc.c:1648 */ 2692 break; 2693 2694 case 84: 2695 #line 720 "rcparse.y" /* yacc.c:1648 */ 2696 { 2697 (yyval.dialog_control) = define_icon_control ((yyvsp[-4].id), (yyvsp[-3].il), (yyvsp[-2].il), (yyvsp[-1].il), 0, 0, 0, (yyvsp[0].rcdata_item), 2698 dialog.ex); 2699 } 2700 #line 2701 "rcparse.c" /* yacc.c:1648 */ 2701 break; 2702 2703 case 85: 2704 #line 726 "rcparse.y" /* yacc.c:1648 */ 2705 { 2706 (yyval.dialog_control) = define_icon_control ((yyvsp[-6].id), (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), 0, 0, 0, (yyvsp[0].rcdata_item), 2707 dialog.ex); 2708 } 2709 #line 2710 "rcparse.c" /* yacc.c:1648 */ 2710 break; 2711 2712 case 86: 2713 #line 732 "rcparse.y" /* yacc.c:1648 */ 2714 { 2715 (yyval.dialog_control) = define_icon_control ((yyvsp[-8].id), (yyvsp[-7].il), (yyvsp[-6].il), (yyvsp[-5].il), style, (yyvsp[-1].il), 0, (yyvsp[0].rcdata_item), 2716 dialog.ex); 2717 } 2718 #line 2719 "rcparse.c" /* yacc.c:1648 */ 2719 break; 2720 2721 case 87: 2722 #line 738 "rcparse.y" /* yacc.c:1648 */ 2723 { 2724 (yyval.dialog_control) = define_icon_control ((yyvsp[-9].id), (yyvsp[-8].il), (yyvsp[-7].il), (yyvsp[-6].il), style, (yyvsp[-2].il), (yyvsp[-1].il), (yyvsp[0].rcdata_item), 2725 dialog.ex); 2726 } 2727 #line 2728 "rcparse.c" /* yacc.c:1648 */ 2728 break; 2729 2730 case 88: 2731 #line 743 "rcparse.y" /* yacc.c:1648 */ 2732 { 2733 default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2734 base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2735 class.named = 0; 2736 class.u.id = CTL_EDIT; 2737 res_text_field = (yyvsp[0].id); 2738 } 2739 #line 2740 "rcparse.c" /* yacc.c:1648 */ 2740 break; 2741 2742 case 89: 2743 #line 751 "rcparse.y" /* yacc.c:1648 */ 2744 { 2745 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2746 if (dialog.ex == NULL) 2747 rcparse_warning (_("IEDIT requires DIALOGEX")); 2748 res_string_to_id (&(yyval.dialog_control)->class, "IEDIT"); 2749 } 2750 #line 2751 "rcparse.c" /* yacc.c:1648 */ 2751 break; 2752 2753 case 90: 2754 #line 758 "rcparse.y" /* yacc.c:1648 */ 2755 { 2756 default_style = LBS_NOTIFY | WS_BORDER; 2757 base_style = LBS_NOTIFY | WS_BORDER; 2758 class.named = 0; 2759 class.u.id = CTL_LISTBOX; 2760 res_text_field = res_null_text; 2761 } 2762 #line 2763 "rcparse.c" /* yacc.c:1648 */ 2763 break; 2764 2765 case 91: 2766 #line 766 "rcparse.y" /* yacc.c:1648 */ 2767 { 2768 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2769 } 2770 #line 2771 "rcparse.c" /* yacc.c:1648 */ 2771 break; 2772 2773 case 92: 2774 #line 770 "rcparse.y" /* yacc.c:1648 */ 2775 { 2776 default_style = SS_LEFT | WS_GROUP; 2777 base_style = SS_LEFT; 2778 class.named = 0; 2779 class.u.id = CTL_STATIC; 2780 res_text_field = (yyvsp[0].id); 2781 } 2782 #line 2783 "rcparse.c" /* yacc.c:1648 */ 2783 break; 2784 2785 case 93: 2786 #line 778 "rcparse.y" /* yacc.c:1648 */ 2787 { 2788 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2789 } 2790 #line 2791 "rcparse.c" /* yacc.c:1648 */ 2791 break; 2792 2793 case 94: 2794 #line 782 "rcparse.y" /* yacc.c:1648 */ 2795 { 2796 default_style = BS_PUSHBOX | WS_TABSTOP; 2797 base_style = BS_PUSHBOX; 2798 class.named = 0; 2799 class.u.id = CTL_BUTTON; 2800 } 2801 #line 2802 "rcparse.c" /* yacc.c:1648 */ 2802 break; 2803 2804 case 95: 2805 #line 789 "rcparse.y" /* yacc.c:1648 */ 2806 { 2807 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2808 } 2809 #line 2810 "rcparse.c" /* yacc.c:1648 */ 2810 break; 2811 2812 case 96: 2813 #line 793 "rcparse.y" /* yacc.c:1648 */ 2814 { 2815 default_style = BS_PUSHBUTTON | WS_TABSTOP; 2816 base_style = BS_PUSHBUTTON | WS_TABSTOP; 2817 class.named = 0; 2818 class.u.id = CTL_BUTTON; 2819 res_text_field = (yyvsp[0].id); 2820 } 2821 #line 2822 "rcparse.c" /* yacc.c:1648 */ 2822 break; 2823 2824 case 97: 2825 #line 801 "rcparse.y" /* yacc.c:1648 */ 2826 { 2827 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2828 } 2829 #line 2830 "rcparse.c" /* yacc.c:1648 */ 2830 break; 2831 2832 case 98: 2833 #line 805 "rcparse.y" /* yacc.c:1648 */ 2834 { 2835 default_style = BS_RADIOBUTTON | WS_TABSTOP; 2836 base_style = BS_RADIOBUTTON; 2837 class.named = 0; 2838 class.u.id = CTL_BUTTON; 2839 res_text_field = (yyvsp[0].id); 2840 } 2841 #line 2842 "rcparse.c" /* yacc.c:1648 */ 2842 break; 2843 2844 case 99: 2845 #line 813 "rcparse.y" /* yacc.c:1648 */ 2846 { 2847 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2848 } 2849 #line 2850 "rcparse.c" /* yacc.c:1648 */ 2850 break; 2851 2852 case 100: 2853 #line 817 "rcparse.y" /* yacc.c:1648 */ 2854 { 2855 default_style = SS_RIGHT | WS_GROUP; 2856 base_style = SS_RIGHT; 2857 class.named = 0; 2858 class.u.id = CTL_STATIC; 2859 res_text_field = (yyvsp[0].id); 2860 } 2861 #line 2862 "rcparse.c" /* yacc.c:1648 */ 2862 break; 2863 2864 case 101: 2865 #line 825 "rcparse.y" /* yacc.c:1648 */ 2866 { 2867 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2868 } 2869 #line 2870 "rcparse.c" /* yacc.c:1648 */ 2870 break; 2871 2872 case 102: 2873 #line 829 "rcparse.y" /* yacc.c:1648 */ 2874 { 2875 default_style = SBS_HORZ; 2876 base_style = 0; 2877 class.named = 0; 2878 class.u.id = CTL_SCROLLBAR; 2879 res_text_field = res_null_text; 2880 } 2881 #line 2882 "rcparse.c" /* yacc.c:1648 */ 2882 break; 2883 2884 case 103: 2885 #line 837 "rcparse.y" /* yacc.c:1648 */ 2886 { 2887 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2888 } 2889 #line 2890 "rcparse.c" /* yacc.c:1648 */ 2890 break; 2891 2892 case 104: 2893 #line 841 "rcparse.y" /* yacc.c:1648 */ 2894 { 2895 default_style = BS_3STATE | WS_TABSTOP; 2896 base_style = BS_3STATE; 2897 class.named = 0; 2898 class.u.id = CTL_BUTTON; 2899 res_text_field = (yyvsp[0].id); 2900 } 2901 #line 2902 "rcparse.c" /* yacc.c:1648 */ 2902 break; 2903 2904 case 105: 2905 #line 849 "rcparse.y" /* yacc.c:1648 */ 2906 { 2907 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2908 } 2909 #line 2910 "rcparse.c" /* yacc.c:1648 */ 2910 break; 2911 2912 case 106: 2913 #line 854 "rcparse.y" /* yacc.c:1648 */ 2914 { style = WS_CHILD | WS_VISIBLE; } 2915 #line 2916 "rcparse.c" /* yacc.c:1648 */ 2916 break; 2917 2918 case 107: 2919 #line 856 "rcparse.y" /* yacc.c:1648 */ 2920 { 2921 rc_res_id cid; 2922 cid.named = 0; 2923 cid.u.id = CTL_BUTTON; 2924 (yyval.dialog_control) = define_control ((yyvsp[-13].id), (yyvsp[-12].il), (yyvsp[-10].il), (yyvsp[-8].il), (yyvsp[-6].il), (yyvsp[-4].il), cid, 2925 style, (yyvsp[0].il)); 2926 } 2927 #line 2928 "rcparse.c" /* yacc.c:1648 */ 2928 break; 2929 2930 case 108: 2931 #line 874 "rcparse.y" /* yacc.c:1648 */ 2932 { 2933 (yyval.dialog_control) = define_control (res_text_field, (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-2].il), (yyvsp[-1].il), class, 2934 default_style | WS_CHILD | WS_VISIBLE, 0); 2935 if ((yyvsp[0].rcdata_item) != NULL) 2936 { 2937 if (dialog.ex == NULL) 2938 rcparse_warning (_("control data requires DIALOGEX")); 2939 (yyval.dialog_control)->data = (yyvsp[0].rcdata_item); 2940 } 2941 } 2942 #line 2943 "rcparse.c" /* yacc.c:1648 */ 2943 break; 2944 2945 case 109: 2946 #line 886 "rcparse.y" /* yacc.c:1648 */ 2947 { 2948 (yyval.dialog_control) = define_control (res_text_field, (yyvsp[-7].il), (yyvsp[-6].il), (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), class, style, (yyvsp[-1].il)); 2949 if ((yyvsp[0].rcdata_item) != NULL) 2950 { 2951 if (dialog.ex == NULL) 2952 rcparse_warning (_("control data requires DIALOGEX")); 2953 (yyval.dialog_control)->data = (yyvsp[0].rcdata_item); 2954 } 2955 } 2956 #line 2957 "rcparse.c" /* yacc.c:1648 */ 2957 break; 2958 2959 case 110: 2960 #line 897 "rcparse.y" /* yacc.c:1648 */ 2961 { 2962 (yyval.dialog_control) = define_control (res_text_field, (yyvsp[-8].il), (yyvsp[-7].il), (yyvsp[-6].il), (yyvsp[-5].il), (yyvsp[-4].il), class, style, (yyvsp[-2].il)); 2963 if (dialog.ex == NULL) 2964 rcparse_warning (_("help ID requires DIALOGEX")); 2965 (yyval.dialog_control)->help = (yyvsp[-1].il); 2966 (yyval.dialog_control)->data = (yyvsp[0].rcdata_item); 2967 } 2968 #line 2969 "rcparse.c" /* yacc.c:1648 */ 2969 break; 2970 2971 case 111: 2972 #line 908 "rcparse.y" /* yacc.c:1648 */ 2973 { 2974 if ((yyvsp[0].id).named) 2975 res_unistring_to_id (&(yyval.id), (yyvsp[0].id).u.n.name); 2976 else 2977 (yyval.id)=(yyvsp[0].id); 2978 } 2979 #line 2980 "rcparse.c" /* yacc.c:1648 */ 2980 break; 2981 2982 case 112: 2983 #line 918 "rcparse.y" /* yacc.c:1648 */ 2984 { 2985 res_string_to_id (&(yyval.id), ""); 2986 } 2987 #line 2988 "rcparse.c" /* yacc.c:1648 */ 2988 break; 2989 2990 case 113: 2991 #line 921 "rcparse.y" /* yacc.c:1648 */ 2992 { (yyval.id)=(yyvsp[-1].id); } 2993 #line 2994 "rcparse.c" /* yacc.c:1648 */ 2994 break; 2995 2996 case 114: 2997 #line 926 "rcparse.y" /* yacc.c:1648 */ 2998 { 2999 (yyval.id).named = 0; 3000 (yyval.id).u.id = (yyvsp[0].il); 3001 } 3002 #line 3003 "rcparse.c" /* yacc.c:1648 */ 3003 break; 3004 3005 case 115: 3006 #line 931 "rcparse.y" /* yacc.c:1648 */ 3007 { 3008 (yyval.id).named = 1; 3009 (yyval.id).u.n.name = (yyvsp[0].uni); 3010 (yyval.id).u.n.length = unichar_len ((yyvsp[0].uni)); 3011 } 3012 #line 3013 "rcparse.c" /* yacc.c:1648 */ 3013 break; 3014 3015 case 116: 3016 #line 940 "rcparse.y" /* yacc.c:1648 */ 3017 { 3018 (yyval.rcdata_item) = NULL; 3019 } 3020 #line 3021 "rcparse.c" /* yacc.c:1648 */ 3021 break; 3022 3023 case 117: 3024 #line 944 "rcparse.y" /* yacc.c:1648 */ 3025 { 3026 (yyval.rcdata_item) = (yyvsp[-1].rcdata).first; 3027 } 3028 #line 3029 "rcparse.c" /* yacc.c:1648 */ 3029 break; 3030 3031 case 118: 3032 #line 953 "rcparse.y" /* yacc.c:1648 */ 3033 { style = WS_CHILD | WS_VISIBLE; } 3034 #line 3035 "rcparse.c" /* yacc.c:1648 */ 3035 break; 3036 3037 case 120: 3038 #line 959 "rcparse.y" /* yacc.c:1648 */ 3039 { style = SS_ICON | WS_CHILD | WS_VISIBLE; } 3040 #line 3041 "rcparse.c" /* yacc.c:1648 */ 3041 break; 3042 3043 case 122: 3044 #line 965 "rcparse.y" /* yacc.c:1648 */ 3045 { style = base_style | WS_CHILD | WS_VISIBLE; } 3046 #line 3047 "rcparse.c" /* yacc.c:1648 */ 3047 break; 3048 3049 case 124: 3050 #line 973 "rcparse.y" /* yacc.c:1648 */ 3051 { 3052 define_font ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s)); 3053 if (yychar != YYEMPTY) 3054 YYERROR; 3055 rcparse_discard_strings (); 3056 } 3057 #line 3058 "rcparse.c" /* yacc.c:1648 */ 3058 break; 3059 3060 case 125: 3061 #line 985 "rcparse.y" /* yacc.c:1648 */ 3062 { 3063 define_icon ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s)); 3064 if (yychar != YYEMPTY) 3065 YYERROR; 3066 rcparse_discard_strings (); 3067 } 3068 #line 3069 "rcparse.c" /* yacc.c:1648 */ 3069 break; 3070 3071 case 126: 3072 #line 998 "rcparse.y" /* yacc.c:1648 */ 3073 { 3074 language = (yyvsp[-1].il) | ((yyvsp[0].il) << SUBLANG_SHIFT); 3075 } 3076 #line 3077 "rcparse.c" /* yacc.c:1648 */ 3077 break; 3078 3079 case 127: 3080 #line 1007 "rcparse.y" /* yacc.c:1648 */ 3081 { 3082 define_menu ((yyvsp[-5].id), &(yyvsp[-3].res_info), (yyvsp[-1].menuitem)); 3083 if (yychar != YYEMPTY) 3084 YYERROR; 3085 rcparse_discard_strings (); 3086 } 3087 #line 3088 "rcparse.c" /* yacc.c:1648 */ 3088 break; 3089 3090 case 128: 3091 #line 1017 "rcparse.y" /* yacc.c:1648 */ 3092 { 3093 (yyval.menuitem) = NULL; 3094 } 3095 #line 3096 "rcparse.c" /* yacc.c:1648 */ 3096 break; 3097 3098 case 129: 3099 #line 1021 "rcparse.y" /* yacc.c:1648 */ 3100 { 3101 if ((yyvsp[-1].menuitem) == NULL) 3102 (yyval.menuitem) = (yyvsp[0].menuitem); 3103 else 3104 { 3105 rc_menuitem **pp; 3106 3107 for (pp = &(yyvsp[-1].menuitem)->next; *pp != NULL; pp = &(*pp)->next) 3108 ; 3109 *pp = (yyvsp[0].menuitem); 3110 (yyval.menuitem) = (yyvsp[-1].menuitem); 3111 } 3112 } 3113 #line 3114 "rcparse.c" /* yacc.c:1648 */ 3114 break; 3115 3116 case 130: 3117 #line 1038 "rcparse.y" /* yacc.c:1648 */ 3118 { 3119 (yyval.menuitem) = define_menuitem ((yyvsp[-2].uni), (yyvsp[-1].il), (yyvsp[0].is), 0, 0, NULL); 3120 } 3121 #line 3122 "rcparse.c" /* yacc.c:1648 */ 3122 break; 3123 3124 case 131: 3125 #line 1042 "rcparse.y" /* yacc.c:1648 */ 3126 { 3127 (yyval.menuitem) = define_menuitem (NULL, 0, 0, 0, 0, NULL); 3128 } 3129 #line 3130 "rcparse.c" /* yacc.c:1648 */ 3130 break; 3131 3132 case 132: 3133 #line 1046 "rcparse.y" /* yacc.c:1648 */ 3134 { 3135 (yyval.menuitem) = define_menuitem ((yyvsp[-4].uni), 0, (yyvsp[-3].is), 0, 0, (yyvsp[-1].menuitem)); 3136 } 3137 #line 3138 "rcparse.c" /* yacc.c:1648 */ 3138 break; 3139 3140 case 133: 3141 #line 1053 "rcparse.y" /* yacc.c:1648 */ 3142 { 3143 (yyval.is) = 0; 3144 } 3145 #line 3146 "rcparse.c" /* yacc.c:1648 */ 3146 break; 3147 3148 case 134: 3149 #line 1057 "rcparse.y" /* yacc.c:1648 */ 3150 { 3151 (yyval.is) = (yyvsp[-2].is) | (yyvsp[0].is); 3152 } 3153 #line 3154 "rcparse.c" /* yacc.c:1648 */ 3154 break; 3155 3156 case 135: 3157 #line 1061 "rcparse.y" /* yacc.c:1648 */ 3158 { 3159 (yyval.is) = (yyvsp[-1].is) | (yyvsp[0].is); 3160 } 3161 #line 3162 "rcparse.c" /* yacc.c:1648 */ 3162 break; 3163 3164 case 136: 3165 #line 1068 "rcparse.y" /* yacc.c:1648 */ 3166 { 3167 (yyval.is) = MENUITEM_CHECKED; 3168 } 3169 #line 3170 "rcparse.c" /* yacc.c:1648 */ 3170 break; 3171 3172 case 137: 3173 #line 1072 "rcparse.y" /* yacc.c:1648 */ 3174 { 3175 (yyval.is) = MENUITEM_GRAYED; 3176 } 3177 #line 3178 "rcparse.c" /* yacc.c:1648 */ 3178 break; 3179 3180 case 138: 3181 #line 1076 "rcparse.y" /* yacc.c:1648 */ 3182 { 3183 (yyval.is) = MENUITEM_HELP; 3184 } 3185 #line 3186 "rcparse.c" /* yacc.c:1648 */ 3186 break; 3187 3188 case 139: 3189 #line 1080 "rcparse.y" /* yacc.c:1648 */ 3190 { 3191 (yyval.is) = MENUITEM_INACTIVE; 3192 } 3193 #line 3194 "rcparse.c" /* yacc.c:1648 */ 3194 break; 3195 3196 case 140: 3197 #line 1084 "rcparse.y" /* yacc.c:1648 */ 3198 { 3199 (yyval.is) = MENUITEM_MENUBARBREAK; 3200 } 3201 #line 3202 "rcparse.c" /* yacc.c:1648 */ 3202 break; 3203 3204 case 141: 3205 #line 1088 "rcparse.y" /* yacc.c:1648 */ 3206 { 3207 (yyval.is) = MENUITEM_MENUBREAK; 3208 } 3209 #line 3210 "rcparse.c" /* yacc.c:1648 */ 3210 break; 3211 3212 case 142: 3213 #line 1097 "rcparse.y" /* yacc.c:1648 */ 3214 { 3215 define_menu ((yyvsp[-5].id), &(yyvsp[-3].res_info), (yyvsp[-1].menuitem)); 3216 if (yychar != YYEMPTY) 3217 YYERROR; 3218 rcparse_discard_strings (); 3219 } 3220 #line 3221 "rcparse.c" /* yacc.c:1648 */ 3221 break; 3222 3223 case 143: 3224 #line 1107 "rcparse.y" /* yacc.c:1648 */ 3225 { 3226 (yyval.menuitem) = NULL; 3227 } 3228 #line 3229 "rcparse.c" /* yacc.c:1648 */ 3229 break; 3230 3231 case 144: 3232 #line 1111 "rcparse.y" /* yacc.c:1648 */ 3233 { 3234 if ((yyvsp[-1].menuitem) == NULL) 3235 (yyval.menuitem) = (yyvsp[0].menuitem); 3236 else 3237 { 3238 rc_menuitem **pp; 3239 3240 for (pp = &(yyvsp[-1].menuitem)->next; *pp != NULL; pp = &(*pp)->next) 3241 ; 3242 *pp = (yyvsp[0].menuitem); 3243 (yyval.menuitem) = (yyvsp[-1].menuitem); 3244 } 3245 } 3246 #line 3247 "rcparse.c" /* yacc.c:1648 */ 3247 break; 3248 3249 case 145: 3250 #line 1128 "rcparse.y" /* yacc.c:1648 */ 3251 { 3252 (yyval.menuitem) = define_menuitem ((yyvsp[0].uni), 0, 0, 0, 0, NULL); 3253 } 3254 #line 3255 "rcparse.c" /* yacc.c:1648 */ 3255 break; 3256 3257 case 146: 3258 #line 1132 "rcparse.y" /* yacc.c:1648 */ 3259 { 3260 (yyval.menuitem) = define_menuitem ((yyvsp[-1].uni), (yyvsp[0].il), 0, 0, 0, NULL); 3261 } 3262 #line 3263 "rcparse.c" /* yacc.c:1648 */ 3263 break; 3264 3265 case 147: 3266 #line 1136 "rcparse.y" /* yacc.c:1648 */ 3267 { 3268 (yyval.menuitem) = define_menuitem ((yyvsp[-3].uni), (yyvsp[-2].il), (yyvsp[-1].il), (yyvsp[0].il), 0, NULL); 3269 } 3270 #line 3271 "rcparse.c" /* yacc.c:1648 */ 3271 break; 3272 3273 case 148: 3274 #line 1140 "rcparse.y" /* yacc.c:1648 */ 3275 { 3276 (yyval.menuitem) = define_menuitem (NULL, 0, 0, 0, 0, NULL); 3277 } 3278 #line 3279 "rcparse.c" /* yacc.c:1648 */ 3279 break; 3280 3281 case 149: 3282 #line 1144 "rcparse.y" /* yacc.c:1648 */ 3283 { 3284 (yyval.menuitem) = define_menuitem ((yyvsp[-3].uni), 0, 0, 0, 0, (yyvsp[-1].menuitem)); 3285 } 3286 #line 3287 "rcparse.c" /* yacc.c:1648 */ 3287 break; 3288 3289 case 150: 3290 #line 1148 "rcparse.y" /* yacc.c:1648 */ 3291 { 3292 (yyval.menuitem) = define_menuitem ((yyvsp[-4].uni), (yyvsp[-3].il), 0, 0, 0, (yyvsp[-1].menuitem)); 3293 } 3294 #line 3295 "rcparse.c" /* yacc.c:1648 */ 3295 break; 3296 3297 case 151: 3298 #line 1152 "rcparse.y" /* yacc.c:1648 */ 3299 { 3300 (yyval.menuitem) = define_menuitem ((yyvsp[-5].uni), (yyvsp[-4].il), (yyvsp[-3].il), 0, 0, (yyvsp[-1].menuitem)); 3301 } 3302 #line 3303 "rcparse.c" /* yacc.c:1648 */ 3303 break; 3304 3305 case 152: 3306 #line 1157 "rcparse.y" /* yacc.c:1648 */ 3307 { 3308 (yyval.menuitem) = define_menuitem ((yyvsp[-7].uni), (yyvsp[-6].il), (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-1].menuitem)); 3309 } 3310 #line 3311 "rcparse.c" /* yacc.c:1648 */ 3311 break; 3312 3313 case 153: 3314 #line 1166 "rcparse.y" /* yacc.c:1648 */ 3315 { 3316 define_messagetable ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s)); 3317 if (yychar != YYEMPTY) 3318 YYERROR; 3319 rcparse_discard_strings (); 3320 } 3321 #line 3322 "rcparse.c" /* yacc.c:1648 */ 3322 break; 3323 3324 case 154: 3325 #line 1178 "rcparse.y" /* yacc.c:1648 */ 3326 { 3327 rcparse_rcdata (); 3328 } 3329 #line 3330 "rcparse.c" /* yacc.c:1648 */ 3330 break; 3331 3332 case 155: 3333 #line 1182 "rcparse.y" /* yacc.c:1648 */ 3334 { 3335 rcparse_normal (); 3336 (yyval.rcdata) = (yyvsp[0].rcdata); 3337 } 3338 #line 3339 "rcparse.c" /* yacc.c:1648 */ 3339 break; 3340 3341 case 156: 3342 #line 1190 "rcparse.y" /* yacc.c:1648 */ 3343 { 3344 (yyval.rcdata).first = NULL; 3345 (yyval.rcdata).last = NULL; 3346 } 3347 #line 3348 "rcparse.c" /* yacc.c:1648 */ 3348 break; 3349 3350 case 157: 3351 #line 1195 "rcparse.y" /* yacc.c:1648 */ 3352 { 3353 (yyval.rcdata) = (yyvsp[0].rcdata); 3354 } 3355 #line 3356 "rcparse.c" /* yacc.c:1648 */ 3356 break; 3357 3358 case 158: 3359 #line 1202 "rcparse.y" /* yacc.c:1648 */ 3360 { 3361 rc_rcdata_item *ri; 3362 3363 ri = define_rcdata_string ((yyvsp[0].ss).s, (yyvsp[0].ss).length); 3364 (yyval.rcdata).first = ri; 3365 (yyval.rcdata).last = ri; 3366 } 3367 #line 3368 "rcparse.c" /* yacc.c:1648 */ 3368 break; 3369 3370 case 159: 3371 #line 1210 "rcparse.y" /* yacc.c:1648 */ 3372 { 3373 rc_rcdata_item *ri; 3374 3375 ri = define_rcdata_unistring ((yyvsp[0].suni).s, (yyvsp[0].suni).length); 3376 (yyval.rcdata).first = ri; 3377 (yyval.rcdata).last = ri; 3378 } 3379 #line 3380 "rcparse.c" /* yacc.c:1648 */ 3380 break; 3381 3382 case 160: 3383 #line 1218 "rcparse.y" /* yacc.c:1648 */ 3384 { 3385 rc_rcdata_item *ri; 3386 3387 ri = define_rcdata_number ((yyvsp[0].i).val, (yyvsp[0].i).dword); 3388 (yyval.rcdata).first = ri; 3389 (yyval.rcdata).last = ri; 3390 } 3391 #line 3392 "rcparse.c" /* yacc.c:1648 */ 3392 break; 3393 3394 case 161: 3395 #line 1226 "rcparse.y" /* yacc.c:1648 */ 3396 { 3397 rc_rcdata_item *ri; 3398 3399 ri = define_rcdata_string ((yyvsp[0].ss).s, (yyvsp[0].ss).length); 3400 (yyval.rcdata).first = (yyvsp[-2].rcdata).first; 3401 (yyvsp[-2].rcdata).last->next = ri; 3402 (yyval.rcdata).last = ri; 3403 } 3404 #line 3405 "rcparse.c" /* yacc.c:1648 */ 3405 break; 3406 3407 case 162: 3408 #line 1235 "rcparse.y" /* yacc.c:1648 */ 3409 { 3410 rc_rcdata_item *ri; 3411 3412 ri = define_rcdata_unistring ((yyvsp[0].suni).s, (yyvsp[0].suni).length); 3413 (yyval.rcdata).first = (yyvsp[-2].rcdata).first; 3414 (yyvsp[-2].rcdata).last->next = ri; 3415 (yyval.rcdata).last = ri; 3416 } 3417 #line 3418 "rcparse.c" /* yacc.c:1648 */ 3418 break; 3419 3420 case 163: 3421 #line 1244 "rcparse.y" /* yacc.c:1648 */ 3422 { 3423 rc_rcdata_item *ri; 3424 3425 ri = define_rcdata_number ((yyvsp[0].i).val, (yyvsp[0].i).dword); 3426 (yyval.rcdata).first = (yyvsp[-2].rcdata).first; 3427 (yyvsp[-2].rcdata).last->next = ri; 3428 (yyval.rcdata).last = ri; 3429 } 3430 #line 3431 "rcparse.c" /* yacc.c:1648 */ 3431 break; 3432 3433 case 164: 3434 #line 1253 "rcparse.y" /* yacc.c:1648 */ 3435 { 3436 (yyval.rcdata)=(yyvsp[-1].rcdata); 3437 } 3438 #line 3439 "rcparse.c" /* yacc.c:1648 */ 3439 break; 3440 3441 case 165: 3442 #line 1262 "rcparse.y" /* yacc.c:1648 */ 3443 { sub_res_info = (yyvsp[-1].res_info); rcparse_rcdata (); } 3444 #line 3445 "rcparse.c" /* yacc.c:1648 */ 3445 break; 3446 3447 case 166: 3448 #line 1263 "rcparse.y" /* yacc.c:1648 */ 3449 { rcparse_normal (); } 3450 #line 3451 "rcparse.c" /* yacc.c:1648 */ 3451 break; 3452 3453 case 168: 3454 #line 1269 "rcparse.y" /* yacc.c:1648 */ 3455 { 3456 define_stringtable (&sub_res_info, (yyvsp[-1].il), (yyvsp[0].suni).s, (yyvsp[0].suni).length); 3457 rcparse_discard_strings (); 3458 } 3459 #line 3460 "rcparse.c" /* yacc.c:1648 */ 3460 break; 3461 3462 case 169: 3463 #line 1274 "rcparse.y" /* yacc.c:1648 */ 3464 { 3465 define_stringtable (&sub_res_info, (yyvsp[-2].il), (yyvsp[0].suni).s, (yyvsp[0].suni).length); 3466 rcparse_discard_strings (); 3467 } 3468 #line 3469 "rcparse.c" /* yacc.c:1648 */ 3469 break; 3470 3471 case 170: 3472 #line 1279 "rcparse.y" /* yacc.c:1648 */ 3473 { 3474 rcparse_warning (_("invalid stringtable resource.")); 3475 abort (); 3476 } 3477 #line 3478 "rcparse.c" /* yacc.c:1648 */ 3478 break; 3479 3480 case 171: 3481 #line 1287 "rcparse.y" /* yacc.c:1648 */ 3482 { 3483 (yyval.id)=(yyvsp[0].id); 3484 } 3485 #line 3486 "rcparse.c" /* yacc.c:1648 */ 3486 break; 3487 3488 case 172: 3489 #line 1291 "rcparse.y" /* yacc.c:1648 */ 3490 { 3491 (yyval.id).named = 0; 3492 (yyval.id).u.id = 23; 3493 } 3494 #line 3495 "rcparse.c" /* yacc.c:1648 */ 3495 break; 3496 3497 case 173: 3498 #line 1296 "rcparse.y" /* yacc.c:1648 */ 3499 { 3500 (yyval.id).named = 0; 3501 (yyval.id).u.id = RT_RCDATA; 3502 } 3503 #line 3504 "rcparse.c" /* yacc.c:1648 */ 3504 break; 3505 3506 case 174: 3507 #line 1301 "rcparse.y" /* yacc.c:1648 */ 3508 { 3509 (yyval.id).named = 0; 3510 (yyval.id).u.id = RT_MANIFEST; 3511 } 3512 #line 3513 "rcparse.c" /* yacc.c:1648 */ 3513 break; 3514 3515 case 175: 3516 #line 1306 "rcparse.y" /* yacc.c:1648 */ 3517 { 3518 (yyval.id).named = 0; 3519 (yyval.id).u.id = RT_PLUGPLAY; 3520 } 3521 #line 3522 "rcparse.c" /* yacc.c:1648 */ 3522 break; 3523 3524 case 176: 3525 #line 1311 "rcparse.y" /* yacc.c:1648 */ 3526 { 3527 (yyval.id).named = 0; 3528 (yyval.id).u.id = RT_VXD; 3529 } 3530 #line 3531 "rcparse.c" /* yacc.c:1648 */ 3531 break; 3532 3533 case 177: 3534 #line 1316 "rcparse.y" /* yacc.c:1648 */ 3535 { 3536 (yyval.id).named = 0; 3537 (yyval.id).u.id = RT_DLGINCLUDE; 3538 } 3539 #line 3540 "rcparse.c" /* yacc.c:1648 */ 3540 break; 3541 3542 case 178: 3543 #line 1321 "rcparse.y" /* yacc.c:1648 */ 3544 { 3545 (yyval.id).named = 0; 3546 (yyval.id).u.id = RT_DLGINIT; 3547 } 3548 #line 3549 "rcparse.c" /* yacc.c:1648 */ 3549 break; 3550 3551 case 179: 3552 #line 1326 "rcparse.y" /* yacc.c:1648 */ 3553 { 3554 (yyval.id).named = 0; 3555 (yyval.id).u.id = RT_ANICURSOR; 3556 } 3557 #line 3558 "rcparse.c" /* yacc.c:1648 */ 3558 break; 3559 3560 case 180: 3561 #line 1331 "rcparse.y" /* yacc.c:1648 */ 3562 { 3563 (yyval.id).named = 0; 3564 (yyval.id).u.id = RT_ANIICON; 3565 } 3566 #line 3567 "rcparse.c" /* yacc.c:1648 */ 3567 break; 3568 3569 case 181: 3570 #line 1342 "rcparse.y" /* yacc.c:1648 */ 3571 { 3572 define_user_data ((yyvsp[-5].id), (yyvsp[-4].id), &(yyvsp[-3].res_info), (yyvsp[-1].rcdata).first); 3573 if (yychar != YYEMPTY) 3574 YYERROR; 3575 rcparse_discard_strings (); 3576 } 3577 #line 3578 "rcparse.c" /* yacc.c:1648 */ 3578 break; 3579 3580 case 182: 3581 #line 1349 "rcparse.y" /* yacc.c:1648 */ 3582 { 3583 define_user_file ((yyvsp[-3].id), (yyvsp[-2].id), &(yyvsp[-1].res_info), (yyvsp[0].s)); 3584 if (yychar != YYEMPTY) 3585 YYERROR; 3586 rcparse_discard_strings (); 3587 } 3588 #line 3589 "rcparse.c" /* yacc.c:1648 */ 3589 break; 3590 3591 case 183: 3592 #line 1359 "rcparse.y" /* yacc.c:1648 */ 3593 { 3594 define_toolbar ((yyvsp[-7].id), &(yyvsp[-5].res_info), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-1].toobar_item)); 3595 } 3596 #line 3597 "rcparse.c" /* yacc.c:1648 */ 3597 break; 3598 3599 case 184: 3600 #line 1364 "rcparse.y" /* yacc.c:1648 */ 3601 { (yyval.toobar_item)= NULL; } 3602 #line 3603 "rcparse.c" /* yacc.c:1648 */ 3603 break; 3604 3605 case 185: 3606 #line 1366 "rcparse.y" /* yacc.c:1648 */ 3607 { 3608 rc_toolbar_item *c,*n; 3609 c = (yyvsp[-2].toobar_item); 3610 n= (rc_toolbar_item *) 3611 res_alloc (sizeof (rc_toolbar_item)); 3612 if (c != NULL) 3613 while (c->next != NULL) 3614 c = c->next; 3615 n->prev = c; 3616 n->next = NULL; 3617 if (c != NULL) 3618 c->next = n; 3619 n->id = (yyvsp[0].id); 3620 if ((yyvsp[-2].toobar_item) == NULL) 3621 (yyval.toobar_item) = n; 3622 else 3623 (yyval.toobar_item) = (yyvsp[-2].toobar_item); 3624 } 3625 #line 3626 "rcparse.c" /* yacc.c:1648 */ 3626 break; 3627 3628 case 186: 3629 #line 1385 "rcparse.y" /* yacc.c:1648 */ 3630 { 3631 rc_toolbar_item *c,*n; 3632 c = (yyvsp[-1].toobar_item); 3633 n= (rc_toolbar_item *) 3634 res_alloc (sizeof (rc_toolbar_item)); 3635 if (c != NULL) 3636 while (c->next != NULL) 3637 c = c->next; 3638 n->prev = c; 3639 n->next = NULL; 3640 if (c != NULL) 3641 c->next = n; 3642 n->id.named = 0; 3643 n->id.u.id = 0; 3644 if ((yyvsp[-1].toobar_item) == NULL) 3645 (yyval.toobar_item) = n; 3646 else 3647 (yyval.toobar_item) = (yyvsp[-1].toobar_item); 3648 } 3649 #line 3650 "rcparse.c" /* yacc.c:1648 */ 3650 break; 3651 3652 case 187: 3653 #line 1410 "rcparse.y" /* yacc.c:1648 */ 3654 { 3655 define_versioninfo ((yyvsp[-5].id), language, (yyvsp[-3].fixver), (yyvsp[-1].verinfo)); 3656 if (yychar != YYEMPTY) 3657 YYERROR; 3658 rcparse_discard_strings (); 3659 } 3660 #line 3661 "rcparse.c" /* yacc.c:1648 */ 3661 break; 3662 3663 case 188: 3664 #line 1420 "rcparse.y" /* yacc.c:1648 */ 3665 { 3666 (yyval.fixver) = ((rc_fixed_versioninfo *) 3667 res_alloc (sizeof (rc_fixed_versioninfo))); 3668 memset ((yyval.fixver), 0, sizeof (rc_fixed_versioninfo)); 3669 } 3670 #line 3671 "rcparse.c" /* yacc.c:1648 */ 3671 break; 3672 3673 case 189: 3674 #line 1427 "rcparse.y" /* yacc.c:1648 */ 3675 { 3676 (yyvsp[-5].fixver)->file_version_ms = ((yyvsp[-3].il) << 16) | ((yyvsp[-2].il) & 0xffff); 3677 (yyvsp[-5].fixver)->file_version_ls = ((yyvsp[-1].il) << 16) | ((yyvsp[0].il) & 0xffff); 3678 (yyval.fixver) = (yyvsp[-5].fixver); 3679 } 3680 #line 3681 "rcparse.c" /* yacc.c:1648 */ 3681 break; 3682 3683 case 190: 3684 #line 1434 "rcparse.y" /* yacc.c:1648 */ 3685 { 3686 (yyvsp[-5].fixver)->product_version_ms = ((yyvsp[-3].il) << 16) | ((yyvsp[-2].il) & 0xffff); 3687 (yyvsp[-5].fixver)->product_version_ls = ((yyvsp[-1].il) << 16) | ((yyvsp[0].il) & 0xffff); 3688 (yyval.fixver) = (yyvsp[-5].fixver); 3689 } 3690 #line 3691 "rcparse.c" /* yacc.c:1648 */ 3691 break; 3692 3693 case 191: 3694 #line 1440 "rcparse.y" /* yacc.c:1648 */ 3695 { 3696 (yyvsp[-2].fixver)->file_flags_mask = (yyvsp[0].il); 3697 (yyval.fixver) = (yyvsp[-2].fixver); 3698 } 3699 #line 3700 "rcparse.c" /* yacc.c:1648 */ 3700 break; 3701 3702 case 192: 3703 #line 1445 "rcparse.y" /* yacc.c:1648 */ 3704 { 3705 (yyvsp[-2].fixver)->file_flags = (yyvsp[0].il); 3706 (yyval.fixver) = (yyvsp[-2].fixver); 3707 } 3708 #line 3709 "rcparse.c" /* yacc.c:1648 */ 3709 break; 3710 3711 case 193: 3712 #line 1450 "rcparse.y" /* yacc.c:1648 */ 3713 { 3714 (yyvsp[-2].fixver)->file_os = (yyvsp[0].il); 3715 (yyval.fixver) = (yyvsp[-2].fixver); 3716 } 3717 #line 3718 "rcparse.c" /* yacc.c:1648 */ 3718 break; 3719 3720 case 194: 3721 #line 1455 "rcparse.y" /* yacc.c:1648 */ 3722 { 3723 (yyvsp[-2].fixver)->file_type = (yyvsp[0].il); 3724 (yyval.fixver) = (yyvsp[-2].fixver); 3725 } 3726 #line 3727 "rcparse.c" /* yacc.c:1648 */ 3727 break; 3728 3729 case 195: 3730 #line 1460 "rcparse.y" /* yacc.c:1648 */ 3731 { 3732 (yyvsp[-2].fixver)->file_subtype = (yyvsp[0].il); 3733 (yyval.fixver) = (yyvsp[-2].fixver); 3734 } 3735 #line 3736 "rcparse.c" /* yacc.c:1648 */ 3736 break; 3737 3738 case 196: 3739 #line 1474 "rcparse.y" /* yacc.c:1648 */ 3740 { 3741 (yyval.verinfo) = NULL; 3742 } 3743 #line 3744 "rcparse.c" /* yacc.c:1648 */ 3744 break; 3745 3746 case 197: 3747 #line 1478 "rcparse.y" /* yacc.c:1648 */ 3748 { 3749 (yyval.verinfo) = append_ver_stringfileinfo ((yyvsp[-4].verinfo), (yyvsp[-1].verstringtable)); 3750 } 3751 #line 3752 "rcparse.c" /* yacc.c:1648 */ 3752 break; 3753 3754 case 198: 3755 #line 1482 "rcparse.y" /* yacc.c:1648 */ 3756 { 3757 (yyval.verinfo) = append_ver_varfileinfo ((yyvsp[-6].verinfo), (yyvsp[-2].uni), (yyvsp[-1].vervar)); 3758 } 3759 #line 3760 "rcparse.c" /* yacc.c:1648 */ 3760 break; 3761 3762 case 199: 3763 #line 1489 "rcparse.y" /* yacc.c:1648 */ 3764 { 3765 (yyval.verstringtable) = NULL; 3766 } 3767 #line 3768 "rcparse.c" /* yacc.c:1648 */ 3768 break; 3769 3770 case 200: 3771 #line 1493 "rcparse.y" /* yacc.c:1648 */ 3772 { 3773 (yyval.verstringtable) = append_ver_stringtable ((yyvsp[-4].verstringtable), (yyvsp[-3].s), (yyvsp[-1].verstring)); 3774 } 3775 #line 3776 "rcparse.c" /* yacc.c:1648 */ 3776 break; 3777 3778 case 201: 3779 #line 1500 "rcparse.y" /* yacc.c:1648 */ 3780 { 3781 (yyval.verstring) = NULL; 3782 } 3783 #line 3784 "rcparse.c" /* yacc.c:1648 */ 3784 break; 3785 3786 case 202: 3787 #line 1504 "rcparse.y" /* yacc.c:1648 */ 3788 { 3789 (yyval.verstring) = append_verval ((yyvsp[-4].verstring), (yyvsp[-2].uni), (yyvsp[0].uni)); 3790 } 3791 #line 3792 "rcparse.c" /* yacc.c:1648 */ 3792 break; 3793 3794 case 203: 3795 #line 1511 "rcparse.y" /* yacc.c:1648 */ 3796 { 3797 (yyval.vervar) = NULL; 3798 } 3799 #line 3800 "rcparse.c" /* yacc.c:1648 */ 3800 break; 3801 3802 case 204: 3803 #line 1515 "rcparse.y" /* yacc.c:1648 */ 3804 { 3805 (yyval.vervar) = append_vertrans ((yyvsp[-2].vervar), (yyvsp[-1].il), (yyvsp[0].il)); 3806 } 3807 #line 3808 "rcparse.c" /* yacc.c:1648 */ 3808 break; 3809 3810 case 205: 3811 #line 1524 "rcparse.y" /* yacc.c:1648 */ 3812 { 3813 (yyval.id).named = 0; 3814 (yyval.id).u.id = (yyvsp[0].il); 3815 } 3816 #line 3817 "rcparse.c" /* yacc.c:1648 */ 3817 break; 3818 3819 case 206: 3820 #line 1529 "rcparse.y" /* yacc.c:1648 */ 3821 { 3822 res_unistring_to_id (&(yyval.id), (yyvsp[0].uni)); 3823 } 3824 #line 3825 "rcparse.c" /* yacc.c:1648 */ 3825 break; 3826 3827 case 207: 3828 #line 1538 "rcparse.y" /* yacc.c:1648 */ 3829 { 3830 (yyval.uni) = (yyvsp[0].uni); 3831 } 3832 #line 3833 "rcparse.c" /* yacc.c:1648 */ 3833 break; 3834 3835 case 208: 3836 #line 1542 "rcparse.y" /* yacc.c:1648 */ 3837 { 3838 unichar *h = NULL; 3839 unicode_from_ascii ((rc_uint_type *) NULL, &h, (yyvsp[0].s)); 3840 (yyval.uni) = h; 3841 } 3842 #line 3843 "rcparse.c" /* yacc.c:1648 */ 3843 break; 3844 3845 case 209: 3846 #line 1552 "rcparse.y" /* yacc.c:1648 */ 3847 { 3848 (yyval.id).named = 0; 3849 (yyval.id).u.id = (yyvsp[-1].il); 3850 } 3851 #line 3852 "rcparse.c" /* yacc.c:1648 */ 3852 break; 3853 3854 case 210: 3855 #line 1557 "rcparse.y" /* yacc.c:1648 */ 3856 { 3857 res_unistring_to_id (&(yyval.id), (yyvsp[0].uni)); 3858 } 3859 #line 3860 "rcparse.c" /* yacc.c:1648 */ 3860 break; 3861 3862 case 211: 3863 #line 1561 "rcparse.y" /* yacc.c:1648 */ 3864 { 3865 res_unistring_to_id (&(yyval.id), (yyvsp[-1].uni)); 3866 } 3867 #line 3868 "rcparse.c" /* yacc.c:1648 */ 3868 break; 3869 3870 case 212: 3871 #line 1571 "rcparse.y" /* yacc.c:1648 */ 3872 { 3873 memset (&(yyval.res_info), 0, sizeof (rc_res_res_info)); 3874 (yyval.res_info).language = language; 3875 /* FIXME: Is this the right default? */ 3876 (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE; 3877 } 3878 #line 3879 "rcparse.c" /* yacc.c:1648 */ 3879 break; 3880 3881 case 213: 3882 #line 1578 "rcparse.y" /* yacc.c:1648 */ 3883 { 3884 (yyval.res_info) = (yyvsp[-1].res_info); 3885 (yyval.res_info).memflags |= (yyvsp[0].memflags).on; 3886 (yyval.res_info).memflags &=~ (yyvsp[0].memflags).off; 3887 } 3888 #line 3889 "rcparse.c" /* yacc.c:1648 */ 3889 break; 3890 3891 case 214: 3892 #line 1584 "rcparse.y" /* yacc.c:1648 */ 3893 { 3894 (yyval.res_info) = (yyvsp[-2].res_info); 3895 (yyval.res_info).characteristics = (yyvsp[0].il); 3896 } 3897 #line 3898 "rcparse.c" /* yacc.c:1648 */ 3898 break; 3899 3900 case 215: 3901 #line 1589 "rcparse.y" /* yacc.c:1648 */ 3902 { 3903 (yyval.res_info) = (yyvsp[-3].res_info); 3904 (yyval.res_info).language = (yyvsp[-1].il) | ((yyvsp[0].il) << SUBLANG_SHIFT); 3905 } 3906 #line 3907 "rcparse.c" /* yacc.c:1648 */ 3907 break; 3908 3909 case 216: 3910 #line 1594 "rcparse.y" /* yacc.c:1648 */ 3911 { 3912 (yyval.res_info) = (yyvsp[-2].res_info); 3913 (yyval.res_info).version = (yyvsp[0].il); 3914 } 3915 #line 3916 "rcparse.c" /* yacc.c:1648 */ 3916 break; 3917 3918 case 217: 3919 #line 1604 "rcparse.y" /* yacc.c:1648 */ 3920 { 3921 memset (&(yyval.res_info), 0, sizeof (rc_res_res_info)); 3922 (yyval.res_info).language = language; 3923 (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_DISCARDABLE; 3924 } 3925 #line 3926 "rcparse.c" /* yacc.c:1648 */ 3926 break; 3927 3928 case 218: 3929 #line 1610 "rcparse.y" /* yacc.c:1648 */ 3930 { 3931 (yyval.res_info) = (yyvsp[-1].res_info); 3932 (yyval.res_info).memflags |= (yyvsp[0].memflags).on; 3933 (yyval.res_info).memflags &=~ (yyvsp[0].memflags).off; 3934 } 3935 #line 3936 "rcparse.c" /* yacc.c:1648 */ 3936 break; 3937 3938 case 219: 3939 #line 1621 "rcparse.y" /* yacc.c:1648 */ 3940 { 3941 memset (&(yyval.res_info), 0, sizeof (rc_res_res_info)); 3942 (yyval.res_info).language = language; 3943 (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE; 3944 } 3945 #line 3946 "rcparse.c" /* yacc.c:1648 */ 3946 break; 3947 3948 case 220: 3949 #line 1627 "rcparse.y" /* yacc.c:1648 */ 3950 { 3951 (yyval.res_info) = (yyvsp[-1].res_info); 3952 (yyval.res_info).memflags |= (yyvsp[0].memflags).on; 3953 (yyval.res_info).memflags &=~ (yyvsp[0].memflags).off; 3954 } 3955 #line 3956 "rcparse.c" /* yacc.c:1648 */ 3956 break; 3957 3958 case 221: 3959 #line 1639 "rcparse.y" /* yacc.c:1648 */ 3960 { 3961 (yyval.memflags).on = MEMFLAG_MOVEABLE; 3962 (yyval.memflags).off = 0; 3963 } 3964 #line 3965 "rcparse.c" /* yacc.c:1648 */ 3965 break; 3966 3967 case 222: 3968 #line 1644 "rcparse.y" /* yacc.c:1648 */ 3969 { 3970 (yyval.memflags).on = 0; 3971 (yyval.memflags).off = MEMFLAG_MOVEABLE; 3972 } 3973 #line 3974 "rcparse.c" /* yacc.c:1648 */ 3974 break; 3975 3976 case 223: 3977 #line 1649 "rcparse.y" /* yacc.c:1648 */ 3978 { 3979 (yyval.memflags).on = MEMFLAG_PURE; 3980 (yyval.memflags).off = 0; 3981 } 3982 #line 3983 "rcparse.c" /* yacc.c:1648 */ 3983 break; 3984 3985 case 224: 3986 #line 1654 "rcparse.y" /* yacc.c:1648 */ 3987 { 3988 (yyval.memflags).on = 0; 3989 (yyval.memflags).off = MEMFLAG_PURE; 3990 } 3991 #line 3992 "rcparse.c" /* yacc.c:1648 */ 3992 break; 3993 3994 case 225: 3995 #line 1659 "rcparse.y" /* yacc.c:1648 */ 3996 { 3997 (yyval.memflags).on = MEMFLAG_PRELOAD; 3998 (yyval.memflags).off = 0; 3999 } 4000 #line 4001 "rcparse.c" /* yacc.c:1648 */ 4001 break; 4002 4003 case 226: 4004 #line 1664 "rcparse.y" /* yacc.c:1648 */ 4005 { 4006 (yyval.memflags).on = 0; 4007 (yyval.memflags).off = MEMFLAG_PRELOAD; 4008 } 4009 #line 4010 "rcparse.c" /* yacc.c:1648 */ 4010 break; 4011 4012 case 227: 4013 #line 1669 "rcparse.y" /* yacc.c:1648 */ 4014 { 4015 (yyval.memflags).on = MEMFLAG_DISCARDABLE; 4016 (yyval.memflags).off = 0; 4017 } 4018 #line 4019 "rcparse.c" /* yacc.c:1648 */ 4019 break; 4020 4021 case 228: 4022 #line 1679 "rcparse.y" /* yacc.c:1648 */ 4023 { 4024 (yyval.s) = (yyvsp[0].s); 4025 } 4026 #line 4027 "rcparse.c" /* yacc.c:1648 */ 4027 break; 4028 4029 case 229: 4030 #line 1683 "rcparse.y" /* yacc.c:1648 */ 4031 { 4032 (yyval.s) = (yyvsp[0].s); 4033 } 4034 #line 4035 "rcparse.c" /* yacc.c:1648 */ 4035 break; 4036 4037 case 230: 4038 #line 1691 "rcparse.y" /* yacc.c:1648 */ 4039 { 4040 (yyval.uni) = (yyvsp[0].uni); 4041 } 4042 #line 4043 "rcparse.c" /* yacc.c:1648 */ 4043 break; 4044 4045 case 231: 4046 #line 1696 "rcparse.y" /* yacc.c:1648 */ 4047 { 4048 rc_uint_type l1 = unichar_len ((yyvsp[-1].uni)); 4049 rc_uint_type l2 = unichar_len ((yyvsp[0].uni)); 4050 unichar *h = (unichar *) res_alloc ((l1 + l2 + 1) * sizeof (unichar)); 4051 if (l1 != 0) 4052 memcpy (h, (yyvsp[-1].uni), l1 * sizeof (unichar)); 4053 if (l2 != 0) 4054 memcpy (h + l1, (yyvsp[0].uni), l2 * sizeof (unichar)); 4055 h[l1 + l2] = 0; 4056 (yyval.uni) = h; 4057 } 4058 #line 4059 "rcparse.c" /* yacc.c:1648 */ 4059 break; 4060 4061 case 232: 4062 #line 1711 "rcparse.y" /* yacc.c:1648 */ 4063 { 4064 (yyval.uni) = unichar_dup ((yyvsp[0].uni)); 4065 } 4066 #line 4067 "rcparse.c" /* yacc.c:1648 */ 4067 break; 4068 4069 case 233: 4070 #line 1715 "rcparse.y" /* yacc.c:1648 */ 4071 { 4072 unichar *h = NULL; 4073 unicode_from_ascii ((rc_uint_type *) NULL, &h, (yyvsp[0].s)); 4074 (yyval.uni) = h; 4075 } 4076 #line 4077 "rcparse.c" /* yacc.c:1648 */ 4077 break; 4078 4079 case 234: 4080 #line 1724 "rcparse.y" /* yacc.c:1648 */ 4081 { 4082 (yyval.suni) = (yyvsp[0].suni); 4083 } 4084 #line 4085 "rcparse.c" /* yacc.c:1648 */ 4085 break; 4086 4087 case 235: 4088 #line 1728 "rcparse.y" /* yacc.c:1648 */ 4089 { 4090 unichar *h = NULL; 4091 rc_uint_type l = 0; 4092 unicode_from_ascii_len (&l, &h, (yyvsp[0].ss).s, (yyvsp[0].ss).length); 4093 (yyval.suni).s = h; 4094 (yyval.suni).length = l; 4095 } 4096 #line 4097 "rcparse.c" /* yacc.c:1648 */ 4097 break; 4098 4099 case 236: 4100 #line 1740 "rcparse.y" /* yacc.c:1648 */ 4101 { 4102 (yyval.suni) = (yyvsp[0].suni); 4103 } 4104 #line 4105 "rcparse.c" /* yacc.c:1648 */ 4105 break; 4106 4107 case 237: 4108 #line 1745 "rcparse.y" /* yacc.c:1648 */ 4109 { 4110 rc_uint_type l1 = (yyvsp[-1].suni).length; 4111 rc_uint_type l2 = (yyvsp[0].suni).length; 4112 unichar *h = (unichar *) res_alloc ((l1 + l2 + 1) * sizeof (unichar)); 4113 if (l1 != 0) 4114 memcpy (h, (yyvsp[-1].suni).s, l1 * sizeof (unichar)); 4115 if (l2 != 0) 4116 memcpy (h + l1, (yyvsp[0].suni).s, l2 * sizeof (unichar)); 4117 h[l1 + l2] = 0; 4118 (yyval.suni).length = l1 + l2; 4119 (yyval.suni).s = h; 4120 } 4121 #line 4122 "rcparse.c" /* yacc.c:1648 */ 4122 break; 4123 4124 case 238: 4125 #line 1761 "rcparse.y" /* yacc.c:1648 */ 4126 { 4127 (yyval.ss) = (yyvsp[0].ss); 4128 } 4129 #line 4130 "rcparse.c" /* yacc.c:1648 */ 4130 break; 4131 4132 case 239: 4133 #line 1765 "rcparse.y" /* yacc.c:1648 */ 4134 { 4135 rc_uint_type l = (yyvsp[-1].ss).length + (yyvsp[0].ss).length; 4136 char *h = (char *) res_alloc (l); 4137 memcpy (h, (yyvsp[-1].ss).s, (yyvsp[-1].ss).length); 4138 memcpy (h + (yyvsp[-1].ss).length, (yyvsp[0].ss).s, (yyvsp[0].ss).length); 4139 (yyval.ss).s = h; 4140 (yyval.ss).length = l; 4141 } 4142 #line 4143 "rcparse.c" /* yacc.c:1648 */ 4143 break; 4144 4145 case 240: 4146 #line 1777 "rcparse.y" /* yacc.c:1648 */ 4147 { 4148 (yyval.suni) = (yyvsp[0].suni); 4149 } 4150 #line 4151 "rcparse.c" /* yacc.c:1648 */ 4151 break; 4152 4153 case 241: 4154 #line 1781 "rcparse.y" /* yacc.c:1648 */ 4155 { 4156 rc_uint_type l = (yyvsp[-1].suni).length + (yyvsp[0].suni).length; 4157 unichar *h = (unichar *) res_alloc (l * sizeof (unichar)); 4158 memcpy (h, (yyvsp[-1].suni).s, (yyvsp[-1].suni).length * sizeof (unichar)); 4159 memcpy (h + (yyvsp[-1].suni).length, (yyvsp[0].suni).s, (yyvsp[0].suni).length * sizeof (unichar)); 4160 (yyval.suni).s = h; 4161 (yyval.suni).length = l; 4162 } 4163 #line 4164 "rcparse.c" /* yacc.c:1648 */ 4164 break; 4165 4166 case 242: 4167 #line 1803 "rcparse.y" /* yacc.c:1648 */ 4168 { 4169 style |= (yyvsp[0].il); 4170 } 4171 #line 4172 "rcparse.c" /* yacc.c:1648 */ 4172 break; 4173 4174 case 243: 4175 #line 1807 "rcparse.y" /* yacc.c:1648 */ 4176 { 4177 style &=~ (yyvsp[0].il); 4178 } 4179 #line 4180 "rcparse.c" /* yacc.c:1648 */ 4180 break; 4181 4182 case 244: 4183 #line 1811 "rcparse.y" /* yacc.c:1648 */ 4184 { 4185 style |= (yyvsp[0].il); 4186 } 4187 #line 4188 "rcparse.c" /* yacc.c:1648 */ 4188 break; 4189 4190 case 245: 4191 #line 1815 "rcparse.y" /* yacc.c:1648 */ 4192 { 4193 style &=~ (yyvsp[0].il); 4194 } 4195 #line 4196 "rcparse.c" /* yacc.c:1648 */ 4196 break; 4197 4198 case 246: 4199 #line 1822 "rcparse.y" /* yacc.c:1648 */ 4200 { 4201 (yyval.il) = (yyvsp[0].i).val; 4202 } 4203 #line 4204 "rcparse.c" /* yacc.c:1648 */ 4204 break; 4205 4206 case 247: 4207 #line 1826 "rcparse.y" /* yacc.c:1648 */ 4208 { 4209 (yyval.il) = (yyvsp[-1].il); 4210 } 4211 #line 4212 "rcparse.c" /* yacc.c:1648 */ 4212 break; 4213 4214 case 248: 4215 #line 1835 "rcparse.y" /* yacc.c:1648 */ 4216 { 4217 (yyval.il) = 0; 4218 } 4219 #line 4220 "rcparse.c" /* yacc.c:1648 */ 4220 break; 4221 4222 case 249: 4223 #line 1839 "rcparse.y" /* yacc.c:1648 */ 4224 { 4225 (yyval.il) = (yyvsp[0].il); 4226 } 4227 #line 4228 "rcparse.c" /* yacc.c:1648 */ 4228 break; 4229 4230 case 250: 4231 #line 1848 "rcparse.y" /* yacc.c:1648 */ 4232 { 4233 (yyval.il) = (yyvsp[0].il); 4234 } 4235 #line 4236 "rcparse.c" /* yacc.c:1648 */ 4236 break; 4237 4238 case 251: 4239 #line 1857 "rcparse.y" /* yacc.c:1648 */ 4240 { 4241 (yyval.il) = (yyvsp[0].i).val; 4242 } 4243 #line 4244 "rcparse.c" /* yacc.c:1648 */ 4244 break; 4245 4246 case 252: 4247 #line 1866 "rcparse.y" /* yacc.c:1648 */ 4248 { 4249 (yyval.i) = (yyvsp[0].i); 4250 } 4251 #line 4252 "rcparse.c" /* yacc.c:1648 */ 4252 break; 4253 4254 case 253: 4255 #line 1870 "rcparse.y" /* yacc.c:1648 */ 4256 { 4257 (yyval.i) = (yyvsp[-1].i); 4258 } 4259 #line 4260 "rcparse.c" /* yacc.c:1648 */ 4260 break; 4261 4262 case 254: 4263 #line 1874 "rcparse.y" /* yacc.c:1648 */ 4264 { 4265 (yyval.i).val = ~ (yyvsp[0].i).val; 4266 (yyval.i).dword = (yyvsp[0].i).dword; 4267 } 4268 #line 4269 "rcparse.c" /* yacc.c:1648 */ 4269 break; 4270 4271 case 255: 4272 #line 1879 "rcparse.y" /* yacc.c:1648 */ 4273 { 4274 (yyval.i).val = - (yyvsp[0].i).val; 4275 (yyval.i).dword = (yyvsp[0].i).dword; 4276 } 4277 #line 4278 "rcparse.c" /* yacc.c:1648 */ 4278 break; 4279 4280 case 256: 4281 #line 1884 "rcparse.y" /* yacc.c:1648 */ 4282 { 4283 (yyval.i).val = (yyvsp[-2].i).val * (yyvsp[0].i).val; 4284 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4285 } 4286 #line 4287 "rcparse.c" /* yacc.c:1648 */ 4287 break; 4288 4289 case 257: 4290 #line 1889 "rcparse.y" /* yacc.c:1648 */ 4291 { 4292 (yyval.i).val = (yyvsp[-2].i).val / ((yyvsp[0].i).val ? (yyvsp[0].i).val : 1); 4293 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4294 } 4295 #line 4296 "rcparse.c" /* yacc.c:1648 */ 4296 break; 4297 4298 case 258: 4299 #line 1894 "rcparse.y" /* yacc.c:1648 */ 4300 { 4301 (yyval.i).val = (yyvsp[-2].i).val % ((yyvsp[0].i).val ? (yyvsp[0].i).val : 1); 4302 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4303 } 4304 #line 4305 "rcparse.c" /* yacc.c:1648 */ 4305 break; 4306 4307 case 259: 4308 #line 1899 "rcparse.y" /* yacc.c:1648 */ 4309 { 4310 (yyval.i).val = (yyvsp[-2].i).val + (yyvsp[0].i).val; 4311 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4312 } 4313 #line 4314 "rcparse.c" /* yacc.c:1648 */ 4314 break; 4315 4316 case 260: 4317 #line 1904 "rcparse.y" /* yacc.c:1648 */ 4318 { 4319 (yyval.i).val = (yyvsp[-2].i).val - (yyvsp[0].i).val; 4320 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4321 } 4322 #line 4323 "rcparse.c" /* yacc.c:1648 */ 4323 break; 4324 4325 case 261: 4326 #line 1909 "rcparse.y" /* yacc.c:1648 */ 4327 { 4328 (yyval.i).val = (yyvsp[-2].i).val & (yyvsp[0].i).val; 4329 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4330 } 4331 #line 4332 "rcparse.c" /* yacc.c:1648 */ 4332 break; 4333 4334 case 262: 4335 #line 1914 "rcparse.y" /* yacc.c:1648 */ 4336 { 4337 (yyval.i).val = (yyvsp[-2].i).val ^ (yyvsp[0].i).val; 4338 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4339 } 4340 #line 4341 "rcparse.c" /* yacc.c:1648 */ 4341 break; 4342 4343 case 263: 4344 #line 1919 "rcparse.y" /* yacc.c:1648 */ 4345 { 4346 (yyval.i).val = (yyvsp[-2].i).val | (yyvsp[0].i).val; 4347 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4348 } 4349 #line 4350 "rcparse.c" /* yacc.c:1648 */ 4350 break; 4351 4352 case 264: 4353 #line 1930 "rcparse.y" /* yacc.c:1648 */ 4354 { 4355 (yyval.il) = (yyvsp[0].il); 4356 } 4357 #line 4358 "rcparse.c" /* yacc.c:1648 */ 4358 break; 4359 4360 case 265: 4361 #line 1939 "rcparse.y" /* yacc.c:1648 */ 4362 { 4363 (yyval.il) = (yyvsp[0].i).val; 4364 } 4365 #line 4366 "rcparse.c" /* yacc.c:1648 */ 4366 break; 4367 4368 case 266: 4369 #line 1950 "rcparse.y" /* yacc.c:1648 */ 4370 { 4371 (yyval.i) = (yyvsp[0].i); 4372 } 4373 #line 4374 "rcparse.c" /* yacc.c:1648 */ 4374 break; 4375 4376 case 267: 4377 #line 1954 "rcparse.y" /* yacc.c:1648 */ 4378 { 4379 (yyval.i) = (yyvsp[-1].i); 4380 } 4381 #line 4382 "rcparse.c" /* yacc.c:1648 */ 4382 break; 4383 4384 case 268: 4385 #line 1958 "rcparse.y" /* yacc.c:1648 */ 4386 { 4387 (yyval.i).val = ~ (yyvsp[0].i).val; 4388 (yyval.i).dword = (yyvsp[0].i).dword; 4389 } 4390 #line 4391 "rcparse.c" /* yacc.c:1648 */ 4391 break; 4392 4393 case 269: 4394 #line 1963 "rcparse.y" /* yacc.c:1648 */ 4395 { 4396 (yyval.i).val = (yyvsp[-2].i).val * (yyvsp[0].i).val; 4397 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4398 } 4399 #line 4400 "rcparse.c" /* yacc.c:1648 */ 4400 break; 4401 4402 case 270: 4403 #line 1968 "rcparse.y" /* yacc.c:1648 */ 4404 { 4405 (yyval.i).val = (yyvsp[-2].i).val / ((yyvsp[0].i).val ? (yyvsp[0].i).val : 1); 4406 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4407 } 4408 #line 4409 "rcparse.c" /* yacc.c:1648 */ 4409 break; 4410 4411 case 271: 4412 #line 1973 "rcparse.y" /* yacc.c:1648 */ 4413 { 4414 /* PR 17512: file: 89105a25. */ 4415 (yyval.i).val = (yyvsp[-2].i).val % ((yyvsp[0].i).val ? (yyvsp[0].i).val : 1); 4416 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4417 } 4418 #line 4419 "rcparse.c" /* yacc.c:1648 */ 4419 break; 4420 4421 case 272: 4422 #line 1979 "rcparse.y" /* yacc.c:1648 */ 4423 { 4424 (yyval.i).val = (yyvsp[-2].i).val + (yyvsp[0].i).val; 4425 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4426 } 4427 #line 4428 "rcparse.c" /* yacc.c:1648 */ 4428 break; 4429 4430 case 273: 4431 #line 1984 "rcparse.y" /* yacc.c:1648 */ 4432 { 4433 (yyval.i).val = (yyvsp[-2].i).val - (yyvsp[0].i).val; 4434 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4435 } 4436 #line 4437 "rcparse.c" /* yacc.c:1648 */ 4437 break; 4438 4439 case 274: 4440 #line 1989 "rcparse.y" /* yacc.c:1648 */ 4441 { 4442 (yyval.i).val = (yyvsp[-2].i).val & (yyvsp[0].i).val; 4443 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4444 } 4445 #line 4446 "rcparse.c" /* yacc.c:1648 */ 4446 break; 4447 4448 case 275: 4449 #line 1994 "rcparse.y" /* yacc.c:1648 */ 4450 { 4451 (yyval.i).val = (yyvsp[-2].i).val ^ (yyvsp[0].i).val; 4452 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4453 } 4454 #line 4455 "rcparse.c" /* yacc.c:1648 */ 4455 break; 4456 4457 case 276: 4458 #line 1999 "rcparse.y" /* yacc.c:1648 */ 4459 { 4460 (yyval.i).val = (yyvsp[-2].i).val | (yyvsp[0].i).val; 4461 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4462 } 4463 #line 4464 "rcparse.c" /* yacc.c:1648 */ 4464 break; 4465 4466 4467 #line 4468 "rcparse.c" /* yacc.c:1648 */ 4468 default: break; 4469 } 4470 /* User semantic actions sometimes alter yychar, and that requires 4471 that yytoken be updated with the new translation. We take the 4472 approach of translating immediately before every use of yytoken. 4473 One alternative is translating here after every semantic action, 4474 but that translation would be missed if the semantic action invokes 4475 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or 4476 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an 4477 incorrect destructor might then be invoked immediately. In the 4478 case of YYERROR or YYBACKUP, subsequent parser actions might lead 4479 to an incorrect destructor call or verbose syntax error message 4480 before the lookahead is translated. */ 4481 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 4482 4483 YYPOPSTACK (yylen); 4484 yylen = 0; 4485 YY_STACK_PRINT (yyss, yyssp); 4486 4487 *++yyvsp = yyval; 4488 4489 /* Now 'shift' the result of the reduction. Determine what state 4490 that goes to, based on the state we popped back to and the rule 4491 number reduced by. */ 4492 4493 yyn = yyr1[yyn]; 4494 4495 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 4496 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 4497 yystate = yytable[yystate]; 4498 else 4499 yystate = yydefgoto[yyn - YYNTOKENS]; 4500 4501 goto yynewstate; 4502 4503 4504 /*--------------------------------------. 4505 | yyerrlab -- here on detecting error. | 4506 `--------------------------------------*/ 4507 yyerrlab: 4508 /* Make sure we have latest lookahead translation. See comments at 4509 user semantic actions for why this is necessary. */ 4510 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); 4511 4512 /* If not already recovering from an error, report this error. */ 4513 if (!yyerrstatus) 4514 { 4515 ++yynerrs; 4516 #if ! YYERROR_VERBOSE 4517 yyerror (YY_("syntax error")); 4518 #else 4519 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 4520 yyssp, yytoken) 4521 { 4522 char const *yymsgp = YY_("syntax error"); 4523 int yysyntax_error_status; 4524 yysyntax_error_status = YYSYNTAX_ERROR; 4525 if (yysyntax_error_status == 0) 4526 yymsgp = yymsg; 4527 else if (yysyntax_error_status == 1) 4528 { 4529 if (yymsg != yymsgbuf) 4530 YYSTACK_FREE (yymsg); 4531 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); 4532 if (!yymsg) 4533 { 4534 yymsg = yymsgbuf; 4535 yymsg_alloc = sizeof yymsgbuf; 4536 yysyntax_error_status = 2; 4537 } 4538 else 4539 { 4540 yysyntax_error_status = YYSYNTAX_ERROR; 4541 yymsgp = yymsg; 4542 } 4543 } 4544 yyerror (yymsgp); 4545 if (yysyntax_error_status == 2) 4546 goto yyexhaustedlab; 4547 } 4548 # undef YYSYNTAX_ERROR 4549 #endif 4550 } 4551 4552 4553 4554 if (yyerrstatus == 3) 4555 { 4556 /* If just tried and failed to reuse lookahead token after an 4557 error, discard it. */ 4558 4559 if (yychar <= YYEOF) 4560 { 4561 /* Return failure if at end of input. */ 4562 if (yychar == YYEOF) 4563 YYABORT; 4564 } 4565 else 4566 { 4567 yydestruct ("Error: discarding", 4568 yytoken, &yylval); 4569 yychar = YYEMPTY; 4570 } 4571 } 4572 4573 /* Else will try to reuse lookahead token after shifting the error 4574 token. */ 4575 goto yyerrlab1; 4576 4577 4578 /*---------------------------------------------------. 4579 | yyerrorlab -- error raised explicitly by YYERROR. | 4580 `---------------------------------------------------*/ 4581 yyerrorlab: 4582 4583 /* Pacify compilers like GCC when the user code never invokes 4584 YYERROR and the label yyerrorlab therefore never appears in user 4585 code. */ 4586 if (/*CONSTCOND*/ 0) 4587 goto yyerrorlab; 4588 4589 /* Do not reclaim the symbols of the rule whose action triggered 4590 this YYERROR. */ 4591 YYPOPSTACK (yylen); 4592 yylen = 0; 4593 YY_STACK_PRINT (yyss, yyssp); 4594 yystate = *yyssp; 4595 goto yyerrlab1; 4596 4597 4598 /*-------------------------------------------------------------. 4599 | yyerrlab1 -- common code for both syntax error and YYERROR. | 4600 `-------------------------------------------------------------*/ 4601 yyerrlab1: 4602 yyerrstatus = 3; /* Each real token shifted decrements this. */ 4603 4604 for (;;) 4605 { 4606 yyn = yypact[yystate]; 4607 if (!yypact_value_is_default (yyn)) 4608 { 4609 yyn += YYTERROR; 4610 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 4611 { 4612 yyn = yytable[yyn]; 4613 if (0 < yyn) 4614 break; 4615 } 4616 } 4617 4618 /* Pop the current state because it cannot handle the error token. */ 4619 if (yyssp == yyss) 4620 YYABORT; 4621 4622 4623 yydestruct ("Error: popping", 4624 yystos[yystate], yyvsp); 4625 YYPOPSTACK (1); 4626 yystate = *yyssp; 4627 YY_STACK_PRINT (yyss, yyssp); 4628 } 4629 4630 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4631 *++yyvsp = yylval; 4632 YY_IGNORE_MAYBE_UNINITIALIZED_END 4633 4634 4635 /* Shift the error token. */ 4636 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 4637 4638 yystate = yyn; 4639 goto yynewstate; 4640 4641 4642 /*-------------------------------------. 4643 | yyacceptlab -- YYACCEPT comes here. | 4644 `-------------------------------------*/ 4645 yyacceptlab: 4646 yyresult = 0; 4647 goto yyreturn; 4648 4649 /*-----------------------------------. 4650 | yyabortlab -- YYABORT comes here. | 4651 `-----------------------------------*/ 4652 yyabortlab: 4653 yyresult = 1; 4654 goto yyreturn; 4655 4656 #if !defined yyoverflow || YYERROR_VERBOSE 4657 /*-------------------------------------------------. 4658 | yyexhaustedlab -- memory exhaustion comes here. | 4659 `-------------------------------------------------*/ 4660 yyexhaustedlab: 4661 yyerror (YY_("memory exhausted")); 4662 yyresult = 2; 4663 /* Fall through. */ 4664 #endif 4665 4666 yyreturn: 4667 if (yychar != YYEMPTY) 4668 { 4669 /* Make sure we have latest lookahead translation. See comments at 4670 user semantic actions for why this is necessary. */ 4671 yytoken = YYTRANSLATE (yychar); 4672 yydestruct ("Cleanup: discarding lookahead", 4673 yytoken, &yylval); 4674 } 4675 /* Do not reclaim the symbols of the rule whose action triggered 4676 this YYABORT or YYACCEPT. */ 4677 YYPOPSTACK (yylen); 4678 YY_STACK_PRINT (yyss, yyssp); 4679 while (yyssp != yyss) 4680 { 4681 yydestruct ("Cleanup: popping", 4682 yystos[*yyssp], yyvsp); 4683 YYPOPSTACK (1); 4684 } 4685 #ifndef yyoverflow 4686 if (yyss != yyssa) 4687 YYSTACK_FREE (yyss); 4688 #endif 4689 #if YYERROR_VERBOSE 4690 if (yymsg != yymsgbuf) 4691 YYSTACK_FREE (yymsg); 4692 #endif 4693 return yyresult; 4694 } 4695 #line 2005 "rcparse.y" /* yacc.c:1907 */ 4696 4697 4698 /* Set the language from the command line. */ 4699 4700 void 4701 rcparse_set_language (int lang) 4702 { 4703 language = lang; 4704 } 4705