diff options
Diffstat (limited to 'contrib/binutils/binutils/rcparse.c')
-rw-r--r-- | contrib/binutils/binutils/rcparse.c | 3447 |
1 files changed, 0 insertions, 3447 deletions
diff --git a/contrib/binutils/binutils/rcparse.c b/contrib/binutils/binutils/rcparse.c deleted file mode 100644 index 9add78f384b8..000000000000 --- a/contrib/binutils/binutils/rcparse.c +++ /dev/null @@ -1,3447 +0,0 @@ -/* A Bison parser, made from rcparse.y - by GNU bison 1.35. */ - -#define YYBISON 1 /* Identify Bison output. */ - -# define BEG 257 -# define END 258 -# define ACCELERATORS 259 -# define VIRTKEY 260 -# define ASCII 261 -# define NOINVERT 262 -# define SHIFT 263 -# define CONTROL 264 -# define ALT 265 -# define BITMAP 266 -# define CURSOR 267 -# define DIALOG 268 -# define DIALOGEX 269 -# define EXSTYLE 270 -# define CAPTION 271 -# define CLASS 272 -# define STYLE 273 -# define AUTO3STATE 274 -# define AUTOCHECKBOX 275 -# define AUTORADIOBUTTON 276 -# define CHECKBOX 277 -# define COMBOBOX 278 -# define CTEXT 279 -# define DEFPUSHBUTTON 280 -# define EDITTEXT 281 -# define GROUPBOX 282 -# define LISTBOX 283 -# define LTEXT 284 -# define PUSHBOX 285 -# define PUSHBUTTON 286 -# define RADIOBUTTON 287 -# define RTEXT 288 -# define SCROLLBAR 289 -# define STATE3 290 -# define USERBUTTON 291 -# define BEDIT 292 -# define HEDIT 293 -# define IEDIT 294 -# define FONT 295 -# define ICON 296 -# define LANGUAGE 297 -# define CHARACTERISTICS 298 -# define VERSIONK 299 -# define MENU 300 -# define MENUEX 301 -# define MENUITEM 302 -# define SEPARATOR 303 -# define POPUP 304 -# define CHECKED 305 -# define GRAYED 306 -# define HELP 307 -# define INACTIVE 308 -# define MENUBARBREAK 309 -# define MENUBREAK 310 -# define MESSAGETABLE 311 -# define RCDATA 312 -# define STRINGTABLE 313 -# define VERSIONINFO 314 -# define FILEVERSION 315 -# define PRODUCTVERSION 316 -# define FILEFLAGSMASK 317 -# define FILEFLAGS 318 -# define FILEOS 319 -# define FILETYPE 320 -# define FILESUBTYPE 321 -# define BLOCKSTRINGFILEINFO 322 -# define BLOCKVARFILEINFO 323 -# define VALUE 324 -# define BLOCK 325 -# define MOVEABLE 326 -# define FIXED 327 -# define PURE 328 -# define IMPURE 329 -# define PRELOAD 330 -# define LOADONCALL 331 -# define DISCARDABLE 332 -# define NOT 333 -# define QUOTEDSTRING 334 -# define STRING 335 -# define NUMBER 336 -# define SIZEDSTRING 337 -# define IGNORED_TOKEN 338 -# define NEG 339 - -#line 1 "rcparse.y" - /* rcparse.y -- parser for Windows rc files - Copyright 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. - Written by Ian Lance Taylor, Cygnus Support. - - This file is part of GNU Binutils. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -/* This is a parser for Windows rc files. It is based on the parser - by Gunther Ebert <gunther.ebert@ixos-leipzig.de>. */ - -#include "bfd.h" -#include "bucomm.h" -#include "libiberty.h" -#include "windres.h" -#include "safe-ctype.h" - -/* The current language. */ - -static unsigned short language; - -/* The resource information during a sub statement. */ - -static struct res_res_info sub_res_info; - -/* Dialog information. This is built by the nonterminals styles and - controls. */ - -static struct dialog dialog; - -/* This is used when building a style. It is modified by the - nonterminal styleexpr. */ - -static unsigned long style; - -/* These are used when building a control. They are set before using - control_params. */ - -static unsigned long base_style; -static unsigned long default_style; -static unsigned long class; - - -#line 58 "rcparse.y" -#ifndef YYSTYPE -typedef union -{ - struct accelerator acc; - struct accelerator *pacc; - struct dialog_control *dialog_control; - struct menuitem *menuitem; - struct - { - struct rcdata_item *first; - struct rcdata_item *last; - } rcdata; - struct rcdata_item *rcdata_item; - struct stringtable_data *stringtable; - struct fixed_versioninfo *fixver; - struct ver_info *verinfo; - struct ver_stringinfo *verstring; - struct ver_varinfo *vervar; - struct res_id id; - struct res_res_info res_info; - struct - { - unsigned short on; - unsigned short off; - } memflags; - struct - { - unsigned long val; - /* Nonzero if this number was explicitly specified as long. */ - int dword; - } i; - unsigned long il; - unsigned short is; - const char *s; - struct - { - unsigned long length; - const char *s; - } ss; -} yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - - - -#define YYFINAL 483 -#define YYFLAG -32768 -#define YYNTBASE 99 - -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 339 ? yytranslate[x] : 189) - -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const char yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 92, 87, 2, - 97, 98, 90, 88, 95, 89, 2, 91, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 96, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 86, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 85, 2, 93, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 94 -}; - -#if YYDEBUG -static const short yyprhs[] = -{ - 0, 0, 1, 4, 7, 10, 13, 16, 19, 22, - 25, 28, 31, 34, 37, 40, 43, 46, 53, 54, - 57, 60, 65, 67, 69, 71, 75, 78, 80, 82, - 84, 86, 88, 90, 95, 100, 101, 115, 116, 130, - 131, 146, 147, 151, 152, 156, 160, 164, 168, 172, - 178, 185, 193, 202, 206, 210, 215, 219, 220, 223, - 224, 228, 229, 233, 234, 238, 239, 243, 244, 248, - 249, 253, 265, 278, 291, 305, 306, 310, 311, 315, - 316, 320, 321, 325, 326, 330, 337, 346, 357, 369, - 370, 374, 375, 379, 380, 384, 385, 389, 390, 394, - 395, 399, 400, 404, 405, 409, 410, 414, 415, 432, - 440, 450, 461, 462, 464, 467, 468, 472, 473, 477, - 478, 482, 483, 487, 492, 497, 501, 508, 509, 512, - 517, 520, 527, 528, 532, 535, 537, 539, 541, 543, - 545, 547, 554, 555, 558, 561, 565, 571, 574, 580, - 587, 595, 605, 610, 617, 618, 621, 622, 624, 626, - 628, 632, 636, 637, 644, 645, 649, 654, 661, 666, - 673, 674, 681, 688, 692, 696, 700, 704, 708, 709, - 718, 726, 727, 733, 734, 738, 740, 742, 744, 747, - 750, 753, 755, 756, 759, 763, 768, 772, 773, 776, - 777, 780, 782, 784, 786, 788, 790, 792, 794, 796, - 798, 800, 803, 807, 812, 814, 818, 819, 821, 824, - 826, 828, 832, 835, 838, 842, 846, 850, 854, 858, - 862, 866, 870, 873, 875, 877, 881, 884, 888, 892, - 896, 900, 904, 908, 912 -}; -static const short yyrhs[] = -{ - -1, 99, 100, 0, 99, 106, 0, 99, 107, 0, - 99, 108, 0, 99, 146, 0, 99, 147, 0, 99, - 148, 0, 99, 149, 0, 99, 154, 0, 99, 157, - 0, 99, 158, 0, 99, 163, 0, 99, 166, 0, - 99, 167, 0, 99, 84, 0, 172, 5, 175, 3, - 101, 4, 0, 0, 101, 102, 0, 103, 186, 0, - 103, 186, 95, 104, 0, 80, 0, 187, 0, 105, - 0, 104, 95, 105, 0, 104, 105, 0, 6, 0, - 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, - 172, 12, 177, 179, 0, 172, 13, 176, 179, 0, - 0, 172, 14, 177, 112, 187, 183, 183, 183, 109, - 113, 3, 114, 4, 0, 0, 172, 15, 177, 112, - 187, 183, 183, 183, 110, 113, 3, 114, 4, 0, - 0, 172, 15, 177, 112, 187, 183, 183, 183, 183, - 111, 113, 3, 114, 4, 0, 0, 16, 96, 184, - 0, 0, 113, 17, 80, 0, 113, 18, 172, 0, - 113, 19, 180, 0, 113, 16, 184, 0, 113, 18, - 80, 0, 113, 41, 184, 95, 80, 0, 113, 41, - 184, 95, 80, 183, 0, 113, 41, 184, 95, 80, - 183, 183, 0, 113, 41, 184, 95, 80, 183, 183, - 183, 0, 113, 46, 172, 0, 113, 44, 184, 0, - 113, 43, 184, 183, 0, 113, 45, 184, 0, 0, - 114, 115, 0, 0, 20, 116, 137, 0, 0, 21, - 117, 137, 0, 0, 22, 118, 137, 0, 0, 38, - 119, 137, 0, 0, 23, 120, 137, 0, 0, 24, - 121, 137, 0, 10, 138, 184, 183, 140, 183, 183, - 183, 183, 182, 139, 0, 10, 138, 184, 183, 140, - 183, 183, 183, 183, 183, 183, 139, 0, 10, 138, - 184, 95, 80, 140, 183, 183, 183, 183, 182, 139, - 0, 10, 138, 184, 95, 80, 140, 183, 183, 183, - 183, 183, 183, 139, 0, 0, 25, 122, 137, 0, - 0, 26, 123, 137, 0, 0, 27, 124, 137, 0, - 0, 28, 125, 137, 0, 0, 39, 126, 137, 0, - 42, 174, 184, 183, 183, 139, 0, 42, 174, 184, - 183, 183, 183, 183, 139, 0, 42, 174, 184, 183, - 183, 183, 183, 142, 182, 139, 0, 42, 174, 184, - 183, 183, 183, 183, 142, 183, 183, 139, 0, 0, - 40, 127, 137, 0, 0, 29, 128, 137, 0, 0, - 30, 129, 137, 0, 0, 31, 130, 137, 0, 0, - 32, 131, 137, 0, 0, 33, 132, 137, 0, 0, - 34, 133, 137, 0, 0, 35, 134, 137, 0, 0, - 36, 135, 137, 0, 0, 37, 80, 95, 184, 95, - 184, 95, 184, 95, 184, 95, 184, 95, 136, 180, - 182, 0, 138, 184, 183, 183, 183, 183, 139, 0, - 138, 184, 183, 183, 183, 183, 144, 182, 139, 0, - 138, 184, 183, 183, 183, 183, 144, 183, 183, 139, - 0, 0, 80, 0, 80, 95, 0, 0, 3, 159, - 4, 0, 0, 95, 141, 180, 0, 0, 95, 143, - 180, 0, 0, 95, 145, 180, 0, 172, 41, 176, - 179, 0, 172, 42, 176, 179, 0, 43, 184, 183, - 0, 172, 46, 175, 3, 150, 4, 0, 0, 150, - 151, 0, 48, 80, 183, 152, 0, 48, 49, 0, - 50, 80, 152, 3, 150, 4, 0, 0, 152, 95, - 153, 0, 152, 153, 0, 51, 0, 52, 0, 53, - 0, 54, 0, 55, 0, 56, 0, 172, 47, 175, - 3, 155, 4, 0, 0, 155, 156, 0, 48, 80, - 0, 48, 80, 183, 0, 48, 80, 183, 183, 182, - 0, 48, 49, 0, 50, 80, 3, 155, 4, 0, - 50, 80, 183, 3, 155, 4, 0, 50, 80, 183, - 183, 3, 155, 4, 0, 50, 80, 183, 183, 183, - 182, 3, 155, 4, 0, 172, 57, 177, 179, 0, - 172, 58, 175, 3, 159, 4, 0, 0, 160, 161, - 0, 0, 162, 0, 83, 0, 185, 0, 162, 95, - 83, 0, 162, 95, 185, 0, 0, 59, 175, 3, - 164, 165, 4, 0, 0, 165, 184, 80, 0, 165, - 184, 95, 80, 0, 172, 172, 175, 3, 159, 4, - 0, 172, 172, 175, 179, 0, 172, 60, 168, 3, - 169, 4, 0, 0, 168, 61, 184, 183, 183, 183, - 0, 168, 62, 184, 183, 183, 183, 0, 168, 63, - 184, 0, 168, 64, 184, 0, 168, 65, 184, 0, - 168, 66, 184, 0, 168, 67, 184, 0, 0, 169, - 68, 3, 71, 3, 170, 4, 4, 0, 169, 69, - 3, 70, 80, 171, 4, 0, 0, 170, 70, 80, - 95, 80, 0, 0, 171, 183, 183, 0, 187, 0, - 81, 0, 80, 0, 80, 95, 0, 81, 95, 0, - 187, 95, 0, 173, 0, 0, 175, 178, 0, 175, - 44, 184, 0, 175, 43, 184, 183, 0, 175, 45, - 184, 0, 0, 176, 178, 0, 0, 177, 178, 0, - 72, 0, 73, 0, 74, 0, 75, 0, 76, 0, - 77, 0, 78, 0, 80, 0, 81, 0, 181, 0, - 79, 181, 0, 180, 85, 181, 0, 180, 85, 79, - 181, 0, 82, 0, 97, 184, 98, 0, 0, 183, - 0, 95, 184, 0, 185, 0, 82, 0, 97, 185, - 98, 0, 93, 185, 0, 89, 185, 0, 185, 90, - 185, 0, 185, 91, 185, 0, 185, 92, 185, 0, - 185, 88, 185, 0, 185, 89, 185, 0, 185, 87, - 185, 0, 185, 86, 185, 0, 185, 85, 185, 0, - 95, 187, 0, 188, 0, 82, 0, 97, 185, 98, - 0, 93, 185, 0, 188, 90, 185, 0, 188, 91, - 185, 0, 188, 92, 185, 0, 188, 88, 185, 0, - 188, 89, 185, 0, 188, 87, 185, 0, 188, 86, - 185, 0, 188, 85, 185, 0 -}; - -#endif - -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ - 0, 154, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 175, 185, 190, - 210, 216, 227, 249, 258, 263, 268, 274, 279, 284, - 288, 292, 296, 304, 316, 328, 328, 354, 354, 381, - 381, 411, 416, 422, 424, 430, 434, 439, 443, 447, - 460, 475, 490, 505, 509, 513, 517, 523, 525, 535, - 535, 546, 546, 556, 556, 566, 566, 579, 579, 589, - 589, 599, 610, 619, 632, 643, 643, 653, 653, 663, - 663, 673, 673, 683, 683, 696, 701, 707, 713, 719, - 719, 732, 732, 742, 742, 752, 752, 762, 762, 772, - 772, 782, 782, 792, 792, 802, 802, 812, 812, 829, - 842, 853, 864, 869, 873, 879, 884, 892, 892, 898, - 898, 904, 904, 912, 924, 937, 946, 956, 961, 977, - 982, 986, 992, 997, 1001, 1007, 1012, 1016, 1020, 1024, - 1028, 1036, 1046, 1051, 1067, 1072, 1076, 1080, 1084, 1088, - 1092, 1096, 1105, 1117, 1130, 1130, 1141, 1147, 1153, 1162, - 1170, 1179, 1192, 1192, 1198, 1200, 1207, 1219, 1227, 1238, - 1248, 1255, 1261, 1267, 1272, 1277, 1282, 1287, 1300, 1305, - 1309, 1315, 1320, 1326, 1331, 1339, 1345, 1360, 1365, 1369, - 1376, 1382, 1398, 1406, 1412, 1417, 1422, 1431, 1438, 1448, - 1455, 1466, 1472, 1477, 1482, 1487, 1492, 1497, 1506, 1511, - 1527, 1532, 1536, 1540, 1546, 1551, 1559, 1564, 1572, 1581, - 1590, 1595, 1599, 1604, 1609, 1614, 1619, 1624, 1629, 1634, - 1639, 1644, 1654, 1663, 1674, 1679, 1683, 1688, 1693, 1698, - 1703, 1708, 1713, 1718, 1723 -}; -#endif - - -#if (YYDEBUG) || defined YYERROR_VERBOSE - -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = -{ - "$", "error", "$undefined.", "BEG", "END", "ACCELERATORS", "VIRTKEY", - "ASCII", "NOINVERT", "SHIFT", "CONTROL", "ALT", "BITMAP", "CURSOR", - "DIALOG", "DIALOGEX", "EXSTYLE", "CAPTION", "CLASS", "STYLE", - "AUTO3STATE", "AUTOCHECKBOX", "AUTORADIOBUTTON", "CHECKBOX", "COMBOBOX", - "CTEXT", "DEFPUSHBUTTON", "EDITTEXT", "GROUPBOX", "LISTBOX", "LTEXT", - "PUSHBOX", "PUSHBUTTON", "RADIOBUTTON", "RTEXT", "SCROLLBAR", "STATE3", - "USERBUTTON", "BEDIT", "HEDIT", "IEDIT", "FONT", "ICON", "LANGUAGE", - "CHARACTERISTICS", "VERSIONK", "MENU", "MENUEX", "MENUITEM", - "SEPARATOR", "POPUP", "CHECKED", "GRAYED", "HELP", "INACTIVE", - "MENUBARBREAK", "MENUBREAK", "MESSAGETABLE", "RCDATA", "STRINGTABLE", - "VERSIONINFO", "FILEVERSION", "PRODUCTVERSION", "FILEFLAGSMASK", - "FILEFLAGS", "FILEOS", "FILETYPE", "FILESUBTYPE", "BLOCKSTRINGFILEINFO", - "BLOCKVARFILEINFO", "VALUE", "BLOCK", "MOVEABLE", "FIXED", "PURE", - "IMPURE", "PRELOAD", "LOADONCALL", "DISCARDABLE", "NOT", "QUOTEDSTRING", - "STRING", "NUMBER", "SIZEDSTRING", "IGNORED_TOKEN", "'|'", "'^'", "'&'", - "'+'", "'-'", "'*'", "'/'", "'%'", "'~'", "NEG", "','", "'='", "'('", - "')'", "input", "accelerator", "acc_entries", "acc_entry", "acc_event", - "acc_options", "acc_option", "bitmap", "cursor", "dialog", "@1", "@2", - "@3", "exstyle", "styles", "controls", "control", "@4", "@5", "@6", - "@7", "@8", "@9", "@10", "@11", "@12", "@13", "@14", "@15", "@16", - "@17", "@18", "@19", "@20", "@21", "@22", "@23", "@24", - "control_params", "optstringc", "opt_control_data", "control_styleexpr", - "@25", "icon_styleexpr", "@26", "control_params_styleexpr", "@27", - "font", "icon", "language", "menu", "menuitems", "menuitem", - "menuitem_flags", "menuitem_flag", "menuex", "menuexitems", - "menuexitem", "messagetable", "rcdata", "optrcdata_data", "@28", - "optrcdata_data_int", "rcdata_data", "stringtable", "@29", - "string_data", "user", "versioninfo", "fixedverinfo", "verblocks", - "vervals", "vertrans", "id", "resname", "resref", "suboptions", - "memflags_move_discard", "memflags_move", "memflag", "file_name", - "styleexpr", "parennumber", "optcnumexpr", "cnumexpr", "numexpr", - "sizednumexpr", "cposnumexpr", "posnumexpr", "sizedposnumexpr", 0 -}; -#endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ - 0, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 100, 101, 101, - 102, 102, 103, 103, 104, 104, 104, 105, 105, 105, - 105, 105, 105, 106, 107, 109, 108, 110, 108, 111, - 108, 112, 112, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 114, 114, 116, - 115, 117, 115, 118, 115, 119, 115, 120, 115, 121, - 115, 115, 115, 115, 115, 122, 115, 123, 115, 124, - 115, 125, 115, 126, 115, 115, 115, 115, 115, 127, - 115, 128, 115, 129, 115, 130, 115, 131, 115, 132, - 115, 133, 115, 134, 115, 135, 115, 136, 115, 137, - 137, 137, 138, 138, 138, 139, 139, 141, 140, 143, - 142, 145, 144, 146, 147, 148, 149, 150, 150, 151, - 151, 151, 152, 152, 152, 153, 153, 153, 153, 153, - 153, 154, 155, 155, 156, 156, 156, 156, 156, 156, - 156, 156, 157, 158, 160, 159, 161, 161, 162, 162, - 162, 162, 164, 163, 165, 165, 165, 166, 166, 167, - 168, 168, 168, 168, 168, 168, 168, 168, 169, 169, - 169, 170, 170, 171, 171, 172, 172, 173, 173, 173, - 174, 174, 175, 175, 175, 175, 175, 176, 176, 177, - 177, 178, 178, 178, 178, 178, 178, 178, 179, 179, - 180, 180, 180, 180, 181, 181, 182, 182, 183, 184, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 185, 185, 186, 187, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ - 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, - 2, 4, 1, 1, 1, 3, 2, 1, 1, 1, - 1, 1, 1, 4, 4, 0, 13, 0, 13, 0, - 14, 0, 3, 0, 3, 3, 3, 3, 3, 5, - 6, 7, 8, 3, 3, 4, 3, 0, 2, 0, - 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, - 3, 11, 12, 12, 13, 0, 3, 0, 3, 0, - 3, 0, 3, 0, 3, 6, 8, 10, 11, 0, - 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, - 3, 0, 3, 0, 3, 0, 3, 0, 16, 7, - 9, 10, 0, 1, 2, 0, 3, 0, 3, 0, - 3, 0, 3, 4, 4, 3, 6, 0, 2, 4, - 2, 6, 0, 3, 2, 1, 1, 1, 1, 1, - 1, 6, 0, 2, 2, 3, 5, 2, 5, 6, - 7, 9, 4, 6, 0, 2, 0, 1, 1, 1, - 3, 3, 0, 6, 0, 3, 4, 6, 4, 6, - 0, 6, 6, 3, 3, 3, 3, 3, 0, 8, - 7, 0, 5, 0, 3, 1, 1, 1, 2, 2, - 2, 1, 0, 2, 3, 4, 3, 0, 2, 0, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 3, 4, 1, 3, 0, 1, 2, 1, - 1, 3, 2, 2, 3, 3, 3, 3, 3, 3, - 3, 3, 2, 1, 1, 3, 2, 3, 3, 3, - 3, 3, 3, 3, 3 -}; - -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = -{ - 1, 0, 0, 192, 186, 234, 16, 0, 0, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 0, 185, 233, 220, 0, 0, 0, - 0, 219, 0, 236, 0, 192, 199, 197, 199, 199, - 197, 197, 192, 192, 199, 192, 170, 192, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 222, 0, 0, - 125, 0, 0, 0, 0, 0, 0, 0, 0, 162, - 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, - 193, 235, 0, 0, 0, 41, 41, 0, 0, 0, - 0, 0, 0, 0, 0, 244, 243, 242, 240, 241, - 237, 238, 239, 221, 218, 231, 230, 229, 227, 228, - 224, 225, 226, 164, 0, 194, 196, 18, 208, 209, - 200, 33, 198, 34, 0, 0, 0, 123, 124, 127, - 142, 152, 154, 178, 0, 0, 0, 0, 0, 0, - 0, 154, 168, 0, 195, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 173, 174, 175, 176, - 177, 0, 163, 0, 17, 22, 19, 0, 23, 42, - 0, 0, 126, 0, 0, 128, 141, 0, 0, 143, - 153, 158, 155, 157, 159, 169, 0, 0, 0, 0, - 167, 165, 0, 0, 20, 0, 0, 130, 0, 132, - 147, 144, 0, 0, 0, 0, 0, 0, 166, 232, - 0, 35, 37, 132, 0, 145, 142, 0, 160, 161, - 0, 0, 171, 172, 27, 28, 29, 30, 31, 32, - 21, 24, 43, 43, 39, 129, 127, 135, 136, 137, - 138, 139, 140, 0, 134, 216, 0, 142, 0, 181, - 183, 0, 26, 0, 0, 43, 0, 133, 146, 217, - 148, 0, 142, 216, 0, 0, 25, 57, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 57, 0, 131, - 149, 0, 0, 0, 0, 180, 0, 0, 47, 44, - 48, 45, 0, 214, 0, 46, 210, 0, 0, 54, - 56, 53, 0, 57, 150, 142, 179, 0, 184, 36, - 112, 59, 61, 63, 67, 69, 75, 77, 79, 81, - 91, 93, 95, 97, 99, 101, 103, 105, 0, 65, - 83, 89, 0, 58, 211, 0, 0, 0, 55, 38, - 0, 0, 0, 113, 0, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 0, 112, 112, 112, 187, 0, 191, 0, - 0, 215, 0, 212, 49, 40, 151, 182, 114, 0, - 60, 0, 62, 64, 68, 70, 76, 78, 80, 82, - 92, 94, 96, 98, 100, 102, 104, 106, 0, 66, - 84, 90, 188, 189, 0, 190, 213, 50, 0, 0, - 0, 0, 0, 51, 0, 117, 0, 0, 0, 115, - 52, 0, 0, 0, 0, 0, 154, 85, 0, 0, - 118, 0, 0, 0, 0, 115, 0, 0, 115, 0, - 116, 119, 86, 216, 0, 216, 121, 109, 216, 0, - 0, 115, 217, 216, 115, 217, 0, 115, 217, 0, - 120, 87, 115, 115, 217, 71, 115, 122, 110, 115, - 0, 88, 73, 115, 72, 111, 0, 74, 107, 0, - 216, 108, 0, 0 -}; - -static const short yydefgoto[] = -{ - 1, 9, 145, 166, 167, 230, 231, 10, 11, 12, - 232, 233, 255, 125, 253, 287, 333, 345, 346, 347, - 363, 348, 349, 350, 351, 352, 353, 364, 365, 354, - 355, 356, 357, 358, 359, 360, 361, 479, 380, 381, - 427, 416, 422, 443, 450, 448, 456, 13, 14, 15, - 16, 149, 175, 214, 244, 17, 150, 179, 18, 19, - 151, 152, 182, 183, 20, 113, 143, 21, 22, 93, - 153, 264, 265, 23, 368, 369, 32, 84, 83, 80, - 121, 295, 296, 258, 259, 104, 31, 194, 24, 25 -}; - -static const short yypact[] = -{ - -32768, 13, 412,-32768,-32768,-32768,-32768, 412, 412,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768, 111,-32768, 511,-32768, 412, 412, 412, - -79, 600, 244,-32768, 562,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 412, 412, - 412, 412, 412, 412, 412, 412,-32768,-32768, 576, 412, - -32768, 412, 412, 412, 412, 412, 412, 412, 412,-32768, - 412, 412, 412,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768, 256, 603, 603, 297, 297, 603, 603, 280, - 337, 603, 345, 100, 231, 607, 613, 567, 172, 172, - -32768,-32768,-32768,-32768,-32768, 607, 613, 567, 172, 172, - -32768,-32768,-32768,-32768, -79,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768, -60, 63, 63,-32768,-32768,-32768, - -32768,-32768,-32768,-32768, 412, 412, 412, 412, 412, 412, - 412,-32768,-32768, 7,-32768, 5, 412, -79, -79, 33, - 34, 35, 254, 51, -79, -79,-32768,-32768,-32768,-32768, - -32768, 36,-32768, 60,-32768,-32768,-32768, -38,-32768,-32768, - -79, -79,-32768, -39, 11,-32768,-32768, 59, 25,-32768, - -32768,-32768,-32768, 27, 600,-32768, 127, 144, -79, -79, - -32768,-32768, 74, 63, 87, -79, -79,-32768, -79,-32768, - -32768, -79, 12, 294, 118, 128, -79, -79,-32768,-32768, - 700,-32768, -79,-32768, 22, -79,-32768, 14,-32768, 600, - 194, 121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 23,-32768,-32768,-32768,-32768, 309,-32768,-32768,-32768,-32768, - -32768,-32768,-32768, 661,-32768, -79, 38,-32768, 16,-32768, - -32768, 700,-32768, 383, 472,-32768, 42,-32768,-32768,-32768, - -32768, 124,-32768, -79, 10, 4,-32768,-32768, 412, 126, - 187, 99, 412, 412, 412, 412, 200,-32768, 480,-32768, - -32768, 125, 204, 207, 135,-32768, -79, 510,-32768,-32768, - -32768,-32768, 49,-32768, 412, 136,-32768, 133, -79,-32768, - -32768,-32768, 547,-32768,-32768,-32768,-32768, 134,-32768,-32768, - 152,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 153,-32768, - -32768,-32768, 374,-32768,-32768, 140, 112, 157,-32768,-32768, - 584, 138, 160, 148, 412, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 158, 152, 152, 152, 161, 163,-32768, 412, - 165,-32768, 49,-32768, -79,-32768,-32768,-32768,-32768, 170, - -32768, 412,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 412,-32768, - -32768,-32768,-32768,-32768, -79,-32768,-32768, -79, 123, 183, - -79, 184, -79, -79, 183,-32768, -79, -79, 412, 17, - -32768, -79, 99, -79, -79, 190,-32768,-32768, -79, -79, - 136, -79, -79, 412, 248, 18, -79, -79, 19, 195, - -32768,-32768,-32768, -79, -79, -79,-32768,-32768, -79, 412, - 99, 245, -79, -79, 245, -79, 99, 245, -79, 196, - 136,-32768, 245, 245, -79,-32768, 245, 136,-32768, 245, - 412,-32768,-32768, 245,-32768,-32768, 201,-32768,-32768, 99, - 64,-32768, 295,-32768 -}; - -static const short yypgoto[] = -{ - -32768,-32768,-32768,-32768,-32768,-32768, -206,-32768,-32768,-32768, - -32768,-32768,-32768, 212, -85, -259,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 281, -8, - -212, -104,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768, 78,-32768, 113, 92,-32768, -204,-32768,-32768,-32768, - -140,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768, -21,-32768,-32768, 350, 139, 175, 475, - 416, -329, -257, -258, 29, -2, -1,-32768, -122,-32768 -}; - - -#define YYLAST 717 - - -static const short yytable[] = -{ - 30, 161, 47, 147, 148, 282, 33, 34, 285, 164, - 197, 162, 246, 482, 283, 216, 59, 247, 302, 262, - 426, 426, 426, 168, 252, 236, 56, 57, 58, 224, - 225, 226, 227, 228, 229, 334, 146, 172, 176, 180, - 190, 198, 260, 261, 340, 266, 279, 95, 96, 97, - 98, 99, 100, 101, 102, 185, 2, 193, 281, 60, - 105, 106, 107, 108, 109, 110, 111, 112, 114, 115, - 116, 209, 3, 237, 238, 239, 240, 241, 242, 373, - 284, 173, 177, 174, 178, 165, 177, 5, 178, 26, - 173, 199, 174, 430, 4, 5, 27, 6, 7, 59, - 28, 341, 8, 133, 29, 202, 7, 59, 200, 59, - 8, 59, 59, 441, 446, 406, 35, 243, 251, 186, - 187, 460, 203, 36, 37, 38, 39, 467, 280, 304, - 204, 293, 154, 155, 156, 157, 158, 159, 160, 201, - 191, 163, 376, 144, 169, 5, 294, 205, 254, 336, - 480, 184, 40, 41, 208, 192, 7, 42, 43, 59, - 8, 134, 135, 136, 137, 138, 139, 140, 44, 45, - 278, 46, 177, 177, 178, 178, 170, 171, 292, 87, - 88, 293, 210, 188, 189, 451, 177, 454, 178, 220, - 457, 372, 4, 5, 293, 463, 294, 249, 221, 195, - 196, 250, 219, 414, 7, 26, 289, 305, 8, 294, - 370, 306, 27, 85, 86, 307, 28, 206, 207, 91, - 29, 336, 481, 442, 211, 212, 447, 213, 337, 342, - 215, 217, 343, 362, 141, 222, 223, 374, 371, 461, - 377, 234, 465, 378, 245, 468, 248, 69, 426, 291, - 471, 472, 440, 398, 474, 301, 402, 475, 403, 117, - 405, 477, 66, 67, 68, 408, 288, 290, 4, 5, - 297, 298, 299, 300, 70, 71, 72, 263, 415, 418, - 7, 4, 5, 129, 8, 433, 434, 70, 71, 72, - 449, 470, 335, 7, 286, 483, 478, 8, 126, 70, - 71, 72, 344, 73, 74, 75, 76, 77, 78, 79, - 421, 118, 119, 124, 256, 308, 73, 74, 75, 76, - 77, 78, 79, 70, 71, 72, 235, 338, 73, 74, - 75, 76, 77, 78, 79, 257, 26, 181, 0, 0, - 130, 0, 379, 27, 0, 0, 0, 28, 132, 0, - 0, 29, 73, 74, 75, 76, 77, 78, 79, 0, - 237, 238, 239, 240, 241, 242, 0, 404, 0, 73, - 74, 75, 76, 77, 78, 79, 26, 218, 0, 410, - 70, 71, 72, 27, 0, 82, 267, 28, 70, 71, - 72, 29, 89, 90, 0, 92, 411, 94, 0, 268, - 269, 270, 271, 407, 243, 0, 0, 0, 409, 73, - 74, 75, 76, 77, 78, 79, 425, 73, 74, 75, - 76, 77, 78, 79, 272, 0, 273, 274, 275, 276, - 0, 439, 0, 412, 0, 0, 413, 0, 0, 417, - 0, 419, 420, 0, 0, 423, 424, 459, 428, 0, - 429, 0, 431, 432, 366, 367, 5, 435, 436, 0, - 437, 438, 0, 0, 0, 444, 445, 7, 476, 0, - 0, 8, 452, 453, 455, 277, 0, 458, 0, 0, - 0, 462, 464, 303, 466, 0, 0, 469, 268, 269, - 270, 271, 0, 473, 26, 0, 268, 269, 270, 271, - 123, 27, 0, 127, 128, 28, 0, 131, 0, 29, - 142, 0, 0, 272, 309, 273, 274, 275, 276, 0, - 310, 272, 0, 273, 274, 275, 276, 0, 0, 0, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 339, 332, 0, 0, 0, 0, 310, 120, 122, - 120, 120, 122, 122, 0, 0, 120, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 375, 332, - 0, 0, 0, 0, 310, 0, 48, 49, 50, 51, - 52, 53, 54, 55, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 0, 399, 400, 401, 61, 62, 63, - 64, 65, 66, 67, 68, 64, 65, 66, 67, 68, - 81, 61, 62, 63, 64, 65, 66, 67, 68, 0, - 0, 0, 0, 0, 103, 73, 74, 75, 76, 77, - 78, 79, 0, 118, 119, 61, 62, 63, 64, 65, - 66, 67, 68, 62, 63, 64, 65, 66, 67, 68, - 63, 64, 65, 66, 67, 68, 224, 225, 226, 227, - 228, 229, 237, 238, 239, 240, 241, 242 -}; - -static const short yycheck[] = -{ - 2, 141, 23, 125, 126, 263, 7, 8, 4, 4, - 49, 4, 216, 0, 4, 3, 95, 3, 277, 3, - 3, 3, 3, 145, 230, 3, 27, 28, 29, 6, - 7, 8, 9, 10, 11, 292, 96, 4, 4, 4, - 4, 80, 4, 247, 303, 251, 4, 48, 49, 50, - 51, 52, 53, 54, 55, 4, 43, 95, 262, 30, - 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, - 72, 193, 59, 51, 52, 53, 54, 55, 56, 336, - 70, 48, 48, 50, 50, 80, 48, 82, 50, 82, - 48, 80, 50, 422, 81, 82, 89, 84, 93, 95, - 93, 305, 97, 3, 97, 80, 93, 95, 49, 95, - 97, 95, 95, 95, 95, 372, 5, 95, 95, 68, - 69, 450, 95, 12, 13, 14, 15, 456, 4, 4, - 3, 82, 134, 135, 136, 137, 138, 139, 140, 80, - 80, 143, 4, 114, 146, 82, 97, 3, 233, 85, - 479, 152, 41, 42, 80, 95, 93, 46, 47, 95, - 97, 61, 62, 63, 64, 65, 66, 67, 57, 58, - 255, 60, 48, 48, 50, 50, 147, 148, 79, 40, - 41, 82, 95, 154, 155, 443, 48, 445, 50, 71, - 448, 79, 81, 82, 82, 453, 97, 3, 70, 170, - 171, 80, 203, 80, 93, 82, 80, 3, 97, 97, - 332, 4, 89, 38, 39, 80, 93, 188, 189, 44, - 97, 85, 480, 435, 195, 196, 438, 198, 95, 95, - 201, 202, 80, 80, 3, 206, 207, 80, 98, 451, - 80, 212, 454, 95, 215, 457, 217, 3, 3, 270, - 462, 463, 4, 95, 466, 276, 95, 469, 95, 3, - 95, 473, 90, 91, 92, 95, 268, 80, 81, 82, - 272, 273, 274, 275, 43, 44, 45, 248, 95, 95, - 93, 81, 82, 3, 97, 95, 426, 43, 44, 45, - 95, 95, 294, 93, 265, 0, 95, 97, 86, 43, - 44, 45, 310, 72, 73, 74, 75, 76, 77, 78, - 414, 80, 81, 16, 236, 286, 72, 73, 74, 75, - 76, 77, 78, 43, 44, 45, 213, 298, 72, 73, - 74, 75, 76, 77, 78, 243, 82, 83, -1, -1, - 3, -1, 344, 89, -1, -1, -1, 93, 3, -1, - -1, 97, 72, 73, 74, 75, 76, 77, 78, -1, - 51, 52, 53, 54, 55, 56, -1, 369, -1, 72, - 73, 74, 75, 76, 77, 78, 82, 83, -1, 381, - 43, 44, 45, 89, -1, 35, 3, 93, 43, 44, - 45, 97, 42, 43, -1, 45, 398, 47, -1, 16, - 17, 18, 19, 374, 95, -1, -1, -1, 379, 72, - 73, 74, 75, 76, 77, 78, 418, 72, 73, 74, - 75, 76, 77, 78, 41, -1, 43, 44, 45, 46, - -1, 433, -1, 404, -1, -1, 407, -1, -1, 410, - -1, 412, 413, -1, -1, 416, 417, 449, 419, -1, - 421, -1, 423, 424, 80, 81, 82, 428, 429, -1, - 431, 432, -1, -1, -1, 436, 437, 93, 470, -1, - -1, 97, 443, 444, 445, 3, -1, 448, -1, -1, - -1, 452, 453, 3, 455, -1, -1, 458, 16, 17, - 18, 19, -1, 464, 82, -1, 16, 17, 18, 19, - 84, 89, -1, 87, 88, 93, -1, 91, -1, 97, - 94, -1, -1, 41, 4, 43, 44, 45, 46, -1, - 10, 41, -1, 43, 44, 45, 46, -1, -1, -1, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 4, 42, -1, -1, -1, -1, 10, 83, 84, - 85, 86, 87, 88, -1, -1, 91, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 4, 42, - -1, -1, -1, -1, 10, -1, 85, 86, 87, 88, - 89, 90, 91, 92, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, -1, 42, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, -1, 363, 364, 365, 85, 86, 87, - 88, 89, 90, 91, 92, 88, 89, 90, 91, 92, - 98, 85, 86, 87, 88, 89, 90, 91, 92, -1, - -1, -1, -1, -1, 98, 72, 73, 74, 75, 76, - 77, 78, -1, 80, 81, 85, 86, 87, 88, 89, - 90, 91, 92, 86, 87, 88, 89, 90, 91, 92, - 87, 88, 89, 90, 91, 92, 6, 7, 8, 9, - 10, 11, 51, 52, 53, 54, 55, 56 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison/bison.simple" - -/* Skeleton output parser for bison, - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software - Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ - -/* This is the parser code that is written into each bison parser when - the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE) - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# if YYSTACK_USE_ALLOCA -# define YYSTACK_ALLOC alloca -# else -# ifndef YYSTACK_USE_ALLOCA -# if defined (alloca) || defined (_ALLOCA_H) -# define YYSTACK_ALLOC alloca -# else -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# endif -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) -# else -# if defined (__STDC__) || defined (__cplusplus) -# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free -# endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ - - -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - short yyss; - YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# if YYLSP_NEEDED -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ - + 2 * YYSTACK_GAP_MAX) -# else -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif - -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - register YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (0) -# endif -# endif - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) - -#endif - - -#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) -# define YYSIZE_T __SIZE_TYPE__ -#endif -#if ! defined (YYSIZE_T) && defined (size_t) -# define YYSIZE_T size_t -#endif -#if ! defined (YYSIZE_T) -# if defined (__STDC__) || defined (__cplusplus) -# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif -#endif -#if ! defined (YYSIZE_T) -# define YYSIZE_T unsigned int -#endif - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 -#define YYEOF 0 -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ -#define YYFAIL goto yyerrlab -#define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - yychar1 = YYTRANSLATE (yychar); \ - YYPOPSTACK; \ - goto yybackup; \ - } \ - else \ - { \ - yyerror ("syntax error: cannot back up"); \ - YYERROR; \ - } \ -while (0) - -#define YYTERROR 1 -#define YYERRCODE 256 - - -/* YYLLOC_DEFAULT -- Compute the default location (before the actions - are run). - - When YYLLOC_DEFAULT is run, CURRENT is set the location of the - first token. By default, to implement support for ranges, extend - its range to the last symbol. */ - -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval, &yylloc) -# endif -# else /* !YYLSP_NEEDED */ -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval) -# endif -# endif /* !YYLSP_NEEDED */ -#else /* !YYPURE */ -# define YYLEX yylex () -#endif /* !YYPURE */ - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -#endif /* !YYDEBUG */ - -/* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH -# define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). - - Do not make this value too large; the results are undefined if - SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ - -#if YYMAXDEPTH == 0 -# undef YYMAXDEPTH -#endif - -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 -#endif - -#ifdef YYERROR_VERBOSE - -# ifndef yystrlen -# if defined (__GLIBC__) && defined (_STRING_H) -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -# if defined (__STDC__) || defined (__cplusplus) -yystrlen (const char *yystr) -# else -yystrlen (yystr) - const char *yystr; -# endif -{ - register const char *yys = yystr; - - while (*yys++ != '\0') - continue; - - return yys - yystr - 1; -} -# endif -# endif - -# ifndef yystpcpy -# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -# if defined (__STDC__) || defined (__cplusplus) -yystpcpy (char *yydest, const char *yysrc) -# else -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -# endif -{ - register char *yyd = yydest; - register const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif -#endif - -#line 315 "/usr/share/bison/bison.simple" - - -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ - -#ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL -# else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -# endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else -int yyparse (void); -# endif -#endif - -/* YY_DECL_VARIABLES -- depending whether we use a pure parser, - variables are global, or local to YYPARSE. */ - -#define YY_DECL_NON_LSP_VARIABLES \ -/* The lookahead symbol. */ \ -int yychar; \ - \ -/* The semantic value of the lookahead symbol. */ \ -YYSTYPE yylval; \ - \ -/* Number of parse errors so far. */ \ -int yynerrs; - -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES -#endif - - -/* If nonreentrant, generate the variables here. */ - -#if !YYPURE -YY_DECL_VARIABLES -#endif /* !YYPURE */ - -int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ - - register int yystate; - register int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Lookahead token as an internal (translated) token number. */ - int yychar1 = 0; - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - short yyssa[YYINITDEPTH]; - short *yyss = yyssa; - register short *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - register YYSTYPE *yyvsp; - -#if YYLSP_NEEDED - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; -#endif - -#if YYLSP_NEEDED -# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -# define YYPOPSTACK (yyvsp--, yyssp--) -#endif - - YYSIZE_T yystacksize = YYINITDEPTH; - - - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; -#endif - - /* When reducing, the number of symbols on the RHS of the reduced - rule. */ - int yylen; - - YYDPRINTF ((stderr, "Starting parse\n")); - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - - yyssp = yyss; - yyvsp = yyvs; -#if YYLSP_NEEDED - yylsp = yyls; -#endif - goto yysetstate; - -/*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | -`------------------------------------------------------------*/ - yynewstate: - /* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. - */ - yyssp++; - - yysetstate: - *yyssp = yystate; - - if (yyssp >= yyss + yystacksize - 1) - { - /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; - -#ifdef yyoverflow - { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - yyls = yyls1; -# else - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); -# endif - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyoverflowlab; -# else - /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - goto yyoverflowlab; - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - yystacksize = YYMAXDEPTH; - - { - short *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyoverflowlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; -#endif - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyssp >= yyss + yystacksize - 1) - YYABORT; - } - - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - - goto yybackup; - - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: - -/* Do appropriate processing given the current state. */ -/* Read a lookahead token if we need one and don't already have one. */ -/* yyresume: */ - - /* First try to decide what to do without reference to lookahead token. */ - - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ - { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yychar1 = YYTRANSLATE (yychar); - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - YYFPRINTF (stderr, "Next token is %d (%s", - yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise - meaning of a token, for further debugging info. */ -# ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -# endif - YYFPRINTF (stderr, ")\n"); - } -#endif - } - - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; - - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - yystate = yyn; - goto yynewstate; - - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state. | -`-----------------------------------------------------------*/ -yydefault: - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - -/*-----------------------------. -| yyreduce -- Do a reduction. | -`-----------------------------*/ -yyreduce: - /* yyn is the number of a rule to reduce with. */ - yylen = yyr2[yyn]; - - /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. - - Otherwise, the following line sets YYVAL to the semantic value of - the lookahead token. This behavior is undocumented and Bison - users should not rely upon it. Assigning to YYVAL - unconditionally makes the parser a bit smaller, and it avoids a - GCC warning that YYVAL may be used uninitialized. */ - yyval = yyvsp[1-yylen]; - -#if YYLSP_NEEDED - /* Similarly for the default location. Let the user run additional - commands if for instance locations are ranges. */ - yyloc = yylsp[1-yylen]; - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); -#endif - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - switch (yyn) { - -case 17: -#line 177 "rcparse.y" -{ - define_accelerator (yyvsp[-5].id, &yyvsp[-3].res_info, yyvsp[-1].pacc); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 18: -#line 187 "rcparse.y" -{ - yyval.pacc = NULL; - } - break; -case 19: -#line 191 "rcparse.y" -{ - struct accelerator *a; - - a = (struct accelerator *) res_alloc (sizeof *a); - *a = yyvsp[0].acc; - if (yyvsp[-1].pacc == NULL) - yyval.pacc = a; - else - { - struct accelerator **pp; - - for (pp = &yyvsp[-1].pacc->next; *pp != NULL; pp = &(*pp)->next) - ; - *pp = a; - yyval.pacc = yyvsp[-1].pacc; - } - } - break; -case 20: -#line 212 "rcparse.y" -{ - yyval.acc = yyvsp[-1].acc; - yyval.acc.id = yyvsp[0].il; - } - break; -case 21: -#line 217 "rcparse.y" -{ - yyval.acc = yyvsp[-3].acc; - yyval.acc.id = yyvsp[-2].il; - yyval.acc.flags |= yyvsp[0].is; - if ((yyval.acc.flags & ACC_VIRTKEY) == 0 - && (yyval.acc.flags & (ACC_SHIFT | ACC_CONTROL | ACC_ALT)) != 0) - rcparse_warning (_("inappropriate modifiers for non-VIRTKEY")); - } - break; -case 22: -#line 229 "rcparse.y" -{ - const char *s = yyvsp[0].s; - char ch; - - yyval.acc.next = NULL; - yyval.acc.id = 0; - ch = *s; - if (ch != '^') - yyval.acc.flags = 0; - else - { - yyval.acc.flags = ACC_CONTROL | ACC_VIRTKEY; - ++s; - ch = *s; - ch = TOUPPER (ch); - } - yyval.acc.key = ch; - if (s[1] != '\0') - rcparse_warning (_("accelerator should only be one character")); - } - break; -case 23: -#line 250 "rcparse.y" -{ - yyval.acc.next = NULL; - yyval.acc.flags = 0; - yyval.acc.id = 0; - yyval.acc.key = yyvsp[0].il; - } - break; -case 24: -#line 260 "rcparse.y" -{ - yyval.is = yyvsp[0].is; - } - break; -case 25: -#line 264 "rcparse.y" -{ - yyval.is = yyvsp[-2].is | yyvsp[0].is; - } - break; -case 26: -#line 269 "rcparse.y" -{ - yyval.is = yyvsp[-1].is | yyvsp[0].is; - } - break; -case 27: -#line 276 "rcparse.y" -{ - yyval.is = ACC_VIRTKEY; - } - break; -case 28: -#line 280 "rcparse.y" -{ - /* This is just the absence of VIRTKEY. */ - yyval.is = 0; - } - break; -case 29: -#line 285 "rcparse.y" -{ - yyval.is = ACC_NOINVERT; - } - break; -case 30: -#line 289 "rcparse.y" -{ - yyval.is = ACC_SHIFT; - } - break; -case 31: -#line 293 "rcparse.y" -{ - yyval.is = ACC_CONTROL; - } - break; -case 32: -#line 297 "rcparse.y" -{ - yyval.is = ACC_ALT; - } - break; -case 33: -#line 306 "rcparse.y" -{ - define_bitmap (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 34: -#line 318 "rcparse.y" -{ - define_cursor (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 35: -#line 331 "rcparse.y" -{ - memset (&dialog, 0, sizeof dialog); - dialog.x = yyvsp[-3].il; - dialog.y = yyvsp[-2].il; - dialog.width = yyvsp[-1].il; - dialog.height = yyvsp[0].il; - dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; - dialog.exstyle = yyvsp[-4].il; - dialog.menu.named = 1; - dialog.class.named = 1; - dialog.font = NULL; - dialog.ex = NULL; - dialog.controls = NULL; - sub_res_info = yyvsp[-5].res_info; - style = 0; - } - break; -case 36: -#line 348 "rcparse.y" -{ - define_dialog (yyvsp[-12].id, &sub_res_info, &dialog); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 37: -#line 356 "rcparse.y" -{ - memset (&dialog, 0, sizeof dialog); - dialog.x = yyvsp[-3].il; - dialog.y = yyvsp[-2].il; - dialog.width = yyvsp[-1].il; - dialog.height = yyvsp[0].il; - dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; - dialog.exstyle = yyvsp[-4].il; - dialog.menu.named = 1; - dialog.class.named = 1; - dialog.font = NULL; - dialog.ex = ((struct dialog_ex *) - res_alloc (sizeof (struct dialog_ex))); - memset (dialog.ex, 0, sizeof (struct dialog_ex)); - dialog.controls = NULL; - sub_res_info = yyvsp[-5].res_info; - style = 0; - } - break; -case 38: -#line 375 "rcparse.y" -{ - define_dialog (yyvsp[-12].id, &sub_res_info, &dialog); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 39: -#line 383 "rcparse.y" -{ - memset (&dialog, 0, sizeof dialog); - dialog.x = yyvsp[-4].il; - dialog.y = yyvsp[-3].il; - dialog.width = yyvsp[-2].il; - dialog.height = yyvsp[-1].il; - dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; - dialog.exstyle = yyvsp[-5].il; - dialog.menu.named = 1; - dialog.class.named = 1; - dialog.font = NULL; - dialog.ex = ((struct dialog_ex *) - res_alloc (sizeof (struct dialog_ex))); - memset (dialog.ex, 0, sizeof (struct dialog_ex)); - dialog.ex->help = yyvsp[0].il; - dialog.controls = NULL; - sub_res_info = yyvsp[-6].res_info; - style = 0; - } - break; -case 40: -#line 403 "rcparse.y" -{ - define_dialog (yyvsp[-13].id, &sub_res_info, &dialog); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 41: -#line 413 "rcparse.y" -{ - yyval.il = 0; - } - break; -case 42: -#line 417 "rcparse.y" -{ - yyval.il = yyvsp[0].il; - } - break; -case 44: -#line 425 "rcparse.y" -{ - dialog.style |= WS_CAPTION; - style |= WS_CAPTION; - unicode_from_ascii ((int *) NULL, &dialog.caption, yyvsp[0].s); - } - break; -case 45: -#line 431 "rcparse.y" -{ - dialog.class = yyvsp[0].id; - } - break; -case 46: -#line 436 "rcparse.y" -{ - dialog.style = style; - } - break; -case 47: -#line 440 "rcparse.y" -{ - dialog.exstyle = yyvsp[0].il; - } - break; -case 48: -#line 444 "rcparse.y" -{ - res_string_to_id (& dialog.class, yyvsp[0].s); - } - break; -case 49: -#line 448 "rcparse.y" -{ - dialog.style |= DS_SETFONT; - style |= DS_SETFONT; - dialog.pointsize = yyvsp[-2].il; - unicode_from_ascii ((int *) NULL, &dialog.font, yyvsp[0].s); - if (dialog.ex != NULL) - { - dialog.ex->weight = 0; - dialog.ex->italic = 0; - dialog.ex->charset = 1; - } - } - break; -case 50: -#line 461 "rcparse.y" -{ - dialog.style |= DS_SETFONT; - style |= DS_SETFONT; - dialog.pointsize = yyvsp[-3].il; - unicode_from_ascii ((int *) NULL, &dialog.font, yyvsp[-1].s); - if (dialog.ex == NULL) - rcparse_warning (_("extended FONT requires DIALOGEX")); - else - { - dialog.ex->weight = yyvsp[0].il; - dialog.ex->italic = 0; - dialog.ex->charset = 1; - } - } - break; -case 51: -#line 476 "rcparse.y" -{ - dialog.style |= DS_SETFONT; - style |= DS_SETFONT; - dialog.pointsize = yyvsp[-4].il; - unicode_from_ascii ((int *) NULL, &dialog.font, yyvsp[-2].s); - if (dialog.ex == NULL) - rcparse_warning (_("extended FONT requires DIALOGEX")); - else - { - dialog.ex->weight = yyvsp[-1].il; - dialog.ex->italic = yyvsp[0].il; - dialog.ex->charset = 1; - } - } - break; -case 52: -#line 491 "rcparse.y" -{ - dialog.style |= DS_SETFONT; - style |= DS_SETFONT; - dialog.pointsize = yyvsp[-5].il; - unicode_from_ascii ((int *) NULL, &dialog.font, yyvsp[-3].s); - if (dialog.ex == NULL) - rcparse_warning (_("extended FONT requires DIALOGEX")); - else - { - dialog.ex->weight = yyvsp[-2].il; - dialog.ex->italic = yyvsp[-1].il; - dialog.ex->charset = yyvsp[0].il; - } - } - break; -case 53: -#line 506 "rcparse.y" -{ - dialog.menu = yyvsp[0].id; - } - break; -case 54: -#line 510 "rcparse.y" -{ - sub_res_info.characteristics = yyvsp[0].il; - } - break; -case 55: -#line 514 "rcparse.y" -{ - sub_res_info.language = yyvsp[-1].il | (yyvsp[0].il << SUBLANG_SHIFT); - } - break; -case 56: -#line 518 "rcparse.y" -{ - sub_res_info.version = yyvsp[0].il; - } - break; -case 58: -#line 526 "rcparse.y" -{ - struct dialog_control **pp; - - for (pp = &dialog.controls; *pp != NULL; pp = &(*pp)->next) - ; - *pp = yyvsp[0].dialog_control; - } - break; -case 59: -#line 537 "rcparse.y" -{ - default_style = BS_AUTO3STATE | WS_TABSTOP; - base_style = BS_AUTO3STATE; - class = CTL_BUTTON; - } - break; -case 60: -#line 543 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 61: -#line 547 "rcparse.y" -{ - default_style = BS_AUTOCHECKBOX | WS_TABSTOP; - base_style = BS_AUTOCHECKBOX; - class = CTL_BUTTON; - } - break; -case 62: -#line 553 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 63: -#line 557 "rcparse.y" -{ - default_style = BS_AUTORADIOBUTTON | WS_TABSTOP; - base_style = BS_AUTORADIOBUTTON; - class = CTL_BUTTON; - } - break; -case 64: -#line 563 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 65: -#line 567 "rcparse.y" -{ - default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - class = CTL_EDIT; - } - break; -case 66: -#line 573 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - if (dialog.ex == NULL) - rcparse_warning (_("BEDIT requires DIALOGEX")); - res_string_to_id (&yyval.dialog_control->class, "BEDIT"); - } - break; -case 67: -#line 580 "rcparse.y" -{ - default_style = BS_CHECKBOX | WS_TABSTOP; - base_style = BS_CHECKBOX | WS_TABSTOP; - class = CTL_BUTTON; - } - break; -case 68: -#line 586 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 69: -#line 590 "rcparse.y" -{ - default_style = CBS_SIMPLE | WS_TABSTOP; - base_style = 0; - class = CTL_COMBOBOX; - } - break; -case 70: -#line 596 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 71: -#line 601 "rcparse.y" -{ - yyval.dialog_control = define_control (yyvsp[-9].s, yyvsp[-8].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-2].il, yyvsp[-7].il, style, yyvsp[-1].il); - if (yyvsp[0].rcdata_item != NULL) - { - if (dialog.ex == NULL) - rcparse_warning (_("control data requires DIALOGEX")); - yyval.dialog_control->data = yyvsp[0].rcdata_item; - } - } - break; -case 72: -#line 612 "rcparse.y" -{ - yyval.dialog_control = define_control (yyvsp[-10].s, yyvsp[-9].il, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-8].il, style, yyvsp[-2].il); - if (dialog.ex == NULL) - rcparse_warning (_("help ID requires DIALOGEX")); - yyval.dialog_control->help = yyvsp[-1].il; - yyval.dialog_control->data = yyvsp[0].rcdata_item; - } - break; -case 73: -#line 621 "rcparse.y" -{ - yyval.dialog_control = define_control (yyvsp[-10].s, yyvsp[-9].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-2].il, 0, style, yyvsp[-1].il); - if (yyvsp[0].rcdata_item != NULL) - { - if (dialog.ex == NULL) - rcparse_warning ("control data requires DIALOGEX"); - yyval.dialog_control->data = yyvsp[0].rcdata_item; - } - yyval.dialog_control->class.named = 1; - unicode_from_ascii (&yyval.dialog_control->class.u.n.length, &yyval.dialog_control->class.u.n.name, yyvsp[-7].s); - } - break; -case 74: -#line 634 "rcparse.y" -{ - yyval.dialog_control = define_control (yyvsp[-11].s, yyvsp[-10].il, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, 0, style, yyvsp[-2].il); - if (dialog.ex == NULL) - rcparse_warning ("help ID requires DIALOGEX"); - yyval.dialog_control->help = yyvsp[-1].il; - yyval.dialog_control->data = yyvsp[0].rcdata_item; - yyval.dialog_control->class.named = 1; - unicode_from_ascii (&yyval.dialog_control->class.u.n.length, &yyval.dialog_control->class.u.n.name, yyvsp[-8].s); - } - break; -case 75: -#line 644 "rcparse.y" -{ - default_style = SS_CENTER | WS_GROUP; - base_style = SS_CENTER; - class = CTL_STATIC; - } - break; -case 76: -#line 650 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 77: -#line 654 "rcparse.y" -{ - default_style = BS_DEFPUSHBUTTON | WS_TABSTOP; - base_style = BS_DEFPUSHBUTTON | WS_TABSTOP; - class = CTL_BUTTON; - } - break; -case 78: -#line 660 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 79: -#line 664 "rcparse.y" -{ - default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - class = CTL_EDIT; - } - break; -case 80: -#line 670 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 81: -#line 674 "rcparse.y" -{ - default_style = BS_GROUPBOX; - base_style = BS_GROUPBOX; - class = CTL_BUTTON; - } - break; -case 82: -#line 680 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 83: -#line 684 "rcparse.y" -{ - default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - class = CTL_EDIT; - } - break; -case 84: -#line 690 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - if (dialog.ex == NULL) - rcparse_warning (_("IEDIT requires DIALOGEX")); - res_string_to_id (&yyval.dialog_control->class, "HEDIT"); - } - break; -case 85: -#line 697 "rcparse.y" -{ - 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, - dialog.ex); - } - break; -case 86: -#line 703 "rcparse.y" -{ - 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, - dialog.ex); - } - break; -case 87: -#line 709 "rcparse.y" -{ - 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, - dialog.ex); - } - break; -case 88: -#line 715 "rcparse.y" -{ - 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, - dialog.ex); - } - break; -case 89: -#line 720 "rcparse.y" -{ - default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - class = CTL_EDIT; - } - break; -case 90: -#line 726 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - if (dialog.ex == NULL) - rcparse_warning (_("IEDIT requires DIALOGEX")); - res_string_to_id (&yyval.dialog_control->class, "IEDIT"); - } - break; -case 91: -#line 733 "rcparse.y" -{ - default_style = LBS_NOTIFY | WS_BORDER; - base_style = LBS_NOTIFY | WS_BORDER; - class = CTL_LISTBOX; - } - break; -case 92: -#line 739 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 93: -#line 743 "rcparse.y" -{ - default_style = SS_LEFT | WS_GROUP; - base_style = SS_LEFT; - class = CTL_STATIC; - } - break; -case 94: -#line 749 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 95: -#line 753 "rcparse.y" -{ - default_style = BS_PUSHBOX | WS_TABSTOP; - base_style = BS_PUSHBOX; - class = CTL_BUTTON; - } - break; -case 96: -#line 759 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 97: -#line 763 "rcparse.y" -{ - default_style = BS_PUSHBUTTON | WS_TABSTOP; - base_style = BS_PUSHBUTTON | WS_TABSTOP; - class = CTL_BUTTON; - } - break; -case 98: -#line 769 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 99: -#line 773 "rcparse.y" -{ - default_style = BS_RADIOBUTTON | WS_TABSTOP; - base_style = BS_RADIOBUTTON; - class = CTL_BUTTON; - } - break; -case 100: -#line 779 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 101: -#line 783 "rcparse.y" -{ - default_style = SS_RIGHT | WS_GROUP; - base_style = SS_RIGHT; - class = CTL_STATIC; - } - break; -case 102: -#line 789 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 103: -#line 793 "rcparse.y" -{ - default_style = SBS_HORZ; - base_style = 0; - class = CTL_SCROLLBAR; - } - break; -case 104: -#line 799 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 105: -#line 803 "rcparse.y" -{ - default_style = BS_3STATE | WS_TABSTOP; - base_style = BS_3STATE; - class = CTL_BUTTON; - } - break; -case 106: -#line 809 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 107: -#line 814 "rcparse.y" -{ style = WS_CHILD | WS_VISIBLE; } - break; -case 108: -#line 816 "rcparse.y" -{ - yyval.dialog_control = define_control (yyvsp[-14].s, yyvsp[-12].il, yyvsp[-10].il, yyvsp[-8].il, yyvsp[-6].il, yyvsp[-4].il, CTL_BUTTON, - style, yyvsp[0].il); - } - break; -case 109: -#line 832 "rcparse.y" -{ - yyval.dialog_control = define_control (yyvsp[-6].s, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-2].il, yyvsp[-1].il, class, - default_style | WS_CHILD | WS_VISIBLE, 0); - if (yyvsp[0].rcdata_item != NULL) - { - if (dialog.ex == NULL) - rcparse_warning (_("control data requires DIALOGEX")); - yyval.dialog_control->data = yyvsp[0].rcdata_item; - } - } - break; -case 110: -#line 844 "rcparse.y" -{ - yyval.dialog_control = define_control (yyvsp[-8].s, yyvsp[-7].il, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, class, style, yyvsp[-1].il); - if (yyvsp[0].rcdata_item != NULL) - { - if (dialog.ex == NULL) - rcparse_warning (_("control data requires DIALOGEX")); - yyval.dialog_control->data = yyvsp[0].rcdata_item; - } - } - break; -case 111: -#line 855 "rcparse.y" -{ - yyval.dialog_control = define_control (yyvsp[-9].s, yyvsp[-8].il, yyvsp[-7].il, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, class, style, yyvsp[-2].il); - if (dialog.ex == NULL) - rcparse_warning (_("help ID requires DIALOGEX")); - yyval.dialog_control->help = yyvsp[-1].il; - yyval.dialog_control->data = yyvsp[0].rcdata_item; - } - break; -case 112: -#line 866 "rcparse.y" -{ - yyval.s = NULL; - } - break; -case 113: -#line 870 "rcparse.y" -{ - yyval.s = yyvsp[0].s; - } - break; -case 114: -#line 874 "rcparse.y" -{ - yyval.s = yyvsp[-1].s; - } - break; -case 115: -#line 881 "rcparse.y" -{ - yyval.rcdata_item = NULL; - } - break; -case 116: -#line 885 "rcparse.y" -{ - yyval.rcdata_item = yyvsp[-1].rcdata.first; - } - break; -case 117: -#line 894 "rcparse.y" -{ style = WS_CHILD | WS_VISIBLE; } - break; -case 119: -#line 900 "rcparse.y" -{ style = SS_ICON | WS_CHILD | WS_VISIBLE; } - break; -case 121: -#line 906 "rcparse.y" -{ style = base_style | WS_CHILD | WS_VISIBLE; } - break; -case 123: -#line 914 "rcparse.y" -{ - define_font (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 124: -#line 926 "rcparse.y" -{ - define_icon (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 125: -#line 939 "rcparse.y" -{ - language = yyvsp[-1].il | (yyvsp[0].il << SUBLANG_SHIFT); - } - break; -case 126: -#line 948 "rcparse.y" -{ - define_menu (yyvsp[-5].id, &yyvsp[-3].res_info, yyvsp[-1].menuitem); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 127: -#line 958 "rcparse.y" -{ - yyval.menuitem = NULL; - } - break; -case 128: -#line 962 "rcparse.y" -{ - if (yyvsp[-1].menuitem == NULL) - yyval.menuitem = yyvsp[0].menuitem; - else - { - struct menuitem **pp; - - for (pp = &yyvsp[-1].menuitem->next; *pp != NULL; pp = &(*pp)->next) - ; - *pp = yyvsp[0].menuitem; - yyval.menuitem = yyvsp[-1].menuitem; - } - } - break; -case 129: -#line 979 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-2].s, yyvsp[-1].il, yyvsp[0].is, 0, 0, NULL); - } - break; -case 130: -#line 983 "rcparse.y" -{ - yyval.menuitem = define_menuitem (NULL, 0, 0, 0, 0, NULL); - } - break; -case 131: -#line 987 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-4].s, 0, yyvsp[-3].is, 0, 0, yyvsp[-1].menuitem); - } - break; -case 132: -#line 994 "rcparse.y" -{ - yyval.is = 0; - } - break; -case 133: -#line 998 "rcparse.y" -{ - yyval.is = yyvsp[-2].is | yyvsp[0].is; - } - break; -case 134: -#line 1002 "rcparse.y" -{ - yyval.is = yyvsp[-1].is | yyvsp[0].is; - } - break; -case 135: -#line 1009 "rcparse.y" -{ - yyval.is = MENUITEM_CHECKED; - } - break; -case 136: -#line 1013 "rcparse.y" -{ - yyval.is = MENUITEM_GRAYED; - } - break; -case 137: -#line 1017 "rcparse.y" -{ - yyval.is = MENUITEM_HELP; - } - break; -case 138: -#line 1021 "rcparse.y" -{ - yyval.is = MENUITEM_INACTIVE; - } - break; -case 139: -#line 1025 "rcparse.y" -{ - yyval.is = MENUITEM_MENUBARBREAK; - } - break; -case 140: -#line 1029 "rcparse.y" -{ - yyval.is = MENUITEM_MENUBREAK; - } - break; -case 141: -#line 1038 "rcparse.y" -{ - define_menu (yyvsp[-5].id, &yyvsp[-3].res_info, yyvsp[-1].menuitem); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 142: -#line 1048 "rcparse.y" -{ - yyval.menuitem = NULL; - } - break; -case 143: -#line 1052 "rcparse.y" -{ - if (yyvsp[-1].menuitem == NULL) - yyval.menuitem = yyvsp[0].menuitem; - else - { - struct menuitem **pp; - - for (pp = &yyvsp[-1].menuitem->next; *pp != NULL; pp = &(*pp)->next) - ; - *pp = yyvsp[0].menuitem; - yyval.menuitem = yyvsp[-1].menuitem; - } - } - break; -case 144: -#line 1069 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[0].s, 0, 0, 0, 0, NULL); - } - break; -case 145: -#line 1073 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-1].s, yyvsp[0].il, 0, 0, 0, NULL); - } - break; -case 146: -#line 1077 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-3].s, yyvsp[-2].il, yyvsp[-1].il, yyvsp[0].il, 0, NULL); - } - break; -case 147: -#line 1081 "rcparse.y" -{ - yyval.menuitem = define_menuitem (NULL, 0, 0, 0, 0, NULL); - } - break; -case 148: -#line 1085 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-3].s, 0, 0, 0, 0, yyvsp[-1].menuitem); - } - break; -case 149: -#line 1089 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-4].s, yyvsp[-3].il, 0, 0, 0, yyvsp[-1].menuitem); - } - break; -case 150: -#line 1093 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-5].s, yyvsp[-4].il, yyvsp[-3].il, 0, 0, yyvsp[-1].menuitem); - } - break; -case 151: -#line 1098 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-7].s, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-1].menuitem); - } - break; -case 152: -#line 1107 "rcparse.y" -{ - define_messagetable (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 153: -#line 1119 "rcparse.y" -{ - define_rcdata (yyvsp[-5].id, &yyvsp[-3].res_info, yyvsp[-1].rcdata.first); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 154: -#line 1131 "rcparse.y" -{ - rcparse_rcdata (); - } - break; -case 155: -#line 1135 "rcparse.y" -{ - rcparse_normal (); - yyval.rcdata = yyvsp[0].rcdata; - } - break; -case 156: -#line 1143 "rcparse.y" -{ - yyval.rcdata.first = NULL; - yyval.rcdata.last = NULL; - } - break; -case 157: -#line 1148 "rcparse.y" -{ - yyval.rcdata = yyvsp[0].rcdata; - } - break; -case 158: -#line 1155 "rcparse.y" -{ - struct rcdata_item *ri; - - ri = define_rcdata_string (yyvsp[0].ss.s, yyvsp[0].ss.length); - yyval.rcdata.first = ri; - yyval.rcdata.last = ri; - } - break; -case 159: -#line 1163 "rcparse.y" -{ - struct rcdata_item *ri; - - ri = define_rcdata_number (yyvsp[0].i.val, yyvsp[0].i.dword); - yyval.rcdata.first = ri; - yyval.rcdata.last = ri; - } - break; -case 160: -#line 1171 "rcparse.y" -{ - struct rcdata_item *ri; - - ri = define_rcdata_string (yyvsp[0].ss.s, yyvsp[0].ss.length); - yyval.rcdata.first = yyvsp[-2].rcdata.first; - yyvsp[-2].rcdata.last->next = ri; - yyval.rcdata.last = ri; - } - break; -case 161: -#line 1180 "rcparse.y" -{ - struct rcdata_item *ri; - - ri = define_rcdata_number (yyvsp[0].i.val, yyvsp[0].i.dword); - yyval.rcdata.first = yyvsp[-2].rcdata.first; - yyvsp[-2].rcdata.last->next = ri; - yyval.rcdata.last = ri; - } - break; -case 162: -#line 1194 "rcparse.y" -{ sub_res_info = yyvsp[-1].res_info; } - break; -case 165: -#line 1201 "rcparse.y" -{ - define_stringtable (&sub_res_info, yyvsp[-1].il, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 166: -#line 1208 "rcparse.y" -{ - define_stringtable (&sub_res_info, yyvsp[-2].il, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 167: -#line 1221 "rcparse.y" -{ - define_user_data (yyvsp[-5].id, yyvsp[-4].id, &yyvsp[-3].res_info, yyvsp[-1].rcdata.first); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 168: -#line 1228 "rcparse.y" -{ - define_user_file (yyvsp[-3].id, yyvsp[-2].id, &yyvsp[-1].res_info, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 169: -#line 1240 "rcparse.y" -{ - define_versioninfo (yyvsp[-5].id, language, yyvsp[-3].fixver, yyvsp[-1].verinfo); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 170: -#line 1250 "rcparse.y" -{ - yyval.fixver = ((struct fixed_versioninfo *) - res_alloc (sizeof (struct fixed_versioninfo))); - memset (yyval.fixver, 0, sizeof (struct fixed_versioninfo)); - } - break; -case 171: -#line 1256 "rcparse.y" -{ - yyvsp[-5].fixver->file_version_ms = (yyvsp[-3].il << 16) | yyvsp[-2].il; - yyvsp[-5].fixver->file_version_ls = (yyvsp[-1].il << 16) | yyvsp[0].il; - yyval.fixver = yyvsp[-5].fixver; - } - break; -case 172: -#line 1262 "rcparse.y" -{ - yyvsp[-5].fixver->product_version_ms = (yyvsp[-3].il << 16) | yyvsp[-2].il; - yyvsp[-5].fixver->product_version_ls = (yyvsp[-1].il << 16) | yyvsp[0].il; - yyval.fixver = yyvsp[-5].fixver; - } - break; -case 173: -#line 1268 "rcparse.y" -{ - yyvsp[-2].fixver->file_flags_mask = yyvsp[0].il; - yyval.fixver = yyvsp[-2].fixver; - } - break; -case 174: -#line 1273 "rcparse.y" -{ - yyvsp[-2].fixver->file_flags = yyvsp[0].il; - yyval.fixver = yyvsp[-2].fixver; - } - break; -case 175: -#line 1278 "rcparse.y" -{ - yyvsp[-2].fixver->file_os = yyvsp[0].il; - yyval.fixver = yyvsp[-2].fixver; - } - break; -case 176: -#line 1283 "rcparse.y" -{ - yyvsp[-2].fixver->file_type = yyvsp[0].il; - yyval.fixver = yyvsp[-2].fixver; - } - break; -case 177: -#line 1288 "rcparse.y" -{ - yyvsp[-2].fixver->file_subtype = yyvsp[0].il; - yyval.fixver = yyvsp[-2].fixver; - } - break; -case 178: -#line 1302 "rcparse.y" -{ - yyval.verinfo = NULL; - } - break; -case 179: -#line 1306 "rcparse.y" -{ - yyval.verinfo = append_ver_stringfileinfo (yyvsp[-7].verinfo, yyvsp[-4].s, yyvsp[-2].verstring); - } - break; -case 180: -#line 1310 "rcparse.y" -{ - yyval.verinfo = append_ver_varfileinfo (yyvsp[-6].verinfo, yyvsp[-2].s, yyvsp[-1].vervar); - } - break; -case 181: -#line 1317 "rcparse.y" -{ - yyval.verstring = NULL; - } - break; -case 182: -#line 1321 "rcparse.y" -{ - yyval.verstring = append_verval (yyvsp[-4].verstring, yyvsp[-2].s, yyvsp[0].s); - } - break; -case 183: -#line 1328 "rcparse.y" -{ - yyval.vervar = NULL; - } - break; -case 184: -#line 1332 "rcparse.y" -{ - yyval.vervar = append_vertrans (yyvsp[-2].vervar, yyvsp[-1].il, yyvsp[0].il); - } - break; -case 185: -#line 1341 "rcparse.y" -{ - yyval.id.named = 0; - yyval.id.u.id = yyvsp[0].il; - } - break; -case 186: -#line 1346 "rcparse.y" -{ - char *copy, *s; - - /* It seems that resource ID's are forced to upper case. */ - copy = xstrdup (yyvsp[0].s); - for (s = copy; *s != '\0'; s++) - *s = TOUPPER (*s); - res_string_to_id (&yyval.id, copy); - free (copy); - } - break; -case 187: -#line 1362 "rcparse.y" -{ - yyval.s = yyvsp[0].s; - } - break; -case 188: -#line 1366 "rcparse.y" -{ - yyval.s = yyvsp[-1].s; - } - break; -case 189: -#line 1370 "rcparse.y" -{ - yyval.s = yyvsp[-1].s; - } - break; -case 190: -#line 1378 "rcparse.y" -{ - yyval.id.named = 0; - yyval.id.u.id = yyvsp[-1].il; - } - break; -case 191: -#line 1383 "rcparse.y" -{ - char *copy, *s; - - /* It seems that resource ID's are forced to upper case. */ - copy = xstrdup (yyvsp[0].s); - for (s = copy; *s != '\0'; s++) - *s = TOUPPER (*s); - res_string_to_id (&yyval.id, copy); - free (copy); - } - break; -case 192: -#line 1400 "rcparse.y" -{ - memset (&yyval.res_info, 0, sizeof (struct res_res_info)); - yyval.res_info.language = language; - /* FIXME: Is this the right default? */ - yyval.res_info.memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE; - } - break; -case 193: -#line 1407 "rcparse.y" -{ - yyval.res_info = yyvsp[-1].res_info; - yyval.res_info.memflags |= yyvsp[0].memflags.on; - yyval.res_info.memflags &=~ yyvsp[0].memflags.off; - } - break; -case 194: -#line 1413 "rcparse.y" -{ - yyval.res_info = yyvsp[-2].res_info; - yyval.res_info.characteristics = yyvsp[0].il; - } - break; -case 195: -#line 1418 "rcparse.y" -{ - yyval.res_info = yyvsp[-3].res_info; - yyval.res_info.language = yyvsp[-1].il | (yyvsp[0].il << SUBLANG_SHIFT); - } - break; -case 196: -#line 1423 "rcparse.y" -{ - yyval.res_info = yyvsp[-2].res_info; - yyval.res_info.version = yyvsp[0].il; - } - break; -case 197: -#line 1433 "rcparse.y" -{ - memset (&yyval.res_info, 0, sizeof (struct res_res_info)); - yyval.res_info.language = language; - yyval.res_info.memflags = MEMFLAG_MOVEABLE | MEMFLAG_DISCARDABLE; - } - break; -case 198: -#line 1439 "rcparse.y" -{ - yyval.res_info = yyvsp[-1].res_info; - yyval.res_info.memflags |= yyvsp[0].memflags.on; - yyval.res_info.memflags &=~ yyvsp[0].memflags.off; - } - break; -case 199: -#line 1450 "rcparse.y" -{ - memset (&yyval.res_info, 0, sizeof (struct res_res_info)); - yyval.res_info.language = language; - yyval.res_info.memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE; - } - break; -case 200: -#line 1456 "rcparse.y" -{ - yyval.res_info = yyvsp[-1].res_info; - yyval.res_info.memflags |= yyvsp[0].memflags.on; - yyval.res_info.memflags &=~ yyvsp[0].memflags.off; - } - break; -case 201: -#line 1468 "rcparse.y" -{ - yyval.memflags.on = MEMFLAG_MOVEABLE; - yyval.memflags.off = 0; - } - break; -case 202: -#line 1473 "rcparse.y" -{ - yyval.memflags.on = 0; - yyval.memflags.off = MEMFLAG_MOVEABLE; - } - break; -case 203: -#line 1478 "rcparse.y" -{ - yyval.memflags.on = MEMFLAG_PURE; - yyval.memflags.off = 0; - } - break; -case 204: -#line 1483 "rcparse.y" -{ - yyval.memflags.on = 0; - yyval.memflags.off = MEMFLAG_PURE; - } - break; -case 205: -#line 1488 "rcparse.y" -{ - yyval.memflags.on = MEMFLAG_PRELOAD; - yyval.memflags.off = 0; - } - break; -case 206: -#line 1493 "rcparse.y" -{ - yyval.memflags.on = 0; - yyval.memflags.off = MEMFLAG_PRELOAD; - } - break; -case 207: -#line 1498 "rcparse.y" -{ - yyval.memflags.on = MEMFLAG_DISCARDABLE; - yyval.memflags.off = 0; - } - break; -case 208: -#line 1508 "rcparse.y" -{ - yyval.s = yyvsp[0].s; - } - break; -case 209: -#line 1512 "rcparse.y" -{ - yyval.s = yyvsp[0].s; - } - break; -case 210: -#line 1529 "rcparse.y" -{ - style |= yyvsp[0].il; - } - break; -case 211: -#line 1533 "rcparse.y" -{ - style &=~ yyvsp[0].il; - } - break; -case 212: -#line 1537 "rcparse.y" -{ - style |= yyvsp[0].il; - } - break; -case 213: -#line 1541 "rcparse.y" -{ - style &=~ yyvsp[0].il; - } - break; -case 214: -#line 1548 "rcparse.y" -{ - yyval.il = yyvsp[0].i.val; - } - break; -case 215: -#line 1552 "rcparse.y" -{ - yyval.il = yyvsp[-1].il; - } - break; -case 216: -#line 1561 "rcparse.y" -{ - yyval.il = 0; - } - break; -case 217: -#line 1565 "rcparse.y" -{ - yyval.il = yyvsp[0].il; - } - break; -case 218: -#line 1574 "rcparse.y" -{ - yyval.il = yyvsp[0].il; - } - break; -case 219: -#line 1583 "rcparse.y" -{ - yyval.il = yyvsp[0].i.val; - } - break; -case 220: -#line 1592 "rcparse.y" -{ - yyval.i = yyvsp[0].i; - } - break; -case 221: -#line 1596 "rcparse.y" -{ - yyval.i = yyvsp[-1].i; - } - break; -case 222: -#line 1600 "rcparse.y" -{ - yyval.i.val = ~ yyvsp[0].i.val; - yyval.i.dword = yyvsp[0].i.dword; - } - break; -case 223: -#line 1605 "rcparse.y" -{ - yyval.i.val = - yyvsp[0].i.val; - yyval.i.dword = yyvsp[0].i.dword; - } - break; -case 224: -#line 1610 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val * yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 225: -#line 1615 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val / yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 226: -#line 1620 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val % yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 227: -#line 1625 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val + yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 228: -#line 1630 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val - yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 229: -#line 1635 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val & yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 230: -#line 1640 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val ^ yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 231: -#line 1645 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val | yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 232: -#line 1656 "rcparse.y" -{ - yyval.il = yyvsp[0].il; - } - break; -case 233: -#line 1665 "rcparse.y" -{ - yyval.il = yyvsp[0].i.val; - } - break; -case 234: -#line 1676 "rcparse.y" -{ - yyval.i = yyvsp[0].i; - } - break; -case 235: -#line 1680 "rcparse.y" -{ - yyval.i = yyvsp[-1].i; - } - break; -case 236: -#line 1684 "rcparse.y" -{ - yyval.i.val = ~ yyvsp[0].i.val; - yyval.i.dword = yyvsp[0].i.dword; - } - break; -case 237: -#line 1689 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val * yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 238: -#line 1694 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val / yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 239: -#line 1699 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val % yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 240: -#line 1704 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val + yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 241: -#line 1709 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val - yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 242: -#line 1714 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val & yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 243: -#line 1719 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val ^ yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 244: -#line 1724 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val | yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -} - -#line 705 "/usr/share/bison/bison.simple" - - - yyvsp -= yylen; - yyssp -= yylen; -#if YYLSP_NEEDED - yylsp -= yylen; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - - *++yyvsp = yyval; -#if YYLSP_NEEDED - *++yylsp = yyloc; -#endif - - /* Now `shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; - - goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - YYSIZE_T yysize = 0; - char *yymsg; - int yyx, yycount; - - yycount = 0; - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) - if (yycheck[yyx + yyn] == yyx) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); - yymsg = (char *) YYSTACK_ALLOC (yysize); - if (yymsg != 0) - { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); - - if (yycount < 5) - { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) - if (yycheck[yyx + yyn] == yyx) - { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); - yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; - } - } - yyerror (yymsg); - YYSTACK_FREE (yymsg); - } - else - yyerror ("parse error; also virtual memory exhausted"); - } - else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); - } - goto yyerrlab1; - - -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: - if (yyerrstatus == 3) - { - /* If just tried and failed to reuse lookahead token after an - error, discard it. */ - - /* return failure if at end of input */ - if (yychar == YYEOF) - YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yychar = YYEMPTY; - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - - -/*-------------------------------------------------------------------. -| yyerrdefault -- current state does not do anything special for the | -| error token. | -`-------------------------------------------------------------------*/ -yyerrdefault: -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; -#endif - - -/*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | -`---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; - yyvsp--; - yystate = *--yyssp; -#if YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - -/*--------------. -| yyerrhandle. | -`--------------*/ -yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - - if (yyn == YYFINAL) - YYACCEPT; - - YYDPRINTF ((stderr, "Shifting error token, ")); - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ -yyoverflowlab: - yyerror ("parser stack overflow"); - yyresult = 2; - /* Fall through. */ - -yyreturn: -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif - return yyresult; -} -#line 1730 "rcparse.y" - - -/* Set the language from the command line. */ - -void -rcparse_set_language (lang) - int lang; -{ - language = lang; -} |