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