1 /* A Bison parser, made by GNU Bison 3.0.4. */ 2 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2015 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.4" 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-2018 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 YYCASE_(0, YY_("syntax error")); 1655 YYCASE_(1, YY_("syntax error, unexpected %s")); 1656 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); 1657 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); 1658 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); 1659 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); 1660 # undef YYCASE_ 1661 } 1662 1663 { 1664 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 1665 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 1666 return 2; 1667 yysize = yysize1; 1668 } 1669 1670 if (*yymsg_alloc < yysize) 1671 { 1672 *yymsg_alloc = 2 * yysize; 1673 if (! (yysize <= *yymsg_alloc 1674 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) 1675 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; 1676 return 1; 1677 } 1678 1679 /* Avoid sprintf, as that infringes on the user's name space. 1680 Don't have undefined behavior even if the translation 1681 produced a string with the wrong number of "%s"s. */ 1682 { 1683 char *yyp = *yymsg; 1684 int yyi = 0; 1685 while ((*yyp = *yyformat) != '\0') 1686 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) 1687 { 1688 yyp += yytnamerr (yyp, yyarg[yyi++]); 1689 yyformat += 2; 1690 } 1691 else 1692 { 1693 yyp++; 1694 yyformat++; 1695 } 1696 } 1697 return 0; 1698 } 1699 #endif /* YYERROR_VERBOSE */ 1700 1701 /*-----------------------------------------------. 1702 | Release the memory associated to this symbol. | 1703 `-----------------------------------------------*/ 1704 1705 static void 1706 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 1707 { 1708 YYUSE (yyvaluep); 1709 if (!yymsg) 1710 yymsg = "Deleting"; 1711 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 1712 1713 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1714 YYUSE (yytype); 1715 YY_IGNORE_MAYBE_UNINITIALIZED_END 1716 } 1717 1718 1719 1720 1721 /* The lookahead symbol. */ 1722 int yychar; 1723 1724 /* The semantic value of the lookahead symbol. */ 1725 YYSTYPE yylval; 1726 /* Number of syntax errors so far. */ 1727 int yynerrs; 1728 1729 1730 /*----------. 1731 | yyparse. | 1732 `----------*/ 1733 1734 int 1735 yyparse (void) 1736 { 1737 int yystate; 1738 /* Number of tokens to shift before error messages enabled. */ 1739 int yyerrstatus; 1740 1741 /* The stacks and their tools: 1742 'yyss': related to states. 1743 'yyvs': related to semantic values. 1744 1745 Refer to the stacks through separate pointers, to allow yyoverflow 1746 to reallocate them elsewhere. */ 1747 1748 /* The state stack. */ 1749 yytype_int16 yyssa[YYINITDEPTH]; 1750 yytype_int16 *yyss; 1751 yytype_int16 *yyssp; 1752 1753 /* The semantic value stack. */ 1754 YYSTYPE yyvsa[YYINITDEPTH]; 1755 YYSTYPE *yyvs; 1756 YYSTYPE *yyvsp; 1757 1758 YYSIZE_T yystacksize; 1759 1760 int yyn; 1761 int yyresult; 1762 /* Lookahead token as an internal (translated) token number. */ 1763 int yytoken = 0; 1764 /* The variables used to return semantic value and location from the 1765 action routines. */ 1766 YYSTYPE yyval; 1767 1768 #if YYERROR_VERBOSE 1769 /* Buffer for error messages, and its allocated size. */ 1770 char yymsgbuf[128]; 1771 char *yymsg = yymsgbuf; 1772 YYSIZE_T yymsg_alloc = sizeof yymsgbuf; 1773 #endif 1774 1775 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 1776 1777 /* The number of symbols on the RHS of the reduced rule. 1778 Keep to zero when no symbol should be popped. */ 1779 int yylen = 0; 1780 1781 yyssp = yyss = yyssa; 1782 yyvsp = yyvs = yyvsa; 1783 yystacksize = YYINITDEPTH; 1784 1785 YYDPRINTF ((stderr, "Starting parse\n")); 1786 1787 yystate = 0; 1788 yyerrstatus = 0; 1789 yynerrs = 0; 1790 yychar = YYEMPTY; /* Cause a token to be read. */ 1791 goto yysetstate; 1792 1793 /*------------------------------------------------------------. 1794 | yynewstate -- Push a new state, which is found in yystate. | 1795 `------------------------------------------------------------*/ 1796 yynewstate: 1797 /* In all cases, when you get here, the value and location stacks 1798 have just been pushed. So pushing a state here evens the stacks. */ 1799 yyssp++; 1800 1801 yysetstate: 1802 *yyssp = yystate; 1803 1804 if (yyss + yystacksize - 1 <= yyssp) 1805 { 1806 /* Get the current used size of the three stacks, in elements. */ 1807 YYSIZE_T yysize = yyssp - yyss + 1; 1808 1809 #ifdef yyoverflow 1810 { 1811 /* Give user a chance to reallocate the stack. Use copies of 1812 these so that the &'s don't force the real ones into 1813 memory. */ 1814 YYSTYPE *yyvs1 = yyvs; 1815 yytype_int16 *yyss1 = yyss; 1816 1817 /* Each stack pointer address is followed by the size of the 1818 data in use in that stack, in bytes. This used to be a 1819 conditional around just the two extra args, but that might 1820 be undefined if yyoverflow is a macro. */ 1821 yyoverflow (YY_("memory exhausted"), 1822 &yyss1, yysize * sizeof (*yyssp), 1823 &yyvs1, yysize * sizeof (*yyvsp), 1824 &yystacksize); 1825 1826 yyss = yyss1; 1827 yyvs = yyvs1; 1828 } 1829 #else /* no yyoverflow */ 1830 # ifndef YYSTACK_RELOCATE 1831 goto yyexhaustedlab; 1832 # else 1833 /* Extend the stack our own way. */ 1834 if (YYMAXDEPTH <= yystacksize) 1835 goto yyexhaustedlab; 1836 yystacksize *= 2; 1837 if (YYMAXDEPTH < yystacksize) 1838 yystacksize = YYMAXDEPTH; 1839 1840 { 1841 yytype_int16 *yyss1 = yyss; 1842 union yyalloc *yyptr = 1843 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 1844 if (! yyptr) 1845 goto yyexhaustedlab; 1846 YYSTACK_RELOCATE (yyss_alloc, yyss); 1847 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 1848 # undef YYSTACK_RELOCATE 1849 if (yyss1 != yyssa) 1850 YYSTACK_FREE (yyss1); 1851 } 1852 # endif 1853 #endif /* no yyoverflow */ 1854 1855 yyssp = yyss + yysize - 1; 1856 yyvsp = yyvs + yysize - 1; 1857 1858 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 1859 (unsigned long int) yystacksize)); 1860 1861 if (yyss + yystacksize - 1 <= yyssp) 1862 YYABORT; 1863 } 1864 1865 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 1866 1867 if (yystate == YYFINAL) 1868 YYACCEPT; 1869 1870 goto yybackup; 1871 1872 /*-----------. 1873 | yybackup. | 1874 `-----------*/ 1875 yybackup: 1876 1877 /* Do appropriate processing given the current state. Read a 1878 lookahead token if we need one and don't already have one. */ 1879 1880 /* First try to decide what to do without reference to lookahead token. */ 1881 yyn = yypact[yystate]; 1882 if (yypact_value_is_default (yyn)) 1883 goto yydefault; 1884 1885 /* Not known => get a lookahead token if don't already have one. */ 1886 1887 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 1888 if (yychar == YYEMPTY) 1889 { 1890 YYDPRINTF ((stderr, "Reading a token: ")); 1891 yychar = yylex (); 1892 } 1893 1894 if (yychar <= YYEOF) 1895 { 1896 yychar = yytoken = YYEOF; 1897 YYDPRINTF ((stderr, "Now at end of input.\n")); 1898 } 1899 else 1900 { 1901 yytoken = YYTRANSLATE (yychar); 1902 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 1903 } 1904 1905 /* If the proper action on seeing token YYTOKEN is to reduce or to 1906 detect an error, take that action. */ 1907 yyn += yytoken; 1908 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 1909 goto yydefault; 1910 yyn = yytable[yyn]; 1911 if (yyn <= 0) 1912 { 1913 if (yytable_value_is_error (yyn)) 1914 goto yyerrlab; 1915 yyn = -yyn; 1916 goto yyreduce; 1917 } 1918 1919 /* Count tokens shifted since error; after three, turn off error 1920 status. */ 1921 if (yyerrstatus) 1922 yyerrstatus--; 1923 1924 /* Shift the lookahead token. */ 1925 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 1926 1927 /* Discard the shifted token. */ 1928 yychar = YYEMPTY; 1929 1930 yystate = yyn; 1931 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1932 *++yyvsp = yylval; 1933 YY_IGNORE_MAYBE_UNINITIALIZED_END 1934 1935 goto yynewstate; 1936 1937 1938 /*-----------------------------------------------------------. 1939 | yydefault -- do the default action for the current state. | 1940 `-----------------------------------------------------------*/ 1941 yydefault: 1942 yyn = yydefact[yystate]; 1943 if (yyn == 0) 1944 goto yyerrlab; 1945 goto yyreduce; 1946 1947 1948 /*-----------------------------. 1949 | yyreduce -- Do a reduction. | 1950 `-----------------------------*/ 1951 yyreduce: 1952 /* yyn is the number of a rule to reduce with. */ 1953 yylen = yyr2[yyn]; 1954 1955 /* If YYLEN is nonzero, implement the default value of the action: 1956 '$$ = $1'. 1957 1958 Otherwise, the following line sets YYVAL to garbage. 1959 This behavior is undocumented and Bison 1960 users should not rely upon it. Assigning to YYVAL 1961 unconditionally makes the parser a bit smaller, and it avoids a 1962 GCC warning that YYVAL may be used uninitialized. */ 1963 yyval = yyvsp[1-yylen]; 1964 1965 1966 YY_REDUCE_PRINT (yyn); 1967 switch (yyn) 1968 { 1969 case 18: 1970 #line 201 "rcparse.y" /* yacc.c:1646 */ 1971 { 1972 define_accelerator ((yyvsp[-5].id), &(yyvsp[-3].res_info), (yyvsp[-1].pacc)); 1973 if (yychar != YYEMPTY) 1974 YYERROR; 1975 rcparse_discard_strings (); 1976 } 1977 #line 1978 "rcparse.c" /* yacc.c:1646 */ 1978 break; 1979 1980 case 19: 1981 #line 211 "rcparse.y" /* yacc.c:1646 */ 1982 { 1983 (yyval.pacc) = NULL; 1984 } 1985 #line 1986 "rcparse.c" /* yacc.c:1646 */ 1986 break; 1987 1988 case 20: 1989 #line 215 "rcparse.y" /* yacc.c:1646 */ 1990 { 1991 rc_accelerator *a; 1992 1993 a = (rc_accelerator *) res_alloc (sizeof *a); 1994 *a = (yyvsp[0].acc); 1995 if ((yyvsp[-1].pacc) == NULL) 1996 (yyval.pacc) = a; 1997 else 1998 { 1999 rc_accelerator **pp; 2000 2001 for (pp = &(yyvsp[-1].pacc)->next; *pp != NULL; pp = &(*pp)->next) 2002 ; 2003 *pp = a; 2004 (yyval.pacc) = (yyvsp[-1].pacc); 2005 } 2006 } 2007 #line 2008 "rcparse.c" /* yacc.c:1646 */ 2008 break; 2009 2010 case 21: 2011 #line 236 "rcparse.y" /* yacc.c:1646 */ 2012 { 2013 (yyval.acc) = (yyvsp[-1].acc); 2014 (yyval.acc).id = (yyvsp[0].il); 2015 } 2016 #line 2017 "rcparse.c" /* yacc.c:1646 */ 2017 break; 2018 2019 case 22: 2020 #line 241 "rcparse.y" /* yacc.c:1646 */ 2021 { 2022 (yyval.acc) = (yyvsp[-3].acc); 2023 (yyval.acc).id = (yyvsp[-2].il); 2024 (yyval.acc).flags |= (yyvsp[0].is); 2025 if (((yyval.acc).flags & ACC_VIRTKEY) == 0 2026 && ((yyval.acc).flags & (ACC_SHIFT | ACC_CONTROL)) != 0) 2027 rcparse_warning (_("inappropriate modifiers for non-VIRTKEY")); 2028 } 2029 #line 2030 "rcparse.c" /* yacc.c:1646 */ 2030 break; 2031 2032 case 23: 2033 #line 253 "rcparse.y" /* yacc.c:1646 */ 2034 { 2035 const char *s = (yyvsp[0].s); 2036 char ch; 2037 2038 (yyval.acc).next = NULL; 2039 (yyval.acc).id = 0; 2040 ch = *s; 2041 if (ch != '^') 2042 (yyval.acc).flags = 0; 2043 else 2044 { 2045 (yyval.acc).flags = ACC_CONTROL | ACC_VIRTKEY; 2046 ++s; 2047 ch = TOUPPER (s[0]); 2048 } 2049 (yyval.acc).key = ch; 2050 if (s[1] != '\0') 2051 rcparse_warning (_("accelerator should only be one character")); 2052 } 2053 #line 2054 "rcparse.c" /* yacc.c:1646 */ 2054 break; 2055 2056 case 24: 2057 #line 273 "rcparse.y" /* yacc.c:1646 */ 2058 { 2059 (yyval.acc).next = NULL; 2060 (yyval.acc).flags = 0; 2061 (yyval.acc).id = 0; 2062 (yyval.acc).key = (yyvsp[0].il); 2063 } 2064 #line 2065 "rcparse.c" /* yacc.c:1646 */ 2065 break; 2066 2067 case 25: 2068 #line 283 "rcparse.y" /* yacc.c:1646 */ 2069 { 2070 (yyval.is) = (yyvsp[0].is); 2071 } 2072 #line 2073 "rcparse.c" /* yacc.c:1646 */ 2073 break; 2074 2075 case 26: 2076 #line 287 "rcparse.y" /* yacc.c:1646 */ 2077 { 2078 (yyval.is) = (yyvsp[-2].is) | (yyvsp[0].is); 2079 } 2080 #line 2081 "rcparse.c" /* yacc.c:1646 */ 2081 break; 2082 2083 case 27: 2084 #line 292 "rcparse.y" /* yacc.c:1646 */ 2085 { 2086 (yyval.is) = (yyvsp[-1].is) | (yyvsp[0].is); 2087 } 2088 #line 2089 "rcparse.c" /* yacc.c:1646 */ 2089 break; 2090 2091 case 28: 2092 #line 299 "rcparse.y" /* yacc.c:1646 */ 2093 { 2094 (yyval.is) = ACC_VIRTKEY; 2095 } 2096 #line 2097 "rcparse.c" /* yacc.c:1646 */ 2097 break; 2098 2099 case 29: 2100 #line 303 "rcparse.y" /* yacc.c:1646 */ 2101 { 2102 /* This is just the absence of VIRTKEY. */ 2103 (yyval.is) = 0; 2104 } 2105 #line 2106 "rcparse.c" /* yacc.c:1646 */ 2106 break; 2107 2108 case 30: 2109 #line 308 "rcparse.y" /* yacc.c:1646 */ 2110 { 2111 (yyval.is) = ACC_NOINVERT; 2112 } 2113 #line 2114 "rcparse.c" /* yacc.c:1646 */ 2114 break; 2115 2116 case 31: 2117 #line 312 "rcparse.y" /* yacc.c:1646 */ 2118 { 2119 (yyval.is) = ACC_SHIFT; 2120 } 2121 #line 2122 "rcparse.c" /* yacc.c:1646 */ 2122 break; 2123 2124 case 32: 2125 #line 316 "rcparse.y" /* yacc.c:1646 */ 2126 { 2127 (yyval.is) = ACC_CONTROL; 2128 } 2129 #line 2130 "rcparse.c" /* yacc.c:1646 */ 2130 break; 2131 2132 case 33: 2133 #line 320 "rcparse.y" /* yacc.c:1646 */ 2134 { 2135 (yyval.is) = ACC_ALT; 2136 } 2137 #line 2138 "rcparse.c" /* yacc.c:1646 */ 2138 break; 2139 2140 case 34: 2141 #line 329 "rcparse.y" /* yacc.c:1646 */ 2142 { 2143 define_bitmap ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s)); 2144 if (yychar != YYEMPTY) 2145 YYERROR; 2146 rcparse_discard_strings (); 2147 } 2148 #line 2149 "rcparse.c" /* yacc.c:1646 */ 2149 break; 2150 2151 case 35: 2152 #line 341 "rcparse.y" /* yacc.c:1646 */ 2153 { 2154 define_cursor ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s)); 2155 if (yychar != YYEMPTY) 2156 YYERROR; 2157 rcparse_discard_strings (); 2158 } 2159 #line 2160 "rcparse.c" /* yacc.c:1646 */ 2160 break; 2161 2162 case 36: 2163 #line 354 "rcparse.y" /* yacc.c:1646 */ 2164 { 2165 memset (&dialog, 0, sizeof dialog); 2166 dialog.x = (yyvsp[-3].il); 2167 dialog.y = (yyvsp[-2].il); 2168 dialog.width = (yyvsp[-1].il); 2169 dialog.height = (yyvsp[0].il); 2170 dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; 2171 dialog.exstyle = (yyvsp[-4].il); 2172 dialog.menu.named = 1; 2173 dialog.class.named = 1; 2174 dialog.font = NULL; 2175 dialog.ex = NULL; 2176 dialog.controls = NULL; 2177 sub_res_info = (yyvsp[-5].res_info); 2178 style = 0; 2179 } 2180 #line 2181 "rcparse.c" /* yacc.c:1646 */ 2181 break; 2182 2183 case 37: 2184 #line 371 "rcparse.y" /* yacc.c:1646 */ 2185 { 2186 define_dialog ((yyvsp[-12].id), &sub_res_info, &dialog); 2187 if (yychar != YYEMPTY) 2188 YYERROR; 2189 rcparse_discard_strings (); 2190 } 2191 #line 2192 "rcparse.c" /* yacc.c:1646 */ 2192 break; 2193 2194 case 38: 2195 #line 379 "rcparse.y" /* yacc.c:1646 */ 2196 { 2197 memset (&dialog, 0, sizeof dialog); 2198 dialog.x = (yyvsp[-3].il); 2199 dialog.y = (yyvsp[-2].il); 2200 dialog.width = (yyvsp[-1].il); 2201 dialog.height = (yyvsp[0].il); 2202 dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; 2203 dialog.exstyle = (yyvsp[-4].il); 2204 dialog.menu.named = 1; 2205 dialog.class.named = 1; 2206 dialog.font = NULL; 2207 dialog.ex = ((rc_dialog_ex *) 2208 res_alloc (sizeof (rc_dialog_ex))); 2209 memset (dialog.ex, 0, sizeof (rc_dialog_ex)); 2210 dialog.controls = NULL; 2211 sub_res_info = (yyvsp[-5].res_info); 2212 style = 0; 2213 } 2214 #line 2215 "rcparse.c" /* yacc.c:1646 */ 2215 break; 2216 2217 case 39: 2218 #line 398 "rcparse.y" /* yacc.c:1646 */ 2219 { 2220 define_dialog ((yyvsp[-12].id), &sub_res_info, &dialog); 2221 if (yychar != YYEMPTY) 2222 YYERROR; 2223 rcparse_discard_strings (); 2224 } 2225 #line 2226 "rcparse.c" /* yacc.c:1646 */ 2226 break; 2227 2228 case 40: 2229 #line 406 "rcparse.y" /* yacc.c:1646 */ 2230 { 2231 memset (&dialog, 0, sizeof dialog); 2232 dialog.x = (yyvsp[-4].il); 2233 dialog.y = (yyvsp[-3].il); 2234 dialog.width = (yyvsp[-2].il); 2235 dialog.height = (yyvsp[-1].il); 2236 dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; 2237 dialog.exstyle = (yyvsp[-5].il); 2238 dialog.menu.named = 1; 2239 dialog.class.named = 1; 2240 dialog.font = NULL; 2241 dialog.ex = ((rc_dialog_ex *) 2242 res_alloc (sizeof (rc_dialog_ex))); 2243 memset (dialog.ex, 0, sizeof (rc_dialog_ex)); 2244 dialog.ex->help = (yyvsp[0].il); 2245 dialog.controls = NULL; 2246 sub_res_info = (yyvsp[-6].res_info); 2247 style = 0; 2248 } 2249 #line 2250 "rcparse.c" /* yacc.c:1646 */ 2250 break; 2251 2252 case 41: 2253 #line 426 "rcparse.y" /* yacc.c:1646 */ 2254 { 2255 define_dialog ((yyvsp[-13].id), &sub_res_info, &dialog); 2256 if (yychar != YYEMPTY) 2257 YYERROR; 2258 rcparse_discard_strings (); 2259 } 2260 #line 2261 "rcparse.c" /* yacc.c:1646 */ 2261 break; 2262 2263 case 42: 2264 #line 436 "rcparse.y" /* yacc.c:1646 */ 2265 { 2266 (yyval.il) = 0; 2267 } 2268 #line 2269 "rcparse.c" /* yacc.c:1646 */ 2269 break; 2270 2271 case 43: 2272 #line 440 "rcparse.y" /* yacc.c:1646 */ 2273 { 2274 (yyval.il) = (yyvsp[0].il); 2275 } 2276 #line 2277 "rcparse.c" /* yacc.c:1646 */ 2277 break; 2278 2279 case 45: 2280 #line 448 "rcparse.y" /* yacc.c:1646 */ 2281 { 2282 dialog.style |= WS_CAPTION; 2283 style |= WS_CAPTION; 2284 dialog.caption = (yyvsp[0].uni); 2285 } 2286 #line 2287 "rcparse.c" /* yacc.c:1646 */ 2287 break; 2288 2289 case 46: 2290 #line 454 "rcparse.y" /* yacc.c:1646 */ 2291 { 2292 dialog.class = (yyvsp[0].id); 2293 } 2294 #line 2295 "rcparse.c" /* yacc.c:1646 */ 2295 break; 2296 2297 case 47: 2298 #line 459 "rcparse.y" /* yacc.c:1646 */ 2299 { 2300 dialog.style = style; 2301 } 2302 #line 2303 "rcparse.c" /* yacc.c:1646 */ 2303 break; 2304 2305 case 48: 2306 #line 463 "rcparse.y" /* yacc.c:1646 */ 2307 { 2308 dialog.exstyle = (yyvsp[0].il); 2309 } 2310 #line 2311 "rcparse.c" /* yacc.c:1646 */ 2311 break; 2312 2313 case 49: 2314 #line 467 "rcparse.y" /* yacc.c:1646 */ 2315 { 2316 res_unistring_to_id (& dialog.class, (yyvsp[0].uni)); 2317 } 2318 #line 2319 "rcparse.c" /* yacc.c:1646 */ 2319 break; 2320 2321 case 50: 2322 #line 471 "rcparse.y" /* yacc.c:1646 */ 2323 { 2324 dialog.style |= DS_SETFONT; 2325 style |= DS_SETFONT; 2326 dialog.pointsize = (yyvsp[-2].il); 2327 dialog.font = (yyvsp[0].uni); 2328 if (dialog.ex != NULL) 2329 { 2330 dialog.ex->weight = 0; 2331 dialog.ex->italic = 0; 2332 dialog.ex->charset = 1; 2333 } 2334 } 2335 #line 2336 "rcparse.c" /* yacc.c:1646 */ 2336 break; 2337 2338 case 51: 2339 #line 484 "rcparse.y" /* yacc.c:1646 */ 2340 { 2341 dialog.style |= DS_SETFONT; 2342 style |= DS_SETFONT; 2343 dialog.pointsize = (yyvsp[-3].il); 2344 dialog.font = (yyvsp[-1].uni); 2345 if (dialog.ex == NULL) 2346 rcparse_warning (_("extended FONT requires DIALOGEX")); 2347 else 2348 { 2349 dialog.ex->weight = (yyvsp[0].il); 2350 dialog.ex->italic = 0; 2351 dialog.ex->charset = 1; 2352 } 2353 } 2354 #line 2355 "rcparse.c" /* yacc.c:1646 */ 2355 break; 2356 2357 case 52: 2358 #line 499 "rcparse.y" /* yacc.c:1646 */ 2359 { 2360 dialog.style |= DS_SETFONT; 2361 style |= DS_SETFONT; 2362 dialog.pointsize = (yyvsp[-4].il); 2363 dialog.font = (yyvsp[-2].uni); 2364 if (dialog.ex == NULL) 2365 rcparse_warning (_("extended FONT requires DIALOGEX")); 2366 else 2367 { 2368 dialog.ex->weight = (yyvsp[-1].il); 2369 dialog.ex->italic = (yyvsp[0].il); 2370 dialog.ex->charset = 1; 2371 } 2372 } 2373 #line 2374 "rcparse.c" /* yacc.c:1646 */ 2374 break; 2375 2376 case 53: 2377 #line 514 "rcparse.y" /* yacc.c:1646 */ 2378 { 2379 dialog.style |= DS_SETFONT; 2380 style |= DS_SETFONT; 2381 dialog.pointsize = (yyvsp[-5].il); 2382 dialog.font = (yyvsp[-3].uni); 2383 if (dialog.ex == NULL) 2384 rcparse_warning (_("extended FONT requires DIALOGEX")); 2385 else 2386 { 2387 dialog.ex->weight = (yyvsp[-2].il); 2388 dialog.ex->italic = (yyvsp[-1].il); 2389 dialog.ex->charset = (yyvsp[0].il); 2390 } 2391 } 2392 #line 2393 "rcparse.c" /* yacc.c:1646 */ 2393 break; 2394 2395 case 54: 2396 #line 529 "rcparse.y" /* yacc.c:1646 */ 2397 { 2398 dialog.menu = (yyvsp[0].id); 2399 } 2400 #line 2401 "rcparse.c" /* yacc.c:1646 */ 2401 break; 2402 2403 case 55: 2404 #line 533 "rcparse.y" /* yacc.c:1646 */ 2405 { 2406 sub_res_info.characteristics = (yyvsp[0].il); 2407 } 2408 #line 2409 "rcparse.c" /* yacc.c:1646 */ 2409 break; 2410 2411 case 56: 2412 #line 537 "rcparse.y" /* yacc.c:1646 */ 2413 { 2414 sub_res_info.language = (yyvsp[-1].il) | ((yyvsp[0].il) << SUBLANG_SHIFT); 2415 } 2416 #line 2417 "rcparse.c" /* yacc.c:1646 */ 2417 break; 2418 2419 case 57: 2420 #line 541 "rcparse.y" /* yacc.c:1646 */ 2421 { 2422 sub_res_info.version = (yyvsp[0].il); 2423 } 2424 #line 2425 "rcparse.c" /* yacc.c:1646 */ 2425 break; 2426 2427 case 59: 2428 #line 549 "rcparse.y" /* yacc.c:1646 */ 2429 { 2430 rc_dialog_control **pp; 2431 2432 for (pp = &dialog.controls; *pp != NULL; pp = &(*pp)->next) 2433 ; 2434 *pp = (yyvsp[0].dialog_control); 2435 } 2436 #line 2437 "rcparse.c" /* yacc.c:1646 */ 2437 break; 2438 2439 case 60: 2440 #line 560 "rcparse.y" /* yacc.c:1646 */ 2441 { 2442 default_style = BS_AUTO3STATE | WS_TABSTOP; 2443 base_style = BS_AUTO3STATE; 2444 class.named = 0; 2445 class.u.id = CTL_BUTTON; 2446 res_text_field = (yyvsp[0].id); 2447 } 2448 #line 2449 "rcparse.c" /* yacc.c:1646 */ 2449 break; 2450 2451 case 61: 2452 #line 568 "rcparse.y" /* yacc.c:1646 */ 2453 { 2454 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2455 } 2456 #line 2457 "rcparse.c" /* yacc.c:1646 */ 2457 break; 2458 2459 case 62: 2460 #line 572 "rcparse.y" /* yacc.c:1646 */ 2461 { 2462 default_style = BS_AUTOCHECKBOX | WS_TABSTOP; 2463 base_style = BS_AUTOCHECKBOX; 2464 class.named = 0; 2465 class.u.id = CTL_BUTTON; 2466 res_text_field = (yyvsp[0].id); 2467 } 2468 #line 2469 "rcparse.c" /* yacc.c:1646 */ 2469 break; 2470 2471 case 63: 2472 #line 580 "rcparse.y" /* yacc.c:1646 */ 2473 { 2474 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2475 } 2476 #line 2477 "rcparse.c" /* yacc.c:1646 */ 2477 break; 2478 2479 case 64: 2480 #line 584 "rcparse.y" /* yacc.c:1646 */ 2481 { 2482 default_style = BS_AUTORADIOBUTTON | WS_TABSTOP; 2483 base_style = BS_AUTORADIOBUTTON; 2484 class.named = 0; 2485 class.u.id = CTL_BUTTON; 2486 res_text_field = (yyvsp[0].id); 2487 } 2488 #line 2489 "rcparse.c" /* yacc.c:1646 */ 2489 break; 2490 2491 case 65: 2492 #line 592 "rcparse.y" /* yacc.c:1646 */ 2493 { 2494 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2495 } 2496 #line 2497 "rcparse.c" /* yacc.c:1646 */ 2497 break; 2498 2499 case 66: 2500 #line 596 "rcparse.y" /* yacc.c:1646 */ 2501 { 2502 default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2503 base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2504 class.named = 0; 2505 class.u.id = CTL_EDIT; 2506 res_text_field = (yyvsp[0].id); 2507 } 2508 #line 2509 "rcparse.c" /* yacc.c:1646 */ 2509 break; 2510 2511 case 67: 2512 #line 604 "rcparse.y" /* yacc.c:1646 */ 2513 { 2514 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2515 if (dialog.ex == NULL) 2516 rcparse_warning (_("BEDIT requires DIALOGEX")); 2517 res_string_to_id (&(yyval.dialog_control)->class, "BEDIT"); 2518 } 2519 #line 2520 "rcparse.c" /* yacc.c:1646 */ 2520 break; 2521 2522 case 68: 2523 #line 611 "rcparse.y" /* yacc.c:1646 */ 2524 { 2525 default_style = BS_CHECKBOX | WS_TABSTOP; 2526 base_style = BS_CHECKBOX | WS_TABSTOP; 2527 class.named = 0; 2528 class.u.id = CTL_BUTTON; 2529 res_text_field = (yyvsp[0].id); 2530 } 2531 #line 2532 "rcparse.c" /* yacc.c:1646 */ 2532 break; 2533 2534 case 69: 2535 #line 619 "rcparse.y" /* yacc.c:1646 */ 2536 { 2537 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2538 } 2539 #line 2540 "rcparse.c" /* yacc.c:1646 */ 2540 break; 2541 2542 case 70: 2543 #line 623 "rcparse.y" /* yacc.c:1646 */ 2544 { 2545 /* This is as per MSDN documentation. With some (???) 2546 versions of MS rc.exe their is no default style. */ 2547 default_style = CBS_SIMPLE | WS_TABSTOP; 2548 base_style = 0; 2549 class.named = 0; 2550 class.u.id = CTL_COMBOBOX; 2551 res_text_field = res_null_text; 2552 } 2553 #line 2554 "rcparse.c" /* yacc.c:1646 */ 2554 break; 2555 2556 case 71: 2557 #line 633 "rcparse.y" /* yacc.c:1646 */ 2558 { 2559 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2560 } 2561 #line 2562 "rcparse.c" /* yacc.c:1646 */ 2562 break; 2563 2564 case 72: 2565 #line 638 "rcparse.y" /* yacc.c:1646 */ 2566 { 2567 (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)); 2568 if ((yyvsp[0].rcdata_item) != NULL) 2569 { 2570 if (dialog.ex == NULL) 2571 rcparse_warning (_("control data requires DIALOGEX")); 2572 (yyval.dialog_control)->data = (yyvsp[0].rcdata_item); 2573 } 2574 } 2575 #line 2576 "rcparse.c" /* yacc.c:1646 */ 2576 break; 2577 2578 case 73: 2579 #line 649 "rcparse.y" /* yacc.c:1646 */ 2580 { 2581 (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)); 2582 if (dialog.ex == NULL) 2583 rcparse_warning (_("help ID requires DIALOGEX")); 2584 (yyval.dialog_control)->help = (yyvsp[-1].il); 2585 (yyval.dialog_control)->data = (yyvsp[0].rcdata_item); 2586 } 2587 #line 2588 "rcparse.c" /* yacc.c:1646 */ 2588 break; 2589 2590 case 74: 2591 #line 657 "rcparse.y" /* yacc.c:1646 */ 2592 { 2593 default_style = SS_CENTER | WS_GROUP; 2594 base_style = SS_CENTER; 2595 class.named = 0; 2596 class.u.id = CTL_STATIC; 2597 res_text_field = (yyvsp[0].id); 2598 } 2599 #line 2600 "rcparse.c" /* yacc.c:1646 */ 2600 break; 2601 2602 case 75: 2603 #line 665 "rcparse.y" /* yacc.c:1646 */ 2604 { 2605 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2606 } 2607 #line 2608 "rcparse.c" /* yacc.c:1646 */ 2608 break; 2609 2610 case 76: 2611 #line 669 "rcparse.y" /* yacc.c:1646 */ 2612 { 2613 default_style = BS_DEFPUSHBUTTON | WS_TABSTOP; 2614 base_style = BS_DEFPUSHBUTTON | WS_TABSTOP; 2615 class.named = 0; 2616 class.u.id = CTL_BUTTON; 2617 res_text_field = (yyvsp[0].id); 2618 } 2619 #line 2620 "rcparse.c" /* yacc.c:1646 */ 2620 break; 2621 2622 case 77: 2623 #line 677 "rcparse.y" /* yacc.c:1646 */ 2624 { 2625 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2626 } 2627 #line 2628 "rcparse.c" /* yacc.c:1646 */ 2628 break; 2629 2630 case 78: 2631 #line 681 "rcparse.y" /* yacc.c:1646 */ 2632 { 2633 default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2634 base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2635 class.named = 0; 2636 class.u.id = CTL_EDIT; 2637 res_text_field = res_null_text; 2638 } 2639 #line 2640 "rcparse.c" /* yacc.c:1646 */ 2640 break; 2641 2642 case 79: 2643 #line 689 "rcparse.y" /* yacc.c:1646 */ 2644 { 2645 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2646 } 2647 #line 2648 "rcparse.c" /* yacc.c:1646 */ 2648 break; 2649 2650 case 80: 2651 #line 693 "rcparse.y" /* yacc.c:1646 */ 2652 { 2653 default_style = BS_GROUPBOX; 2654 base_style = BS_GROUPBOX; 2655 class.named = 0; 2656 class.u.id = CTL_BUTTON; 2657 res_text_field = (yyvsp[0].id); 2658 } 2659 #line 2660 "rcparse.c" /* yacc.c:1646 */ 2660 break; 2661 2662 case 81: 2663 #line 701 "rcparse.y" /* yacc.c:1646 */ 2664 { 2665 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2666 } 2667 #line 2668 "rcparse.c" /* yacc.c:1646 */ 2668 break; 2669 2670 case 82: 2671 #line 705 "rcparse.y" /* yacc.c:1646 */ 2672 { 2673 default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2674 base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2675 class.named = 0; 2676 class.u.id = CTL_EDIT; 2677 res_text_field = (yyvsp[0].id); 2678 } 2679 #line 2680 "rcparse.c" /* yacc.c:1646 */ 2680 break; 2681 2682 case 83: 2683 #line 713 "rcparse.y" /* yacc.c:1646 */ 2684 { 2685 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2686 if (dialog.ex == NULL) 2687 rcparse_warning (_("IEDIT requires DIALOGEX")); 2688 res_string_to_id (&(yyval.dialog_control)->class, "HEDIT"); 2689 } 2690 #line 2691 "rcparse.c" /* yacc.c:1646 */ 2691 break; 2692 2693 case 84: 2694 #line 720 "rcparse.y" /* yacc.c:1646 */ 2695 { 2696 (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), 2697 dialog.ex); 2698 } 2699 #line 2700 "rcparse.c" /* yacc.c:1646 */ 2700 break; 2701 2702 case 85: 2703 #line 726 "rcparse.y" /* yacc.c:1646 */ 2704 { 2705 (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), 2706 dialog.ex); 2707 } 2708 #line 2709 "rcparse.c" /* yacc.c:1646 */ 2709 break; 2710 2711 case 86: 2712 #line 732 "rcparse.y" /* yacc.c:1646 */ 2713 { 2714 (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), 2715 dialog.ex); 2716 } 2717 #line 2718 "rcparse.c" /* yacc.c:1646 */ 2718 break; 2719 2720 case 87: 2721 #line 738 "rcparse.y" /* yacc.c:1646 */ 2722 { 2723 (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), 2724 dialog.ex); 2725 } 2726 #line 2727 "rcparse.c" /* yacc.c:1646 */ 2727 break; 2728 2729 case 88: 2730 #line 743 "rcparse.y" /* yacc.c:1646 */ 2731 { 2732 default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2733 base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; 2734 class.named = 0; 2735 class.u.id = CTL_EDIT; 2736 res_text_field = (yyvsp[0].id); 2737 } 2738 #line 2739 "rcparse.c" /* yacc.c:1646 */ 2739 break; 2740 2741 case 89: 2742 #line 751 "rcparse.y" /* yacc.c:1646 */ 2743 { 2744 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2745 if (dialog.ex == NULL) 2746 rcparse_warning (_("IEDIT requires DIALOGEX")); 2747 res_string_to_id (&(yyval.dialog_control)->class, "IEDIT"); 2748 } 2749 #line 2750 "rcparse.c" /* yacc.c:1646 */ 2750 break; 2751 2752 case 90: 2753 #line 758 "rcparse.y" /* yacc.c:1646 */ 2754 { 2755 default_style = LBS_NOTIFY | WS_BORDER; 2756 base_style = LBS_NOTIFY | WS_BORDER; 2757 class.named = 0; 2758 class.u.id = CTL_LISTBOX; 2759 res_text_field = res_null_text; 2760 } 2761 #line 2762 "rcparse.c" /* yacc.c:1646 */ 2762 break; 2763 2764 case 91: 2765 #line 766 "rcparse.y" /* yacc.c:1646 */ 2766 { 2767 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2768 } 2769 #line 2770 "rcparse.c" /* yacc.c:1646 */ 2770 break; 2771 2772 case 92: 2773 #line 770 "rcparse.y" /* yacc.c:1646 */ 2774 { 2775 default_style = SS_LEFT | WS_GROUP; 2776 base_style = SS_LEFT; 2777 class.named = 0; 2778 class.u.id = CTL_STATIC; 2779 res_text_field = (yyvsp[0].id); 2780 } 2781 #line 2782 "rcparse.c" /* yacc.c:1646 */ 2782 break; 2783 2784 case 93: 2785 #line 778 "rcparse.y" /* yacc.c:1646 */ 2786 { 2787 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2788 } 2789 #line 2790 "rcparse.c" /* yacc.c:1646 */ 2790 break; 2791 2792 case 94: 2793 #line 782 "rcparse.y" /* yacc.c:1646 */ 2794 { 2795 default_style = BS_PUSHBOX | WS_TABSTOP; 2796 base_style = BS_PUSHBOX; 2797 class.named = 0; 2798 class.u.id = CTL_BUTTON; 2799 } 2800 #line 2801 "rcparse.c" /* yacc.c:1646 */ 2801 break; 2802 2803 case 95: 2804 #line 789 "rcparse.y" /* yacc.c:1646 */ 2805 { 2806 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2807 } 2808 #line 2809 "rcparse.c" /* yacc.c:1646 */ 2809 break; 2810 2811 case 96: 2812 #line 793 "rcparse.y" /* yacc.c:1646 */ 2813 { 2814 default_style = BS_PUSHBUTTON | WS_TABSTOP; 2815 base_style = BS_PUSHBUTTON | WS_TABSTOP; 2816 class.named = 0; 2817 class.u.id = CTL_BUTTON; 2818 res_text_field = (yyvsp[0].id); 2819 } 2820 #line 2821 "rcparse.c" /* yacc.c:1646 */ 2821 break; 2822 2823 case 97: 2824 #line 801 "rcparse.y" /* yacc.c:1646 */ 2825 { 2826 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2827 } 2828 #line 2829 "rcparse.c" /* yacc.c:1646 */ 2829 break; 2830 2831 case 98: 2832 #line 805 "rcparse.y" /* yacc.c:1646 */ 2833 { 2834 default_style = BS_RADIOBUTTON | WS_TABSTOP; 2835 base_style = BS_RADIOBUTTON; 2836 class.named = 0; 2837 class.u.id = CTL_BUTTON; 2838 res_text_field = (yyvsp[0].id); 2839 } 2840 #line 2841 "rcparse.c" /* yacc.c:1646 */ 2841 break; 2842 2843 case 99: 2844 #line 813 "rcparse.y" /* yacc.c:1646 */ 2845 { 2846 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2847 } 2848 #line 2849 "rcparse.c" /* yacc.c:1646 */ 2849 break; 2850 2851 case 100: 2852 #line 817 "rcparse.y" /* yacc.c:1646 */ 2853 { 2854 default_style = SS_RIGHT | WS_GROUP; 2855 base_style = SS_RIGHT; 2856 class.named = 0; 2857 class.u.id = CTL_STATIC; 2858 res_text_field = (yyvsp[0].id); 2859 } 2860 #line 2861 "rcparse.c" /* yacc.c:1646 */ 2861 break; 2862 2863 case 101: 2864 #line 825 "rcparse.y" /* yacc.c:1646 */ 2865 { 2866 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2867 } 2868 #line 2869 "rcparse.c" /* yacc.c:1646 */ 2869 break; 2870 2871 case 102: 2872 #line 829 "rcparse.y" /* yacc.c:1646 */ 2873 { 2874 default_style = SBS_HORZ; 2875 base_style = 0; 2876 class.named = 0; 2877 class.u.id = CTL_SCROLLBAR; 2878 res_text_field = res_null_text; 2879 } 2880 #line 2881 "rcparse.c" /* yacc.c:1646 */ 2881 break; 2882 2883 case 103: 2884 #line 837 "rcparse.y" /* yacc.c:1646 */ 2885 { 2886 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2887 } 2888 #line 2889 "rcparse.c" /* yacc.c:1646 */ 2889 break; 2890 2891 case 104: 2892 #line 841 "rcparse.y" /* yacc.c:1646 */ 2893 { 2894 default_style = BS_3STATE | WS_TABSTOP; 2895 base_style = BS_3STATE; 2896 class.named = 0; 2897 class.u.id = CTL_BUTTON; 2898 res_text_field = (yyvsp[0].id); 2899 } 2900 #line 2901 "rcparse.c" /* yacc.c:1646 */ 2901 break; 2902 2903 case 105: 2904 #line 849 "rcparse.y" /* yacc.c:1646 */ 2905 { 2906 (yyval.dialog_control) = (yyvsp[0].dialog_control); 2907 } 2908 #line 2909 "rcparse.c" /* yacc.c:1646 */ 2909 break; 2910 2911 case 106: 2912 #line 854 "rcparse.y" /* yacc.c:1646 */ 2913 { style = WS_CHILD | WS_VISIBLE; } 2914 #line 2915 "rcparse.c" /* yacc.c:1646 */ 2915 break; 2916 2917 case 107: 2918 #line 856 "rcparse.y" /* yacc.c:1646 */ 2919 { 2920 rc_res_id cid; 2921 cid.named = 0; 2922 cid.u.id = CTL_BUTTON; 2923 (yyval.dialog_control) = define_control ((yyvsp[-13].id), (yyvsp[-12].il), (yyvsp[-10].il), (yyvsp[-8].il), (yyvsp[-6].il), (yyvsp[-4].il), cid, 2924 style, (yyvsp[0].il)); 2925 } 2926 #line 2927 "rcparse.c" /* yacc.c:1646 */ 2927 break; 2928 2929 case 108: 2930 #line 874 "rcparse.y" /* yacc.c:1646 */ 2931 { 2932 (yyval.dialog_control) = define_control (res_text_field, (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-2].il), (yyvsp[-1].il), class, 2933 default_style | WS_CHILD | WS_VISIBLE, 0); 2934 if ((yyvsp[0].rcdata_item) != NULL) 2935 { 2936 if (dialog.ex == NULL) 2937 rcparse_warning (_("control data requires DIALOGEX")); 2938 (yyval.dialog_control)->data = (yyvsp[0].rcdata_item); 2939 } 2940 } 2941 #line 2942 "rcparse.c" /* yacc.c:1646 */ 2942 break; 2943 2944 case 109: 2945 #line 886 "rcparse.y" /* yacc.c:1646 */ 2946 { 2947 (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)); 2948 if ((yyvsp[0].rcdata_item) != NULL) 2949 { 2950 if (dialog.ex == NULL) 2951 rcparse_warning (_("control data requires DIALOGEX")); 2952 (yyval.dialog_control)->data = (yyvsp[0].rcdata_item); 2953 } 2954 } 2955 #line 2956 "rcparse.c" /* yacc.c:1646 */ 2956 break; 2957 2958 case 110: 2959 #line 897 "rcparse.y" /* yacc.c:1646 */ 2960 { 2961 (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)); 2962 if (dialog.ex == NULL) 2963 rcparse_warning (_("help ID requires DIALOGEX")); 2964 (yyval.dialog_control)->help = (yyvsp[-1].il); 2965 (yyval.dialog_control)->data = (yyvsp[0].rcdata_item); 2966 } 2967 #line 2968 "rcparse.c" /* yacc.c:1646 */ 2968 break; 2969 2970 case 111: 2971 #line 908 "rcparse.y" /* yacc.c:1646 */ 2972 { 2973 if ((yyvsp[0].id).named) 2974 res_unistring_to_id (&(yyval.id), (yyvsp[0].id).u.n.name); 2975 else 2976 (yyval.id)=(yyvsp[0].id); 2977 } 2978 #line 2979 "rcparse.c" /* yacc.c:1646 */ 2979 break; 2980 2981 case 112: 2982 #line 918 "rcparse.y" /* yacc.c:1646 */ 2983 { 2984 res_string_to_id (&(yyval.id), ""); 2985 } 2986 #line 2987 "rcparse.c" /* yacc.c:1646 */ 2987 break; 2988 2989 case 113: 2990 #line 921 "rcparse.y" /* yacc.c:1646 */ 2991 { (yyval.id)=(yyvsp[-1].id); } 2992 #line 2993 "rcparse.c" /* yacc.c:1646 */ 2993 break; 2994 2995 case 114: 2996 #line 926 "rcparse.y" /* yacc.c:1646 */ 2997 { 2998 (yyval.id).named = 0; 2999 (yyval.id).u.id = (yyvsp[0].il); 3000 } 3001 #line 3002 "rcparse.c" /* yacc.c:1646 */ 3002 break; 3003 3004 case 115: 3005 #line 931 "rcparse.y" /* yacc.c:1646 */ 3006 { 3007 (yyval.id).named = 1; 3008 (yyval.id).u.n.name = (yyvsp[0].uni); 3009 (yyval.id).u.n.length = unichar_len ((yyvsp[0].uni)); 3010 } 3011 #line 3012 "rcparse.c" /* yacc.c:1646 */ 3012 break; 3013 3014 case 116: 3015 #line 940 "rcparse.y" /* yacc.c:1646 */ 3016 { 3017 (yyval.rcdata_item) = NULL; 3018 } 3019 #line 3020 "rcparse.c" /* yacc.c:1646 */ 3020 break; 3021 3022 case 117: 3023 #line 944 "rcparse.y" /* yacc.c:1646 */ 3024 { 3025 (yyval.rcdata_item) = (yyvsp[-1].rcdata).first; 3026 } 3027 #line 3028 "rcparse.c" /* yacc.c:1646 */ 3028 break; 3029 3030 case 118: 3031 #line 953 "rcparse.y" /* yacc.c:1646 */ 3032 { style = WS_CHILD | WS_VISIBLE; } 3033 #line 3034 "rcparse.c" /* yacc.c:1646 */ 3034 break; 3035 3036 case 120: 3037 #line 959 "rcparse.y" /* yacc.c:1646 */ 3038 { style = SS_ICON | WS_CHILD | WS_VISIBLE; } 3039 #line 3040 "rcparse.c" /* yacc.c:1646 */ 3040 break; 3041 3042 case 122: 3043 #line 965 "rcparse.y" /* yacc.c:1646 */ 3044 { style = base_style | WS_CHILD | WS_VISIBLE; } 3045 #line 3046 "rcparse.c" /* yacc.c:1646 */ 3046 break; 3047 3048 case 124: 3049 #line 973 "rcparse.y" /* yacc.c:1646 */ 3050 { 3051 define_font ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s)); 3052 if (yychar != YYEMPTY) 3053 YYERROR; 3054 rcparse_discard_strings (); 3055 } 3056 #line 3057 "rcparse.c" /* yacc.c:1646 */ 3057 break; 3058 3059 case 125: 3060 #line 985 "rcparse.y" /* yacc.c:1646 */ 3061 { 3062 define_icon ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s)); 3063 if (yychar != YYEMPTY) 3064 YYERROR; 3065 rcparse_discard_strings (); 3066 } 3067 #line 3068 "rcparse.c" /* yacc.c:1646 */ 3068 break; 3069 3070 case 126: 3071 #line 998 "rcparse.y" /* yacc.c:1646 */ 3072 { 3073 language = (yyvsp[-1].il) | ((yyvsp[0].il) << SUBLANG_SHIFT); 3074 } 3075 #line 3076 "rcparse.c" /* yacc.c:1646 */ 3076 break; 3077 3078 case 127: 3079 #line 1007 "rcparse.y" /* yacc.c:1646 */ 3080 { 3081 define_menu ((yyvsp[-5].id), &(yyvsp[-3].res_info), (yyvsp[-1].menuitem)); 3082 if (yychar != YYEMPTY) 3083 YYERROR; 3084 rcparse_discard_strings (); 3085 } 3086 #line 3087 "rcparse.c" /* yacc.c:1646 */ 3087 break; 3088 3089 case 128: 3090 #line 1017 "rcparse.y" /* yacc.c:1646 */ 3091 { 3092 (yyval.menuitem) = NULL; 3093 } 3094 #line 3095 "rcparse.c" /* yacc.c:1646 */ 3095 break; 3096 3097 case 129: 3098 #line 1021 "rcparse.y" /* yacc.c:1646 */ 3099 { 3100 if ((yyvsp[-1].menuitem) == NULL) 3101 (yyval.menuitem) = (yyvsp[0].menuitem); 3102 else 3103 { 3104 rc_menuitem **pp; 3105 3106 for (pp = &(yyvsp[-1].menuitem)->next; *pp != NULL; pp = &(*pp)->next) 3107 ; 3108 *pp = (yyvsp[0].menuitem); 3109 (yyval.menuitem) = (yyvsp[-1].menuitem); 3110 } 3111 } 3112 #line 3113 "rcparse.c" /* yacc.c:1646 */ 3113 break; 3114 3115 case 130: 3116 #line 1038 "rcparse.y" /* yacc.c:1646 */ 3117 { 3118 (yyval.menuitem) = define_menuitem ((yyvsp[-2].uni), (yyvsp[-1].il), (yyvsp[0].is), 0, 0, NULL); 3119 } 3120 #line 3121 "rcparse.c" /* yacc.c:1646 */ 3121 break; 3122 3123 case 131: 3124 #line 1042 "rcparse.y" /* yacc.c:1646 */ 3125 { 3126 (yyval.menuitem) = define_menuitem (NULL, 0, 0, 0, 0, NULL); 3127 } 3128 #line 3129 "rcparse.c" /* yacc.c:1646 */ 3129 break; 3130 3131 case 132: 3132 #line 1046 "rcparse.y" /* yacc.c:1646 */ 3133 { 3134 (yyval.menuitem) = define_menuitem ((yyvsp[-4].uni), 0, (yyvsp[-3].is), 0, 0, (yyvsp[-1].menuitem)); 3135 } 3136 #line 3137 "rcparse.c" /* yacc.c:1646 */ 3137 break; 3138 3139 case 133: 3140 #line 1053 "rcparse.y" /* yacc.c:1646 */ 3141 { 3142 (yyval.is) = 0; 3143 } 3144 #line 3145 "rcparse.c" /* yacc.c:1646 */ 3145 break; 3146 3147 case 134: 3148 #line 1057 "rcparse.y" /* yacc.c:1646 */ 3149 { 3150 (yyval.is) = (yyvsp[-2].is) | (yyvsp[0].is); 3151 } 3152 #line 3153 "rcparse.c" /* yacc.c:1646 */ 3153 break; 3154 3155 case 135: 3156 #line 1061 "rcparse.y" /* yacc.c:1646 */ 3157 { 3158 (yyval.is) = (yyvsp[-1].is) | (yyvsp[0].is); 3159 } 3160 #line 3161 "rcparse.c" /* yacc.c:1646 */ 3161 break; 3162 3163 case 136: 3164 #line 1068 "rcparse.y" /* yacc.c:1646 */ 3165 { 3166 (yyval.is) = MENUITEM_CHECKED; 3167 } 3168 #line 3169 "rcparse.c" /* yacc.c:1646 */ 3169 break; 3170 3171 case 137: 3172 #line 1072 "rcparse.y" /* yacc.c:1646 */ 3173 { 3174 (yyval.is) = MENUITEM_GRAYED; 3175 } 3176 #line 3177 "rcparse.c" /* yacc.c:1646 */ 3177 break; 3178 3179 case 138: 3180 #line 1076 "rcparse.y" /* yacc.c:1646 */ 3181 { 3182 (yyval.is) = MENUITEM_HELP; 3183 } 3184 #line 3185 "rcparse.c" /* yacc.c:1646 */ 3185 break; 3186 3187 case 139: 3188 #line 1080 "rcparse.y" /* yacc.c:1646 */ 3189 { 3190 (yyval.is) = MENUITEM_INACTIVE; 3191 } 3192 #line 3193 "rcparse.c" /* yacc.c:1646 */ 3193 break; 3194 3195 case 140: 3196 #line 1084 "rcparse.y" /* yacc.c:1646 */ 3197 { 3198 (yyval.is) = MENUITEM_MENUBARBREAK; 3199 } 3200 #line 3201 "rcparse.c" /* yacc.c:1646 */ 3201 break; 3202 3203 case 141: 3204 #line 1088 "rcparse.y" /* yacc.c:1646 */ 3205 { 3206 (yyval.is) = MENUITEM_MENUBREAK; 3207 } 3208 #line 3209 "rcparse.c" /* yacc.c:1646 */ 3209 break; 3210 3211 case 142: 3212 #line 1097 "rcparse.y" /* yacc.c:1646 */ 3213 { 3214 define_menu ((yyvsp[-5].id), &(yyvsp[-3].res_info), (yyvsp[-1].menuitem)); 3215 if (yychar != YYEMPTY) 3216 YYERROR; 3217 rcparse_discard_strings (); 3218 } 3219 #line 3220 "rcparse.c" /* yacc.c:1646 */ 3220 break; 3221 3222 case 143: 3223 #line 1107 "rcparse.y" /* yacc.c:1646 */ 3224 { 3225 (yyval.menuitem) = NULL; 3226 } 3227 #line 3228 "rcparse.c" /* yacc.c:1646 */ 3228 break; 3229 3230 case 144: 3231 #line 1111 "rcparse.y" /* yacc.c:1646 */ 3232 { 3233 if ((yyvsp[-1].menuitem) == NULL) 3234 (yyval.menuitem) = (yyvsp[0].menuitem); 3235 else 3236 { 3237 rc_menuitem **pp; 3238 3239 for (pp = &(yyvsp[-1].menuitem)->next; *pp != NULL; pp = &(*pp)->next) 3240 ; 3241 *pp = (yyvsp[0].menuitem); 3242 (yyval.menuitem) = (yyvsp[-1].menuitem); 3243 } 3244 } 3245 #line 3246 "rcparse.c" /* yacc.c:1646 */ 3246 break; 3247 3248 case 145: 3249 #line 1128 "rcparse.y" /* yacc.c:1646 */ 3250 { 3251 (yyval.menuitem) = define_menuitem ((yyvsp[0].uni), 0, 0, 0, 0, NULL); 3252 } 3253 #line 3254 "rcparse.c" /* yacc.c:1646 */ 3254 break; 3255 3256 case 146: 3257 #line 1132 "rcparse.y" /* yacc.c:1646 */ 3258 { 3259 (yyval.menuitem) = define_menuitem ((yyvsp[-1].uni), (yyvsp[0].il), 0, 0, 0, NULL); 3260 } 3261 #line 3262 "rcparse.c" /* yacc.c:1646 */ 3262 break; 3263 3264 case 147: 3265 #line 1136 "rcparse.y" /* yacc.c:1646 */ 3266 { 3267 (yyval.menuitem) = define_menuitem ((yyvsp[-3].uni), (yyvsp[-2].il), (yyvsp[-1].il), (yyvsp[0].il), 0, NULL); 3268 } 3269 #line 3270 "rcparse.c" /* yacc.c:1646 */ 3270 break; 3271 3272 case 148: 3273 #line 1140 "rcparse.y" /* yacc.c:1646 */ 3274 { 3275 (yyval.menuitem) = define_menuitem (NULL, 0, 0, 0, 0, NULL); 3276 } 3277 #line 3278 "rcparse.c" /* yacc.c:1646 */ 3278 break; 3279 3280 case 149: 3281 #line 1144 "rcparse.y" /* yacc.c:1646 */ 3282 { 3283 (yyval.menuitem) = define_menuitem ((yyvsp[-3].uni), 0, 0, 0, 0, (yyvsp[-1].menuitem)); 3284 } 3285 #line 3286 "rcparse.c" /* yacc.c:1646 */ 3286 break; 3287 3288 case 150: 3289 #line 1148 "rcparse.y" /* yacc.c:1646 */ 3290 { 3291 (yyval.menuitem) = define_menuitem ((yyvsp[-4].uni), (yyvsp[-3].il), 0, 0, 0, (yyvsp[-1].menuitem)); 3292 } 3293 #line 3294 "rcparse.c" /* yacc.c:1646 */ 3294 break; 3295 3296 case 151: 3297 #line 1152 "rcparse.y" /* yacc.c:1646 */ 3298 { 3299 (yyval.menuitem) = define_menuitem ((yyvsp[-5].uni), (yyvsp[-4].il), (yyvsp[-3].il), 0, 0, (yyvsp[-1].menuitem)); 3300 } 3301 #line 3302 "rcparse.c" /* yacc.c:1646 */ 3302 break; 3303 3304 case 152: 3305 #line 1157 "rcparse.y" /* yacc.c:1646 */ 3306 { 3307 (yyval.menuitem) = define_menuitem ((yyvsp[-7].uni), (yyvsp[-6].il), (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-1].menuitem)); 3308 } 3309 #line 3310 "rcparse.c" /* yacc.c:1646 */ 3310 break; 3311 3312 case 153: 3313 #line 1166 "rcparse.y" /* yacc.c:1646 */ 3314 { 3315 define_messagetable ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s)); 3316 if (yychar != YYEMPTY) 3317 YYERROR; 3318 rcparse_discard_strings (); 3319 } 3320 #line 3321 "rcparse.c" /* yacc.c:1646 */ 3321 break; 3322 3323 case 154: 3324 #line 1178 "rcparse.y" /* yacc.c:1646 */ 3325 { 3326 rcparse_rcdata (); 3327 } 3328 #line 3329 "rcparse.c" /* yacc.c:1646 */ 3329 break; 3330 3331 case 155: 3332 #line 1182 "rcparse.y" /* yacc.c:1646 */ 3333 { 3334 rcparse_normal (); 3335 (yyval.rcdata) = (yyvsp[0].rcdata); 3336 } 3337 #line 3338 "rcparse.c" /* yacc.c:1646 */ 3338 break; 3339 3340 case 156: 3341 #line 1190 "rcparse.y" /* yacc.c:1646 */ 3342 { 3343 (yyval.rcdata).first = NULL; 3344 (yyval.rcdata).last = NULL; 3345 } 3346 #line 3347 "rcparse.c" /* yacc.c:1646 */ 3347 break; 3348 3349 case 157: 3350 #line 1195 "rcparse.y" /* yacc.c:1646 */ 3351 { 3352 (yyval.rcdata) = (yyvsp[0].rcdata); 3353 } 3354 #line 3355 "rcparse.c" /* yacc.c:1646 */ 3355 break; 3356 3357 case 158: 3358 #line 1202 "rcparse.y" /* yacc.c:1646 */ 3359 { 3360 rc_rcdata_item *ri; 3361 3362 ri = define_rcdata_string ((yyvsp[0].ss).s, (yyvsp[0].ss).length); 3363 (yyval.rcdata).first = ri; 3364 (yyval.rcdata).last = ri; 3365 } 3366 #line 3367 "rcparse.c" /* yacc.c:1646 */ 3367 break; 3368 3369 case 159: 3370 #line 1210 "rcparse.y" /* yacc.c:1646 */ 3371 { 3372 rc_rcdata_item *ri; 3373 3374 ri = define_rcdata_unistring ((yyvsp[0].suni).s, (yyvsp[0].suni).length); 3375 (yyval.rcdata).first = ri; 3376 (yyval.rcdata).last = ri; 3377 } 3378 #line 3379 "rcparse.c" /* yacc.c:1646 */ 3379 break; 3380 3381 case 160: 3382 #line 1218 "rcparse.y" /* yacc.c:1646 */ 3383 { 3384 rc_rcdata_item *ri; 3385 3386 ri = define_rcdata_number ((yyvsp[0].i).val, (yyvsp[0].i).dword); 3387 (yyval.rcdata).first = ri; 3388 (yyval.rcdata).last = ri; 3389 } 3390 #line 3391 "rcparse.c" /* yacc.c:1646 */ 3391 break; 3392 3393 case 161: 3394 #line 1226 "rcparse.y" /* yacc.c:1646 */ 3395 { 3396 rc_rcdata_item *ri; 3397 3398 ri = define_rcdata_string ((yyvsp[0].ss).s, (yyvsp[0].ss).length); 3399 (yyval.rcdata).first = (yyvsp[-2].rcdata).first; 3400 (yyvsp[-2].rcdata).last->next = ri; 3401 (yyval.rcdata).last = ri; 3402 } 3403 #line 3404 "rcparse.c" /* yacc.c:1646 */ 3404 break; 3405 3406 case 162: 3407 #line 1235 "rcparse.y" /* yacc.c:1646 */ 3408 { 3409 rc_rcdata_item *ri; 3410 3411 ri = define_rcdata_unistring ((yyvsp[0].suni).s, (yyvsp[0].suni).length); 3412 (yyval.rcdata).first = (yyvsp[-2].rcdata).first; 3413 (yyvsp[-2].rcdata).last->next = ri; 3414 (yyval.rcdata).last = ri; 3415 } 3416 #line 3417 "rcparse.c" /* yacc.c:1646 */ 3417 break; 3418 3419 case 163: 3420 #line 1244 "rcparse.y" /* yacc.c:1646 */ 3421 { 3422 rc_rcdata_item *ri; 3423 3424 ri = define_rcdata_number ((yyvsp[0].i).val, (yyvsp[0].i).dword); 3425 (yyval.rcdata).first = (yyvsp[-2].rcdata).first; 3426 (yyvsp[-2].rcdata).last->next = ri; 3427 (yyval.rcdata).last = ri; 3428 } 3429 #line 3430 "rcparse.c" /* yacc.c:1646 */ 3430 break; 3431 3432 case 164: 3433 #line 1253 "rcparse.y" /* yacc.c:1646 */ 3434 { 3435 (yyval.rcdata)=(yyvsp[-1].rcdata); 3436 } 3437 #line 3438 "rcparse.c" /* yacc.c:1646 */ 3438 break; 3439 3440 case 165: 3441 #line 1262 "rcparse.y" /* yacc.c:1646 */ 3442 { sub_res_info = (yyvsp[-1].res_info); rcparse_rcdata (); } 3443 #line 3444 "rcparse.c" /* yacc.c:1646 */ 3444 break; 3445 3446 case 166: 3447 #line 1263 "rcparse.y" /* yacc.c:1646 */ 3448 { rcparse_normal (); } 3449 #line 3450 "rcparse.c" /* yacc.c:1646 */ 3450 break; 3451 3452 case 168: 3453 #line 1269 "rcparse.y" /* yacc.c:1646 */ 3454 { 3455 define_stringtable (&sub_res_info, (yyvsp[-1].il), (yyvsp[0].suni).s, (yyvsp[0].suni).length); 3456 rcparse_discard_strings (); 3457 } 3458 #line 3459 "rcparse.c" /* yacc.c:1646 */ 3459 break; 3460 3461 case 169: 3462 #line 1274 "rcparse.y" /* yacc.c:1646 */ 3463 { 3464 define_stringtable (&sub_res_info, (yyvsp[-2].il), (yyvsp[0].suni).s, (yyvsp[0].suni).length); 3465 rcparse_discard_strings (); 3466 } 3467 #line 3468 "rcparse.c" /* yacc.c:1646 */ 3468 break; 3469 3470 case 170: 3471 #line 1279 "rcparse.y" /* yacc.c:1646 */ 3472 { 3473 rcparse_warning (_("invalid stringtable resource.")); 3474 abort (); 3475 } 3476 #line 3477 "rcparse.c" /* yacc.c:1646 */ 3477 break; 3478 3479 case 171: 3480 #line 1287 "rcparse.y" /* yacc.c:1646 */ 3481 { 3482 (yyval.id)=(yyvsp[0].id); 3483 } 3484 #line 3485 "rcparse.c" /* yacc.c:1646 */ 3485 break; 3486 3487 case 172: 3488 #line 1291 "rcparse.y" /* yacc.c:1646 */ 3489 { 3490 (yyval.id).named = 0; 3491 (yyval.id).u.id = 23; 3492 } 3493 #line 3494 "rcparse.c" /* yacc.c:1646 */ 3494 break; 3495 3496 case 173: 3497 #line 1296 "rcparse.y" /* yacc.c:1646 */ 3498 { 3499 (yyval.id).named = 0; 3500 (yyval.id).u.id = RT_RCDATA; 3501 } 3502 #line 3503 "rcparse.c" /* yacc.c:1646 */ 3503 break; 3504 3505 case 174: 3506 #line 1301 "rcparse.y" /* yacc.c:1646 */ 3507 { 3508 (yyval.id).named = 0; 3509 (yyval.id).u.id = RT_MANIFEST; 3510 } 3511 #line 3512 "rcparse.c" /* yacc.c:1646 */ 3512 break; 3513 3514 case 175: 3515 #line 1306 "rcparse.y" /* yacc.c:1646 */ 3516 { 3517 (yyval.id).named = 0; 3518 (yyval.id).u.id = RT_PLUGPLAY; 3519 } 3520 #line 3521 "rcparse.c" /* yacc.c:1646 */ 3521 break; 3522 3523 case 176: 3524 #line 1311 "rcparse.y" /* yacc.c:1646 */ 3525 { 3526 (yyval.id).named = 0; 3527 (yyval.id).u.id = RT_VXD; 3528 } 3529 #line 3530 "rcparse.c" /* yacc.c:1646 */ 3530 break; 3531 3532 case 177: 3533 #line 1316 "rcparse.y" /* yacc.c:1646 */ 3534 { 3535 (yyval.id).named = 0; 3536 (yyval.id).u.id = RT_DLGINCLUDE; 3537 } 3538 #line 3539 "rcparse.c" /* yacc.c:1646 */ 3539 break; 3540 3541 case 178: 3542 #line 1321 "rcparse.y" /* yacc.c:1646 */ 3543 { 3544 (yyval.id).named = 0; 3545 (yyval.id).u.id = RT_DLGINIT; 3546 } 3547 #line 3548 "rcparse.c" /* yacc.c:1646 */ 3548 break; 3549 3550 case 179: 3551 #line 1326 "rcparse.y" /* yacc.c:1646 */ 3552 { 3553 (yyval.id).named = 0; 3554 (yyval.id).u.id = RT_ANICURSOR; 3555 } 3556 #line 3557 "rcparse.c" /* yacc.c:1646 */ 3557 break; 3558 3559 case 180: 3560 #line 1331 "rcparse.y" /* yacc.c:1646 */ 3561 { 3562 (yyval.id).named = 0; 3563 (yyval.id).u.id = RT_ANIICON; 3564 } 3565 #line 3566 "rcparse.c" /* yacc.c:1646 */ 3566 break; 3567 3568 case 181: 3569 #line 1342 "rcparse.y" /* yacc.c:1646 */ 3570 { 3571 define_user_data ((yyvsp[-5].id), (yyvsp[-4].id), &(yyvsp[-3].res_info), (yyvsp[-1].rcdata).first); 3572 if (yychar != YYEMPTY) 3573 YYERROR; 3574 rcparse_discard_strings (); 3575 } 3576 #line 3577 "rcparse.c" /* yacc.c:1646 */ 3577 break; 3578 3579 case 182: 3580 #line 1349 "rcparse.y" /* yacc.c:1646 */ 3581 { 3582 define_user_file ((yyvsp[-3].id), (yyvsp[-2].id), &(yyvsp[-1].res_info), (yyvsp[0].s)); 3583 if (yychar != YYEMPTY) 3584 YYERROR; 3585 rcparse_discard_strings (); 3586 } 3587 #line 3588 "rcparse.c" /* yacc.c:1646 */ 3588 break; 3589 3590 case 183: 3591 #line 1359 "rcparse.y" /* yacc.c:1646 */ 3592 { 3593 define_toolbar ((yyvsp[-7].id), &(yyvsp[-5].res_info), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-1].toobar_item)); 3594 } 3595 #line 3596 "rcparse.c" /* yacc.c:1646 */ 3596 break; 3597 3598 case 184: 3599 #line 1364 "rcparse.y" /* yacc.c:1646 */ 3600 { (yyval.toobar_item)= NULL; } 3601 #line 3602 "rcparse.c" /* yacc.c:1646 */ 3602 break; 3603 3604 case 185: 3605 #line 1366 "rcparse.y" /* yacc.c:1646 */ 3606 { 3607 rc_toolbar_item *c,*n; 3608 c = (yyvsp[-2].toobar_item); 3609 n= (rc_toolbar_item *) 3610 res_alloc (sizeof (rc_toolbar_item)); 3611 if (c != NULL) 3612 while (c->next != NULL) 3613 c = c->next; 3614 n->prev = c; 3615 n->next = NULL; 3616 if (c != NULL) 3617 c->next = n; 3618 n->id = (yyvsp[0].id); 3619 if ((yyvsp[-2].toobar_item) == NULL) 3620 (yyval.toobar_item) = n; 3621 else 3622 (yyval.toobar_item) = (yyvsp[-2].toobar_item); 3623 } 3624 #line 3625 "rcparse.c" /* yacc.c:1646 */ 3625 break; 3626 3627 case 186: 3628 #line 1385 "rcparse.y" /* yacc.c:1646 */ 3629 { 3630 rc_toolbar_item *c,*n; 3631 c = (yyvsp[-1].toobar_item); 3632 n= (rc_toolbar_item *) 3633 res_alloc (sizeof (rc_toolbar_item)); 3634 if (c != NULL) 3635 while (c->next != NULL) 3636 c = c->next; 3637 n->prev = c; 3638 n->next = NULL; 3639 if (c != NULL) 3640 c->next = n; 3641 n->id.named = 0; 3642 n->id.u.id = 0; 3643 if ((yyvsp[-1].toobar_item) == NULL) 3644 (yyval.toobar_item) = n; 3645 else 3646 (yyval.toobar_item) = (yyvsp[-1].toobar_item); 3647 } 3648 #line 3649 "rcparse.c" /* yacc.c:1646 */ 3649 break; 3650 3651 case 187: 3652 #line 1410 "rcparse.y" /* yacc.c:1646 */ 3653 { 3654 define_versioninfo ((yyvsp[-5].id), language, (yyvsp[-3].fixver), (yyvsp[-1].verinfo)); 3655 if (yychar != YYEMPTY) 3656 YYERROR; 3657 rcparse_discard_strings (); 3658 } 3659 #line 3660 "rcparse.c" /* yacc.c:1646 */ 3660 break; 3661 3662 case 188: 3663 #line 1420 "rcparse.y" /* yacc.c:1646 */ 3664 { 3665 (yyval.fixver) = ((rc_fixed_versioninfo *) 3666 res_alloc (sizeof (rc_fixed_versioninfo))); 3667 memset ((yyval.fixver), 0, sizeof (rc_fixed_versioninfo)); 3668 } 3669 #line 3670 "rcparse.c" /* yacc.c:1646 */ 3670 break; 3671 3672 case 189: 3673 #line 1427 "rcparse.y" /* yacc.c:1646 */ 3674 { 3675 (yyvsp[-5].fixver)->file_version_ms = ((yyvsp[-3].il) << 16) | ((yyvsp[-2].il) & 0xffff); 3676 (yyvsp[-5].fixver)->file_version_ls = ((yyvsp[-1].il) << 16) | ((yyvsp[0].il) & 0xffff); 3677 (yyval.fixver) = (yyvsp[-5].fixver); 3678 } 3679 #line 3680 "rcparse.c" /* yacc.c:1646 */ 3680 break; 3681 3682 case 190: 3683 #line 1434 "rcparse.y" /* yacc.c:1646 */ 3684 { 3685 (yyvsp[-5].fixver)->product_version_ms = ((yyvsp[-3].il) << 16) | ((yyvsp[-2].il) & 0xffff); 3686 (yyvsp[-5].fixver)->product_version_ls = ((yyvsp[-1].il) << 16) | ((yyvsp[0].il) & 0xffff); 3687 (yyval.fixver) = (yyvsp[-5].fixver); 3688 } 3689 #line 3690 "rcparse.c" /* yacc.c:1646 */ 3690 break; 3691 3692 case 191: 3693 #line 1440 "rcparse.y" /* yacc.c:1646 */ 3694 { 3695 (yyvsp[-2].fixver)->file_flags_mask = (yyvsp[0].il); 3696 (yyval.fixver) = (yyvsp[-2].fixver); 3697 } 3698 #line 3699 "rcparse.c" /* yacc.c:1646 */ 3699 break; 3700 3701 case 192: 3702 #line 1445 "rcparse.y" /* yacc.c:1646 */ 3703 { 3704 (yyvsp[-2].fixver)->file_flags = (yyvsp[0].il); 3705 (yyval.fixver) = (yyvsp[-2].fixver); 3706 } 3707 #line 3708 "rcparse.c" /* yacc.c:1646 */ 3708 break; 3709 3710 case 193: 3711 #line 1450 "rcparse.y" /* yacc.c:1646 */ 3712 { 3713 (yyvsp[-2].fixver)->file_os = (yyvsp[0].il); 3714 (yyval.fixver) = (yyvsp[-2].fixver); 3715 } 3716 #line 3717 "rcparse.c" /* yacc.c:1646 */ 3717 break; 3718 3719 case 194: 3720 #line 1455 "rcparse.y" /* yacc.c:1646 */ 3721 { 3722 (yyvsp[-2].fixver)->file_type = (yyvsp[0].il); 3723 (yyval.fixver) = (yyvsp[-2].fixver); 3724 } 3725 #line 3726 "rcparse.c" /* yacc.c:1646 */ 3726 break; 3727 3728 case 195: 3729 #line 1460 "rcparse.y" /* yacc.c:1646 */ 3730 { 3731 (yyvsp[-2].fixver)->file_subtype = (yyvsp[0].il); 3732 (yyval.fixver) = (yyvsp[-2].fixver); 3733 } 3734 #line 3735 "rcparse.c" /* yacc.c:1646 */ 3735 break; 3736 3737 case 196: 3738 #line 1474 "rcparse.y" /* yacc.c:1646 */ 3739 { 3740 (yyval.verinfo) = NULL; 3741 } 3742 #line 3743 "rcparse.c" /* yacc.c:1646 */ 3743 break; 3744 3745 case 197: 3746 #line 1478 "rcparse.y" /* yacc.c:1646 */ 3747 { 3748 (yyval.verinfo) = append_ver_stringfileinfo ((yyvsp[-4].verinfo), (yyvsp[-1].verstringtable)); 3749 } 3750 #line 3751 "rcparse.c" /* yacc.c:1646 */ 3751 break; 3752 3753 case 198: 3754 #line 1482 "rcparse.y" /* yacc.c:1646 */ 3755 { 3756 (yyval.verinfo) = append_ver_varfileinfo ((yyvsp[-6].verinfo), (yyvsp[-2].uni), (yyvsp[-1].vervar)); 3757 } 3758 #line 3759 "rcparse.c" /* yacc.c:1646 */ 3759 break; 3760 3761 case 199: 3762 #line 1489 "rcparse.y" /* yacc.c:1646 */ 3763 { 3764 (yyval.verstringtable) = NULL; 3765 } 3766 #line 3767 "rcparse.c" /* yacc.c:1646 */ 3767 break; 3768 3769 case 200: 3770 #line 1493 "rcparse.y" /* yacc.c:1646 */ 3771 { 3772 (yyval.verstringtable) = append_ver_stringtable ((yyvsp[-4].verstringtable), (yyvsp[-3].s), (yyvsp[-1].verstring)); 3773 } 3774 #line 3775 "rcparse.c" /* yacc.c:1646 */ 3775 break; 3776 3777 case 201: 3778 #line 1500 "rcparse.y" /* yacc.c:1646 */ 3779 { 3780 (yyval.verstring) = NULL; 3781 } 3782 #line 3783 "rcparse.c" /* yacc.c:1646 */ 3783 break; 3784 3785 case 202: 3786 #line 1504 "rcparse.y" /* yacc.c:1646 */ 3787 { 3788 (yyval.verstring) = append_verval ((yyvsp[-4].verstring), (yyvsp[-2].uni), (yyvsp[0].uni)); 3789 } 3790 #line 3791 "rcparse.c" /* yacc.c:1646 */ 3791 break; 3792 3793 case 203: 3794 #line 1511 "rcparse.y" /* yacc.c:1646 */ 3795 { 3796 (yyval.vervar) = NULL; 3797 } 3798 #line 3799 "rcparse.c" /* yacc.c:1646 */ 3799 break; 3800 3801 case 204: 3802 #line 1515 "rcparse.y" /* yacc.c:1646 */ 3803 { 3804 (yyval.vervar) = append_vertrans ((yyvsp[-2].vervar), (yyvsp[-1].il), (yyvsp[0].il)); 3805 } 3806 #line 3807 "rcparse.c" /* yacc.c:1646 */ 3807 break; 3808 3809 case 205: 3810 #line 1524 "rcparse.y" /* yacc.c:1646 */ 3811 { 3812 (yyval.id).named = 0; 3813 (yyval.id).u.id = (yyvsp[0].il); 3814 } 3815 #line 3816 "rcparse.c" /* yacc.c:1646 */ 3816 break; 3817 3818 case 206: 3819 #line 1529 "rcparse.y" /* yacc.c:1646 */ 3820 { 3821 res_unistring_to_id (&(yyval.id), (yyvsp[0].uni)); 3822 } 3823 #line 3824 "rcparse.c" /* yacc.c:1646 */ 3824 break; 3825 3826 case 207: 3827 #line 1538 "rcparse.y" /* yacc.c:1646 */ 3828 { 3829 (yyval.uni) = (yyvsp[0].uni); 3830 } 3831 #line 3832 "rcparse.c" /* yacc.c:1646 */ 3832 break; 3833 3834 case 208: 3835 #line 1542 "rcparse.y" /* yacc.c:1646 */ 3836 { 3837 unichar *h = NULL; 3838 unicode_from_ascii ((rc_uint_type *) NULL, &h, (yyvsp[0].s)); 3839 (yyval.uni) = h; 3840 } 3841 #line 3842 "rcparse.c" /* yacc.c:1646 */ 3842 break; 3843 3844 case 209: 3845 #line 1552 "rcparse.y" /* yacc.c:1646 */ 3846 { 3847 (yyval.id).named = 0; 3848 (yyval.id).u.id = (yyvsp[-1].il); 3849 } 3850 #line 3851 "rcparse.c" /* yacc.c:1646 */ 3851 break; 3852 3853 case 210: 3854 #line 1557 "rcparse.y" /* yacc.c:1646 */ 3855 { 3856 res_unistring_to_id (&(yyval.id), (yyvsp[0].uni)); 3857 } 3858 #line 3859 "rcparse.c" /* yacc.c:1646 */ 3859 break; 3860 3861 case 211: 3862 #line 1561 "rcparse.y" /* yacc.c:1646 */ 3863 { 3864 res_unistring_to_id (&(yyval.id), (yyvsp[-1].uni)); 3865 } 3866 #line 3867 "rcparse.c" /* yacc.c:1646 */ 3867 break; 3868 3869 case 212: 3870 #line 1571 "rcparse.y" /* yacc.c:1646 */ 3871 { 3872 memset (&(yyval.res_info), 0, sizeof (rc_res_res_info)); 3873 (yyval.res_info).language = language; 3874 /* FIXME: Is this the right default? */ 3875 (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE; 3876 } 3877 #line 3878 "rcparse.c" /* yacc.c:1646 */ 3878 break; 3879 3880 case 213: 3881 #line 1578 "rcparse.y" /* yacc.c:1646 */ 3882 { 3883 (yyval.res_info) = (yyvsp[-1].res_info); 3884 (yyval.res_info).memflags |= (yyvsp[0].memflags).on; 3885 (yyval.res_info).memflags &=~ (yyvsp[0].memflags).off; 3886 } 3887 #line 3888 "rcparse.c" /* yacc.c:1646 */ 3888 break; 3889 3890 case 214: 3891 #line 1584 "rcparse.y" /* yacc.c:1646 */ 3892 { 3893 (yyval.res_info) = (yyvsp[-2].res_info); 3894 (yyval.res_info).characteristics = (yyvsp[0].il); 3895 } 3896 #line 3897 "rcparse.c" /* yacc.c:1646 */ 3897 break; 3898 3899 case 215: 3900 #line 1589 "rcparse.y" /* yacc.c:1646 */ 3901 { 3902 (yyval.res_info) = (yyvsp[-3].res_info); 3903 (yyval.res_info).language = (yyvsp[-1].il) | ((yyvsp[0].il) << SUBLANG_SHIFT); 3904 } 3905 #line 3906 "rcparse.c" /* yacc.c:1646 */ 3906 break; 3907 3908 case 216: 3909 #line 1594 "rcparse.y" /* yacc.c:1646 */ 3910 { 3911 (yyval.res_info) = (yyvsp[-2].res_info); 3912 (yyval.res_info).version = (yyvsp[0].il); 3913 } 3914 #line 3915 "rcparse.c" /* yacc.c:1646 */ 3915 break; 3916 3917 case 217: 3918 #line 1604 "rcparse.y" /* yacc.c:1646 */ 3919 { 3920 memset (&(yyval.res_info), 0, sizeof (rc_res_res_info)); 3921 (yyval.res_info).language = language; 3922 (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_DISCARDABLE; 3923 } 3924 #line 3925 "rcparse.c" /* yacc.c:1646 */ 3925 break; 3926 3927 case 218: 3928 #line 1610 "rcparse.y" /* yacc.c:1646 */ 3929 { 3930 (yyval.res_info) = (yyvsp[-1].res_info); 3931 (yyval.res_info).memflags |= (yyvsp[0].memflags).on; 3932 (yyval.res_info).memflags &=~ (yyvsp[0].memflags).off; 3933 } 3934 #line 3935 "rcparse.c" /* yacc.c:1646 */ 3935 break; 3936 3937 case 219: 3938 #line 1621 "rcparse.y" /* yacc.c:1646 */ 3939 { 3940 memset (&(yyval.res_info), 0, sizeof (rc_res_res_info)); 3941 (yyval.res_info).language = language; 3942 (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE; 3943 } 3944 #line 3945 "rcparse.c" /* yacc.c:1646 */ 3945 break; 3946 3947 case 220: 3948 #line 1627 "rcparse.y" /* yacc.c:1646 */ 3949 { 3950 (yyval.res_info) = (yyvsp[-1].res_info); 3951 (yyval.res_info).memflags |= (yyvsp[0].memflags).on; 3952 (yyval.res_info).memflags &=~ (yyvsp[0].memflags).off; 3953 } 3954 #line 3955 "rcparse.c" /* yacc.c:1646 */ 3955 break; 3956 3957 case 221: 3958 #line 1639 "rcparse.y" /* yacc.c:1646 */ 3959 { 3960 (yyval.memflags).on = MEMFLAG_MOVEABLE; 3961 (yyval.memflags).off = 0; 3962 } 3963 #line 3964 "rcparse.c" /* yacc.c:1646 */ 3964 break; 3965 3966 case 222: 3967 #line 1644 "rcparse.y" /* yacc.c:1646 */ 3968 { 3969 (yyval.memflags).on = 0; 3970 (yyval.memflags).off = MEMFLAG_MOVEABLE; 3971 } 3972 #line 3973 "rcparse.c" /* yacc.c:1646 */ 3973 break; 3974 3975 case 223: 3976 #line 1649 "rcparse.y" /* yacc.c:1646 */ 3977 { 3978 (yyval.memflags).on = MEMFLAG_PURE; 3979 (yyval.memflags).off = 0; 3980 } 3981 #line 3982 "rcparse.c" /* yacc.c:1646 */ 3982 break; 3983 3984 case 224: 3985 #line 1654 "rcparse.y" /* yacc.c:1646 */ 3986 { 3987 (yyval.memflags).on = 0; 3988 (yyval.memflags).off = MEMFLAG_PURE; 3989 } 3990 #line 3991 "rcparse.c" /* yacc.c:1646 */ 3991 break; 3992 3993 case 225: 3994 #line 1659 "rcparse.y" /* yacc.c:1646 */ 3995 { 3996 (yyval.memflags).on = MEMFLAG_PRELOAD; 3997 (yyval.memflags).off = 0; 3998 } 3999 #line 4000 "rcparse.c" /* yacc.c:1646 */ 4000 break; 4001 4002 case 226: 4003 #line 1664 "rcparse.y" /* yacc.c:1646 */ 4004 { 4005 (yyval.memflags).on = 0; 4006 (yyval.memflags).off = MEMFLAG_PRELOAD; 4007 } 4008 #line 4009 "rcparse.c" /* yacc.c:1646 */ 4009 break; 4010 4011 case 227: 4012 #line 1669 "rcparse.y" /* yacc.c:1646 */ 4013 { 4014 (yyval.memflags).on = MEMFLAG_DISCARDABLE; 4015 (yyval.memflags).off = 0; 4016 } 4017 #line 4018 "rcparse.c" /* yacc.c:1646 */ 4018 break; 4019 4020 case 228: 4021 #line 1679 "rcparse.y" /* yacc.c:1646 */ 4022 { 4023 (yyval.s) = (yyvsp[0].s); 4024 } 4025 #line 4026 "rcparse.c" /* yacc.c:1646 */ 4026 break; 4027 4028 case 229: 4029 #line 1683 "rcparse.y" /* yacc.c:1646 */ 4030 { 4031 (yyval.s) = (yyvsp[0].s); 4032 } 4033 #line 4034 "rcparse.c" /* yacc.c:1646 */ 4034 break; 4035 4036 case 230: 4037 #line 1691 "rcparse.y" /* yacc.c:1646 */ 4038 { 4039 (yyval.uni) = (yyvsp[0].uni); 4040 } 4041 #line 4042 "rcparse.c" /* yacc.c:1646 */ 4042 break; 4043 4044 case 231: 4045 #line 1696 "rcparse.y" /* yacc.c:1646 */ 4046 { 4047 rc_uint_type l1 = unichar_len ((yyvsp[-1].uni)); 4048 rc_uint_type l2 = unichar_len ((yyvsp[0].uni)); 4049 unichar *h = (unichar *) res_alloc ((l1 + l2 + 1) * sizeof (unichar)); 4050 if (l1 != 0) 4051 memcpy (h, (yyvsp[-1].uni), l1 * sizeof (unichar)); 4052 if (l2 != 0) 4053 memcpy (h + l1, (yyvsp[0].uni), l2 * sizeof (unichar)); 4054 h[l1 + l2] = 0; 4055 (yyval.uni) = h; 4056 } 4057 #line 4058 "rcparse.c" /* yacc.c:1646 */ 4058 break; 4059 4060 case 232: 4061 #line 1711 "rcparse.y" /* yacc.c:1646 */ 4062 { 4063 (yyval.uni) = unichar_dup ((yyvsp[0].uni)); 4064 } 4065 #line 4066 "rcparse.c" /* yacc.c:1646 */ 4066 break; 4067 4068 case 233: 4069 #line 1715 "rcparse.y" /* yacc.c:1646 */ 4070 { 4071 unichar *h = NULL; 4072 unicode_from_ascii ((rc_uint_type *) NULL, &h, (yyvsp[0].s)); 4073 (yyval.uni) = h; 4074 } 4075 #line 4076 "rcparse.c" /* yacc.c:1646 */ 4076 break; 4077 4078 case 234: 4079 #line 1724 "rcparse.y" /* yacc.c:1646 */ 4080 { 4081 (yyval.suni) = (yyvsp[0].suni); 4082 } 4083 #line 4084 "rcparse.c" /* yacc.c:1646 */ 4084 break; 4085 4086 case 235: 4087 #line 1728 "rcparse.y" /* yacc.c:1646 */ 4088 { 4089 unichar *h = NULL; 4090 rc_uint_type l = 0; 4091 unicode_from_ascii_len (&l, &h, (yyvsp[0].ss).s, (yyvsp[0].ss).length); 4092 (yyval.suni).s = h; 4093 (yyval.suni).length = l; 4094 } 4095 #line 4096 "rcparse.c" /* yacc.c:1646 */ 4096 break; 4097 4098 case 236: 4099 #line 1740 "rcparse.y" /* yacc.c:1646 */ 4100 { 4101 (yyval.suni) = (yyvsp[0].suni); 4102 } 4103 #line 4104 "rcparse.c" /* yacc.c:1646 */ 4104 break; 4105 4106 case 237: 4107 #line 1745 "rcparse.y" /* yacc.c:1646 */ 4108 { 4109 rc_uint_type l1 = (yyvsp[-1].suni).length; 4110 rc_uint_type l2 = (yyvsp[0].suni).length; 4111 unichar *h = (unichar *) res_alloc ((l1 + l2 + 1) * sizeof (unichar)); 4112 if (l1 != 0) 4113 memcpy (h, (yyvsp[-1].suni).s, l1 * sizeof (unichar)); 4114 if (l2 != 0) 4115 memcpy (h + l1, (yyvsp[0].suni).s, l2 * sizeof (unichar)); 4116 h[l1 + l2] = 0; 4117 (yyval.suni).length = l1 + l2; 4118 (yyval.suni).s = h; 4119 } 4120 #line 4121 "rcparse.c" /* yacc.c:1646 */ 4121 break; 4122 4123 case 238: 4124 #line 1761 "rcparse.y" /* yacc.c:1646 */ 4125 { 4126 (yyval.ss) = (yyvsp[0].ss); 4127 } 4128 #line 4129 "rcparse.c" /* yacc.c:1646 */ 4129 break; 4130 4131 case 239: 4132 #line 1765 "rcparse.y" /* yacc.c:1646 */ 4133 { 4134 rc_uint_type l = (yyvsp[-1].ss).length + (yyvsp[0].ss).length; 4135 char *h = (char *) res_alloc (l); 4136 memcpy (h, (yyvsp[-1].ss).s, (yyvsp[-1].ss).length); 4137 memcpy (h + (yyvsp[-1].ss).length, (yyvsp[0].ss).s, (yyvsp[0].ss).length); 4138 (yyval.ss).s = h; 4139 (yyval.ss).length = l; 4140 } 4141 #line 4142 "rcparse.c" /* yacc.c:1646 */ 4142 break; 4143 4144 case 240: 4145 #line 1777 "rcparse.y" /* yacc.c:1646 */ 4146 { 4147 (yyval.suni) = (yyvsp[0].suni); 4148 } 4149 #line 4150 "rcparse.c" /* yacc.c:1646 */ 4150 break; 4151 4152 case 241: 4153 #line 1781 "rcparse.y" /* yacc.c:1646 */ 4154 { 4155 rc_uint_type l = (yyvsp[-1].suni).length + (yyvsp[0].suni).length; 4156 unichar *h = (unichar *) res_alloc (l * sizeof (unichar)); 4157 memcpy (h, (yyvsp[-1].suni).s, (yyvsp[-1].suni).length * sizeof (unichar)); 4158 memcpy (h + (yyvsp[-1].suni).length, (yyvsp[0].suni).s, (yyvsp[0].suni).length * sizeof (unichar)); 4159 (yyval.suni).s = h; 4160 (yyval.suni).length = l; 4161 } 4162 #line 4163 "rcparse.c" /* yacc.c:1646 */ 4163 break; 4164 4165 case 242: 4166 #line 1803 "rcparse.y" /* yacc.c:1646 */ 4167 { 4168 style |= (yyvsp[0].il); 4169 } 4170 #line 4171 "rcparse.c" /* yacc.c:1646 */ 4171 break; 4172 4173 case 243: 4174 #line 1807 "rcparse.y" /* yacc.c:1646 */ 4175 { 4176 style &=~ (yyvsp[0].il); 4177 } 4178 #line 4179 "rcparse.c" /* yacc.c:1646 */ 4179 break; 4180 4181 case 244: 4182 #line 1811 "rcparse.y" /* yacc.c:1646 */ 4183 { 4184 style |= (yyvsp[0].il); 4185 } 4186 #line 4187 "rcparse.c" /* yacc.c:1646 */ 4187 break; 4188 4189 case 245: 4190 #line 1815 "rcparse.y" /* yacc.c:1646 */ 4191 { 4192 style &=~ (yyvsp[0].il); 4193 } 4194 #line 4195 "rcparse.c" /* yacc.c:1646 */ 4195 break; 4196 4197 case 246: 4198 #line 1822 "rcparse.y" /* yacc.c:1646 */ 4199 { 4200 (yyval.il) = (yyvsp[0].i).val; 4201 } 4202 #line 4203 "rcparse.c" /* yacc.c:1646 */ 4203 break; 4204 4205 case 247: 4206 #line 1826 "rcparse.y" /* yacc.c:1646 */ 4207 { 4208 (yyval.il) = (yyvsp[-1].il); 4209 } 4210 #line 4211 "rcparse.c" /* yacc.c:1646 */ 4211 break; 4212 4213 case 248: 4214 #line 1835 "rcparse.y" /* yacc.c:1646 */ 4215 { 4216 (yyval.il) = 0; 4217 } 4218 #line 4219 "rcparse.c" /* yacc.c:1646 */ 4219 break; 4220 4221 case 249: 4222 #line 1839 "rcparse.y" /* yacc.c:1646 */ 4223 { 4224 (yyval.il) = (yyvsp[0].il); 4225 } 4226 #line 4227 "rcparse.c" /* yacc.c:1646 */ 4227 break; 4228 4229 case 250: 4230 #line 1848 "rcparse.y" /* yacc.c:1646 */ 4231 { 4232 (yyval.il) = (yyvsp[0].il); 4233 } 4234 #line 4235 "rcparse.c" /* yacc.c:1646 */ 4235 break; 4236 4237 case 251: 4238 #line 1857 "rcparse.y" /* yacc.c:1646 */ 4239 { 4240 (yyval.il) = (yyvsp[0].i).val; 4241 } 4242 #line 4243 "rcparse.c" /* yacc.c:1646 */ 4243 break; 4244 4245 case 252: 4246 #line 1866 "rcparse.y" /* yacc.c:1646 */ 4247 { 4248 (yyval.i) = (yyvsp[0].i); 4249 } 4250 #line 4251 "rcparse.c" /* yacc.c:1646 */ 4251 break; 4252 4253 case 253: 4254 #line 1870 "rcparse.y" /* yacc.c:1646 */ 4255 { 4256 (yyval.i) = (yyvsp[-1].i); 4257 } 4258 #line 4259 "rcparse.c" /* yacc.c:1646 */ 4259 break; 4260 4261 case 254: 4262 #line 1874 "rcparse.y" /* yacc.c:1646 */ 4263 { 4264 (yyval.i).val = ~ (yyvsp[0].i).val; 4265 (yyval.i).dword = (yyvsp[0].i).dword; 4266 } 4267 #line 4268 "rcparse.c" /* yacc.c:1646 */ 4268 break; 4269 4270 case 255: 4271 #line 1879 "rcparse.y" /* yacc.c:1646 */ 4272 { 4273 (yyval.i).val = - (yyvsp[0].i).val; 4274 (yyval.i).dword = (yyvsp[0].i).dword; 4275 } 4276 #line 4277 "rcparse.c" /* yacc.c:1646 */ 4277 break; 4278 4279 case 256: 4280 #line 1884 "rcparse.y" /* yacc.c:1646 */ 4281 { 4282 (yyval.i).val = (yyvsp[-2].i).val * (yyvsp[0].i).val; 4283 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4284 } 4285 #line 4286 "rcparse.c" /* yacc.c:1646 */ 4286 break; 4287 4288 case 257: 4289 #line 1889 "rcparse.y" /* yacc.c:1646 */ 4290 { 4291 (yyval.i).val = (yyvsp[-2].i).val / ((yyvsp[0].i).val ? (yyvsp[0].i).val : 1); 4292 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4293 } 4294 #line 4295 "rcparse.c" /* yacc.c:1646 */ 4295 break; 4296 4297 case 258: 4298 #line 1894 "rcparse.y" /* yacc.c:1646 */ 4299 { 4300 (yyval.i).val = (yyvsp[-2].i).val % ((yyvsp[0].i).val ? (yyvsp[0].i).val : 1); 4301 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4302 } 4303 #line 4304 "rcparse.c" /* yacc.c:1646 */ 4304 break; 4305 4306 case 259: 4307 #line 1899 "rcparse.y" /* yacc.c:1646 */ 4308 { 4309 (yyval.i).val = (yyvsp[-2].i).val + (yyvsp[0].i).val; 4310 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4311 } 4312 #line 4313 "rcparse.c" /* yacc.c:1646 */ 4313 break; 4314 4315 case 260: 4316 #line 1904 "rcparse.y" /* yacc.c:1646 */ 4317 { 4318 (yyval.i).val = (yyvsp[-2].i).val - (yyvsp[0].i).val; 4319 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4320 } 4321 #line 4322 "rcparse.c" /* yacc.c:1646 */ 4322 break; 4323 4324 case 261: 4325 #line 1909 "rcparse.y" /* yacc.c:1646 */ 4326 { 4327 (yyval.i).val = (yyvsp[-2].i).val & (yyvsp[0].i).val; 4328 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4329 } 4330 #line 4331 "rcparse.c" /* yacc.c:1646 */ 4331 break; 4332 4333 case 262: 4334 #line 1914 "rcparse.y" /* yacc.c:1646 */ 4335 { 4336 (yyval.i).val = (yyvsp[-2].i).val ^ (yyvsp[0].i).val; 4337 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4338 } 4339 #line 4340 "rcparse.c" /* yacc.c:1646 */ 4340 break; 4341 4342 case 263: 4343 #line 1919 "rcparse.y" /* yacc.c:1646 */ 4344 { 4345 (yyval.i).val = (yyvsp[-2].i).val | (yyvsp[0].i).val; 4346 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4347 } 4348 #line 4349 "rcparse.c" /* yacc.c:1646 */ 4349 break; 4350 4351 case 264: 4352 #line 1930 "rcparse.y" /* yacc.c:1646 */ 4353 { 4354 (yyval.il) = (yyvsp[0].il); 4355 } 4356 #line 4357 "rcparse.c" /* yacc.c:1646 */ 4357 break; 4358 4359 case 265: 4360 #line 1939 "rcparse.y" /* yacc.c:1646 */ 4361 { 4362 (yyval.il) = (yyvsp[0].i).val; 4363 } 4364 #line 4365 "rcparse.c" /* yacc.c:1646 */ 4365 break; 4366 4367 case 266: 4368 #line 1950 "rcparse.y" /* yacc.c:1646 */ 4369 { 4370 (yyval.i) = (yyvsp[0].i); 4371 } 4372 #line 4373 "rcparse.c" /* yacc.c:1646 */ 4373 break; 4374 4375 case 267: 4376 #line 1954 "rcparse.y" /* yacc.c:1646 */ 4377 { 4378 (yyval.i) = (yyvsp[-1].i); 4379 } 4380 #line 4381 "rcparse.c" /* yacc.c:1646 */ 4381 break; 4382 4383 case 268: 4384 #line 1958 "rcparse.y" /* yacc.c:1646 */ 4385 { 4386 (yyval.i).val = ~ (yyvsp[0].i).val; 4387 (yyval.i).dword = (yyvsp[0].i).dword; 4388 } 4389 #line 4390 "rcparse.c" /* yacc.c:1646 */ 4390 break; 4391 4392 case 269: 4393 #line 1963 "rcparse.y" /* yacc.c:1646 */ 4394 { 4395 (yyval.i).val = (yyvsp[-2].i).val * (yyvsp[0].i).val; 4396 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4397 } 4398 #line 4399 "rcparse.c" /* yacc.c:1646 */ 4399 break; 4400 4401 case 270: 4402 #line 1968 "rcparse.y" /* yacc.c:1646 */ 4403 { 4404 (yyval.i).val = (yyvsp[-2].i).val / ((yyvsp[0].i).val ? (yyvsp[0].i).val : 1); 4405 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4406 } 4407 #line 4408 "rcparse.c" /* yacc.c:1646 */ 4408 break; 4409 4410 case 271: 4411 #line 1973 "rcparse.y" /* yacc.c:1646 */ 4412 { 4413 /* PR 17512: file: 89105a25. */ 4414 (yyval.i).val = (yyvsp[-2].i).val % ((yyvsp[0].i).val ? (yyvsp[0].i).val : 1); 4415 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4416 } 4417 #line 4418 "rcparse.c" /* yacc.c:1646 */ 4418 break; 4419 4420 case 272: 4421 #line 1979 "rcparse.y" /* yacc.c:1646 */ 4422 { 4423 (yyval.i).val = (yyvsp[-2].i).val + (yyvsp[0].i).val; 4424 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4425 } 4426 #line 4427 "rcparse.c" /* yacc.c:1646 */ 4427 break; 4428 4429 case 273: 4430 #line 1984 "rcparse.y" /* yacc.c:1646 */ 4431 { 4432 (yyval.i).val = (yyvsp[-2].i).val - (yyvsp[0].i).val; 4433 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4434 } 4435 #line 4436 "rcparse.c" /* yacc.c:1646 */ 4436 break; 4437 4438 case 274: 4439 #line 1989 "rcparse.y" /* yacc.c:1646 */ 4440 { 4441 (yyval.i).val = (yyvsp[-2].i).val & (yyvsp[0].i).val; 4442 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4443 } 4444 #line 4445 "rcparse.c" /* yacc.c:1646 */ 4445 break; 4446 4447 case 275: 4448 #line 1994 "rcparse.y" /* yacc.c:1646 */ 4449 { 4450 (yyval.i).val = (yyvsp[-2].i).val ^ (yyvsp[0].i).val; 4451 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4452 } 4453 #line 4454 "rcparse.c" /* yacc.c:1646 */ 4454 break; 4455 4456 case 276: 4457 #line 1999 "rcparse.y" /* yacc.c:1646 */ 4458 { 4459 (yyval.i).val = (yyvsp[-2].i).val | (yyvsp[0].i).val; 4460 (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword; 4461 } 4462 #line 4463 "rcparse.c" /* yacc.c:1646 */ 4463 break; 4464 4465 4466 #line 4467 "rcparse.c" /* yacc.c:1646 */ 4467 default: break; 4468 } 4469 /* User semantic actions sometimes alter yychar, and that requires 4470 that yytoken be updated with the new translation. We take the 4471 approach of translating immediately before every use of yytoken. 4472 One alternative is translating here after every semantic action, 4473 but that translation would be missed if the semantic action invokes 4474 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or 4475 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an 4476 incorrect destructor might then be invoked immediately. In the 4477 case of YYERROR or YYBACKUP, subsequent parser actions might lead 4478 to an incorrect destructor call or verbose syntax error message 4479 before the lookahead is translated. */ 4480 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 4481 4482 YYPOPSTACK (yylen); 4483 yylen = 0; 4484 YY_STACK_PRINT (yyss, yyssp); 4485 4486 *++yyvsp = yyval; 4487 4488 /* Now 'shift' the result of the reduction. Determine what state 4489 that goes to, based on the state we popped back to and the rule 4490 number reduced by. */ 4491 4492 yyn = yyr1[yyn]; 4493 4494 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 4495 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 4496 yystate = yytable[yystate]; 4497 else 4498 yystate = yydefgoto[yyn - YYNTOKENS]; 4499 4500 goto yynewstate; 4501 4502 4503 /*--------------------------------------. 4504 | yyerrlab -- here on detecting error. | 4505 `--------------------------------------*/ 4506 yyerrlab: 4507 /* Make sure we have latest lookahead translation. See comments at 4508 user semantic actions for why this is necessary. */ 4509 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); 4510 4511 /* If not already recovering from an error, report this error. */ 4512 if (!yyerrstatus) 4513 { 4514 ++yynerrs; 4515 #if ! YYERROR_VERBOSE 4516 yyerror (YY_("syntax error")); 4517 #else 4518 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 4519 yyssp, yytoken) 4520 { 4521 char const *yymsgp = YY_("syntax error"); 4522 int yysyntax_error_status; 4523 yysyntax_error_status = YYSYNTAX_ERROR; 4524 if (yysyntax_error_status == 0) 4525 yymsgp = yymsg; 4526 else if (yysyntax_error_status == 1) 4527 { 4528 if (yymsg != yymsgbuf) 4529 YYSTACK_FREE (yymsg); 4530 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); 4531 if (!yymsg) 4532 { 4533 yymsg = yymsgbuf; 4534 yymsg_alloc = sizeof yymsgbuf; 4535 yysyntax_error_status = 2; 4536 } 4537 else 4538 { 4539 yysyntax_error_status = YYSYNTAX_ERROR; 4540 yymsgp = yymsg; 4541 } 4542 } 4543 yyerror (yymsgp); 4544 if (yysyntax_error_status == 2) 4545 goto yyexhaustedlab; 4546 } 4547 # undef YYSYNTAX_ERROR 4548 #endif 4549 } 4550 4551 4552 4553 if (yyerrstatus == 3) 4554 { 4555 /* If just tried and failed to reuse lookahead token after an 4556 error, discard it. */ 4557 4558 if (yychar <= YYEOF) 4559 { 4560 /* Return failure if at end of input. */ 4561 if (yychar == YYEOF) 4562 YYABORT; 4563 } 4564 else 4565 { 4566 yydestruct ("Error: discarding", 4567 yytoken, &yylval); 4568 yychar = YYEMPTY; 4569 } 4570 } 4571 4572 /* Else will try to reuse lookahead token after shifting the error 4573 token. */ 4574 goto yyerrlab1; 4575 4576 4577 /*---------------------------------------------------. 4578 | yyerrorlab -- error raised explicitly by YYERROR. | 4579 `---------------------------------------------------*/ 4580 yyerrorlab: 4581 4582 /* Pacify compilers like GCC when the user code never invokes 4583 YYERROR and the label yyerrorlab therefore never appears in user 4584 code. */ 4585 if (/*CONSTCOND*/ 0) 4586 goto yyerrorlab; 4587 4588 /* Do not reclaim the symbols of the rule whose action triggered 4589 this YYERROR. */ 4590 YYPOPSTACK (yylen); 4591 yylen = 0; 4592 YY_STACK_PRINT (yyss, yyssp); 4593 yystate = *yyssp; 4594 goto yyerrlab1; 4595 4596 4597 /*-------------------------------------------------------------. 4598 | yyerrlab1 -- common code for both syntax error and YYERROR. | 4599 `-------------------------------------------------------------*/ 4600 yyerrlab1: 4601 yyerrstatus = 3; /* Each real token shifted decrements this. */ 4602 4603 for (;;) 4604 { 4605 yyn = yypact[yystate]; 4606 if (!yypact_value_is_default (yyn)) 4607 { 4608 yyn += YYTERROR; 4609 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 4610 { 4611 yyn = yytable[yyn]; 4612 if (0 < yyn) 4613 break; 4614 } 4615 } 4616 4617 /* Pop the current state because it cannot handle the error token. */ 4618 if (yyssp == yyss) 4619 YYABORT; 4620 4621 4622 yydestruct ("Error: popping", 4623 yystos[yystate], yyvsp); 4624 YYPOPSTACK (1); 4625 yystate = *yyssp; 4626 YY_STACK_PRINT (yyss, yyssp); 4627 } 4628 4629 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4630 *++yyvsp = yylval; 4631 YY_IGNORE_MAYBE_UNINITIALIZED_END 4632 4633 4634 /* Shift the error token. */ 4635 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 4636 4637 yystate = yyn; 4638 goto yynewstate; 4639 4640 4641 /*-------------------------------------. 4642 | yyacceptlab -- YYACCEPT comes here. | 4643 `-------------------------------------*/ 4644 yyacceptlab: 4645 yyresult = 0; 4646 goto yyreturn; 4647 4648 /*-----------------------------------. 4649 | yyabortlab -- YYABORT comes here. | 4650 `-----------------------------------*/ 4651 yyabortlab: 4652 yyresult = 1; 4653 goto yyreturn; 4654 4655 #if !defined yyoverflow || YYERROR_VERBOSE 4656 /*-------------------------------------------------. 4657 | yyexhaustedlab -- memory exhaustion comes here. | 4658 `-------------------------------------------------*/ 4659 yyexhaustedlab: 4660 yyerror (YY_("memory exhausted")); 4661 yyresult = 2; 4662 /* Fall through. */ 4663 #endif 4664 4665 yyreturn: 4666 if (yychar != YYEMPTY) 4667 { 4668 /* Make sure we have latest lookahead translation. See comments at 4669 user semantic actions for why this is necessary. */ 4670 yytoken = YYTRANSLATE (yychar); 4671 yydestruct ("Cleanup: discarding lookahead", 4672 yytoken, &yylval); 4673 } 4674 /* Do not reclaim the symbols of the rule whose action triggered 4675 this YYABORT or YYACCEPT. */ 4676 YYPOPSTACK (yylen); 4677 YY_STACK_PRINT (yyss, yyssp); 4678 while (yyssp != yyss) 4679 { 4680 yydestruct ("Cleanup: popping", 4681 yystos[*yyssp], yyvsp); 4682 YYPOPSTACK (1); 4683 } 4684 #ifndef yyoverflow 4685 if (yyss != yyssa) 4686 YYSTACK_FREE (yyss); 4687 #endif 4688 #if YYERROR_VERBOSE 4689 if (yymsg != yymsgbuf) 4690 YYSTACK_FREE (yymsg); 4691 #endif 4692 return yyresult; 4693 } 4694 #line 2005 "rcparse.y" /* yacc.c:1906 */ 4695 4696 4697 /* Set the language from the command line. */ 4698 4699 void 4700 rcparse_set_language (int lang) 4701 { 4702 language = lang; 4703 } 4704