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