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