bfd/
[binutils.git] / binutils / rcparse.c
blob5b8772716fe21e3e47807b159aae69f70ab0f522
1 /* A Bison parser, made by GNU Bison 2.3. */
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6 Free Software Foundation, Inc.
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2, or (at your option)
11 any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
23 /* As a special exception, you may create a larger work that contains
24 part or all of the Bison parser skeleton and distribute that work
25 under terms of your choice, so long as that work isn't itself a
26 parser generator using the skeleton or a modified version thereof
27 as a parser skeleton. Alternatively, if you modify or redistribute
28 the parser skeleton itself, you may (at your option) remove this
29 special exception, which will cause the skeleton and the resulting
30 Bison output files to be licensed under the GNU General Public
31 License without this special exception.
33 This special exception was added by the Free Software Foundation in
34 version 2.2 of Bison. */
36 /* C LALR(1) parser skeleton written by Richard Stallman, by
37 simplifying the original so-called "semantic" parser. */
39 /* All symbols defined below should begin with yy or YY, to avoid
40 infringing on user name space. This should be done even for local
41 variables, as they might otherwise be expanded by user macros.
42 There are some unavoidable exceptions within include files to
43 define necessary library symbols; they are noted "INFRINGES ON
44 USER NAME SPACE" below. */
46 /* Identify Bison output. */
47 #define YYBISON 1
49 /* Bison version. */
50 #define YYBISON_VERSION "2.3"
52 /* Skeleton name. */
53 #define YYSKELETON_NAME "yacc.c"
55 /* Pure parsers. */
56 #define YYPURE 0
58 /* Using locations. */
59 #define YYLSP_NEEDED 0
63 /* Tokens. */
64 #ifndef YYTOKENTYPE
65 # define YYTOKENTYPE
66 /* Put the tokens into the symbol table, so that GDB and other debuggers
67 know about them. */
68 enum yytokentype {
69 BEG = 258,
70 END = 259,
71 ACCELERATORS = 260,
72 VIRTKEY = 261,
73 ASCII = 262,
74 NOINVERT = 263,
75 SHIFT = 264,
76 CONTROL = 265,
77 ALT = 266,
78 BITMAP = 267,
79 CURSOR = 268,
80 DIALOG = 269,
81 DIALOGEX = 270,
82 EXSTYLE = 271,
83 CAPTION = 272,
84 CLASS = 273,
85 STYLE = 274,
86 AUTO3STATE = 275,
87 AUTOCHECKBOX = 276,
88 AUTORADIOBUTTON = 277,
89 CHECKBOX = 278,
90 COMBOBOX = 279,
91 CTEXT = 280,
92 DEFPUSHBUTTON = 281,
93 EDITTEXT = 282,
94 GROUPBOX = 283,
95 LISTBOX = 284,
96 LTEXT = 285,
97 PUSHBOX = 286,
98 PUSHBUTTON = 287,
99 RADIOBUTTON = 288,
100 RTEXT = 289,
101 SCROLLBAR = 290,
102 STATE3 = 291,
103 USERBUTTON = 292,
104 BEDIT = 293,
105 HEDIT = 294,
106 IEDIT = 295,
107 FONT = 296,
108 ICON = 297,
109 ANICURSOR = 298,
110 ANIICON = 299,
111 DLGINCLUDE = 300,
112 DLGINIT = 301,
113 FONTDIR = 302,
114 HTML = 303,
115 MANIFEST = 304,
116 PLUGPLAY = 305,
117 VXD = 306,
118 TOOLBAR = 307,
119 BUTTON = 308,
120 LANGUAGE = 309,
121 CHARACTERISTICS = 310,
122 VERSIONK = 311,
123 MENU = 312,
124 MENUEX = 313,
125 MENUITEM = 314,
126 SEPARATOR = 315,
127 POPUP = 316,
128 CHECKED = 317,
129 GRAYED = 318,
130 HELP = 319,
131 INACTIVE = 320,
132 MENUBARBREAK = 321,
133 MENUBREAK = 322,
134 MESSAGETABLE = 323,
135 RCDATA = 324,
136 STRINGTABLE = 325,
137 VERSIONINFO = 326,
138 FILEVERSION = 327,
139 PRODUCTVERSION = 328,
140 FILEFLAGSMASK = 329,
141 FILEFLAGS = 330,
142 FILEOS = 331,
143 FILETYPE = 332,
144 FILESUBTYPE = 333,
145 BLOCKSTRINGFILEINFO = 334,
146 BLOCKVARFILEINFO = 335,
147 VALUE = 336,
148 BLOCK = 337,
149 MOVEABLE = 338,
150 FIXED = 339,
151 PURE = 340,
152 IMPURE = 341,
153 PRELOAD = 342,
154 LOADONCALL = 343,
155 DISCARDABLE = 344,
156 NOT = 345,
157 QUOTEDUNISTRING = 346,
158 QUOTEDSTRING = 347,
159 STRING = 348,
160 NUMBER = 349,
161 SIZEDUNISTRING = 350,
162 SIZEDSTRING = 351,
163 IGNORED_TOKEN = 352,
164 NEG = 353
166 #endif
167 /* Tokens. */
168 #define BEG 258
169 #define END 259
170 #define ACCELERATORS 260
171 #define VIRTKEY 261
172 #define ASCII 262
173 #define NOINVERT 263
174 #define SHIFT 264
175 #define CONTROL 265
176 #define ALT 266
177 #define BITMAP 267
178 #define CURSOR 268
179 #define DIALOG 269
180 #define DIALOGEX 270
181 #define EXSTYLE 271
182 #define CAPTION 272
183 #define CLASS 273
184 #define STYLE 274
185 #define AUTO3STATE 275
186 #define AUTOCHECKBOX 276
187 #define AUTORADIOBUTTON 277
188 #define CHECKBOX 278
189 #define COMBOBOX 279
190 #define CTEXT 280
191 #define DEFPUSHBUTTON 281
192 #define EDITTEXT 282
193 #define GROUPBOX 283
194 #define LISTBOX 284
195 #define LTEXT 285
196 #define PUSHBOX 286
197 #define PUSHBUTTON 287
198 #define RADIOBUTTON 288
199 #define RTEXT 289
200 #define SCROLLBAR 290
201 #define STATE3 291
202 #define USERBUTTON 292
203 #define BEDIT 293
204 #define HEDIT 294
205 #define IEDIT 295
206 #define FONT 296
207 #define ICON 297
208 #define ANICURSOR 298
209 #define ANIICON 299
210 #define DLGINCLUDE 300
211 #define DLGINIT 301
212 #define FONTDIR 302
213 #define HTML 303
214 #define MANIFEST 304
215 #define PLUGPLAY 305
216 #define VXD 306
217 #define TOOLBAR 307
218 #define BUTTON 308
219 #define LANGUAGE 309
220 #define CHARACTERISTICS 310
221 #define VERSIONK 311
222 #define MENU 312
223 #define MENUEX 313
224 #define MENUITEM 314
225 #define SEPARATOR 315
226 #define POPUP 316
227 #define CHECKED 317
228 #define GRAYED 318
229 #define HELP 319
230 #define INACTIVE 320
231 #define MENUBARBREAK 321
232 #define MENUBREAK 322
233 #define MESSAGETABLE 323
234 #define RCDATA 324
235 #define STRINGTABLE 325
236 #define VERSIONINFO 326
237 #define FILEVERSION 327
238 #define PRODUCTVERSION 328
239 #define FILEFLAGSMASK 329
240 #define FILEFLAGS 330
241 #define FILEOS 331
242 #define FILETYPE 332
243 #define FILESUBTYPE 333
244 #define BLOCKSTRINGFILEINFO 334
245 #define BLOCKVARFILEINFO 335
246 #define VALUE 336
247 #define BLOCK 337
248 #define MOVEABLE 338
249 #define FIXED 339
250 #define PURE 340
251 #define IMPURE 341
252 #define PRELOAD 342
253 #define LOADONCALL 343
254 #define DISCARDABLE 344
255 #define NOT 345
256 #define QUOTEDUNISTRING 346
257 #define QUOTEDSTRING 347
258 #define STRING 348
259 #define NUMBER 349
260 #define SIZEDUNISTRING 350
261 #define SIZEDSTRING 351
262 #define IGNORED_TOKEN 352
263 #define NEG 353
268 /* Copy the first part of user declarations. */
269 #line 1 "rcparse.y"
270 /* rcparse.y -- parser for Windows rc files
271 Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2007, 2008
272 Free Software Foundation, Inc.
273 Written by Ian Lance Taylor, Cygnus Support.
274 Extended by Kai Tietz, Onevision.
276 This file is part of GNU Binutils.
278 This program is free software; you can redistribute it and/or modify
279 it under the terms of the GNU General Public License as published by
280 the Free Software Foundation; either version 3 of the License, or
281 (at your option) any later version.
283 This program is distributed in the hope that it will be useful,
284 but WITHOUT ANY WARRANTY; without even the implied warranty of
285 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
286 GNU General Public License for more details.
288 You should have received a copy of the GNU General Public License
289 along with this program; if not, write to the Free Software
290 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
291 02110-1301, USA. */
294 /* This is a parser for Windows rc files. It is based on the parser
295 by Gunther Ebert <gunther.ebert@ixos-leipzig.de>. */
297 #include "sysdep.h"
298 #include "bfd.h"
299 #include "bucomm.h"
300 #include "libiberty.h"
301 #include "windres.h"
302 #include "safe-ctype.h"
304 /* The current language. */
306 static unsigned short language;
308 /* The resource information during a sub statement. */
310 static rc_res_res_info sub_res_info;
312 /* Dialog information. This is built by the nonterminals styles and
313 controls. */
315 static rc_dialog dialog;
317 /* This is used when building a style. It is modified by the
318 nonterminal styleexpr. */
320 static unsigned long style;
322 /* These are used when building a control. They are set before using
323 control_params. */
325 static rc_uint_type base_style;
326 static rc_uint_type default_style;
327 static rc_res_id class;
328 static rc_res_id res_text_field;
329 static unichar null_unichar;
331 /* This is used for COMBOBOX, LISTBOX and EDITTEXT which
332 do not allow resource 'text' field in control definition. */
333 static const rc_res_id res_null_text = { 1, {{0, &null_unichar}}};
337 /* Enabling traces. */
338 #ifndef YYDEBUG
339 # define YYDEBUG 0
340 #endif
342 /* Enabling verbose error messages. */
343 #ifdef YYERROR_VERBOSE
344 # undef YYERROR_VERBOSE
345 # define YYERROR_VERBOSE 1
346 #else
347 # define YYERROR_VERBOSE 0
348 #endif
350 /* Enabling the token table. */
351 #ifndef YYTOKEN_TABLE
352 # define YYTOKEN_TABLE 0
353 #endif
355 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
356 typedef union YYSTYPE
357 #line 69 "rcparse.y"
359 rc_accelerator acc;
360 rc_accelerator *pacc;
361 rc_dialog_control *dialog_control;
362 rc_menuitem *menuitem;
363 struct
365 rc_rcdata_item *first;
366 rc_rcdata_item *last;
367 } rcdata;
368 rc_rcdata_item *rcdata_item;
369 rc_fixed_versioninfo *fixver;
370 rc_ver_info *verinfo;
371 rc_ver_stringinfo *verstring;
372 rc_ver_varinfo *vervar;
373 rc_toolbar_item *toobar_item;
374 rc_res_id id;
375 rc_res_res_info res_info;
376 struct
378 rc_uint_type on;
379 rc_uint_type off;
380 } memflags;
381 struct
383 rc_uint_type val;
384 /* Nonzero if this number was explicitly specified as long. */
385 int dword;
386 } i;
387 rc_uint_type il;
388 rc_uint_type is;
389 const char *s;
390 struct
392 rc_uint_type length;
393 const char *s;
394 } ss;
395 unichar *uni;
396 struct
398 rc_uint_type length;
399 const unichar *s;
400 } suni;
402 /* Line 193 of yacc.c. */
403 #line 404 "rcparse.c"
404 YYSTYPE;
405 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
406 # define YYSTYPE_IS_DECLARED 1
407 # define YYSTYPE_IS_TRIVIAL 1
408 #endif
412 /* Copy the second part of user declarations. */
415 /* Line 216 of yacc.c. */
416 #line 417 "rcparse.c"
418 #ifdef short
419 # undef short
420 #endif
422 #ifdef YYTYPE_UINT8
423 typedef YYTYPE_UINT8 yytype_uint8;
424 #else
425 typedef unsigned char yytype_uint8;
426 #endif
428 #ifdef YYTYPE_INT8
429 typedef YYTYPE_INT8 yytype_int8;
430 #elif (defined __STDC__ || defined __C99__FUNC__ \
431 || defined __cplusplus || defined _MSC_VER)
432 typedef signed char yytype_int8;
433 #else
434 typedef short int yytype_int8;
435 #endif
437 #ifdef YYTYPE_UINT16
438 typedef YYTYPE_UINT16 yytype_uint16;
439 #else
440 typedef unsigned short int yytype_uint16;
441 #endif
443 #ifdef YYTYPE_INT16
444 typedef YYTYPE_INT16 yytype_int16;
445 #else
446 typedef short int yytype_int16;
447 #endif
449 #ifndef YYSIZE_T
450 # ifdef __SIZE_TYPE__
451 # define YYSIZE_T __SIZE_TYPE__
452 # elif defined size_t
453 # define YYSIZE_T size_t
454 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
455 || defined __cplusplus || defined _MSC_VER)
456 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
457 # define YYSIZE_T size_t
458 # else
459 # define YYSIZE_T unsigned int
460 # endif
461 #endif
463 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
465 #ifndef YY_
466 # if defined YYENABLE_NLS && YYENABLE_NLS
467 # if ENABLE_NLS
468 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
469 # define YY_(msgid) dgettext ("bison-runtime", msgid)
470 # endif
471 # endif
472 # ifndef YY_
473 # define YY_(msgid) msgid
474 # endif
475 #endif
477 /* Suppress unused-variable warnings by "using" E. */
478 #if ! defined lint || defined __GNUC__
479 # define YYUSE(e) ((void) (e))
480 #else
481 # define YYUSE(e) /* empty */
482 #endif
484 /* Identity function, used to suppress warnings about constant conditions. */
485 #ifndef lint
486 # define YYID(n) (n)
487 #else
488 #if (defined __STDC__ || defined __C99__FUNC__ \
489 || defined __cplusplus || defined _MSC_VER)
490 static int
491 YYID (int i)
492 #else
493 static int
494 YYID (i)
495 int i;
496 #endif
498 return i;
500 #endif
502 #if ! defined yyoverflow || YYERROR_VERBOSE
504 /* The parser invokes alloca or malloc; define the necessary symbols. */
506 # ifdef YYSTACK_USE_ALLOCA
507 # if YYSTACK_USE_ALLOCA
508 # ifdef __GNUC__
509 # define YYSTACK_ALLOC __builtin_alloca
510 # elif defined __BUILTIN_VA_ARG_INCR
511 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
512 # elif defined _AIX
513 # define YYSTACK_ALLOC __alloca
514 # elif defined _MSC_VER
515 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
516 # define alloca _alloca
517 # else
518 # define YYSTACK_ALLOC alloca
519 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
520 || defined __cplusplus || defined _MSC_VER)
521 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
522 # ifndef _STDLIB_H
523 # define _STDLIB_H 1
524 # endif
525 # endif
526 # endif
527 # endif
528 # endif
530 # ifdef YYSTACK_ALLOC
531 /* Pacify GCC's `empty if-body' warning. */
532 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
533 # ifndef YYSTACK_ALLOC_MAXIMUM
534 /* The OS might guarantee only one guard page at the bottom of the stack,
535 and a page size can be as small as 4096 bytes. So we cannot safely
536 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
537 to allow for a few compiler-allocated temporary stack slots. */
538 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
539 # endif
540 # else
541 # define YYSTACK_ALLOC YYMALLOC
542 # define YYSTACK_FREE YYFREE
543 # ifndef YYSTACK_ALLOC_MAXIMUM
544 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
545 # endif
546 # if (defined __cplusplus && ! defined _STDLIB_H \
547 && ! ((defined YYMALLOC || defined malloc) \
548 && (defined YYFREE || defined free)))
549 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
550 # ifndef _STDLIB_H
551 # define _STDLIB_H 1
552 # endif
553 # endif
554 # ifndef YYMALLOC
555 # define YYMALLOC malloc
556 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
557 || defined __cplusplus || defined _MSC_VER)
558 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
559 # endif
560 # endif
561 # ifndef YYFREE
562 # define YYFREE free
563 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
564 || defined __cplusplus || defined _MSC_VER)
565 void free (void *); /* INFRINGES ON USER NAME SPACE */
566 # endif
567 # endif
568 # endif
569 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
572 #if (! defined yyoverflow \
573 && (! defined __cplusplus \
574 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
576 /* A type that is properly aligned for any stack member. */
577 union yyalloc
579 yytype_int16 yyss;
580 YYSTYPE yyvs;
583 /* The size of the maximum gap between one aligned stack and the next. */
584 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
586 /* The size of an array large to enough to hold all stacks, each with
587 N elements. */
588 # define YYSTACK_BYTES(N) \
589 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
590 + YYSTACK_GAP_MAXIMUM)
592 /* Copy COUNT objects from FROM to TO. The source and destination do
593 not overlap. */
594 # ifndef YYCOPY
595 # if defined __GNUC__ && 1 < __GNUC__
596 # define YYCOPY(To, From, Count) \
597 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
598 # else
599 # define YYCOPY(To, From, Count) \
600 do \
602 YYSIZE_T yyi; \
603 for (yyi = 0; yyi < (Count); yyi++) \
604 (To)[yyi] = (From)[yyi]; \
606 while (YYID (0))
607 # endif
608 # endif
610 /* Relocate STACK from its old location to the new one. The
611 local variables YYSIZE and YYSTACKSIZE give the old and new number of
612 elements in the stack, and YYPTR gives the new location of the
613 stack. Advance YYPTR to a properly aligned location for the next
614 stack. */
615 # define YYSTACK_RELOCATE(Stack) \
616 do \
618 YYSIZE_T yynewbytes; \
619 YYCOPY (&yyptr->Stack, Stack, yysize); \
620 Stack = &yyptr->Stack; \
621 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
622 yyptr += yynewbytes / sizeof (*yyptr); \
624 while (YYID (0))
626 #endif
628 /* YYFINAL -- State number of the termination state. */
629 #define YYFINAL 2
630 /* YYLAST -- Last index in YYTABLE. */
631 #define YYLAST 835
633 /* YYNTOKENS -- Number of terminals. */
634 #define YYNTOKENS 112
635 /* YYNNTS -- Number of nonterminals. */
636 #define YYNNTS 99
637 /* YYNRULES -- Number of rules. */
638 #define YYNRULES 270
639 /* YYNRULES -- Number of states. */
640 #define YYNSTATES 515
642 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
643 #define YYUNDEFTOK 2
644 #define YYMAXUTOK 353
646 #define YYTRANSLATE(YYX) \
647 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
649 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
650 static const yytype_uint8 yytranslate[] =
652 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
653 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
654 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
655 2, 2, 2, 2, 2, 2, 2, 105, 100, 2,
656 110, 111, 103, 101, 108, 102, 2, 104, 2, 2,
657 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
658 2, 109, 2, 2, 2, 2, 2, 2, 2, 2,
659 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
660 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
661 2, 2, 2, 2, 99, 2, 2, 2, 2, 2,
662 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
663 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
664 2, 2, 2, 2, 98, 2, 106, 2, 2, 2,
665 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
666 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
667 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
668 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
669 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
670 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
671 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
672 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
673 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
674 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
675 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
676 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
677 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
678 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
679 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
680 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
681 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
682 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
683 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
684 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
685 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
686 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
687 95, 96, 97, 107
690 #if YYDEBUG
691 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
692 YYRHS. */
693 static const yytype_uint16 yyprhs[] =
695 0, 0, 3, 4, 7, 10, 13, 16, 19, 22,
696 25, 28, 31, 34, 37, 40, 43, 46, 49, 56,
697 57, 60, 63, 68, 70, 72, 74, 78, 81, 83,
698 85, 87, 89, 91, 93, 98, 103, 104, 118, 119,
699 133, 134, 149, 150, 154, 155, 159, 163, 167, 171,
700 175, 181, 188, 196, 205, 209, 213, 218, 222, 223,
701 226, 227, 232, 233, 238, 239, 244, 245, 250, 251,
702 256, 257, 261, 273, 286, 287, 292, 293, 298, 299,
703 303, 304, 309, 310, 315, 322, 331, 342, 354, 355,
704 360, 361, 365, 366, 371, 372, 377, 378, 383, 384,
705 389, 390, 395, 396, 400, 401, 406, 407, 423, 430,
706 439, 449, 452, 453, 456, 458, 460, 461, 465, 466,
707 470, 471, 475, 476, 480, 485, 490, 494, 501, 502,
708 505, 510, 513, 520, 521, 525, 528, 530, 532, 534,
709 536, 538, 540, 547, 548, 551, 554, 558, 564, 567,
710 573, 580, 588, 598, 603, 604, 607, 608, 610, 612,
711 614, 616, 620, 624, 628, 631, 632, 639, 640, 644,
712 649, 652, 654, 656, 658, 660, 662, 664, 666, 668,
713 670, 672, 679, 684, 693, 694, 698, 701, 708, 709,
714 716, 723, 727, 731, 735, 739, 743, 744, 753, 761,
715 762, 768, 769, 773, 775, 777, 779, 781, 784, 786,
716 789, 790, 793, 797, 802, 806, 807, 810, 811, 814,
717 816, 818, 820, 822, 824, 826, 828, 830, 832, 834,
718 837, 839, 841, 843, 846, 848, 851, 853, 856, 860,
719 865, 867, 871, 872, 874, 877, 879, 881, 885, 888,
720 891, 895, 899, 903, 907, 911, 915, 919, 923, 926,
721 928, 930, 934, 937, 941, 945, 949, 953, 957, 961,
725 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
726 static const yytype_int16 yyrhs[] =
728 113, 0, -1, -1, 113, 114, -1, 113, 120, -1,
729 113, 121, -1, 113, 122, -1, 113, 162, -1, 113,
730 163, -1, 113, 164, -1, 113, 165, -1, 113, 170,
731 -1, 113, 173, -1, 113, 178, -1, 113, 183, -1,
732 113, 182, -1, 113, 185, -1, 113, 97, -1, 190,
733 5, 193, 3, 115, 4, -1, -1, 115, 116, -1,
734 117, 208, -1, 117, 208, 108, 118, -1, 92, -1,
735 209, -1, 119, -1, 118, 108, 119, -1, 118, 119,
736 -1, 6, -1, 7, -1, 8, -1, 9, -1, 10,
737 -1, 11, -1, 190, 12, 195, 197, -1, 190, 13,
738 194, 197, -1, -1, 190, 14, 195, 126, 209, 205,
739 205, 205, 123, 127, 3, 128, 4, -1, -1, 190,
740 15, 195, 126, 209, 205, 205, 205, 124, 127, 3,
741 128, 4, -1, -1, 190, 15, 195, 126, 209, 205,
742 205, 205, 205, 125, 127, 3, 128, 4, -1, -1,
743 16, 109, 206, -1, -1, 127, 17, 198, -1, 127,
744 18, 190, -1, 127, 19, 202, -1, 127, 16, 206,
745 -1, 127, 18, 198, -1, 127, 41, 206, 108, 198,
746 -1, 127, 41, 206, 108, 198, 205, -1, 127, 41,
747 206, 108, 198, 205, 205, -1, 127, 41, 206, 108,
748 198, 205, 205, 205, -1, 127, 57, 190, -1, 127,
749 55, 206, -1, 127, 54, 206, 205, -1, 127, 56,
750 206, -1, -1, 128, 129, -1, -1, 20, 153, 130,
751 151, -1, -1, 21, 153, 131, 151, -1, -1, 22,
752 153, 132, 151, -1, -1, 38, 153, 133, 151, -1,
753 -1, 23, 153, 134, 151, -1, -1, 24, 135, 151,
754 -1, 10, 153, 206, 152, 156, 205, 205, 205, 205,
755 204, 155, -1, 10, 153, 206, 152, 156, 205, 205,
756 205, 205, 205, 205, 155, -1, -1, 25, 153, 136,
757 151, -1, -1, 26, 153, 137, 151, -1, -1, 27,
758 138, 151, -1, -1, 28, 153, 139, 151, -1, -1,
759 39, 153, 140, 151, -1, 42, 192, 206, 205, 205,
760 155, -1, 42, 192, 206, 205, 205, 205, 205, 155,
761 -1, 42, 192, 206, 205, 205, 205, 205, 158, 204,
762 155, -1, 42, 192, 206, 205, 205, 205, 205, 158,
763 205, 205, 155, -1, -1, 40, 153, 141, 151, -1,
764 -1, 29, 142, 151, -1, -1, 30, 153, 143, 151,
765 -1, -1, 31, 153, 144, 151, -1, -1, 32, 153,
766 145, 151, -1, -1, 33, 153, 146, 151, -1, -1,
767 34, 153, 147, 151, -1, -1, 35, 148, 151, -1,
768 -1, 36, 153, 149, 151, -1, -1, 37, 192, 206,
769 108, 206, 108, 206, 108, 206, 108, 206, 108, 150,
770 202, 204, -1, 206, 205, 205, 205, 205, 155, -1,
771 206, 205, 205, 205, 205, 160, 204, 155, -1, 206,
772 205, 205, 205, 205, 160, 205, 205, 155, -1, 108,
773 154, -1, -1, 154, 108, -1, 209, -1, 198, -1,
774 -1, 3, 174, 4, -1, -1, 108, 157, 202, -1,
775 -1, 108, 159, 202, -1, -1, 108, 161, 202, -1,
776 190, 41, 194, 197, -1, 190, 42, 194, 197, -1,
777 54, 206, 205, -1, 190, 57, 193, 3, 166, 4,
778 -1, -1, 166, 167, -1, 59, 198, 205, 168, -1,
779 59, 60, -1, 61, 198, 168, 3, 166, 4, -1,
780 -1, 168, 108, 169, -1, 168, 169, -1, 62, -1,
781 63, -1, 64, -1, 65, -1, 66, -1, 67, -1,
782 190, 58, 193, 3, 171, 4, -1, -1, 171, 172,
783 -1, 59, 198, -1, 59, 198, 205, -1, 59, 198,
784 205, 205, 204, -1, 59, 60, -1, 61, 198, 3,
785 171, 4, -1, 61, 198, 205, 3, 171, 4, -1,
786 61, 198, 205, 205, 3, 171, 4, -1, 61, 198,
787 205, 205, 205, 204, 3, 171, 4, -1, 190, 68,
788 195, 197, -1, -1, 175, 176, -1, -1, 177, -1,
789 200, -1, 201, -1, 207, -1, 177, 108, 200, -1,
790 177, 108, 201, -1, 177, 108, 207, -1, 177, 108,
791 -1, -1, 70, 193, 3, 179, 180, 4, -1, -1,
792 180, 206, 198, -1, 180, 206, 108, 198, -1, 180,
793 1, -1, 190, -1, 48, -1, 69, -1, 49, -1,
794 50, -1, 51, -1, 45, -1, 46, -1, 43, -1,
795 44, -1, 190, 181, 193, 3, 174, 4, -1, 190,
796 181, 193, 197, -1, 190, 52, 193, 206, 205, 3,
797 184, 4, -1, -1, 184, 53, 190, -1, 184, 60,
798 -1, 190, 71, 186, 3, 187, 4, -1, -1, 186,
799 72, 206, 205, 205, 205, -1, 186, 73, 206, 205,
800 205, 205, -1, 186, 74, 206, -1, 186, 75, 206,
801 -1, 186, 76, 206, -1, 186, 77, 206, -1, 186,
802 78, 206, -1, -1, 187, 79, 3, 82, 3, 188,
803 4, 4, -1, 187, 80, 3, 81, 198, 189, 4,
804 -1, -1, 188, 81, 198, 108, 198, -1, -1, 189,
805 205, 205, -1, 209, -1, 191, -1, 199, -1, 93,
806 -1, 209, 108, -1, 191, -1, 191, 108, -1, -1,
807 193, 196, -1, 193, 55, 206, -1, 193, 54, 206,
808 205, -1, 193, 56, 206, -1, -1, 194, 196, -1,
809 -1, 195, 196, -1, 83, -1, 84, -1, 85, -1,
810 86, -1, 87, -1, 88, -1, 89, -1, 92, -1,
811 93, -1, 199, -1, 198, 199, -1, 91, -1, 92,
812 -1, 96, -1, 200, 96, -1, 95, -1, 201, 95,
813 -1, 203, -1, 90, 203, -1, 202, 98, 203, -1,
814 202, 98, 90, 203, -1, 94, -1, 110, 206, 111,
815 -1, -1, 205, -1, 108, 206, -1, 207, -1, 94,
816 -1, 110, 207, 111, -1, 106, 207, -1, 102, 207,
817 -1, 207, 103, 207, -1, 207, 104, 207, -1, 207,
818 105, 207, -1, 207, 101, 207, -1, 207, 102, 207,
819 -1, 207, 100, 207, -1, 207, 99, 207, -1, 207,
820 98, 207, -1, 108, 209, -1, 210, -1, 94, -1,
821 110, 207, 111, -1, 106, 207, -1, 210, 103, 207,
822 -1, 210, 104, 207, -1, 210, 105, 207, -1, 210,
823 101, 207, -1, 210, 102, 207, -1, 210, 100, 207,
824 -1, 210, 99, 207, -1, 210, 98, 207, -1
827 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
828 static const yytype_uint16 yyrline[] =
830 0, 177, 177, 179, 180, 181, 182, 183, 184, 185,
831 186, 187, 188, 189, 190, 191, 192, 193, 199, 210,
832 213, 234, 239, 251, 271, 281, 285, 290, 297, 301,
833 306, 310, 314, 318, 327, 339, 353, 351, 378, 376,
834 405, 403, 435, 438, 444, 446, 452, 456, 461, 465,
835 469, 482, 497, 512, 527, 531, 535, 539, 545, 547,
836 559, 558, 571, 570, 583, 582, 595, 594, 610, 609,
837 622, 621, 635, 646, 656, 655, 668, 667, 680, 679,
838 692, 691, 704, 703, 718, 723, 729, 735, 742, 741,
839 757, 756, 769, 768, 781, 780, 792, 791, 804, 803,
840 816, 815, 828, 827, 840, 839, 853, 851, 872, 883,
841 894, 906, 917, 920, 924, 929, 939, 942, 952, 951,
842 958, 957, 964, 963, 971, 983, 996, 1005, 1016, 1019,
843 1036, 1040, 1044, 1052, 1055, 1059, 1066, 1070, 1074, 1078,
844 1082, 1086, 1095, 1106, 1109, 1126, 1130, 1134, 1138, 1142,
845 1146, 1150, 1154, 1164, 1177, 1177, 1189, 1193, 1200, 1208,
846 1216, 1224, 1233, 1242, 1251, 1261, 1260, 1265, 1267, 1272,
847 1277, 1285, 1289, 1294, 1299, 1304, 1309, 1314, 1319, 1324,
848 1329, 1340, 1347, 1357, 1363, 1364, 1383, 1408, 1419, 1424,
849 1430, 1436, 1441, 1446, 1451, 1456, 1471, 1474, 1478, 1486,
850 1489, 1497, 1500, 1509, 1514, 1523, 1527, 1537, 1542, 1546,
851 1557, 1563, 1569, 1574, 1579, 1590, 1595, 1607, 1612, 1624,
852 1629, 1634, 1639, 1644, 1649, 1654, 1664, 1668, 1676, 1681,
853 1696, 1700, 1709, 1713, 1725, 1729, 1751, 1755, 1759, 1763,
854 1770, 1774, 1784, 1787, 1796, 1805, 1814, 1818, 1822, 1827,
855 1832, 1837, 1842, 1847, 1852, 1857, 1862, 1867, 1878, 1887,
856 1898, 1902, 1906, 1911, 1916, 1921, 1926, 1931, 1936, 1941,
857 1946
859 #endif
861 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
862 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
863 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
864 static const char *const yytname[] =
866 "$end", "error", "$undefined", "BEG", "END", "ACCELERATORS", "VIRTKEY",
867 "ASCII", "NOINVERT", "SHIFT", "CONTROL", "ALT", "BITMAP", "CURSOR",
868 "DIALOG", "DIALOGEX", "EXSTYLE", "CAPTION", "CLASS", "STYLE",
869 "AUTO3STATE", "AUTOCHECKBOX", "AUTORADIOBUTTON", "CHECKBOX", "COMBOBOX",
870 "CTEXT", "DEFPUSHBUTTON", "EDITTEXT", "GROUPBOX", "LISTBOX", "LTEXT",
871 "PUSHBOX", "PUSHBUTTON", "RADIOBUTTON", "RTEXT", "SCROLLBAR", "STATE3",
872 "USERBUTTON", "BEDIT", "HEDIT", "IEDIT", "FONT", "ICON", "ANICURSOR",
873 "ANIICON", "DLGINCLUDE", "DLGINIT", "FONTDIR", "HTML", "MANIFEST",
874 "PLUGPLAY", "VXD", "TOOLBAR", "BUTTON", "LANGUAGE", "CHARACTERISTICS",
875 "VERSIONK", "MENU", "MENUEX", "MENUITEM", "SEPARATOR", "POPUP",
876 "CHECKED", "GRAYED", "HELP", "INACTIVE", "MENUBARBREAK", "MENUBREAK",
877 "MESSAGETABLE", "RCDATA", "STRINGTABLE", "VERSIONINFO", "FILEVERSION",
878 "PRODUCTVERSION", "FILEFLAGSMASK", "FILEFLAGS", "FILEOS", "FILETYPE",
879 "FILESUBTYPE", "BLOCKSTRINGFILEINFO", "BLOCKVARFILEINFO", "VALUE",
880 "BLOCK", "MOVEABLE", "FIXED", "PURE", "IMPURE", "PRELOAD", "LOADONCALL",
881 "DISCARDABLE", "NOT", "QUOTEDUNISTRING", "QUOTEDSTRING", "STRING",
882 "NUMBER", "SIZEDUNISTRING", "SIZEDSTRING", "IGNORED_TOKEN", "'|'", "'^'",
883 "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "'~'", "NEG", "','", "'='",
884 "'('", "')'", "$accept", "input", "accelerator", "acc_entries",
885 "acc_entry", "acc_event", "acc_options", "acc_option", "bitmap",
886 "cursor", "dialog", "@1", "@2", "@3", "exstyle", "styles", "controls",
887 "control", "@4", "@5", "@6", "@7", "@8", "@9", "@10", "@11", "@12",
888 "@13", "@14", "@15", "@16", "@17", "@18", "@19", "@20", "@21", "@22",
889 "@23", "@24", "control_params", "cresid", "optresidc", "resid",
890 "opt_control_data", "control_styleexpr", "@25", "icon_styleexpr", "@26",
891 "control_params_styleexpr", "@27", "font", "icon", "language", "menu",
892 "menuitems", "menuitem", "menuitem_flags", "menuitem_flag", "menuex",
893 "menuexitems", "menuexitem", "messagetable", "optrcdata_data", "@28",
894 "optrcdata_data_int", "rcdata_data", "stringtable", "@29", "string_data",
895 "rcdata_id", "user", "toolbar", "toolbar_data", "versioninfo",
896 "fixedverinfo", "verblocks", "vervals", "vertrans", "id", "resname",
897 "resref", "suboptions", "memflags_move_discard", "memflags_move",
898 "memflag", "file_name", "res_unicode_string_concat",
899 "res_unicode_string", "sizedstring", "sizedunistring", "styleexpr",
900 "parennumber", "optcnumexpr", "cnumexpr", "numexpr", "sizednumexpr",
901 "cposnumexpr", "posnumexpr", "sizedposnumexpr", 0
903 #endif
905 # ifdef YYPRINT
906 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
907 token YYLEX-NUM. */
908 static const yytype_uint16 yytoknum[] =
910 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
911 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
912 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
913 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
914 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
915 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
916 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
917 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
918 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
919 345, 346, 347, 348, 349, 350, 351, 352, 124, 94,
920 38, 43, 45, 42, 47, 37, 126, 353, 44, 61,
921 40, 41
923 # endif
925 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
926 static const yytype_uint8 yyr1[] =
928 0, 112, 113, 113, 113, 113, 113, 113, 113, 113,
929 113, 113, 113, 113, 113, 113, 113, 113, 114, 115,
930 115, 116, 116, 117, 117, 118, 118, 118, 119, 119,
931 119, 119, 119, 119, 120, 121, 123, 122, 124, 122,
932 125, 122, 126, 126, 127, 127, 127, 127, 127, 127,
933 127, 127, 127, 127, 127, 127, 127, 127, 128, 128,
934 130, 129, 131, 129, 132, 129, 133, 129, 134, 129,
935 135, 129, 129, 129, 136, 129, 137, 129, 138, 129,
936 139, 129, 140, 129, 129, 129, 129, 129, 141, 129,
937 142, 129, 143, 129, 144, 129, 145, 129, 146, 129,
938 147, 129, 148, 129, 149, 129, 150, 129, 151, 151,
939 151, 152, 153, 153, 154, 154, 155, 155, 157, 156,
940 159, 158, 161, 160, 162, 163, 164, 165, 166, 166,
941 167, 167, 167, 168, 168, 168, 169, 169, 169, 169,
942 169, 169, 170, 171, 171, 172, 172, 172, 172, 172,
943 172, 172, 172, 173, 175, 174, 176, 176, 177, 177,
944 177, 177, 177, 177, 177, 179, 178, 180, 180, 180,
945 180, 181, 181, 181, 181, 181, 181, 181, 181, 181,
946 181, 182, 182, 183, 184, 184, 184, 185, 186, 186,
947 186, 186, 186, 186, 186, 186, 187, 187, 187, 188,
948 188, 189, 189, 190, 190, 191, 191, 192, 192, 192,
949 193, 193, 193, 193, 193, 194, 194, 195, 195, 196,
950 196, 196, 196, 196, 196, 196, 197, 197, 198, 198,
951 199, 199, 200, 200, 201, 201, 202, 202, 202, 202,
952 203, 203, 204, 204, 205, 206, 207, 207, 207, 207,
953 207, 207, 207, 207, 207, 207, 207, 207, 208, 209,
954 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
958 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
959 static const yytype_uint8 yyr2[] =
961 0, 2, 0, 2, 2, 2, 2, 2, 2, 2,
962 2, 2, 2, 2, 2, 2, 2, 2, 6, 0,
963 2, 2, 4, 1, 1, 1, 3, 2, 1, 1,
964 1, 1, 1, 1, 4, 4, 0, 13, 0, 13,
965 0, 14, 0, 3, 0, 3, 3, 3, 3, 3,
966 5, 6, 7, 8, 3, 3, 4, 3, 0, 2,
967 0, 4, 0, 4, 0, 4, 0, 4, 0, 4,
968 0, 3, 11, 12, 0, 4, 0, 4, 0, 3,
969 0, 4, 0, 4, 6, 8, 10, 11, 0, 4,
970 0, 3, 0, 4, 0, 4, 0, 4, 0, 4,
971 0, 4, 0, 3, 0, 4, 0, 15, 6, 8,
972 9, 2, 0, 2, 1, 1, 0, 3, 0, 3,
973 0, 3, 0, 3, 4, 4, 3, 6, 0, 2,
974 4, 2, 6, 0, 3, 2, 1, 1, 1, 1,
975 1, 1, 6, 0, 2, 2, 3, 5, 2, 5,
976 6, 7, 9, 4, 0, 2, 0, 1, 1, 1,
977 1, 3, 3, 3, 2, 0, 6, 0, 3, 4,
978 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
979 1, 6, 4, 8, 0, 3, 2, 6, 0, 6,
980 6, 3, 3, 3, 3, 3, 0, 8, 7, 0,
981 5, 0, 3, 1, 1, 1, 1, 2, 1, 2,
982 0, 2, 3, 4, 3, 0, 2, 0, 2, 1,
983 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
984 1, 1, 1, 2, 1, 2, 1, 2, 3, 4,
985 1, 3, 0, 1, 2, 1, 1, 3, 2, 2,
986 3, 3, 3, 3, 3, 3, 3, 3, 2, 1,
987 1, 3, 2, 3, 3, 3, 3, 3, 3, 3,
991 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
992 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
993 means the default is an error. */
994 static const yytype_uint16 yydefact[] =
996 2, 0, 1, 0, 210, 230, 231, 206, 260, 17,
997 0, 0, 3, 4, 5, 6, 7, 8, 9, 10,
998 11, 12, 13, 15, 14, 16, 0, 204, 205, 203,
999 259, 246, 0, 0, 0, 0, 245, 0, 262, 0,
1000 210, 217, 215, 217, 217, 215, 215, 179, 180, 177,
1001 178, 172, 174, 175, 176, 210, 210, 210, 217, 173,
1002 188, 210, 171, 0, 0, 0, 0, 0, 0, 0,
1003 0, 249, 248, 0, 0, 126, 0, 0, 0, 0,
1004 0, 0, 0, 0, 165, 0, 0, 0, 219, 220,
1005 221, 222, 223, 224, 225, 211, 261, 0, 0, 0,
1006 42, 42, 0, 0, 0, 0, 0, 0, 0, 0,
1007 270, 269, 268, 266, 267, 263, 264, 265, 247, 244,
1008 257, 256, 255, 253, 254, 250, 251, 252, 167, 0,
1009 212, 214, 19, 226, 227, 218, 34, 216, 35, 0,
1010 0, 0, 124, 125, 0, 128, 143, 153, 196, 0,
1011 0, 0, 0, 0, 0, 0, 154, 182, 0, 213,
1012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1013 191, 192, 193, 194, 195, 0, 156, 170, 166, 0,
1014 18, 23, 20, 0, 24, 43, 0, 0, 184, 127,
1015 0, 0, 129, 142, 0, 0, 144, 187, 0, 0,
1016 0, 0, 181, 234, 232, 155, 157, 158, 159, 160,
1017 0, 168, 228, 0, 21, 0, 0, 0, 131, 0,
1018 133, 148, 145, 0, 0, 0, 0, 0, 164, 233,
1019 235, 169, 229, 258, 0, 36, 38, 183, 0, 186,
1020 133, 0, 146, 143, 0, 0, 0, 189, 190, 161,
1021 162, 163, 28, 29, 30, 31, 32, 33, 22, 25,
1022 44, 44, 40, 185, 130, 128, 136, 137, 138, 139,
1023 140, 141, 0, 135, 242, 0, 143, 0, 199, 201,
1024 0, 27, 0, 0, 44, 0, 134, 147, 243, 149,
1025 0, 143, 242, 0, 0, 26, 58, 0, 0, 0,
1026 0, 0, 0, 0, 0, 0, 58, 0, 132, 150,
1027 0, 0, 0, 0, 198, 0, 0, 48, 45, 46,
1028 49, 205, 0, 240, 0, 47, 236, 0, 0, 55,
1029 57, 54, 0, 58, 151, 143, 197, 0, 202, 37,
1030 112, 112, 112, 112, 112, 70, 112, 112, 78, 112,
1031 90, 112, 112, 112, 112, 112, 102, 112, 0, 112,
1032 112, 112, 0, 59, 237, 0, 0, 0, 56, 39,
1033 0, 0, 0, 0, 0, 115, 114, 60, 62, 64,
1034 68, 0, 74, 76, 0, 80, 0, 92, 94, 96,
1035 98, 100, 0, 104, 208, 0, 0, 66, 82, 88,
1036 0, 241, 0, 238, 50, 41, 152, 200, 0, 113,
1037 0, 0, 0, 0, 71, 0, 0, 0, 79, 0,
1038 91, 0, 0, 0, 0, 0, 103, 0, 209, 0,
1039 207, 0, 0, 0, 0, 239, 51, 0, 0, 61,
1040 63, 65, 69, 0, 75, 77, 81, 93, 95, 97,
1041 99, 101, 105, 0, 67, 83, 89, 0, 52, 111,
1042 118, 0, 0, 0, 116, 53, 0, 0, 0, 0,
1043 154, 84, 0, 119, 0, 116, 0, 0, 116, 0,
1044 122, 108, 242, 0, 117, 120, 85, 242, 242, 0,
1045 116, 243, 0, 0, 116, 243, 116, 243, 123, 109,
1046 116, 0, 121, 86, 116, 72, 116, 110, 0, 87,
1047 73, 106, 0, 242, 107
1050 /* YYDEFGOTO[NTERM-NUM]. */
1051 static const yytype_int16 yydefgoto[] =
1053 -1, 1, 12, 160, 182, 183, 258, 259, 13, 14,
1054 15, 260, 261, 284, 140, 282, 316, 363, 410, 411,
1055 412, 431, 413, 381, 416, 417, 384, 419, 432, 433,
1056 386, 421, 422, 423, 424, 425, 392, 427, 512, 414,
1057 438, 373, 374, 471, 461, 466, 487, 493, 482, 489,
1058 16, 17, 18, 19, 165, 192, 241, 273, 20, 166,
1059 196, 21, 175, 176, 205, 206, 22, 128, 158, 61,
1060 23, 24, 217, 25, 108, 167, 293, 294, 26, 27,
1061 395, 37, 99, 98, 95, 136, 375, 212, 207, 208,
1062 325, 326, 287, 288, 415, 36, 214, 376, 30
1065 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1066 STATE-NUM. */
1067 #define YYPACT_NINF -309
1068 static const yytype_int16 yypact[] =
1070 -309, 68, -309, 338, -309, -309, -309, -309, -309, -309,
1071 338, 338, -309, -309, -309, -309, -309, -309, -309, -309,
1072 -309, -309, -309, -309, -309, -309, 458, -309, -309, -309,
1073 605, -309, 338, 338, 338, -92, 642, 230, -309, 534,
1074 -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
1075 -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
1076 -309, -309, -309, 338, 338, 338, 338, 338, 338, 338,
1077 338, -309, -309, 695, 338, -309, 338, 338, 338, 338,
1078 338, 338, 338, 338, -309, 338, 338, 338, -309, -309,
1079 -309, -309, -309, -309, -309, -309, -309, 329, 724, 724,
1080 242, 242, 724, 724, 499, 434, 457, 724, 192, 250,
1081 392, 718, 318, 174, 174, -309, -309, -309, -309, -309,
1082 392, 718, 318, 174, 174, -309, -309, -309, -309, -92,
1083 -309, -309, -309, -309, -309, -309, -309, -309, -309, -81,
1084 263, 263, -309, -309, -92, -309, -309, -309, -309, 338,
1085 338, 338, 338, 338, 338, 338, -309, -309, 6, -309,
1086 13, 338, -92, -92, 48, 8, 105, 35, -92, -92,
1087 -309, -309, -309, -309, -309, 53, 373, -309, -309, -38,
1088 -309, -309, -309, -48, -309, -309, -92, -92, -309, -309,
1089 -36, 7, -309, -309, 80, 7, -309, -309, 60, 103,
1090 -92, -92, -309, -309, -309, -309, 17, 38, 47, 642,
1091 7, 7, -309, 263, 65, -92, -92, -1, -309, 163,
1092 7, -309, 163, 12, 74, 94, -92, -92, 373, -309,
1093 -309, 7, -309, -309, 818, -309, -92, -309, 253, -309,
1094 -309, 184, -92, -309, 5, 177, 7, -309, -309, 38,
1095 47, 642, -309, -309, -309, -309, -309, -309, 25, -309,
1096 -309, -309, -309, -309, 155, -309, -309, -309, -309, -309,
1097 -309, -309, 768, -309, -92, 120, -309, 10, -309, 7,
1098 818, -309, 556, 562, -309, 137, -309, -309, -309, -309,
1099 141, -309, -92, 21, 2, -309, -309, 338, 7, 253,
1100 -46, 338, 338, 338, 338, 253, -309, 573, -309, -309,
1101 153, 188, 172, 7, -309, -92, 655, -309, 7, -309,
1102 7, 40, 27, -309, 338, 99, -309, 93, -92, -309,
1103 -309, -309, 692, -309, -309, -309, -309, 168, -309, -309,
1104 258, 258, 258, 258, 258, -309, 258, 258, -309, 258,
1105 -309, 258, 258, 258, 258, 258, -309, 258, 253, 258,
1106 258, 258, 253, -309, -309, 95, 98, 7, -309, -309,
1107 729, 173, 7, 338, 102, 7, -309, -309, -309, -309,
1108 -309, 338, -309, -309, 338, -309, 338, -309, -309, -309,
1109 -309, -309, 338, -309, 117, 338, 123, -309, -309, -309,
1110 338, -309, 27, -309, 163, -309, -309, 7, 128, -309,
1111 338, 338, 338, 338, -309, -92, 338, 338, -309, 338,
1112 -309, 338, 338, 338, 338, 338, -309, 338, -309, 131,
1113 -309, 338, 338, 338, -92, -309, -92, 258, 132, -309,
1114 -309, -309, -309, -92, -309, -309, -309, -309, -309, -309,
1115 -309, -309, -309, 338, -309, -309, -309, -92, -92, -309,
1116 -309, -92, -92, 149, 18, -309, -46, -92, -92, 338,
1117 -309, -309, -92, 99, -92, 19, 154, 203, 20, -92,
1118 -309, -309, -92, 338, -309, -309, -309, -92, -92, -46,
1119 225, -92, 165, -46, 225, -92, 225, -92, 99, -309,
1120 225, 338, 99, -309, 225, -309, 225, -309, 182, -309,
1121 -309, -309, -46, -71, -309
1124 /* YYPGOTO[NTERM-NUM]. */
1125 static const yytype_int16 yypgoto[] =
1127 -309, -309, -309, -309, -309, -309, -309, -240, -309, -309,
1128 -309, -309, -309, -309, 144, -235, -295, -309, -309, -309,
1129 -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
1130 -309, -309, -309, -309, -309, -309, -309, -309, -309, 239,
1131 -309, 431, -156, -100, -309, -309, -309, -309, -309, -309,
1132 -309, -309, -309, -309, 26, -309, 56, 39, -309, -196,
1133 -309, -309, -173, -309, -309, -309, -309, -309, -309, -309,
1134 -309, -309, -309, -309, -309, -309, -309, -309, -25, -265,
1135 -55, 232, 0, 333, 432, 375, -129, 4, 82, 84,
1136 -237, -308, -283, -33, -3, 9, -309, 3, -309
1139 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1140 positive, shift that token. If negative, reduce the rule which
1141 number is the opposite. If zero, do what YYDEFACT says.
1142 If YYTABLE_NINF, syntax error. */
1143 #define YYTABLE_NINF -229
1144 static const yytype_int16 yytable[] =
1146 35, 62, 75, 237, 29, 28, 314, 177, 276, 311,
1147 178, 332, 189, 291, 364, 243, 74, 180, 281, 38,
1148 39, 470, 470, 470, 218, 312, 283, 366, 161, 29,
1149 28, 252, 253, 254, 255, 256, 257, 74, 370, 197,
1150 295, 71, 72, 73, 322, 102, 103, 275, 323, 307,
1151 211, 188, 238, 5, 6, 5, 6, 202, 403, 239,
1152 213, 219, 220, 224, 324, 222, 223, 190, 2, 191,
1153 210, 119, 110, 111, 112, 113, 114, 115, 116, 117,
1154 290, 231, 129, 130, 131, 120, 121, 122, 123, 124,
1155 125, 126, 127, 394, 435, 310, 159, 394, 5, 6,
1156 31, 144, 313, 5, 6, 181, 225, 8, 32, 193,
1157 74, 164, 33, 74, 198, 199, 34, 279, 74, 10,
1158 74, 323, 3, 11, 289, 228, 74, 480, 485, 186,
1159 187, -228, -228, 280, 229, 200, 201, 324, 4, 371,
1160 221, 308, 230, 162, 163, 309, 168, 169, 170, 171,
1161 172, 173, 174, 215, 216, 179, 245, 334, 185, 5,
1162 6, 7, 8, 184, 194, 9, 195, 226, 227, 318,
1163 320, 5, 6, 234, 10, 246, 336, 406, 11, 194,
1164 278, 195, 235, 236, 337, 209, 240, 265, 402, 242,
1165 244, 335, 323, 247, 248, 148, 190, 366, 191, 490,
1166 194, 367, 195, 262, 494, 496, 401, 484, 324, 274,
1167 409, 277, 194, 263, 195, 232, 233, 266, 267, 268,
1168 269, 270, 271, 232, 232, 428, 232, 232, 470, 473,
1169 514, 430, 194, 84, 195, 232, 437, 251, 404, 453,
1170 460, 29, 28, 407, 292, 141, 266, 267, 268, 269,
1171 270, 271, 498, 156, 5, 6, 502, 469, 139, 5,
1172 6, 315, 483, 272, 149, 150, 151, 152, 153, 154,
1173 155, 74, 97, 501, 319, 513, 372, 81, 82, 83,
1174 331, 459, 338, 232, 85, 86, 87, 104, 105, 106,
1175 511, 285, 272, 109, 317, 368, 264, 477, 327, 328,
1176 329, 330, 29, 321, 85, 86, 87, 400, 29, 28,
1177 249, 286, 250, 88, 89, 90, 91, 92, 93, 94,
1178 0, 365, 232, 0, 232, 88, 89, 90, 91, 92,
1179 93, 94, 132, 88, 89, 90, 91, 92, 93, 94,
1180 0, 232, 133, 134, 5, 6, 7, 8, 0, 5,
1181 6, 0, 8, 0, 0, 0, 0, 8, 0, 10,
1182 0, 396, 28, 11, 10, 396, 28, 0, 11, 10,
1183 408, 436, 0, 11, 0, 481, 100, 101, 486, 232,
1184 0, 0, 443, 85, 86, 87, 0, 0, 0, 0,
1185 499, 107, 429, 0, 503, 0, 505, 434, 0, 0,
1186 507, 457, 0, 458, 509, 0, 510, 0, 232, 0,
1187 462, 232, 88, 89, 90, 91, 92, 93, 94, 79,
1188 80, 81, 82, 83, 464, 465, 0, 0, 467, 468,
1189 0, 472, 31, 0, 474, 475, 0, 145, 0, 478,
1190 32, 479, 0, 0, 33, 0, 488, 0, 34, 491,
1191 463, 0, 0, 0, 495, 497, 0, 0, 500, 0,
1192 146, 0, 504, 40, 506, 0, 476, 31, 203, 204,
1193 41, 42, 43, 44, 138, 32, 0, 142, 143, 33,
1194 492, 0, 147, 34, 157, 0, 0, 0, 85, 86,
1195 87, 77, 78, 79, 80, 81, 82, 83, 508, 45,
1196 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
1197 55, 85, 86, 87, 0, 56, 57, 88, 89, 90,
1198 91, 92, 93, 94, 0, 0, 58, 59, 0, 60,
1199 135, 137, 135, 135, 137, 137, 0, 0, 0, 135,
1200 88, 89, 90, 91, 92, 93, 94, 0, 0, 5,
1201 6, 7, 8, 85, 86, 87, 0, 0, 0, 296,
1202 0, 0, 0, 0, 10, 306, 0, 0, 11, 0,
1203 0, 0, 297, 298, 299, 300, 333, 0, 297, 298,
1204 299, 300, 88, 89, 90, 91, 92, 93, 94, 297,
1205 298, 299, 300, 31, 0, 0, 0, 301, 0, 0,
1206 0, 32, 0, 301, 0, 33, 0, 0, 0, 34,
1207 302, 303, 304, 305, 301, 0, 302, 303, 304, 305,
1208 0, 0, 0, 418, 0, 420, 0, 302, 303, 304,
1209 305, 426, 76, 77, 78, 79, 80, 81, 82, 83,
1210 0, 0, 0, 0, 0, 96, 0, 0, 0, 439,
1211 440, 441, 442, 0, 0, 444, 445, 0, 446, 339,
1212 447, 448, 449, 450, 451, 340, 452, 0, 0, 0,
1213 454, 455, 456, 0, 0, 341, 342, 343, 344, 345,
1214 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
1215 356, 357, 358, 359, 360, 361, 369, 362, 0, 0,
1216 0, 0, 340, 63, 64, 65, 66, 67, 68, 69,
1217 70, 0, 341, 342, 343, 344, 345, 346, 347, 348,
1218 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
1219 359, 360, 361, 405, 362, 0, 0, 0, 0, 340,
1220 76, 77, 78, 79, 80, 81, 82, 83, 0, 341,
1221 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
1222 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
1223 0, 362, 377, 378, 379, 380, 0, 382, 383, 0,
1224 385, 0, 387, 388, 389, 390, 391, 0, 393, 0,
1225 397, 398, 399, 76, 77, 78, 79, 80, 81, 82,
1226 83, 0, 0, 0, 0, 0, 118, 88, 89, 90,
1227 91, 92, 93, 94, 0, 0, 133, 134, 78, 79,
1228 80, 81, 82, 83, 252, 253, 254, 255, 256, 257,
1229 266, 267, 268, 269, 270, 271
1232 static const yytype_int16 yycheck[] =
1234 3, 26, 35, 4, 1, 1, 4, 1, 3, 292,
1235 4, 306, 4, 3, 322, 3, 108, 4, 258, 10,
1236 11, 3, 3, 3, 60, 4, 261, 98, 109, 26,
1237 26, 6, 7, 8, 9, 10, 11, 108, 333, 4,
1238 280, 32, 33, 34, 90, 45, 46, 243, 94, 284,
1239 179, 3, 53, 91, 92, 91, 92, 4, 366, 60,
1240 108, 190, 191, 3, 110, 194, 195, 59, 0, 61,
1241 108, 74, 63, 64, 65, 66, 67, 68, 69, 70,
1242 276, 210, 85, 86, 87, 76, 77, 78, 79, 80,
1243 81, 82, 83, 358, 402, 291, 129, 362, 91, 92,
1244 94, 104, 81, 91, 92, 92, 3, 94, 102, 4,
1245 108, 144, 106, 108, 79, 80, 110, 246, 108, 106,
1246 108, 94, 54, 110, 4, 108, 108, 108, 108, 162,
1247 163, 91, 92, 108, 96, 168, 169, 110, 70, 335,
1248 60, 4, 95, 140, 141, 4, 149, 150, 151, 152,
1249 153, 154, 155, 186, 187, 158, 82, 4, 161, 91,
1250 92, 93, 94, 160, 59, 97, 61, 200, 201, 298,
1251 299, 91, 92, 108, 106, 81, 4, 4, 110, 59,
1252 3, 61, 215, 216, 313, 176, 219, 3, 90, 222,
1253 223, 3, 94, 226, 227, 3, 59, 98, 61, 482,
1254 59, 108, 61, 236, 487, 488, 111, 4, 110, 242,
1255 108, 244, 59, 238, 61, 211, 213, 62, 63, 64,
1256 65, 66, 67, 219, 220, 108, 222, 223, 3, 466,
1257 513, 108, 59, 3, 61, 231, 108, 228, 367, 108,
1258 108, 238, 238, 372, 277, 101, 62, 63, 64, 65,
1259 66, 67, 489, 3, 91, 92, 493, 108, 16, 91,
1260 92, 294, 108, 108, 72, 73, 74, 75, 76, 77,
1261 78, 108, 40, 108, 299, 512, 108, 103, 104, 105,
1262 305, 437, 315, 279, 54, 55, 56, 55, 56, 57,
1263 108, 265, 108, 61, 297, 328, 240, 470, 301, 302,
1264 303, 304, 299, 299, 54, 55, 56, 362, 305, 305,
1265 228, 272, 228, 83, 84, 85, 86, 87, 88, 89,
1266 -1, 324, 318, -1, 320, 83, 84, 85, 86, 87,
1267 88, 89, 3, 83, 84, 85, 86, 87, 88, 89,
1268 -1, 337, 92, 93, 91, 92, 93, 94, -1, 91,
1269 92, -1, 94, -1, -1, -1, -1, 94, -1, 106,
1270 -1, 358, 358, 110, 106, 362, 362, -1, 110, 106,
1271 373, 404, -1, 110, -1, 475, 43, 44, 478, 375,
1272 -1, -1, 415, 54, 55, 56, -1, -1, -1, -1,
1273 490, 58, 395, -1, 494, -1, 496, 400, -1, -1,
1274 500, 434, -1, 436, 504, -1, 506, -1, 404, -1,
1275 443, 407, 83, 84, 85, 86, 87, 88, 89, 101,
1276 102, 103, 104, 105, 457, 458, -1, -1, 461, 462,
1277 -1, 464, 94, -1, 467, 468, -1, 3, -1, 472,
1278 102, 474, -1, -1, 106, -1, 479, -1, 110, 482,
1279 453, -1, -1, -1, 487, 488, -1, -1, 491, -1,
1280 3, -1, 495, 5, 497, -1, 469, 94, 95, 96,
1281 12, 13, 14, 15, 99, 102, -1, 102, 103, 106,
1282 483, -1, 107, 110, 109, -1, -1, -1, 54, 55,
1283 56, 99, 100, 101, 102, 103, 104, 105, 501, 41,
1284 42, 43, 44, 45, 46, -1, 48, 49, 50, 51,
1285 52, 54, 55, 56, -1, 57, 58, 83, 84, 85,
1286 86, 87, 88, 89, -1, -1, 68, 69, -1, 71,
1287 98, 99, 100, 101, 102, 103, -1, -1, -1, 107,
1288 83, 84, 85, 86, 87, 88, 89, -1, -1, 91,
1289 92, 93, 94, 54, 55, 56, -1, -1, -1, 3,
1290 -1, -1, -1, -1, 106, 3, -1, -1, 110, -1,
1291 -1, -1, 16, 17, 18, 19, 3, -1, 16, 17,
1292 18, 19, 83, 84, 85, 86, 87, 88, 89, 16,
1293 17, 18, 19, 94, -1, -1, -1, 41, -1, -1,
1294 -1, 102, -1, 41, -1, 106, -1, -1, -1, 110,
1295 54, 55, 56, 57, 41, -1, 54, 55, 56, 57,
1296 -1, -1, -1, 384, -1, 386, -1, 54, 55, 56,
1297 57, 392, 98, 99, 100, 101, 102, 103, 104, 105,
1298 -1, -1, -1, -1, -1, 111, -1, -1, -1, 410,
1299 411, 412, 413, -1, -1, 416, 417, -1, 419, 4,
1300 421, 422, 423, 424, 425, 10, 427, -1, -1, -1,
1301 431, 432, 433, -1, -1, 20, 21, 22, 23, 24,
1302 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1303 35, 36, 37, 38, 39, 40, 4, 42, -1, -1,
1304 -1, -1, 10, 98, 99, 100, 101, 102, 103, 104,
1305 105, -1, 20, 21, 22, 23, 24, 25, 26, 27,
1306 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1307 38, 39, 40, 4, 42, -1, -1, -1, -1, 10,
1308 98, 99, 100, 101, 102, 103, 104, 105, -1, 20,
1309 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1310 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1311 -1, 42, 341, 342, 343, 344, -1, 346, 347, -1,
1312 349, -1, 351, 352, 353, 354, 355, -1, 357, -1,
1313 359, 360, 361, 98, 99, 100, 101, 102, 103, 104,
1314 105, -1, -1, -1, -1, -1, 111, 83, 84, 85,
1315 86, 87, 88, 89, -1, -1, 92, 93, 100, 101,
1316 102, 103, 104, 105, 6, 7, 8, 9, 10, 11,
1317 62, 63, 64, 65, 66, 67
1320 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1321 symbol of state STATE-NUM. */
1322 static const yytype_uint8 yystos[] =
1324 0, 113, 0, 54, 70, 91, 92, 93, 94, 97,
1325 106, 110, 114, 120, 121, 122, 162, 163, 164, 165,
1326 170, 173, 178, 182, 183, 185, 190, 191, 199, 209,
1327 210, 94, 102, 106, 110, 206, 207, 193, 207, 207,
1328 5, 12, 13, 14, 15, 41, 42, 43, 44, 45,
1329 46, 48, 49, 50, 51, 52, 57, 58, 68, 69,
1330 71, 181, 190, 98, 99, 100, 101, 102, 103, 104,
1331 105, 207, 207, 207, 108, 205, 98, 99, 100, 101,
1332 102, 103, 104, 105, 3, 54, 55, 56, 83, 84,
1333 85, 86, 87, 88, 89, 196, 111, 193, 195, 194,
1334 195, 195, 194, 194, 193, 193, 193, 195, 186, 193,
1335 207, 207, 207, 207, 207, 207, 207, 207, 111, 206,
1336 207, 207, 207, 207, 207, 207, 207, 207, 179, 206,
1337 206, 206, 3, 92, 93, 196, 197, 196, 197, 16,
1338 126, 126, 197, 197, 206, 3, 3, 197, 3, 72,
1339 73, 74, 75, 76, 77, 78, 3, 197, 180, 205,
1340 115, 109, 209, 209, 205, 166, 171, 187, 206, 206,
1341 206, 206, 206, 206, 206, 174, 175, 1, 4, 206,
1342 4, 92, 116, 117, 209, 206, 205, 205, 3, 4,
1343 59, 61, 167, 4, 59, 61, 172, 4, 79, 80,
1344 205, 205, 4, 95, 96, 176, 177, 200, 201, 207,
1345 108, 198, 199, 108, 208, 205, 205, 184, 60, 198,
1346 198, 60, 198, 198, 3, 3, 205, 205, 108, 96,
1347 95, 198, 199, 209, 108, 205, 205, 4, 53, 60,
1348 205, 168, 205, 3, 205, 82, 81, 205, 205, 200,
1349 201, 207, 6, 7, 8, 9, 10, 11, 118, 119,
1350 123, 124, 205, 190, 168, 3, 62, 63, 64, 65,
1351 66, 67, 108, 169, 205, 171, 3, 205, 3, 198,
1352 108, 119, 127, 127, 125, 166, 169, 204, 205, 4,
1353 171, 3, 205, 188, 189, 119, 3, 16, 17, 18,
1354 19, 41, 54, 55, 56, 57, 3, 127, 4, 4,
1355 171, 204, 4, 81, 4, 205, 128, 206, 198, 190,
1356 198, 199, 90, 94, 110, 202, 203, 206, 206, 206,
1357 206, 190, 128, 3, 4, 3, 4, 198, 205, 4,
1358 10, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1359 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1360 39, 40, 42, 129, 203, 206, 98, 108, 205, 4,
1361 128, 171, 108, 153, 154, 198, 209, 153, 153, 153,
1362 153, 135, 153, 153, 138, 153, 142, 153, 153, 153,
1363 153, 153, 148, 153, 191, 192, 209, 153, 153, 153,
1364 192, 111, 90, 203, 198, 4, 4, 198, 206, 108,
1365 130, 131, 132, 134, 151, 206, 136, 137, 151, 139,
1366 151, 143, 144, 145, 146, 147, 151, 149, 108, 206,
1367 108, 133, 140, 141, 206, 203, 205, 108, 152, 151,
1368 151, 151, 151, 205, 151, 151, 151, 151, 151, 151,
1369 151, 151, 151, 108, 151, 151, 151, 205, 205, 154,
1370 108, 156, 205, 206, 205, 205, 157, 205, 205, 108,
1371 3, 155, 205, 202, 205, 205, 206, 174, 205, 205,
1372 108, 155, 160, 108, 4, 108, 155, 158, 205, 161,
1373 204, 205, 206, 159, 204, 205, 204, 205, 202, 155,
1374 205, 108, 202, 155, 205, 155, 205, 155, 206, 155,
1375 155, 108, 150, 202, 204
1378 #define yyerrok (yyerrstatus = 0)
1379 #define yyclearin (yychar = YYEMPTY)
1380 #define YYEMPTY (-2)
1381 #define YYEOF 0
1383 #define YYACCEPT goto yyacceptlab
1384 #define YYABORT goto yyabortlab
1385 #define YYERROR goto yyerrorlab
1388 /* Like YYERROR except do call yyerror. This remains here temporarily
1389 to ease the transition to the new meaning of YYERROR, for GCC.
1390 Once GCC version 2 has supplanted version 1, this can go. */
1392 #define YYFAIL goto yyerrlab
1394 #define YYRECOVERING() (!!yyerrstatus)
1396 #define YYBACKUP(Token, Value) \
1397 do \
1398 if (yychar == YYEMPTY && yylen == 1) \
1400 yychar = (Token); \
1401 yylval = (Value); \
1402 yytoken = YYTRANSLATE (yychar); \
1403 YYPOPSTACK (1); \
1404 goto yybackup; \
1406 else \
1408 yyerror (YY_("syntax error: cannot back up")); \
1409 YYERROR; \
1411 while (YYID (0))
1414 #define YYTERROR 1
1415 #define YYERRCODE 256
1418 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1419 If N is 0, then set CURRENT to the empty location which ends
1420 the previous symbol: RHS[0] (always defined). */
1422 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1423 #ifndef YYLLOC_DEFAULT
1424 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1425 do \
1426 if (YYID (N)) \
1428 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1429 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1430 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1431 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1433 else \
1435 (Current).first_line = (Current).last_line = \
1436 YYRHSLOC (Rhs, 0).last_line; \
1437 (Current).first_column = (Current).last_column = \
1438 YYRHSLOC (Rhs, 0).last_column; \
1440 while (YYID (0))
1441 #endif
1444 /* YY_LOCATION_PRINT -- Print the location on the stream.
1445 This macro was not mandated originally: define only if we know
1446 we won't break user code: when these are the locations we know. */
1448 #ifndef YY_LOCATION_PRINT
1449 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1450 # define YY_LOCATION_PRINT(File, Loc) \
1451 fprintf (File, "%d.%d-%d.%d", \
1452 (Loc).first_line, (Loc).first_column, \
1453 (Loc).last_line, (Loc).last_column)
1454 # else
1455 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1456 # endif
1457 #endif
1460 /* YYLEX -- calling `yylex' with the right arguments. */
1462 #ifdef YYLEX_PARAM
1463 # define YYLEX yylex (YYLEX_PARAM)
1464 #else
1465 # define YYLEX yylex ()
1466 #endif
1468 /* Enable debugging if requested. */
1469 #if YYDEBUG
1471 # ifndef YYFPRINTF
1472 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1473 # define YYFPRINTF fprintf
1474 # endif
1476 # define YYDPRINTF(Args) \
1477 do { \
1478 if (yydebug) \
1479 YYFPRINTF Args; \
1480 } while (YYID (0))
1482 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1483 do { \
1484 if (yydebug) \
1486 YYFPRINTF (stderr, "%s ", Title); \
1487 yy_symbol_print (stderr, \
1488 Type, Value); \
1489 YYFPRINTF (stderr, "\n"); \
1491 } while (YYID (0))
1494 /*--------------------------------.
1495 | Print this symbol on YYOUTPUT. |
1496 `--------------------------------*/
1498 /*ARGSUSED*/
1499 #if (defined __STDC__ || defined __C99__FUNC__ \
1500 || defined __cplusplus || defined _MSC_VER)
1501 static void
1502 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1503 #else
1504 static void
1505 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
1506 FILE *yyoutput;
1507 int yytype;
1508 YYSTYPE const * const yyvaluep;
1509 #endif
1511 if (!yyvaluep)
1512 return;
1513 # ifdef YYPRINT
1514 if (yytype < YYNTOKENS)
1515 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1516 # else
1517 YYUSE (yyoutput);
1518 # endif
1519 switch (yytype)
1521 default:
1522 break;
1527 /*--------------------------------.
1528 | Print this symbol on YYOUTPUT. |
1529 `--------------------------------*/
1531 #if (defined __STDC__ || defined __C99__FUNC__ \
1532 || defined __cplusplus || defined _MSC_VER)
1533 static void
1534 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1535 #else
1536 static void
1537 yy_symbol_print (yyoutput, yytype, yyvaluep)
1538 FILE *yyoutput;
1539 int yytype;
1540 YYSTYPE const * const yyvaluep;
1541 #endif
1543 if (yytype < YYNTOKENS)
1544 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1545 else
1546 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1548 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1549 YYFPRINTF (yyoutput, ")");
1552 /*------------------------------------------------------------------.
1553 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1554 | TOP (included). |
1555 `------------------------------------------------------------------*/
1557 #if (defined __STDC__ || defined __C99__FUNC__ \
1558 || defined __cplusplus || defined _MSC_VER)
1559 static void
1560 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
1561 #else
1562 static void
1563 yy_stack_print (bottom, top)
1564 yytype_int16 *bottom;
1565 yytype_int16 *top;
1566 #endif
1568 YYFPRINTF (stderr, "Stack now");
1569 for (; bottom <= top; ++bottom)
1570 YYFPRINTF (stderr, " %d", *bottom);
1571 YYFPRINTF (stderr, "\n");
1574 # define YY_STACK_PRINT(Bottom, Top) \
1575 do { \
1576 if (yydebug) \
1577 yy_stack_print ((Bottom), (Top)); \
1578 } while (YYID (0))
1581 /*------------------------------------------------.
1582 | Report that the YYRULE is going to be reduced. |
1583 `------------------------------------------------*/
1585 #if (defined __STDC__ || defined __C99__FUNC__ \
1586 || defined __cplusplus || defined _MSC_VER)
1587 static void
1588 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1589 #else
1590 static void
1591 yy_reduce_print (yyvsp, yyrule)
1592 YYSTYPE *yyvsp;
1593 int yyrule;
1594 #endif
1596 int yynrhs = yyr2[yyrule];
1597 int yyi;
1598 unsigned long int yylno = yyrline[yyrule];
1599 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1600 yyrule - 1, yylno);
1601 /* The symbols being reduced. */
1602 for (yyi = 0; yyi < yynrhs; yyi++)
1604 fprintf (stderr, " $%d = ", yyi + 1);
1605 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1606 &(yyvsp[(yyi + 1) - (yynrhs)])
1608 fprintf (stderr, "\n");
1612 # define YY_REDUCE_PRINT(Rule) \
1613 do { \
1614 if (yydebug) \
1615 yy_reduce_print (yyvsp, Rule); \
1616 } while (YYID (0))
1618 /* Nonzero means print parse trace. It is left uninitialized so that
1619 multiple parsers can coexist. */
1620 int yydebug;
1621 #else /* !YYDEBUG */
1622 # define YYDPRINTF(Args)
1623 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1624 # define YY_STACK_PRINT(Bottom, Top)
1625 # define YY_REDUCE_PRINT(Rule)
1626 #endif /* !YYDEBUG */
1629 /* YYINITDEPTH -- initial size of the parser's stacks. */
1630 #ifndef YYINITDEPTH
1631 # define YYINITDEPTH 200
1632 #endif
1634 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1635 if the built-in stack extension method is used).
1637 Do not make this value too large; the results are undefined if
1638 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1639 evaluated with infinite-precision integer arithmetic. */
1641 #ifndef YYMAXDEPTH
1642 # define YYMAXDEPTH 10000
1643 #endif
1647 #if YYERROR_VERBOSE
1649 # ifndef yystrlen
1650 # if defined __GLIBC__ && defined _STRING_H
1651 # define yystrlen strlen
1652 # else
1653 /* Return the length of YYSTR. */
1654 #if (defined __STDC__ || defined __C99__FUNC__ \
1655 || defined __cplusplus || defined _MSC_VER)
1656 static YYSIZE_T
1657 yystrlen (const char *yystr)
1658 #else
1659 static YYSIZE_T
1660 yystrlen (yystr)
1661 const char *yystr;
1662 #endif
1664 YYSIZE_T yylen;
1665 for (yylen = 0; yystr[yylen]; yylen++)
1666 continue;
1667 return yylen;
1669 # endif
1670 # endif
1672 # ifndef yystpcpy
1673 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1674 # define yystpcpy stpcpy
1675 # else
1676 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1677 YYDEST. */
1678 #if (defined __STDC__ || defined __C99__FUNC__ \
1679 || defined __cplusplus || defined _MSC_VER)
1680 static char *
1681 yystpcpy (char *yydest, const char *yysrc)
1682 #else
1683 static char *
1684 yystpcpy (yydest, yysrc)
1685 char *yydest;
1686 const char *yysrc;
1687 #endif
1689 char *yyd = yydest;
1690 const char *yys = yysrc;
1692 while ((*yyd++ = *yys++) != '\0')
1693 continue;
1695 return yyd - 1;
1697 # endif
1698 # endif
1700 # ifndef yytnamerr
1701 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1702 quotes and backslashes, so that it's suitable for yyerror. The
1703 heuristic is that double-quoting is unnecessary unless the string
1704 contains an apostrophe, a comma, or backslash (other than
1705 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1706 null, do not copy; instead, return the length of what the result
1707 would have been. */
1708 static YYSIZE_T
1709 yytnamerr (char *yyres, const char *yystr)
1711 if (*yystr == '"')
1713 YYSIZE_T yyn = 0;
1714 char const *yyp = yystr;
1716 for (;;)
1717 switch (*++yyp)
1719 case '\'':
1720 case ',':
1721 goto do_not_strip_quotes;
1723 case '\\':
1724 if (*++yyp != '\\')
1725 goto do_not_strip_quotes;
1726 /* Fall through. */
1727 default:
1728 if (yyres)
1729 yyres[yyn] = *yyp;
1730 yyn++;
1731 break;
1733 case '"':
1734 if (yyres)
1735 yyres[yyn] = '\0';
1736 return yyn;
1738 do_not_strip_quotes: ;
1741 if (! yyres)
1742 return yystrlen (yystr);
1744 return yystpcpy (yyres, yystr) - yyres;
1746 # endif
1748 /* Copy into YYRESULT an error message about the unexpected token
1749 YYCHAR while in state YYSTATE. Return the number of bytes copied,
1750 including the terminating null byte. If YYRESULT is null, do not
1751 copy anything; just return the number of bytes that would be
1752 copied. As a special case, return 0 if an ordinary "syntax error"
1753 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
1754 size calculation. */
1755 static YYSIZE_T
1756 yysyntax_error (char *yyresult, int yystate, int yychar)
1758 int yyn = yypact[yystate];
1760 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1761 return 0;
1762 else
1764 int yytype = YYTRANSLATE (yychar);
1765 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1766 YYSIZE_T yysize = yysize0;
1767 YYSIZE_T yysize1;
1768 int yysize_overflow = 0;
1769 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1770 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1771 int yyx;
1773 # if 0
1774 /* This is so xgettext sees the translatable formats that are
1775 constructed on the fly. */
1776 YY_("syntax error, unexpected %s");
1777 YY_("syntax error, unexpected %s, expecting %s");
1778 YY_("syntax error, unexpected %s, expecting %s or %s");
1779 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1780 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1781 # endif
1782 char *yyfmt;
1783 char const *yyf;
1784 static char const yyunexpected[] = "syntax error, unexpected %s";
1785 static char const yyexpecting[] = ", expecting %s";
1786 static char const yyor[] = " or %s";
1787 char yyformat[sizeof yyunexpected
1788 + sizeof yyexpecting - 1
1789 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1790 * (sizeof yyor - 1))];
1791 char const *yyprefix = yyexpecting;
1793 /* Start YYX at -YYN if negative to avoid negative indexes in
1794 YYCHECK. */
1795 int yyxbegin = yyn < 0 ? -yyn : 0;
1797 /* Stay within bounds of both yycheck and yytname. */
1798 int yychecklim = YYLAST - yyn + 1;
1799 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1800 int yycount = 1;
1802 yyarg[0] = yytname[yytype];
1803 yyfmt = yystpcpy (yyformat, yyunexpected);
1805 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1806 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1808 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1810 yycount = 1;
1811 yysize = yysize0;
1812 yyformat[sizeof yyunexpected - 1] = '\0';
1813 break;
1815 yyarg[yycount++] = yytname[yyx];
1816 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1817 yysize_overflow |= (yysize1 < yysize);
1818 yysize = yysize1;
1819 yyfmt = yystpcpy (yyfmt, yyprefix);
1820 yyprefix = yyor;
1823 yyf = YY_(yyformat);
1824 yysize1 = yysize + yystrlen (yyf);
1825 yysize_overflow |= (yysize1 < yysize);
1826 yysize = yysize1;
1828 if (yysize_overflow)
1829 return YYSIZE_MAXIMUM;
1831 if (yyresult)
1833 /* Avoid sprintf, as that infringes on the user's name space.
1834 Don't have undefined behavior even if the translation
1835 produced a string with the wrong number of "%s"s. */
1836 char *yyp = yyresult;
1837 int yyi = 0;
1838 while ((*yyp = *yyf) != '\0')
1840 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1842 yyp += yytnamerr (yyp, yyarg[yyi++]);
1843 yyf += 2;
1845 else
1847 yyp++;
1848 yyf++;
1852 return yysize;
1855 #endif /* YYERROR_VERBOSE */
1858 /*-----------------------------------------------.
1859 | Release the memory associated to this symbol. |
1860 `-----------------------------------------------*/
1862 /*ARGSUSED*/
1863 #if (defined __STDC__ || defined __C99__FUNC__ \
1864 || defined __cplusplus || defined _MSC_VER)
1865 static void
1866 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1867 #else
1868 static void
1869 yydestruct (yymsg, yytype, yyvaluep)
1870 const char *yymsg;
1871 int yytype;
1872 YYSTYPE *yyvaluep;
1873 #endif
1875 YYUSE (yyvaluep);
1877 if (!yymsg)
1878 yymsg = "Deleting";
1879 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1881 switch (yytype)
1884 default:
1885 break;
1890 /* Prevent warnings from -Wmissing-prototypes. */
1892 #ifdef YYPARSE_PARAM
1893 #if defined __STDC__ || defined __cplusplus
1894 int yyparse (void *YYPARSE_PARAM);
1895 #else
1896 int yyparse ();
1897 #endif
1898 #else /* ! YYPARSE_PARAM */
1899 #if defined __STDC__ || defined __cplusplus
1900 int yyparse (void);
1901 #else
1902 int yyparse ();
1903 #endif
1904 #endif /* ! YYPARSE_PARAM */
1908 /* The look-ahead symbol. */
1909 int yychar;
1911 /* The semantic value of the look-ahead symbol. */
1912 YYSTYPE yylval;
1914 /* Number of syntax errors so far. */
1915 int yynerrs;
1919 /*----------.
1920 | yyparse. |
1921 `----------*/
1923 #ifdef YYPARSE_PARAM
1924 #if (defined __STDC__ || defined __C99__FUNC__ \
1925 || defined __cplusplus || defined _MSC_VER)
1927 yyparse (void *YYPARSE_PARAM)
1928 #else
1930 yyparse (YYPARSE_PARAM)
1931 void *YYPARSE_PARAM;
1932 #endif
1933 #else /* ! YYPARSE_PARAM */
1934 #if (defined __STDC__ || defined __C99__FUNC__ \
1935 || defined __cplusplus || defined _MSC_VER)
1937 yyparse (void)
1938 #else
1940 yyparse ()
1942 #endif
1943 #endif
1946 int yystate;
1947 int yyn;
1948 int yyresult;
1949 /* Number of tokens to shift before error messages enabled. */
1950 int yyerrstatus;
1951 /* Look-ahead token as an internal (translated) token number. */
1952 int yytoken = 0;
1953 #if YYERROR_VERBOSE
1954 /* Buffer for error messages, and its allocated size. */
1955 char yymsgbuf[128];
1956 char *yymsg = yymsgbuf;
1957 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1958 #endif
1960 /* Three stacks and their tools:
1961 `yyss': related to states,
1962 `yyvs': related to semantic values,
1963 `yyls': related to locations.
1965 Refer to the stacks thru separate pointers, to allow yyoverflow
1966 to reallocate them elsewhere. */
1968 /* The state stack. */
1969 yytype_int16 yyssa[YYINITDEPTH];
1970 yytype_int16 *yyss = yyssa;
1971 yytype_int16 *yyssp;
1973 /* The semantic value stack. */
1974 YYSTYPE yyvsa[YYINITDEPTH];
1975 YYSTYPE *yyvs = yyvsa;
1976 YYSTYPE *yyvsp;
1980 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1982 YYSIZE_T yystacksize = YYINITDEPTH;
1984 /* The variables used to return semantic value and location from the
1985 action routines. */
1986 YYSTYPE yyval;
1989 /* The number of symbols on the RHS of the reduced rule.
1990 Keep to zero when no symbol should be popped. */
1991 int yylen = 0;
1993 YYDPRINTF ((stderr, "Starting parse\n"));
1995 yystate = 0;
1996 yyerrstatus = 0;
1997 yynerrs = 0;
1998 yychar = YYEMPTY; /* Cause a token to be read. */
2000 /* Initialize stack pointers.
2001 Waste one element of value and location stack
2002 so that they stay on the same level as the state stack.
2003 The wasted elements are never initialized. */
2005 yyssp = yyss;
2006 yyvsp = yyvs;
2008 goto yysetstate;
2010 /*------------------------------------------------------------.
2011 | yynewstate -- Push a new state, which is found in yystate. |
2012 `------------------------------------------------------------*/
2013 yynewstate:
2014 /* In all cases, when you get here, the value and location stacks
2015 have just been pushed. So pushing a state here evens the stacks. */
2016 yyssp++;
2018 yysetstate:
2019 *yyssp = yystate;
2021 if (yyss + yystacksize - 1 <= yyssp)
2023 /* Get the current used size of the three stacks, in elements. */
2024 YYSIZE_T yysize = yyssp - yyss + 1;
2026 #ifdef yyoverflow
2028 /* Give user a chance to reallocate the stack. Use copies of
2029 these so that the &'s don't force the real ones into
2030 memory. */
2031 YYSTYPE *yyvs1 = yyvs;
2032 yytype_int16 *yyss1 = yyss;
2035 /* Each stack pointer address is followed by the size of the
2036 data in use in that stack, in bytes. This used to be a
2037 conditional around just the two extra args, but that might
2038 be undefined if yyoverflow is a macro. */
2039 yyoverflow (YY_("memory exhausted"),
2040 &yyss1, yysize * sizeof (*yyssp),
2041 &yyvs1, yysize * sizeof (*yyvsp),
2043 &yystacksize);
2045 yyss = yyss1;
2046 yyvs = yyvs1;
2048 #else /* no yyoverflow */
2049 # ifndef YYSTACK_RELOCATE
2050 goto yyexhaustedlab;
2051 # else
2052 /* Extend the stack our own way. */
2053 if (YYMAXDEPTH <= yystacksize)
2054 goto yyexhaustedlab;
2055 yystacksize *= 2;
2056 if (YYMAXDEPTH < yystacksize)
2057 yystacksize = YYMAXDEPTH;
2060 yytype_int16 *yyss1 = yyss;
2061 union yyalloc *yyptr =
2062 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2063 if (! yyptr)
2064 goto yyexhaustedlab;
2065 YYSTACK_RELOCATE (yyss);
2066 YYSTACK_RELOCATE (yyvs);
2068 # undef YYSTACK_RELOCATE
2069 if (yyss1 != yyssa)
2070 YYSTACK_FREE (yyss1);
2072 # endif
2073 #endif /* no yyoverflow */
2075 yyssp = yyss + yysize - 1;
2076 yyvsp = yyvs + yysize - 1;
2079 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2080 (unsigned long int) yystacksize));
2082 if (yyss + yystacksize - 1 <= yyssp)
2083 YYABORT;
2086 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2088 goto yybackup;
2090 /*-----------.
2091 | yybackup. |
2092 `-----------*/
2093 yybackup:
2095 /* Do appropriate processing given the current state. Read a
2096 look-ahead token if we need one and don't already have one. */
2098 /* First try to decide what to do without reference to look-ahead token. */
2099 yyn = yypact[yystate];
2100 if (yyn == YYPACT_NINF)
2101 goto yydefault;
2103 /* Not known => get a look-ahead token if don't already have one. */
2105 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
2106 if (yychar == YYEMPTY)
2108 YYDPRINTF ((stderr, "Reading a token: "));
2109 yychar = YYLEX;
2112 if (yychar <= YYEOF)
2114 yychar = yytoken = YYEOF;
2115 YYDPRINTF ((stderr, "Now at end of input.\n"));
2117 else
2119 yytoken = YYTRANSLATE (yychar);
2120 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2123 /* If the proper action on seeing token YYTOKEN is to reduce or to
2124 detect an error, take that action. */
2125 yyn += yytoken;
2126 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2127 goto yydefault;
2128 yyn = yytable[yyn];
2129 if (yyn <= 0)
2131 if (yyn == 0 || yyn == YYTABLE_NINF)
2132 goto yyerrlab;
2133 yyn = -yyn;
2134 goto yyreduce;
2137 if (yyn == YYFINAL)
2138 YYACCEPT;
2140 /* Count tokens shifted since error; after three, turn off error
2141 status. */
2142 if (yyerrstatus)
2143 yyerrstatus--;
2145 /* Shift the look-ahead token. */
2146 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2148 /* Discard the shifted token unless it is eof. */
2149 if (yychar != YYEOF)
2150 yychar = YYEMPTY;
2152 yystate = yyn;
2153 *++yyvsp = yylval;
2155 goto yynewstate;
2158 /*-----------------------------------------------------------.
2159 | yydefault -- do the default action for the current state. |
2160 `-----------------------------------------------------------*/
2161 yydefault:
2162 yyn = yydefact[yystate];
2163 if (yyn == 0)
2164 goto yyerrlab;
2165 goto yyreduce;
2168 /*-----------------------------.
2169 | yyreduce -- Do a reduction. |
2170 `-----------------------------*/
2171 yyreduce:
2172 /* yyn is the number of a rule to reduce with. */
2173 yylen = yyr2[yyn];
2175 /* If YYLEN is nonzero, implement the default value of the action:
2176 `$$ = $1'.
2178 Otherwise, the following line sets YYVAL to garbage.
2179 This behavior is undocumented and Bison
2180 users should not rely upon it. Assigning to YYVAL
2181 unconditionally makes the parser a bit smaller, and it avoids a
2182 GCC warning that YYVAL may be used uninitialized. */
2183 yyval = yyvsp[1-yylen];
2186 YY_REDUCE_PRINT (yyn);
2187 switch (yyn)
2189 case 18:
2190 #line 200 "rcparse.y"
2192 define_accelerator ((yyvsp[(1) - (6)].id), &(yyvsp[(3) - (6)].res_info), (yyvsp[(5) - (6)].pacc));
2193 if (yychar != YYEMPTY)
2194 YYERROR;
2195 rcparse_discard_strings ();
2197 break;
2199 case 19:
2200 #line 210 "rcparse.y"
2202 (yyval.pacc) = NULL;
2204 break;
2206 case 20:
2207 #line 214 "rcparse.y"
2209 rc_accelerator *a;
2211 a = (rc_accelerator *) res_alloc (sizeof *a);
2212 *a = (yyvsp[(2) - (2)].acc);
2213 if ((yyvsp[(1) - (2)].pacc) == NULL)
2214 (yyval.pacc) = a;
2215 else
2217 rc_accelerator **pp;
2219 for (pp = &(yyvsp[(1) - (2)].pacc)->next; *pp != NULL; pp = &(*pp)->next)
2221 *pp = a;
2222 (yyval.pacc) = (yyvsp[(1) - (2)].pacc);
2225 break;
2227 case 21:
2228 #line 235 "rcparse.y"
2230 (yyval.acc) = (yyvsp[(1) - (2)].acc);
2231 (yyval.acc).id = (yyvsp[(2) - (2)].il);
2233 break;
2235 case 22:
2236 #line 240 "rcparse.y"
2238 (yyval.acc) = (yyvsp[(1) - (4)].acc);
2239 (yyval.acc).id = (yyvsp[(2) - (4)].il);
2240 (yyval.acc).flags |= (yyvsp[(4) - (4)].is);
2241 if (((yyval.acc).flags & ACC_VIRTKEY) == 0
2242 && ((yyval.acc).flags & (ACC_SHIFT | ACC_CONTROL)) != 0)
2243 rcparse_warning (_("inappropriate modifiers for non-VIRTKEY"));
2245 break;
2247 case 23:
2248 #line 252 "rcparse.y"
2250 const char *s = (yyvsp[(1) - (1)].s);
2251 char ch;
2253 (yyval.acc).next = NULL;
2254 (yyval.acc).id = 0;
2255 ch = *s;
2256 if (ch != '^')
2257 (yyval.acc).flags = 0;
2258 else
2260 (yyval.acc).flags = ACC_CONTROL | ACC_VIRTKEY;
2261 ++s;
2262 ch = TOUPPER (s[0]);
2264 (yyval.acc).key = ch;
2265 if (s[1] != '\0')
2266 rcparse_warning (_("accelerator should only be one character"));
2268 break;
2270 case 24:
2271 #line 272 "rcparse.y"
2273 (yyval.acc).next = NULL;
2274 (yyval.acc).flags = 0;
2275 (yyval.acc).id = 0;
2276 (yyval.acc).key = (yyvsp[(1) - (1)].il);
2278 break;
2280 case 25:
2281 #line 282 "rcparse.y"
2283 (yyval.is) = (yyvsp[(1) - (1)].is);
2285 break;
2287 case 26:
2288 #line 286 "rcparse.y"
2290 (yyval.is) = (yyvsp[(1) - (3)].is) | (yyvsp[(3) - (3)].is);
2292 break;
2294 case 27:
2295 #line 291 "rcparse.y"
2297 (yyval.is) = (yyvsp[(1) - (2)].is) | (yyvsp[(2) - (2)].is);
2299 break;
2301 case 28:
2302 #line 298 "rcparse.y"
2304 (yyval.is) = ACC_VIRTKEY;
2306 break;
2308 case 29:
2309 #line 302 "rcparse.y"
2311 /* This is just the absence of VIRTKEY. */
2312 (yyval.is) = 0;
2314 break;
2316 case 30:
2317 #line 307 "rcparse.y"
2319 (yyval.is) = ACC_NOINVERT;
2321 break;
2323 case 31:
2324 #line 311 "rcparse.y"
2326 (yyval.is) = ACC_SHIFT;
2328 break;
2330 case 32:
2331 #line 315 "rcparse.y"
2333 (yyval.is) = ACC_CONTROL;
2335 break;
2337 case 33:
2338 #line 319 "rcparse.y"
2340 (yyval.is) = ACC_ALT;
2342 break;
2344 case 34:
2345 #line 328 "rcparse.y"
2347 define_bitmap ((yyvsp[(1) - (4)].id), &(yyvsp[(3) - (4)].res_info), (yyvsp[(4) - (4)].s));
2348 if (yychar != YYEMPTY)
2349 YYERROR;
2350 rcparse_discard_strings ();
2352 break;
2354 case 35:
2355 #line 340 "rcparse.y"
2357 define_cursor ((yyvsp[(1) - (4)].id), &(yyvsp[(3) - (4)].res_info), (yyvsp[(4) - (4)].s));
2358 if (yychar != YYEMPTY)
2359 YYERROR;
2360 rcparse_discard_strings ();
2362 break;
2364 case 36:
2365 #line 353 "rcparse.y"
2367 memset (&dialog, 0, sizeof dialog);
2368 dialog.x = (yyvsp[(5) - (8)].il);
2369 dialog.y = (yyvsp[(6) - (8)].il);
2370 dialog.width = (yyvsp[(7) - (8)].il);
2371 dialog.height = (yyvsp[(8) - (8)].il);
2372 dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU;
2373 dialog.exstyle = (yyvsp[(4) - (8)].il);
2374 dialog.menu.named = 1;
2375 dialog.class.named = 1;
2376 dialog.font = NULL;
2377 dialog.ex = NULL;
2378 dialog.controls = NULL;
2379 sub_res_info = (yyvsp[(3) - (8)].res_info);
2380 style = 0;
2382 break;
2384 case 37:
2385 #line 370 "rcparse.y"
2387 define_dialog ((yyvsp[(1) - (13)].id), &sub_res_info, &dialog);
2388 if (yychar != YYEMPTY)
2389 YYERROR;
2390 rcparse_discard_strings ();
2392 break;
2394 case 38:
2395 #line 378 "rcparse.y"
2397 memset (&dialog, 0, sizeof dialog);
2398 dialog.x = (yyvsp[(5) - (8)].il);
2399 dialog.y = (yyvsp[(6) - (8)].il);
2400 dialog.width = (yyvsp[(7) - (8)].il);
2401 dialog.height = (yyvsp[(8) - (8)].il);
2402 dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU;
2403 dialog.exstyle = (yyvsp[(4) - (8)].il);
2404 dialog.menu.named = 1;
2405 dialog.class.named = 1;
2406 dialog.font = NULL;
2407 dialog.ex = ((rc_dialog_ex *)
2408 res_alloc (sizeof (rc_dialog_ex)));
2409 memset (dialog.ex, 0, sizeof (rc_dialog_ex));
2410 dialog.controls = NULL;
2411 sub_res_info = (yyvsp[(3) - (8)].res_info);
2412 style = 0;
2414 break;
2416 case 39:
2417 #line 397 "rcparse.y"
2419 define_dialog ((yyvsp[(1) - (13)].id), &sub_res_info, &dialog);
2420 if (yychar != YYEMPTY)
2421 YYERROR;
2422 rcparse_discard_strings ();
2424 break;
2426 case 40:
2427 #line 405 "rcparse.y"
2429 memset (&dialog, 0, sizeof dialog);
2430 dialog.x = (yyvsp[(5) - (9)].il);
2431 dialog.y = (yyvsp[(6) - (9)].il);
2432 dialog.width = (yyvsp[(7) - (9)].il);
2433 dialog.height = (yyvsp[(8) - (9)].il);
2434 dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU;
2435 dialog.exstyle = (yyvsp[(4) - (9)].il);
2436 dialog.menu.named = 1;
2437 dialog.class.named = 1;
2438 dialog.font = NULL;
2439 dialog.ex = ((rc_dialog_ex *)
2440 res_alloc (sizeof (rc_dialog_ex)));
2441 memset (dialog.ex, 0, sizeof (rc_dialog_ex));
2442 dialog.ex->help = (yyvsp[(9) - (9)].il);
2443 dialog.controls = NULL;
2444 sub_res_info = (yyvsp[(3) - (9)].res_info);
2445 style = 0;
2447 break;
2449 case 41:
2450 #line 425 "rcparse.y"
2452 define_dialog ((yyvsp[(1) - (14)].id), &sub_res_info, &dialog);
2453 if (yychar != YYEMPTY)
2454 YYERROR;
2455 rcparse_discard_strings ();
2457 break;
2459 case 42:
2460 #line 435 "rcparse.y"
2462 (yyval.il) = 0;
2464 break;
2466 case 43:
2467 #line 439 "rcparse.y"
2469 (yyval.il) = (yyvsp[(3) - (3)].il);
2471 break;
2473 case 45:
2474 #line 447 "rcparse.y"
2476 dialog.style |= WS_CAPTION;
2477 style |= WS_CAPTION;
2478 dialog.caption = (yyvsp[(3) - (3)].uni);
2480 break;
2482 case 46:
2483 #line 453 "rcparse.y"
2485 dialog.class = (yyvsp[(3) - (3)].id);
2487 break;
2489 case 47:
2490 #line 458 "rcparse.y"
2492 dialog.style = style;
2494 break;
2496 case 48:
2497 #line 462 "rcparse.y"
2499 dialog.exstyle = (yyvsp[(3) - (3)].il);
2501 break;
2503 case 49:
2504 #line 466 "rcparse.y"
2506 res_unistring_to_id (& dialog.class, (yyvsp[(3) - (3)].uni));
2508 break;
2510 case 50:
2511 #line 470 "rcparse.y"
2513 dialog.style |= DS_SETFONT;
2514 style |= DS_SETFONT;
2515 dialog.pointsize = (yyvsp[(3) - (5)].il);
2516 dialog.font = (yyvsp[(5) - (5)].uni);
2517 if (dialog.ex != NULL)
2519 dialog.ex->weight = 0;
2520 dialog.ex->italic = 0;
2521 dialog.ex->charset = 1;
2524 break;
2526 case 51:
2527 #line 483 "rcparse.y"
2529 dialog.style |= DS_SETFONT;
2530 style |= DS_SETFONT;
2531 dialog.pointsize = (yyvsp[(3) - (6)].il);
2532 dialog.font = (yyvsp[(5) - (6)].uni);
2533 if (dialog.ex == NULL)
2534 rcparse_warning (_("extended FONT requires DIALOGEX"));
2535 else
2537 dialog.ex->weight = (yyvsp[(6) - (6)].il);
2538 dialog.ex->italic = 0;
2539 dialog.ex->charset = 1;
2542 break;
2544 case 52:
2545 #line 498 "rcparse.y"
2547 dialog.style |= DS_SETFONT;
2548 style |= DS_SETFONT;
2549 dialog.pointsize = (yyvsp[(3) - (7)].il);
2550 dialog.font = (yyvsp[(5) - (7)].uni);
2551 if (dialog.ex == NULL)
2552 rcparse_warning (_("extended FONT requires DIALOGEX"));
2553 else
2555 dialog.ex->weight = (yyvsp[(6) - (7)].il);
2556 dialog.ex->italic = (yyvsp[(7) - (7)].il);
2557 dialog.ex->charset = 1;
2560 break;
2562 case 53:
2563 #line 513 "rcparse.y"
2565 dialog.style |= DS_SETFONT;
2566 style |= DS_SETFONT;
2567 dialog.pointsize = (yyvsp[(3) - (8)].il);
2568 dialog.font = (yyvsp[(5) - (8)].uni);
2569 if (dialog.ex == NULL)
2570 rcparse_warning (_("extended FONT requires DIALOGEX"));
2571 else
2573 dialog.ex->weight = (yyvsp[(6) - (8)].il);
2574 dialog.ex->italic = (yyvsp[(7) - (8)].il);
2575 dialog.ex->charset = (yyvsp[(8) - (8)].il);
2578 break;
2580 case 54:
2581 #line 528 "rcparse.y"
2583 dialog.menu = (yyvsp[(3) - (3)].id);
2585 break;
2587 case 55:
2588 #line 532 "rcparse.y"
2590 sub_res_info.characteristics = (yyvsp[(3) - (3)].il);
2592 break;
2594 case 56:
2595 #line 536 "rcparse.y"
2597 sub_res_info.language = (yyvsp[(3) - (4)].il) | ((yyvsp[(4) - (4)].il) << SUBLANG_SHIFT);
2599 break;
2601 case 57:
2602 #line 540 "rcparse.y"
2604 sub_res_info.version = (yyvsp[(3) - (3)].il);
2606 break;
2608 case 59:
2609 #line 548 "rcparse.y"
2611 rc_dialog_control **pp;
2613 for (pp = &dialog.controls; *pp != NULL; pp = &(*pp)->next)
2615 *pp = (yyvsp[(2) - (2)].dialog_control);
2617 break;
2619 case 60:
2620 #line 559 "rcparse.y"
2622 default_style = BS_AUTO3STATE | WS_TABSTOP;
2623 base_style = BS_AUTO3STATE;
2624 class.named = 0;
2625 class.u.id = CTL_BUTTON;
2626 res_text_field = (yyvsp[(2) - (2)].id);
2628 break;
2630 case 61:
2631 #line 567 "rcparse.y"
2633 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
2635 break;
2637 case 62:
2638 #line 571 "rcparse.y"
2640 default_style = BS_AUTOCHECKBOX | WS_TABSTOP;
2641 base_style = BS_AUTOCHECKBOX;
2642 class.named = 0;
2643 class.u.id = CTL_BUTTON;
2644 res_text_field = (yyvsp[(2) - (2)].id);
2646 break;
2648 case 63:
2649 #line 579 "rcparse.y"
2651 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
2653 break;
2655 case 64:
2656 #line 583 "rcparse.y"
2658 default_style = BS_AUTORADIOBUTTON | WS_TABSTOP;
2659 base_style = BS_AUTORADIOBUTTON;
2660 class.named = 0;
2661 class.u.id = CTL_BUTTON;
2662 res_text_field = (yyvsp[(2) - (2)].id);
2664 break;
2666 case 65:
2667 #line 591 "rcparse.y"
2669 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
2671 break;
2673 case 66:
2674 #line 595 "rcparse.y"
2676 default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
2677 base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
2678 class.named = 0;
2679 class.u.id = CTL_EDIT;
2680 res_text_field = (yyvsp[(2) - (2)].id);
2682 break;
2684 case 67:
2685 #line 603 "rcparse.y"
2687 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
2688 if (dialog.ex == NULL)
2689 rcparse_warning (_("BEDIT requires DIALOGEX"));
2690 res_string_to_id (&(yyval.dialog_control)->class, "BEDIT");
2692 break;
2694 case 68:
2695 #line 610 "rcparse.y"
2697 default_style = BS_CHECKBOX | WS_TABSTOP;
2698 base_style = BS_CHECKBOX | WS_TABSTOP;
2699 class.named = 0;
2700 class.u.id = CTL_BUTTON;
2701 res_text_field = (yyvsp[(2) - (2)].id);
2703 break;
2705 case 69:
2706 #line 618 "rcparse.y"
2708 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
2710 break;
2712 case 70:
2713 #line 622 "rcparse.y"
2715 /* This is as per MSDN documentation. With some (???)
2716 versions of MS rc.exe their is no default style. */
2717 default_style = CBS_SIMPLE | WS_TABSTOP;
2718 base_style = 0;
2719 class.named = 0;
2720 class.u.id = CTL_COMBOBOX;
2721 res_text_field = res_null_text;
2723 break;
2725 case 71:
2726 #line 632 "rcparse.y"
2728 (yyval.dialog_control) = (yyvsp[(3) - (3)].dialog_control);
2730 break;
2732 case 72:
2733 #line 637 "rcparse.y"
2735 (yyval.dialog_control) = define_control ((yyvsp[(2) - (11)].id), (yyvsp[(3) - (11)].il), (yyvsp[(6) - (11)].il), (yyvsp[(7) - (11)].il), (yyvsp[(8) - (11)].il), (yyvsp[(9) - (11)].il), (yyvsp[(4) - (11)].id), style, (yyvsp[(10) - (11)].il));
2736 if ((yyvsp[(11) - (11)].rcdata_item) != NULL)
2738 if (dialog.ex == NULL)
2739 rcparse_warning (_("control data requires DIALOGEX"));
2740 (yyval.dialog_control)->data = (yyvsp[(11) - (11)].rcdata_item);
2743 break;
2745 case 73:
2746 #line 648 "rcparse.y"
2748 (yyval.dialog_control) = define_control ((yyvsp[(2) - (12)].id), (yyvsp[(3) - (12)].il), (yyvsp[(6) - (12)].il), (yyvsp[(7) - (12)].il), (yyvsp[(8) - (12)].il), (yyvsp[(9) - (12)].il), (yyvsp[(4) - (12)].id), style, (yyvsp[(10) - (12)].il));
2749 if (dialog.ex == NULL)
2750 rcparse_warning (_("help ID requires DIALOGEX"));
2751 (yyval.dialog_control)->help = (yyvsp[(11) - (12)].il);
2752 (yyval.dialog_control)->data = (yyvsp[(12) - (12)].rcdata_item);
2754 break;
2756 case 74:
2757 #line 656 "rcparse.y"
2759 default_style = SS_CENTER | WS_GROUP;
2760 base_style = SS_CENTER;
2761 class.named = 0;
2762 class.u.id = CTL_STATIC;
2763 res_text_field = (yyvsp[(2) - (2)].id);
2765 break;
2767 case 75:
2768 #line 664 "rcparse.y"
2770 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
2772 break;
2774 case 76:
2775 #line 668 "rcparse.y"
2777 default_style = BS_DEFPUSHBUTTON | WS_TABSTOP;
2778 base_style = BS_DEFPUSHBUTTON | WS_TABSTOP;
2779 class.named = 0;
2780 class.u.id = CTL_BUTTON;
2781 res_text_field = (yyvsp[(2) - (2)].id);
2783 break;
2785 case 77:
2786 #line 676 "rcparse.y"
2788 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
2790 break;
2792 case 78:
2793 #line 680 "rcparse.y"
2795 default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
2796 base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
2797 class.named = 0;
2798 class.u.id = CTL_EDIT;
2799 res_text_field = res_null_text;
2801 break;
2803 case 79:
2804 #line 688 "rcparse.y"
2806 (yyval.dialog_control) = (yyvsp[(3) - (3)].dialog_control);
2808 break;
2810 case 80:
2811 #line 692 "rcparse.y"
2813 default_style = BS_GROUPBOX;
2814 base_style = BS_GROUPBOX;
2815 class.named = 0;
2816 class.u.id = CTL_BUTTON;
2817 res_text_field = (yyvsp[(2) - (2)].id);
2819 break;
2821 case 81:
2822 #line 700 "rcparse.y"
2824 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
2826 break;
2828 case 82:
2829 #line 704 "rcparse.y"
2831 default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
2832 base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
2833 class.named = 0;
2834 class.u.id = CTL_EDIT;
2835 res_text_field = (yyvsp[(2) - (2)].id);
2837 break;
2839 case 83:
2840 #line 712 "rcparse.y"
2842 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
2843 if (dialog.ex == NULL)
2844 rcparse_warning (_("IEDIT requires DIALOGEX"));
2845 res_string_to_id (&(yyval.dialog_control)->class, "HEDIT");
2847 break;
2849 case 84:
2850 #line 719 "rcparse.y"
2852 (yyval.dialog_control) = define_icon_control ((yyvsp[(2) - (6)].id), (yyvsp[(3) - (6)].il), (yyvsp[(4) - (6)].il), (yyvsp[(5) - (6)].il), 0, 0, 0, (yyvsp[(6) - (6)].rcdata_item),
2853 dialog.ex);
2855 break;
2857 case 85:
2858 #line 725 "rcparse.y"
2860 (yyval.dialog_control) = define_icon_control ((yyvsp[(2) - (8)].id), (yyvsp[(3) - (8)].il), (yyvsp[(4) - (8)].il), (yyvsp[(5) - (8)].il), 0, 0, 0, (yyvsp[(8) - (8)].rcdata_item),
2861 dialog.ex);
2863 break;
2865 case 86:
2866 #line 731 "rcparse.y"
2868 (yyval.dialog_control) = define_icon_control ((yyvsp[(2) - (10)].id), (yyvsp[(3) - (10)].il), (yyvsp[(4) - (10)].il), (yyvsp[(5) - (10)].il), style, (yyvsp[(9) - (10)].il), 0, (yyvsp[(10) - (10)].rcdata_item),
2869 dialog.ex);
2871 break;
2873 case 87:
2874 #line 737 "rcparse.y"
2876 (yyval.dialog_control) = define_icon_control ((yyvsp[(2) - (11)].id), (yyvsp[(3) - (11)].il), (yyvsp[(4) - (11)].il), (yyvsp[(5) - (11)].il), style, (yyvsp[(9) - (11)].il), (yyvsp[(10) - (11)].il), (yyvsp[(11) - (11)].rcdata_item),
2877 dialog.ex);
2879 break;
2881 case 88:
2882 #line 742 "rcparse.y"
2884 default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
2885 base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
2886 class.named = 0;
2887 class.u.id = CTL_EDIT;
2888 res_text_field = (yyvsp[(2) - (2)].id);
2890 break;
2892 case 89:
2893 #line 750 "rcparse.y"
2895 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
2896 if (dialog.ex == NULL)
2897 rcparse_warning (_("IEDIT requires DIALOGEX"));
2898 res_string_to_id (&(yyval.dialog_control)->class, "IEDIT");
2900 break;
2902 case 90:
2903 #line 757 "rcparse.y"
2905 default_style = LBS_NOTIFY | WS_BORDER;
2906 base_style = LBS_NOTIFY | WS_BORDER;
2907 class.named = 0;
2908 class.u.id = CTL_LISTBOX;
2909 res_text_field = res_null_text;
2911 break;
2913 case 91:
2914 #line 765 "rcparse.y"
2916 (yyval.dialog_control) = (yyvsp[(3) - (3)].dialog_control);
2918 break;
2920 case 92:
2921 #line 769 "rcparse.y"
2923 default_style = SS_LEFT | WS_GROUP;
2924 base_style = SS_LEFT;
2925 class.named = 0;
2926 class.u.id = CTL_STATIC;
2927 res_text_field = (yyvsp[(2) - (2)].id);
2929 break;
2931 case 93:
2932 #line 777 "rcparse.y"
2934 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
2936 break;
2938 case 94:
2939 #line 781 "rcparse.y"
2941 default_style = BS_PUSHBOX | WS_TABSTOP;
2942 base_style = BS_PUSHBOX;
2943 class.named = 0;
2944 class.u.id = CTL_BUTTON;
2946 break;
2948 case 95:
2949 #line 788 "rcparse.y"
2951 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
2953 break;
2955 case 96:
2956 #line 792 "rcparse.y"
2958 default_style = BS_PUSHBUTTON | WS_TABSTOP;
2959 base_style = BS_PUSHBUTTON | WS_TABSTOP;
2960 class.named = 0;
2961 class.u.id = CTL_BUTTON;
2962 res_text_field = (yyvsp[(2) - (2)].id);
2964 break;
2966 case 97:
2967 #line 800 "rcparse.y"
2969 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
2971 break;
2973 case 98:
2974 #line 804 "rcparse.y"
2976 default_style = BS_RADIOBUTTON | WS_TABSTOP;
2977 base_style = BS_RADIOBUTTON;
2978 class.named = 0;
2979 class.u.id = CTL_BUTTON;
2980 res_text_field = (yyvsp[(2) - (2)].id);
2982 break;
2984 case 99:
2985 #line 812 "rcparse.y"
2987 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
2989 break;
2991 case 100:
2992 #line 816 "rcparse.y"
2994 default_style = SS_RIGHT | WS_GROUP;
2995 base_style = SS_RIGHT;
2996 class.named = 0;
2997 class.u.id = CTL_STATIC;
2998 res_text_field = (yyvsp[(2) - (2)].id);
3000 break;
3002 case 101:
3003 #line 824 "rcparse.y"
3005 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
3007 break;
3009 case 102:
3010 #line 828 "rcparse.y"
3012 default_style = SBS_HORZ;
3013 base_style = 0;
3014 class.named = 0;
3015 class.u.id = CTL_SCROLLBAR;
3016 res_text_field = res_null_text;
3018 break;
3020 case 103:
3021 #line 836 "rcparse.y"
3023 (yyval.dialog_control) = (yyvsp[(3) - (3)].dialog_control);
3025 break;
3027 case 104:
3028 #line 840 "rcparse.y"
3030 default_style = BS_3STATE | WS_TABSTOP;
3031 base_style = BS_3STATE;
3032 class.named = 0;
3033 class.u.id = CTL_BUTTON;
3034 res_text_field = (yyvsp[(2) - (2)].id);
3036 break;
3038 case 105:
3039 #line 848 "rcparse.y"
3041 (yyval.dialog_control) = (yyvsp[(4) - (4)].dialog_control);
3043 break;
3045 case 106:
3046 #line 853 "rcparse.y"
3047 { style = WS_CHILD | WS_VISIBLE; }
3048 break;
3050 case 107:
3051 #line 855 "rcparse.y"
3053 rc_res_id cid;
3054 cid.named = 0;
3055 cid.u.id = CTL_BUTTON;
3056 (yyval.dialog_control) = define_control ((yyvsp[(2) - (15)].id), (yyvsp[(3) - (15)].il), (yyvsp[(5) - (15)].il), (yyvsp[(7) - (15)].il), (yyvsp[(9) - (15)].il), (yyvsp[(11) - (15)].il), cid,
3057 style, (yyvsp[(15) - (15)].il));
3059 break;
3061 case 108:
3062 #line 873 "rcparse.y"
3064 (yyval.dialog_control) = define_control (res_text_field, (yyvsp[(1) - (6)].il), (yyvsp[(2) - (6)].il), (yyvsp[(3) - (6)].il), (yyvsp[(4) - (6)].il), (yyvsp[(5) - (6)].il), class,
3065 default_style | WS_CHILD | WS_VISIBLE, 0);
3066 if ((yyvsp[(6) - (6)].rcdata_item) != NULL)
3068 if (dialog.ex == NULL)
3069 rcparse_warning (_("control data requires DIALOGEX"));
3070 (yyval.dialog_control)->data = (yyvsp[(6) - (6)].rcdata_item);
3073 break;
3075 case 109:
3076 #line 885 "rcparse.y"
3078 (yyval.dialog_control) = define_control (res_text_field, (yyvsp[(1) - (8)].il), (yyvsp[(2) - (8)].il), (yyvsp[(3) - (8)].il), (yyvsp[(4) - (8)].il), (yyvsp[(5) - (8)].il), class, style, (yyvsp[(7) - (8)].il));
3079 if ((yyvsp[(8) - (8)].rcdata_item) != NULL)
3081 if (dialog.ex == NULL)
3082 rcparse_warning (_("control data requires DIALOGEX"));
3083 (yyval.dialog_control)->data = (yyvsp[(8) - (8)].rcdata_item);
3086 break;
3088 case 110:
3089 #line 896 "rcparse.y"
3091 (yyval.dialog_control) = define_control (res_text_field, (yyvsp[(1) - (9)].il), (yyvsp[(2) - (9)].il), (yyvsp[(3) - (9)].il), (yyvsp[(4) - (9)].il), (yyvsp[(5) - (9)].il), class, style, (yyvsp[(7) - (9)].il));
3092 if (dialog.ex == NULL)
3093 rcparse_warning (_("help ID requires DIALOGEX"));
3094 (yyval.dialog_control)->help = (yyvsp[(8) - (9)].il);
3095 (yyval.dialog_control)->data = (yyvsp[(9) - (9)].rcdata_item);
3097 break;
3099 case 111:
3100 #line 907 "rcparse.y"
3102 if ((yyvsp[(2) - (2)].id).named)
3103 res_unistring_to_id (&(yyval.id), (yyvsp[(2) - (2)].id).u.n.name);
3104 else
3105 (yyval.id)=(yyvsp[(2) - (2)].id);
3107 break;
3109 case 112:
3110 #line 917 "rcparse.y"
3112 res_string_to_id (&(yyval.id), "");
3114 break;
3116 case 113:
3117 #line 920 "rcparse.y"
3118 { (yyval.id)=(yyvsp[(1) - (2)].id); }
3119 break;
3121 case 114:
3122 #line 925 "rcparse.y"
3124 (yyval.id).named = 0;
3125 (yyval.id).u.id = (yyvsp[(1) - (1)].il);
3127 break;
3129 case 115:
3130 #line 930 "rcparse.y"
3132 (yyval.id).named = 1;
3133 (yyval.id).u.n.name = (yyvsp[(1) - (1)].uni);
3134 (yyval.id).u.n.length = unichar_len ((yyvsp[(1) - (1)].uni));
3136 break;
3138 case 116:
3139 #line 939 "rcparse.y"
3141 (yyval.rcdata_item) = NULL;
3143 break;
3145 case 117:
3146 #line 943 "rcparse.y"
3148 (yyval.rcdata_item) = (yyvsp[(2) - (3)].rcdata).first;
3150 break;
3152 case 118:
3153 #line 952 "rcparse.y"
3154 { style = WS_CHILD | WS_VISIBLE; }
3155 break;
3157 case 120:
3158 #line 958 "rcparse.y"
3159 { style = SS_ICON | WS_CHILD | WS_VISIBLE; }
3160 break;
3162 case 122:
3163 #line 964 "rcparse.y"
3164 { style = base_style | WS_CHILD | WS_VISIBLE; }
3165 break;
3167 case 124:
3168 #line 972 "rcparse.y"
3170 define_font ((yyvsp[(1) - (4)].id), &(yyvsp[(3) - (4)].res_info), (yyvsp[(4) - (4)].s));
3171 if (yychar != YYEMPTY)
3172 YYERROR;
3173 rcparse_discard_strings ();
3175 break;
3177 case 125:
3178 #line 984 "rcparse.y"
3180 define_icon ((yyvsp[(1) - (4)].id), &(yyvsp[(3) - (4)].res_info), (yyvsp[(4) - (4)].s));
3181 if (yychar != YYEMPTY)
3182 YYERROR;
3183 rcparse_discard_strings ();
3185 break;
3187 case 126:
3188 #line 997 "rcparse.y"
3190 language = (yyvsp[(2) - (3)].il) | ((yyvsp[(3) - (3)].il) << SUBLANG_SHIFT);
3192 break;
3194 case 127:
3195 #line 1006 "rcparse.y"
3197 define_menu ((yyvsp[(1) - (6)].id), &(yyvsp[(3) - (6)].res_info), (yyvsp[(5) - (6)].menuitem));
3198 if (yychar != YYEMPTY)
3199 YYERROR;
3200 rcparse_discard_strings ();
3202 break;
3204 case 128:
3205 #line 1016 "rcparse.y"
3207 (yyval.menuitem) = NULL;
3209 break;
3211 case 129:
3212 #line 1020 "rcparse.y"
3214 if ((yyvsp[(1) - (2)].menuitem) == NULL)
3215 (yyval.menuitem) = (yyvsp[(2) - (2)].menuitem);
3216 else
3218 rc_menuitem **pp;
3220 for (pp = &(yyvsp[(1) - (2)].menuitem)->next; *pp != NULL; pp = &(*pp)->next)
3222 *pp = (yyvsp[(2) - (2)].menuitem);
3223 (yyval.menuitem) = (yyvsp[(1) - (2)].menuitem);
3226 break;
3228 case 130:
3229 #line 1037 "rcparse.y"
3231 (yyval.menuitem) = define_menuitem ((yyvsp[(2) - (4)].uni), (yyvsp[(3) - (4)].il), (yyvsp[(4) - (4)].is), 0, 0, NULL);
3233 break;
3235 case 131:
3236 #line 1041 "rcparse.y"
3238 (yyval.menuitem) = define_menuitem (NULL, 0, 0, 0, 0, NULL);
3240 break;
3242 case 132:
3243 #line 1045 "rcparse.y"
3245 (yyval.menuitem) = define_menuitem ((yyvsp[(2) - (6)].uni), 0, (yyvsp[(3) - (6)].is), 0, 0, (yyvsp[(5) - (6)].menuitem));
3247 break;
3249 case 133:
3250 #line 1052 "rcparse.y"
3252 (yyval.is) = 0;
3254 break;
3256 case 134:
3257 #line 1056 "rcparse.y"
3259 (yyval.is) = (yyvsp[(1) - (3)].is) | (yyvsp[(3) - (3)].is);
3261 break;
3263 case 135:
3264 #line 1060 "rcparse.y"
3266 (yyval.is) = (yyvsp[(1) - (2)].is) | (yyvsp[(2) - (2)].is);
3268 break;
3270 case 136:
3271 #line 1067 "rcparse.y"
3273 (yyval.is) = MENUITEM_CHECKED;
3275 break;
3277 case 137:
3278 #line 1071 "rcparse.y"
3280 (yyval.is) = MENUITEM_GRAYED;
3282 break;
3284 case 138:
3285 #line 1075 "rcparse.y"
3287 (yyval.is) = MENUITEM_HELP;
3289 break;
3291 case 139:
3292 #line 1079 "rcparse.y"
3294 (yyval.is) = MENUITEM_INACTIVE;
3296 break;
3298 case 140:
3299 #line 1083 "rcparse.y"
3301 (yyval.is) = MENUITEM_MENUBARBREAK;
3303 break;
3305 case 141:
3306 #line 1087 "rcparse.y"
3308 (yyval.is) = MENUITEM_MENUBREAK;
3310 break;
3312 case 142:
3313 #line 1096 "rcparse.y"
3315 define_menu ((yyvsp[(1) - (6)].id), &(yyvsp[(3) - (6)].res_info), (yyvsp[(5) - (6)].menuitem));
3316 if (yychar != YYEMPTY)
3317 YYERROR;
3318 rcparse_discard_strings ();
3320 break;
3322 case 143:
3323 #line 1106 "rcparse.y"
3325 (yyval.menuitem) = NULL;
3327 break;
3329 case 144:
3330 #line 1110 "rcparse.y"
3332 if ((yyvsp[(1) - (2)].menuitem) == NULL)
3333 (yyval.menuitem) = (yyvsp[(2) - (2)].menuitem);
3334 else
3336 rc_menuitem **pp;
3338 for (pp = &(yyvsp[(1) - (2)].menuitem)->next; *pp != NULL; pp = &(*pp)->next)
3340 *pp = (yyvsp[(2) - (2)].menuitem);
3341 (yyval.menuitem) = (yyvsp[(1) - (2)].menuitem);
3344 break;
3346 case 145:
3347 #line 1127 "rcparse.y"
3349 (yyval.menuitem) = define_menuitem ((yyvsp[(2) - (2)].uni), 0, 0, 0, 0, NULL);
3351 break;
3353 case 146:
3354 #line 1131 "rcparse.y"
3356 (yyval.menuitem) = define_menuitem ((yyvsp[(2) - (3)].uni), (yyvsp[(3) - (3)].il), 0, 0, 0, NULL);
3358 break;
3360 case 147:
3361 #line 1135 "rcparse.y"
3363 (yyval.menuitem) = define_menuitem ((yyvsp[(2) - (5)].uni), (yyvsp[(3) - (5)].il), (yyvsp[(4) - (5)].il), (yyvsp[(5) - (5)].il), 0, NULL);
3365 break;
3367 case 148:
3368 #line 1139 "rcparse.y"
3370 (yyval.menuitem) = define_menuitem (NULL, 0, 0, 0, 0, NULL);
3372 break;
3374 case 149:
3375 #line 1143 "rcparse.y"
3377 (yyval.menuitem) = define_menuitem ((yyvsp[(2) - (5)].uni), 0, 0, 0, 0, (yyvsp[(4) - (5)].menuitem));
3379 break;
3381 case 150:
3382 #line 1147 "rcparse.y"
3384 (yyval.menuitem) = define_menuitem ((yyvsp[(2) - (6)].uni), (yyvsp[(3) - (6)].il), 0, 0, 0, (yyvsp[(5) - (6)].menuitem));
3386 break;
3388 case 151:
3389 #line 1151 "rcparse.y"
3391 (yyval.menuitem) = define_menuitem ((yyvsp[(2) - (7)].uni), (yyvsp[(3) - (7)].il), (yyvsp[(4) - (7)].il), 0, 0, (yyvsp[(6) - (7)].menuitem));
3393 break;
3395 case 152:
3396 #line 1156 "rcparse.y"
3398 (yyval.menuitem) = define_menuitem ((yyvsp[(2) - (9)].uni), (yyvsp[(3) - (9)].il), (yyvsp[(4) - (9)].il), (yyvsp[(5) - (9)].il), (yyvsp[(6) - (9)].il), (yyvsp[(8) - (9)].menuitem));
3400 break;
3402 case 153:
3403 #line 1165 "rcparse.y"
3405 define_messagetable ((yyvsp[(1) - (4)].id), &(yyvsp[(3) - (4)].res_info), (yyvsp[(4) - (4)].s));
3406 if (yychar != YYEMPTY)
3407 YYERROR;
3408 rcparse_discard_strings ();
3410 break;
3412 case 154:
3413 #line 1177 "rcparse.y"
3415 rcparse_rcdata ();
3417 break;
3419 case 155:
3420 #line 1181 "rcparse.y"
3422 rcparse_normal ();
3423 (yyval.rcdata) = (yyvsp[(2) - (2)].rcdata);
3425 break;
3427 case 156:
3428 #line 1189 "rcparse.y"
3430 (yyval.rcdata).first = NULL;
3431 (yyval.rcdata).last = NULL;
3433 break;
3435 case 157:
3436 #line 1194 "rcparse.y"
3438 (yyval.rcdata) = (yyvsp[(1) - (1)].rcdata);
3440 break;
3442 case 158:
3443 #line 1201 "rcparse.y"
3445 rc_rcdata_item *ri;
3447 ri = define_rcdata_string ((yyvsp[(1) - (1)].ss).s, (yyvsp[(1) - (1)].ss).length);
3448 (yyval.rcdata).first = ri;
3449 (yyval.rcdata).last = ri;
3451 break;
3453 case 159:
3454 #line 1209 "rcparse.y"
3456 rc_rcdata_item *ri;
3458 ri = define_rcdata_unistring ((yyvsp[(1) - (1)].suni).s, (yyvsp[(1) - (1)].suni).length);
3459 (yyval.rcdata).first = ri;
3460 (yyval.rcdata).last = ri;
3462 break;
3464 case 160:
3465 #line 1217 "rcparse.y"
3467 rc_rcdata_item *ri;
3469 ri = define_rcdata_number ((yyvsp[(1) - (1)].i).val, (yyvsp[(1) - (1)].i).dword);
3470 (yyval.rcdata).first = ri;
3471 (yyval.rcdata).last = ri;
3473 break;
3475 case 161:
3476 #line 1225 "rcparse.y"
3478 rc_rcdata_item *ri;
3480 ri = define_rcdata_string ((yyvsp[(3) - (3)].ss).s, (yyvsp[(3) - (3)].ss).length);
3481 (yyval.rcdata).first = (yyvsp[(1) - (3)].rcdata).first;
3482 (yyvsp[(1) - (3)].rcdata).last->next = ri;
3483 (yyval.rcdata).last = ri;
3485 break;
3487 case 162:
3488 #line 1234 "rcparse.y"
3490 rc_rcdata_item *ri;
3492 ri = define_rcdata_unistring ((yyvsp[(3) - (3)].suni).s, (yyvsp[(3) - (3)].suni).length);
3493 (yyval.rcdata).first = (yyvsp[(1) - (3)].rcdata).first;
3494 (yyvsp[(1) - (3)].rcdata).last->next = ri;
3495 (yyval.rcdata).last = ri;
3497 break;
3499 case 163:
3500 #line 1243 "rcparse.y"
3502 rc_rcdata_item *ri;
3504 ri = define_rcdata_number ((yyvsp[(3) - (3)].i).val, (yyvsp[(3) - (3)].i).dword);
3505 (yyval.rcdata).first = (yyvsp[(1) - (3)].rcdata).first;
3506 (yyvsp[(1) - (3)].rcdata).last->next = ri;
3507 (yyval.rcdata).last = ri;
3509 break;
3511 case 164:
3512 #line 1252 "rcparse.y"
3514 (yyval.rcdata)=(yyvsp[(1) - (2)].rcdata);
3516 break;
3518 case 165:
3519 #line 1261 "rcparse.y"
3520 { sub_res_info = (yyvsp[(2) - (3)].res_info); }
3521 break;
3523 case 168:
3524 #line 1268 "rcparse.y"
3526 define_stringtable (&sub_res_info, (yyvsp[(2) - (3)].il), (yyvsp[(3) - (3)].uni));
3527 rcparse_discard_strings ();
3529 break;
3531 case 169:
3532 #line 1273 "rcparse.y"
3534 define_stringtable (&sub_res_info, (yyvsp[(2) - (4)].il), (yyvsp[(4) - (4)].uni));
3535 rcparse_discard_strings ();
3537 break;
3539 case 170:
3540 #line 1278 "rcparse.y"
3542 rcparse_warning (_("invalid stringtable resource."));
3543 abort ();
3545 break;
3547 case 171:
3548 #line 1286 "rcparse.y"
3550 (yyval.id)=(yyvsp[(1) - (1)].id);
3552 break;
3554 case 172:
3555 #line 1290 "rcparse.y"
3557 (yyval.id).named = 0;
3558 (yyval.id).u.id = 23;
3560 break;
3562 case 173:
3563 #line 1295 "rcparse.y"
3565 (yyval.id).named = 0;
3566 (yyval.id).u.id = RT_RCDATA;
3568 break;
3570 case 174:
3571 #line 1300 "rcparse.y"
3573 (yyval.id).named = 0;
3574 (yyval.id).u.id = RT_MANIFEST;
3576 break;
3578 case 175:
3579 #line 1305 "rcparse.y"
3581 (yyval.id).named = 0;
3582 (yyval.id).u.id = RT_PLUGPLAY;
3584 break;
3586 case 176:
3587 #line 1310 "rcparse.y"
3589 (yyval.id).named = 0;
3590 (yyval.id).u.id = RT_VXD;
3592 break;
3594 case 177:
3595 #line 1315 "rcparse.y"
3597 (yyval.id).named = 0;
3598 (yyval.id).u.id = RT_DLGINCLUDE;
3600 break;
3602 case 178:
3603 #line 1320 "rcparse.y"
3605 (yyval.id).named = 0;
3606 (yyval.id).u.id = RT_DLGINIT;
3608 break;
3610 case 179:
3611 #line 1325 "rcparse.y"
3613 (yyval.id).named = 0;
3614 (yyval.id).u.id = RT_ANICURSOR;
3616 break;
3618 case 180:
3619 #line 1330 "rcparse.y"
3621 (yyval.id).named = 0;
3622 (yyval.id).u.id = RT_ANIICON;
3624 break;
3626 case 181:
3627 #line 1341 "rcparse.y"
3629 define_user_data ((yyvsp[(1) - (6)].id), (yyvsp[(2) - (6)].id), &(yyvsp[(3) - (6)].res_info), (yyvsp[(5) - (6)].rcdata).first);
3630 if (yychar != YYEMPTY)
3631 YYERROR;
3632 rcparse_discard_strings ();
3634 break;
3636 case 182:
3637 #line 1348 "rcparse.y"
3639 define_user_file ((yyvsp[(1) - (4)].id), (yyvsp[(2) - (4)].id), &(yyvsp[(3) - (4)].res_info), (yyvsp[(4) - (4)].s));
3640 if (yychar != YYEMPTY)
3641 YYERROR;
3642 rcparse_discard_strings ();
3644 break;
3646 case 183:
3647 #line 1358 "rcparse.y"
3649 define_toolbar ((yyvsp[(1) - (8)].id), &(yyvsp[(3) - (8)].res_info), (yyvsp[(4) - (8)].il), (yyvsp[(5) - (8)].il), (yyvsp[(7) - (8)].toobar_item));
3651 break;
3653 case 184:
3654 #line 1363 "rcparse.y"
3655 { (yyval.toobar_item)= NULL; }
3656 break;
3658 case 185:
3659 #line 1365 "rcparse.y"
3661 rc_toolbar_item *c,*n;
3662 c = (yyvsp[(1) - (3)].toobar_item);
3663 n= (rc_toolbar_item *)
3664 res_alloc (sizeof (rc_toolbar_item));
3665 if (c != NULL)
3666 while (c->next != NULL)
3667 c = c->next;
3668 n->prev = c;
3669 n->next = NULL;
3670 if (c != NULL)
3671 c->next = n;
3672 n->id = (yyvsp[(3) - (3)].id);
3673 if ((yyvsp[(1) - (3)].toobar_item) == NULL)
3674 (yyval.toobar_item) = n;
3675 else
3676 (yyval.toobar_item) = (yyvsp[(1) - (3)].toobar_item);
3678 break;
3680 case 186:
3681 #line 1384 "rcparse.y"
3683 rc_toolbar_item *c,*n;
3684 c = (yyvsp[(1) - (2)].toobar_item);
3685 n= (rc_toolbar_item *)
3686 res_alloc (sizeof (rc_toolbar_item));
3687 if (c != NULL)
3688 while (c->next != NULL)
3689 c = c->next;
3690 n->prev = c;
3691 n->next = NULL;
3692 if (c != NULL)
3693 c->next = n;
3694 n->id.named = 0;
3695 n->id.u.id = 0;
3696 if ((yyvsp[(1) - (2)].toobar_item) == NULL)
3697 (yyval.toobar_item) = n;
3698 else
3699 (yyval.toobar_item) = (yyvsp[(1) - (2)].toobar_item);
3701 break;
3703 case 187:
3704 #line 1409 "rcparse.y"
3706 define_versioninfo ((yyvsp[(1) - (6)].id), language, (yyvsp[(3) - (6)].fixver), (yyvsp[(5) - (6)].verinfo));
3707 if (yychar != YYEMPTY)
3708 YYERROR;
3709 rcparse_discard_strings ();
3711 break;
3713 case 188:
3714 #line 1419 "rcparse.y"
3716 (yyval.fixver) = ((rc_fixed_versioninfo *)
3717 res_alloc (sizeof (rc_fixed_versioninfo)));
3718 memset ((yyval.fixver), 0, sizeof (rc_fixed_versioninfo));
3720 break;
3722 case 189:
3723 #line 1425 "rcparse.y"
3725 (yyvsp[(1) - (6)].fixver)->file_version_ms = ((yyvsp[(3) - (6)].il) << 16) | (yyvsp[(4) - (6)].il);
3726 (yyvsp[(1) - (6)].fixver)->file_version_ls = ((yyvsp[(5) - (6)].il) << 16) | (yyvsp[(6) - (6)].il);
3727 (yyval.fixver) = (yyvsp[(1) - (6)].fixver);
3729 break;
3731 case 190:
3732 #line 1431 "rcparse.y"
3734 (yyvsp[(1) - (6)].fixver)->product_version_ms = ((yyvsp[(3) - (6)].il) << 16) | (yyvsp[(4) - (6)].il);
3735 (yyvsp[(1) - (6)].fixver)->product_version_ls = ((yyvsp[(5) - (6)].il) << 16) | (yyvsp[(6) - (6)].il);
3736 (yyval.fixver) = (yyvsp[(1) - (6)].fixver);
3738 break;
3740 case 191:
3741 #line 1437 "rcparse.y"
3743 (yyvsp[(1) - (3)].fixver)->file_flags_mask = (yyvsp[(3) - (3)].il);
3744 (yyval.fixver) = (yyvsp[(1) - (3)].fixver);
3746 break;
3748 case 192:
3749 #line 1442 "rcparse.y"
3751 (yyvsp[(1) - (3)].fixver)->file_flags = (yyvsp[(3) - (3)].il);
3752 (yyval.fixver) = (yyvsp[(1) - (3)].fixver);
3754 break;
3756 case 193:
3757 #line 1447 "rcparse.y"
3759 (yyvsp[(1) - (3)].fixver)->file_os = (yyvsp[(3) - (3)].il);
3760 (yyval.fixver) = (yyvsp[(1) - (3)].fixver);
3762 break;
3764 case 194:
3765 #line 1452 "rcparse.y"
3767 (yyvsp[(1) - (3)].fixver)->file_type = (yyvsp[(3) - (3)].il);
3768 (yyval.fixver) = (yyvsp[(1) - (3)].fixver);
3770 break;
3772 case 195:
3773 #line 1457 "rcparse.y"
3775 (yyvsp[(1) - (3)].fixver)->file_subtype = (yyvsp[(3) - (3)].il);
3776 (yyval.fixver) = (yyvsp[(1) - (3)].fixver);
3778 break;
3780 case 196:
3781 #line 1471 "rcparse.y"
3783 (yyval.verinfo) = NULL;
3785 break;
3787 case 197:
3788 #line 1475 "rcparse.y"
3790 (yyval.verinfo) = append_ver_stringfileinfo ((yyvsp[(1) - (8)].verinfo), (yyvsp[(4) - (8)].s), (yyvsp[(6) - (8)].verstring));
3792 break;
3794 case 198:
3795 #line 1479 "rcparse.y"
3797 (yyval.verinfo) = append_ver_varfileinfo ((yyvsp[(1) - (7)].verinfo), (yyvsp[(5) - (7)].uni), (yyvsp[(6) - (7)].vervar));
3799 break;
3801 case 199:
3802 #line 1486 "rcparse.y"
3804 (yyval.verstring) = NULL;
3806 break;
3808 case 200:
3809 #line 1490 "rcparse.y"
3811 (yyval.verstring) = append_verval ((yyvsp[(1) - (5)].verstring), (yyvsp[(3) - (5)].uni), (yyvsp[(5) - (5)].uni));
3813 break;
3815 case 201:
3816 #line 1497 "rcparse.y"
3818 (yyval.vervar) = NULL;
3820 break;
3822 case 202:
3823 #line 1501 "rcparse.y"
3825 (yyval.vervar) = append_vertrans ((yyvsp[(1) - (3)].vervar), (yyvsp[(2) - (3)].il), (yyvsp[(3) - (3)].il));
3827 break;
3829 case 203:
3830 #line 1510 "rcparse.y"
3832 (yyval.id).named = 0;
3833 (yyval.id).u.id = (yyvsp[(1) - (1)].il);
3835 break;
3837 case 204:
3838 #line 1515 "rcparse.y"
3840 res_unistring_to_id (&(yyval.id), (yyvsp[(1) - (1)].uni));
3842 break;
3844 case 205:
3845 #line 1524 "rcparse.y"
3847 (yyval.uni) = (yyvsp[(1) - (1)].uni);
3849 break;
3851 case 206:
3852 #line 1528 "rcparse.y"
3854 unichar *h = NULL;
3855 unicode_from_ascii ((rc_uint_type *) NULL, &h, (yyvsp[(1) - (1)].s));
3856 (yyval.uni) = h;
3858 break;
3860 case 207:
3861 #line 1538 "rcparse.y"
3863 (yyval.id).named = 0;
3864 (yyval.id).u.id = (yyvsp[(1) - (2)].il);
3866 break;
3868 case 208:
3869 #line 1543 "rcparse.y"
3871 res_unistring_to_id (&(yyval.id), (yyvsp[(1) - (1)].uni));
3873 break;
3875 case 209:
3876 #line 1547 "rcparse.y"
3878 res_unistring_to_id (&(yyval.id), (yyvsp[(1) - (2)].uni));
3880 break;
3882 case 210:
3883 #line 1557 "rcparse.y"
3885 memset (&(yyval.res_info), 0, sizeof (rc_res_res_info));
3886 (yyval.res_info).language = language;
3887 /* FIXME: Is this the right default? */
3888 (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE;
3890 break;
3892 case 211:
3893 #line 1564 "rcparse.y"
3895 (yyval.res_info) = (yyvsp[(1) - (2)].res_info);
3896 (yyval.res_info).memflags |= (yyvsp[(2) - (2)].memflags).on;
3897 (yyval.res_info).memflags &=~ (yyvsp[(2) - (2)].memflags).off;
3899 break;
3901 case 212:
3902 #line 1570 "rcparse.y"
3904 (yyval.res_info) = (yyvsp[(1) - (3)].res_info);
3905 (yyval.res_info).characteristics = (yyvsp[(3) - (3)].il);
3907 break;
3909 case 213:
3910 #line 1575 "rcparse.y"
3912 (yyval.res_info) = (yyvsp[(1) - (4)].res_info);
3913 (yyval.res_info).language = (yyvsp[(3) - (4)].il) | ((yyvsp[(4) - (4)].il) << SUBLANG_SHIFT);
3915 break;
3917 case 214:
3918 #line 1580 "rcparse.y"
3920 (yyval.res_info) = (yyvsp[(1) - (3)].res_info);
3921 (yyval.res_info).version = (yyvsp[(3) - (3)].il);
3923 break;
3925 case 215:
3926 #line 1590 "rcparse.y"
3928 memset (&(yyval.res_info), 0, sizeof (rc_res_res_info));
3929 (yyval.res_info).language = language;
3930 (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_DISCARDABLE;
3932 break;
3934 case 216:
3935 #line 1596 "rcparse.y"
3937 (yyval.res_info) = (yyvsp[(1) - (2)].res_info);
3938 (yyval.res_info).memflags |= (yyvsp[(2) - (2)].memflags).on;
3939 (yyval.res_info).memflags &=~ (yyvsp[(2) - (2)].memflags).off;
3941 break;
3943 case 217:
3944 #line 1607 "rcparse.y"
3946 memset (&(yyval.res_info), 0, sizeof (rc_res_res_info));
3947 (yyval.res_info).language = language;
3948 (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE;
3950 break;
3952 case 218:
3953 #line 1613 "rcparse.y"
3955 (yyval.res_info) = (yyvsp[(1) - (2)].res_info);
3956 (yyval.res_info).memflags |= (yyvsp[(2) - (2)].memflags).on;
3957 (yyval.res_info).memflags &=~ (yyvsp[(2) - (2)].memflags).off;
3959 break;
3961 case 219:
3962 #line 1625 "rcparse.y"
3964 (yyval.memflags).on = MEMFLAG_MOVEABLE;
3965 (yyval.memflags).off = 0;
3967 break;
3969 case 220:
3970 #line 1630 "rcparse.y"
3972 (yyval.memflags).on = 0;
3973 (yyval.memflags).off = MEMFLAG_MOVEABLE;
3975 break;
3977 case 221:
3978 #line 1635 "rcparse.y"
3980 (yyval.memflags).on = MEMFLAG_PURE;
3981 (yyval.memflags).off = 0;
3983 break;
3985 case 222:
3986 #line 1640 "rcparse.y"
3988 (yyval.memflags).on = 0;
3989 (yyval.memflags).off = MEMFLAG_PURE;
3991 break;
3993 case 223:
3994 #line 1645 "rcparse.y"
3996 (yyval.memflags).on = MEMFLAG_PRELOAD;
3997 (yyval.memflags).off = 0;
3999 break;
4001 case 224:
4002 #line 1650 "rcparse.y"
4004 (yyval.memflags).on = 0;
4005 (yyval.memflags).off = MEMFLAG_PRELOAD;
4007 break;
4009 case 225:
4010 #line 1655 "rcparse.y"
4012 (yyval.memflags).on = MEMFLAG_DISCARDABLE;
4013 (yyval.memflags).off = 0;
4015 break;
4017 case 226:
4018 #line 1665 "rcparse.y"
4020 (yyval.s) = (yyvsp[(1) - (1)].s);
4022 break;
4024 case 227:
4025 #line 1669 "rcparse.y"
4027 (yyval.s) = (yyvsp[(1) - (1)].s);
4029 break;
4031 case 228:
4032 #line 1677 "rcparse.y"
4034 (yyval.uni) = (yyvsp[(1) - (1)].uni);
4036 break;
4038 case 229:
4039 #line 1682 "rcparse.y"
4041 rc_uint_type l1 = unichar_len ((yyvsp[(1) - (2)].uni));
4042 rc_uint_type l2 = unichar_len ((yyvsp[(2) - (2)].uni));
4043 unichar *h = (unichar *) res_alloc ((l1 + l2 + 1) * sizeof (unichar));
4044 if (l1 != 0)
4045 memcpy (h, (yyvsp[(1) - (2)].uni), l1 * sizeof (unichar));
4046 if (l2 != 0)
4047 memcpy (h + l1, (yyvsp[(2) - (2)].uni), l2 * sizeof (unichar));
4048 h[l1 + l2] = 0;
4049 (yyval.uni) = h;
4051 break;
4053 case 230:
4054 #line 1697 "rcparse.y"
4056 (yyval.uni) = unichar_dup ((yyvsp[(1) - (1)].uni));
4058 break;
4060 case 231:
4061 #line 1701 "rcparse.y"
4063 unichar *h = NULL;
4064 unicode_from_ascii ((rc_uint_type *) NULL, &h, (yyvsp[(1) - (1)].s));
4065 (yyval.uni) = h;
4067 break;
4069 case 232:
4070 #line 1710 "rcparse.y"
4072 (yyval.ss) = (yyvsp[(1) - (1)].ss);
4074 break;
4076 case 233:
4077 #line 1714 "rcparse.y"
4079 rc_uint_type l = (yyvsp[(1) - (2)].ss).length + (yyvsp[(2) - (2)].ss).length;
4080 char *h = (char *) res_alloc (l);
4081 memcpy (h, (yyvsp[(1) - (2)].ss).s, (yyvsp[(1) - (2)].ss).length);
4082 memcpy (h + (yyvsp[(1) - (2)].ss).length, (yyvsp[(2) - (2)].ss).s, (yyvsp[(2) - (2)].ss).length);
4083 (yyval.ss).s = h;
4084 (yyval.ss).length = l;
4086 break;
4088 case 234:
4089 #line 1726 "rcparse.y"
4091 (yyval.suni) = (yyvsp[(1) - (1)].suni);
4093 break;
4095 case 235:
4096 #line 1730 "rcparse.y"
4098 rc_uint_type l = (yyvsp[(1) - (2)].suni).length + (yyvsp[(2) - (2)].suni).length;
4099 unichar *h = (unichar *) res_alloc (l * sizeof (unichar));
4100 memcpy (h, (yyvsp[(1) - (2)].suni).s, (yyvsp[(1) - (2)].suni).length * sizeof (unichar));
4101 memcpy (h + (yyvsp[(1) - (2)].suni).length, (yyvsp[(2) - (2)].suni).s, (yyvsp[(2) - (2)].suni).length * sizeof (unichar));
4102 (yyval.suni).s = h;
4103 (yyval.suni).length = l;
4105 break;
4107 case 236:
4108 #line 1752 "rcparse.y"
4110 style |= (yyvsp[(1) - (1)].il);
4112 break;
4114 case 237:
4115 #line 1756 "rcparse.y"
4117 style &=~ (yyvsp[(2) - (2)].il);
4119 break;
4121 case 238:
4122 #line 1760 "rcparse.y"
4124 style |= (yyvsp[(3) - (3)].il);
4126 break;
4128 case 239:
4129 #line 1764 "rcparse.y"
4131 style &=~ (yyvsp[(4) - (4)].il);
4133 break;
4135 case 240:
4136 #line 1771 "rcparse.y"
4138 (yyval.il) = (yyvsp[(1) - (1)].i).val;
4140 break;
4142 case 241:
4143 #line 1775 "rcparse.y"
4145 (yyval.il) = (yyvsp[(2) - (3)].il);
4147 break;
4149 case 242:
4150 #line 1784 "rcparse.y"
4152 (yyval.il) = 0;
4154 break;
4156 case 243:
4157 #line 1788 "rcparse.y"
4159 (yyval.il) = (yyvsp[(1) - (1)].il);
4161 break;
4163 case 244:
4164 #line 1797 "rcparse.y"
4166 (yyval.il) = (yyvsp[(2) - (2)].il);
4168 break;
4170 case 245:
4171 #line 1806 "rcparse.y"
4173 (yyval.il) = (yyvsp[(1) - (1)].i).val;
4175 break;
4177 case 246:
4178 #line 1815 "rcparse.y"
4180 (yyval.i) = (yyvsp[(1) - (1)].i);
4182 break;
4184 case 247:
4185 #line 1819 "rcparse.y"
4187 (yyval.i) = (yyvsp[(2) - (3)].i);
4189 break;
4191 case 248:
4192 #line 1823 "rcparse.y"
4194 (yyval.i).val = ~ (yyvsp[(2) - (2)].i).val;
4195 (yyval.i).dword = (yyvsp[(2) - (2)].i).dword;
4197 break;
4199 case 249:
4200 #line 1828 "rcparse.y"
4202 (yyval.i).val = - (yyvsp[(2) - (2)].i).val;
4203 (yyval.i).dword = (yyvsp[(2) - (2)].i).dword;
4205 break;
4207 case 250:
4208 #line 1833 "rcparse.y"
4210 (yyval.i).val = (yyvsp[(1) - (3)].i).val * (yyvsp[(3) - (3)].i).val;
4211 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4213 break;
4215 case 251:
4216 #line 1838 "rcparse.y"
4218 (yyval.i).val = (yyvsp[(1) - (3)].i).val / (yyvsp[(3) - (3)].i).val;
4219 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4221 break;
4223 case 252:
4224 #line 1843 "rcparse.y"
4226 (yyval.i).val = (yyvsp[(1) - (3)].i).val % (yyvsp[(3) - (3)].i).val;
4227 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4229 break;
4231 case 253:
4232 #line 1848 "rcparse.y"
4234 (yyval.i).val = (yyvsp[(1) - (3)].i).val + (yyvsp[(3) - (3)].i).val;
4235 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4237 break;
4239 case 254:
4240 #line 1853 "rcparse.y"
4242 (yyval.i).val = (yyvsp[(1) - (3)].i).val - (yyvsp[(3) - (3)].i).val;
4243 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4245 break;
4247 case 255:
4248 #line 1858 "rcparse.y"
4250 (yyval.i).val = (yyvsp[(1) - (3)].i).val & (yyvsp[(3) - (3)].i).val;
4251 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4253 break;
4255 case 256:
4256 #line 1863 "rcparse.y"
4258 (yyval.i).val = (yyvsp[(1) - (3)].i).val ^ (yyvsp[(3) - (3)].i).val;
4259 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4261 break;
4263 case 257:
4264 #line 1868 "rcparse.y"
4266 (yyval.i).val = (yyvsp[(1) - (3)].i).val | (yyvsp[(3) - (3)].i).val;
4267 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4269 break;
4271 case 258:
4272 #line 1879 "rcparse.y"
4274 (yyval.il) = (yyvsp[(2) - (2)].il);
4276 break;
4278 case 259:
4279 #line 1888 "rcparse.y"
4281 (yyval.il) = (yyvsp[(1) - (1)].i).val;
4283 break;
4285 case 260:
4286 #line 1899 "rcparse.y"
4288 (yyval.i) = (yyvsp[(1) - (1)].i);
4290 break;
4292 case 261:
4293 #line 1903 "rcparse.y"
4295 (yyval.i) = (yyvsp[(2) - (3)].i);
4297 break;
4299 case 262:
4300 #line 1907 "rcparse.y"
4302 (yyval.i).val = ~ (yyvsp[(2) - (2)].i).val;
4303 (yyval.i).dword = (yyvsp[(2) - (2)].i).dword;
4305 break;
4307 case 263:
4308 #line 1912 "rcparse.y"
4310 (yyval.i).val = (yyvsp[(1) - (3)].i).val * (yyvsp[(3) - (3)].i).val;
4311 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4313 break;
4315 case 264:
4316 #line 1917 "rcparse.y"
4318 (yyval.i).val = (yyvsp[(1) - (3)].i).val / (yyvsp[(3) - (3)].i).val;
4319 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4321 break;
4323 case 265:
4324 #line 1922 "rcparse.y"
4326 (yyval.i).val = (yyvsp[(1) - (3)].i).val % (yyvsp[(3) - (3)].i).val;
4327 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4329 break;
4331 case 266:
4332 #line 1927 "rcparse.y"
4334 (yyval.i).val = (yyvsp[(1) - (3)].i).val + (yyvsp[(3) - (3)].i).val;
4335 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4337 break;
4339 case 267:
4340 #line 1932 "rcparse.y"
4342 (yyval.i).val = (yyvsp[(1) - (3)].i).val - (yyvsp[(3) - (3)].i).val;
4343 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4345 break;
4347 case 268:
4348 #line 1937 "rcparse.y"
4350 (yyval.i).val = (yyvsp[(1) - (3)].i).val & (yyvsp[(3) - (3)].i).val;
4351 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4353 break;
4355 case 269:
4356 #line 1942 "rcparse.y"
4358 (yyval.i).val = (yyvsp[(1) - (3)].i).val ^ (yyvsp[(3) - (3)].i).val;
4359 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4361 break;
4363 case 270:
4364 #line 1947 "rcparse.y"
4366 (yyval.i).val = (yyvsp[(1) - (3)].i).val | (yyvsp[(3) - (3)].i).val;
4367 (yyval.i).dword = (yyvsp[(1) - (3)].i).dword || (yyvsp[(3) - (3)].i).dword;
4369 break;
4372 /* Line 1267 of yacc.c. */
4373 #line 4374 "rcparse.c"
4374 default: break;
4376 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
4378 YYPOPSTACK (yylen);
4379 yylen = 0;
4380 YY_STACK_PRINT (yyss, yyssp);
4382 *++yyvsp = yyval;
4385 /* Now `shift' the result of the reduction. Determine what state
4386 that goes to, based on the state we popped back to and the rule
4387 number reduced by. */
4389 yyn = yyr1[yyn];
4391 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
4392 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4393 yystate = yytable[yystate];
4394 else
4395 yystate = yydefgoto[yyn - YYNTOKENS];
4397 goto yynewstate;
4400 /*------------------------------------.
4401 | yyerrlab -- here on detecting error |
4402 `------------------------------------*/
4403 yyerrlab:
4404 /* If not already recovering from an error, report this error. */
4405 if (!yyerrstatus)
4407 ++yynerrs;
4408 #if ! YYERROR_VERBOSE
4409 yyerror (YY_("syntax error"));
4410 #else
4412 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
4413 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
4415 YYSIZE_T yyalloc = 2 * yysize;
4416 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
4417 yyalloc = YYSTACK_ALLOC_MAXIMUM;
4418 if (yymsg != yymsgbuf)
4419 YYSTACK_FREE (yymsg);
4420 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
4421 if (yymsg)
4422 yymsg_alloc = yyalloc;
4423 else
4425 yymsg = yymsgbuf;
4426 yymsg_alloc = sizeof yymsgbuf;
4430 if (0 < yysize && yysize <= yymsg_alloc)
4432 (void) yysyntax_error (yymsg, yystate, yychar);
4433 yyerror (yymsg);
4435 else
4437 yyerror (YY_("syntax error"));
4438 if (yysize != 0)
4439 goto yyexhaustedlab;
4442 #endif
4447 if (yyerrstatus == 3)
4449 /* If just tried and failed to reuse look-ahead token after an
4450 error, discard it. */
4452 if (yychar <= YYEOF)
4454 /* Return failure if at end of input. */
4455 if (yychar == YYEOF)
4456 YYABORT;
4458 else
4460 yydestruct ("Error: discarding",
4461 yytoken, &yylval);
4462 yychar = YYEMPTY;
4466 /* Else will try to reuse look-ahead token after shifting the error
4467 token. */
4468 goto yyerrlab1;
4471 /*---------------------------------------------------.
4472 | yyerrorlab -- error raised explicitly by YYERROR. |
4473 `---------------------------------------------------*/
4474 yyerrorlab:
4476 /* Pacify compilers like GCC when the user code never invokes
4477 YYERROR and the label yyerrorlab therefore never appears in user
4478 code. */
4479 if (/*CONSTCOND*/ 0)
4480 goto yyerrorlab;
4482 /* Do not reclaim the symbols of the rule which action triggered
4483 this YYERROR. */
4484 YYPOPSTACK (yylen);
4485 yylen = 0;
4486 YY_STACK_PRINT (yyss, yyssp);
4487 yystate = *yyssp;
4488 goto yyerrlab1;
4491 /*-------------------------------------------------------------.
4492 | yyerrlab1 -- common code for both syntax error and YYERROR. |
4493 `-------------------------------------------------------------*/
4494 yyerrlab1:
4495 yyerrstatus = 3; /* Each real token shifted decrements this. */
4497 for (;;)
4499 yyn = yypact[yystate];
4500 if (yyn != YYPACT_NINF)
4502 yyn += YYTERROR;
4503 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4505 yyn = yytable[yyn];
4506 if (0 < yyn)
4507 break;
4511 /* Pop the current state because it cannot handle the error token. */
4512 if (yyssp == yyss)
4513 YYABORT;
4516 yydestruct ("Error: popping",
4517 yystos[yystate], yyvsp);
4518 YYPOPSTACK (1);
4519 yystate = *yyssp;
4520 YY_STACK_PRINT (yyss, yyssp);
4523 if (yyn == YYFINAL)
4524 YYACCEPT;
4526 *++yyvsp = yylval;
4529 /* Shift the error token. */
4530 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
4532 yystate = yyn;
4533 goto yynewstate;
4536 /*-------------------------------------.
4537 | yyacceptlab -- YYACCEPT comes here. |
4538 `-------------------------------------*/
4539 yyacceptlab:
4540 yyresult = 0;
4541 goto yyreturn;
4543 /*-----------------------------------.
4544 | yyabortlab -- YYABORT comes here. |
4545 `-----------------------------------*/
4546 yyabortlab:
4547 yyresult = 1;
4548 goto yyreturn;
4550 #ifndef yyoverflow
4551 /*-------------------------------------------------.
4552 | yyexhaustedlab -- memory exhaustion comes here. |
4553 `-------------------------------------------------*/
4554 yyexhaustedlab:
4555 yyerror (YY_("memory exhausted"));
4556 yyresult = 2;
4557 /* Fall through. */
4558 #endif
4560 yyreturn:
4561 if (yychar != YYEOF && yychar != YYEMPTY)
4562 yydestruct ("Cleanup: discarding lookahead",
4563 yytoken, &yylval);
4564 /* Do not reclaim the symbols of the rule which action triggered
4565 this YYABORT or YYACCEPT. */
4566 YYPOPSTACK (yylen);
4567 YY_STACK_PRINT (yyss, yyssp);
4568 while (yyssp != yyss)
4570 yydestruct ("Cleanup: popping",
4571 yystos[*yyssp], yyvsp);
4572 YYPOPSTACK (1);
4574 #ifndef yyoverflow
4575 if (yyss != yyssa)
4576 YYSTACK_FREE (yyss);
4577 #endif
4578 #if YYERROR_VERBOSE
4579 if (yymsg != yymsgbuf)
4580 YYSTACK_FREE (yymsg);
4581 #endif
4582 /* Make sure YYID is used. */
4583 return YYID (yyresult);
4587 #line 1953 "rcparse.y"
4590 /* Set the language from the command line. */
4592 void
4593 rcparse_set_language (int lang)
4595 language = lang;