xref: /netbsd-src/external/gpl3/binutils.old/dist/binutils/rcparse.c (revision e992f068c547fd6e84b3f104dc2340adcc955732)
1*e992f068Schristos /* A Bison parser, made by GNU Bison 3.8.2.  */
275fd0b74Schristos 
3ede78133Schristos /* Bison implementation for Yacc-like parsers in C
475fd0b74Schristos 
5*e992f068Schristos    Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6*e992f068Schristos    Inc.
775fd0b74Schristos 
8ede78133Schristos    This program is free software: you can redistribute it and/or modify
975fd0b74Schristos    it under the terms of the GNU General Public License as published by
10ede78133Schristos    the Free Software Foundation, either version 3 of the License, or
11ede78133Schristos    (at your option) any later version.
1275fd0b74Schristos 
1375fd0b74Schristos    This program is distributed in the hope that it will be useful,
1475fd0b74Schristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
1575fd0b74Schristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1675fd0b74Schristos    GNU General Public License for more details.
1775fd0b74Schristos 
1875fd0b74Schristos    You should have received a copy of the GNU General Public License
19*e992f068Schristos    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
2075fd0b74Schristos 
2175fd0b74Schristos /* As a special exception, you may create a larger work that contains
2275fd0b74Schristos    part or all of the Bison parser skeleton and distribute that work
2375fd0b74Schristos    under terms of your choice, so long as that work isn't itself a
2475fd0b74Schristos    parser generator using the skeleton or a modified version thereof
2575fd0b74Schristos    as a parser skeleton.  Alternatively, if you modify or redistribute
2675fd0b74Schristos    the parser skeleton itself, you may (at your option) remove this
2775fd0b74Schristos    special exception, which will cause the skeleton and the resulting
2875fd0b74Schristos    Bison output files to be licensed under the GNU General Public
2975fd0b74Schristos    License without this special exception.
3075fd0b74Schristos 
3175fd0b74Schristos    This special exception was added by the Free Software Foundation in
3275fd0b74Schristos    version 2.2 of Bison.  */
3375fd0b74Schristos 
3475fd0b74Schristos /* C LALR(1) parser skeleton written by Richard Stallman, by
3575fd0b74Schristos    simplifying the original so-called "semantic" parser.  */
3675fd0b74Schristos 
37*e992f068Schristos /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38*e992f068Schristos    especially those whose name start with YY_ or yy_.  They are
39*e992f068Schristos    private implementation details that can be changed or removed.  */
40*e992f068Schristos 
4175fd0b74Schristos /* All symbols defined below should begin with yy or YY, to avoid
4275fd0b74Schristos    infringing on user name space.  This should be done even for local
4375fd0b74Schristos    variables, as they might otherwise be expanded by user macros.
4475fd0b74Schristos    There are some unavoidable exceptions within include files to
4575fd0b74Schristos    define necessary library symbols; they are noted "INFRINGES ON
4675fd0b74Schristos    USER NAME SPACE" below.  */
4775fd0b74Schristos 
48*e992f068Schristos /* Identify Bison output, and Bison version.  */
49*e992f068Schristos #define YYBISON 30802
5075fd0b74Schristos 
51*e992f068Schristos /* Bison version string.  */
52*e992f068Schristos #define YYBISON_VERSION "3.8.2"
5375fd0b74Schristos 
5475fd0b74Schristos /* Skeleton name.  */
5575fd0b74Schristos #define YYSKELETON_NAME "yacc.c"
5675fd0b74Schristos 
5775fd0b74Schristos /* Pure parsers.  */
5875fd0b74Schristos #define YYPURE 0
5975fd0b74Schristos 
60ede78133Schristos /* Push parsers.  */
61ede78133Schristos #define YYPUSH 0
62ede78133Schristos 
63ede78133Schristos /* Pull parsers.  */
64ede78133Schristos #define YYPULL 1
6575fd0b74Schristos 
6675fd0b74Schristos 
6775fd0b74Schristos 
68ede78133Schristos 
69*e992f068Schristos /* First part of user prologue.  */
70*e992f068Schristos #line 1 "rcparse.y"
71ede78133Schristos  /* rcparse.y -- parser for Windows rc files
72*e992f068Schristos    Copyright (C) 1997-2022 Free Software Foundation, Inc.
73ede78133Schristos    Written by Ian Lance Taylor, Cygnus Support.
74ede78133Schristos    Extended by Kai Tietz, Onevision.
75ede78133Schristos 
76ede78133Schristos    This file is part of GNU Binutils.
77ede78133Schristos 
78ede78133Schristos    This program is free software; you can redistribute it and/or modify
79ede78133Schristos    it under the terms of the GNU General Public License as published by
80ede78133Schristos    the Free Software Foundation; either version 3 of the License, or
81ede78133Schristos    (at your option) any later version.
82ede78133Schristos 
83ede78133Schristos    This program is distributed in the hope that it will be useful,
84ede78133Schristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
85ede78133Schristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
86ede78133Schristos    GNU General Public License for more details.
87ede78133Schristos 
88ede78133Schristos    You should have received a copy of the GNU General Public License
89ede78133Schristos    along with this program; if not, write to the Free Software
90ede78133Schristos    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
91ede78133Schristos    02110-1301, USA.  */
92ede78133Schristos 
93ede78133Schristos 
94ede78133Schristos /* This is a parser for Windows rc files.  It is based on the parser
95ede78133Schristos    by Gunther Ebert <gunther.ebert@ixos-leipzig.de>.  */
96ede78133Schristos 
97ede78133Schristos #include "sysdep.h"
98ede78133Schristos #include "bfd.h"
99ede78133Schristos #include "bucomm.h"
100ede78133Schristos #include "libiberty.h"
101ede78133Schristos #include "windres.h"
102ede78133Schristos #include "safe-ctype.h"
103ede78133Schristos 
104ede78133Schristos /* The current language.  */
105ede78133Schristos 
106ede78133Schristos static unsigned short language;
107ede78133Schristos 
108ede78133Schristos /* The resource information during a sub statement.  */
109ede78133Schristos 
110ede78133Schristos static rc_res_res_info sub_res_info;
111ede78133Schristos 
112ede78133Schristos /* Dialog information.  This is built by the nonterminals styles and
113ede78133Schristos    controls.  */
114ede78133Schristos 
115ede78133Schristos static rc_dialog dialog;
116ede78133Schristos 
117ede78133Schristos /* This is used when building a style.  It is modified by the
118ede78133Schristos    nonterminal styleexpr.  */
119ede78133Schristos 
120ede78133Schristos static unsigned long style;
121ede78133Schristos 
122ede78133Schristos /* These are used when building a control.  They are set before using
123ede78133Schristos    control_params.  */
124ede78133Schristos 
125ede78133Schristos static rc_uint_type base_style;
126ede78133Schristos static rc_uint_type default_style;
127ede78133Schristos static rc_res_id class;
128ede78133Schristos static rc_res_id res_text_field;
129ede78133Schristos static unichar null_unichar;
130ede78133Schristos 
131ede78133Schristos /* This is used for COMBOBOX, LISTBOX and EDITTEXT which
132ede78133Schristos    do not allow resource 'text' field in control definition. */
133ede78133Schristos static const rc_res_id res_null_text = { 1, {{0, &null_unichar}}};
134ede78133Schristos 
135ede78133Schristos 
136*e992f068Schristos #line 137 "rcparse.c"
137ede78133Schristos 
138*e992f068Schristos # ifndef YY_CAST
139*e992f068Schristos #  ifdef __cplusplus
140*e992f068Schristos #   define YY_CAST(Type, Val) static_cast<Type> (Val)
141*e992f068Schristos #   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
142*e992f068Schristos #  else
143*e992f068Schristos #   define YY_CAST(Type, Val) ((Type) (Val))
144*e992f068Schristos #   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
145*e992f068Schristos #  endif
146*e992f068Schristos # endif
147ede78133Schristos # ifndef YY_NULLPTR
148*e992f068Schristos #  if defined __cplusplus
149*e992f068Schristos #   if 201103L <= __cplusplus
150ede78133Schristos #    define YY_NULLPTR nullptr
151ede78133Schristos #   else
152ede78133Schristos #    define YY_NULLPTR 0
153ede78133Schristos #   endif
154ede78133Schristos #  else
155*e992f068Schristos #   define YY_NULLPTR ((void*)0)
156*e992f068Schristos #  endif
157ede78133Schristos # endif
158ede78133Schristos 
159*e992f068Schristos /* Use api.header.include to #include this header
160*e992f068Schristos    instead of duplicating it here.  */
161ede78133Schristos #ifndef YY_YY_RCPARSE_H_INCLUDED
162ede78133Schristos # define YY_YY_RCPARSE_H_INCLUDED
163ede78133Schristos /* Debug traces.  */
164ede78133Schristos #ifndef YYDEBUG
165ede78133Schristos # define YYDEBUG 0
166ede78133Schristos #endif
167ede78133Schristos #if YYDEBUG
168ede78133Schristos extern int yydebug;
169ede78133Schristos #endif
170ede78133Schristos 
171*e992f068Schristos /* Token kinds.  */
17275fd0b74Schristos #ifndef YYTOKENTYPE
17375fd0b74Schristos # define YYTOKENTYPE
174ede78133Schristos   enum yytokentype
175ede78133Schristos   {
176*e992f068Schristos     YYEMPTY = -2,
177*e992f068Schristos     YYEOF = 0,                     /* "end of file"  */
178*e992f068Schristos     YYerror = 256,                 /* error  */
179*e992f068Schristos     YYUNDEF = 257,                 /* "invalid token"  */
180*e992f068Schristos     BEG = 258,                     /* BEG  */
181*e992f068Schristos     END = 259,                     /* END  */
182*e992f068Schristos     ACCELERATORS = 260,            /* ACCELERATORS  */
183*e992f068Schristos     VIRTKEY = 261,                 /* VIRTKEY  */
184*e992f068Schristos     ASCII = 262,                   /* ASCII  */
185*e992f068Schristos     NOINVERT = 263,                /* NOINVERT  */
186*e992f068Schristos     SHIFT = 264,                   /* SHIFT  */
187*e992f068Schristos     CONTROL = 265,                 /* CONTROL  */
188*e992f068Schristos     ALT = 266,                     /* ALT  */
189*e992f068Schristos     BITMAP = 267,                  /* BITMAP  */
190*e992f068Schristos     CURSOR = 268,                  /* CURSOR  */
191*e992f068Schristos     DIALOG = 269,                  /* DIALOG  */
192*e992f068Schristos     DIALOGEX = 270,                /* DIALOGEX  */
193*e992f068Schristos     EXSTYLE = 271,                 /* EXSTYLE  */
194*e992f068Schristos     CAPTION = 272,                 /* CAPTION  */
195*e992f068Schristos     CLASS = 273,                   /* CLASS  */
196*e992f068Schristos     STYLE = 274,                   /* STYLE  */
197*e992f068Schristos     AUTO3STATE = 275,              /* AUTO3STATE  */
198*e992f068Schristos     AUTOCHECKBOX = 276,            /* AUTOCHECKBOX  */
199*e992f068Schristos     AUTORADIOBUTTON = 277,         /* AUTORADIOBUTTON  */
200*e992f068Schristos     CHECKBOX = 278,                /* CHECKBOX  */
201*e992f068Schristos     COMBOBOX = 279,                /* COMBOBOX  */
202*e992f068Schristos     CTEXT = 280,                   /* CTEXT  */
203*e992f068Schristos     DEFPUSHBUTTON = 281,           /* DEFPUSHBUTTON  */
204*e992f068Schristos     EDITTEXT = 282,                /* EDITTEXT  */
205*e992f068Schristos     GROUPBOX = 283,                /* GROUPBOX  */
206*e992f068Schristos     LISTBOX = 284,                 /* LISTBOX  */
207*e992f068Schristos     LTEXT = 285,                   /* LTEXT  */
208*e992f068Schristos     PUSHBOX = 286,                 /* PUSHBOX  */
209*e992f068Schristos     PUSHBUTTON = 287,              /* PUSHBUTTON  */
210*e992f068Schristos     RADIOBUTTON = 288,             /* RADIOBUTTON  */
211*e992f068Schristos     RTEXT = 289,                   /* RTEXT  */
212*e992f068Schristos     SCROLLBAR = 290,               /* SCROLLBAR  */
213*e992f068Schristos     STATE3 = 291,                  /* STATE3  */
214*e992f068Schristos     USERBUTTON = 292,              /* USERBUTTON  */
215*e992f068Schristos     BEDIT = 293,                   /* BEDIT  */
216*e992f068Schristos     HEDIT = 294,                   /* HEDIT  */
217*e992f068Schristos     IEDIT = 295,                   /* IEDIT  */
218*e992f068Schristos     FONT = 296,                    /* FONT  */
219*e992f068Schristos     ICON = 297,                    /* ICON  */
220*e992f068Schristos     ANICURSOR = 298,               /* ANICURSOR  */
221*e992f068Schristos     ANIICON = 299,                 /* ANIICON  */
222*e992f068Schristos     DLGINCLUDE = 300,              /* DLGINCLUDE  */
223*e992f068Schristos     DLGINIT = 301,                 /* DLGINIT  */
224*e992f068Schristos     FONTDIR = 302,                 /* FONTDIR  */
225*e992f068Schristos     HTML = 303,                    /* HTML  */
226*e992f068Schristos     MANIFEST = 304,                /* MANIFEST  */
227*e992f068Schristos     PLUGPLAY = 305,                /* PLUGPLAY  */
228*e992f068Schristos     VXD = 306,                     /* VXD  */
229*e992f068Schristos     TOOLBAR = 307,                 /* TOOLBAR  */
230*e992f068Schristos     BUTTON = 308,                  /* BUTTON  */
231*e992f068Schristos     LANGUAGE = 309,                /* LANGUAGE  */
232*e992f068Schristos     CHARACTERISTICS = 310,         /* CHARACTERISTICS  */
233*e992f068Schristos     VERSIONK = 311,                /* VERSIONK  */
234*e992f068Schristos     MENU = 312,                    /* MENU  */
235*e992f068Schristos     MENUEX = 313,                  /* MENUEX  */
236*e992f068Schristos     MENUITEM = 314,                /* MENUITEM  */
237*e992f068Schristos     SEPARATOR = 315,               /* SEPARATOR  */
238*e992f068Schristos     POPUP = 316,                   /* POPUP  */
239*e992f068Schristos     CHECKED = 317,                 /* CHECKED  */
240*e992f068Schristos     GRAYED = 318,                  /* GRAYED  */
241*e992f068Schristos     HELP = 319,                    /* HELP  */
242*e992f068Schristos     INACTIVE = 320,                /* INACTIVE  */
243*e992f068Schristos     OWNERDRAW = 321,               /* OWNERDRAW  */
244*e992f068Schristos     MENUBARBREAK = 322,            /* MENUBARBREAK  */
245*e992f068Schristos     MENUBREAK = 323,               /* MENUBREAK  */
246*e992f068Schristos     MESSAGETABLE = 324,            /* MESSAGETABLE  */
247*e992f068Schristos     RCDATA = 325,                  /* RCDATA  */
248*e992f068Schristos     STRINGTABLE = 326,             /* STRINGTABLE  */
249*e992f068Schristos     VERSIONINFO = 327,             /* VERSIONINFO  */
250*e992f068Schristos     FILEVERSION = 328,             /* FILEVERSION  */
251*e992f068Schristos     PRODUCTVERSION = 329,          /* PRODUCTVERSION  */
252*e992f068Schristos     FILEFLAGSMASK = 330,           /* FILEFLAGSMASK  */
253*e992f068Schristos     FILEFLAGS = 331,               /* FILEFLAGS  */
254*e992f068Schristos     FILEOS = 332,                  /* FILEOS  */
255*e992f068Schristos     FILETYPE = 333,                /* FILETYPE  */
256*e992f068Schristos     FILESUBTYPE = 334,             /* FILESUBTYPE  */
257*e992f068Schristos     BLOCKSTRINGFILEINFO = 335,     /* BLOCKSTRINGFILEINFO  */
258*e992f068Schristos     BLOCKVARFILEINFO = 336,        /* BLOCKVARFILEINFO  */
259*e992f068Schristos     VALUE = 337,                   /* VALUE  */
260*e992f068Schristos     BLOCK = 338,                   /* BLOCK  */
261*e992f068Schristos     MOVEABLE = 339,                /* MOVEABLE  */
262*e992f068Schristos     FIXED = 340,                   /* FIXED  */
263*e992f068Schristos     PURE = 341,                    /* PURE  */
264*e992f068Schristos     IMPURE = 342,                  /* IMPURE  */
265*e992f068Schristos     PRELOAD = 343,                 /* PRELOAD  */
266*e992f068Schristos     LOADONCALL = 344,              /* LOADONCALL  */
267*e992f068Schristos     DISCARDABLE = 345,             /* DISCARDABLE  */
268*e992f068Schristos     NOT = 346,                     /* NOT  */
269*e992f068Schristos     QUOTEDUNISTRING = 347,         /* QUOTEDUNISTRING  */
270*e992f068Schristos     QUOTEDSTRING = 348,            /* QUOTEDSTRING  */
271*e992f068Schristos     STRING = 349,                  /* STRING  */
272*e992f068Schristos     NUMBER = 350,                  /* NUMBER  */
273*e992f068Schristos     SIZEDUNISTRING = 351,          /* SIZEDUNISTRING  */
274*e992f068Schristos     SIZEDSTRING = 352,             /* SIZEDSTRING  */
275*e992f068Schristos     IGNORED_TOKEN = 353,           /* IGNORED_TOKEN  */
276*e992f068Schristos     NEG = 354                      /* NEG  */
27775fd0b74Schristos   };
278*e992f068Schristos   typedef enum yytokentype yytoken_kind_t;
27975fd0b74Schristos #endif
280*e992f068Schristos /* Token kinds.  */
281*e992f068Schristos #define YYEMPTY -2
282*e992f068Schristos #define YYEOF 0
283*e992f068Schristos #define YYerror 256
284*e992f068Schristos #define YYUNDEF 257
28575fd0b74Schristos #define BEG 258
28675fd0b74Schristos #define END 259
28775fd0b74Schristos #define ACCELERATORS 260
28875fd0b74Schristos #define VIRTKEY 261
28975fd0b74Schristos #define ASCII 262
29075fd0b74Schristos #define NOINVERT 263
29175fd0b74Schristos #define SHIFT 264
29275fd0b74Schristos #define CONTROL 265
29375fd0b74Schristos #define ALT 266
29475fd0b74Schristos #define BITMAP 267
29575fd0b74Schristos #define CURSOR 268
29675fd0b74Schristos #define DIALOG 269
29775fd0b74Schristos #define DIALOGEX 270
29875fd0b74Schristos #define EXSTYLE 271
29975fd0b74Schristos #define CAPTION 272
30075fd0b74Schristos #define CLASS 273
30175fd0b74Schristos #define STYLE 274
30275fd0b74Schristos #define AUTO3STATE 275
30375fd0b74Schristos #define AUTOCHECKBOX 276
30475fd0b74Schristos #define AUTORADIOBUTTON 277
30575fd0b74Schristos #define CHECKBOX 278
30675fd0b74Schristos #define COMBOBOX 279
30775fd0b74Schristos #define CTEXT 280
30875fd0b74Schristos #define DEFPUSHBUTTON 281
30975fd0b74Schristos #define EDITTEXT 282
31075fd0b74Schristos #define GROUPBOX 283
31175fd0b74Schristos #define LISTBOX 284
31275fd0b74Schristos #define LTEXT 285
31375fd0b74Schristos #define PUSHBOX 286
31475fd0b74Schristos #define PUSHBUTTON 287
31575fd0b74Schristos #define RADIOBUTTON 288
31675fd0b74Schristos #define RTEXT 289
31775fd0b74Schristos #define SCROLLBAR 290
31875fd0b74Schristos #define STATE3 291
31975fd0b74Schristos #define USERBUTTON 292
32075fd0b74Schristos #define BEDIT 293
32175fd0b74Schristos #define HEDIT 294
32275fd0b74Schristos #define IEDIT 295
32375fd0b74Schristos #define FONT 296
32475fd0b74Schristos #define ICON 297
32575fd0b74Schristos #define ANICURSOR 298
32675fd0b74Schristos #define ANIICON 299
32775fd0b74Schristos #define DLGINCLUDE 300
32875fd0b74Schristos #define DLGINIT 301
32975fd0b74Schristos #define FONTDIR 302
33075fd0b74Schristos #define HTML 303
33175fd0b74Schristos #define MANIFEST 304
33275fd0b74Schristos #define PLUGPLAY 305
33375fd0b74Schristos #define VXD 306
33475fd0b74Schristos #define TOOLBAR 307
33575fd0b74Schristos #define BUTTON 308
33675fd0b74Schristos #define LANGUAGE 309
33775fd0b74Schristos #define CHARACTERISTICS 310
33875fd0b74Schristos #define VERSIONK 311
33975fd0b74Schristos #define MENU 312
34075fd0b74Schristos #define MENUEX 313
34175fd0b74Schristos #define MENUITEM 314
34275fd0b74Schristos #define SEPARATOR 315
34375fd0b74Schristos #define POPUP 316
34475fd0b74Schristos #define CHECKED 317
34575fd0b74Schristos #define GRAYED 318
34675fd0b74Schristos #define HELP 319
34775fd0b74Schristos #define INACTIVE 320
348*e992f068Schristos #define OWNERDRAW 321
349*e992f068Schristos #define MENUBARBREAK 322
350*e992f068Schristos #define MENUBREAK 323
351*e992f068Schristos #define MESSAGETABLE 324
352*e992f068Schristos #define RCDATA 325
353*e992f068Schristos #define STRINGTABLE 326
354*e992f068Schristos #define VERSIONINFO 327
355*e992f068Schristos #define FILEVERSION 328
356*e992f068Schristos #define PRODUCTVERSION 329
357*e992f068Schristos #define FILEFLAGSMASK 330
358*e992f068Schristos #define FILEFLAGS 331
359*e992f068Schristos #define FILEOS 332
360*e992f068Schristos #define FILETYPE 333
361*e992f068Schristos #define FILESUBTYPE 334
362*e992f068Schristos #define BLOCKSTRINGFILEINFO 335
363*e992f068Schristos #define BLOCKVARFILEINFO 336
364*e992f068Schristos #define VALUE 337
365*e992f068Schristos #define BLOCK 338
366*e992f068Schristos #define MOVEABLE 339
367*e992f068Schristos #define FIXED 340
368*e992f068Schristos #define PURE 341
369*e992f068Schristos #define IMPURE 342
370*e992f068Schristos #define PRELOAD 343
371*e992f068Schristos #define LOADONCALL 344
372*e992f068Schristos #define DISCARDABLE 345
373*e992f068Schristos #define NOT 346
374*e992f068Schristos #define QUOTEDUNISTRING 347
375*e992f068Schristos #define QUOTEDSTRING 348
376*e992f068Schristos #define STRING 349
377*e992f068Schristos #define NUMBER 350
378*e992f068Schristos #define SIZEDUNISTRING 351
379*e992f068Schristos #define SIZEDSTRING 352
380*e992f068Schristos #define IGNORED_TOKEN 353
381*e992f068Schristos #define NEG 354
38275fd0b74Schristos 
383ede78133Schristos /* Value type.  */
38475fd0b74Schristos #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
385ede78133Schristos union YYSTYPE
38675fd0b74Schristos {
387*e992f068Schristos #line 68 "rcparse.y"
388ede78133Schristos 
38975fd0b74Schristos   rc_accelerator acc;
39075fd0b74Schristos   rc_accelerator *pacc;
39175fd0b74Schristos   rc_dialog_control *dialog_control;
39275fd0b74Schristos   rc_menuitem *menuitem;
39375fd0b74Schristos   struct
39475fd0b74Schristos   {
39575fd0b74Schristos     rc_rcdata_item *first;
39675fd0b74Schristos     rc_rcdata_item *last;
39775fd0b74Schristos   } rcdata;
39875fd0b74Schristos   rc_rcdata_item *rcdata_item;
39975fd0b74Schristos   rc_fixed_versioninfo *fixver;
40075fd0b74Schristos   rc_ver_info *verinfo;
40175fd0b74Schristos   rc_ver_stringtable *verstringtable;
40275fd0b74Schristos   rc_ver_stringinfo *verstring;
40375fd0b74Schristos   rc_ver_varinfo *vervar;
40475fd0b74Schristos   rc_toolbar_item *toobar_item;
40575fd0b74Schristos   rc_res_id id;
40675fd0b74Schristos   rc_res_res_info res_info;
40775fd0b74Schristos   struct
40875fd0b74Schristos   {
40975fd0b74Schristos     rc_uint_type on;
41075fd0b74Schristos     rc_uint_type off;
41175fd0b74Schristos   } memflags;
41275fd0b74Schristos   struct
41375fd0b74Schristos   {
41475fd0b74Schristos     rc_uint_type val;
41575fd0b74Schristos     /* Nonzero if this number was explicitly specified as long.  */
41675fd0b74Schristos     int dword;
41775fd0b74Schristos   } i;
41875fd0b74Schristos   rc_uint_type il;
41975fd0b74Schristos   rc_uint_type is;
42075fd0b74Schristos   const char *s;
42175fd0b74Schristos   struct
42275fd0b74Schristos   {
42375fd0b74Schristos     rc_uint_type length;
42475fd0b74Schristos     const char *s;
42575fd0b74Schristos   } ss;
42675fd0b74Schristos   unichar *uni;
42775fd0b74Schristos   struct
42875fd0b74Schristos   {
42975fd0b74Schristos     rc_uint_type length;
43075fd0b74Schristos     const unichar *s;
43175fd0b74Schristos   } suni;
432ede78133Schristos 
433*e992f068Schristos #line 434 "rcparse.c"
434ede78133Schristos 
435*e992f068Schristos };
436ede78133Schristos typedef union YYSTYPE YYSTYPE;
43775fd0b74Schristos # define YYSTYPE_IS_TRIVIAL 1
438ede78133Schristos # define YYSTYPE_IS_DECLARED 1
43975fd0b74Schristos #endif
44075fd0b74Schristos 
44175fd0b74Schristos 
442ede78133Schristos extern YYSTYPE yylval;
443ede78133Schristos 
444*e992f068Schristos 
445ede78133Schristos int yyparse (void);
446ede78133Schristos 
447*e992f068Schristos 
448ede78133Schristos #endif /* !YY_YY_RCPARSE_H_INCLUDED  */
449*e992f068Schristos /* Symbol kind.  */
450*e992f068Schristos enum yysymbol_kind_t
451*e992f068Schristos {
452*e992f068Schristos   YYSYMBOL_YYEMPTY = -2,
453*e992f068Schristos   YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
454*e992f068Schristos   YYSYMBOL_YYerror = 1,                    /* error  */
455*e992f068Schristos   YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
456*e992f068Schristos   YYSYMBOL_BEG = 3,                        /* BEG  */
457*e992f068Schristos   YYSYMBOL_END = 4,                        /* END  */
458*e992f068Schristos   YYSYMBOL_ACCELERATORS = 5,               /* ACCELERATORS  */
459*e992f068Schristos   YYSYMBOL_VIRTKEY = 6,                    /* VIRTKEY  */
460*e992f068Schristos   YYSYMBOL_ASCII = 7,                      /* ASCII  */
461*e992f068Schristos   YYSYMBOL_NOINVERT = 8,                   /* NOINVERT  */
462*e992f068Schristos   YYSYMBOL_SHIFT = 9,                      /* SHIFT  */
463*e992f068Schristos   YYSYMBOL_CONTROL = 10,                   /* CONTROL  */
464*e992f068Schristos   YYSYMBOL_ALT = 11,                       /* ALT  */
465*e992f068Schristos   YYSYMBOL_BITMAP = 12,                    /* BITMAP  */
466*e992f068Schristos   YYSYMBOL_CURSOR = 13,                    /* CURSOR  */
467*e992f068Schristos   YYSYMBOL_DIALOG = 14,                    /* DIALOG  */
468*e992f068Schristos   YYSYMBOL_DIALOGEX = 15,                  /* DIALOGEX  */
469*e992f068Schristos   YYSYMBOL_EXSTYLE = 16,                   /* EXSTYLE  */
470*e992f068Schristos   YYSYMBOL_CAPTION = 17,                   /* CAPTION  */
471*e992f068Schristos   YYSYMBOL_CLASS = 18,                     /* CLASS  */
472*e992f068Schristos   YYSYMBOL_STYLE = 19,                     /* STYLE  */
473*e992f068Schristos   YYSYMBOL_AUTO3STATE = 20,                /* AUTO3STATE  */
474*e992f068Schristos   YYSYMBOL_AUTOCHECKBOX = 21,              /* AUTOCHECKBOX  */
475*e992f068Schristos   YYSYMBOL_AUTORADIOBUTTON = 22,           /* AUTORADIOBUTTON  */
476*e992f068Schristos   YYSYMBOL_CHECKBOX = 23,                  /* CHECKBOX  */
477*e992f068Schristos   YYSYMBOL_COMBOBOX = 24,                  /* COMBOBOX  */
478*e992f068Schristos   YYSYMBOL_CTEXT = 25,                     /* CTEXT  */
479*e992f068Schristos   YYSYMBOL_DEFPUSHBUTTON = 26,             /* DEFPUSHBUTTON  */
480*e992f068Schristos   YYSYMBOL_EDITTEXT = 27,                  /* EDITTEXT  */
481*e992f068Schristos   YYSYMBOL_GROUPBOX = 28,                  /* GROUPBOX  */
482*e992f068Schristos   YYSYMBOL_LISTBOX = 29,                   /* LISTBOX  */
483*e992f068Schristos   YYSYMBOL_LTEXT = 30,                     /* LTEXT  */
484*e992f068Schristos   YYSYMBOL_PUSHBOX = 31,                   /* PUSHBOX  */
485*e992f068Schristos   YYSYMBOL_PUSHBUTTON = 32,                /* PUSHBUTTON  */
486*e992f068Schristos   YYSYMBOL_RADIOBUTTON = 33,               /* RADIOBUTTON  */
487*e992f068Schristos   YYSYMBOL_RTEXT = 34,                     /* RTEXT  */
488*e992f068Schristos   YYSYMBOL_SCROLLBAR = 35,                 /* SCROLLBAR  */
489*e992f068Schristos   YYSYMBOL_STATE3 = 36,                    /* STATE3  */
490*e992f068Schristos   YYSYMBOL_USERBUTTON = 37,                /* USERBUTTON  */
491*e992f068Schristos   YYSYMBOL_BEDIT = 38,                     /* BEDIT  */
492*e992f068Schristos   YYSYMBOL_HEDIT = 39,                     /* HEDIT  */
493*e992f068Schristos   YYSYMBOL_IEDIT = 40,                     /* IEDIT  */
494*e992f068Schristos   YYSYMBOL_FONT = 41,                      /* FONT  */
495*e992f068Schristos   YYSYMBOL_ICON = 42,                      /* ICON  */
496*e992f068Schristos   YYSYMBOL_ANICURSOR = 43,                 /* ANICURSOR  */
497*e992f068Schristos   YYSYMBOL_ANIICON = 44,                   /* ANIICON  */
498*e992f068Schristos   YYSYMBOL_DLGINCLUDE = 45,                /* DLGINCLUDE  */
499*e992f068Schristos   YYSYMBOL_DLGINIT = 46,                   /* DLGINIT  */
500*e992f068Schristos   YYSYMBOL_FONTDIR = 47,                   /* FONTDIR  */
501*e992f068Schristos   YYSYMBOL_HTML = 48,                      /* HTML  */
502*e992f068Schristos   YYSYMBOL_MANIFEST = 49,                  /* MANIFEST  */
503*e992f068Schristos   YYSYMBOL_PLUGPLAY = 50,                  /* PLUGPLAY  */
504*e992f068Schristos   YYSYMBOL_VXD = 51,                       /* VXD  */
505*e992f068Schristos   YYSYMBOL_TOOLBAR = 52,                   /* TOOLBAR  */
506*e992f068Schristos   YYSYMBOL_BUTTON = 53,                    /* BUTTON  */
507*e992f068Schristos   YYSYMBOL_LANGUAGE = 54,                  /* LANGUAGE  */
508*e992f068Schristos   YYSYMBOL_CHARACTERISTICS = 55,           /* CHARACTERISTICS  */
509*e992f068Schristos   YYSYMBOL_VERSIONK = 56,                  /* VERSIONK  */
510*e992f068Schristos   YYSYMBOL_MENU = 57,                      /* MENU  */
511*e992f068Schristos   YYSYMBOL_MENUEX = 58,                    /* MENUEX  */
512*e992f068Schristos   YYSYMBOL_MENUITEM = 59,                  /* MENUITEM  */
513*e992f068Schristos   YYSYMBOL_SEPARATOR = 60,                 /* SEPARATOR  */
514*e992f068Schristos   YYSYMBOL_POPUP = 61,                     /* POPUP  */
515*e992f068Schristos   YYSYMBOL_CHECKED = 62,                   /* CHECKED  */
516*e992f068Schristos   YYSYMBOL_GRAYED = 63,                    /* GRAYED  */
517*e992f068Schristos   YYSYMBOL_HELP = 64,                      /* HELP  */
518*e992f068Schristos   YYSYMBOL_INACTIVE = 65,                  /* INACTIVE  */
519*e992f068Schristos   YYSYMBOL_OWNERDRAW = 66,                 /* OWNERDRAW  */
520*e992f068Schristos   YYSYMBOL_MENUBARBREAK = 67,              /* MENUBARBREAK  */
521*e992f068Schristos   YYSYMBOL_MENUBREAK = 68,                 /* MENUBREAK  */
522*e992f068Schristos   YYSYMBOL_MESSAGETABLE = 69,              /* MESSAGETABLE  */
523*e992f068Schristos   YYSYMBOL_RCDATA = 70,                    /* RCDATA  */
524*e992f068Schristos   YYSYMBOL_STRINGTABLE = 71,               /* STRINGTABLE  */
525*e992f068Schristos   YYSYMBOL_VERSIONINFO = 72,               /* VERSIONINFO  */
526*e992f068Schristos   YYSYMBOL_FILEVERSION = 73,               /* FILEVERSION  */
527*e992f068Schristos   YYSYMBOL_PRODUCTVERSION = 74,            /* PRODUCTVERSION  */
528*e992f068Schristos   YYSYMBOL_FILEFLAGSMASK = 75,             /* FILEFLAGSMASK  */
529*e992f068Schristos   YYSYMBOL_FILEFLAGS = 76,                 /* FILEFLAGS  */
530*e992f068Schristos   YYSYMBOL_FILEOS = 77,                    /* FILEOS  */
531*e992f068Schristos   YYSYMBOL_FILETYPE = 78,                  /* FILETYPE  */
532*e992f068Schristos   YYSYMBOL_FILESUBTYPE = 79,               /* FILESUBTYPE  */
533*e992f068Schristos   YYSYMBOL_BLOCKSTRINGFILEINFO = 80,       /* BLOCKSTRINGFILEINFO  */
534*e992f068Schristos   YYSYMBOL_BLOCKVARFILEINFO = 81,          /* BLOCKVARFILEINFO  */
535*e992f068Schristos   YYSYMBOL_VALUE = 82,                     /* VALUE  */
536*e992f068Schristos   YYSYMBOL_BLOCK = 83,                     /* BLOCK  */
537*e992f068Schristos   YYSYMBOL_MOVEABLE = 84,                  /* MOVEABLE  */
538*e992f068Schristos   YYSYMBOL_FIXED = 85,                     /* FIXED  */
539*e992f068Schristos   YYSYMBOL_PURE = 86,                      /* PURE  */
540*e992f068Schristos   YYSYMBOL_IMPURE = 87,                    /* IMPURE  */
541*e992f068Schristos   YYSYMBOL_PRELOAD = 88,                   /* PRELOAD  */
542*e992f068Schristos   YYSYMBOL_LOADONCALL = 89,                /* LOADONCALL  */
543*e992f068Schristos   YYSYMBOL_DISCARDABLE = 90,               /* DISCARDABLE  */
544*e992f068Schristos   YYSYMBOL_NOT = 91,                       /* NOT  */
545*e992f068Schristos   YYSYMBOL_QUOTEDUNISTRING = 92,           /* QUOTEDUNISTRING  */
546*e992f068Schristos   YYSYMBOL_QUOTEDSTRING = 93,              /* QUOTEDSTRING  */
547*e992f068Schristos   YYSYMBOL_STRING = 94,                    /* STRING  */
548*e992f068Schristos   YYSYMBOL_NUMBER = 95,                    /* NUMBER  */
549*e992f068Schristos   YYSYMBOL_SIZEDUNISTRING = 96,            /* SIZEDUNISTRING  */
550*e992f068Schristos   YYSYMBOL_SIZEDSTRING = 97,               /* SIZEDSTRING  */
551*e992f068Schristos   YYSYMBOL_IGNORED_TOKEN = 98,             /* IGNORED_TOKEN  */
552*e992f068Schristos   YYSYMBOL_99_ = 99,                       /* '|'  */
553*e992f068Schristos   YYSYMBOL_100_ = 100,                     /* '^'  */
554*e992f068Schristos   YYSYMBOL_101_ = 101,                     /* '&'  */
555*e992f068Schristos   YYSYMBOL_102_ = 102,                     /* '+'  */
556*e992f068Schristos   YYSYMBOL_103_ = 103,                     /* '-'  */
557*e992f068Schristos   YYSYMBOL_104_ = 104,                     /* '*'  */
558*e992f068Schristos   YYSYMBOL_105_ = 105,                     /* '/'  */
559*e992f068Schristos   YYSYMBOL_106_ = 106,                     /* '%'  */
560*e992f068Schristos   YYSYMBOL_107_ = 107,                     /* '~'  */
561*e992f068Schristos   YYSYMBOL_NEG = 108,                      /* NEG  */
562*e992f068Schristos   YYSYMBOL_109_ = 109,                     /* ','  */
563*e992f068Schristos   YYSYMBOL_110_ = 110,                     /* '='  */
564*e992f068Schristos   YYSYMBOL_111_ = 111,                     /* '('  */
565*e992f068Schristos   YYSYMBOL_112_ = 112,                     /* ')'  */
566*e992f068Schristos   YYSYMBOL_YYACCEPT = 113,                 /* $accept  */
567*e992f068Schristos   YYSYMBOL_input = 114,                    /* input  */
568*e992f068Schristos   YYSYMBOL_accelerator = 115,              /* accelerator  */
569*e992f068Schristos   YYSYMBOL_acc_entries = 116,              /* acc_entries  */
570*e992f068Schristos   YYSYMBOL_acc_entry = 117,                /* acc_entry  */
571*e992f068Schristos   YYSYMBOL_acc_event = 118,                /* acc_event  */
572*e992f068Schristos   YYSYMBOL_acc_options = 119,              /* acc_options  */
573*e992f068Schristos   YYSYMBOL_acc_option = 120,               /* acc_option  */
574*e992f068Schristos   YYSYMBOL_bitmap = 121,                   /* bitmap  */
575*e992f068Schristos   YYSYMBOL_cursor = 122,                   /* cursor  */
576*e992f068Schristos   YYSYMBOL_dialog = 123,                   /* dialog  */
577*e992f068Schristos   YYSYMBOL_124_1 = 124,                    /* $@1  */
578*e992f068Schristos   YYSYMBOL_125_2 = 125,                    /* $@2  */
579*e992f068Schristos   YYSYMBOL_126_3 = 126,                    /* $@3  */
580*e992f068Schristos   YYSYMBOL_exstyle = 127,                  /* exstyle  */
581*e992f068Schristos   YYSYMBOL_styles = 128,                   /* styles  */
582*e992f068Schristos   YYSYMBOL_controls = 129,                 /* controls  */
583*e992f068Schristos   YYSYMBOL_control = 130,                  /* control  */
584*e992f068Schristos   YYSYMBOL_131_4 = 131,                    /* $@4  */
585*e992f068Schristos   YYSYMBOL_132_5 = 132,                    /* $@5  */
586*e992f068Schristos   YYSYMBOL_133_6 = 133,                    /* $@6  */
587*e992f068Schristos   YYSYMBOL_134_7 = 134,                    /* $@7  */
588*e992f068Schristos   YYSYMBOL_135_8 = 135,                    /* $@8  */
589*e992f068Schristos   YYSYMBOL_136_9 = 136,                    /* $@9  */
590*e992f068Schristos   YYSYMBOL_137_10 = 137,                   /* $@10  */
591*e992f068Schristos   YYSYMBOL_138_11 = 138,                   /* $@11  */
592*e992f068Schristos   YYSYMBOL_139_12 = 139,                   /* $@12  */
593*e992f068Schristos   YYSYMBOL_140_13 = 140,                   /* $@13  */
594*e992f068Schristos   YYSYMBOL_141_14 = 141,                   /* $@14  */
595*e992f068Schristos   YYSYMBOL_142_15 = 142,                   /* $@15  */
596*e992f068Schristos   YYSYMBOL_143_16 = 143,                   /* $@16  */
597*e992f068Schristos   YYSYMBOL_144_17 = 144,                   /* $@17  */
598*e992f068Schristos   YYSYMBOL_145_18 = 145,                   /* $@18  */
599*e992f068Schristos   YYSYMBOL_146_19 = 146,                   /* $@19  */
600*e992f068Schristos   YYSYMBOL_147_20 = 147,                   /* $@20  */
601*e992f068Schristos   YYSYMBOL_148_21 = 148,                   /* $@21  */
602*e992f068Schristos   YYSYMBOL_149_22 = 149,                   /* $@22  */
603*e992f068Schristos   YYSYMBOL_150_23 = 150,                   /* $@23  */
604*e992f068Schristos   YYSYMBOL_151_24 = 151,                   /* $@24  */
605*e992f068Schristos   YYSYMBOL_control_params = 152,           /* control_params  */
606*e992f068Schristos   YYSYMBOL_cresid = 153,                   /* cresid  */
607*e992f068Schristos   YYSYMBOL_optresidc = 154,                /* optresidc  */
608*e992f068Schristos   YYSYMBOL_resid = 155,                    /* resid  */
609*e992f068Schristos   YYSYMBOL_opt_control_data = 156,         /* opt_control_data  */
610*e992f068Schristos   YYSYMBOL_control_styleexpr = 157,        /* control_styleexpr  */
611*e992f068Schristos   YYSYMBOL_158_25 = 158,                   /* $@25  */
612*e992f068Schristos   YYSYMBOL_icon_styleexpr = 159,           /* icon_styleexpr  */
613*e992f068Schristos   YYSYMBOL_160_26 = 160,                   /* $@26  */
614*e992f068Schristos   YYSYMBOL_control_params_styleexpr = 161, /* control_params_styleexpr  */
615*e992f068Schristos   YYSYMBOL_162_27 = 162,                   /* $@27  */
616*e992f068Schristos   YYSYMBOL_font = 163,                     /* font  */
617*e992f068Schristos   YYSYMBOL_icon = 164,                     /* icon  */
618*e992f068Schristos   YYSYMBOL_language = 165,                 /* language  */
619*e992f068Schristos   YYSYMBOL_menu = 166,                     /* menu  */
620*e992f068Schristos   YYSYMBOL_menuitems = 167,                /* menuitems  */
621*e992f068Schristos   YYSYMBOL_menuitem = 168,                 /* menuitem  */
622*e992f068Schristos   YYSYMBOL_menuitem_flags = 169,           /* menuitem_flags  */
623*e992f068Schristos   YYSYMBOL_menuitem_flag = 170,            /* menuitem_flag  */
624*e992f068Schristos   YYSYMBOL_menuex = 171,                   /* menuex  */
625*e992f068Schristos   YYSYMBOL_menuexitems = 172,              /* menuexitems  */
626*e992f068Schristos   YYSYMBOL_menuexitem = 173,               /* menuexitem  */
627*e992f068Schristos   YYSYMBOL_messagetable = 174,             /* messagetable  */
628*e992f068Schristos   YYSYMBOL_optrcdata_data = 175,           /* optrcdata_data  */
629*e992f068Schristos   YYSYMBOL_176_28 = 176,                   /* $@28  */
630*e992f068Schristos   YYSYMBOL_optrcdata_data_int = 177,       /* optrcdata_data_int  */
631*e992f068Schristos   YYSYMBOL_rcdata_data = 178,              /* rcdata_data  */
632*e992f068Schristos   YYSYMBOL_stringtable = 179,              /* stringtable  */
633*e992f068Schristos   YYSYMBOL_180_29 = 180,                   /* $@29  */
634*e992f068Schristos   YYSYMBOL_string_data = 181,              /* string_data  */
635*e992f068Schristos   YYSYMBOL_rcdata_id = 182,                /* rcdata_id  */
636*e992f068Schristos   YYSYMBOL_user = 183,                     /* user  */
637*e992f068Schristos   YYSYMBOL_toolbar = 184,                  /* toolbar  */
638*e992f068Schristos   YYSYMBOL_toolbar_data = 185,             /* toolbar_data  */
639*e992f068Schristos   YYSYMBOL_versioninfo = 186,              /* versioninfo  */
640*e992f068Schristos   YYSYMBOL_fixedverinfo = 187,             /* fixedverinfo  */
641*e992f068Schristos   YYSYMBOL_verblocks = 188,                /* verblocks  */
642*e992f068Schristos   YYSYMBOL_verstringtables = 189,          /* verstringtables  */
643*e992f068Schristos   YYSYMBOL_vervals = 190,                  /* vervals  */
644*e992f068Schristos   YYSYMBOL_vertrans = 191,                 /* vertrans  */
645*e992f068Schristos   YYSYMBOL_id = 192,                       /* id  */
646*e992f068Schristos   YYSYMBOL_resname = 193,                  /* resname  */
647*e992f068Schristos   YYSYMBOL_resref = 194,                   /* resref  */
648*e992f068Schristos   YYSYMBOL_suboptions = 195,               /* suboptions  */
649*e992f068Schristos   YYSYMBOL_memflags_move_discard = 196,    /* memflags_move_discard  */
650*e992f068Schristos   YYSYMBOL_memflags_move = 197,            /* memflags_move  */
651*e992f068Schristos   YYSYMBOL_memflag = 198,                  /* memflag  */
652*e992f068Schristos   YYSYMBOL_file_name = 199,                /* file_name  */
653*e992f068Schristos   YYSYMBOL_res_unicode_string_concat = 200, /* res_unicode_string_concat  */
654*e992f068Schristos   YYSYMBOL_res_unicode_string = 201,       /* res_unicode_string  */
655*e992f068Schristos   YYSYMBOL_res_unicode_sizedstring = 202,  /* res_unicode_sizedstring  */
656*e992f068Schristos   YYSYMBOL_res_unicode_sizedstring_concat = 203, /* res_unicode_sizedstring_concat  */
657*e992f068Schristos   YYSYMBOL_sizedstring = 204,              /* sizedstring  */
658*e992f068Schristos   YYSYMBOL_sizedunistring = 205,           /* sizedunistring  */
659*e992f068Schristos   YYSYMBOL_styleexpr = 206,                /* styleexpr  */
660*e992f068Schristos   YYSYMBOL_parennumber = 207,              /* parennumber  */
661*e992f068Schristos   YYSYMBOL_optcnumexpr = 208,              /* optcnumexpr  */
662*e992f068Schristos   YYSYMBOL_cnumexpr = 209,                 /* cnumexpr  */
663*e992f068Schristos   YYSYMBOL_numexpr = 210,                  /* numexpr  */
664*e992f068Schristos   YYSYMBOL_sizednumexpr = 211,             /* sizednumexpr  */
665*e992f068Schristos   YYSYMBOL_cposnumexpr = 212,              /* cposnumexpr  */
666*e992f068Schristos   YYSYMBOL_posnumexpr = 213,               /* posnumexpr  */
667*e992f068Schristos   YYSYMBOL_sizedposnumexpr = 214           /* sizedposnumexpr  */
668*e992f068Schristos };
669*e992f068Schristos typedef enum yysymbol_kind_t yysymbol_kind_t;
67075fd0b74Schristos 
67175fd0b74Schristos 
672*e992f068Schristos 
67375fd0b74Schristos 
67475fd0b74Schristos #ifdef short
67575fd0b74Schristos # undef short
67675fd0b74Schristos #endif
67775fd0b74Schristos 
678*e992f068Schristos /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
679*e992f068Schristos    <limits.h> and (if available) <stdint.h> are included
680*e992f068Schristos    so that the code can choose integer types of a good width.  */
681*e992f068Schristos 
682*e992f068Schristos #ifndef __PTRDIFF_MAX__
683*e992f068Schristos # include <limits.h> /* INFRINGES ON USER NAME SPACE */
684*e992f068Schristos # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
685*e992f068Schristos #  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
686*e992f068Schristos #  define YY_STDINT_H
687*e992f068Schristos # endif
68875fd0b74Schristos #endif
68975fd0b74Schristos 
690*e992f068Schristos /* Narrow types that promote to a signed type and that can represent a
691*e992f068Schristos    signed or unsigned integer of at least N bits.  In tables they can
692*e992f068Schristos    save space and decrease cache pressure.  Promoting to a signed type
693*e992f068Schristos    helps avoid bugs in integer arithmetic.  */
694*e992f068Schristos 
695*e992f068Schristos #ifdef __INT_LEAST8_MAX__
696*e992f068Schristos typedef __INT_LEAST8_TYPE__ yytype_int8;
697*e992f068Schristos #elif defined YY_STDINT_H
698*e992f068Schristos typedef int_least8_t yytype_int8;
69975fd0b74Schristos #else
700ede78133Schristos typedef signed char yytype_int8;
70175fd0b74Schristos #endif
70275fd0b74Schristos 
703*e992f068Schristos #ifdef __INT_LEAST16_MAX__
704*e992f068Schristos typedef __INT_LEAST16_TYPE__ yytype_int16;
705*e992f068Schristos #elif defined YY_STDINT_H
706*e992f068Schristos typedef int_least16_t yytype_int16;
70775fd0b74Schristos #else
708*e992f068Schristos typedef short yytype_int16;
70975fd0b74Schristos #endif
71075fd0b74Schristos 
711*e992f068Schristos /* Work around bug in HP-UX 11.23, which defines these macros
712*e992f068Schristos    incorrectly for preprocessor constants.  This workaround can likely
713*e992f068Schristos    be removed in 2023, as HPE has promised support for HP-UX 11.23
714*e992f068Schristos    (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
715*e992f068Schristos    <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
716*e992f068Schristos #ifdef __hpux
717*e992f068Schristos # undef UINT_LEAST8_MAX
718*e992f068Schristos # undef UINT_LEAST16_MAX
719*e992f068Schristos # define UINT_LEAST8_MAX 255
720*e992f068Schristos # define UINT_LEAST16_MAX 65535
721*e992f068Schristos #endif
722*e992f068Schristos 
723*e992f068Schristos #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
724*e992f068Schristos typedef __UINT_LEAST8_TYPE__ yytype_uint8;
725*e992f068Schristos #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
726*e992f068Schristos        && UINT_LEAST8_MAX <= INT_MAX)
727*e992f068Schristos typedef uint_least8_t yytype_uint8;
728*e992f068Schristos #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
729*e992f068Schristos typedef unsigned char yytype_uint8;
73075fd0b74Schristos #else
731*e992f068Schristos typedef short yytype_uint8;
732*e992f068Schristos #endif
733*e992f068Schristos 
734*e992f068Schristos #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
735*e992f068Schristos typedef __UINT_LEAST16_TYPE__ yytype_uint16;
736*e992f068Schristos #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
737*e992f068Schristos        && UINT_LEAST16_MAX <= INT_MAX)
738*e992f068Schristos typedef uint_least16_t yytype_uint16;
739*e992f068Schristos #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
740*e992f068Schristos typedef unsigned short yytype_uint16;
741*e992f068Schristos #else
742*e992f068Schristos typedef int yytype_uint16;
743*e992f068Schristos #endif
744*e992f068Schristos 
745*e992f068Schristos #ifndef YYPTRDIFF_T
746*e992f068Schristos # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
747*e992f068Schristos #  define YYPTRDIFF_T __PTRDIFF_TYPE__
748*e992f068Schristos #  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
749*e992f068Schristos # elif defined PTRDIFF_MAX
750*e992f068Schristos #  ifndef ptrdiff_t
751*e992f068Schristos #   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
752*e992f068Schristos #  endif
753*e992f068Schristos #  define YYPTRDIFF_T ptrdiff_t
754*e992f068Schristos #  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
755*e992f068Schristos # else
756*e992f068Schristos #  define YYPTRDIFF_T long
757*e992f068Schristos #  define YYPTRDIFF_MAXIMUM LONG_MAX
758*e992f068Schristos # endif
75975fd0b74Schristos #endif
76075fd0b74Schristos 
76175fd0b74Schristos #ifndef YYSIZE_T
76275fd0b74Schristos # ifdef __SIZE_TYPE__
76375fd0b74Schristos #  define YYSIZE_T __SIZE_TYPE__
76475fd0b74Schristos # elif defined size_t
76575fd0b74Schristos #  define YYSIZE_T size_t
766*e992f068Schristos # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
76775fd0b74Schristos #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
76875fd0b74Schristos #  define YYSIZE_T size_t
76975fd0b74Schristos # else
770*e992f068Schristos #  define YYSIZE_T unsigned
77175fd0b74Schristos # endif
77275fd0b74Schristos #endif
77375fd0b74Schristos 
774*e992f068Schristos #define YYSIZE_MAXIMUM                                  \
775*e992f068Schristos   YY_CAST (YYPTRDIFF_T,                                 \
776*e992f068Schristos            (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
777*e992f068Schristos             ? YYPTRDIFF_MAXIMUM                         \
778*e992f068Schristos             : YY_CAST (YYSIZE_T, -1)))
779*e992f068Schristos 
780*e992f068Schristos #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
781*e992f068Schristos 
782*e992f068Schristos 
783*e992f068Schristos /* Stored state numbers (used for stacks). */
784*e992f068Schristos typedef yytype_int16 yy_state_t;
785*e992f068Schristos 
786*e992f068Schristos /* State numbers in computations.  */
787*e992f068Schristos typedef int yy_state_fast_t;
78875fd0b74Schristos 
78975fd0b74Schristos #ifndef YY_
79075fd0b74Schristos # if defined YYENABLE_NLS && YYENABLE_NLS
79175fd0b74Schristos #  if ENABLE_NLS
79275fd0b74Schristos #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
793ede78133Schristos #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
79475fd0b74Schristos #  endif
79575fd0b74Schristos # endif
79675fd0b74Schristos # ifndef YY_
797ede78133Schristos #  define YY_(Msgid) Msgid
798ede78133Schristos # endif
799ede78133Schristos #endif
800ede78133Schristos 
801ede78133Schristos 
802ede78133Schristos #ifndef YY_ATTRIBUTE_PURE
803*e992f068Schristos # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
804*e992f068Schristos #  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
805*e992f068Schristos # else
806*e992f068Schristos #  define YY_ATTRIBUTE_PURE
807*e992f068Schristos # endif
808ede78133Schristos #endif
809ede78133Schristos 
810ede78133Schristos #ifndef YY_ATTRIBUTE_UNUSED
811*e992f068Schristos # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
812*e992f068Schristos #  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
813ede78133Schristos # else
814*e992f068Schristos #  define YY_ATTRIBUTE_UNUSED
81575fd0b74Schristos # endif
81675fd0b74Schristos #endif
81775fd0b74Schristos 
81875fd0b74Schristos /* Suppress unused-variable warnings by "using" E.  */
81975fd0b74Schristos #if ! defined lint || defined __GNUC__
820*e992f068Schristos # define YY_USE(E) ((void) (E))
82175fd0b74Schristos #else
822*e992f068Schristos # define YY_USE(E) /* empty */
82375fd0b74Schristos #endif
82475fd0b74Schristos 
825ede78133Schristos /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
826*e992f068Schristos #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
827*e992f068Schristos # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
828*e992f068Schristos #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
829*e992f068Schristos     _Pragma ("GCC diagnostic push")                                     \
830*e992f068Schristos     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
831*e992f068Schristos # else
832ede78133Schristos #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
833ede78133Schristos     _Pragma ("GCC diagnostic push")                                     \
834ede78133Schristos     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
835ede78133Schristos     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
836*e992f068Schristos # endif
837ede78133Schristos # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
838ede78133Schristos     _Pragma ("GCC diagnostic pop")
83975fd0b74Schristos #else
840ede78133Schristos # define YY_INITIAL_VALUE(Value) Value
84175fd0b74Schristos #endif
842ede78133Schristos #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
843ede78133Schristos # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
844ede78133Schristos # define YY_IGNORE_MAYBE_UNINITIALIZED_END
84575fd0b74Schristos #endif
846ede78133Schristos #ifndef YY_INITIAL_VALUE
847ede78133Schristos # define YY_INITIAL_VALUE(Value) /* Nothing. */
848ede78133Schristos #endif
849ede78133Schristos 
850*e992f068Schristos #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
851*e992f068Schristos # define YY_IGNORE_USELESS_CAST_BEGIN                          \
852*e992f068Schristos     _Pragma ("GCC diagnostic push")                            \
853*e992f068Schristos     _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
854*e992f068Schristos # define YY_IGNORE_USELESS_CAST_END            \
855*e992f068Schristos     _Pragma ("GCC diagnostic pop")
856*e992f068Schristos #endif
857*e992f068Schristos #ifndef YY_IGNORE_USELESS_CAST_BEGIN
858*e992f068Schristos # define YY_IGNORE_USELESS_CAST_BEGIN
859*e992f068Schristos # define YY_IGNORE_USELESS_CAST_END
860*e992f068Schristos #endif
86175fd0b74Schristos 
862*e992f068Schristos 
863*e992f068Schristos #define YY_ASSERT(E) ((void) (0 && (E)))
864*e992f068Schristos 
865*e992f068Schristos #if !defined yyoverflow
86675fd0b74Schristos 
86775fd0b74Schristos /* The parser invokes alloca or malloc; define the necessary symbols.  */
86875fd0b74Schristos 
86975fd0b74Schristos # ifdef YYSTACK_USE_ALLOCA
87075fd0b74Schristos #  if YYSTACK_USE_ALLOCA
87175fd0b74Schristos #   ifdef __GNUC__
87275fd0b74Schristos #    define YYSTACK_ALLOC __builtin_alloca
87375fd0b74Schristos #   elif defined __BUILTIN_VA_ARG_INCR
87475fd0b74Schristos #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
87575fd0b74Schristos #   elif defined _AIX
87675fd0b74Schristos #    define YYSTACK_ALLOC __alloca
87775fd0b74Schristos #   elif defined _MSC_VER
87875fd0b74Schristos #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
87975fd0b74Schristos #    define alloca _alloca
88075fd0b74Schristos #   else
88175fd0b74Schristos #    define YYSTACK_ALLOC alloca
882ede78133Schristos #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
88375fd0b74Schristos #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
884ede78133Schristos       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
885ede78133Schristos #     ifndef EXIT_SUCCESS
886ede78133Schristos #      define EXIT_SUCCESS 0
88775fd0b74Schristos #     endif
88875fd0b74Schristos #    endif
88975fd0b74Schristos #   endif
89075fd0b74Schristos #  endif
89175fd0b74Schristos # endif
89275fd0b74Schristos 
89375fd0b74Schristos # ifdef YYSTACK_ALLOC
894ede78133Schristos    /* Pacify GCC's 'empty if-body' warning.  */
895ede78133Schristos #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
89675fd0b74Schristos #  ifndef YYSTACK_ALLOC_MAXIMUM
89775fd0b74Schristos     /* The OS might guarantee only one guard page at the bottom of the stack,
89875fd0b74Schristos        and a page size can be as small as 4096 bytes.  So we cannot safely
89975fd0b74Schristos        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
90075fd0b74Schristos        to allow for a few compiler-allocated temporary stack slots.  */
90175fd0b74Schristos #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
90275fd0b74Schristos #  endif
90375fd0b74Schristos # else
90475fd0b74Schristos #  define YYSTACK_ALLOC YYMALLOC
90575fd0b74Schristos #  define YYSTACK_FREE YYFREE
90675fd0b74Schristos #  ifndef YYSTACK_ALLOC_MAXIMUM
90775fd0b74Schristos #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
90875fd0b74Schristos #  endif
909ede78133Schristos #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
91075fd0b74Schristos        && ! ((defined YYMALLOC || defined malloc) \
91175fd0b74Schristos              && (defined YYFREE || defined free)))
91275fd0b74Schristos #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
913ede78133Schristos #   ifndef EXIT_SUCCESS
914ede78133Schristos #    define EXIT_SUCCESS 0
91575fd0b74Schristos #   endif
91675fd0b74Schristos #  endif
91775fd0b74Schristos #  ifndef YYMALLOC
91875fd0b74Schristos #   define YYMALLOC malloc
919ede78133Schristos #   if ! defined malloc && ! defined EXIT_SUCCESS
92075fd0b74Schristos void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
92175fd0b74Schristos #   endif
92275fd0b74Schristos #  endif
92375fd0b74Schristos #  ifndef YYFREE
92475fd0b74Schristos #   define YYFREE free
925ede78133Schristos #   if ! defined free && ! defined EXIT_SUCCESS
92675fd0b74Schristos void free (void *); /* INFRINGES ON USER NAME SPACE */
92775fd0b74Schristos #   endif
92875fd0b74Schristos #  endif
92975fd0b74Schristos # endif
930*e992f068Schristos #endif /* !defined yyoverflow */
93175fd0b74Schristos 
93275fd0b74Schristos #if (! defined yyoverflow \
93375fd0b74Schristos      && (! defined __cplusplus \
93475fd0b74Schristos          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
93575fd0b74Schristos 
93675fd0b74Schristos /* A type that is properly aligned for any stack member.  */
93775fd0b74Schristos union yyalloc
93875fd0b74Schristos {
939*e992f068Schristos   yy_state_t yyss_alloc;
940ede78133Schristos   YYSTYPE yyvs_alloc;
94175fd0b74Schristos };
94275fd0b74Schristos 
94375fd0b74Schristos /* The size of the maximum gap between one aligned stack and the next.  */
944*e992f068Schristos # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
94575fd0b74Schristos 
94675fd0b74Schristos /* The size of an array large to enough to hold all stacks, each with
94775fd0b74Schristos    N elements.  */
94875fd0b74Schristos # define YYSTACK_BYTES(N) \
949*e992f068Schristos      ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
95075fd0b74Schristos       + YYSTACK_GAP_MAXIMUM)
95175fd0b74Schristos 
952ede78133Schristos # define YYCOPY_NEEDED 1
95375fd0b74Schristos 
95475fd0b74Schristos /* Relocate STACK from its old location to the new one.  The
95575fd0b74Schristos    local variables YYSIZE and YYSTACKSIZE give the old and new number of
95675fd0b74Schristos    elements in the stack, and YYPTR gives the new location of the
95775fd0b74Schristos    stack.  Advance YYPTR to a properly aligned location for the next
95875fd0b74Schristos    stack.  */
959ede78133Schristos # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
96075fd0b74Schristos     do                                                                  \
96175fd0b74Schristos       {                                                                 \
962*e992f068Schristos         YYPTRDIFF_T yynewbytes;                                         \
963ede78133Schristos         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
964ede78133Schristos         Stack = &yyptr->Stack_alloc;                                    \
965*e992f068Schristos         yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
966*e992f068Schristos         yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
96775fd0b74Schristos       }                                                                 \
968ede78133Schristos     while (0)
96975fd0b74Schristos 
97075fd0b74Schristos #endif
97175fd0b74Schristos 
972ede78133Schristos #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
973ede78133Schristos /* Copy COUNT objects from SRC to DST.  The source and destination do
974ede78133Schristos    not overlap.  */
975ede78133Schristos # ifndef YYCOPY
976ede78133Schristos #  if defined __GNUC__ && 1 < __GNUC__
977ede78133Schristos #   define YYCOPY(Dst, Src, Count) \
978*e992f068Schristos       __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
979ede78133Schristos #  else
980ede78133Schristos #   define YYCOPY(Dst, Src, Count)              \
981ede78133Schristos       do                                        \
982ede78133Schristos         {                                       \
983*e992f068Schristos           YYPTRDIFF_T yyi;                      \
984ede78133Schristos           for (yyi = 0; yyi < (Count); yyi++)   \
985ede78133Schristos             (Dst)[yyi] = (Src)[yyi];            \
986ede78133Schristos         }                                       \
987ede78133Schristos       while (0)
988ede78133Schristos #  endif
989ede78133Schristos # endif
990ede78133Schristos #endif /* !YYCOPY_NEEDED */
991ede78133Schristos 
99275fd0b74Schristos /* YYFINAL -- State number of the termination state.  */
99375fd0b74Schristos #define YYFINAL  2
99475fd0b74Schristos /* YYLAST -- Last index in YYTABLE.  */
995*e992f068Schristos #define YYLAST   842
99675fd0b74Schristos 
99775fd0b74Schristos /* YYNTOKENS -- Number of terminals.  */
998*e992f068Schristos #define YYNTOKENS  113
99975fd0b74Schristos /* YYNNTS -- Number of nonterminals.  */
100075fd0b74Schristos #define YYNNTS  102
100175fd0b74Schristos /* YYNRULES -- Number of rules.  */
1002*e992f068Schristos #define YYNRULES  278
1003ede78133Schristos /* YYNSTATES -- Number of states.  */
1004*e992f068Schristos #define YYNSTATES  522
100575fd0b74Schristos 
1006*e992f068Schristos /* YYMAXUTOK -- Last valid token kind.  */
1007*e992f068Schristos #define YYMAXUTOK   354
100875fd0b74Schristos 
1009*e992f068Schristos 
1010*e992f068Schristos /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1011*e992f068Schristos    as returned by yylex, with out-of-bounds checking.  */
101275fd0b74Schristos #define YYTRANSLATE(YYX)                                \
1013*e992f068Schristos   (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
1014*e992f068Schristos    ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
1015*e992f068Schristos    : YYSYMBOL_YYUNDEF)
101675fd0b74Schristos 
1017ede78133Schristos /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1018*e992f068Schristos    as returned by yylex.  */
1019*e992f068Schristos static const yytype_int8 yytranslate[] =
102075fd0b74Schristos {
102175fd0b74Schristos        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
102275fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
102375fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1024*e992f068Schristos        2,     2,     2,     2,     2,     2,     2,   106,   101,     2,
1025*e992f068Schristos      111,   112,   104,   102,   109,   103,     2,   105,     2,     2,
102675fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1027*e992f068Schristos        2,   110,     2,     2,     2,     2,     2,     2,     2,     2,
102875fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
102975fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1030*e992f068Schristos        2,     2,     2,     2,   100,     2,     2,     2,     2,     2,
103175fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
103275fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1033*e992f068Schristos        2,     2,     2,     2,    99,     2,   107,     2,     2,     2,
103475fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
103575fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
103675fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
103775fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
103875fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
103975fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
104075fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
104175fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
104275fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
104375fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
104475fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
104575fd0b74Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
104675fd0b74Schristos        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
104775fd0b74Schristos        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
104875fd0b74Schristos       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
104975fd0b74Schristos       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
105075fd0b74Schristos       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
105175fd0b74Schristos       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
105275fd0b74Schristos       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
105375fd0b74Schristos       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
105475fd0b74Schristos       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
105575fd0b74Schristos       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1056*e992f068Schristos       95,    96,    97,    98,   108
105775fd0b74Schristos };
105875fd0b74Schristos 
105975fd0b74Schristos #if YYDEBUG
1060ede78133Schristos /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1061*e992f068Schristos static const yytype_int16 yyrline[] =
106275fd0b74Schristos {
106375fd0b74Schristos        0,   178,   178,   180,   181,   182,   183,   184,   185,   186,
106475fd0b74Schristos      187,   188,   189,   190,   191,   192,   193,   194,   200,   211,
106575fd0b74Schristos      214,   235,   240,   252,   272,   282,   286,   291,   298,   302,
106675fd0b74Schristos      307,   311,   315,   319,   328,   340,   354,   352,   379,   377,
106775fd0b74Schristos      406,   404,   436,   439,   445,   447,   453,   457,   462,   466,
106875fd0b74Schristos      470,   483,   498,   513,   528,   532,   536,   540,   546,   548,
106975fd0b74Schristos      560,   559,   572,   571,   584,   583,   596,   595,   611,   610,
107075fd0b74Schristos      623,   622,   636,   647,   657,   656,   669,   668,   681,   680,
107175fd0b74Schristos      693,   692,   705,   704,   719,   724,   730,   736,   743,   742,
107275fd0b74Schristos      758,   757,   770,   769,   782,   781,   793,   792,   805,   804,
107375fd0b74Schristos      817,   816,   829,   828,   841,   840,   854,   852,   873,   884,
107475fd0b74Schristos      895,   907,   918,   921,   925,   930,   940,   943,   953,   952,
107575fd0b74Schristos      959,   958,   965,   964,   972,   984,   997,  1006,  1017,  1020,
107675fd0b74Schristos     1037,  1041,  1045,  1053,  1056,  1060,  1067,  1071,  1075,  1079,
1077*e992f068Schristos     1083,  1087,  1091,  1095,  1104,  1115,  1118,  1135,  1139,  1143,
1078*e992f068Schristos     1147,  1151,  1155,  1159,  1163,  1173,  1186,  1186,  1198,  1202,
1079*e992f068Schristos     1209,  1217,  1225,  1233,  1242,  1251,  1260,  1270,  1269,  1274,
1080*e992f068Schristos     1276,  1281,  1286,  1294,  1298,  1303,  1308,  1313,  1318,  1323,
1081*e992f068Schristos     1328,  1333,  1338,  1349,  1356,  1366,  1372,  1373,  1392,  1417,
1082*e992f068Schristos     1428,  1433,  1440,  1447,  1452,  1457,  1462,  1467,  1482,  1485,
1083*e992f068Schristos     1489,  1497,  1500,  1508,  1511,  1519,  1522,  1531,  1536,  1545,
1084*e992f068Schristos     1549,  1559,  1564,  1568,  1579,  1585,  1591,  1596,  1601,  1612,
1085*e992f068Schristos     1617,  1629,  1634,  1646,  1651,  1656,  1661,  1666,  1671,  1676,
1086*e992f068Schristos     1686,  1690,  1698,  1703,  1718,  1722,  1731,  1735,  1747,  1752,
1087*e992f068Schristos     1768,  1772,  1784,  1788,  1810,  1814,  1818,  1822,  1829,  1833,
1088*e992f068Schristos     1843,  1846,  1855,  1864,  1873,  1877,  1881,  1886,  1891,  1896,
1089*e992f068Schristos     1901,  1906,  1911,  1916,  1921,  1926,  1937,  1946,  1957,  1961,
1090*e992f068Schristos     1965,  1970,  1975,  1980,  1986,  1991,  1996,  2001,  2006
109175fd0b74Schristos };
109275fd0b74Schristos #endif
109375fd0b74Schristos 
1094*e992f068Schristos /** Accessing symbol of state STATE.  */
1095*e992f068Schristos #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
1096*e992f068Schristos 
1097*e992f068Schristos #if YYDEBUG || 0
1098*e992f068Schristos /* The user-facing name of the symbol whose (internal) number is
1099*e992f068Schristos    YYSYMBOL.  No bounds checking.  */
1100*e992f068Schristos static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
1101*e992f068Schristos 
110275fd0b74Schristos /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
110375fd0b74Schristos    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
110475fd0b74Schristos static const char *const yytname[] =
110575fd0b74Schristos {
1106*e992f068Schristos   "\"end of file\"", "error", "\"invalid token\"", "BEG", "END",
1107*e992f068Schristos   "ACCELERATORS", "VIRTKEY", "ASCII", "NOINVERT", "SHIFT", "CONTROL",
1108*e992f068Schristos   "ALT", "BITMAP", "CURSOR", "DIALOG", "DIALOGEX", "EXSTYLE", "CAPTION",
1109*e992f068Schristos   "CLASS", "STYLE", "AUTO3STATE", "AUTOCHECKBOX", "AUTORADIOBUTTON",
1110*e992f068Schristos   "CHECKBOX", "COMBOBOX", "CTEXT", "DEFPUSHBUTTON", "EDITTEXT", "GROUPBOX",
1111*e992f068Schristos   "LISTBOX", "LTEXT", "PUSHBOX", "PUSHBUTTON", "RADIOBUTTON", "RTEXT",
1112*e992f068Schristos   "SCROLLBAR", "STATE3", "USERBUTTON", "BEDIT", "HEDIT", "IEDIT", "FONT",
1113*e992f068Schristos   "ICON", "ANICURSOR", "ANIICON", "DLGINCLUDE", "DLGINIT", "FONTDIR",
1114*e992f068Schristos   "HTML", "MANIFEST", "PLUGPLAY", "VXD", "TOOLBAR", "BUTTON", "LANGUAGE",
1115*e992f068Schristos   "CHARACTERISTICS", "VERSIONK", "MENU", "MENUEX", "MENUITEM", "SEPARATOR",
1116*e992f068Schristos   "POPUP", "CHECKED", "GRAYED", "HELP", "INACTIVE", "OWNERDRAW",
1117*e992f068Schristos   "MENUBARBREAK", "MENUBREAK", "MESSAGETABLE", "RCDATA", "STRINGTABLE",
1118*e992f068Schristos   "VERSIONINFO", "FILEVERSION", "PRODUCTVERSION", "FILEFLAGSMASK",
1119*e992f068Schristos   "FILEFLAGS", "FILEOS", "FILETYPE", "FILESUBTYPE", "BLOCKSTRINGFILEINFO",
1120*e992f068Schristos   "BLOCKVARFILEINFO", "VALUE", "BLOCK", "MOVEABLE", "FIXED", "PURE",
1121*e992f068Schristos   "IMPURE", "PRELOAD", "LOADONCALL", "DISCARDABLE", "NOT",
1122*e992f068Schristos   "QUOTEDUNISTRING", "QUOTEDSTRING", "STRING", "NUMBER", "SIZEDUNISTRING",
1123*e992f068Schristos   "SIZEDSTRING", "IGNORED_TOKEN", "'|'", "'^'", "'&'", "'+'", "'-'", "'*'",
1124*e992f068Schristos   "'/'", "'%'", "'~'", "NEG", "','", "'='", "'('", "')'", "$accept",
1125*e992f068Schristos   "input", "accelerator", "acc_entries", "acc_entry", "acc_event",
1126*e992f068Schristos   "acc_options", "acc_option", "bitmap", "cursor", "dialog", "$@1", "$@2",
1127*e992f068Schristos   "$@3", "exstyle", "styles", "controls", "control", "$@4", "$@5", "$@6",
1128*e992f068Schristos   "$@7", "$@8", "$@9", "$@10", "$@11", "$@12", "$@13", "$@14", "$@15",
1129*e992f068Schristos   "$@16", "$@17", "$@18", "$@19", "$@20", "$@21", "$@22", "$@23", "$@24",
1130*e992f068Schristos   "control_params", "cresid", "optresidc", "resid", "opt_control_data",
1131*e992f068Schristos   "control_styleexpr", "$@25", "icon_styleexpr", "$@26",
1132*e992f068Schristos   "control_params_styleexpr", "$@27", "font", "icon", "language", "menu",
1133*e992f068Schristos   "menuitems", "menuitem", "menuitem_flags", "menuitem_flag", "menuex",
1134*e992f068Schristos   "menuexitems", "menuexitem", "messagetable", "optrcdata_data", "$@28",
1135*e992f068Schristos   "optrcdata_data_int", "rcdata_data", "stringtable", "$@29",
1136*e992f068Schristos   "string_data", "rcdata_id", "user", "toolbar", "toolbar_data",
1137*e992f068Schristos   "versioninfo", "fixedverinfo", "verblocks", "verstringtables", "vervals",
1138*e992f068Schristos   "vertrans", "id", "resname", "resref", "suboptions",
1139*e992f068Schristos   "memflags_move_discard", "memflags_move", "memflag", "file_name",
1140*e992f068Schristos   "res_unicode_string_concat", "res_unicode_string",
1141ede78133Schristos   "res_unicode_sizedstring", "res_unicode_sizedstring_concat",
1142ede78133Schristos   "sizedstring", "sizedunistring", "styleexpr", "parennumber",
1143ede78133Schristos   "optcnumexpr", "cnumexpr", "numexpr", "sizednumexpr", "cposnumexpr",
1144ede78133Schristos   "posnumexpr", "sizedposnumexpr", YY_NULLPTR
114575fd0b74Schristos };
114675fd0b74Schristos 
1147*e992f068Schristos static const char *
yysymbol_name(yysymbol_kind_t yysymbol)1148*e992f068Schristos yysymbol_name (yysymbol_kind_t yysymbol)
114975fd0b74Schristos {
1150*e992f068Schristos   return yytname[yysymbol];
1151*e992f068Schristos }
115275fd0b74Schristos #endif
115375fd0b74Schristos 
1154*e992f068Schristos #define YYPACT_NINF (-328)
1155ede78133Schristos 
1156*e992f068Schristos #define yypact_value_is_default(Yyn) \
1157*e992f068Schristos   ((Yyn) == YYPACT_NINF)
1158ede78133Schristos 
1159*e992f068Schristos #define YYTABLE_NINF (-233)
1160ede78133Schristos 
1161*e992f068Schristos #define yytable_value_is_error(Yyn) \
1162ede78133Schristos   0
1163ede78133Schristos 
1164ede78133Schristos /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1165ede78133Schristos    STATE-NUM.  */
1166ede78133Schristos static const yytype_int16 yypact[] =
116775fd0b74Schristos {
1168*e992f068Schristos     -328,    74,  -328,   302,  -328,  -328,  -328,  -328,  -328,  -328,
1169*e992f068Schristos      302,   302,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,
1170*e992f068Schristos     -328,  -328,  -328,  -328,  -328,  -328,   465,  -328,  -328,  -328,
1171*e992f068Schristos      513,  -328,   302,   302,   302,   -80,   583,   209,  -328,   654,
1172*e992f068Schristos     -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,
1173*e992f068Schristos     -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,
1174*e992f068Schristos     -328,  -328,  -328,   302,   302,   302,   302,   302,   302,   302,
1175*e992f068Schristos      302,  -328,  -328,   703,   302,  -328,   302,   302,   302,   302,
1176*e992f068Schristos      302,   302,   302,   302,  -328,   302,   302,   302,  -328,  -328,
1177*e992f068Schristos     -328,  -328,  -328,  -328,  -328,  -328,  -328,   258,   732,   732,
1178*e992f068Schristos      405,   405,   732,   732,   443,   265,   338,   732,   287,   190,
1179*e992f068Schristos      619,   234,   327,   181,   181,  -328,  -328,  -328,  -328,  -328,
1180*e992f068Schristos      619,   234,   327,   181,   181,  -328,  -328,  -328,  -328,   -80,
1181*e992f068Schristos     -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,   -76,
1182*e992f068Schristos      104,   104,  -328,  -328,   -80,  -328,  -328,  -328,  -328,   302,
1183*e992f068Schristos      302,   302,   302,   302,   302,   302,  -328,  -328,    18,  -328,
1184*e992f068Schristos       23,   302,   -80,   -80,    94,   155,   169,    -1,   -80,   -80,
1185*e992f068Schristos     -328,  -328,  -328,  -328,  -328,   133,   498,  -328,  -328,   -32,
1186*e992f068Schristos     -328,  -328,  -328,    56,  -328,  -328,   -80,   -80,  -328,  -328,
1187*e992f068Schristos      -50,   -17,  -328,  -328,   -25,   -17,  -328,  -328,   132,   171,
1188*e992f068Schristos      -80,  -328,   -80,  -328,  -328,  -328,  -328,    75,    90,    99,
1189*e992f068Schristos      583,    -9,  -328,    -9,    90,    99,   104,    81,   -80,   -80,
1190*e992f068Schristos       13,  -328,    70,  -328,   -17,  -328,    70,    30,  -328,   118,
1191*e992f068Schristos      -80,   -80,   498,  -328,  -328,    -9,  -328,  -328,   831,  -328,
1192*e992f068Schristos      -80,  -328,   360,  -328,  -328,  -328,   141,   -80,  -328,     1,
1193*e992f068Schristos       28,   -17,  -328,  -328,    90,    99,   583,  -328,  -328,  -328,
1194*e992f068Schristos     -328,  -328,  -328,    45,  -328,  -328,  -328,  -328,  -328,   158,
1195*e992f068Schristos     -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,   500,
1196*e992f068Schristos     -328,   -80,   174,  -328,     6,  -328,   198,   -17,   831,  -328,
1197*e992f068Schristos      485,   566,  -328,   178,  -328,  -328,  -328,   179,  -328,   -80,
1198*e992f068Schristos     -328,     3,  -328,  -328,   302,   -17,   360,   -67,   302,   302,
1199*e992f068Schristos      302,   302,   360,  -328,   570,  -328,  -328,   182,   210,    16,
1200*e992f068Schristos     -328,   -80,   634,  -328,   -17,  -328,   -17,    49,   -33,  -328,
1201*e992f068Schristos      302,   143,  -328,   139,   -80,  -328,  -328,  -328,   671,  -328,
1202*e992f068Schristos     -328,  -328,  -328,   -17,  -328,  -328,   389,   389,   389,   389,
1203*e992f068Schristos      389,  -328,   389,   389,  -328,   389,  -328,   389,   389,   389,
1204*e992f068Schristos      389,   389,  -328,   389,   360,   389,   389,   389,   360,  -328,
1205*e992f068Schristos     -328,   137,    80,   -17,  -328,  -328,   708,   194,   164,   302,
1206*e992f068Schristos      150,   -17,  -328,  -328,  -328,  -328,  -328,   302,  -328,  -328,
1207*e992f068Schristos      302,  -328,   302,  -328,  -328,  -328,  -328,  -328,   302,  -328,
1208*e992f068Schristos      151,   302,   160,  -328,  -328,  -328,   302,  -328,   -33,  -328,
1209*e992f068Schristos       70,  -328,  -328,   -17,   161,  -328,   302,   302,   302,   302,
1210*e992f068Schristos     -328,   -80,   302,   302,  -328,   302,  -328,   302,   302,   302,
1211*e992f068Schristos      302,   302,  -328,   302,  -328,   163,  -328,   302,   302,   302,
1212*e992f068Schristos      -80,  -328,   -80,   -17,   389,   172,  -328,  -328,  -328,  -328,
1213*e992f068Schristos      -80,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,
1214*e992f068Schristos      302,  -328,  -328,  -328,   -80,   -80,  -328,  -328,   -80,   -80,
1215*e992f068Schristos      180,    10,  -328,   -67,   -80,   -80,   302,  -328,  -328,   -80,
1216*e992f068Schristos      143,   -80,    15,   191,   298,    22,   -80,  -328,  -328,   -80,
1217*e992f068Schristos      302,  -328,  -328,  -328,   -80,   -80,   -67,   300,   -80,   200,
1218*e992f068Schristos      -67,   300,   -80,   300,   -80,   143,  -328,   300,   302,   143,
1219*e992f068Schristos     -328,   300,  -328,   300,  -328,   201,  -328,  -328,  -328,   -67,
1220*e992f068Schristos      -52,  -328
122175fd0b74Schristos };
122275fd0b74Schristos 
1223ede78133Schristos /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1224ede78133Schristos    Performed when YYTABLE does not specify something else to do.  Zero
122575fd0b74Schristos    means the default is an error.  */
1226*e992f068Schristos static const yytype_int16 yydefact[] =
122775fd0b74Schristos {
1228*e992f068Schristos        2,     0,     1,     0,   214,   234,   235,   210,   268,    17,
122975fd0b74Schristos        0,     0,     3,     4,     5,     6,     7,     8,     9,    10,
1230*e992f068Schristos       11,    12,    13,    15,    14,    16,     0,   208,   209,   207,
1231*e992f068Schristos      267,   254,     0,     0,     0,     0,   253,     0,   270,     0,
1232*e992f068Schristos      214,   221,   219,   221,   221,   219,   219,   181,   182,   179,
1233*e992f068Schristos      180,   174,   176,   177,   178,   214,   214,   214,   221,   175,
1234*e992f068Schristos      190,   214,   173,     0,     0,     0,     0,     0,     0,     0,
1235*e992f068Schristos        0,   257,   256,     0,     0,   126,     0,     0,     0,     0,
1236*e992f068Schristos        0,     0,     0,     0,   167,     0,     0,     0,   223,   224,
1237*e992f068Schristos      225,   226,   227,   228,   229,   215,   269,     0,     0,     0,
123875fd0b74Schristos       42,    42,     0,     0,     0,     0,     0,     0,     0,     0,
1239*e992f068Schristos      278,   277,   276,   274,   275,   271,   272,   273,   255,   252,
1240*e992f068Schristos      265,   264,   263,   261,   262,   258,   259,   260,   169,     0,
1241*e992f068Schristos      216,   218,    19,   230,   231,   222,    34,   220,    35,     0,
1242*e992f068Schristos        0,     0,   124,   125,     0,   128,   145,   155,   198,     0,
1243*e992f068Schristos        0,     0,     0,     0,     0,     0,   156,   184,     0,   217,
1244*e992f068Schristos        0,     0,     0,     0,     0,     0,     0,     0,   250,   250,
1245*e992f068Schristos      193,   194,   195,   196,   197,     0,   158,   172,   168,     0,
1246*e992f068Schristos       18,    23,    20,     0,    24,    43,     0,     0,   186,   127,
1247*e992f068Schristos        0,     0,   129,   144,     0,     0,   146,   189,     0,     0,
1248*e992f068Schristos      250,   251,   250,   183,   242,   240,   157,   159,   160,   161,
1249*e992f068Schristos      162,     0,   238,   170,   237,   236,     0,    21,     0,     0,
1250*e992f068Schristos        0,   131,     0,   232,   133,   150,   147,     0,   201,     0,
1251*e992f068Schristos      250,   250,   166,   241,   243,   171,   239,   266,     0,    36,
1252*e992f068Schristos       38,   185,     0,   188,   233,   133,     0,   148,   145,     0,
1253*e992f068Schristos        0,     0,   191,   192,   163,   164,   165,    28,    29,    30,
1254*e992f068Schristos       31,    32,    33,    22,    25,    44,    44,    40,   187,   130,
1255*e992f068Schristos      128,   142,   136,   137,   138,   139,   143,   140,   141,     0,
1256*e992f068Schristos      135,   250,     0,   145,     0,   199,     0,   205,     0,    27,
1257*e992f068Schristos        0,     0,    44,     0,   134,   149,   151,     0,   145,   250,
1258*e992f068Schristos      203,     0,    26,    58,     0,     0,     0,     0,     0,     0,
1259*e992f068Schristos        0,     0,     0,    58,     0,   132,   152,     0,     0,     0,
1260*e992f068Schristos      200,     0,     0,    48,    45,    46,    49,   209,     0,   248,
1261*e992f068Schristos        0,    47,   244,     0,     0,    55,    57,    54,     0,    58,
1262*e992f068Schristos      153,   145,   202,     0,   206,    37,   112,   112,   112,   112,
1263*e992f068Schristos      112,    70,   112,   112,    78,   112,    90,   112,   112,   112,
1264*e992f068Schristos      112,   112,   102,   112,     0,   112,   112,   112,     0,    59,
1265*e992f068Schristos      245,     0,     0,     0,    56,    39,     0,     0,     0,     0,
1266*e992f068Schristos        0,   115,   114,    60,    62,    64,    68,     0,    74,    76,
1267*e992f068Schristos        0,    80,     0,    92,    94,    96,    98,   100,     0,   104,
1268*e992f068Schristos      212,     0,     0,    66,    82,    88,     0,   249,     0,   246,
1269*e992f068Schristos       50,    41,   154,     0,     0,   113,     0,     0,     0,     0,
1270*e992f068Schristos       71,     0,     0,     0,    79,     0,    91,     0,     0,     0,
1271*e992f068Schristos        0,     0,   103,     0,   213,     0,   211,     0,     0,     0,
1272*e992f068Schristos        0,   247,    51,   204,     0,     0,    61,    63,    65,    69,
1273*e992f068Schristos        0,    75,    77,    81,    93,    95,    97,    99,   101,   105,
1274*e992f068Schristos        0,    67,    83,    89,     0,    52,   111,   118,     0,     0,
1275*e992f068Schristos        0,   116,    53,     0,     0,     0,     0,   156,    84,     0,
1276*e992f068Schristos      119,     0,   116,     0,     0,   116,     0,   122,   108,   250,
1277*e992f068Schristos        0,   117,   120,    85,   250,   250,     0,   116,   251,     0,
1278*e992f068Schristos        0,   116,   251,   116,   251,   123,   109,   116,     0,   121,
1279*e992f068Schristos       86,   116,    72,   116,   110,     0,    87,    73,   106,     0,
1280*e992f068Schristos      250,   107
128175fd0b74Schristos };
128275fd0b74Schristos 
128375fd0b74Schristos /* YYPGOTO[NTERM-NUM].  */
128475fd0b74Schristos static const yytype_int16 yypgoto[] =
128575fd0b74Schristos {
1286*e992f068Schristos     -328,  -328,  -328,  -328,  -328,  -328,  -328,  -225,  -328,  -328,
1287*e992f068Schristos     -328,  -328,  -328,  -328,   214,  -252,  -290,  -328,  -328,  -328,
1288*e992f068Schristos     -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,
1289*e992f068Schristos     -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,   212,
1290*e992f068Schristos     -328,   434,  -128,   267,  -328,  -328,  -328,  -328,  -328,  -328,
1291*e992f068Schristos     -328,  -328,  -328,  -328,    48,  -328,    77,    44,  -328,  -198,
1292*e992f068Schristos     -328,  -328,  -153,  -328,  -328,  -328,  -328,  -328,  -328,  -328,
1293*e992f068Schristos     -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,   -24,
1294*e992f068Schristos     -228,   -43,   345,   131,   208,   729,   268,  -179,     5,  -187,
1295*e992f068Schristos      119,  -146,  -115,  -101,  -327,  -161,   -30,    -3,    26,  -328,
1296*e992f068Schristos       20,  -328
129775fd0b74Schristos };
129875fd0b74Schristos 
1299ede78133Schristos /* YYDEFGOTO[NTERM-NUM].  */
1300ede78133Schristos static const yytype_int16 yydefgoto[] =
1301ede78133Schristos {
1302*e992f068Schristos        0,     1,    12,   160,   182,   183,   263,   264,    13,    14,
1303*e992f068Schristos       15,   265,   266,   292,   140,   290,   322,   369,   416,   417,
1304*e992f068Schristos      418,   437,   419,   387,   422,   423,   390,   425,   438,   439,
1305*e992f068Schristos      392,   427,   428,   429,   430,   431,   398,   433,   519,   420,
1306*e992f068Schristos      445,   379,   380,   478,   468,   473,   494,   500,   489,   496,
1307*e992f068Schristos       16,    17,    18,    19,   165,   192,   246,   280,    20,   166,
1308ede78133Schristos      196,    21,   175,   176,   206,   207,    22,   128,   158,    61,
1309*e992f068Schristos       23,    24,   220,    25,   108,   167,   250,   319,   301,    26,
1310*e992f068Schristos       27,   401,    37,    99,    98,    95,   136,   381,   223,   212,
1311*e992f068Schristos      213,   214,   215,   331,   332,   200,   201,   421,    36,   217,
1312*e992f068Schristos      382,    30
1313ede78133Schristos };
1314ede78133Schristos 
1315ede78133Schristos /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1316ede78133Schristos    positive, shift that token.  If negative, reduce the rule whose
1317ede78133Schristos    number is the opposite.  If YYTABLE_NINF, syntax error.  */
131875fd0b74Schristos static const yytype_int16 yytable[] =
131975fd0b74Schristos {
1320*e992f068Schristos       35,   370,    62,   197,   283,    75,    28,   320,   202,   298,
1321*e992f068Schristos      221,   222,   224,   477,   291,   226,   227,   241,   477,   177,
1322*e992f068Schristos      342,    29,   178,   338,   328,   477,   236,   180,   329,    74,
1323*e992f068Schristos      208,    28,   285,   248,   161,   225,    38,    39,   289,   230,
1324*e992f068Schristos      314,   231,     5,     6,   330,   409,    29,   372,   236,   376,
1325*e992f068Schristos      282,   257,   258,   259,   260,   261,   262,    74,    71,    72,
1326*e992f068Schristos       73,   209,   329,   302,   204,   205,   242,     5,     6,   252,
1327*e992f068Schristos      253,   119,   287,   243,     2,     5,     6,   211,   330,   198,
1328*e992f068Schristos      199,   441,   129,   130,   131,   297,   254,   204,   205,   110,
1329*e992f068Schristos      111,   112,   113,   114,   115,   116,   117,   188,   343,   159,
1330*e992f068Schristos      317,   144,   120,   121,   122,   123,   124,   125,   126,   127,
1331*e992f068Schristos       74,   286,    74,    31,   164,    74,   181,   255,     8,    74,
1332*e992f068Schristos      295,    32,     5,     6,   487,    33,   324,   326,     3,    34,
1333*e992f068Schristos       10,   492,   186,   187,    11,   228,   400,   203,   318,    74,
1334*e992f068Schristos      400,  -232,  -232,   377,   270,     4,   168,   169,   170,   171,
1335*e992f068Schristos      172,   173,   174,   271,   288,   179,   218,   219,   185,   189,
1336*e992f068Schristos      162,   163,     5,     6,   378,   216,     5,     6,     7,     8,
1337*e992f068Schristos      271,   408,     9,   193,   229,   329,   102,   103,   296,    74,
1338*e992f068Schristos      184,    10,   315,   316,   232,    11,   340,   233,   239,   240,
1339*e992f068Schristos      238,   330,   245,   156,   410,   234,   247,   249,   412,     8,
1340*e992f068Schristos      251,   300,   210,   272,   273,   274,   275,   276,   277,   278,
1341*e992f068Schristos      267,    10,    84,   341,   190,    11,   191,   281,   268,   284,
1342*e992f068Schristos      272,   273,   274,   275,   276,   277,   278,   244,   194,   244,
1343*e992f068Schristos      195,   244,   244,   194,   443,   195,   237,   190,   194,   191,
1344*e992f068Schristos      195,   194,   372,   195,    85,    86,    87,    28,   373,   407,
1345*e992f068Schristos      279,   100,   101,   194,   299,   195,     5,     6,   256,   415,
1346*e992f068Schristos      434,   132,    29,    85,    86,    87,   107,   279,   145,   436,
1347*e992f068Schristos      444,   321,   460,   413,    88,    89,    90,    91,    92,    93,
1348*e992f068Schristos       94,   467,   325,   133,   134,    81,    82,    83,   337,   476,
1349*e992f068Schristos      148,   344,   244,    88,    89,    90,    91,    92,    93,    94,
1350*e992f068Schristos      490,   323,   491,   477,   374,   333,   334,   335,   336,   508,
1351*e992f068Schristos      518,   327,    85,    86,    87,   141,   466,    28,   293,    85,
1352*e992f068Schristos       86,    87,   269,   294,   484,   406,    29,   371,   497,   244,
1353*e992f068Schristos      235,   244,    29,   501,   503,    78,    79,    80,    81,    82,
1354*e992f068Schristos       83,   146,    88,    89,    90,    91,    92,    93,    94,    88,
1355*e992f068Schristos       89,    90,    91,    92,    93,    94,     0,     0,     0,   521,
1356*e992f068Schristos      149,   150,   151,   152,   153,   154,   155,   138,     0,    28,
1357*e992f068Schristos      142,   143,   480,    28,     0,   147,   414,   157,     0,     0,
1358*e992f068Schristos      442,     0,     0,   244,   402,    97,   244,     0,   402,     0,
1359*e992f068Schristos        0,   450,    85,    86,    87,   505,     0,    31,   435,   509,
1360*e992f068Schristos      104,   105,   106,   440,     0,    32,   109,     0,     0,    33,
1361*e992f068Schristos      464,     0,   465,    34,     0,   244,     0,     0,   520,     0,
1362*e992f068Schristos      469,   139,    88,    89,    90,    91,    92,    93,    94,    79,
1363*e992f068Schristos       80,    81,    82,    83,   471,   472,     0,     0,   474,   475,
1364*e992f068Schristos        0,   479,     0,     0,   481,   482,     0,     0,   244,   485,
1365*e992f068Schristos        0,   486,     5,     6,     7,     8,   495,   470,     0,   498,
1366*e992f068Schristos        0,     0,     0,     0,   502,   504,     0,    10,   507,     0,
1367*e992f068Schristos       40,    11,   511,   483,   513,     0,     0,    41,    42,    43,
1368*e992f068Schristos       44,     5,     6,     0,     8,     0,     0,   499,   303,    88,
1369*e992f068Schristos       89,    90,    91,    92,    93,    94,    10,    85,    86,    87,
1370*e992f068Schristos       11,   304,   305,   306,   307,   515,    45,    46,    47,    48,
1371*e992f068Schristos       49,    50,   271,    51,    52,    53,    54,    55,     0,     0,
1372*e992f068Schristos        0,     0,    56,    57,     0,     0,   308,    88,    89,    90,
1373*e992f068Schristos       91,    92,    93,    94,    58,    59,     0,    60,    31,   309,
1374*e992f068Schristos      310,   311,   312,     0,     0,     0,    32,     0,     0,     0,
1375*e992f068Schristos       33,     0,     0,     0,    34,     0,     0,     5,     6,     7,
1376*e992f068Schristos        8,     0,   272,   273,   274,   275,   276,   277,   278,   313,
1377*e992f068Schristos        0,     0,    10,   339,     0,     0,    11,     0,     0,     0,
1378*e992f068Schristos        0,     0,   304,   305,   306,   307,   304,   305,   306,   307,
1379*e992f068Schristos        0,     0,     0,    31,   204,   205,     0,     0,     0,     0,
1380*e992f068Schristos        0,    32,   424,     0,   426,    33,     0,   308,     0,    34,
1381*e992f068Schristos      432,   308,    63,    64,    65,    66,    67,    68,    69,    70,
1382*e992f068Schristos      309,   310,   311,   312,   309,   310,   311,   312,   446,   447,
1383*e992f068Schristos      448,   449,     0,     0,   451,   452,     0,   453,   345,   454,
1384*e992f068Schristos      455,   456,   457,   458,   346,   459,     0,     0,     0,   461,
1385*e992f068Schristos      462,   463,     0,     0,   347,   348,   349,   350,   351,   352,
1386*e992f068Schristos      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1387*e992f068Schristos      363,   364,   365,   366,   367,   375,   368,     0,     0,     0,
1388*e992f068Schristos        0,   346,    76,    77,    78,    79,    80,    81,    82,    83,
1389*e992f068Schristos        0,   347,   348,   349,   350,   351,   352,   353,   354,   355,
139075fd0b74Schristos      356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
1391*e992f068Schristos      366,   367,   411,   368,     0,     0,     0,     0,   346,    77,
1392*e992f068Schristos       78,    79,    80,    81,    82,    83,     0,     0,   347,   348,
139375fd0b74Schristos      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
1394*e992f068Schristos      359,   360,   361,   362,   363,   364,   365,   366,   367,   488,
1395*e992f068Schristos      368,     0,   493,    76,    77,    78,    79,    80,    81,    82,
1396*e992f068Schristos       83,     0,     0,     0,   506,     0,    96,     0,   510,     0,
1397*e992f068Schristos      512,     0,     0,     0,   514,     0,     0,     0,   516,     0,
1398*e992f068Schristos      517,   383,   384,   385,   386,     0,   388,   389,     0,   391,
1399*e992f068Schristos        0,   393,   394,   395,   396,   397,     0,   399,     0,   403,
1400*e992f068Schristos      404,   405,    76,    77,    78,    79,    80,    81,    82,    83,
1401*e992f068Schristos        0,     0,     0,     0,     0,   118,    88,    89,    90,    91,
1402*e992f068Schristos       92,    93,    94,     0,     0,   133,   134,   135,   137,   135,
1403*e992f068Schristos      135,   137,   137,     0,     0,     0,   135,   257,   258,   259,
1404*e992f068Schristos      260,   261,   262
140575fd0b74Schristos };
140675fd0b74Schristos 
140775fd0b74Schristos static const yytype_int16 yycheck[] =
140875fd0b74Schristos {
1409*e992f068Schristos        3,   328,    26,     4,     3,    35,     1,     4,   169,     3,
1410*e992f068Schristos       60,   190,   191,     3,   266,   194,   195,     4,     3,     1,
1411*e992f068Schristos        4,     1,     4,   313,    91,     3,   213,     4,    95,   109,
1412*e992f068Schristos      176,    26,     4,     3,   110,    60,    10,    11,   263,   200,
1413*e992f068Schristos      292,   202,    92,    93,   111,   372,    26,    99,   235,   339,
1414*e992f068Schristos      248,     6,     7,     8,     9,    10,    11,   109,    32,    33,
1415*e992f068Schristos       34,   176,    95,   288,    96,    97,    53,    92,    93,   230,
1416*e992f068Schristos      231,    74,   251,    60,     0,    92,    93,   109,   111,    80,
1417*e992f068Schristos       81,   408,    85,    86,    87,   283,   232,    96,    97,    63,
1418*e992f068Schristos       64,    65,    66,    67,    68,    69,    70,     3,    82,   129,
1419*e992f068Schristos      298,   104,    76,    77,    78,    79,    80,    81,    82,    83,
1420*e992f068Schristos      109,    83,   109,    95,   144,   109,    93,   232,    95,   109,
1421*e992f068Schristos      281,   103,    92,    93,   109,   107,   305,   306,    54,   111,
1422*e992f068Schristos      107,   109,   162,   163,   111,     3,   364,     4,   299,   109,
1423*e992f068Schristos      368,    92,    93,   341,     3,    71,   149,   150,   151,   152,
1424*e992f068Schristos      153,   154,   155,    12,   109,   158,   186,   187,   161,     4,
1425*e992f068Schristos      140,   141,    92,    93,   343,   109,    92,    93,    94,    95,
1426*e992f068Schristos       12,    91,    98,     4,     3,    95,    45,    46,     4,   109,
1427*e992f068Schristos      160,   107,     4,     4,   109,   111,     4,    97,   218,   219,
1428*e992f068Schristos      109,   111,   222,     3,   373,    96,   226,   227,     4,    95,
1429*e992f068Schristos       82,     3,   176,    62,    63,    64,    65,    66,    67,    68,
1430*e992f068Schristos      240,   107,     3,     3,    59,   111,    61,   247,   242,   249,
1431*e992f068Schristos       62,    63,    64,    65,    66,    67,    68,   222,    59,   224,
1432*e992f068Schristos       61,   226,   227,    59,   413,    61,   216,    59,    59,    61,
1433*e992f068Schristos       61,    59,    99,    61,    54,    55,    56,   242,   109,   112,
1434*e992f068Schristos      109,    43,    44,    59,   284,    61,    92,    93,   232,   109,
1435*e992f068Schristos      109,     3,   242,    54,    55,    56,    58,   109,     3,   109,
1436*e992f068Schristos      109,   301,   109,   109,    84,    85,    86,    87,    88,    89,
1437*e992f068Schristos       90,   109,   306,    93,    94,   104,   105,   106,   312,   109,
1438*e992f068Schristos        3,   321,   287,    84,    85,    86,    87,    88,    89,    90,
1439*e992f068Schristos      109,   304,     4,     3,   334,   308,   309,   310,   311,   109,
1440*e992f068Schristos      109,   306,    54,    55,    56,   101,   444,   312,   270,    54,
1441*e992f068Schristos       55,    56,   245,   279,   477,   368,   306,   330,   489,   324,
1442*e992f068Schristos      211,   326,   312,   494,   495,   101,   102,   103,   104,   105,
1443*e992f068Schristos      106,     3,    84,    85,    86,    87,    88,    89,    90,    84,
1444*e992f068Schristos       85,    86,    87,    88,    89,    90,    -1,    -1,    -1,   520,
1445*e992f068Schristos       73,    74,    75,    76,    77,    78,    79,    99,    -1,   364,
1446*e992f068Schristos      102,   103,   473,   368,    -1,   107,   379,   109,    -1,    -1,
1447*e992f068Schristos      410,    -1,    -1,   378,   364,    40,   381,    -1,   368,    -1,
1448*e992f068Schristos       -1,   421,    54,    55,    56,   496,    -1,    95,   401,   500,
1449*e992f068Schristos       55,    56,    57,   406,    -1,   103,    61,    -1,    -1,   107,
1450*e992f068Schristos      440,    -1,   442,   111,    -1,   410,    -1,    -1,   519,    -1,
1451*e992f068Schristos      450,    16,    84,    85,    86,    87,    88,    89,    90,   102,
1452*e992f068Schristos      103,   104,   105,   106,   464,   465,    -1,    -1,   468,   469,
1453*e992f068Schristos       -1,   471,    -1,    -1,   474,   475,    -1,    -1,   443,   479,
1454*e992f068Schristos       -1,   481,    92,    93,    94,    95,   486,   460,    -1,   489,
1455*e992f068Schristos       -1,    -1,    -1,    -1,   494,   495,    -1,   107,   498,    -1,
1456*e992f068Schristos        5,   111,   502,   476,   504,    -1,    -1,    12,    13,    14,
1457*e992f068Schristos       15,    92,    93,    -1,    95,    -1,    -1,   490,     3,    84,
1458*e992f068Schristos       85,    86,    87,    88,    89,    90,   107,    54,    55,    56,
1459*e992f068Schristos      111,    16,    17,    18,    19,   508,    41,    42,    43,    44,
1460*e992f068Schristos       45,    46,    12,    48,    49,    50,    51,    52,    -1,    -1,
1461*e992f068Schristos       -1,    -1,    57,    58,    -1,    -1,    41,    84,    85,    86,
1462*e992f068Schristos       87,    88,    89,    90,    69,    70,    -1,    72,    95,    54,
1463*e992f068Schristos       55,    56,    57,    -1,    -1,    -1,   103,    -1,    -1,    -1,
1464*e992f068Schristos      107,    -1,    -1,    -1,   111,    -1,    -1,    92,    93,    94,
1465*e992f068Schristos       95,    -1,    62,    63,    64,    65,    66,    67,    68,     3,
1466*e992f068Schristos       -1,    -1,   107,     3,    -1,    -1,   111,    -1,    -1,    -1,
1467*e992f068Schristos       -1,    -1,    16,    17,    18,    19,    16,    17,    18,    19,
1468*e992f068Schristos       -1,    -1,    -1,    95,    96,    97,    -1,    -1,    -1,    -1,
1469*e992f068Schristos       -1,   103,   390,    -1,   392,   107,    -1,    41,    -1,   111,
1470*e992f068Schristos      398,    41,    99,   100,   101,   102,   103,   104,   105,   106,
1471*e992f068Schristos       54,    55,    56,    57,    54,    55,    56,    57,   416,   417,
1472*e992f068Schristos      418,   419,    -1,    -1,   422,   423,    -1,   425,     4,   427,
1473*e992f068Schristos      428,   429,   430,   431,    10,   433,    -1,    -1,    -1,   437,
1474*e992f068Schristos      438,   439,    -1,    -1,    20,    21,    22,    23,    24,    25,
1475*e992f068Schristos       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1476*e992f068Schristos       36,    37,    38,    39,    40,     4,    42,    -1,    -1,    -1,
1477*e992f068Schristos       -1,    10,    99,   100,   101,   102,   103,   104,   105,   106,
1478*e992f068Schristos       -1,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1479*e992f068Schristos       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1480*e992f068Schristos       39,    40,     4,    42,    -1,    -1,    -1,    -1,    10,   100,
1481*e992f068Schristos      101,   102,   103,   104,   105,   106,    -1,    -1,    20,    21,
1482*e992f068Schristos       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1483*e992f068Schristos       32,    33,    34,    35,    36,    37,    38,    39,    40,   482,
1484*e992f068Schristos       42,    -1,   485,    99,   100,   101,   102,   103,   104,   105,
1485*e992f068Schristos      106,    -1,    -1,    -1,   497,    -1,   112,    -1,   501,    -1,
1486*e992f068Schristos      503,    -1,    -1,    -1,   507,    -1,    -1,    -1,   511,    -1,
1487*e992f068Schristos      513,   347,   348,   349,   350,    -1,   352,   353,    -1,   355,
1488*e992f068Schristos       -1,   357,   358,   359,   360,   361,    -1,   363,    -1,   365,
1489*e992f068Schristos      366,   367,    99,   100,   101,   102,   103,   104,   105,   106,
1490*e992f068Schristos       -1,    -1,    -1,    -1,    -1,   112,    84,    85,    86,    87,
1491*e992f068Schristos       88,    89,    90,    -1,    -1,    93,    94,    98,    99,   100,
1492*e992f068Schristos      101,   102,   103,    -1,    -1,    -1,   107,     6,     7,     8,
1493*e992f068Schristos        9,    10,    11
149475fd0b74Schristos };
149575fd0b74Schristos 
1496*e992f068Schristos /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
1497*e992f068Schristos    state STATE-NUM.  */
149875fd0b74Schristos static const yytype_uint8 yystos[] =
149975fd0b74Schristos {
1500*e992f068Schristos        0,   114,     0,    54,    71,    92,    93,    94,    95,    98,
1501*e992f068Schristos      107,   111,   115,   121,   122,   123,   163,   164,   165,   166,
1502*e992f068Schristos      171,   174,   179,   183,   184,   186,   192,   193,   201,   213,
1503*e992f068Schristos      214,    95,   103,   107,   111,   210,   211,   195,   211,   211,
150475fd0b74Schristos        5,    12,    13,    14,    15,    41,    42,    43,    44,    45,
1505*e992f068Schristos       46,    48,    49,    50,    51,    52,    57,    58,    69,    70,
1506*e992f068Schristos       72,   182,   192,    99,   100,   101,   102,   103,   104,   105,
1507*e992f068Schristos      106,   211,   211,   211,   109,   209,    99,   100,   101,   102,
1508*e992f068Schristos      103,   104,   105,   106,     3,    54,    55,    56,    84,    85,
1509*e992f068Schristos       86,    87,    88,    89,    90,   198,   112,   195,   197,   196,
1510*e992f068Schristos      197,   197,   196,   196,   195,   195,   195,   197,   187,   195,
1511*e992f068Schristos      211,   211,   211,   211,   211,   211,   211,   211,   112,   210,
1512*e992f068Schristos      211,   211,   211,   211,   211,   211,   211,   211,   180,   210,
1513*e992f068Schristos      210,   210,     3,    93,    94,   198,   199,   198,   199,    16,
1514*e992f068Schristos      127,   127,   199,   199,   210,     3,     3,   199,     3,    73,
1515*e992f068Schristos       74,    75,    76,    77,    78,    79,     3,   199,   181,   209,
1516*e992f068Schristos      116,   110,   213,   213,   209,   167,   172,   188,   210,   210,
1517*e992f068Schristos      210,   210,   210,   210,   210,   175,   176,     1,     4,   210,
1518*e992f068Schristos        4,    93,   117,   118,   213,   210,   209,   209,     3,     4,
1519*e992f068Schristos       59,    61,   168,     4,    59,    61,   173,     4,    80,    81,
1520*e992f068Schristos      208,   209,   208,     4,    96,    97,   177,   178,   204,   205,
1521*e992f068Schristos      211,   109,   202,   203,   204,   205,   109,   212,   209,   209,
1522*e992f068Schristos      185,    60,   200,   201,   200,    60,   200,   200,     3,     3,
1523*e992f068Schristos      208,   208,   109,    97,    96,   203,   202,   213,   109,   209,
1524*e992f068Schristos      209,     4,    53,    60,   201,   209,   169,   209,     3,   209,
1525*e992f068Schristos      189,    82,   208,   208,   204,   205,   211,     6,     7,     8,
1526*e992f068Schristos        9,    10,    11,   119,   120,   124,   125,   209,   192,   169,
1527*e992f068Schristos        3,    12,    62,    63,    64,    65,    66,    67,    68,   109,
1528*e992f068Schristos      170,   209,   172,     3,   209,     4,    83,   200,   109,   120,
1529*e992f068Schristos      128,   128,   126,   167,   170,   208,     4,   172,     3,   209,
1530*e992f068Schristos        3,   191,   120,     3,    16,    17,    18,    19,    41,    54,
1531*e992f068Schristos       55,    56,    57,     3,   128,     4,     4,   172,   208,   190,
1532*e992f068Schristos        4,   209,   129,   210,   200,   192,   200,   201,    91,    95,
1533*e992f068Schristos      111,   206,   207,   210,   210,   210,   210,   192,   129,     3,
1534*e992f068Schristos        4,     3,     4,    82,   209,     4,    10,    20,    21,    22,
1535*e992f068Schristos       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1536*e992f068Schristos       33,    34,    35,    36,    37,    38,    39,    40,    42,   130,
1537*e992f068Schristos      207,   210,    99,   109,   209,     4,   129,   172,   200,   154,
1538*e992f068Schristos      155,   200,   213,   154,   154,   154,   154,   136,   154,   154,
1539*e992f068Schristos      139,   154,   143,   154,   154,   154,   154,   154,   149,   154,
1540*e992f068Schristos      193,   194,   213,   154,   154,   154,   194,   112,    91,   207,
1541*e992f068Schristos      200,     4,     4,   109,   210,   109,   131,   132,   133,   135,
1542*e992f068Schristos      152,   210,   137,   138,   152,   140,   152,   144,   145,   146,
1543*e992f068Schristos      147,   148,   152,   150,   109,   210,   109,   134,   141,   142,
1544*e992f068Schristos      210,   207,   209,   200,   109,   153,   152,   152,   152,   152,
1545*e992f068Schristos      209,   152,   152,   152,   152,   152,   152,   152,   152,   152,
1546*e992f068Schristos      109,   152,   152,   152,   209,   209,   155,   109,   157,   209,
1547*e992f068Schristos      210,   209,   209,   158,   209,   209,   109,     3,   156,   209,
1548*e992f068Schristos      206,   209,   209,   210,   175,   209,   209,   109,   156,   161,
1549*e992f068Schristos      109,     4,   109,   156,   159,   209,   162,   208,   209,   210,
1550*e992f068Schristos      160,   208,   209,   208,   209,   206,   156,   209,   109,   206,
1551*e992f068Schristos      156,   209,   156,   209,   156,   210,   156,   156,   109,   151,
1552*e992f068Schristos      206,   208
155375fd0b74Schristos };
155475fd0b74Schristos 
1555*e992f068Schristos /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
1556ede78133Schristos static const yytype_uint8 yyr1[] =
1557ede78133Schristos {
1558*e992f068Schristos        0,   113,   114,   114,   114,   114,   114,   114,   114,   114,
1559*e992f068Schristos      114,   114,   114,   114,   114,   114,   114,   114,   115,   116,
1560*e992f068Schristos      116,   117,   117,   118,   118,   119,   119,   119,   120,   120,
1561*e992f068Schristos      120,   120,   120,   120,   121,   122,   124,   123,   125,   123,
1562*e992f068Schristos      126,   123,   127,   127,   128,   128,   128,   128,   128,   128,
1563*e992f068Schristos      128,   128,   128,   128,   128,   128,   128,   128,   129,   129,
1564*e992f068Schristos      131,   130,   132,   130,   133,   130,   134,   130,   135,   130,
1565*e992f068Schristos      136,   130,   130,   130,   137,   130,   138,   130,   139,   130,
1566*e992f068Schristos      140,   130,   141,   130,   130,   130,   130,   130,   142,   130,
1567*e992f068Schristos      143,   130,   144,   130,   145,   130,   146,   130,   147,   130,
1568*e992f068Schristos      148,   130,   149,   130,   150,   130,   151,   130,   152,   152,
1569*e992f068Schristos      152,   153,   154,   154,   155,   155,   156,   156,   158,   157,
1570*e992f068Schristos      160,   159,   162,   161,   163,   164,   165,   166,   167,   167,
1571*e992f068Schristos      168,   168,   168,   169,   169,   169,   170,   170,   170,   170,
1572*e992f068Schristos      170,   170,   170,   170,   171,   172,   172,   173,   173,   173,
1573*e992f068Schristos      173,   173,   173,   173,   173,   174,   176,   175,   177,   177,
1574*e992f068Schristos      178,   178,   178,   178,   178,   178,   178,   180,   179,   181,
1575*e992f068Schristos      181,   181,   181,   182,   182,   182,   182,   182,   182,   182,
1576*e992f068Schristos      182,   182,   182,   183,   183,   184,   185,   185,   185,   186,
1577*e992f068Schristos      187,   187,   187,   187,   187,   187,   187,   187,   188,   188,
1578ede78133Schristos      188,   189,   189,   190,   190,   191,   191,   192,   192,   193,
1579*e992f068Schristos      193,   194,   194,   194,   195,   195,   195,   195,   195,   196,
1580*e992f068Schristos      196,   197,   197,   198,   198,   198,   198,   198,   198,   198,
1581ede78133Schristos      199,   199,   200,   200,   201,   201,   202,   202,   203,   203,
1582*e992f068Schristos      204,   204,   205,   205,   206,   206,   206,   206,   207,   207,
1583*e992f068Schristos      208,   208,   209,   210,   211,   211,   211,   211,   211,   211,
1584*e992f068Schristos      211,   211,   211,   211,   211,   211,   212,   213,   214,   214,
1585*e992f068Schristos      214,   214,   214,   214,   214,   214,   214,   214,   214
1586ede78133Schristos };
1587ede78133Schristos 
1588*e992f068Schristos /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
1589*e992f068Schristos static const yytype_int8 yyr2[] =
1590ede78133Schristos {
1591ede78133Schristos        0,     2,     0,     2,     2,     2,     2,     2,     2,     2,
1592ede78133Schristos        2,     2,     2,     2,     2,     2,     2,     2,     6,     0,
1593ede78133Schristos        2,     2,     4,     1,     1,     1,     3,     2,     1,     1,
1594ede78133Schristos        1,     1,     1,     1,     4,     4,     0,    13,     0,    13,
1595ede78133Schristos        0,    14,     0,     3,     0,     3,     3,     3,     3,     3,
1596ede78133Schristos        5,     6,     7,     8,     3,     3,     4,     3,     0,     2,
1597ede78133Schristos        0,     4,     0,     4,     0,     4,     0,     4,     0,     4,
1598ede78133Schristos        0,     3,    11,    12,     0,     4,     0,     4,     0,     3,
1599ede78133Schristos        0,     4,     0,     4,     6,     8,    10,    11,     0,     4,
1600ede78133Schristos        0,     3,     0,     4,     0,     4,     0,     4,     0,     4,
1601ede78133Schristos        0,     4,     0,     3,     0,     4,     0,    15,     6,     8,
1602ede78133Schristos        9,     2,     0,     2,     1,     1,     0,     3,     0,     3,
1603ede78133Schristos        0,     3,     0,     3,     4,     4,     3,     6,     0,     2,
1604ede78133Schristos        4,     2,     6,     0,     3,     2,     1,     1,     1,     1,
1605*e992f068Schristos        1,     1,     1,     1,     6,     0,     2,     2,     3,     5,
1606*e992f068Schristos        2,     5,     6,     7,     9,     4,     0,     2,     0,     1,
1607*e992f068Schristos        1,     1,     1,     3,     3,     3,     2,     0,     6,     0,
1608*e992f068Schristos        3,     4,     2,     1,     1,     1,     1,     1,     1,     1,
1609*e992f068Schristos        1,     1,     1,     6,     4,     8,     0,     3,     2,     6,
1610*e992f068Schristos        0,     6,     6,     3,     3,     3,     3,     3,     0,     5,
1611*e992f068Schristos        7,     0,     5,     0,     5,     0,     3,     1,     1,     1,
1612*e992f068Schristos        1,     2,     1,     2,     0,     2,     3,     4,     3,     0,
1613*e992f068Schristos        2,     0,     2,     1,     1,     1,     1,     1,     1,     1,
1614*e992f068Schristos        1,     1,     1,     2,     1,     1,     1,     1,     1,     2,
1615*e992f068Schristos        1,     2,     1,     2,     1,     2,     3,     4,     1,     3,
1616*e992f068Schristos        0,     1,     2,     1,     1,     3,     2,     2,     3,     3,
1617*e992f068Schristos        3,     3,     3,     3,     3,     3,     2,     1,     1,     3,
1618*e992f068Schristos        2,     3,     3,     3,     3,     3,     3,     3,     3
1619ede78133Schristos };
1620ede78133Schristos 
1621ede78133Schristos 
1622*e992f068Schristos enum { YYENOMEM = -2 };
1623*e992f068Schristos 
162475fd0b74Schristos #define yyerrok         (yyerrstatus = 0)
162575fd0b74Schristos #define yyclearin       (yychar = YYEMPTY)
162675fd0b74Schristos 
162775fd0b74Schristos #define YYACCEPT        goto yyacceptlab
162875fd0b74Schristos #define YYABORT         goto yyabortlab
162975fd0b74Schristos #define YYERROR         goto yyerrorlab
1630*e992f068Schristos #define YYNOMEM         goto yyexhaustedlab
163175fd0b74Schristos 
163275fd0b74Schristos 
163375fd0b74Schristos #define YYRECOVERING()  (!!yyerrstatus)
163475fd0b74Schristos 
163575fd0b74Schristos #define YYBACKUP(Token, Value)                                    \
163675fd0b74Schristos   do                                                              \
1637ede78133Schristos     if (yychar == YYEMPTY)                                        \
163875fd0b74Schristos       {                                                           \
163975fd0b74Schristos         yychar = (Token);                                         \
164075fd0b74Schristos         yylval = (Value);                                         \
1641ede78133Schristos         YYPOPSTACK (yylen);                                       \
1642ede78133Schristos         yystate = *yyssp;                                         \
164375fd0b74Schristos         goto yybackup;                                            \
164475fd0b74Schristos       }                                                           \
164575fd0b74Schristos     else                                                          \
164675fd0b74Schristos       {                                                           \
164775fd0b74Schristos         yyerror (YY_("syntax error: cannot back up")); \
164875fd0b74Schristos         YYERROR;                                                  \
164975fd0b74Schristos       }                                                           \
1650ede78133Schristos   while (0)
165175fd0b74Schristos 
1652*e992f068Schristos /* Backward compatibility with an undocumented macro.
1653*e992f068Schristos    Use YYerror or YYUNDEF. */
1654*e992f068Schristos #define YYERRCODE YYUNDEF
165575fd0b74Schristos 
165675fd0b74Schristos 
165775fd0b74Schristos /* Enable debugging if requested.  */
165875fd0b74Schristos #if YYDEBUG
165975fd0b74Schristos 
166075fd0b74Schristos # ifndef YYFPRINTF
166175fd0b74Schristos #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
166275fd0b74Schristos #  define YYFPRINTF fprintf
166375fd0b74Schristos # endif
166475fd0b74Schristos 
166575fd0b74Schristos # define YYDPRINTF(Args)                        \
166675fd0b74Schristos do {                                            \
166775fd0b74Schristos   if (yydebug)                                  \
166875fd0b74Schristos     YYFPRINTF Args;                             \
1669ede78133Schristos } while (0)
1670ede78133Schristos 
1671ede78133Schristos 
167275fd0b74Schristos 
1673*e992f068Schristos 
1674*e992f068Schristos # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
167575fd0b74Schristos do {                                                                      \
167675fd0b74Schristos   if (yydebug)                                                            \
167775fd0b74Schristos     {                                                                     \
167875fd0b74Schristos       YYFPRINTF (stderr, "%s ", Title);                                   \
167975fd0b74Schristos       yy_symbol_print (stderr,                                            \
1680*e992f068Schristos                   Kind, Value); \
168175fd0b74Schristos       YYFPRINTF (stderr, "\n");                                           \
168275fd0b74Schristos     }                                                                     \
1683ede78133Schristos } while (0)
168475fd0b74Schristos 
168575fd0b74Schristos 
1686*e992f068Schristos /*-----------------------------------.
1687*e992f068Schristos | Print this symbol's value on YYO.  |
1688*e992f068Schristos `-----------------------------------*/
168975fd0b74Schristos 
169075fd0b74Schristos static void
yy_symbol_value_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep)1691*e992f068Schristos yy_symbol_value_print (FILE *yyo,
1692*e992f068Schristos                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
169375fd0b74Schristos {
1694*e992f068Schristos   FILE *yyoutput = yyo;
1695*e992f068Schristos   YY_USE (yyoutput);
169675fd0b74Schristos   if (!yyvaluep)
169775fd0b74Schristos     return;
1698*e992f068Schristos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1699*e992f068Schristos   YY_USE (yykind);
1700*e992f068Schristos   YY_IGNORE_MAYBE_UNINITIALIZED_END
170175fd0b74Schristos }
170275fd0b74Schristos 
170375fd0b74Schristos 
1704*e992f068Schristos /*---------------------------.
1705*e992f068Schristos | Print this symbol on YYO.  |
1706*e992f068Schristos `---------------------------*/
170775fd0b74Schristos 
170875fd0b74Schristos static void
yy_symbol_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep)1709*e992f068Schristos yy_symbol_print (FILE *yyo,
1710*e992f068Schristos                  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
171175fd0b74Schristos {
1712*e992f068Schristos   YYFPRINTF (yyo, "%s %s (",
1713*e992f068Schristos              yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
171475fd0b74Schristos 
1715*e992f068Schristos   yy_symbol_value_print (yyo, yykind, yyvaluep);
1716*e992f068Schristos   YYFPRINTF (yyo, ")");
171775fd0b74Schristos }
171875fd0b74Schristos 
171975fd0b74Schristos /*------------------------------------------------------------------.
172075fd0b74Schristos | yy_stack_print -- Print the state stack from its BOTTOM up to its |
172175fd0b74Schristos | TOP (included).                                                   |
172275fd0b74Schristos `------------------------------------------------------------------*/
172375fd0b74Schristos 
172475fd0b74Schristos static void
yy_stack_print(yy_state_t * yybottom,yy_state_t * yytop)1725*e992f068Schristos yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
172675fd0b74Schristos {
172775fd0b74Schristos   YYFPRINTF (stderr, "Stack now");
1728ede78133Schristos   for (; yybottom <= yytop; yybottom++)
1729ede78133Schristos     {
1730ede78133Schristos       int yybot = *yybottom;
1731ede78133Schristos       YYFPRINTF (stderr, " %d", yybot);
1732ede78133Schristos     }
173375fd0b74Schristos   YYFPRINTF (stderr, "\n");
173475fd0b74Schristos }
173575fd0b74Schristos 
173675fd0b74Schristos # define YY_STACK_PRINT(Bottom, Top)                            \
173775fd0b74Schristos do {                                                            \
173875fd0b74Schristos   if (yydebug)                                                  \
173975fd0b74Schristos     yy_stack_print ((Bottom), (Top));                           \
1740ede78133Schristos } while (0)
174175fd0b74Schristos 
174275fd0b74Schristos 
174375fd0b74Schristos /*------------------------------------------------.
174475fd0b74Schristos | Report that the YYRULE is going to be reduced.  |
174575fd0b74Schristos `------------------------------------------------*/
174675fd0b74Schristos 
174775fd0b74Schristos static void
yy_reduce_print(yy_state_t * yyssp,YYSTYPE * yyvsp,int yyrule)1748*e992f068Schristos yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
1749*e992f068Schristos                  int yyrule)
175075fd0b74Schristos {
1751*e992f068Schristos   int yylno = yyrline[yyrule];
175275fd0b74Schristos   int yynrhs = yyr2[yyrule];
175375fd0b74Schristos   int yyi;
1754*e992f068Schristos   YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
175575fd0b74Schristos              yyrule - 1, yylno);
175675fd0b74Schristos   /* The symbols being reduced.  */
175775fd0b74Schristos   for (yyi = 0; yyi < yynrhs; yyi++)
175875fd0b74Schristos     {
1759ede78133Schristos       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1760ede78133Schristos       yy_symbol_print (stderr,
1761*e992f068Schristos                        YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
1762*e992f068Schristos                        &yyvsp[(yyi + 1) - (yynrhs)]);
1763ede78133Schristos       YYFPRINTF (stderr, "\n");
176475fd0b74Schristos     }
176575fd0b74Schristos }
176675fd0b74Schristos 
176775fd0b74Schristos # define YY_REDUCE_PRINT(Rule)          \
176875fd0b74Schristos do {                                    \
176975fd0b74Schristos   if (yydebug)                          \
1770ede78133Schristos     yy_reduce_print (yyssp, yyvsp, Rule); \
1771ede78133Schristos } while (0)
177275fd0b74Schristos 
177375fd0b74Schristos /* Nonzero means print parse trace.  It is left uninitialized so that
177475fd0b74Schristos    multiple parsers can coexist.  */
177575fd0b74Schristos int yydebug;
177675fd0b74Schristos #else /* !YYDEBUG */
1777*e992f068Schristos # define YYDPRINTF(Args) ((void) 0)
1778*e992f068Schristos # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
177975fd0b74Schristos # define YY_STACK_PRINT(Bottom, Top)
178075fd0b74Schristos # define YY_REDUCE_PRINT(Rule)
178175fd0b74Schristos #endif /* !YYDEBUG */
178275fd0b74Schristos 
178375fd0b74Schristos 
178475fd0b74Schristos /* YYINITDEPTH -- initial size of the parser's stacks.  */
178575fd0b74Schristos #ifndef YYINITDEPTH
178675fd0b74Schristos # define YYINITDEPTH 200
178775fd0b74Schristos #endif
178875fd0b74Schristos 
178975fd0b74Schristos /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
179075fd0b74Schristos    if the built-in stack extension method is used).
179175fd0b74Schristos 
179275fd0b74Schristos    Do not make this value too large; the results are undefined if
179375fd0b74Schristos    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
179475fd0b74Schristos    evaluated with infinite-precision integer arithmetic.  */
179575fd0b74Schristos 
179675fd0b74Schristos #ifndef YYMAXDEPTH
179775fd0b74Schristos # define YYMAXDEPTH 10000
179875fd0b74Schristos #endif
179975fd0b74Schristos 
180075fd0b74Schristos 
180175fd0b74Schristos 
180275fd0b74Schristos 
180375fd0b74Schristos 
180475fd0b74Schristos 
180575fd0b74Schristos /*-----------------------------------------------.
180675fd0b74Schristos | Release the memory associated to this symbol.  |
180775fd0b74Schristos `-----------------------------------------------*/
180875fd0b74Schristos 
180975fd0b74Schristos static void
yydestruct(const char * yymsg,yysymbol_kind_t yykind,YYSTYPE * yyvaluep)1810*e992f068Schristos yydestruct (const char *yymsg,
1811*e992f068Schristos             yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
181275fd0b74Schristos {
1813*e992f068Schristos   YY_USE (yyvaluep);
181475fd0b74Schristos   if (!yymsg)
181575fd0b74Schristos     yymsg = "Deleting";
1816*e992f068Schristos   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
181775fd0b74Schristos 
1818ede78133Schristos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1819*e992f068Schristos   YY_USE (yykind);
1820ede78133Schristos   YY_IGNORE_MAYBE_UNINITIALIZED_END
182175fd0b74Schristos }
182275fd0b74Schristos 
182375fd0b74Schristos 
1824*e992f068Schristos /* Lookahead token kind.  */
182575fd0b74Schristos int yychar;
182675fd0b74Schristos 
1827ede78133Schristos /* The semantic value of the lookahead symbol.  */
182875fd0b74Schristos YYSTYPE yylval;
182975fd0b74Schristos /* Number of syntax errors so far.  */
183075fd0b74Schristos int yynerrs;
183175fd0b74Schristos 
183275fd0b74Schristos 
1833*e992f068Schristos 
1834*e992f068Schristos 
183575fd0b74Schristos /*----------.
183675fd0b74Schristos | yyparse.  |
183775fd0b74Schristos `----------*/
183875fd0b74Schristos 
183975fd0b74Schristos int
yyparse(void)184075fd0b74Schristos yyparse (void)
184175fd0b74Schristos {
1842*e992f068Schristos     yy_state_fast_t yystate = 0;
184375fd0b74Schristos     /* Number of tokens to shift before error messages enabled.  */
1844*e992f068Schristos     int yyerrstatus = 0;
1845ede78133Schristos 
1846*e992f068Schristos     /* Refer to the stacks through separate pointers, to allow yyoverflow
1847ede78133Schristos        to reallocate them elsewhere.  */
1848ede78133Schristos 
1849*e992f068Schristos     /* Their size.  */
1850*e992f068Schristos     YYPTRDIFF_T yystacksize = YYINITDEPTH;
1851ede78133Schristos 
1852*e992f068Schristos     /* The state stack: array, bottom, top.  */
1853*e992f068Schristos     yy_state_t yyssa[YYINITDEPTH];
1854*e992f068Schristos     yy_state_t *yyss = yyssa;
1855*e992f068Schristos     yy_state_t *yyssp = yyss;
1856*e992f068Schristos 
1857*e992f068Schristos     /* The semantic value stack: array, bottom, top.  */
1858ede78133Schristos     YYSTYPE yyvsa[YYINITDEPTH];
1859*e992f068Schristos     YYSTYPE *yyvs = yyvsa;
1860*e992f068Schristos     YYSTYPE *yyvsp = yyvs;
1861ede78133Schristos 
1862ede78133Schristos   int yyn;
1863*e992f068Schristos   /* The return value of yyparse.  */
1864ede78133Schristos   int yyresult;
1865*e992f068Schristos   /* Lookahead symbol kind.  */
1866*e992f068Schristos   yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
1867ede78133Schristos   /* The variables used to return semantic value and location from the
1868ede78133Schristos      action routines.  */
1869ede78133Schristos   YYSTYPE yyval;
1870ede78133Schristos 
1871*e992f068Schristos 
187275fd0b74Schristos 
187375fd0b74Schristos #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
187475fd0b74Schristos 
187575fd0b74Schristos   /* The number of symbols on the RHS of the reduced rule.
187675fd0b74Schristos      Keep to zero when no symbol should be popped.  */
187775fd0b74Schristos   int yylen = 0;
187875fd0b74Schristos 
187975fd0b74Schristos   YYDPRINTF ((stderr, "Starting parse\n"));
188075fd0b74Schristos 
188175fd0b74Schristos   yychar = YYEMPTY; /* Cause a token to be read.  */
1882*e992f068Schristos 
188375fd0b74Schristos   goto yysetstate;
188475fd0b74Schristos 
1885*e992f068Schristos 
188675fd0b74Schristos /*------------------------------------------------------------.
1887*e992f068Schristos | yynewstate -- push a new state, which is found in yystate.  |
188875fd0b74Schristos `------------------------------------------------------------*/
188975fd0b74Schristos yynewstate:
189075fd0b74Schristos   /* In all cases, when you get here, the value and location stacks
189175fd0b74Schristos      have just been pushed.  So pushing a state here evens the stacks.  */
189275fd0b74Schristos   yyssp++;
189375fd0b74Schristos 
1894*e992f068Schristos 
1895*e992f068Schristos /*--------------------------------------------------------------------.
1896*e992f068Schristos | yysetstate -- set current state (the top of the stack) to yystate.  |
1897*e992f068Schristos `--------------------------------------------------------------------*/
189875fd0b74Schristos yysetstate:
1899*e992f068Schristos   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1900*e992f068Schristos   YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
1901*e992f068Schristos   YY_IGNORE_USELESS_CAST_BEGIN
1902*e992f068Schristos   *yyssp = YY_CAST (yy_state_t, yystate);
1903*e992f068Schristos   YY_IGNORE_USELESS_CAST_END
1904*e992f068Schristos   YY_STACK_PRINT (yyss, yyssp);
190575fd0b74Schristos 
190675fd0b74Schristos   if (yyss + yystacksize - 1 <= yyssp)
1907*e992f068Schristos #if !defined yyoverflow && !defined YYSTACK_RELOCATE
1908*e992f068Schristos     YYNOMEM;
1909*e992f068Schristos #else
191075fd0b74Schristos     {
191175fd0b74Schristos       /* Get the current used size of the three stacks, in elements.  */
1912*e992f068Schristos       YYPTRDIFF_T yysize = yyssp - yyss + 1;
191375fd0b74Schristos 
1914*e992f068Schristos # if defined yyoverflow
191575fd0b74Schristos       {
191675fd0b74Schristos         /* Give user a chance to reallocate the stack.  Use copies of
191775fd0b74Schristos            these so that the &'s don't force the real ones into
191875fd0b74Schristos            memory.  */
1919*e992f068Schristos         yy_state_t *yyss1 = yyss;
192075fd0b74Schristos         YYSTYPE *yyvs1 = yyvs;
192175fd0b74Schristos 
192275fd0b74Schristos         /* Each stack pointer address is followed by the size of the
192375fd0b74Schristos            data in use in that stack, in bytes.  This used to be a
192475fd0b74Schristos            conditional around just the two extra args, but that might
192575fd0b74Schristos            be undefined if yyoverflow is a macro.  */
192675fd0b74Schristos         yyoverflow (YY_("memory exhausted"),
1927*e992f068Schristos                     &yyss1, yysize * YYSIZEOF (*yyssp),
1928*e992f068Schristos                     &yyvs1, yysize * YYSIZEOF (*yyvsp),
192975fd0b74Schristos                     &yystacksize);
193075fd0b74Schristos         yyss = yyss1;
193175fd0b74Schristos         yyvs = yyvs1;
193275fd0b74Schristos       }
1933*e992f068Schristos # else /* defined YYSTACK_RELOCATE */
193475fd0b74Schristos       /* Extend the stack our own way.  */
193575fd0b74Schristos       if (YYMAXDEPTH <= yystacksize)
1936*e992f068Schristos         YYNOMEM;
193775fd0b74Schristos       yystacksize *= 2;
193875fd0b74Schristos       if (YYMAXDEPTH < yystacksize)
193975fd0b74Schristos         yystacksize = YYMAXDEPTH;
194075fd0b74Schristos 
194175fd0b74Schristos       {
1942*e992f068Schristos         yy_state_t *yyss1 = yyss;
194375fd0b74Schristos         union yyalloc *yyptr =
1944*e992f068Schristos           YY_CAST (union yyalloc *,
1945*e992f068Schristos                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
194675fd0b74Schristos         if (! yyptr)
1947*e992f068Schristos           YYNOMEM;
1948ede78133Schristos         YYSTACK_RELOCATE (yyss_alloc, yyss);
1949ede78133Schristos         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
195075fd0b74Schristos #  undef YYSTACK_RELOCATE
195175fd0b74Schristos         if (yyss1 != yyssa)
195275fd0b74Schristos           YYSTACK_FREE (yyss1);
195375fd0b74Schristos       }
195475fd0b74Schristos # endif
195575fd0b74Schristos 
195675fd0b74Schristos       yyssp = yyss + yysize - 1;
195775fd0b74Schristos       yyvsp = yyvs + yysize - 1;
195875fd0b74Schristos 
1959*e992f068Schristos       YY_IGNORE_USELESS_CAST_BEGIN
1960*e992f068Schristos       YYDPRINTF ((stderr, "Stack size increased to %ld\n",
1961*e992f068Schristos                   YY_CAST (long, yystacksize)));
1962*e992f068Schristos       YY_IGNORE_USELESS_CAST_END
196375fd0b74Schristos 
196475fd0b74Schristos       if (yyss + yystacksize - 1 <= yyssp)
196575fd0b74Schristos         YYABORT;
196675fd0b74Schristos     }
1967*e992f068Schristos #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
196875fd0b74Schristos 
196975fd0b74Schristos 
1970ede78133Schristos   if (yystate == YYFINAL)
1971ede78133Schristos     YYACCEPT;
1972ede78133Schristos 
197375fd0b74Schristos   goto yybackup;
197475fd0b74Schristos 
1975*e992f068Schristos 
197675fd0b74Schristos /*-----------.
197775fd0b74Schristos | yybackup.  |
197875fd0b74Schristos `-----------*/
197975fd0b74Schristos yybackup:
198075fd0b74Schristos   /* Do appropriate processing given the current state.  Read a
1981ede78133Schristos      lookahead token if we need one and don't already have one.  */
198275fd0b74Schristos 
1983ede78133Schristos   /* First try to decide what to do without reference to lookahead token.  */
198475fd0b74Schristos   yyn = yypact[yystate];
1985ede78133Schristos   if (yypact_value_is_default (yyn))
198675fd0b74Schristos     goto yydefault;
198775fd0b74Schristos 
1988ede78133Schristos   /* Not known => get a lookahead token if don't already have one.  */
198975fd0b74Schristos 
1990*e992f068Schristos   /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
199175fd0b74Schristos   if (yychar == YYEMPTY)
199275fd0b74Schristos     {
1993*e992f068Schristos       YYDPRINTF ((stderr, "Reading a token\n"));
1994ede78133Schristos       yychar = yylex ();
199575fd0b74Schristos     }
199675fd0b74Schristos 
199775fd0b74Schristos   if (yychar <= YYEOF)
199875fd0b74Schristos     {
1999*e992f068Schristos       yychar = YYEOF;
2000*e992f068Schristos       yytoken = YYSYMBOL_YYEOF;
200175fd0b74Schristos       YYDPRINTF ((stderr, "Now at end of input.\n"));
200275fd0b74Schristos     }
2003*e992f068Schristos   else if (yychar == YYerror)
2004*e992f068Schristos     {
2005*e992f068Schristos       /* The scanner already issued an error message, process directly
2006*e992f068Schristos          to error recovery.  But do not keep the error token as
2007*e992f068Schristos          lookahead, it is too special and may lead us to an endless
2008*e992f068Schristos          loop in error recovery. */
2009*e992f068Schristos       yychar = YYUNDEF;
2010*e992f068Schristos       yytoken = YYSYMBOL_YYerror;
2011*e992f068Schristos       goto yyerrlab1;
2012*e992f068Schristos     }
201375fd0b74Schristos   else
201475fd0b74Schristos     {
201575fd0b74Schristos       yytoken = YYTRANSLATE (yychar);
201675fd0b74Schristos       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
201775fd0b74Schristos     }
201875fd0b74Schristos 
201975fd0b74Schristos   /* If the proper action on seeing token YYTOKEN is to reduce or to
202075fd0b74Schristos      detect an error, take that action.  */
202175fd0b74Schristos   yyn += yytoken;
202275fd0b74Schristos   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
202375fd0b74Schristos     goto yydefault;
202475fd0b74Schristos   yyn = yytable[yyn];
202575fd0b74Schristos   if (yyn <= 0)
202675fd0b74Schristos     {
2027ede78133Schristos       if (yytable_value_is_error (yyn))
202875fd0b74Schristos         goto yyerrlab;
202975fd0b74Schristos       yyn = -yyn;
203075fd0b74Schristos       goto yyreduce;
203175fd0b74Schristos     }
203275fd0b74Schristos 
203375fd0b74Schristos   /* Count tokens shifted since error; after three, turn off error
203475fd0b74Schristos      status.  */
203575fd0b74Schristos   if (yyerrstatus)
203675fd0b74Schristos     yyerrstatus--;
203775fd0b74Schristos 
2038ede78133Schristos   /* Shift the lookahead token.  */
203975fd0b74Schristos   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
204075fd0b74Schristos   yystate = yyn;
2041ede78133Schristos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
204275fd0b74Schristos   *++yyvsp = yylval;
2043ede78133Schristos   YY_IGNORE_MAYBE_UNINITIALIZED_END
204475fd0b74Schristos 
2045*e992f068Schristos   /* Discard the shifted token.  */
2046*e992f068Schristos   yychar = YYEMPTY;
204775fd0b74Schristos   goto yynewstate;
204875fd0b74Schristos 
204975fd0b74Schristos 
205075fd0b74Schristos /*-----------------------------------------------------------.
205175fd0b74Schristos | yydefault -- do the default action for the current state.  |
205275fd0b74Schristos `-----------------------------------------------------------*/
205375fd0b74Schristos yydefault:
205475fd0b74Schristos   yyn = yydefact[yystate];
205575fd0b74Schristos   if (yyn == 0)
205675fd0b74Schristos     goto yyerrlab;
205775fd0b74Schristos   goto yyreduce;
205875fd0b74Schristos 
205975fd0b74Schristos 
206075fd0b74Schristos /*-----------------------------.
2061*e992f068Schristos | yyreduce -- do a reduction.  |
206275fd0b74Schristos `-----------------------------*/
206375fd0b74Schristos yyreduce:
206475fd0b74Schristos   /* yyn is the number of a rule to reduce with.  */
206575fd0b74Schristos   yylen = yyr2[yyn];
206675fd0b74Schristos 
206775fd0b74Schristos   /* If YYLEN is nonzero, implement the default value of the action:
2068ede78133Schristos      '$$ = $1'.
206975fd0b74Schristos 
207075fd0b74Schristos      Otherwise, the following line sets YYVAL to garbage.
207175fd0b74Schristos      This behavior is undocumented and Bison
207275fd0b74Schristos      users should not rely upon it.  Assigning to YYVAL
207375fd0b74Schristos      unconditionally makes the parser a bit smaller, and it avoids a
207475fd0b74Schristos      GCC warning that YYVAL may be used uninitialized.  */
207575fd0b74Schristos   yyval = yyvsp[1-yylen];
207675fd0b74Schristos 
207775fd0b74Schristos 
207875fd0b74Schristos   YY_REDUCE_PRINT (yyn);
207975fd0b74Schristos   switch (yyn)
208075fd0b74Schristos     {
2081*e992f068Schristos   case 18: /* accelerator: id ACCELERATORS suboptions BEG acc_entries END  */
2082*e992f068Schristos #line 201 "rcparse.y"
208375fd0b74Schristos           {
2084ede78133Schristos 	    define_accelerator ((yyvsp[-5].id), &(yyvsp[-3].res_info), (yyvsp[-1].pacc));
208575fd0b74Schristos 	    if (yychar != YYEMPTY)
208675fd0b74Schristos 	      YYERROR;
208775fd0b74Schristos 	    rcparse_discard_strings ();
208875fd0b74Schristos 	  }
2089*e992f068Schristos #line 2090 "rcparse.c"
209075fd0b74Schristos     break;
209175fd0b74Schristos 
2092*e992f068Schristos   case 19: /* acc_entries: %empty  */
2093*e992f068Schristos #line 211 "rcparse.y"
209475fd0b74Schristos           {
209575fd0b74Schristos 	    (yyval.pacc) = NULL;
209675fd0b74Schristos 	  }
2097*e992f068Schristos #line 2098 "rcparse.c"
209875fd0b74Schristos     break;
209975fd0b74Schristos 
2100*e992f068Schristos   case 20: /* acc_entries: acc_entries acc_entry  */
2101*e992f068Schristos #line 215 "rcparse.y"
210275fd0b74Schristos           {
210375fd0b74Schristos 	    rc_accelerator *a;
210475fd0b74Schristos 
210575fd0b74Schristos 	    a = (rc_accelerator *) res_alloc (sizeof *a);
2106ede78133Schristos 	    *a = (yyvsp[0].acc);
2107ede78133Schristos 	    if ((yyvsp[-1].pacc) == NULL)
210875fd0b74Schristos 	      (yyval.pacc) = a;
210975fd0b74Schristos 	    else
211075fd0b74Schristos 	      {
211175fd0b74Schristos 		rc_accelerator **pp;
211275fd0b74Schristos 
2113ede78133Schristos 		for (pp = &(yyvsp[-1].pacc)->next; *pp != NULL; pp = &(*pp)->next)
211475fd0b74Schristos 		  ;
211575fd0b74Schristos 		*pp = a;
2116ede78133Schristos 		(yyval.pacc) = (yyvsp[-1].pacc);
211775fd0b74Schristos 	      }
211875fd0b74Schristos 	  }
2119*e992f068Schristos #line 2120 "rcparse.c"
212075fd0b74Schristos     break;
212175fd0b74Schristos 
2122*e992f068Schristos   case 21: /* acc_entry: acc_event cposnumexpr  */
2123*e992f068Schristos #line 236 "rcparse.y"
212475fd0b74Schristos           {
2125ede78133Schristos 	    (yyval.acc) = (yyvsp[-1].acc);
2126ede78133Schristos 	    (yyval.acc).id = (yyvsp[0].il);
212775fd0b74Schristos 	  }
2128*e992f068Schristos #line 2129 "rcparse.c"
212975fd0b74Schristos     break;
213075fd0b74Schristos 
2131*e992f068Schristos   case 22: /* acc_entry: acc_event cposnumexpr ',' acc_options  */
2132*e992f068Schristos #line 241 "rcparse.y"
213375fd0b74Schristos           {
2134ede78133Schristos 	    (yyval.acc) = (yyvsp[-3].acc);
2135ede78133Schristos 	    (yyval.acc).id = (yyvsp[-2].il);
2136ede78133Schristos 	    (yyval.acc).flags |= (yyvsp[0].is);
213775fd0b74Schristos 	    if (((yyval.acc).flags & ACC_VIRTKEY) == 0
213875fd0b74Schristos 		&& ((yyval.acc).flags & (ACC_SHIFT | ACC_CONTROL)) != 0)
213975fd0b74Schristos 	      rcparse_warning (_("inappropriate modifiers for non-VIRTKEY"));
214075fd0b74Schristos 	  }
2141*e992f068Schristos #line 2142 "rcparse.c"
214275fd0b74Schristos     break;
214375fd0b74Schristos 
2144*e992f068Schristos   case 23: /* acc_event: QUOTEDSTRING  */
2145*e992f068Schristos #line 253 "rcparse.y"
214675fd0b74Schristos           {
2147ede78133Schristos 	    const char *s = (yyvsp[0].s);
214875fd0b74Schristos 	    char ch;
214975fd0b74Schristos 
215075fd0b74Schristos 	    (yyval.acc).next = NULL;
215175fd0b74Schristos 	    (yyval.acc).id = 0;
215275fd0b74Schristos 	    ch = *s;
215375fd0b74Schristos 	    if (ch != '^')
215475fd0b74Schristos 	      (yyval.acc).flags = 0;
215575fd0b74Schristos 	    else
215675fd0b74Schristos 	      {
215775fd0b74Schristos 		(yyval.acc).flags = ACC_CONTROL | ACC_VIRTKEY;
215875fd0b74Schristos 		++s;
215975fd0b74Schristos 		ch = TOUPPER (s[0]);
216075fd0b74Schristos 	      }
216175fd0b74Schristos 	    (yyval.acc).key = ch;
216275fd0b74Schristos 	    if (s[1] != '\0')
216375fd0b74Schristos 	      rcparse_warning (_("accelerator should only be one character"));
216475fd0b74Schristos 	  }
2165*e992f068Schristos #line 2166 "rcparse.c"
216675fd0b74Schristos     break;
216775fd0b74Schristos 
2168*e992f068Schristos   case 24: /* acc_event: posnumexpr  */
2169*e992f068Schristos #line 273 "rcparse.y"
217075fd0b74Schristos           {
217175fd0b74Schristos 	    (yyval.acc).next = NULL;
217275fd0b74Schristos 	    (yyval.acc).flags = 0;
217375fd0b74Schristos 	    (yyval.acc).id = 0;
2174ede78133Schristos 	    (yyval.acc).key = (yyvsp[0].il);
217575fd0b74Schristos 	  }
2176*e992f068Schristos #line 2177 "rcparse.c"
217775fd0b74Schristos     break;
217875fd0b74Schristos 
2179*e992f068Schristos   case 25: /* acc_options: acc_option  */
2180*e992f068Schristos #line 283 "rcparse.y"
218175fd0b74Schristos           {
2182ede78133Schristos 	    (yyval.is) = (yyvsp[0].is);
218375fd0b74Schristos 	  }
2184*e992f068Schristos #line 2185 "rcparse.c"
218575fd0b74Schristos     break;
218675fd0b74Schristos 
2187*e992f068Schristos   case 26: /* acc_options: acc_options ',' acc_option  */
2188*e992f068Schristos #line 287 "rcparse.y"
218975fd0b74Schristos           {
2190ede78133Schristos 	    (yyval.is) = (yyvsp[-2].is) | (yyvsp[0].is);
219175fd0b74Schristos 	  }
2192*e992f068Schristos #line 2193 "rcparse.c"
219375fd0b74Schristos     break;
219475fd0b74Schristos 
2195*e992f068Schristos   case 27: /* acc_options: acc_options acc_option  */
2196*e992f068Schristos #line 292 "rcparse.y"
219775fd0b74Schristos           {
2198ede78133Schristos 	    (yyval.is) = (yyvsp[-1].is) | (yyvsp[0].is);
219975fd0b74Schristos 	  }
2200*e992f068Schristos #line 2201 "rcparse.c"
220175fd0b74Schristos     break;
220275fd0b74Schristos 
2203*e992f068Schristos   case 28: /* acc_option: VIRTKEY  */
2204*e992f068Schristos #line 299 "rcparse.y"
220575fd0b74Schristos           {
220675fd0b74Schristos 	    (yyval.is) = ACC_VIRTKEY;
220775fd0b74Schristos 	  }
2208*e992f068Schristos #line 2209 "rcparse.c"
220975fd0b74Schristos     break;
221075fd0b74Schristos 
2211*e992f068Schristos   case 29: /* acc_option: ASCII  */
2212*e992f068Schristos #line 303 "rcparse.y"
221375fd0b74Schristos           {
221475fd0b74Schristos 	    /* This is just the absence of VIRTKEY.  */
221575fd0b74Schristos 	    (yyval.is) = 0;
221675fd0b74Schristos 	  }
2217*e992f068Schristos #line 2218 "rcparse.c"
221875fd0b74Schristos     break;
221975fd0b74Schristos 
2220*e992f068Schristos   case 30: /* acc_option: NOINVERT  */
2221*e992f068Schristos #line 308 "rcparse.y"
222275fd0b74Schristos           {
222375fd0b74Schristos 	    (yyval.is) = ACC_NOINVERT;
222475fd0b74Schristos 	  }
2225*e992f068Schristos #line 2226 "rcparse.c"
222675fd0b74Schristos     break;
222775fd0b74Schristos 
2228*e992f068Schristos   case 31: /* acc_option: SHIFT  */
2229*e992f068Schristos #line 312 "rcparse.y"
223075fd0b74Schristos           {
223175fd0b74Schristos 	    (yyval.is) = ACC_SHIFT;
223275fd0b74Schristos 	  }
2233*e992f068Schristos #line 2234 "rcparse.c"
223475fd0b74Schristos     break;
223575fd0b74Schristos 
2236*e992f068Schristos   case 32: /* acc_option: CONTROL  */
2237*e992f068Schristos #line 316 "rcparse.y"
223875fd0b74Schristos           {
223975fd0b74Schristos 	    (yyval.is) = ACC_CONTROL;
224075fd0b74Schristos 	  }
2241*e992f068Schristos #line 2242 "rcparse.c"
224275fd0b74Schristos     break;
224375fd0b74Schristos 
2244*e992f068Schristos   case 33: /* acc_option: ALT  */
2245*e992f068Schristos #line 320 "rcparse.y"
224675fd0b74Schristos           {
224775fd0b74Schristos 	    (yyval.is) = ACC_ALT;
224875fd0b74Schristos 	  }
2249*e992f068Schristos #line 2250 "rcparse.c"
225075fd0b74Schristos     break;
225175fd0b74Schristos 
2252*e992f068Schristos   case 34: /* bitmap: id BITMAP memflags_move file_name  */
2253*e992f068Schristos #line 329 "rcparse.y"
225475fd0b74Schristos           {
2255ede78133Schristos 	    define_bitmap ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s));
225675fd0b74Schristos 	    if (yychar != YYEMPTY)
225775fd0b74Schristos 	      YYERROR;
225875fd0b74Schristos 	    rcparse_discard_strings ();
225975fd0b74Schristos 	  }
2260*e992f068Schristos #line 2261 "rcparse.c"
226175fd0b74Schristos     break;
226275fd0b74Schristos 
2263*e992f068Schristos   case 35: /* cursor: id CURSOR memflags_move_discard file_name  */
2264*e992f068Schristos #line 341 "rcparse.y"
226575fd0b74Schristos           {
2266ede78133Schristos 	    define_cursor ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s));
226775fd0b74Schristos 	    if (yychar != YYEMPTY)
226875fd0b74Schristos 	      YYERROR;
226975fd0b74Schristos 	    rcparse_discard_strings ();
227075fd0b74Schristos 	  }
2271*e992f068Schristos #line 2272 "rcparse.c"
227275fd0b74Schristos     break;
227375fd0b74Schristos 
2274*e992f068Schristos   case 36: /* $@1: %empty  */
2275*e992f068Schristos #line 354 "rcparse.y"
227675fd0b74Schristos             {
227775fd0b74Schristos 	      memset (&dialog, 0, sizeof dialog);
2278ede78133Schristos 	      dialog.x = (yyvsp[-3].il);
2279ede78133Schristos 	      dialog.y = (yyvsp[-2].il);
2280ede78133Schristos 	      dialog.width = (yyvsp[-1].il);
2281ede78133Schristos 	      dialog.height = (yyvsp[0].il);
228275fd0b74Schristos 	      dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU;
2283ede78133Schristos 	      dialog.exstyle = (yyvsp[-4].il);
228475fd0b74Schristos 	      dialog.menu.named = 1;
228575fd0b74Schristos 	      dialog.class.named = 1;
228675fd0b74Schristos 	      dialog.font = NULL;
228775fd0b74Schristos 	      dialog.ex = NULL;
228875fd0b74Schristos 	      dialog.controls = NULL;
2289ede78133Schristos 	      sub_res_info = (yyvsp[-5].res_info);
229075fd0b74Schristos 	      style = 0;
229175fd0b74Schristos 	    }
2292*e992f068Schristos #line 2293 "rcparse.c"
229375fd0b74Schristos     break;
229475fd0b74Schristos 
2295*e992f068Schristos   case 37: /* dialog: id DIALOG memflags_move exstyle posnumexpr cnumexpr cnumexpr cnumexpr $@1 styles BEG controls END  */
2296*e992f068Schristos #line 371 "rcparse.y"
229775fd0b74Schristos           {
2298ede78133Schristos 	    define_dialog ((yyvsp[-12].id), &sub_res_info, &dialog);
229975fd0b74Schristos 	    if (yychar != YYEMPTY)
230075fd0b74Schristos 	      YYERROR;
230175fd0b74Schristos 	    rcparse_discard_strings ();
230275fd0b74Schristos 	  }
2303*e992f068Schristos #line 2304 "rcparse.c"
230475fd0b74Schristos     break;
230575fd0b74Schristos 
2306*e992f068Schristos   case 38: /* $@2: %empty  */
2307*e992f068Schristos #line 379 "rcparse.y"
230875fd0b74Schristos             {
230975fd0b74Schristos 	      memset (&dialog, 0, sizeof dialog);
2310ede78133Schristos 	      dialog.x = (yyvsp[-3].il);
2311ede78133Schristos 	      dialog.y = (yyvsp[-2].il);
2312ede78133Schristos 	      dialog.width = (yyvsp[-1].il);
2313ede78133Schristos 	      dialog.height = (yyvsp[0].il);
231475fd0b74Schristos 	      dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU;
2315ede78133Schristos 	      dialog.exstyle = (yyvsp[-4].il);
231675fd0b74Schristos 	      dialog.menu.named = 1;
231775fd0b74Schristos 	      dialog.class.named = 1;
231875fd0b74Schristos 	      dialog.font = NULL;
231975fd0b74Schristos 	      dialog.ex = ((rc_dialog_ex *)
232075fd0b74Schristos 			   res_alloc (sizeof (rc_dialog_ex)));
232175fd0b74Schristos 	      memset (dialog.ex, 0, sizeof (rc_dialog_ex));
232275fd0b74Schristos 	      dialog.controls = NULL;
2323ede78133Schristos 	      sub_res_info = (yyvsp[-5].res_info);
232475fd0b74Schristos 	      style = 0;
232575fd0b74Schristos 	    }
2326*e992f068Schristos #line 2327 "rcparse.c"
232775fd0b74Schristos     break;
232875fd0b74Schristos 
2329*e992f068Schristos   case 39: /* dialog: id DIALOGEX memflags_move exstyle posnumexpr cnumexpr cnumexpr cnumexpr $@2 styles BEG controls END  */
2330*e992f068Schristos #line 398 "rcparse.y"
233175fd0b74Schristos           {
2332ede78133Schristos 	    define_dialog ((yyvsp[-12].id), &sub_res_info, &dialog);
233375fd0b74Schristos 	    if (yychar != YYEMPTY)
233475fd0b74Schristos 	      YYERROR;
233575fd0b74Schristos 	    rcparse_discard_strings ();
233675fd0b74Schristos 	  }
2337*e992f068Schristos #line 2338 "rcparse.c"
233875fd0b74Schristos     break;
233975fd0b74Schristos 
2340*e992f068Schristos   case 40: /* $@3: %empty  */
2341*e992f068Schristos #line 406 "rcparse.y"
234275fd0b74Schristos             {
234375fd0b74Schristos 	      memset (&dialog, 0, sizeof dialog);
2344ede78133Schristos 	      dialog.x = (yyvsp[-4].il);
2345ede78133Schristos 	      dialog.y = (yyvsp[-3].il);
2346ede78133Schristos 	      dialog.width = (yyvsp[-2].il);
2347ede78133Schristos 	      dialog.height = (yyvsp[-1].il);
234875fd0b74Schristos 	      dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU;
2349ede78133Schristos 	      dialog.exstyle = (yyvsp[-5].il);
235075fd0b74Schristos 	      dialog.menu.named = 1;
235175fd0b74Schristos 	      dialog.class.named = 1;
235275fd0b74Schristos 	      dialog.font = NULL;
235375fd0b74Schristos 	      dialog.ex = ((rc_dialog_ex *)
235475fd0b74Schristos 			   res_alloc (sizeof (rc_dialog_ex)));
235575fd0b74Schristos 	      memset (dialog.ex, 0, sizeof (rc_dialog_ex));
2356ede78133Schristos 	      dialog.ex->help = (yyvsp[0].il);
235775fd0b74Schristos 	      dialog.controls = NULL;
2358ede78133Schristos 	      sub_res_info = (yyvsp[-6].res_info);
235975fd0b74Schristos 	      style = 0;
236075fd0b74Schristos 	    }
2361*e992f068Schristos #line 2362 "rcparse.c"
236275fd0b74Schristos     break;
236375fd0b74Schristos 
2364*e992f068Schristos   case 41: /* dialog: id DIALOGEX memflags_move exstyle posnumexpr cnumexpr cnumexpr cnumexpr cnumexpr $@3 styles BEG controls END  */
2365*e992f068Schristos #line 426 "rcparse.y"
236675fd0b74Schristos           {
2367ede78133Schristos 	    define_dialog ((yyvsp[-13].id), &sub_res_info, &dialog);
236875fd0b74Schristos 	    if (yychar != YYEMPTY)
236975fd0b74Schristos 	      YYERROR;
237075fd0b74Schristos 	    rcparse_discard_strings ();
237175fd0b74Schristos 	  }
2372*e992f068Schristos #line 2373 "rcparse.c"
237375fd0b74Schristos     break;
237475fd0b74Schristos 
2375*e992f068Schristos   case 42: /* exstyle: %empty  */
2376*e992f068Schristos #line 436 "rcparse.y"
237775fd0b74Schristos           {
237875fd0b74Schristos 	    (yyval.il) = 0;
237975fd0b74Schristos 	  }
2380*e992f068Schristos #line 2381 "rcparse.c"
238175fd0b74Schristos     break;
238275fd0b74Schristos 
2383*e992f068Schristos   case 43: /* exstyle: EXSTYLE '=' numexpr  */
2384*e992f068Schristos #line 440 "rcparse.y"
238575fd0b74Schristos           {
2386ede78133Schristos 	    (yyval.il) = (yyvsp[0].il);
238775fd0b74Schristos 	  }
2388*e992f068Schristos #line 2389 "rcparse.c"
238975fd0b74Schristos     break;
239075fd0b74Schristos 
2391*e992f068Schristos   case 45: /* styles: styles CAPTION res_unicode_string_concat  */
2392*e992f068Schristos #line 448 "rcparse.y"
239375fd0b74Schristos           {
239475fd0b74Schristos 	    dialog.style |= WS_CAPTION;
239575fd0b74Schristos 	    style |= WS_CAPTION;
2396ede78133Schristos 	    dialog.caption = (yyvsp[0].uni);
239775fd0b74Schristos 	  }
2398*e992f068Schristos #line 2399 "rcparse.c"
239975fd0b74Schristos     break;
240075fd0b74Schristos 
2401*e992f068Schristos   case 46: /* styles: styles CLASS id  */
2402*e992f068Schristos #line 454 "rcparse.y"
240375fd0b74Schristos           {
2404ede78133Schristos 	    dialog.class = (yyvsp[0].id);
240575fd0b74Schristos 	  }
2406*e992f068Schristos #line 2407 "rcparse.c"
240775fd0b74Schristos     break;
240875fd0b74Schristos 
2409*e992f068Schristos   case 47: /* styles: styles STYLE styleexpr  */
2410*e992f068Schristos #line 459 "rcparse.y"
241175fd0b74Schristos           {
241275fd0b74Schristos 	    dialog.style = style;
241375fd0b74Schristos 	  }
2414*e992f068Schristos #line 2415 "rcparse.c"
241575fd0b74Schristos     break;
241675fd0b74Schristos 
2417*e992f068Schristos   case 48: /* styles: styles EXSTYLE numexpr  */
2418*e992f068Schristos #line 463 "rcparse.y"
241975fd0b74Schristos           {
2420ede78133Schristos 	    dialog.exstyle = (yyvsp[0].il);
242175fd0b74Schristos 	  }
2422*e992f068Schristos #line 2423 "rcparse.c"
242375fd0b74Schristos     break;
242475fd0b74Schristos 
2425*e992f068Schristos   case 49: /* styles: styles CLASS res_unicode_string_concat  */
2426*e992f068Schristos #line 467 "rcparse.y"
242775fd0b74Schristos           {
2428ede78133Schristos 	    res_unistring_to_id (& dialog.class, (yyvsp[0].uni));
242975fd0b74Schristos 	  }
2430*e992f068Schristos #line 2431 "rcparse.c"
243175fd0b74Schristos     break;
243275fd0b74Schristos 
2433*e992f068Schristos   case 50: /* styles: styles FONT numexpr ',' res_unicode_string_concat  */
2434*e992f068Schristos #line 471 "rcparse.y"
243575fd0b74Schristos           {
243675fd0b74Schristos 	    dialog.style |= DS_SETFONT;
243775fd0b74Schristos 	    style |= DS_SETFONT;
2438ede78133Schristos 	    dialog.pointsize = (yyvsp[-2].il);
2439ede78133Schristos 	    dialog.font = (yyvsp[0].uni);
244075fd0b74Schristos 	    if (dialog.ex != NULL)
244175fd0b74Schristos 	      {
244275fd0b74Schristos 		dialog.ex->weight = 0;
244375fd0b74Schristos 		dialog.ex->italic = 0;
244475fd0b74Schristos 		dialog.ex->charset = 1;
244575fd0b74Schristos 	      }
244675fd0b74Schristos 	  }
2447*e992f068Schristos #line 2448 "rcparse.c"
244875fd0b74Schristos     break;
244975fd0b74Schristos 
2450*e992f068Schristos   case 51: /* styles: styles FONT numexpr ',' res_unicode_string_concat cnumexpr  */
2451*e992f068Schristos #line 484 "rcparse.y"
245275fd0b74Schristos           {
245375fd0b74Schristos 	    dialog.style |= DS_SETFONT;
245475fd0b74Schristos 	    style |= DS_SETFONT;
2455ede78133Schristos 	    dialog.pointsize = (yyvsp[-3].il);
2456ede78133Schristos 	    dialog.font = (yyvsp[-1].uni);
245775fd0b74Schristos 	    if (dialog.ex == NULL)
245875fd0b74Schristos 	      rcparse_warning (_("extended FONT requires DIALOGEX"));
245975fd0b74Schristos 	    else
246075fd0b74Schristos 	      {
2461ede78133Schristos 		dialog.ex->weight = (yyvsp[0].il);
246275fd0b74Schristos 		dialog.ex->italic = 0;
246375fd0b74Schristos 		dialog.ex->charset = 1;
246475fd0b74Schristos 	      }
246575fd0b74Schristos 	  }
2466*e992f068Schristos #line 2467 "rcparse.c"
246775fd0b74Schristos     break;
246875fd0b74Schristos 
2469*e992f068Schristos   case 52: /* styles: styles FONT numexpr ',' res_unicode_string_concat cnumexpr cnumexpr  */
2470*e992f068Schristos #line 499 "rcparse.y"
247175fd0b74Schristos           {
247275fd0b74Schristos 	    dialog.style |= DS_SETFONT;
247375fd0b74Schristos 	    style |= DS_SETFONT;
2474ede78133Schristos 	    dialog.pointsize = (yyvsp[-4].il);
2475ede78133Schristos 	    dialog.font = (yyvsp[-2].uni);
247675fd0b74Schristos 	    if (dialog.ex == NULL)
247775fd0b74Schristos 	      rcparse_warning (_("extended FONT requires DIALOGEX"));
247875fd0b74Schristos 	    else
247975fd0b74Schristos 	      {
2480ede78133Schristos 		dialog.ex->weight = (yyvsp[-1].il);
2481ede78133Schristos 		dialog.ex->italic = (yyvsp[0].il);
248275fd0b74Schristos 		dialog.ex->charset = 1;
248375fd0b74Schristos 	      }
248475fd0b74Schristos 	  }
2485*e992f068Schristos #line 2486 "rcparse.c"
248675fd0b74Schristos     break;
248775fd0b74Schristos 
2488*e992f068Schristos   case 53: /* styles: styles FONT numexpr ',' res_unicode_string_concat cnumexpr cnumexpr cnumexpr  */
2489*e992f068Schristos #line 514 "rcparse.y"
249075fd0b74Schristos           {
249175fd0b74Schristos 	    dialog.style |= DS_SETFONT;
249275fd0b74Schristos 	    style |= DS_SETFONT;
2493ede78133Schristos 	    dialog.pointsize = (yyvsp[-5].il);
2494ede78133Schristos 	    dialog.font = (yyvsp[-3].uni);
249575fd0b74Schristos 	    if (dialog.ex == NULL)
249675fd0b74Schristos 	      rcparse_warning (_("extended FONT requires DIALOGEX"));
249775fd0b74Schristos 	    else
249875fd0b74Schristos 	      {
2499ede78133Schristos 		dialog.ex->weight = (yyvsp[-2].il);
2500ede78133Schristos 		dialog.ex->italic = (yyvsp[-1].il);
2501ede78133Schristos 		dialog.ex->charset = (yyvsp[0].il);
250275fd0b74Schristos 	      }
250375fd0b74Schristos 	  }
2504*e992f068Schristos #line 2505 "rcparse.c"
250575fd0b74Schristos     break;
250675fd0b74Schristos 
2507*e992f068Schristos   case 54: /* styles: styles MENU id  */
2508*e992f068Schristos #line 529 "rcparse.y"
250975fd0b74Schristos           {
2510ede78133Schristos 	    dialog.menu = (yyvsp[0].id);
251175fd0b74Schristos 	  }
2512*e992f068Schristos #line 2513 "rcparse.c"
251375fd0b74Schristos     break;
251475fd0b74Schristos 
2515*e992f068Schristos   case 55: /* styles: styles CHARACTERISTICS numexpr  */
2516*e992f068Schristos #line 533 "rcparse.y"
251775fd0b74Schristos           {
2518ede78133Schristos 	    sub_res_info.characteristics = (yyvsp[0].il);
251975fd0b74Schristos 	  }
2520*e992f068Schristos #line 2521 "rcparse.c"
252175fd0b74Schristos     break;
252275fd0b74Schristos 
2523*e992f068Schristos   case 56: /* styles: styles LANGUAGE numexpr cnumexpr  */
2524*e992f068Schristos #line 537 "rcparse.y"
252575fd0b74Schristos           {
2526ede78133Schristos 	    sub_res_info.language = (yyvsp[-1].il) | ((yyvsp[0].il) << SUBLANG_SHIFT);
252775fd0b74Schristos 	  }
2528*e992f068Schristos #line 2529 "rcparse.c"
252975fd0b74Schristos     break;
253075fd0b74Schristos 
2531*e992f068Schristos   case 57: /* styles: styles VERSIONK numexpr  */
2532*e992f068Schristos #line 541 "rcparse.y"
253375fd0b74Schristos           {
2534ede78133Schristos 	    sub_res_info.version = (yyvsp[0].il);
253575fd0b74Schristos 	  }
2536*e992f068Schristos #line 2537 "rcparse.c"
253775fd0b74Schristos     break;
253875fd0b74Schristos 
2539*e992f068Schristos   case 59: /* controls: controls control  */
2540*e992f068Schristos #line 549 "rcparse.y"
254175fd0b74Schristos           {
254275fd0b74Schristos 	    rc_dialog_control **pp;
254375fd0b74Schristos 
254475fd0b74Schristos 	    for (pp = &dialog.controls; *pp != NULL; pp = &(*pp)->next)
254575fd0b74Schristos 	      ;
2546ede78133Schristos 	    *pp = (yyvsp[0].dialog_control);
254775fd0b74Schristos 	  }
2548*e992f068Schristos #line 2549 "rcparse.c"
254975fd0b74Schristos     break;
255075fd0b74Schristos 
2551*e992f068Schristos   case 60: /* $@4: %empty  */
2552*e992f068Schristos #line 560 "rcparse.y"
255375fd0b74Schristos             {
255475fd0b74Schristos 	      default_style = BS_AUTO3STATE | WS_TABSTOP;
255575fd0b74Schristos 	      base_style = BS_AUTO3STATE;
255675fd0b74Schristos 	      class.named = 0;
255775fd0b74Schristos 	      class.u.id = CTL_BUTTON;
2558ede78133Schristos 	      res_text_field = (yyvsp[0].id);
255975fd0b74Schristos 	    }
2560*e992f068Schristos #line 2561 "rcparse.c"
256175fd0b74Schristos     break;
256275fd0b74Schristos 
2563*e992f068Schristos   case 61: /* control: AUTO3STATE optresidc $@4 control_params  */
2564*e992f068Schristos #line 568 "rcparse.y"
256575fd0b74Schristos           {
2566ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
256775fd0b74Schristos 	  }
2568*e992f068Schristos #line 2569 "rcparse.c"
256975fd0b74Schristos     break;
257075fd0b74Schristos 
2571*e992f068Schristos   case 62: /* $@5: %empty  */
2572*e992f068Schristos #line 572 "rcparse.y"
257375fd0b74Schristos             {
257475fd0b74Schristos 	      default_style = BS_AUTOCHECKBOX | WS_TABSTOP;
2575*e992f068Schristos 	      base_style = BS_AUTOCHECKBOX | WS_TABSTOP;
257675fd0b74Schristos 	      class.named = 0;
257775fd0b74Schristos 	      class.u.id = CTL_BUTTON;
2578ede78133Schristos 	      res_text_field = (yyvsp[0].id);
257975fd0b74Schristos 	    }
2580*e992f068Schristos #line 2581 "rcparse.c"
258175fd0b74Schristos     break;
258275fd0b74Schristos 
2583*e992f068Schristos   case 63: /* control: AUTOCHECKBOX optresidc $@5 control_params  */
2584*e992f068Schristos #line 580 "rcparse.y"
258575fd0b74Schristos           {
2586ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
258775fd0b74Schristos 	  }
2588*e992f068Schristos #line 2589 "rcparse.c"
258975fd0b74Schristos     break;
259075fd0b74Schristos 
2591*e992f068Schristos   case 64: /* $@6: %empty  */
2592*e992f068Schristos #line 584 "rcparse.y"
259375fd0b74Schristos             {
259475fd0b74Schristos 	      default_style = BS_AUTORADIOBUTTON | WS_TABSTOP;
259575fd0b74Schristos 	      base_style = BS_AUTORADIOBUTTON;
259675fd0b74Schristos 	      class.named = 0;
259775fd0b74Schristos 	      class.u.id = CTL_BUTTON;
2598ede78133Schristos 	      res_text_field = (yyvsp[0].id);
259975fd0b74Schristos 	    }
2600*e992f068Schristos #line 2601 "rcparse.c"
260175fd0b74Schristos     break;
260275fd0b74Schristos 
2603*e992f068Schristos   case 65: /* control: AUTORADIOBUTTON optresidc $@6 control_params  */
2604*e992f068Schristos #line 592 "rcparse.y"
260575fd0b74Schristos           {
2606ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
260775fd0b74Schristos 	  }
2608*e992f068Schristos #line 2609 "rcparse.c"
260975fd0b74Schristos     break;
261075fd0b74Schristos 
2611*e992f068Schristos   case 66: /* $@7: %empty  */
2612*e992f068Schristos #line 596 "rcparse.y"
261375fd0b74Schristos             {
261475fd0b74Schristos 	      default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
261575fd0b74Schristos 	      base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
261675fd0b74Schristos 	      class.named = 0;
261775fd0b74Schristos 	      class.u.id = CTL_EDIT;
2618ede78133Schristos 	      res_text_field = (yyvsp[0].id);
261975fd0b74Schristos 	    }
2620*e992f068Schristos #line 2621 "rcparse.c"
262175fd0b74Schristos     break;
262275fd0b74Schristos 
2623*e992f068Schristos   case 67: /* control: BEDIT optresidc $@7 control_params  */
2624*e992f068Schristos #line 604 "rcparse.y"
262575fd0b74Schristos           {
2626ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
262775fd0b74Schristos 	    if (dialog.ex == NULL)
262875fd0b74Schristos 	      rcparse_warning (_("BEDIT requires DIALOGEX"));
262975fd0b74Schristos 	    res_string_to_id (&(yyval.dialog_control)->class, "BEDIT");
263075fd0b74Schristos 	  }
2631*e992f068Schristos #line 2632 "rcparse.c"
263275fd0b74Schristos     break;
263375fd0b74Schristos 
2634*e992f068Schristos   case 68: /* $@8: %empty  */
2635*e992f068Schristos #line 611 "rcparse.y"
263675fd0b74Schristos             {
263775fd0b74Schristos 	      default_style = BS_CHECKBOX | WS_TABSTOP;
263875fd0b74Schristos 	      base_style = BS_CHECKBOX | WS_TABSTOP;
263975fd0b74Schristos 	      class.named = 0;
264075fd0b74Schristos 	      class.u.id = CTL_BUTTON;
2641ede78133Schristos 	      res_text_field = (yyvsp[0].id);
264275fd0b74Schristos 	    }
2643*e992f068Schristos #line 2644 "rcparse.c"
264475fd0b74Schristos     break;
264575fd0b74Schristos 
2646*e992f068Schristos   case 69: /* control: CHECKBOX optresidc $@8 control_params  */
2647*e992f068Schristos #line 619 "rcparse.y"
264875fd0b74Schristos           {
2649ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
265075fd0b74Schristos 	  }
2651*e992f068Schristos #line 2652 "rcparse.c"
265275fd0b74Schristos     break;
265375fd0b74Schristos 
2654*e992f068Schristos   case 70: /* $@9: %empty  */
2655*e992f068Schristos #line 623 "rcparse.y"
265675fd0b74Schristos             {
265775fd0b74Schristos 	      /* This is as per MSDN documentation.  With some (???)
265875fd0b74Schristos 		 versions of MS rc.exe their is no default style.  */
265975fd0b74Schristos 	      default_style = CBS_SIMPLE | WS_TABSTOP;
266075fd0b74Schristos 	      base_style = 0;
266175fd0b74Schristos 	      class.named = 0;
266275fd0b74Schristos 	      class.u.id = CTL_COMBOBOX;
266375fd0b74Schristos 	      res_text_field = res_null_text;
266475fd0b74Schristos 	    }
2665*e992f068Schristos #line 2666 "rcparse.c"
266675fd0b74Schristos     break;
266775fd0b74Schristos 
2668*e992f068Schristos   case 71: /* control: COMBOBOX $@9 control_params  */
2669*e992f068Schristos #line 633 "rcparse.y"
267075fd0b74Schristos           {
2671ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
267275fd0b74Schristos 	  }
2673*e992f068Schristos #line 2674 "rcparse.c"
267475fd0b74Schristos     break;
267575fd0b74Schristos 
2676*e992f068Schristos   case 72: /* control: CONTROL optresidc numexpr cresid control_styleexpr cnumexpr cnumexpr cnumexpr cnumexpr optcnumexpr opt_control_data  */
2677*e992f068Schristos #line 638 "rcparse.y"
267875fd0b74Schristos           {
2679ede78133Schristos 	    (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));
2680ede78133Schristos 	    if ((yyvsp[0].rcdata_item) != NULL)
268175fd0b74Schristos 	      {
268275fd0b74Schristos 		if (dialog.ex == NULL)
268375fd0b74Schristos 		  rcparse_warning (_("control data requires DIALOGEX"));
2684ede78133Schristos 		(yyval.dialog_control)->data = (yyvsp[0].rcdata_item);
268575fd0b74Schristos 	      }
268675fd0b74Schristos 	  }
2687*e992f068Schristos #line 2688 "rcparse.c"
268875fd0b74Schristos     break;
268975fd0b74Schristos 
2690*e992f068Schristos   case 73: /* control: CONTROL optresidc numexpr cresid control_styleexpr cnumexpr cnumexpr cnumexpr cnumexpr cnumexpr cnumexpr opt_control_data  */
2691*e992f068Schristos #line 649 "rcparse.y"
269275fd0b74Schristos           {
2693ede78133Schristos 	    (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));
269475fd0b74Schristos 	    if (dialog.ex == NULL)
269575fd0b74Schristos 	      rcparse_warning (_("help ID requires DIALOGEX"));
2696ede78133Schristos 	    (yyval.dialog_control)->help = (yyvsp[-1].il);
2697ede78133Schristos 	    (yyval.dialog_control)->data = (yyvsp[0].rcdata_item);
269875fd0b74Schristos 	  }
2699*e992f068Schristos #line 2700 "rcparse.c"
270075fd0b74Schristos     break;
270175fd0b74Schristos 
2702*e992f068Schristos   case 74: /* $@10: %empty  */
2703*e992f068Schristos #line 657 "rcparse.y"
270475fd0b74Schristos             {
270575fd0b74Schristos 	      default_style = SS_CENTER | WS_GROUP;
270675fd0b74Schristos 	      base_style = SS_CENTER;
270775fd0b74Schristos 	      class.named = 0;
270875fd0b74Schristos 	      class.u.id = CTL_STATIC;
2709ede78133Schristos 	      res_text_field = (yyvsp[0].id);
271075fd0b74Schristos 	    }
2711*e992f068Schristos #line 2712 "rcparse.c"
271275fd0b74Schristos     break;
271375fd0b74Schristos 
2714*e992f068Schristos   case 75: /* control: CTEXT optresidc $@10 control_params  */
2715*e992f068Schristos #line 665 "rcparse.y"
271675fd0b74Schristos           {
2717ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
271875fd0b74Schristos 	  }
2719*e992f068Schristos #line 2720 "rcparse.c"
272075fd0b74Schristos     break;
272175fd0b74Schristos 
2722*e992f068Schristos   case 76: /* $@11: %empty  */
2723*e992f068Schristos #line 669 "rcparse.y"
272475fd0b74Schristos             {
272575fd0b74Schristos 	      default_style = BS_DEFPUSHBUTTON | WS_TABSTOP;
272675fd0b74Schristos 	      base_style = BS_DEFPUSHBUTTON | WS_TABSTOP;
272775fd0b74Schristos 	      class.named = 0;
272875fd0b74Schristos 	      class.u.id = CTL_BUTTON;
2729ede78133Schristos 	      res_text_field = (yyvsp[0].id);
273075fd0b74Schristos 	    }
2731*e992f068Schristos #line 2732 "rcparse.c"
273275fd0b74Schristos     break;
273375fd0b74Schristos 
2734*e992f068Schristos   case 77: /* control: DEFPUSHBUTTON optresidc $@11 control_params  */
2735*e992f068Schristos #line 677 "rcparse.y"
273675fd0b74Schristos           {
2737ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
273875fd0b74Schristos 	  }
2739*e992f068Schristos #line 2740 "rcparse.c"
274075fd0b74Schristos     break;
274175fd0b74Schristos 
2742*e992f068Schristos   case 78: /* $@12: %empty  */
2743*e992f068Schristos #line 681 "rcparse.y"
274475fd0b74Schristos             {
274575fd0b74Schristos 	      default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
274675fd0b74Schristos 	      base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
274775fd0b74Schristos 	      class.named = 0;
274875fd0b74Schristos 	      class.u.id = CTL_EDIT;
274975fd0b74Schristos 	      res_text_field = res_null_text;
275075fd0b74Schristos 	    }
2751*e992f068Schristos #line 2752 "rcparse.c"
275275fd0b74Schristos     break;
275375fd0b74Schristos 
2754*e992f068Schristos   case 79: /* control: EDITTEXT $@12 control_params  */
2755*e992f068Schristos #line 689 "rcparse.y"
275675fd0b74Schristos           {
2757ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
275875fd0b74Schristos 	  }
2759*e992f068Schristos #line 2760 "rcparse.c"
276075fd0b74Schristos     break;
276175fd0b74Schristos 
2762*e992f068Schristos   case 80: /* $@13: %empty  */
2763*e992f068Schristos #line 693 "rcparse.y"
276475fd0b74Schristos             {
276575fd0b74Schristos 	      default_style = BS_GROUPBOX;
276675fd0b74Schristos 	      base_style = BS_GROUPBOX;
276775fd0b74Schristos 	      class.named = 0;
276875fd0b74Schristos 	      class.u.id = CTL_BUTTON;
2769ede78133Schristos 	      res_text_field = (yyvsp[0].id);
277075fd0b74Schristos 	    }
2771*e992f068Schristos #line 2772 "rcparse.c"
277275fd0b74Schristos     break;
277375fd0b74Schristos 
2774*e992f068Schristos   case 81: /* control: GROUPBOX optresidc $@13 control_params  */
2775*e992f068Schristos #line 701 "rcparse.y"
277675fd0b74Schristos           {
2777ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
277875fd0b74Schristos 	  }
2779*e992f068Schristos #line 2780 "rcparse.c"
278075fd0b74Schristos     break;
278175fd0b74Schristos 
2782*e992f068Schristos   case 82: /* $@14: %empty  */
2783*e992f068Schristos #line 705 "rcparse.y"
278475fd0b74Schristos             {
278575fd0b74Schristos 	      default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
278675fd0b74Schristos 	      base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
278775fd0b74Schristos 	      class.named = 0;
278875fd0b74Schristos 	      class.u.id = CTL_EDIT;
2789ede78133Schristos 	      res_text_field = (yyvsp[0].id);
279075fd0b74Schristos 	    }
2791*e992f068Schristos #line 2792 "rcparse.c"
279275fd0b74Schristos     break;
279375fd0b74Schristos 
2794*e992f068Schristos   case 83: /* control: HEDIT optresidc $@14 control_params  */
2795*e992f068Schristos #line 713 "rcparse.y"
279675fd0b74Schristos           {
2797ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
279875fd0b74Schristos 	    if (dialog.ex == NULL)
279975fd0b74Schristos 	      rcparse_warning (_("IEDIT requires DIALOGEX"));
280075fd0b74Schristos 	    res_string_to_id (&(yyval.dialog_control)->class, "HEDIT");
280175fd0b74Schristos 	  }
2802*e992f068Schristos #line 2803 "rcparse.c"
280375fd0b74Schristos     break;
280475fd0b74Schristos 
2805*e992f068Schristos   case 84: /* control: ICON resref numexpr cnumexpr cnumexpr opt_control_data  */
2806*e992f068Schristos #line 720 "rcparse.y"
280775fd0b74Schristos           {
2808ede78133Schristos 	    (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),
280975fd0b74Schristos 				      dialog.ex);
281075fd0b74Schristos           }
2811*e992f068Schristos #line 2812 "rcparse.c"
281275fd0b74Schristos     break;
281375fd0b74Schristos 
2814*e992f068Schristos   case 85: /* control: ICON resref numexpr cnumexpr cnumexpr cnumexpr cnumexpr opt_control_data  */
2815*e992f068Schristos #line 726 "rcparse.y"
281675fd0b74Schristos           {
2817ede78133Schristos 	    (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),
281875fd0b74Schristos 				      dialog.ex);
281975fd0b74Schristos           }
2820*e992f068Schristos #line 2821 "rcparse.c"
282175fd0b74Schristos     break;
282275fd0b74Schristos 
2823*e992f068Schristos   case 86: /* control: ICON resref numexpr cnumexpr cnumexpr cnumexpr cnumexpr icon_styleexpr optcnumexpr opt_control_data  */
2824*e992f068Schristos #line 732 "rcparse.y"
282575fd0b74Schristos           {
2826ede78133Schristos 	    (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),
282775fd0b74Schristos 				      dialog.ex);
282875fd0b74Schristos           }
2829*e992f068Schristos #line 2830 "rcparse.c"
283075fd0b74Schristos     break;
283175fd0b74Schristos 
2832*e992f068Schristos   case 87: /* control: ICON resref numexpr cnumexpr cnumexpr cnumexpr cnumexpr icon_styleexpr cnumexpr cnumexpr opt_control_data  */
2833*e992f068Schristos #line 738 "rcparse.y"
283475fd0b74Schristos           {
2835ede78133Schristos 	    (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),
283675fd0b74Schristos 				      dialog.ex);
283775fd0b74Schristos           }
2838*e992f068Schristos #line 2839 "rcparse.c"
283975fd0b74Schristos     break;
284075fd0b74Schristos 
2841*e992f068Schristos   case 88: /* $@15: %empty  */
2842*e992f068Schristos #line 743 "rcparse.y"
284375fd0b74Schristos             {
284475fd0b74Schristos 	      default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
284575fd0b74Schristos 	      base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
284675fd0b74Schristos 	      class.named = 0;
284775fd0b74Schristos 	      class.u.id = CTL_EDIT;
2848ede78133Schristos 	      res_text_field = (yyvsp[0].id);
284975fd0b74Schristos 	    }
2850*e992f068Schristos #line 2851 "rcparse.c"
285175fd0b74Schristos     break;
285275fd0b74Schristos 
2853*e992f068Schristos   case 89: /* control: IEDIT optresidc $@15 control_params  */
2854*e992f068Schristos #line 751 "rcparse.y"
285575fd0b74Schristos           {
2856ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
285775fd0b74Schristos 	    if (dialog.ex == NULL)
285875fd0b74Schristos 	      rcparse_warning (_("IEDIT requires DIALOGEX"));
285975fd0b74Schristos 	    res_string_to_id (&(yyval.dialog_control)->class, "IEDIT");
286075fd0b74Schristos 	  }
2861*e992f068Schristos #line 2862 "rcparse.c"
286275fd0b74Schristos     break;
286375fd0b74Schristos 
2864*e992f068Schristos   case 90: /* $@16: %empty  */
2865*e992f068Schristos #line 758 "rcparse.y"
286675fd0b74Schristos             {
286775fd0b74Schristos 	      default_style = LBS_NOTIFY | WS_BORDER;
286875fd0b74Schristos 	      base_style = LBS_NOTIFY | WS_BORDER;
286975fd0b74Schristos 	      class.named = 0;
287075fd0b74Schristos 	      class.u.id = CTL_LISTBOX;
287175fd0b74Schristos 	      res_text_field = res_null_text;
287275fd0b74Schristos 	    }
2873*e992f068Schristos #line 2874 "rcparse.c"
287475fd0b74Schristos     break;
287575fd0b74Schristos 
2876*e992f068Schristos   case 91: /* control: LISTBOX $@16 control_params  */
2877*e992f068Schristos #line 766 "rcparse.y"
287875fd0b74Schristos           {
2879ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
288075fd0b74Schristos 	  }
2881*e992f068Schristos #line 2882 "rcparse.c"
288275fd0b74Schristos     break;
288375fd0b74Schristos 
2884*e992f068Schristos   case 92: /* $@17: %empty  */
2885*e992f068Schristos #line 770 "rcparse.y"
288675fd0b74Schristos             {
288775fd0b74Schristos 	      default_style = SS_LEFT | WS_GROUP;
288875fd0b74Schristos 	      base_style = SS_LEFT;
288975fd0b74Schristos 	      class.named = 0;
289075fd0b74Schristos 	      class.u.id = CTL_STATIC;
2891ede78133Schristos 	      res_text_field = (yyvsp[0].id);
289275fd0b74Schristos 	    }
2893*e992f068Schristos #line 2894 "rcparse.c"
289475fd0b74Schristos     break;
289575fd0b74Schristos 
2896*e992f068Schristos   case 93: /* control: LTEXT optresidc $@17 control_params  */
2897*e992f068Schristos #line 778 "rcparse.y"
289875fd0b74Schristos           {
2899ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
290075fd0b74Schristos 	  }
2901*e992f068Schristos #line 2902 "rcparse.c"
290275fd0b74Schristos     break;
290375fd0b74Schristos 
2904*e992f068Schristos   case 94: /* $@18: %empty  */
2905*e992f068Schristos #line 782 "rcparse.y"
290675fd0b74Schristos             {
290775fd0b74Schristos 	      default_style = BS_PUSHBOX | WS_TABSTOP;
290875fd0b74Schristos 	      base_style = BS_PUSHBOX;
290975fd0b74Schristos 	      class.named = 0;
291075fd0b74Schristos 	      class.u.id = CTL_BUTTON;
291175fd0b74Schristos 	    }
2912*e992f068Schristos #line 2913 "rcparse.c"
291375fd0b74Schristos     break;
291475fd0b74Schristos 
2915*e992f068Schristos   case 95: /* control: PUSHBOX optresidc $@18 control_params  */
2916*e992f068Schristos #line 789 "rcparse.y"
291775fd0b74Schristos           {
2918ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
291975fd0b74Schristos 	  }
2920*e992f068Schristos #line 2921 "rcparse.c"
292175fd0b74Schristos     break;
292275fd0b74Schristos 
2923*e992f068Schristos   case 96: /* $@19: %empty  */
2924*e992f068Schristos #line 793 "rcparse.y"
292575fd0b74Schristos             {
292675fd0b74Schristos 	      default_style = BS_PUSHBUTTON | WS_TABSTOP;
292775fd0b74Schristos 	      base_style = BS_PUSHBUTTON | WS_TABSTOP;
292875fd0b74Schristos 	      class.named = 0;
292975fd0b74Schristos 	      class.u.id = CTL_BUTTON;
2930ede78133Schristos 	      res_text_field = (yyvsp[0].id);
293175fd0b74Schristos 	    }
2932*e992f068Schristos #line 2933 "rcparse.c"
293375fd0b74Schristos     break;
293475fd0b74Schristos 
2935*e992f068Schristos   case 97: /* control: PUSHBUTTON optresidc $@19 control_params  */
2936*e992f068Schristos #line 801 "rcparse.y"
293775fd0b74Schristos           {
2938ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
293975fd0b74Schristos 	  }
2940*e992f068Schristos #line 2941 "rcparse.c"
294175fd0b74Schristos     break;
294275fd0b74Schristos 
2943*e992f068Schristos   case 98: /* $@20: %empty  */
2944*e992f068Schristos #line 805 "rcparse.y"
294575fd0b74Schristos             {
294675fd0b74Schristos 	      default_style = BS_RADIOBUTTON | WS_TABSTOP;
294775fd0b74Schristos 	      base_style = BS_RADIOBUTTON;
294875fd0b74Schristos 	      class.named = 0;
294975fd0b74Schristos 	      class.u.id = CTL_BUTTON;
2950ede78133Schristos 	      res_text_field = (yyvsp[0].id);
295175fd0b74Schristos 	    }
2952*e992f068Schristos #line 2953 "rcparse.c"
295375fd0b74Schristos     break;
295475fd0b74Schristos 
2955*e992f068Schristos   case 99: /* control: RADIOBUTTON optresidc $@20 control_params  */
2956*e992f068Schristos #line 813 "rcparse.y"
295775fd0b74Schristos           {
2958ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
295975fd0b74Schristos 	  }
2960*e992f068Schristos #line 2961 "rcparse.c"
296175fd0b74Schristos     break;
296275fd0b74Schristos 
2963*e992f068Schristos   case 100: /* $@21: %empty  */
2964*e992f068Schristos #line 817 "rcparse.y"
296575fd0b74Schristos             {
296675fd0b74Schristos 	      default_style = SS_RIGHT | WS_GROUP;
296775fd0b74Schristos 	      base_style = SS_RIGHT;
296875fd0b74Schristos 	      class.named = 0;
296975fd0b74Schristos 	      class.u.id = CTL_STATIC;
2970ede78133Schristos 	      res_text_field = (yyvsp[0].id);
297175fd0b74Schristos 	    }
2972*e992f068Schristos #line 2973 "rcparse.c"
297375fd0b74Schristos     break;
297475fd0b74Schristos 
2975*e992f068Schristos   case 101: /* control: RTEXT optresidc $@21 control_params  */
2976*e992f068Schristos #line 825 "rcparse.y"
297775fd0b74Schristos           {
2978ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
297975fd0b74Schristos 	  }
2980*e992f068Schristos #line 2981 "rcparse.c"
298175fd0b74Schristos     break;
298275fd0b74Schristos 
2983*e992f068Schristos   case 102: /* $@22: %empty  */
2984*e992f068Schristos #line 829 "rcparse.y"
298575fd0b74Schristos             {
298675fd0b74Schristos 	      default_style = SBS_HORZ;
298775fd0b74Schristos 	      base_style = 0;
298875fd0b74Schristos 	      class.named = 0;
298975fd0b74Schristos 	      class.u.id = CTL_SCROLLBAR;
299075fd0b74Schristos 	      res_text_field = res_null_text;
299175fd0b74Schristos 	    }
2992*e992f068Schristos #line 2993 "rcparse.c"
299375fd0b74Schristos     break;
299475fd0b74Schristos 
2995*e992f068Schristos   case 103: /* control: SCROLLBAR $@22 control_params  */
2996*e992f068Schristos #line 837 "rcparse.y"
299775fd0b74Schristos           {
2998ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
299975fd0b74Schristos 	  }
3000*e992f068Schristos #line 3001 "rcparse.c"
300175fd0b74Schristos     break;
300275fd0b74Schristos 
3003*e992f068Schristos   case 104: /* $@23: %empty  */
3004*e992f068Schristos #line 841 "rcparse.y"
300575fd0b74Schristos             {
300675fd0b74Schristos 	      default_style = BS_3STATE | WS_TABSTOP;
300775fd0b74Schristos 	      base_style = BS_3STATE;
300875fd0b74Schristos 	      class.named = 0;
300975fd0b74Schristos 	      class.u.id = CTL_BUTTON;
3010ede78133Schristos 	      res_text_field = (yyvsp[0].id);
301175fd0b74Schristos 	    }
3012*e992f068Schristos #line 3013 "rcparse.c"
301375fd0b74Schristos     break;
301475fd0b74Schristos 
3015*e992f068Schristos   case 105: /* control: STATE3 optresidc $@23 control_params  */
3016*e992f068Schristos #line 849 "rcparse.y"
301775fd0b74Schristos           {
3018ede78133Schristos 	    (yyval.dialog_control) = (yyvsp[0].dialog_control);
301975fd0b74Schristos 	  }
3020*e992f068Schristos #line 3021 "rcparse.c"
302175fd0b74Schristos     break;
302275fd0b74Schristos 
3023*e992f068Schristos   case 106: /* $@24: %empty  */
3024*e992f068Schristos #line 854 "rcparse.y"
302575fd0b74Schristos             { style = WS_CHILD | WS_VISIBLE; }
3026*e992f068Schristos #line 3027 "rcparse.c"
302775fd0b74Schristos     break;
302875fd0b74Schristos 
3029*e992f068Schristos   case 107: /* control: USERBUTTON resref numexpr ',' numexpr ',' numexpr ',' numexpr ',' numexpr ',' $@24 styleexpr optcnumexpr  */
3030*e992f068Schristos #line 856 "rcparse.y"
303175fd0b74Schristos           {
303275fd0b74Schristos 	    rc_res_id cid;
303375fd0b74Schristos 	    cid.named = 0;
303475fd0b74Schristos 	    cid.u.id = CTL_BUTTON;
3035ede78133Schristos 	    (yyval.dialog_control) = define_control ((yyvsp[-13].id), (yyvsp[-12].il), (yyvsp[-10].il), (yyvsp[-8].il), (yyvsp[-6].il), (yyvsp[-4].il), cid,
3036ede78133Schristos 				 style, (yyvsp[0].il));
303775fd0b74Schristos 	  }
3038*e992f068Schristos #line 3039 "rcparse.c"
303975fd0b74Schristos     break;
304075fd0b74Schristos 
3041*e992f068Schristos   case 108: /* control_params: numexpr cnumexpr cnumexpr cnumexpr cnumexpr opt_control_data  */
3042*e992f068Schristos #line 874 "rcparse.y"
304375fd0b74Schristos           {
3044ede78133Schristos 	    (yyval.dialog_control) = define_control (res_text_field, (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-2].il), (yyvsp[-1].il), class,
304575fd0b74Schristos 				 default_style | WS_CHILD | WS_VISIBLE, 0);
3046ede78133Schristos 	    if ((yyvsp[0].rcdata_item) != NULL)
304775fd0b74Schristos 	      {
304875fd0b74Schristos 		if (dialog.ex == NULL)
304975fd0b74Schristos 		  rcparse_warning (_("control data requires DIALOGEX"));
3050ede78133Schristos 		(yyval.dialog_control)->data = (yyvsp[0].rcdata_item);
305175fd0b74Schristos 	      }
305275fd0b74Schristos 	  }
3053*e992f068Schristos #line 3054 "rcparse.c"
305475fd0b74Schristos     break;
305575fd0b74Schristos 
3056*e992f068Schristos   case 109: /* control_params: numexpr cnumexpr cnumexpr cnumexpr cnumexpr control_params_styleexpr optcnumexpr opt_control_data  */
3057*e992f068Schristos #line 886 "rcparse.y"
305875fd0b74Schristos           {
3059ede78133Schristos 	    (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));
3060ede78133Schristos 	    if ((yyvsp[0].rcdata_item) != NULL)
306175fd0b74Schristos 	      {
306275fd0b74Schristos 		if (dialog.ex == NULL)
306375fd0b74Schristos 		  rcparse_warning (_("control data requires DIALOGEX"));
3064ede78133Schristos 		(yyval.dialog_control)->data = (yyvsp[0].rcdata_item);
306575fd0b74Schristos 	      }
306675fd0b74Schristos 	  }
3067*e992f068Schristos #line 3068 "rcparse.c"
306875fd0b74Schristos     break;
306975fd0b74Schristos 
3070*e992f068Schristos   case 110: /* control_params: numexpr cnumexpr cnumexpr cnumexpr cnumexpr control_params_styleexpr cnumexpr cnumexpr opt_control_data  */
3071*e992f068Schristos #line 897 "rcparse.y"
307275fd0b74Schristos           {
3073ede78133Schristos 	    (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));
307475fd0b74Schristos 	    if (dialog.ex == NULL)
307575fd0b74Schristos 	      rcparse_warning (_("help ID requires DIALOGEX"));
3076ede78133Schristos 	    (yyval.dialog_control)->help = (yyvsp[-1].il);
3077ede78133Schristos 	    (yyval.dialog_control)->data = (yyvsp[0].rcdata_item);
307875fd0b74Schristos 	  }
3079*e992f068Schristos #line 3080 "rcparse.c"
308075fd0b74Schristos     break;
308175fd0b74Schristos 
3082*e992f068Schristos   case 111: /* cresid: ',' resid  */
3083*e992f068Schristos #line 908 "rcparse.y"
308475fd0b74Schristos           {
3085ede78133Schristos 	    if ((yyvsp[0].id).named)
3086ede78133Schristos 	      res_unistring_to_id (&(yyval.id), (yyvsp[0].id).u.n.name);
308775fd0b74Schristos 	    else
3088ede78133Schristos 	      (yyval.id)=(yyvsp[0].id);
308975fd0b74Schristos 	  }
3090*e992f068Schristos #line 3091 "rcparse.c"
309175fd0b74Schristos     break;
309275fd0b74Schristos 
3093*e992f068Schristos   case 112: /* optresidc: %empty  */
3094*e992f068Schristos #line 918 "rcparse.y"
309575fd0b74Schristos           {
309675fd0b74Schristos 	    res_string_to_id (&(yyval.id), "");
309775fd0b74Schristos 	  }
3098*e992f068Schristos #line 3099 "rcparse.c"
309975fd0b74Schristos     break;
310075fd0b74Schristos 
3101*e992f068Schristos   case 113: /* optresidc: resid ','  */
3102*e992f068Schristos #line 921 "rcparse.y"
3103ede78133Schristos                     { (yyval.id)=(yyvsp[-1].id); }
3104*e992f068Schristos #line 3105 "rcparse.c"
310575fd0b74Schristos     break;
310675fd0b74Schristos 
3107*e992f068Schristos   case 114: /* resid: posnumexpr  */
3108*e992f068Schristos #line 926 "rcparse.y"
310975fd0b74Schristos           {
311075fd0b74Schristos 	    (yyval.id).named = 0;
3111ede78133Schristos 	    (yyval.id).u.id = (yyvsp[0].il);
311275fd0b74Schristos 	  }
3113*e992f068Schristos #line 3114 "rcparse.c"
311475fd0b74Schristos     break;
311575fd0b74Schristos 
3116*e992f068Schristos   case 115: /* resid: res_unicode_string_concat  */
3117*e992f068Schristos #line 931 "rcparse.y"
311875fd0b74Schristos           {
311975fd0b74Schristos 	    (yyval.id).named = 1;
3120ede78133Schristos 	    (yyval.id).u.n.name = (yyvsp[0].uni);
3121ede78133Schristos 	    (yyval.id).u.n.length = unichar_len ((yyvsp[0].uni));
312275fd0b74Schristos 	  }
3123*e992f068Schristos #line 3124 "rcparse.c"
312475fd0b74Schristos     break;
312575fd0b74Schristos 
3126*e992f068Schristos   case 116: /* opt_control_data: %empty  */
3127*e992f068Schristos #line 940 "rcparse.y"
312875fd0b74Schristos           {
312975fd0b74Schristos 	    (yyval.rcdata_item) = NULL;
313075fd0b74Schristos 	  }
3131*e992f068Schristos #line 3132 "rcparse.c"
313275fd0b74Schristos     break;
313375fd0b74Schristos 
3134*e992f068Schristos   case 117: /* opt_control_data: BEG optrcdata_data END  */
3135*e992f068Schristos #line 944 "rcparse.y"
313675fd0b74Schristos           {
3137ede78133Schristos 	    (yyval.rcdata_item) = (yyvsp[-1].rcdata).first;
313875fd0b74Schristos 	  }
3139*e992f068Schristos #line 3140 "rcparse.c"
314075fd0b74Schristos     break;
314175fd0b74Schristos 
3142*e992f068Schristos   case 118: /* $@25: %empty  */
3143*e992f068Schristos #line 953 "rcparse.y"
314475fd0b74Schristos           { style = WS_CHILD | WS_VISIBLE; }
3145*e992f068Schristos #line 3146 "rcparse.c"
314675fd0b74Schristos     break;
314775fd0b74Schristos 
3148*e992f068Schristos   case 120: /* $@26: %empty  */
3149*e992f068Schristos #line 959 "rcparse.y"
315075fd0b74Schristos           { style = SS_ICON | WS_CHILD | WS_VISIBLE; }
3151*e992f068Schristos #line 3152 "rcparse.c"
315275fd0b74Schristos     break;
315375fd0b74Schristos 
3154*e992f068Schristos   case 122: /* $@27: %empty  */
3155*e992f068Schristos #line 965 "rcparse.y"
315675fd0b74Schristos           { style = base_style | WS_CHILD | WS_VISIBLE; }
3157*e992f068Schristos #line 3158 "rcparse.c"
315875fd0b74Schristos     break;
315975fd0b74Schristos 
3160*e992f068Schristos   case 124: /* font: id FONT memflags_move_discard file_name  */
3161*e992f068Schristos #line 973 "rcparse.y"
316275fd0b74Schristos           {
3163ede78133Schristos 	    define_font ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s));
316475fd0b74Schristos 	    if (yychar != YYEMPTY)
316575fd0b74Schristos 	      YYERROR;
316675fd0b74Schristos 	    rcparse_discard_strings ();
316775fd0b74Schristos 	  }
3168*e992f068Schristos #line 3169 "rcparse.c"
316975fd0b74Schristos     break;
317075fd0b74Schristos 
3171*e992f068Schristos   case 125: /* icon: id ICON memflags_move_discard file_name  */
3172*e992f068Schristos #line 985 "rcparse.y"
317375fd0b74Schristos           {
3174ede78133Schristos 	    define_icon ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s));
317575fd0b74Schristos 	    if (yychar != YYEMPTY)
317675fd0b74Schristos 	      YYERROR;
317775fd0b74Schristos 	    rcparse_discard_strings ();
317875fd0b74Schristos 	  }
3179*e992f068Schristos #line 3180 "rcparse.c"
318075fd0b74Schristos     break;
318175fd0b74Schristos 
3182*e992f068Schristos   case 126: /* language: LANGUAGE numexpr cnumexpr  */
3183*e992f068Schristos #line 998 "rcparse.y"
318475fd0b74Schristos           {
3185ede78133Schristos 	    language = (yyvsp[-1].il) | ((yyvsp[0].il) << SUBLANG_SHIFT);
318675fd0b74Schristos 	  }
3187*e992f068Schristos #line 3188 "rcparse.c"
318875fd0b74Schristos     break;
318975fd0b74Schristos 
3190*e992f068Schristos   case 127: /* menu: id MENU suboptions BEG menuitems END  */
3191*e992f068Schristos #line 1007 "rcparse.y"
319275fd0b74Schristos           {
3193ede78133Schristos 	    define_menu ((yyvsp[-5].id), &(yyvsp[-3].res_info), (yyvsp[-1].menuitem));
319475fd0b74Schristos 	    if (yychar != YYEMPTY)
319575fd0b74Schristos 	      YYERROR;
319675fd0b74Schristos 	    rcparse_discard_strings ();
319775fd0b74Schristos 	  }
3198*e992f068Schristos #line 3199 "rcparse.c"
319975fd0b74Schristos     break;
320075fd0b74Schristos 
3201*e992f068Schristos   case 128: /* menuitems: %empty  */
3202*e992f068Schristos #line 1017 "rcparse.y"
320375fd0b74Schristos           {
320475fd0b74Schristos 	    (yyval.menuitem) = NULL;
320575fd0b74Schristos 	  }
3206*e992f068Schristos #line 3207 "rcparse.c"
320775fd0b74Schristos     break;
320875fd0b74Schristos 
3209*e992f068Schristos   case 129: /* menuitems: menuitems menuitem  */
3210*e992f068Schristos #line 1021 "rcparse.y"
321175fd0b74Schristos           {
3212ede78133Schristos 	    if ((yyvsp[-1].menuitem) == NULL)
3213ede78133Schristos 	      (yyval.menuitem) = (yyvsp[0].menuitem);
321475fd0b74Schristos 	    else
321575fd0b74Schristos 	      {
321675fd0b74Schristos 		rc_menuitem **pp;
321775fd0b74Schristos 
3218ede78133Schristos 		for (pp = &(yyvsp[-1].menuitem)->next; *pp != NULL; pp = &(*pp)->next)
321975fd0b74Schristos 		  ;
3220ede78133Schristos 		*pp = (yyvsp[0].menuitem);
3221ede78133Schristos 		(yyval.menuitem) = (yyvsp[-1].menuitem);
322275fd0b74Schristos 	      }
322375fd0b74Schristos 	  }
3224*e992f068Schristos #line 3225 "rcparse.c"
322575fd0b74Schristos     break;
322675fd0b74Schristos 
3227*e992f068Schristos   case 130: /* menuitem: MENUITEM res_unicode_string_concat cnumexpr menuitem_flags  */
3228*e992f068Schristos #line 1038 "rcparse.y"
322975fd0b74Schristos           {
3230ede78133Schristos 	    (yyval.menuitem) = define_menuitem ((yyvsp[-2].uni), (yyvsp[-1].il), (yyvsp[0].is), 0, 0, NULL);
323175fd0b74Schristos 	  }
3232*e992f068Schristos #line 3233 "rcparse.c"
323375fd0b74Schristos     break;
323475fd0b74Schristos 
3235*e992f068Schristos   case 131: /* menuitem: MENUITEM SEPARATOR  */
3236*e992f068Schristos #line 1042 "rcparse.y"
323775fd0b74Schristos           {
323875fd0b74Schristos 	    (yyval.menuitem) = define_menuitem (NULL, 0, 0, 0, 0, NULL);
323975fd0b74Schristos 	  }
3240*e992f068Schristos #line 3241 "rcparse.c"
324175fd0b74Schristos     break;
324275fd0b74Schristos 
3243*e992f068Schristos   case 132: /* menuitem: POPUP res_unicode_string_concat menuitem_flags BEG menuitems END  */
3244*e992f068Schristos #line 1046 "rcparse.y"
324575fd0b74Schristos           {
3246ede78133Schristos 	    (yyval.menuitem) = define_menuitem ((yyvsp[-4].uni), 0, (yyvsp[-3].is), 0, 0, (yyvsp[-1].menuitem));
324775fd0b74Schristos 	  }
3248*e992f068Schristos #line 3249 "rcparse.c"
324975fd0b74Schristos     break;
325075fd0b74Schristos 
3251*e992f068Schristos   case 133: /* menuitem_flags: %empty  */
3252*e992f068Schristos #line 1053 "rcparse.y"
325375fd0b74Schristos           {
325475fd0b74Schristos 	    (yyval.is) = 0;
325575fd0b74Schristos 	  }
3256*e992f068Schristos #line 3257 "rcparse.c"
325775fd0b74Schristos     break;
325875fd0b74Schristos 
3259*e992f068Schristos   case 134: /* menuitem_flags: menuitem_flags ',' menuitem_flag  */
3260*e992f068Schristos #line 1057 "rcparse.y"
326175fd0b74Schristos           {
3262ede78133Schristos 	    (yyval.is) = (yyvsp[-2].is) | (yyvsp[0].is);
326375fd0b74Schristos 	  }
3264*e992f068Schristos #line 3265 "rcparse.c"
326575fd0b74Schristos     break;
326675fd0b74Schristos 
3267*e992f068Schristos   case 135: /* menuitem_flags: menuitem_flags menuitem_flag  */
3268*e992f068Schristos #line 1061 "rcparse.y"
326975fd0b74Schristos           {
3270ede78133Schristos 	    (yyval.is) = (yyvsp[-1].is) | (yyvsp[0].is);
327175fd0b74Schristos 	  }
3272*e992f068Schristos #line 3273 "rcparse.c"
327375fd0b74Schristos     break;
327475fd0b74Schristos 
3275*e992f068Schristos   case 136: /* menuitem_flag: CHECKED  */
3276*e992f068Schristos #line 1068 "rcparse.y"
327775fd0b74Schristos           {
327875fd0b74Schristos 	    (yyval.is) = MENUITEM_CHECKED;
327975fd0b74Schristos 	  }
3280*e992f068Schristos #line 3281 "rcparse.c"
328175fd0b74Schristos     break;
328275fd0b74Schristos 
3283*e992f068Schristos   case 137: /* menuitem_flag: GRAYED  */
3284*e992f068Schristos #line 1072 "rcparse.y"
328575fd0b74Schristos           {
328675fd0b74Schristos 	    (yyval.is) = MENUITEM_GRAYED;
328775fd0b74Schristos 	  }
3288*e992f068Schristos #line 3289 "rcparse.c"
328975fd0b74Schristos     break;
329075fd0b74Schristos 
3291*e992f068Schristos   case 138: /* menuitem_flag: HELP  */
3292*e992f068Schristos #line 1076 "rcparse.y"
329375fd0b74Schristos           {
329475fd0b74Schristos 	    (yyval.is) = MENUITEM_HELP;
329575fd0b74Schristos 	  }
3296*e992f068Schristos #line 3297 "rcparse.c"
329775fd0b74Schristos     break;
329875fd0b74Schristos 
3299*e992f068Schristos   case 139: /* menuitem_flag: INACTIVE  */
3300*e992f068Schristos #line 1080 "rcparse.y"
330175fd0b74Schristos           {
330275fd0b74Schristos 	    (yyval.is) = MENUITEM_INACTIVE;
330375fd0b74Schristos 	  }
3304*e992f068Schristos #line 3305 "rcparse.c"
330575fd0b74Schristos     break;
330675fd0b74Schristos 
3307*e992f068Schristos   case 140: /* menuitem_flag: MENUBARBREAK  */
3308*e992f068Schristos #line 1084 "rcparse.y"
330975fd0b74Schristos           {
331075fd0b74Schristos 	    (yyval.is) = MENUITEM_MENUBARBREAK;
331175fd0b74Schristos 	  }
3312*e992f068Schristos #line 3313 "rcparse.c"
331375fd0b74Schristos     break;
331475fd0b74Schristos 
3315*e992f068Schristos   case 141: /* menuitem_flag: MENUBREAK  */
3316*e992f068Schristos #line 1088 "rcparse.y"
331775fd0b74Schristos           {
331875fd0b74Schristos 	    (yyval.is) = MENUITEM_MENUBREAK;
331975fd0b74Schristos 	  }
3320*e992f068Schristos #line 3321 "rcparse.c"
332175fd0b74Schristos     break;
332275fd0b74Schristos 
3323*e992f068Schristos   case 142: /* menuitem_flag: BITMAP  */
3324*e992f068Schristos #line 1092 "rcparse.y"
3325*e992f068Schristos           {
3326*e992f068Schristos 	    (yyval.is) = MENUITEM_BITMAP;
3327*e992f068Schristos 	  }
3328*e992f068Schristos #line 3329 "rcparse.c"
3329*e992f068Schristos     break;
3330*e992f068Schristos 
3331*e992f068Schristos   case 143: /* menuitem_flag: OWNERDRAW  */
3332*e992f068Schristos #line 1096 "rcparse.y"
3333*e992f068Schristos           {
3334*e992f068Schristos 	    (yyval.is) = MENUITEM_OWNERDRAW;
3335*e992f068Schristos 	  }
3336*e992f068Schristos #line 3337 "rcparse.c"
3337*e992f068Schristos     break;
3338*e992f068Schristos 
3339*e992f068Schristos   case 144: /* menuex: id MENUEX suboptions BEG menuexitems END  */
3340*e992f068Schristos #line 1105 "rcparse.y"
334175fd0b74Schristos           {
3342ede78133Schristos 	    define_menu ((yyvsp[-5].id), &(yyvsp[-3].res_info), (yyvsp[-1].menuitem));
334375fd0b74Schristos 	    if (yychar != YYEMPTY)
334475fd0b74Schristos 	      YYERROR;
334575fd0b74Schristos 	    rcparse_discard_strings ();
334675fd0b74Schristos 	  }
3347*e992f068Schristos #line 3348 "rcparse.c"
334875fd0b74Schristos     break;
334975fd0b74Schristos 
3350*e992f068Schristos   case 145: /* menuexitems: %empty  */
3351*e992f068Schristos #line 1115 "rcparse.y"
335275fd0b74Schristos           {
335375fd0b74Schristos 	    (yyval.menuitem) = NULL;
335475fd0b74Schristos 	  }
3355*e992f068Schristos #line 3356 "rcparse.c"
335675fd0b74Schristos     break;
335775fd0b74Schristos 
3358*e992f068Schristos   case 146: /* menuexitems: menuexitems menuexitem  */
3359*e992f068Schristos #line 1119 "rcparse.y"
336075fd0b74Schristos           {
3361ede78133Schristos 	    if ((yyvsp[-1].menuitem) == NULL)
3362ede78133Schristos 	      (yyval.menuitem) = (yyvsp[0].menuitem);
336375fd0b74Schristos 	    else
336475fd0b74Schristos 	      {
336575fd0b74Schristos 		rc_menuitem **pp;
336675fd0b74Schristos 
3367ede78133Schristos 		for (pp = &(yyvsp[-1].menuitem)->next; *pp != NULL; pp = &(*pp)->next)
336875fd0b74Schristos 		  ;
3369ede78133Schristos 		*pp = (yyvsp[0].menuitem);
3370ede78133Schristos 		(yyval.menuitem) = (yyvsp[-1].menuitem);
337175fd0b74Schristos 	      }
337275fd0b74Schristos 	  }
3373*e992f068Schristos #line 3374 "rcparse.c"
337475fd0b74Schristos     break;
337575fd0b74Schristos 
3376*e992f068Schristos   case 147: /* menuexitem: MENUITEM res_unicode_string_concat  */
3377*e992f068Schristos #line 1136 "rcparse.y"
337875fd0b74Schristos           {
3379ede78133Schristos 	    (yyval.menuitem) = define_menuitem ((yyvsp[0].uni), 0, 0, 0, 0, NULL);
338075fd0b74Schristos 	  }
3381*e992f068Schristos #line 3382 "rcparse.c"
338275fd0b74Schristos     break;
338375fd0b74Schristos 
3384*e992f068Schristos   case 148: /* menuexitem: MENUITEM res_unicode_string_concat cnumexpr  */
3385*e992f068Schristos #line 1140 "rcparse.y"
338675fd0b74Schristos           {
3387ede78133Schristos 	    (yyval.menuitem) = define_menuitem ((yyvsp[-1].uni), (yyvsp[0].il), 0, 0, 0, NULL);
338875fd0b74Schristos 	  }
3389*e992f068Schristos #line 3390 "rcparse.c"
339075fd0b74Schristos     break;
339175fd0b74Schristos 
3392*e992f068Schristos   case 149: /* menuexitem: MENUITEM res_unicode_string_concat cnumexpr cnumexpr optcnumexpr  */
3393*e992f068Schristos #line 1144 "rcparse.y"
339475fd0b74Schristos           {
3395ede78133Schristos 	    (yyval.menuitem) = define_menuitem ((yyvsp[-3].uni), (yyvsp[-2].il), (yyvsp[-1].il), (yyvsp[0].il), 0, NULL);
339675fd0b74Schristos 	  }
3397*e992f068Schristos #line 3398 "rcparse.c"
339875fd0b74Schristos     break;
339975fd0b74Schristos 
3400*e992f068Schristos   case 150: /* menuexitem: MENUITEM SEPARATOR  */
3401*e992f068Schristos #line 1148 "rcparse.y"
340275fd0b74Schristos           {
340375fd0b74Schristos  	    (yyval.menuitem) = define_menuitem (NULL, 0, 0, 0, 0, NULL);
340475fd0b74Schristos  	  }
3405*e992f068Schristos #line 3406 "rcparse.c"
340675fd0b74Schristos     break;
340775fd0b74Schristos 
3408*e992f068Schristos   case 151: /* menuexitem: POPUP res_unicode_string_concat BEG menuexitems END  */
3409*e992f068Schristos #line 1152 "rcparse.y"
341075fd0b74Schristos           {
3411ede78133Schristos 	    (yyval.menuitem) = define_menuitem ((yyvsp[-3].uni), 0, 0, 0, 0, (yyvsp[-1].menuitem));
341275fd0b74Schristos 	  }
3413*e992f068Schristos #line 3414 "rcparse.c"
341475fd0b74Schristos     break;
341575fd0b74Schristos 
3416*e992f068Schristos   case 152: /* menuexitem: POPUP res_unicode_string_concat cnumexpr BEG menuexitems END  */
3417*e992f068Schristos #line 1156 "rcparse.y"
341875fd0b74Schristos           {
3419ede78133Schristos 	    (yyval.menuitem) = define_menuitem ((yyvsp[-4].uni), (yyvsp[-3].il), 0, 0, 0, (yyvsp[-1].menuitem));
342075fd0b74Schristos 	  }
3421*e992f068Schristos #line 3422 "rcparse.c"
342275fd0b74Schristos     break;
342375fd0b74Schristos 
3424*e992f068Schristos   case 153: /* menuexitem: POPUP res_unicode_string_concat cnumexpr cnumexpr BEG menuexitems END  */
3425*e992f068Schristos #line 1160 "rcparse.y"
342675fd0b74Schristos           {
3427ede78133Schristos 	    (yyval.menuitem) = define_menuitem ((yyvsp[-5].uni), (yyvsp[-4].il), (yyvsp[-3].il), 0, 0, (yyvsp[-1].menuitem));
342875fd0b74Schristos 	  }
3429*e992f068Schristos #line 3430 "rcparse.c"
343075fd0b74Schristos     break;
343175fd0b74Schristos 
3432*e992f068Schristos   case 154: /* menuexitem: POPUP res_unicode_string_concat cnumexpr cnumexpr cnumexpr optcnumexpr BEG menuexitems END  */
3433*e992f068Schristos #line 1165 "rcparse.y"
343475fd0b74Schristos           {
3435ede78133Schristos 	    (yyval.menuitem) = define_menuitem ((yyvsp[-7].uni), (yyvsp[-6].il), (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-1].menuitem));
343675fd0b74Schristos 	  }
3437*e992f068Schristos #line 3438 "rcparse.c"
343875fd0b74Schristos     break;
343975fd0b74Schristos 
3440*e992f068Schristos   case 155: /* messagetable: id MESSAGETABLE memflags_move file_name  */
3441*e992f068Schristos #line 1174 "rcparse.y"
344275fd0b74Schristos           {
3443ede78133Schristos 	    define_messagetable ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s));
344475fd0b74Schristos 	    if (yychar != YYEMPTY)
344575fd0b74Schristos 	      YYERROR;
344675fd0b74Schristos 	    rcparse_discard_strings ();
344775fd0b74Schristos 	  }
3448*e992f068Schristos #line 3449 "rcparse.c"
344975fd0b74Schristos     break;
345075fd0b74Schristos 
3451*e992f068Schristos   case 156: /* $@28: %empty  */
3452*e992f068Schristos #line 1186 "rcparse.y"
345375fd0b74Schristos           {
345475fd0b74Schristos 	    rcparse_rcdata ();
345575fd0b74Schristos 	  }
3456*e992f068Schristos #line 3457 "rcparse.c"
345775fd0b74Schristos     break;
345875fd0b74Schristos 
3459*e992f068Schristos   case 157: /* optrcdata_data: $@28 optrcdata_data_int  */
3460*e992f068Schristos #line 1190 "rcparse.y"
346175fd0b74Schristos           {
346275fd0b74Schristos 	    rcparse_normal ();
3463ede78133Schristos 	    (yyval.rcdata) = (yyvsp[0].rcdata);
346475fd0b74Schristos 	  }
3465*e992f068Schristos #line 3466 "rcparse.c"
346675fd0b74Schristos     break;
346775fd0b74Schristos 
3468*e992f068Schristos   case 158: /* optrcdata_data_int: %empty  */
3469*e992f068Schristos #line 1198 "rcparse.y"
347075fd0b74Schristos           {
347175fd0b74Schristos 	    (yyval.rcdata).first = NULL;
347275fd0b74Schristos 	    (yyval.rcdata).last = NULL;
347375fd0b74Schristos 	  }
3474*e992f068Schristos #line 3475 "rcparse.c"
347575fd0b74Schristos     break;
347675fd0b74Schristos 
3477*e992f068Schristos   case 159: /* optrcdata_data_int: rcdata_data  */
3478*e992f068Schristos #line 1203 "rcparse.y"
347975fd0b74Schristos           {
3480ede78133Schristos 	    (yyval.rcdata) = (yyvsp[0].rcdata);
348175fd0b74Schristos 	  }
3482*e992f068Schristos #line 3483 "rcparse.c"
348375fd0b74Schristos     break;
348475fd0b74Schristos 
3485*e992f068Schristos   case 160: /* rcdata_data: sizedstring  */
3486*e992f068Schristos #line 1210 "rcparse.y"
348775fd0b74Schristos           {
348875fd0b74Schristos 	    rc_rcdata_item *ri;
348975fd0b74Schristos 
3490ede78133Schristos 	    ri = define_rcdata_string ((yyvsp[0].ss).s, (yyvsp[0].ss).length);
349175fd0b74Schristos 	    (yyval.rcdata).first = ri;
349275fd0b74Schristos 	    (yyval.rcdata).last = ri;
349375fd0b74Schristos 	  }
3494*e992f068Schristos #line 3495 "rcparse.c"
349575fd0b74Schristos     break;
349675fd0b74Schristos 
3497*e992f068Schristos   case 161: /* rcdata_data: sizedunistring  */
3498*e992f068Schristos #line 1218 "rcparse.y"
349975fd0b74Schristos           {
350075fd0b74Schristos 	    rc_rcdata_item *ri;
350175fd0b74Schristos 
3502ede78133Schristos 	    ri = define_rcdata_unistring ((yyvsp[0].suni).s, (yyvsp[0].suni).length);
350375fd0b74Schristos 	    (yyval.rcdata).first = ri;
350475fd0b74Schristos 	    (yyval.rcdata).last = ri;
350575fd0b74Schristos 	  }
3506*e992f068Schristos #line 3507 "rcparse.c"
350775fd0b74Schristos     break;
350875fd0b74Schristos 
3509*e992f068Schristos   case 162: /* rcdata_data: sizednumexpr  */
3510*e992f068Schristos #line 1226 "rcparse.y"
351175fd0b74Schristos           {
351275fd0b74Schristos 	    rc_rcdata_item *ri;
351375fd0b74Schristos 
3514ede78133Schristos 	    ri = define_rcdata_number ((yyvsp[0].i).val, (yyvsp[0].i).dword);
351575fd0b74Schristos 	    (yyval.rcdata).first = ri;
351675fd0b74Schristos 	    (yyval.rcdata).last = ri;
351775fd0b74Schristos 	  }
3518*e992f068Schristos #line 3519 "rcparse.c"
351975fd0b74Schristos     break;
352075fd0b74Schristos 
3521*e992f068Schristos   case 163: /* rcdata_data: rcdata_data ',' sizedstring  */
3522*e992f068Schristos #line 1234 "rcparse.y"
352375fd0b74Schristos           {
352475fd0b74Schristos 	    rc_rcdata_item *ri;
352575fd0b74Schristos 
3526ede78133Schristos 	    ri = define_rcdata_string ((yyvsp[0].ss).s, (yyvsp[0].ss).length);
3527ede78133Schristos 	    (yyval.rcdata).first = (yyvsp[-2].rcdata).first;
3528ede78133Schristos 	    (yyvsp[-2].rcdata).last->next = ri;
352975fd0b74Schristos 	    (yyval.rcdata).last = ri;
353075fd0b74Schristos 	  }
3531*e992f068Schristos #line 3532 "rcparse.c"
353275fd0b74Schristos     break;
353375fd0b74Schristos 
3534*e992f068Schristos   case 164: /* rcdata_data: rcdata_data ',' sizedunistring  */
3535*e992f068Schristos #line 1243 "rcparse.y"
353675fd0b74Schristos           {
353775fd0b74Schristos 	    rc_rcdata_item *ri;
353875fd0b74Schristos 
3539ede78133Schristos 	    ri = define_rcdata_unistring ((yyvsp[0].suni).s, (yyvsp[0].suni).length);
3540ede78133Schristos 	    (yyval.rcdata).first = (yyvsp[-2].rcdata).first;
3541ede78133Schristos 	    (yyvsp[-2].rcdata).last->next = ri;
354275fd0b74Schristos 	    (yyval.rcdata).last = ri;
354375fd0b74Schristos 	  }
3544*e992f068Schristos #line 3545 "rcparse.c"
354575fd0b74Schristos     break;
354675fd0b74Schristos 
3547*e992f068Schristos   case 165: /* rcdata_data: rcdata_data ',' sizednumexpr  */
3548*e992f068Schristos #line 1252 "rcparse.y"
354975fd0b74Schristos           {
355075fd0b74Schristos 	    rc_rcdata_item *ri;
355175fd0b74Schristos 
3552ede78133Schristos 	    ri = define_rcdata_number ((yyvsp[0].i).val, (yyvsp[0].i).dword);
3553ede78133Schristos 	    (yyval.rcdata).first = (yyvsp[-2].rcdata).first;
3554ede78133Schristos 	    (yyvsp[-2].rcdata).last->next = ri;
355575fd0b74Schristos 	    (yyval.rcdata).last = ri;
355675fd0b74Schristos 	  }
3557*e992f068Schristos #line 3558 "rcparse.c"
355875fd0b74Schristos     break;
355975fd0b74Schristos 
3560*e992f068Schristos   case 166: /* rcdata_data: rcdata_data ','  */
3561*e992f068Schristos #line 1261 "rcparse.y"
356275fd0b74Schristos           {
3563ede78133Schristos 	    (yyval.rcdata)=(yyvsp[-1].rcdata);
356475fd0b74Schristos 	  }
3565*e992f068Schristos #line 3566 "rcparse.c"
356675fd0b74Schristos     break;
356775fd0b74Schristos 
3568*e992f068Schristos   case 167: /* $@29: %empty  */
3569*e992f068Schristos #line 1270 "rcparse.y"
3570ede78133Schristos             { sub_res_info = (yyvsp[-1].res_info); rcparse_rcdata (); }
3571*e992f068Schristos #line 3572 "rcparse.c"
357275fd0b74Schristos     break;
357375fd0b74Schristos 
3574*e992f068Schristos   case 168: /* stringtable: STRINGTABLE suboptions BEG $@29 string_data END  */
3575*e992f068Schristos #line 1271 "rcparse.y"
357675fd0b74Schristos                             { rcparse_normal (); }
3577*e992f068Schristos #line 3578 "rcparse.c"
357875fd0b74Schristos     break;
357975fd0b74Schristos 
3580*e992f068Schristos   case 170: /* string_data: string_data numexpr res_unicode_sizedstring_concat  */
3581*e992f068Schristos #line 1277 "rcparse.y"
358275fd0b74Schristos           {
3583ede78133Schristos 	    define_stringtable (&sub_res_info, (yyvsp[-1].il), (yyvsp[0].suni).s, (yyvsp[0].suni).length);
358475fd0b74Schristos 	    rcparse_discard_strings ();
358575fd0b74Schristos 	  }
3586*e992f068Schristos #line 3587 "rcparse.c"
358775fd0b74Schristos     break;
358875fd0b74Schristos 
3589*e992f068Schristos   case 171: /* string_data: string_data numexpr ',' res_unicode_sizedstring_concat  */
3590*e992f068Schristos #line 1282 "rcparse.y"
359175fd0b74Schristos           {
3592ede78133Schristos 	    define_stringtable (&sub_res_info, (yyvsp[-2].il), (yyvsp[0].suni).s, (yyvsp[0].suni).length);
359375fd0b74Schristos 	    rcparse_discard_strings ();
359475fd0b74Schristos 	  }
3595*e992f068Schristos #line 3596 "rcparse.c"
359675fd0b74Schristos     break;
359775fd0b74Schristos 
3598*e992f068Schristos   case 172: /* string_data: string_data error  */
3599*e992f068Schristos #line 1287 "rcparse.y"
360075fd0b74Schristos           {
360175fd0b74Schristos 	    rcparse_warning (_("invalid stringtable resource."));
360275fd0b74Schristos 	    abort ();
360375fd0b74Schristos 	  }
3604*e992f068Schristos #line 3605 "rcparse.c"
360575fd0b74Schristos     break;
360675fd0b74Schristos 
3607*e992f068Schristos   case 173: /* rcdata_id: id  */
3608*e992f068Schristos #line 1295 "rcparse.y"
360975fd0b74Schristos           {
3610ede78133Schristos 	    (yyval.id)=(yyvsp[0].id);
361175fd0b74Schristos 	  }
3612*e992f068Schristos #line 3613 "rcparse.c"
361375fd0b74Schristos     break;
361475fd0b74Schristos 
3615*e992f068Schristos   case 174: /* rcdata_id: HTML  */
3616*e992f068Schristos #line 1299 "rcparse.y"
361775fd0b74Schristos         {
361875fd0b74Schristos 	  (yyval.id).named = 0;
361975fd0b74Schristos 	  (yyval.id).u.id = 23;
362075fd0b74Schristos 	}
3621*e992f068Schristos #line 3622 "rcparse.c"
362275fd0b74Schristos     break;
362375fd0b74Schristos 
3624*e992f068Schristos   case 175: /* rcdata_id: RCDATA  */
3625*e992f068Schristos #line 1304 "rcparse.y"
362675fd0b74Schristos         {
362775fd0b74Schristos           (yyval.id).named = 0;
362875fd0b74Schristos           (yyval.id).u.id = RT_RCDATA;
362975fd0b74Schristos         }
3630*e992f068Schristos #line 3631 "rcparse.c"
363175fd0b74Schristos     break;
363275fd0b74Schristos 
3633*e992f068Schristos   case 176: /* rcdata_id: MANIFEST  */
3634*e992f068Schristos #line 1309 "rcparse.y"
363575fd0b74Schristos         {
363675fd0b74Schristos           (yyval.id).named = 0;
363775fd0b74Schristos           (yyval.id).u.id = RT_MANIFEST;
363875fd0b74Schristos         }
3639*e992f068Schristos #line 3640 "rcparse.c"
364075fd0b74Schristos     break;
364175fd0b74Schristos 
3642*e992f068Schristos   case 177: /* rcdata_id: PLUGPLAY  */
3643*e992f068Schristos #line 1314 "rcparse.y"
364475fd0b74Schristos         {
364575fd0b74Schristos           (yyval.id).named = 0;
364675fd0b74Schristos           (yyval.id).u.id = RT_PLUGPLAY;
364775fd0b74Schristos         }
3648*e992f068Schristos #line 3649 "rcparse.c"
364975fd0b74Schristos     break;
365075fd0b74Schristos 
3651*e992f068Schristos   case 178: /* rcdata_id: VXD  */
3652*e992f068Schristos #line 1319 "rcparse.y"
365375fd0b74Schristos         {
365475fd0b74Schristos           (yyval.id).named = 0;
365575fd0b74Schristos           (yyval.id).u.id = RT_VXD;
365675fd0b74Schristos         }
3657*e992f068Schristos #line 3658 "rcparse.c"
365875fd0b74Schristos     break;
365975fd0b74Schristos 
3660*e992f068Schristos   case 179: /* rcdata_id: DLGINCLUDE  */
3661*e992f068Schristos #line 1324 "rcparse.y"
366275fd0b74Schristos         {
366375fd0b74Schristos           (yyval.id).named = 0;
366475fd0b74Schristos           (yyval.id).u.id = RT_DLGINCLUDE;
366575fd0b74Schristos         }
3666*e992f068Schristos #line 3667 "rcparse.c"
366775fd0b74Schristos     break;
366875fd0b74Schristos 
3669*e992f068Schristos   case 180: /* rcdata_id: DLGINIT  */
3670*e992f068Schristos #line 1329 "rcparse.y"
367175fd0b74Schristos         {
367275fd0b74Schristos           (yyval.id).named = 0;
367375fd0b74Schristos           (yyval.id).u.id = RT_DLGINIT;
367475fd0b74Schristos         }
3675*e992f068Schristos #line 3676 "rcparse.c"
367675fd0b74Schristos     break;
367775fd0b74Schristos 
3678*e992f068Schristos   case 181: /* rcdata_id: ANICURSOR  */
3679*e992f068Schristos #line 1334 "rcparse.y"
368075fd0b74Schristos         {
368175fd0b74Schristos           (yyval.id).named = 0;
368275fd0b74Schristos           (yyval.id).u.id = RT_ANICURSOR;
368375fd0b74Schristos         }
3684*e992f068Schristos #line 3685 "rcparse.c"
368575fd0b74Schristos     break;
368675fd0b74Schristos 
3687*e992f068Schristos   case 182: /* rcdata_id: ANIICON  */
3688*e992f068Schristos #line 1339 "rcparse.y"
368975fd0b74Schristos         {
369075fd0b74Schristos           (yyval.id).named = 0;
369175fd0b74Schristos           (yyval.id).u.id = RT_ANIICON;
369275fd0b74Schristos         }
3693*e992f068Schristos #line 3694 "rcparse.c"
369475fd0b74Schristos     break;
369575fd0b74Schristos 
3696*e992f068Schristos   case 183: /* user: id rcdata_id suboptions BEG optrcdata_data END  */
3697*e992f068Schristos #line 1350 "rcparse.y"
369875fd0b74Schristos           {
3699ede78133Schristos 	    define_user_data ((yyvsp[-5].id), (yyvsp[-4].id), &(yyvsp[-3].res_info), (yyvsp[-1].rcdata).first);
370075fd0b74Schristos 	    if (yychar != YYEMPTY)
370175fd0b74Schristos 	      YYERROR;
370275fd0b74Schristos 	    rcparse_discard_strings ();
370375fd0b74Schristos 	  }
3704*e992f068Schristos #line 3705 "rcparse.c"
370575fd0b74Schristos     break;
370675fd0b74Schristos 
3707*e992f068Schristos   case 184: /* user: id rcdata_id suboptions file_name  */
3708*e992f068Schristos #line 1357 "rcparse.y"
370975fd0b74Schristos           {
3710ede78133Schristos 	    define_user_file ((yyvsp[-3].id), (yyvsp[-2].id), &(yyvsp[-1].res_info), (yyvsp[0].s));
371175fd0b74Schristos 	    if (yychar != YYEMPTY)
371275fd0b74Schristos 	      YYERROR;
371375fd0b74Schristos 	    rcparse_discard_strings ();
371475fd0b74Schristos 	  }
3715*e992f068Schristos #line 3716 "rcparse.c"
371675fd0b74Schristos     break;
371775fd0b74Schristos 
3718*e992f068Schristos   case 185: /* toolbar: id TOOLBAR suboptions numexpr cnumexpr BEG toolbar_data END  */
3719*e992f068Schristos #line 1367 "rcparse.y"
372075fd0b74Schristos         {
3721ede78133Schristos 	  define_toolbar ((yyvsp[-7].id), &(yyvsp[-5].res_info), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-1].toobar_item));
372275fd0b74Schristos 	}
3723*e992f068Schristos #line 3724 "rcparse.c"
372475fd0b74Schristos     break;
372575fd0b74Schristos 
3726*e992f068Schristos   case 186: /* toolbar_data: %empty  */
3727*e992f068Schristos #line 1372 "rcparse.y"
372875fd0b74Schristos                           { (yyval.toobar_item)= NULL; }
3729*e992f068Schristos #line 3730 "rcparse.c"
373075fd0b74Schristos     break;
373175fd0b74Schristos 
3732*e992f068Schristos   case 187: /* toolbar_data: toolbar_data BUTTON id  */
3733*e992f068Schristos #line 1374 "rcparse.y"
373475fd0b74Schristos         {
373575fd0b74Schristos 	  rc_toolbar_item *c,*n;
3736ede78133Schristos 	  c = (yyvsp[-2].toobar_item);
373775fd0b74Schristos 	  n= (rc_toolbar_item *)
373875fd0b74Schristos 	      res_alloc (sizeof (rc_toolbar_item));
373975fd0b74Schristos 	  if (c != NULL)
374075fd0b74Schristos 	    while (c->next != NULL)
374175fd0b74Schristos 	      c = c->next;
374275fd0b74Schristos 	  n->prev = c;
374375fd0b74Schristos 	  n->next = NULL;
374475fd0b74Schristos 	  if (c != NULL)
374575fd0b74Schristos 	    c->next = n;
3746ede78133Schristos 	  n->id = (yyvsp[0].id);
3747ede78133Schristos 	  if ((yyvsp[-2].toobar_item) == NULL)
374875fd0b74Schristos 	    (yyval.toobar_item) = n;
374975fd0b74Schristos 	  else
3750ede78133Schristos 	    (yyval.toobar_item) = (yyvsp[-2].toobar_item);
375175fd0b74Schristos 	}
3752*e992f068Schristos #line 3753 "rcparse.c"
375375fd0b74Schristos     break;
375475fd0b74Schristos 
3755*e992f068Schristos   case 188: /* toolbar_data: toolbar_data SEPARATOR  */
3756*e992f068Schristos #line 1393 "rcparse.y"
375775fd0b74Schristos         {
375875fd0b74Schristos 	  rc_toolbar_item *c,*n;
3759ede78133Schristos 	  c = (yyvsp[-1].toobar_item);
376075fd0b74Schristos 	  n= (rc_toolbar_item *)
376175fd0b74Schristos 	      res_alloc (sizeof (rc_toolbar_item));
376275fd0b74Schristos 	  if (c != NULL)
376375fd0b74Schristos 	    while (c->next != NULL)
376475fd0b74Schristos 	      c = c->next;
376575fd0b74Schristos 	  n->prev = c;
376675fd0b74Schristos 	  n->next = NULL;
376775fd0b74Schristos 	  if (c != NULL)
376875fd0b74Schristos 	    c->next = n;
376975fd0b74Schristos 	  n->id.named = 0;
377075fd0b74Schristos 	  n->id.u.id = 0;
3771ede78133Schristos 	  if ((yyvsp[-1].toobar_item) == NULL)
377275fd0b74Schristos 	    (yyval.toobar_item) = n;
377375fd0b74Schristos 	  else
3774ede78133Schristos 	    (yyval.toobar_item) = (yyvsp[-1].toobar_item);
377575fd0b74Schristos 	}
3776*e992f068Schristos #line 3777 "rcparse.c"
377775fd0b74Schristos     break;
377875fd0b74Schristos 
3779*e992f068Schristos   case 189: /* versioninfo: id VERSIONINFO fixedverinfo BEG verblocks END  */
3780*e992f068Schristos #line 1418 "rcparse.y"
378175fd0b74Schristos           {
3782ede78133Schristos 	    define_versioninfo ((yyvsp[-5].id), language, (yyvsp[-3].fixver), (yyvsp[-1].verinfo));
378375fd0b74Schristos 	    if (yychar != YYEMPTY)
378475fd0b74Schristos 	      YYERROR;
378575fd0b74Schristos 	    rcparse_discard_strings ();
378675fd0b74Schristos 	  }
3787*e992f068Schristos #line 3788 "rcparse.c"
378875fd0b74Schristos     break;
378975fd0b74Schristos 
3790*e992f068Schristos   case 190: /* fixedverinfo: %empty  */
3791*e992f068Schristos #line 1428 "rcparse.y"
379275fd0b74Schristos           {
379375fd0b74Schristos 	    (yyval.fixver) = ((rc_fixed_versioninfo *)
379475fd0b74Schristos 		  res_alloc (sizeof (rc_fixed_versioninfo)));
379575fd0b74Schristos 	    memset ((yyval.fixver), 0, sizeof (rc_fixed_versioninfo));
379675fd0b74Schristos 	  }
3797*e992f068Schristos #line 3798 "rcparse.c"
379875fd0b74Schristos     break;
379975fd0b74Schristos 
3800*e992f068Schristos   case 191: /* fixedverinfo: fixedverinfo FILEVERSION numexpr optcnumexpr optcnumexpr optcnumexpr  */
3801*e992f068Schristos #line 1435 "rcparse.y"
380275fd0b74Schristos           {
3803ede78133Schristos 	    (yyvsp[-5].fixver)->file_version_ms = ((yyvsp[-3].il) << 16) | ((yyvsp[-2].il) & 0xffff);
3804ede78133Schristos 	    (yyvsp[-5].fixver)->file_version_ls = ((yyvsp[-1].il) << 16) | ((yyvsp[0].il) & 0xffff);
3805ede78133Schristos 	    (yyval.fixver) = (yyvsp[-5].fixver);
380675fd0b74Schristos 	  }
3807*e992f068Schristos #line 3808 "rcparse.c"
380875fd0b74Schristos     break;
380975fd0b74Schristos 
3810*e992f068Schristos   case 192: /* fixedverinfo: fixedverinfo PRODUCTVERSION numexpr optcnumexpr optcnumexpr optcnumexpr  */
3811*e992f068Schristos #line 1442 "rcparse.y"
381275fd0b74Schristos           {
3813ede78133Schristos 	    (yyvsp[-5].fixver)->product_version_ms = ((yyvsp[-3].il) << 16) | ((yyvsp[-2].il) & 0xffff);
3814ede78133Schristos 	    (yyvsp[-5].fixver)->product_version_ls = ((yyvsp[-1].il) << 16) | ((yyvsp[0].il) & 0xffff);
3815ede78133Schristos 	    (yyval.fixver) = (yyvsp[-5].fixver);
381675fd0b74Schristos 	  }
3817*e992f068Schristos #line 3818 "rcparse.c"
381875fd0b74Schristos     break;
381975fd0b74Schristos 
3820*e992f068Schristos   case 193: /* fixedverinfo: fixedverinfo FILEFLAGSMASK numexpr  */
3821*e992f068Schristos #line 1448 "rcparse.y"
382275fd0b74Schristos           {
3823ede78133Schristos 	    (yyvsp[-2].fixver)->file_flags_mask = (yyvsp[0].il);
3824ede78133Schristos 	    (yyval.fixver) = (yyvsp[-2].fixver);
382575fd0b74Schristos 	  }
3826*e992f068Schristos #line 3827 "rcparse.c"
382775fd0b74Schristos     break;
382875fd0b74Schristos 
3829*e992f068Schristos   case 194: /* fixedverinfo: fixedverinfo FILEFLAGS numexpr  */
3830*e992f068Schristos #line 1453 "rcparse.y"
383175fd0b74Schristos           {
3832ede78133Schristos 	    (yyvsp[-2].fixver)->file_flags = (yyvsp[0].il);
3833ede78133Schristos 	    (yyval.fixver) = (yyvsp[-2].fixver);
383475fd0b74Schristos 	  }
3835*e992f068Schristos #line 3836 "rcparse.c"
383675fd0b74Schristos     break;
383775fd0b74Schristos 
3838*e992f068Schristos   case 195: /* fixedverinfo: fixedverinfo FILEOS numexpr  */
3839*e992f068Schristos #line 1458 "rcparse.y"
384075fd0b74Schristos           {
3841ede78133Schristos 	    (yyvsp[-2].fixver)->file_os = (yyvsp[0].il);
3842ede78133Schristos 	    (yyval.fixver) = (yyvsp[-2].fixver);
384375fd0b74Schristos 	  }
3844*e992f068Schristos #line 3845 "rcparse.c"
384575fd0b74Schristos     break;
384675fd0b74Schristos 
3847*e992f068Schristos   case 196: /* fixedverinfo: fixedverinfo FILETYPE numexpr  */
3848*e992f068Schristos #line 1463 "rcparse.y"
384975fd0b74Schristos           {
3850ede78133Schristos 	    (yyvsp[-2].fixver)->file_type = (yyvsp[0].il);
3851ede78133Schristos 	    (yyval.fixver) = (yyvsp[-2].fixver);
385275fd0b74Schristos 	  }
3853*e992f068Schristos #line 3854 "rcparse.c"
385475fd0b74Schristos     break;
385575fd0b74Schristos 
3856*e992f068Schristos   case 197: /* fixedverinfo: fixedverinfo FILESUBTYPE numexpr  */
3857*e992f068Schristos #line 1468 "rcparse.y"
385875fd0b74Schristos           {
3859ede78133Schristos 	    (yyvsp[-2].fixver)->file_subtype = (yyvsp[0].il);
3860ede78133Schristos 	    (yyval.fixver) = (yyvsp[-2].fixver);
386175fd0b74Schristos 	  }
3862*e992f068Schristos #line 3863 "rcparse.c"
386375fd0b74Schristos     break;
386475fd0b74Schristos 
3865*e992f068Schristos   case 198: /* verblocks: %empty  */
3866*e992f068Schristos #line 1482 "rcparse.y"
386775fd0b74Schristos           {
386875fd0b74Schristos 	    (yyval.verinfo) = NULL;
386975fd0b74Schristos 	  }
3870*e992f068Schristos #line 3871 "rcparse.c"
387175fd0b74Schristos     break;
387275fd0b74Schristos 
3873*e992f068Schristos   case 199: /* verblocks: verblocks BLOCKSTRINGFILEINFO BEG verstringtables END  */
3874*e992f068Schristos #line 1486 "rcparse.y"
387575fd0b74Schristos           {
3876ede78133Schristos 	    (yyval.verinfo) = append_ver_stringfileinfo ((yyvsp[-4].verinfo), (yyvsp[-1].verstringtable));
387775fd0b74Schristos 	  }
3878*e992f068Schristos #line 3879 "rcparse.c"
387975fd0b74Schristos     break;
388075fd0b74Schristos 
3881*e992f068Schristos   case 200: /* verblocks: verblocks BLOCKVARFILEINFO BEG VALUE res_unicode_string_concat vertrans END  */
3882*e992f068Schristos #line 1490 "rcparse.y"
388375fd0b74Schristos           {
3884ede78133Schristos 	    (yyval.verinfo) = append_ver_varfileinfo ((yyvsp[-6].verinfo), (yyvsp[-2].uni), (yyvsp[-1].vervar));
388575fd0b74Schristos 	  }
3886*e992f068Schristos #line 3887 "rcparse.c"
388775fd0b74Schristos     break;
388875fd0b74Schristos 
3889*e992f068Schristos   case 201: /* verstringtables: %empty  */
3890*e992f068Schristos #line 1497 "rcparse.y"
389175fd0b74Schristos           {
389275fd0b74Schristos 	    (yyval.verstringtable) = NULL;
389375fd0b74Schristos 	  }
3894*e992f068Schristos #line 3895 "rcparse.c"
389575fd0b74Schristos     break;
389675fd0b74Schristos 
3897*e992f068Schristos   case 202: /* verstringtables: verstringtables BLOCK BEG vervals END  */
3898*e992f068Schristos #line 1501 "rcparse.y"
389975fd0b74Schristos           {
3900ede78133Schristos 	    (yyval.verstringtable) = append_ver_stringtable ((yyvsp[-4].verstringtable), (yyvsp[-3].s), (yyvsp[-1].verstring));
390175fd0b74Schristos 	  }
3902*e992f068Schristos #line 3903 "rcparse.c"
390375fd0b74Schristos     break;
390475fd0b74Schristos 
3905*e992f068Schristos   case 203: /* vervals: %empty  */
3906*e992f068Schristos #line 1508 "rcparse.y"
390775fd0b74Schristos           {
390875fd0b74Schristos 	    (yyval.verstring) = NULL;
390975fd0b74Schristos 	  }
3910*e992f068Schristos #line 3911 "rcparse.c"
391175fd0b74Schristos     break;
391275fd0b74Schristos 
3913*e992f068Schristos   case 204: /* vervals: vervals VALUE res_unicode_string_concat ',' res_unicode_string_concat  */
3914*e992f068Schristos #line 1512 "rcparse.y"
391575fd0b74Schristos           {
3916ede78133Schristos 	    (yyval.verstring) = append_verval ((yyvsp[-4].verstring), (yyvsp[-2].uni), (yyvsp[0].uni));
391775fd0b74Schristos 	  }
3918*e992f068Schristos #line 3919 "rcparse.c"
391975fd0b74Schristos     break;
392075fd0b74Schristos 
3921*e992f068Schristos   case 205: /* vertrans: %empty  */
3922*e992f068Schristos #line 1519 "rcparse.y"
392375fd0b74Schristos           {
392475fd0b74Schristos 	    (yyval.vervar) = NULL;
392575fd0b74Schristos 	  }
3926*e992f068Schristos #line 3927 "rcparse.c"
392775fd0b74Schristos     break;
392875fd0b74Schristos 
3929*e992f068Schristos   case 206: /* vertrans: vertrans cnumexpr cnumexpr  */
3930*e992f068Schristos #line 1523 "rcparse.y"
393175fd0b74Schristos           {
3932ede78133Schristos 	    (yyval.vervar) = append_vertrans ((yyvsp[-2].vervar), (yyvsp[-1].il), (yyvsp[0].il));
393375fd0b74Schristos 	  }
3934*e992f068Schristos #line 3935 "rcparse.c"
393575fd0b74Schristos     break;
393675fd0b74Schristos 
3937*e992f068Schristos   case 207: /* id: posnumexpr  */
3938*e992f068Schristos #line 1532 "rcparse.y"
393975fd0b74Schristos           {
394075fd0b74Schristos 	    (yyval.id).named = 0;
3941ede78133Schristos 	    (yyval.id).u.id = (yyvsp[0].il);
394275fd0b74Schristos 	  }
3943*e992f068Schristos #line 3944 "rcparse.c"
394475fd0b74Schristos     break;
394575fd0b74Schristos 
3946*e992f068Schristos   case 208: /* id: resname  */
3947*e992f068Schristos #line 1537 "rcparse.y"
394875fd0b74Schristos           {
3949ede78133Schristos 	    res_unistring_to_id (&(yyval.id), (yyvsp[0].uni));
395075fd0b74Schristos 	  }
3951*e992f068Schristos #line 3952 "rcparse.c"
395275fd0b74Schristos     break;
395375fd0b74Schristos 
3954*e992f068Schristos   case 209: /* resname: res_unicode_string  */
3955*e992f068Schristos #line 1546 "rcparse.y"
395675fd0b74Schristos           {
3957ede78133Schristos 	    (yyval.uni) = (yyvsp[0].uni);
395875fd0b74Schristos 	  }
3959*e992f068Schristos #line 3960 "rcparse.c"
396075fd0b74Schristos     break;
396175fd0b74Schristos 
3962*e992f068Schristos   case 210: /* resname: STRING  */
3963*e992f068Schristos #line 1550 "rcparse.y"
396475fd0b74Schristos           {
396575fd0b74Schristos 	    unichar *h = NULL;
3966ede78133Schristos 	    unicode_from_ascii ((rc_uint_type *) NULL, &h, (yyvsp[0].s));
396775fd0b74Schristos 	    (yyval.uni) = h;
396875fd0b74Schristos 	  }
3969*e992f068Schristos #line 3970 "rcparse.c"
397075fd0b74Schristos     break;
397175fd0b74Schristos 
3972*e992f068Schristos   case 211: /* resref: posnumexpr ','  */
3973*e992f068Schristos #line 1560 "rcparse.y"
397475fd0b74Schristos           {
397575fd0b74Schristos 	    (yyval.id).named = 0;
3976ede78133Schristos 	    (yyval.id).u.id = (yyvsp[-1].il);
397775fd0b74Schristos 	  }
3978*e992f068Schristos #line 3979 "rcparse.c"
397975fd0b74Schristos     break;
398075fd0b74Schristos 
3981*e992f068Schristos   case 212: /* resref: resname  */
3982*e992f068Schristos #line 1565 "rcparse.y"
398375fd0b74Schristos           {
3984ede78133Schristos 	    res_unistring_to_id (&(yyval.id), (yyvsp[0].uni));
398575fd0b74Schristos 	  }
3986*e992f068Schristos #line 3987 "rcparse.c"
398775fd0b74Schristos     break;
398875fd0b74Schristos 
3989*e992f068Schristos   case 213: /* resref: resname ','  */
3990*e992f068Schristos #line 1569 "rcparse.y"
399175fd0b74Schristos           {
3992ede78133Schristos 	    res_unistring_to_id (&(yyval.id), (yyvsp[-1].uni));
399375fd0b74Schristos 	  }
3994*e992f068Schristos #line 3995 "rcparse.c"
399575fd0b74Schristos     break;
399675fd0b74Schristos 
3997*e992f068Schristos   case 214: /* suboptions: %empty  */
3998*e992f068Schristos #line 1579 "rcparse.y"
399975fd0b74Schristos           {
400075fd0b74Schristos 	    memset (&(yyval.res_info), 0, sizeof (rc_res_res_info));
400175fd0b74Schristos 	    (yyval.res_info).language = language;
400275fd0b74Schristos 	    /* FIXME: Is this the right default?  */
400375fd0b74Schristos 	    (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE;
400475fd0b74Schristos 	  }
4005*e992f068Schristos #line 4006 "rcparse.c"
400675fd0b74Schristos     break;
400775fd0b74Schristos 
4008*e992f068Schristos   case 215: /* suboptions: suboptions memflag  */
4009*e992f068Schristos #line 1586 "rcparse.y"
401075fd0b74Schristos           {
4011ede78133Schristos 	    (yyval.res_info) = (yyvsp[-1].res_info);
4012ede78133Schristos 	    (yyval.res_info).memflags |= (yyvsp[0].memflags).on;
4013ede78133Schristos 	    (yyval.res_info).memflags &=~ (yyvsp[0].memflags).off;
401475fd0b74Schristos 	  }
4015*e992f068Schristos #line 4016 "rcparse.c"
401675fd0b74Schristos     break;
401775fd0b74Schristos 
4018*e992f068Schristos   case 216: /* suboptions: suboptions CHARACTERISTICS numexpr  */
4019*e992f068Schristos #line 1592 "rcparse.y"
402075fd0b74Schristos           {
4021ede78133Schristos 	    (yyval.res_info) = (yyvsp[-2].res_info);
4022ede78133Schristos 	    (yyval.res_info).characteristics = (yyvsp[0].il);
402375fd0b74Schristos 	  }
4024*e992f068Schristos #line 4025 "rcparse.c"
402575fd0b74Schristos     break;
402675fd0b74Schristos 
4027*e992f068Schristos   case 217: /* suboptions: suboptions LANGUAGE numexpr cnumexpr  */
4028*e992f068Schristos #line 1597 "rcparse.y"
402975fd0b74Schristos           {
4030ede78133Schristos 	    (yyval.res_info) = (yyvsp[-3].res_info);
4031ede78133Schristos 	    (yyval.res_info).language = (yyvsp[-1].il) | ((yyvsp[0].il) << SUBLANG_SHIFT);
403275fd0b74Schristos 	  }
4033*e992f068Schristos #line 4034 "rcparse.c"
403475fd0b74Schristos     break;
403575fd0b74Schristos 
4036*e992f068Schristos   case 218: /* suboptions: suboptions VERSIONK numexpr  */
4037*e992f068Schristos #line 1602 "rcparse.y"
403875fd0b74Schristos           {
4039ede78133Schristos 	    (yyval.res_info) = (yyvsp[-2].res_info);
4040ede78133Schristos 	    (yyval.res_info).version = (yyvsp[0].il);
404175fd0b74Schristos 	  }
4042*e992f068Schristos #line 4043 "rcparse.c"
404375fd0b74Schristos     break;
404475fd0b74Schristos 
4045*e992f068Schristos   case 219: /* memflags_move_discard: %empty  */
4046*e992f068Schristos #line 1612 "rcparse.y"
404775fd0b74Schristos           {
404875fd0b74Schristos 	    memset (&(yyval.res_info), 0, sizeof (rc_res_res_info));
404975fd0b74Schristos 	    (yyval.res_info).language = language;
405075fd0b74Schristos 	    (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_DISCARDABLE;
405175fd0b74Schristos 	  }
4052*e992f068Schristos #line 4053 "rcparse.c"
405375fd0b74Schristos     break;
405475fd0b74Schristos 
4055*e992f068Schristos   case 220: /* memflags_move_discard: memflags_move_discard memflag  */
4056*e992f068Schristos #line 1618 "rcparse.y"
405775fd0b74Schristos           {
4058ede78133Schristos 	    (yyval.res_info) = (yyvsp[-1].res_info);
4059ede78133Schristos 	    (yyval.res_info).memflags |= (yyvsp[0].memflags).on;
4060ede78133Schristos 	    (yyval.res_info).memflags &=~ (yyvsp[0].memflags).off;
406175fd0b74Schristos 	  }
4062*e992f068Schristos #line 4063 "rcparse.c"
406375fd0b74Schristos     break;
406475fd0b74Schristos 
4065*e992f068Schristos   case 221: /* memflags_move: %empty  */
4066*e992f068Schristos #line 1629 "rcparse.y"
406775fd0b74Schristos           {
406875fd0b74Schristos 	    memset (&(yyval.res_info), 0, sizeof (rc_res_res_info));
406975fd0b74Schristos 	    (yyval.res_info).language = language;
407075fd0b74Schristos 	    (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE;
407175fd0b74Schristos 	  }
4072*e992f068Schristos #line 4073 "rcparse.c"
407375fd0b74Schristos     break;
407475fd0b74Schristos 
4075*e992f068Schristos   case 222: /* memflags_move: memflags_move memflag  */
4076*e992f068Schristos #line 1635 "rcparse.y"
407775fd0b74Schristos           {
4078ede78133Schristos 	    (yyval.res_info) = (yyvsp[-1].res_info);
4079ede78133Schristos 	    (yyval.res_info).memflags |= (yyvsp[0].memflags).on;
4080ede78133Schristos 	    (yyval.res_info).memflags &=~ (yyvsp[0].memflags).off;
408175fd0b74Schristos 	  }
4082*e992f068Schristos #line 4083 "rcparse.c"
408375fd0b74Schristos     break;
408475fd0b74Schristos 
4085*e992f068Schristos   case 223: /* memflag: MOVEABLE  */
4086*e992f068Schristos #line 1647 "rcparse.y"
408775fd0b74Schristos           {
408875fd0b74Schristos 	    (yyval.memflags).on = MEMFLAG_MOVEABLE;
408975fd0b74Schristos 	    (yyval.memflags).off = 0;
409075fd0b74Schristos 	  }
4091*e992f068Schristos #line 4092 "rcparse.c"
409275fd0b74Schristos     break;
409375fd0b74Schristos 
4094*e992f068Schristos   case 224: /* memflag: FIXED  */
4095*e992f068Schristos #line 1652 "rcparse.y"
409675fd0b74Schristos           {
409775fd0b74Schristos 	    (yyval.memflags).on = 0;
409875fd0b74Schristos 	    (yyval.memflags).off = MEMFLAG_MOVEABLE;
409975fd0b74Schristos 	  }
4100*e992f068Schristos #line 4101 "rcparse.c"
410175fd0b74Schristos     break;
410275fd0b74Schristos 
4103*e992f068Schristos   case 225: /* memflag: PURE  */
4104*e992f068Schristos #line 1657 "rcparse.y"
410575fd0b74Schristos           {
410675fd0b74Schristos 	    (yyval.memflags).on = MEMFLAG_PURE;
410775fd0b74Schristos 	    (yyval.memflags).off = 0;
410875fd0b74Schristos 	  }
4109*e992f068Schristos #line 4110 "rcparse.c"
411075fd0b74Schristos     break;
411175fd0b74Schristos 
4112*e992f068Schristos   case 226: /* memflag: IMPURE  */
4113*e992f068Schristos #line 1662 "rcparse.y"
411475fd0b74Schristos           {
411575fd0b74Schristos 	    (yyval.memflags).on = 0;
411675fd0b74Schristos 	    (yyval.memflags).off = MEMFLAG_PURE;
411775fd0b74Schristos 	  }
4118*e992f068Schristos #line 4119 "rcparse.c"
411975fd0b74Schristos     break;
412075fd0b74Schristos 
4121*e992f068Schristos   case 227: /* memflag: PRELOAD  */
4122*e992f068Schristos #line 1667 "rcparse.y"
412375fd0b74Schristos           {
412475fd0b74Schristos 	    (yyval.memflags).on = MEMFLAG_PRELOAD;
412575fd0b74Schristos 	    (yyval.memflags).off = 0;
412675fd0b74Schristos 	  }
4127*e992f068Schristos #line 4128 "rcparse.c"
412875fd0b74Schristos     break;
412975fd0b74Schristos 
4130*e992f068Schristos   case 228: /* memflag: LOADONCALL  */
4131*e992f068Schristos #line 1672 "rcparse.y"
413275fd0b74Schristos           {
413375fd0b74Schristos 	    (yyval.memflags).on = 0;
413475fd0b74Schristos 	    (yyval.memflags).off = MEMFLAG_PRELOAD;
413575fd0b74Schristos 	  }
4136*e992f068Schristos #line 4137 "rcparse.c"
413775fd0b74Schristos     break;
413875fd0b74Schristos 
4139*e992f068Schristos   case 229: /* memflag: DISCARDABLE  */
4140*e992f068Schristos #line 1677 "rcparse.y"
414175fd0b74Schristos           {
414275fd0b74Schristos 	    (yyval.memflags).on = MEMFLAG_DISCARDABLE;
414375fd0b74Schristos 	    (yyval.memflags).off = 0;
414475fd0b74Schristos 	  }
4145*e992f068Schristos #line 4146 "rcparse.c"
414675fd0b74Schristos     break;
414775fd0b74Schristos 
4148*e992f068Schristos   case 230: /* file_name: QUOTEDSTRING  */
4149*e992f068Schristos #line 1687 "rcparse.y"
415075fd0b74Schristos           {
4151ede78133Schristos 	    (yyval.s) = (yyvsp[0].s);
415275fd0b74Schristos 	  }
4153*e992f068Schristos #line 4154 "rcparse.c"
415475fd0b74Schristos     break;
415575fd0b74Schristos 
4156*e992f068Schristos   case 231: /* file_name: STRING  */
4157*e992f068Schristos #line 1691 "rcparse.y"
415875fd0b74Schristos           {
4159ede78133Schristos 	    (yyval.s) = (yyvsp[0].s);
416075fd0b74Schristos 	  }
4161*e992f068Schristos #line 4162 "rcparse.c"
416275fd0b74Schristos     break;
416375fd0b74Schristos 
4164*e992f068Schristos   case 232: /* res_unicode_string_concat: res_unicode_string  */
4165*e992f068Schristos #line 1699 "rcparse.y"
416675fd0b74Schristos           {
4167ede78133Schristos 	    (yyval.uni) = (yyvsp[0].uni);
416875fd0b74Schristos 	  }
4169*e992f068Schristos #line 4170 "rcparse.c"
417075fd0b74Schristos     break;
417175fd0b74Schristos 
4172*e992f068Schristos   case 233: /* res_unicode_string_concat: res_unicode_string_concat res_unicode_string  */
4173*e992f068Schristos #line 1704 "rcparse.y"
417475fd0b74Schristos           {
4175ede78133Schristos 	    rc_uint_type l1 = unichar_len ((yyvsp[-1].uni));
4176ede78133Schristos 	    rc_uint_type l2 = unichar_len ((yyvsp[0].uni));
417775fd0b74Schristos 	    unichar *h = (unichar *) res_alloc ((l1 + l2 + 1) * sizeof (unichar));
417875fd0b74Schristos 	    if (l1 != 0)
4179ede78133Schristos 	      memcpy (h, (yyvsp[-1].uni), l1 * sizeof (unichar));
418075fd0b74Schristos 	    if (l2 != 0)
4181ede78133Schristos 	      memcpy (h + l1, (yyvsp[0].uni), l2  * sizeof (unichar));
418275fd0b74Schristos 	    h[l1 + l2] = 0;
418375fd0b74Schristos 	    (yyval.uni) = h;
418475fd0b74Schristos 	  }
4185*e992f068Schristos #line 4186 "rcparse.c"
418675fd0b74Schristos     break;
418775fd0b74Schristos 
4188*e992f068Schristos   case 234: /* res_unicode_string: QUOTEDUNISTRING  */
4189*e992f068Schristos #line 1719 "rcparse.y"
419075fd0b74Schristos           {
4191ede78133Schristos 	    (yyval.uni) = unichar_dup ((yyvsp[0].uni));
419275fd0b74Schristos 	  }
4193*e992f068Schristos #line 4194 "rcparse.c"
419475fd0b74Schristos     break;
419575fd0b74Schristos 
4196*e992f068Schristos   case 235: /* res_unicode_string: QUOTEDSTRING  */
4197*e992f068Schristos #line 1723 "rcparse.y"
419875fd0b74Schristos           {
419975fd0b74Schristos 	    unichar *h = NULL;
4200ede78133Schristos 	    unicode_from_ascii ((rc_uint_type *) NULL, &h, (yyvsp[0].s));
420175fd0b74Schristos 	    (yyval.uni) = h;
420275fd0b74Schristos 	  }
4203*e992f068Schristos #line 4204 "rcparse.c"
420475fd0b74Schristos     break;
420575fd0b74Schristos 
4206*e992f068Schristos   case 236: /* res_unicode_sizedstring: sizedunistring  */
4207*e992f068Schristos #line 1732 "rcparse.y"
420875fd0b74Schristos           {
4209ede78133Schristos 	    (yyval.suni) = (yyvsp[0].suni);
421075fd0b74Schristos 	  }
4211*e992f068Schristos #line 4212 "rcparse.c"
421275fd0b74Schristos     break;
421375fd0b74Schristos 
4214*e992f068Schristos   case 237: /* res_unicode_sizedstring: sizedstring  */
4215*e992f068Schristos #line 1736 "rcparse.y"
421675fd0b74Schristos           {
421775fd0b74Schristos 	    unichar *h = NULL;
421875fd0b74Schristos 	    rc_uint_type l = 0;
4219ede78133Schristos 	    unicode_from_ascii_len (&l, &h, (yyvsp[0].ss).s, (yyvsp[0].ss).length);
422075fd0b74Schristos 	    (yyval.suni).s = h;
422175fd0b74Schristos 	    (yyval.suni).length = l;
422275fd0b74Schristos 	  }
4223*e992f068Schristos #line 4224 "rcparse.c"
422475fd0b74Schristos     break;
422575fd0b74Schristos 
4226*e992f068Schristos   case 238: /* res_unicode_sizedstring_concat: res_unicode_sizedstring  */
4227*e992f068Schristos #line 1748 "rcparse.y"
422875fd0b74Schristos           {
4229ede78133Schristos 	    (yyval.suni) = (yyvsp[0].suni);
423075fd0b74Schristos 	  }
4231*e992f068Schristos #line 4232 "rcparse.c"
423275fd0b74Schristos     break;
423375fd0b74Schristos 
4234*e992f068Schristos   case 239: /* res_unicode_sizedstring_concat: res_unicode_sizedstring_concat res_unicode_sizedstring  */
4235*e992f068Schristos #line 1753 "rcparse.y"
423675fd0b74Schristos           {
4237ede78133Schristos 	    rc_uint_type l1 = (yyvsp[-1].suni).length;
4238ede78133Schristos 	    rc_uint_type l2 = (yyvsp[0].suni).length;
423975fd0b74Schristos 	    unichar *h = (unichar *) res_alloc ((l1 + l2 + 1) * sizeof (unichar));
424075fd0b74Schristos 	    if (l1 != 0)
4241ede78133Schristos 	      memcpy (h, (yyvsp[-1].suni).s, l1 * sizeof (unichar));
424275fd0b74Schristos 	    if (l2 != 0)
4243ede78133Schristos 	      memcpy (h + l1, (yyvsp[0].suni).s, l2  * sizeof (unichar));
424475fd0b74Schristos 	    h[l1 + l2] = 0;
424575fd0b74Schristos 	    (yyval.suni).length = l1 + l2;
424675fd0b74Schristos 	    (yyval.suni).s = h;
424775fd0b74Schristos 	  }
4248*e992f068Schristos #line 4249 "rcparse.c"
424975fd0b74Schristos     break;
425075fd0b74Schristos 
4251*e992f068Schristos   case 240: /* sizedstring: SIZEDSTRING  */
4252*e992f068Schristos #line 1769 "rcparse.y"
425375fd0b74Schristos           {
4254ede78133Schristos 	    (yyval.ss) = (yyvsp[0].ss);
425575fd0b74Schristos 	  }
4256*e992f068Schristos #line 4257 "rcparse.c"
425775fd0b74Schristos     break;
425875fd0b74Schristos 
4259*e992f068Schristos   case 241: /* sizedstring: sizedstring SIZEDSTRING  */
4260*e992f068Schristos #line 1773 "rcparse.y"
426175fd0b74Schristos           {
4262ede78133Schristos 	    rc_uint_type l = (yyvsp[-1].ss).length + (yyvsp[0].ss).length;
426375fd0b74Schristos 	    char *h = (char *) res_alloc (l);
4264ede78133Schristos 	    memcpy (h, (yyvsp[-1].ss).s, (yyvsp[-1].ss).length);
4265ede78133Schristos 	    memcpy (h + (yyvsp[-1].ss).length, (yyvsp[0].ss).s, (yyvsp[0].ss).length);
426675fd0b74Schristos 	    (yyval.ss).s = h;
426775fd0b74Schristos 	    (yyval.ss).length = l;
426875fd0b74Schristos 	  }
4269*e992f068Schristos #line 4270 "rcparse.c"
427075fd0b74Schristos     break;
427175fd0b74Schristos 
4272*e992f068Schristos   case 242: /* sizedunistring: SIZEDUNISTRING  */
4273*e992f068Schristos #line 1785 "rcparse.y"
427475fd0b74Schristos           {
4275ede78133Schristos 	    (yyval.suni) = (yyvsp[0].suni);
427675fd0b74Schristos 	  }
4277*e992f068Schristos #line 4278 "rcparse.c"
427875fd0b74Schristos     break;
427975fd0b74Schristos 
4280*e992f068Schristos   case 243: /* sizedunistring: sizedunistring SIZEDUNISTRING  */
4281*e992f068Schristos #line 1789 "rcparse.y"
428275fd0b74Schristos           {
4283ede78133Schristos 	    rc_uint_type l = (yyvsp[-1].suni).length + (yyvsp[0].suni).length;
428475fd0b74Schristos 	    unichar *h = (unichar *) res_alloc (l * sizeof (unichar));
4285ede78133Schristos 	    memcpy (h, (yyvsp[-1].suni).s, (yyvsp[-1].suni).length * sizeof (unichar));
4286ede78133Schristos 	    memcpy (h + (yyvsp[-1].suni).length, (yyvsp[0].suni).s, (yyvsp[0].suni).length  * sizeof (unichar));
428775fd0b74Schristos 	    (yyval.suni).s = h;
428875fd0b74Schristos 	    (yyval.suni).length = l;
428975fd0b74Schristos 	  }
4290*e992f068Schristos #line 4291 "rcparse.c"
429175fd0b74Schristos     break;
429275fd0b74Schristos 
4293*e992f068Schristos   case 244: /* styleexpr: parennumber  */
4294*e992f068Schristos #line 1811 "rcparse.y"
429575fd0b74Schristos           {
4296ede78133Schristos 	    style |= (yyvsp[0].il);
429775fd0b74Schristos 	  }
4298*e992f068Schristos #line 4299 "rcparse.c"
429975fd0b74Schristos     break;
430075fd0b74Schristos 
4301*e992f068Schristos   case 245: /* styleexpr: NOT parennumber  */
4302*e992f068Schristos #line 1815 "rcparse.y"
430375fd0b74Schristos           {
4304ede78133Schristos 	    style &=~ (yyvsp[0].il);
430575fd0b74Schristos 	  }
4306*e992f068Schristos #line 4307 "rcparse.c"
430775fd0b74Schristos     break;
430875fd0b74Schristos 
4309*e992f068Schristos   case 246: /* styleexpr: styleexpr '|' parennumber  */
4310*e992f068Schristos #line 1819 "rcparse.y"
431175fd0b74Schristos           {
4312ede78133Schristos 	    style |= (yyvsp[0].il);
431375fd0b74Schristos 	  }
4314*e992f068Schristos #line 4315 "rcparse.c"
431575fd0b74Schristos     break;
431675fd0b74Schristos 
4317*e992f068Schristos   case 247: /* styleexpr: styleexpr '|' NOT parennumber  */
4318*e992f068Schristos #line 1823 "rcparse.y"
431975fd0b74Schristos           {
4320ede78133Schristos 	    style &=~ (yyvsp[0].il);
432175fd0b74Schristos 	  }
4322*e992f068Schristos #line 4323 "rcparse.c"
432375fd0b74Schristos     break;
432475fd0b74Schristos 
4325*e992f068Schristos   case 248: /* parennumber: NUMBER  */
4326*e992f068Schristos #line 1830 "rcparse.y"
432775fd0b74Schristos           {
4328ede78133Schristos 	    (yyval.il) = (yyvsp[0].i).val;
432975fd0b74Schristos 	  }
4330*e992f068Schristos #line 4331 "rcparse.c"
433175fd0b74Schristos     break;
433275fd0b74Schristos 
4333*e992f068Schristos   case 249: /* parennumber: '(' numexpr ')'  */
4334*e992f068Schristos #line 1834 "rcparse.y"
433575fd0b74Schristos           {
4336ede78133Schristos 	    (yyval.il) = (yyvsp[-1].il);
433775fd0b74Schristos 	  }
4338*e992f068Schristos #line 4339 "rcparse.c"
433975fd0b74Schristos     break;
434075fd0b74Schristos 
4341*e992f068Schristos   case 250: /* optcnumexpr: %empty  */
4342*e992f068Schristos #line 1843 "rcparse.y"
434375fd0b74Schristos           {
434475fd0b74Schristos 	    (yyval.il) = 0;
434575fd0b74Schristos 	  }
4346*e992f068Schristos #line 4347 "rcparse.c"
434775fd0b74Schristos     break;
434875fd0b74Schristos 
4349*e992f068Schristos   case 251: /* optcnumexpr: cnumexpr  */
4350*e992f068Schristos #line 1847 "rcparse.y"
435175fd0b74Schristos           {
4352ede78133Schristos 	    (yyval.il) = (yyvsp[0].il);
435375fd0b74Schristos 	  }
4354*e992f068Schristos #line 4355 "rcparse.c"
435575fd0b74Schristos     break;
435675fd0b74Schristos 
4357*e992f068Schristos   case 252: /* cnumexpr: ',' numexpr  */
4358*e992f068Schristos #line 1856 "rcparse.y"
435975fd0b74Schristos           {
4360ede78133Schristos 	    (yyval.il) = (yyvsp[0].il);
436175fd0b74Schristos 	  }
4362*e992f068Schristos #line 4363 "rcparse.c"
436375fd0b74Schristos     break;
436475fd0b74Schristos 
4365*e992f068Schristos   case 253: /* numexpr: sizednumexpr  */
4366*e992f068Schristos #line 1865 "rcparse.y"
436775fd0b74Schristos           {
4368ede78133Schristos 	    (yyval.il) = (yyvsp[0].i).val;
436975fd0b74Schristos 	  }
4370*e992f068Schristos #line 4371 "rcparse.c"
437175fd0b74Schristos     break;
437275fd0b74Schristos 
4373*e992f068Schristos   case 254: /* sizednumexpr: NUMBER  */
4374*e992f068Schristos #line 1874 "rcparse.y"
437575fd0b74Schristos           {
4376ede78133Schristos 	    (yyval.i) = (yyvsp[0].i);
437775fd0b74Schristos 	  }
4378*e992f068Schristos #line 4379 "rcparse.c"
437975fd0b74Schristos     break;
438075fd0b74Schristos 
4381*e992f068Schristos   case 255: /* sizednumexpr: '(' sizednumexpr ')'  */
4382*e992f068Schristos #line 1878 "rcparse.y"
438375fd0b74Schristos           {
4384ede78133Schristos 	    (yyval.i) = (yyvsp[-1].i);
438575fd0b74Schristos 	  }
4386*e992f068Schristos #line 4387 "rcparse.c"
438775fd0b74Schristos     break;
438875fd0b74Schristos 
4389*e992f068Schristos   case 256: /* sizednumexpr: '~' sizednumexpr  */
4390*e992f068Schristos #line 1882 "rcparse.y"
439175fd0b74Schristos           {
4392ede78133Schristos 	    (yyval.i).val = ~ (yyvsp[0].i).val;
4393ede78133Schristos 	    (yyval.i).dword = (yyvsp[0].i).dword;
439475fd0b74Schristos 	  }
4395*e992f068Schristos #line 4396 "rcparse.c"
439675fd0b74Schristos     break;
439775fd0b74Schristos 
4398*e992f068Schristos   case 257: /* sizednumexpr: '-' sizednumexpr  */
4399*e992f068Schristos #line 1887 "rcparse.y"
440075fd0b74Schristos           {
4401ede78133Schristos 	    (yyval.i).val = - (yyvsp[0].i).val;
4402ede78133Schristos 	    (yyval.i).dword = (yyvsp[0].i).dword;
440375fd0b74Schristos 	  }
4404*e992f068Schristos #line 4405 "rcparse.c"
440575fd0b74Schristos     break;
440675fd0b74Schristos 
4407*e992f068Schristos   case 258: /* sizednumexpr: sizednumexpr '*' sizednumexpr  */
4408*e992f068Schristos #line 1892 "rcparse.y"
440975fd0b74Schristos           {
4410ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val * (yyvsp[0].i).val;
4411ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
441275fd0b74Schristos 	  }
4413*e992f068Schristos #line 4414 "rcparse.c"
441475fd0b74Schristos     break;
441575fd0b74Schristos 
4416*e992f068Schristos   case 259: /* sizednumexpr: sizednumexpr '/' sizednumexpr  */
4417*e992f068Schristos #line 1897 "rcparse.y"
441875fd0b74Schristos           {
4419ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val / ((yyvsp[0].i).val ? (yyvsp[0].i).val : 1);
4420ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
442175fd0b74Schristos 	  }
4422*e992f068Schristos #line 4423 "rcparse.c"
442375fd0b74Schristos     break;
442475fd0b74Schristos 
4425*e992f068Schristos   case 260: /* sizednumexpr: sizednumexpr '%' sizednumexpr  */
4426*e992f068Schristos #line 1902 "rcparse.y"
442775fd0b74Schristos           {
4428ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val % ((yyvsp[0].i).val ? (yyvsp[0].i).val : 1);
4429ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
443075fd0b74Schristos 	  }
4431*e992f068Schristos #line 4432 "rcparse.c"
443275fd0b74Schristos     break;
443375fd0b74Schristos 
4434*e992f068Schristos   case 261: /* sizednumexpr: sizednumexpr '+' sizednumexpr  */
4435*e992f068Schristos #line 1907 "rcparse.y"
443675fd0b74Schristos           {
4437ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val + (yyvsp[0].i).val;
4438ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
443975fd0b74Schristos 	  }
4440*e992f068Schristos #line 4441 "rcparse.c"
444175fd0b74Schristos     break;
444275fd0b74Schristos 
4443*e992f068Schristos   case 262: /* sizednumexpr: sizednumexpr '-' sizednumexpr  */
4444*e992f068Schristos #line 1912 "rcparse.y"
444575fd0b74Schristos           {
4446ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val - (yyvsp[0].i).val;
4447ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
444875fd0b74Schristos 	  }
4449*e992f068Schristos #line 4450 "rcparse.c"
445075fd0b74Schristos     break;
445175fd0b74Schristos 
4452*e992f068Schristos   case 263: /* sizednumexpr: sizednumexpr '&' sizednumexpr  */
4453*e992f068Schristos #line 1917 "rcparse.y"
445475fd0b74Schristos           {
4455ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val & (yyvsp[0].i).val;
4456ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
445775fd0b74Schristos 	  }
4458*e992f068Schristos #line 4459 "rcparse.c"
445975fd0b74Schristos     break;
446075fd0b74Schristos 
4461*e992f068Schristos   case 264: /* sizednumexpr: sizednumexpr '^' sizednumexpr  */
4462*e992f068Schristos #line 1922 "rcparse.y"
446375fd0b74Schristos           {
4464ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val ^ (yyvsp[0].i).val;
4465ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
446675fd0b74Schristos 	  }
4467*e992f068Schristos #line 4468 "rcparse.c"
446875fd0b74Schristos     break;
446975fd0b74Schristos 
4470*e992f068Schristos   case 265: /* sizednumexpr: sizednumexpr '|' sizednumexpr  */
4471*e992f068Schristos #line 1927 "rcparse.y"
447275fd0b74Schristos           {
4473ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val | (yyvsp[0].i).val;
4474ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
447575fd0b74Schristos 	  }
4476*e992f068Schristos #line 4477 "rcparse.c"
447775fd0b74Schristos     break;
447875fd0b74Schristos 
4479*e992f068Schristos   case 266: /* cposnumexpr: ',' posnumexpr  */
4480*e992f068Schristos #line 1938 "rcparse.y"
448175fd0b74Schristos           {
4482ede78133Schristos 	    (yyval.il) = (yyvsp[0].il);
448375fd0b74Schristos 	  }
4484*e992f068Schristos #line 4485 "rcparse.c"
448575fd0b74Schristos     break;
448675fd0b74Schristos 
4487*e992f068Schristos   case 267: /* posnumexpr: sizedposnumexpr  */
4488*e992f068Schristos #line 1947 "rcparse.y"
448975fd0b74Schristos           {
4490ede78133Schristos 	    (yyval.il) = (yyvsp[0].i).val;
449175fd0b74Schristos 	  }
4492*e992f068Schristos #line 4493 "rcparse.c"
449375fd0b74Schristos     break;
449475fd0b74Schristos 
4495*e992f068Schristos   case 268: /* sizedposnumexpr: NUMBER  */
4496*e992f068Schristos #line 1958 "rcparse.y"
449775fd0b74Schristos           {
4498ede78133Schristos 	    (yyval.i) = (yyvsp[0].i);
449975fd0b74Schristos 	  }
4500*e992f068Schristos #line 4501 "rcparse.c"
450175fd0b74Schristos     break;
450275fd0b74Schristos 
4503*e992f068Schristos   case 269: /* sizedposnumexpr: '(' sizednumexpr ')'  */
4504*e992f068Schristos #line 1962 "rcparse.y"
450575fd0b74Schristos           {
4506ede78133Schristos 	    (yyval.i) = (yyvsp[-1].i);
450775fd0b74Schristos 	  }
4508*e992f068Schristos #line 4509 "rcparse.c"
450975fd0b74Schristos     break;
451075fd0b74Schristos 
4511*e992f068Schristos   case 270: /* sizedposnumexpr: '~' sizednumexpr  */
4512*e992f068Schristos #line 1966 "rcparse.y"
451375fd0b74Schristos           {
4514ede78133Schristos 	    (yyval.i).val = ~ (yyvsp[0].i).val;
4515ede78133Schristos 	    (yyval.i).dword = (yyvsp[0].i).dword;
451675fd0b74Schristos 	  }
4517*e992f068Schristos #line 4518 "rcparse.c"
451875fd0b74Schristos     break;
451975fd0b74Schristos 
4520*e992f068Schristos   case 271: /* sizedposnumexpr: sizedposnumexpr '*' sizednumexpr  */
4521*e992f068Schristos #line 1971 "rcparse.y"
452275fd0b74Schristos           {
4523ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val * (yyvsp[0].i).val;
4524ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
452575fd0b74Schristos 	  }
4526*e992f068Schristos #line 4527 "rcparse.c"
452775fd0b74Schristos     break;
452875fd0b74Schristos 
4529*e992f068Schristos   case 272: /* sizedposnumexpr: sizedposnumexpr '/' sizednumexpr  */
4530*e992f068Schristos #line 1976 "rcparse.y"
453175fd0b74Schristos           {
4532ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val / ((yyvsp[0].i).val ? (yyvsp[0].i).val : 1);
4533ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
453475fd0b74Schristos 	  }
4535*e992f068Schristos #line 4536 "rcparse.c"
453675fd0b74Schristos     break;
453775fd0b74Schristos 
4538*e992f068Schristos   case 273: /* sizedposnumexpr: sizedposnumexpr '%' sizednumexpr  */
4539*e992f068Schristos #line 1981 "rcparse.y"
454075fd0b74Schristos           {
454175fd0b74Schristos 	    /* PR 17512: file: 89105a25.  */
4542ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val % ((yyvsp[0].i).val ? (yyvsp[0].i).val : 1);
4543ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
454475fd0b74Schristos 	  }
4545*e992f068Schristos #line 4546 "rcparse.c"
454675fd0b74Schristos     break;
454775fd0b74Schristos 
4548*e992f068Schristos   case 274: /* sizedposnumexpr: sizedposnumexpr '+' sizednumexpr  */
4549*e992f068Schristos #line 1987 "rcparse.y"
455075fd0b74Schristos           {
4551ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val + (yyvsp[0].i).val;
4552ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
455375fd0b74Schristos 	  }
4554*e992f068Schristos #line 4555 "rcparse.c"
455575fd0b74Schristos     break;
455675fd0b74Schristos 
4557*e992f068Schristos   case 275: /* sizedposnumexpr: sizedposnumexpr '-' sizednumexpr  */
4558*e992f068Schristos #line 1992 "rcparse.y"
455975fd0b74Schristos           {
4560ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val - (yyvsp[0].i).val;
4561ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
456275fd0b74Schristos 	  }
4563*e992f068Schristos #line 4564 "rcparse.c"
456475fd0b74Schristos     break;
456575fd0b74Schristos 
4566*e992f068Schristos   case 276: /* sizedposnumexpr: sizedposnumexpr '&' sizednumexpr  */
4567*e992f068Schristos #line 1997 "rcparse.y"
456875fd0b74Schristos           {
4569ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val & (yyvsp[0].i).val;
4570ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
457175fd0b74Schristos 	  }
4572*e992f068Schristos #line 4573 "rcparse.c"
457375fd0b74Schristos     break;
457475fd0b74Schristos 
4575*e992f068Schristos   case 277: /* sizedposnumexpr: sizedposnumexpr '^' sizednumexpr  */
4576*e992f068Schristos #line 2002 "rcparse.y"
457775fd0b74Schristos           {
4578ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val ^ (yyvsp[0].i).val;
4579ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
458075fd0b74Schristos 	  }
4581*e992f068Schristos #line 4582 "rcparse.c"
458275fd0b74Schristos     break;
458375fd0b74Schristos 
4584*e992f068Schristos   case 278: /* sizedposnumexpr: sizedposnumexpr '|' sizednumexpr  */
4585*e992f068Schristos #line 2007 "rcparse.y"
458675fd0b74Schristos           {
4587ede78133Schristos 	    (yyval.i).val = (yyvsp[-2].i).val | (yyvsp[0].i).val;
4588ede78133Schristos 	    (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
458975fd0b74Schristos 	  }
4590*e992f068Schristos #line 4591 "rcparse.c"
459175fd0b74Schristos     break;
459275fd0b74Schristos 
459375fd0b74Schristos 
4594*e992f068Schristos #line 4595 "rcparse.c"
4595*e992f068Schristos 
459675fd0b74Schristos       default: break;
459775fd0b74Schristos     }
4598ede78133Schristos   /* User semantic actions sometimes alter yychar, and that requires
4599ede78133Schristos      that yytoken be updated with the new translation.  We take the
4600ede78133Schristos      approach of translating immediately before every use of yytoken.
4601ede78133Schristos      One alternative is translating here after every semantic action,
4602ede78133Schristos      but that translation would be missed if the semantic action invokes
4603ede78133Schristos      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
4604ede78133Schristos      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
4605ede78133Schristos      incorrect destructor might then be invoked immediately.  In the
4606ede78133Schristos      case of YYERROR or YYBACKUP, subsequent parser actions might lead
4607ede78133Schristos      to an incorrect destructor call or verbose syntax error message
4608ede78133Schristos      before the lookahead is translated.  */
4609*e992f068Schristos   YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
461075fd0b74Schristos 
461175fd0b74Schristos   YYPOPSTACK (yylen);
461275fd0b74Schristos   yylen = 0;
461375fd0b74Schristos 
461475fd0b74Schristos   *++yyvsp = yyval;
461575fd0b74Schristos 
4616ede78133Schristos   /* Now 'shift' the result of the reduction.  Determine what state
461775fd0b74Schristos      that goes to, based on the state we popped back to and the rule
461875fd0b74Schristos      number reduced by.  */
4619*e992f068Schristos   {
4620*e992f068Schristos     const int yylhs = yyr1[yyn] - YYNTOKENS;
4621*e992f068Schristos     const int yyi = yypgoto[yylhs] + *yyssp;
4622*e992f068Schristos     yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
4623*e992f068Schristos                ? yytable[yyi]
4624*e992f068Schristos                : yydefgoto[yylhs]);
4625*e992f068Schristos   }
462675fd0b74Schristos 
462775fd0b74Schristos   goto yynewstate;
462875fd0b74Schristos 
462975fd0b74Schristos 
4630ede78133Schristos /*--------------------------------------.
4631ede78133Schristos | yyerrlab -- here on detecting error.  |
4632ede78133Schristos `--------------------------------------*/
463375fd0b74Schristos yyerrlab:
4634ede78133Schristos   /* Make sure we have latest lookahead translation.  See comments at
4635ede78133Schristos      user semantic actions for why this is necessary.  */
4636*e992f068Schristos   yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
463775fd0b74Schristos   /* If not already recovering from an error, report this error.  */
463875fd0b74Schristos   if (!yyerrstatus)
463975fd0b74Schristos     {
464075fd0b74Schristos       ++yynerrs;
464175fd0b74Schristos       yyerror (YY_("syntax error"));
464275fd0b74Schristos     }
464375fd0b74Schristos 
464475fd0b74Schristos   if (yyerrstatus == 3)
464575fd0b74Schristos     {
4646ede78133Schristos       /* If just tried and failed to reuse lookahead token after an
464775fd0b74Schristos          error, discard it.  */
464875fd0b74Schristos 
464975fd0b74Schristos       if (yychar <= YYEOF)
465075fd0b74Schristos         {
465175fd0b74Schristos           /* Return failure if at end of input.  */
465275fd0b74Schristos           if (yychar == YYEOF)
465375fd0b74Schristos             YYABORT;
465475fd0b74Schristos         }
465575fd0b74Schristos       else
465675fd0b74Schristos         {
465775fd0b74Schristos           yydestruct ("Error: discarding",
465875fd0b74Schristos                       yytoken, &yylval);
465975fd0b74Schristos           yychar = YYEMPTY;
466075fd0b74Schristos         }
466175fd0b74Schristos     }
466275fd0b74Schristos 
4663ede78133Schristos   /* Else will try to reuse lookahead token after shifting the error
466475fd0b74Schristos      token.  */
466575fd0b74Schristos   goto yyerrlab1;
466675fd0b74Schristos 
466775fd0b74Schristos 
466875fd0b74Schristos /*---------------------------------------------------.
466975fd0b74Schristos | yyerrorlab -- error raised explicitly by YYERROR.  |
467075fd0b74Schristos `---------------------------------------------------*/
467175fd0b74Schristos yyerrorlab:
4672*e992f068Schristos   /* Pacify compilers when the user code never invokes YYERROR and the
4673*e992f068Schristos      label yyerrorlab therefore never appears in user code.  */
4674*e992f068Schristos   if (0)
4675*e992f068Schristos     YYERROR;
4676*e992f068Schristos   ++yynerrs;
467775fd0b74Schristos 
4678ede78133Schristos   /* Do not reclaim the symbols of the rule whose action triggered
467975fd0b74Schristos      this YYERROR.  */
468075fd0b74Schristos   YYPOPSTACK (yylen);
468175fd0b74Schristos   yylen = 0;
468275fd0b74Schristos   YY_STACK_PRINT (yyss, yyssp);
468375fd0b74Schristos   yystate = *yyssp;
468475fd0b74Schristos   goto yyerrlab1;
468575fd0b74Schristos 
468675fd0b74Schristos 
468775fd0b74Schristos /*-------------------------------------------------------------.
468875fd0b74Schristos | yyerrlab1 -- common code for both syntax error and YYERROR.  |
468975fd0b74Schristos `-------------------------------------------------------------*/
469075fd0b74Schristos yyerrlab1:
469175fd0b74Schristos   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
469275fd0b74Schristos 
4693*e992f068Schristos   /* Pop stack until we find a state that shifts the error token.  */
469475fd0b74Schristos   for (;;)
469575fd0b74Schristos     {
469675fd0b74Schristos       yyn = yypact[yystate];
4697ede78133Schristos       if (!yypact_value_is_default (yyn))
469875fd0b74Schristos         {
4699*e992f068Schristos           yyn += YYSYMBOL_YYerror;
4700*e992f068Schristos           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
470175fd0b74Schristos             {
470275fd0b74Schristos               yyn = yytable[yyn];
470375fd0b74Schristos               if (0 < yyn)
470475fd0b74Schristos                 break;
470575fd0b74Schristos             }
470675fd0b74Schristos         }
470775fd0b74Schristos 
470875fd0b74Schristos       /* Pop the current state because it cannot handle the error token.  */
470975fd0b74Schristos       if (yyssp == yyss)
471075fd0b74Schristos         YYABORT;
471175fd0b74Schristos 
471275fd0b74Schristos 
471375fd0b74Schristos       yydestruct ("Error: popping",
4714*e992f068Schristos                   YY_ACCESSING_SYMBOL (yystate), yyvsp);
471575fd0b74Schristos       YYPOPSTACK (1);
471675fd0b74Schristos       yystate = *yyssp;
471775fd0b74Schristos       YY_STACK_PRINT (yyss, yyssp);
471875fd0b74Schristos     }
471975fd0b74Schristos 
4720ede78133Schristos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
472175fd0b74Schristos   *++yyvsp = yylval;
4722ede78133Schristos   YY_IGNORE_MAYBE_UNINITIALIZED_END
472375fd0b74Schristos 
472475fd0b74Schristos 
472575fd0b74Schristos   /* Shift the error token.  */
4726*e992f068Schristos   YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
472775fd0b74Schristos 
472875fd0b74Schristos   yystate = yyn;
472975fd0b74Schristos   goto yynewstate;
473075fd0b74Schristos 
473175fd0b74Schristos 
473275fd0b74Schristos /*-------------------------------------.
473375fd0b74Schristos | yyacceptlab -- YYACCEPT comes here.  |
473475fd0b74Schristos `-------------------------------------*/
473575fd0b74Schristos yyacceptlab:
473675fd0b74Schristos   yyresult = 0;
4737*e992f068Schristos   goto yyreturnlab;
4738*e992f068Schristos 
473975fd0b74Schristos 
474075fd0b74Schristos /*-----------------------------------.
474175fd0b74Schristos | yyabortlab -- YYABORT comes here.  |
474275fd0b74Schristos `-----------------------------------*/
474375fd0b74Schristos yyabortlab:
474475fd0b74Schristos   yyresult = 1;
4745*e992f068Schristos   goto yyreturnlab;
474675fd0b74Schristos 
4747*e992f068Schristos 
4748*e992f068Schristos /*-----------------------------------------------------------.
4749*e992f068Schristos | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
4750*e992f068Schristos `-----------------------------------------------------------*/
475175fd0b74Schristos yyexhaustedlab:
475275fd0b74Schristos   yyerror (YY_("memory exhausted"));
475375fd0b74Schristos   yyresult = 2;
4754*e992f068Schristos   goto yyreturnlab;
475575fd0b74Schristos 
4756*e992f068Schristos 
4757*e992f068Schristos /*----------------------------------------------------------.
4758*e992f068Schristos | yyreturnlab -- parsing is finished, clean up and return.  |
4759*e992f068Schristos `----------------------------------------------------------*/
4760*e992f068Schristos yyreturnlab:
4761ede78133Schristos   if (yychar != YYEMPTY)
4762ede78133Schristos     {
4763ede78133Schristos       /* Make sure we have latest lookahead translation.  See comments at
4764ede78133Schristos          user semantic actions for why this is necessary.  */
4765ede78133Schristos       yytoken = YYTRANSLATE (yychar);
476675fd0b74Schristos       yydestruct ("Cleanup: discarding lookahead",
476775fd0b74Schristos                   yytoken, &yylval);
4768ede78133Schristos     }
4769ede78133Schristos   /* Do not reclaim the symbols of the rule whose action triggered
477075fd0b74Schristos      this YYABORT or YYACCEPT.  */
477175fd0b74Schristos   YYPOPSTACK (yylen);
477275fd0b74Schristos   YY_STACK_PRINT (yyss, yyssp);
477375fd0b74Schristos   while (yyssp != yyss)
477475fd0b74Schristos     {
477575fd0b74Schristos       yydestruct ("Cleanup: popping",
4776*e992f068Schristos                   YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
477775fd0b74Schristos       YYPOPSTACK (1);
477875fd0b74Schristos     }
477975fd0b74Schristos #ifndef yyoverflow
478075fd0b74Schristos   if (yyss != yyssa)
478175fd0b74Schristos     YYSTACK_FREE (yyss);
478275fd0b74Schristos #endif
4783*e992f068Schristos 
4784ede78133Schristos   return yyresult;
478575fd0b74Schristos }
4786*e992f068Schristos 
4787*e992f068Schristos #line 2013 "rcparse.y"
478875fd0b74Schristos 
478975fd0b74Schristos 
479075fd0b74Schristos /* Set the language from the command line.  */
479175fd0b74Schristos 
479275fd0b74Schristos void
rcparse_set_language(int lang)479375fd0b74Schristos rcparse_set_language (int lang)
479475fd0b74Schristos {
479575fd0b74Schristos   language = lang;
479675fd0b74Schristos }
4797