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