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