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