diff options
Diffstat (limited to 'contrib/binutils/binutils/rcparse.c')
| -rw-r--r-- | contrib/binutils/binutils/rcparse.c | 3447 | 
1 files changed, 0 insertions, 3447 deletions
diff --git a/contrib/binutils/binutils/rcparse.c b/contrib/binutils/binutils/rcparse.c deleted file mode 100644 index 9add78f384b8..000000000000 --- a/contrib/binutils/binutils/rcparse.c +++ /dev/null @@ -1,3447 +0,0 @@ -/* A Bison parser, made from rcparse.y -   by GNU bison 1.35.  */ - -#define YYBISON 1  /* Identify Bison output.  */ - -# define	BEG	257 -# define	END	258 -# define	ACCELERATORS	259 -# define	VIRTKEY	260 -# define	ASCII	261 -# define	NOINVERT	262 -# define	SHIFT	263 -# define	CONTROL	264 -# define	ALT	265 -# define	BITMAP	266 -# define	CURSOR	267 -# define	DIALOG	268 -# define	DIALOGEX	269 -# define	EXSTYLE	270 -# define	CAPTION	271 -# define	CLASS	272 -# define	STYLE	273 -# define	AUTO3STATE	274 -# define	AUTOCHECKBOX	275 -# define	AUTORADIOBUTTON	276 -# define	CHECKBOX	277 -# define	COMBOBOX	278 -# define	CTEXT	279 -# define	DEFPUSHBUTTON	280 -# define	EDITTEXT	281 -# define	GROUPBOX	282 -# define	LISTBOX	283 -# define	LTEXT	284 -# define	PUSHBOX	285 -# define	PUSHBUTTON	286 -# define	RADIOBUTTON	287 -# define	RTEXT	288 -# define	SCROLLBAR	289 -# define	STATE3	290 -# define	USERBUTTON	291 -# define	BEDIT	292 -# define	HEDIT	293 -# define	IEDIT	294 -# define	FONT	295 -# define	ICON	296 -# define	LANGUAGE	297 -# define	CHARACTERISTICS	298 -# define	VERSIONK	299 -# define	MENU	300 -# define	MENUEX	301 -# define	MENUITEM	302 -# define	SEPARATOR	303 -# define	POPUP	304 -# define	CHECKED	305 -# define	GRAYED	306 -# define	HELP	307 -# define	INACTIVE	308 -# define	MENUBARBREAK	309 -# define	MENUBREAK	310 -# define	MESSAGETABLE	311 -# define	RCDATA	312 -# define	STRINGTABLE	313 -# define	VERSIONINFO	314 -# define	FILEVERSION	315 -# define	PRODUCTVERSION	316 -# define	FILEFLAGSMASK	317 -# define	FILEFLAGS	318 -# define	FILEOS	319 -# define	FILETYPE	320 -# define	FILESUBTYPE	321 -# define	BLOCKSTRINGFILEINFO	322 -# define	BLOCKVARFILEINFO	323 -# define	VALUE	324 -# define	BLOCK	325 -# define	MOVEABLE	326 -# define	FIXED	327 -# define	PURE	328 -# define	IMPURE	329 -# define	PRELOAD	330 -# define	LOADONCALL	331 -# define	DISCARDABLE	332 -# define	NOT	333 -# define	QUOTEDSTRING	334 -# define	STRING	335 -# define	NUMBER	336 -# define	SIZEDSTRING	337 -# define	IGNORED_TOKEN	338 -# define	NEG	339 - -#line 1 "rcparse.y" - /* rcparse.y -- parser for Windows rc files -   Copyright 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. -   Written by Ian Lance Taylor, Cygnus Support. - -   This file is part of GNU Binutils. - -   This program is free software; you can redistribute it and/or modify -   it under the terms of the GNU General Public License as published by -   the Free Software Foundation; either version 2 of the License, or -   (at your option) any later version. - -   This program is distributed in the hope that it will be useful, -   but WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -   GNU General Public License for more details. - -   You should have received a copy of the GNU General Public License -   along with this program; if not, write to the Free Software -   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -   02111-1307, USA.  */ - -/* This is a parser for Windows rc files.  It is based on the parser -   by Gunther Ebert <gunther.ebert@ixos-leipzig.de>.  */ - -#include "bfd.h" -#include "bucomm.h" -#include "libiberty.h" -#include "windres.h" -#include "safe-ctype.h" - -/* The current language.  */ - -static unsigned short language; - -/* The resource information during a sub statement.  */ - -static struct res_res_info sub_res_info; - -/* Dialog information.  This is built by the nonterminals styles and -   controls.  */ - -static struct dialog dialog; - -/* This is used when building a style.  It is modified by the -   nonterminal styleexpr.  */ - -static unsigned long style; - -/* These are used when building a control.  They are set before using -   control_params.  */ - -static unsigned long base_style; -static unsigned long default_style; -static unsigned long class; - - -#line 58 "rcparse.y" -#ifndef YYSTYPE -typedef union -{ -  struct accelerator acc; -  struct accelerator *pacc; -  struct dialog_control *dialog_control; -  struct menuitem *menuitem; -  struct -  { -    struct rcdata_item *first; -    struct rcdata_item *last; -  } rcdata; -  struct rcdata_item *rcdata_item; -  struct stringtable_data *stringtable; -  struct fixed_versioninfo *fixver; -  struct ver_info *verinfo; -  struct ver_stringinfo *verstring; -  struct ver_varinfo *vervar; -  struct res_id id; -  struct res_res_info res_info; -  struct -  { -    unsigned short on; -    unsigned short off; -  } memflags; -  struct -  { -    unsigned long val; -    /* Nonzero if this number was explicitly specified as long.  */ -    int dword; -  } i; -  unsigned long il; -  unsigned short is; -  const char *s; -  struct -  { -    unsigned long length; -    const char *s; -  } ss; -} yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - - - -#define	YYFINAL		483 -#define	YYFLAG		-32768 -#define	YYNTBASE	99 - -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 339 ? yytranslate[x] : 189) - -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const char yytranslate[] = -{ -       0,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,    92,    87,     2, -      97,    98,    90,    88,    95,    89,     2,    91,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,    96,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,    86,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,    85,     2,    93,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     1,     3,     4,     5, -       6,     7,     8,     9,    10,    11,    12,    13,    14,    15, -      16,    17,    18,    19,    20,    21,    22,    23,    24,    25, -      26,    27,    28,    29,    30,    31,    32,    33,    34,    35, -      36,    37,    38,    39,    40,    41,    42,    43,    44,    45, -      46,    47,    48,    49,    50,    51,    52,    53,    54,    55, -      56,    57,    58,    59,    60,    61,    62,    63,    64,    65, -      66,    67,    68,    69,    70,    71,    72,    73,    74,    75, -      76,    77,    78,    79,    80,    81,    82,    83,    84,    94 -}; - -#if YYDEBUG -static const short yyprhs[] = -{ -       0,     0,     1,     4,     7,    10,    13,    16,    19,    22, -      25,    28,    31,    34,    37,    40,    43,    46,    53,    54, -      57,    60,    65,    67,    69,    71,    75,    78,    80,    82, -      84,    86,    88,    90,    95,   100,   101,   115,   116,   130, -     131,   146,   147,   151,   152,   156,   160,   164,   168,   172, -     178,   185,   193,   202,   206,   210,   215,   219,   220,   223, -     224,   228,   229,   233,   234,   238,   239,   243,   244,   248, -     249,   253,   265,   278,   291,   305,   306,   310,   311,   315, -     316,   320,   321,   325,   326,   330,   337,   346,   357,   369, -     370,   374,   375,   379,   380,   384,   385,   389,   390,   394, -     395,   399,   400,   404,   405,   409,   410,   414,   415,   432, -     440,   450,   461,   462,   464,   467,   468,   472,   473,   477, -     478,   482,   483,   487,   492,   497,   501,   508,   509,   512, -     517,   520,   527,   528,   532,   535,   537,   539,   541,   543, -     545,   547,   554,   555,   558,   561,   565,   571,   574,   580, -     587,   595,   605,   610,   617,   618,   621,   622,   624,   626, -     628,   632,   636,   637,   644,   645,   649,   654,   661,   666, -     673,   674,   681,   688,   692,   696,   700,   704,   708,   709, -     718,   726,   727,   733,   734,   738,   740,   742,   744,   747, -     750,   753,   755,   756,   759,   763,   768,   772,   773,   776, -     777,   780,   782,   784,   786,   788,   790,   792,   794,   796, -     798,   800,   803,   807,   812,   814,   818,   819,   821,   824, -     826,   828,   832,   835,   838,   842,   846,   850,   854,   858, -     862,   866,   870,   873,   875,   877,   881,   884,   888,   892, -     896,   900,   904,   908,   912 -}; -static const short yyrhs[] = -{ -      -1,    99,   100,     0,    99,   106,     0,    99,   107,     0, -      99,   108,     0,    99,   146,     0,    99,   147,     0,    99, -     148,     0,    99,   149,     0,    99,   154,     0,    99,   157, -       0,    99,   158,     0,    99,   163,     0,    99,   166,     0, -      99,   167,     0,    99,    84,     0,   172,     5,   175,     3, -     101,     4,     0,     0,   101,   102,     0,   103,   186,     0, -     103,   186,    95,   104,     0,    80,     0,   187,     0,   105, -       0,   104,    95,   105,     0,   104,   105,     0,     6,     0, -       7,     0,     8,     0,     9,     0,    10,     0,    11,     0, -     172,    12,   177,   179,     0,   172,    13,   176,   179,     0, -       0,   172,    14,   177,   112,   187,   183,   183,   183,   109, -     113,     3,   114,     4,     0,     0,   172,    15,   177,   112, -     187,   183,   183,   183,   110,   113,     3,   114,     4,     0, -       0,   172,    15,   177,   112,   187,   183,   183,   183,   183, -     111,   113,     3,   114,     4,     0,     0,    16,    96,   184, -       0,     0,   113,    17,    80,     0,   113,    18,   172,     0, -     113,    19,   180,     0,   113,    16,   184,     0,   113,    18, -      80,     0,   113,    41,   184,    95,    80,     0,   113,    41, -     184,    95,    80,   183,     0,   113,    41,   184,    95,    80, -     183,   183,     0,   113,    41,   184,    95,    80,   183,   183, -     183,     0,   113,    46,   172,     0,   113,    44,   184,     0, -     113,    43,   184,   183,     0,   113,    45,   184,     0,     0, -     114,   115,     0,     0,    20,   116,   137,     0,     0,    21, -     117,   137,     0,     0,    22,   118,   137,     0,     0,    38, -     119,   137,     0,     0,    23,   120,   137,     0,     0,    24, -     121,   137,     0,    10,   138,   184,   183,   140,   183,   183, -     183,   183,   182,   139,     0,    10,   138,   184,   183,   140, -     183,   183,   183,   183,   183,   183,   139,     0,    10,   138, -     184,    95,    80,   140,   183,   183,   183,   183,   182,   139, -       0,    10,   138,   184,    95,    80,   140,   183,   183,   183, -     183,   183,   183,   139,     0,     0,    25,   122,   137,     0, -       0,    26,   123,   137,     0,     0,    27,   124,   137,     0, -       0,    28,   125,   137,     0,     0,    39,   126,   137,     0, -      42,   174,   184,   183,   183,   139,     0,    42,   174,   184, -     183,   183,   183,   183,   139,     0,    42,   174,   184,   183, -     183,   183,   183,   142,   182,   139,     0,    42,   174,   184, -     183,   183,   183,   183,   142,   183,   183,   139,     0,     0, -      40,   127,   137,     0,     0,    29,   128,   137,     0,     0, -      30,   129,   137,     0,     0,    31,   130,   137,     0,     0, -      32,   131,   137,     0,     0,    33,   132,   137,     0,     0, -      34,   133,   137,     0,     0,    35,   134,   137,     0,     0, -      36,   135,   137,     0,     0,    37,    80,    95,   184,    95, -     184,    95,   184,    95,   184,    95,   184,    95,   136,   180, -     182,     0,   138,   184,   183,   183,   183,   183,   139,     0, -     138,   184,   183,   183,   183,   183,   144,   182,   139,     0, -     138,   184,   183,   183,   183,   183,   144,   183,   183,   139, -       0,     0,    80,     0,    80,    95,     0,     0,     3,   159, -       4,     0,     0,    95,   141,   180,     0,     0,    95,   143, -     180,     0,     0,    95,   145,   180,     0,   172,    41,   176, -     179,     0,   172,    42,   176,   179,     0,    43,   184,   183, -       0,   172,    46,   175,     3,   150,     4,     0,     0,   150, -     151,     0,    48,    80,   183,   152,     0,    48,    49,     0, -      50,    80,   152,     3,   150,     4,     0,     0,   152,    95, -     153,     0,   152,   153,     0,    51,     0,    52,     0,    53, -       0,    54,     0,    55,     0,    56,     0,   172,    47,   175, -       3,   155,     4,     0,     0,   155,   156,     0,    48,    80, -       0,    48,    80,   183,     0,    48,    80,   183,   183,   182, -       0,    48,    49,     0,    50,    80,     3,   155,     4,     0, -      50,    80,   183,     3,   155,     4,     0,    50,    80,   183, -     183,     3,   155,     4,     0,    50,    80,   183,   183,   183, -     182,     3,   155,     4,     0,   172,    57,   177,   179,     0, -     172,    58,   175,     3,   159,     4,     0,     0,   160,   161, -       0,     0,   162,     0,    83,     0,   185,     0,   162,    95, -      83,     0,   162,    95,   185,     0,     0,    59,   175,     3, -     164,   165,     4,     0,     0,   165,   184,    80,     0,   165, -     184,    95,    80,     0,   172,   172,   175,     3,   159,     4, -       0,   172,   172,   175,   179,     0,   172,    60,   168,     3, -     169,     4,     0,     0,   168,    61,   184,   183,   183,   183, -       0,   168,    62,   184,   183,   183,   183,     0,   168,    63, -     184,     0,   168,    64,   184,     0,   168,    65,   184,     0, -     168,    66,   184,     0,   168,    67,   184,     0,     0,   169, -      68,     3,    71,     3,   170,     4,     4,     0,   169,    69, -       3,    70,    80,   171,     4,     0,     0,   170,    70,    80, -      95,    80,     0,     0,   171,   183,   183,     0,   187,     0, -      81,     0,    80,     0,    80,    95,     0,    81,    95,     0, -     187,    95,     0,   173,     0,     0,   175,   178,     0,   175, -      44,   184,     0,   175,    43,   184,   183,     0,   175,    45, -     184,     0,     0,   176,   178,     0,     0,   177,   178,     0, -      72,     0,    73,     0,    74,     0,    75,     0,    76,     0, -      77,     0,    78,     0,    80,     0,    81,     0,   181,     0, -      79,   181,     0,   180,    85,   181,     0,   180,    85,    79, -     181,     0,    82,     0,    97,   184,    98,     0,     0,   183, -       0,    95,   184,     0,   185,     0,    82,     0,    97,   185, -      98,     0,    93,   185,     0,    89,   185,     0,   185,    90, -     185,     0,   185,    91,   185,     0,   185,    92,   185,     0, -     185,    88,   185,     0,   185,    89,   185,     0,   185,    87, -     185,     0,   185,    86,   185,     0,   185,    85,   185,     0, -      95,   187,     0,   188,     0,    82,     0,    97,   185,    98, -       0,    93,   185,     0,   188,    90,   185,     0,   188,    91, -     185,     0,   188,    92,   185,     0,   188,    88,   185,     0, -     188,    89,   185,     0,   188,    87,   185,     0,   188,    86, -     185,     0,   188,    85,   185,     0 -}; - -#endif - -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ -       0,   154,   156,   157,   158,   159,   160,   161,   162,   163, -     164,   165,   166,   167,   168,   169,   170,   175,   185,   190, -     210,   216,   227,   249,   258,   263,   268,   274,   279,   284, -     288,   292,   296,   304,   316,   328,   328,   354,   354,   381, -     381,   411,   416,   422,   424,   430,   434,   439,   443,   447, -     460,   475,   490,   505,   509,   513,   517,   523,   525,   535, -     535,   546,   546,   556,   556,   566,   566,   579,   579,   589, -     589,   599,   610,   619,   632,   643,   643,   653,   653,   663, -     663,   673,   673,   683,   683,   696,   701,   707,   713,   719, -     719,   732,   732,   742,   742,   752,   752,   762,   762,   772, -     772,   782,   782,   792,   792,   802,   802,   812,   812,   829, -     842,   853,   864,   869,   873,   879,   884,   892,   892,   898, -     898,   904,   904,   912,   924,   937,   946,   956,   961,   977, -     982,   986,   992,   997,  1001,  1007,  1012,  1016,  1020,  1024, -    1028,  1036,  1046,  1051,  1067,  1072,  1076,  1080,  1084,  1088, -    1092,  1096,  1105,  1117,  1130,  1130,  1141,  1147,  1153,  1162, -    1170,  1179,  1192,  1192,  1198,  1200,  1207,  1219,  1227,  1238, -    1248,  1255,  1261,  1267,  1272,  1277,  1282,  1287,  1300,  1305, -    1309,  1315,  1320,  1326,  1331,  1339,  1345,  1360,  1365,  1369, -    1376,  1382,  1398,  1406,  1412,  1417,  1422,  1431,  1438,  1448, -    1455,  1466,  1472,  1477,  1482,  1487,  1492,  1497,  1506,  1511, -    1527,  1532,  1536,  1540,  1546,  1551,  1559,  1564,  1572,  1581, -    1590,  1595,  1599,  1604,  1609,  1614,  1619,  1624,  1629,  1634, -    1639,  1644,  1654,  1663,  1674,  1679,  1683,  1688,  1693,  1698, -    1703,  1708,  1713,  1718,  1723 -}; -#endif - - -#if (YYDEBUG) || defined YYERROR_VERBOSE - -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = -{ -  "$", "error", "$undefined.", "BEG", "END", "ACCELERATORS", "VIRTKEY",  -  "ASCII", "NOINVERT", "SHIFT", "CONTROL", "ALT", "BITMAP", "CURSOR",  -  "DIALOG", "DIALOGEX", "EXSTYLE", "CAPTION", "CLASS", "STYLE",  -  "AUTO3STATE", "AUTOCHECKBOX", "AUTORADIOBUTTON", "CHECKBOX", "COMBOBOX",  -  "CTEXT", "DEFPUSHBUTTON", "EDITTEXT", "GROUPBOX", "LISTBOX", "LTEXT",  -  "PUSHBOX", "PUSHBUTTON", "RADIOBUTTON", "RTEXT", "SCROLLBAR", "STATE3",  -  "USERBUTTON", "BEDIT", "HEDIT", "IEDIT", "FONT", "ICON", "LANGUAGE",  -  "CHARACTERISTICS", "VERSIONK", "MENU", "MENUEX", "MENUITEM",  -  "SEPARATOR", "POPUP", "CHECKED", "GRAYED", "HELP", "INACTIVE",  -  "MENUBARBREAK", "MENUBREAK", "MESSAGETABLE", "RCDATA", "STRINGTABLE",  -  "VERSIONINFO", "FILEVERSION", "PRODUCTVERSION", "FILEFLAGSMASK",  -  "FILEFLAGS", "FILEOS", "FILETYPE", "FILESUBTYPE", "BLOCKSTRINGFILEINFO",  -  "BLOCKVARFILEINFO", "VALUE", "BLOCK", "MOVEABLE", "FIXED", "PURE",  -  "IMPURE", "PRELOAD", "LOADONCALL", "DISCARDABLE", "NOT", "QUOTEDSTRING",  -  "STRING", "NUMBER", "SIZEDSTRING", "IGNORED_TOKEN", "'|'", "'^'", "'&'",  -  "'+'", "'-'", "'*'", "'/'", "'%'", "'~'", "NEG", "','", "'='", "'('",  -  "')'", "input", "accelerator", "acc_entries", "acc_entry", "acc_event",  -  "acc_options", "acc_option", "bitmap", "cursor", "dialog", "@1", "@2",  -  "@3", "exstyle", "styles", "controls", "control", "@4", "@5", "@6",  -  "@7", "@8", "@9", "@10", "@11", "@12", "@13", "@14", "@15", "@16",  -  "@17", "@18", "@19", "@20", "@21", "@22", "@23", "@24",  -  "control_params", "optstringc", "opt_control_data", "control_styleexpr",  -  "@25", "icon_styleexpr", "@26", "control_params_styleexpr", "@27",  -  "font", "icon", "language", "menu", "menuitems", "menuitem",  -  "menuitem_flags", "menuitem_flag", "menuex", "menuexitems",  -  "menuexitem", "messagetable", "rcdata", "optrcdata_data", "@28",  -  "optrcdata_data_int", "rcdata_data", "stringtable", "@29",  -  "string_data", "user", "versioninfo", "fixedverinfo", "verblocks",  -  "vervals", "vertrans", "id", "resname", "resref", "suboptions",  -  "memflags_move_discard", "memflags_move", "memflag", "file_name",  -  "styleexpr", "parennumber", "optcnumexpr", "cnumexpr", "numexpr",  -  "sizednumexpr", "cposnumexpr", "posnumexpr", "sizedposnumexpr", 0 -}; -#endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ -       0,    99,    99,    99,    99,    99,    99,    99,    99,    99, -      99,    99,    99,    99,    99,    99,    99,   100,   101,   101, -     102,   102,   103,   103,   104,   104,   104,   105,   105,   105, -     105,   105,   105,   106,   107,   109,   108,   110,   108,   111, -     108,   112,   112,   113,   113,   113,   113,   113,   113,   113, -     113,   113,   113,   113,   113,   113,   113,   114,   114,   116, -     115,   117,   115,   118,   115,   119,   115,   120,   115,   121, -     115,   115,   115,   115,   115,   122,   115,   123,   115,   124, -     115,   125,   115,   126,   115,   115,   115,   115,   115,   127, -     115,   128,   115,   129,   115,   130,   115,   131,   115,   132, -     115,   133,   115,   134,   115,   135,   115,   136,   115,   137, -     137,   137,   138,   138,   138,   139,   139,   141,   140,   143, -     142,   145,   144,   146,   147,   148,   149,   150,   150,   151, -     151,   151,   152,   152,   152,   153,   153,   153,   153,   153, -     153,   154,   155,   155,   156,   156,   156,   156,   156,   156, -     156,   156,   157,   158,   160,   159,   161,   161,   162,   162, -     162,   162,   164,   163,   165,   165,   165,   166,   166,   167, -     168,   168,   168,   168,   168,   168,   168,   168,   169,   169, -     169,   170,   170,   171,   171,   172,   172,   173,   173,   173, -     174,   174,   175,   175,   175,   175,   175,   176,   176,   177, -     177,   178,   178,   178,   178,   178,   178,   178,   179,   179, -     180,   180,   180,   180,   181,   181,   182,   182,   183,   184, -     185,   185,   185,   185,   185,   185,   185,   185,   185,   185, -     185,   185,   186,   187,   188,   188,   188,   188,   188,   188, -     188,   188,   188,   188,   188 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ -       0,     0,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     6,     0,     2, -       2,     4,     1,     1,     1,     3,     2,     1,     1,     1, -       1,     1,     1,     4,     4,     0,    13,     0,    13,     0, -      14,     0,     3,     0,     3,     3,     3,     3,     3,     5, -       6,     7,     8,     3,     3,     4,     3,     0,     2,     0, -       3,     0,     3,     0,     3,     0,     3,     0,     3,     0, -       3,    11,    12,    12,    13,     0,     3,     0,     3,     0, -       3,     0,     3,     0,     3,     6,     8,    10,    11,     0, -       3,     0,     3,     0,     3,     0,     3,     0,     3,     0, -       3,     0,     3,     0,     3,     0,     3,     0,    16,     7, -       9,    10,     0,     1,     2,     0,     3,     0,     3,     0, -       3,     0,     3,     4,     4,     3,     6,     0,     2,     4, -       2,     6,     0,     3,     2,     1,     1,     1,     1,     1, -       1,     6,     0,     2,     2,     3,     5,     2,     5,     6, -       7,     9,     4,     6,     0,     2,     0,     1,     1,     1, -       3,     3,     0,     6,     0,     3,     4,     6,     4,     6, -       0,     6,     6,     3,     3,     3,     3,     3,     0,     8, -       7,     0,     5,     0,     3,     1,     1,     1,     2,     2, -       2,     1,     0,     2,     3,     4,     3,     0,     2,     0, -       2,     1,     1,     1,     1,     1,     1,     1,     1,     1, -       1,     2,     3,     4,     1,     3,     0,     1,     2,     1, -       1,     3,     2,     2,     3,     3,     3,     3,     3,     3, -       3,     3,     2,     1,     1,     3,     2,     3,     3,     3, -       3,     3,     3,     3,     3 -}; - -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE -   doesn't specify something else to do.  Zero means the default is an -   error. */ -static const short yydefact[] = -{ -       1,     0,     0,   192,   186,   234,    16,     0,     0,     2, -       3,     4,     5,     6,     7,     8,     9,    10,    11,    12, -      13,    14,    15,     0,   185,   233,   220,     0,     0,     0, -       0,   219,     0,   236,     0,   192,   199,   197,   199,   199, -     197,   197,   192,   192,   199,   192,   170,   192,     0,     0, -       0,     0,     0,     0,     0,     0,   223,   222,     0,     0, -     125,     0,     0,     0,     0,     0,     0,     0,     0,   162, -       0,     0,     0,   201,   202,   203,   204,   205,   206,   207, -     193,   235,     0,     0,     0,    41,    41,     0,     0,     0, -       0,     0,     0,     0,     0,   244,   243,   242,   240,   241, -     237,   238,   239,   221,   218,   231,   230,   229,   227,   228, -     224,   225,   226,   164,     0,   194,   196,    18,   208,   209, -     200,    33,   198,    34,     0,     0,     0,   123,   124,   127, -     142,   152,   154,   178,     0,     0,     0,     0,     0,     0, -       0,   154,   168,     0,   195,     0,     0,     0,     0,     0, -       0,     0,   156,     0,     0,     0,   173,   174,   175,   176, -     177,     0,   163,     0,    17,    22,    19,     0,    23,    42, -       0,     0,   126,     0,     0,   128,   141,     0,     0,   143, -     153,   158,   155,   157,   159,   169,     0,     0,     0,     0, -     167,   165,     0,     0,    20,     0,     0,   130,     0,   132, -     147,   144,     0,     0,     0,     0,     0,     0,   166,   232, -       0,    35,    37,   132,     0,   145,   142,     0,   160,   161, -       0,     0,   171,   172,    27,    28,    29,    30,    31,    32, -      21,    24,    43,    43,    39,   129,   127,   135,   136,   137, -     138,   139,   140,     0,   134,   216,     0,   142,     0,   181, -     183,     0,    26,     0,     0,    43,     0,   133,   146,   217, -     148,     0,   142,   216,     0,     0,    25,    57,     0,     0, -       0,     0,     0,     0,     0,     0,     0,    57,     0,   131, -     149,     0,     0,     0,     0,   180,     0,     0,    47,    44, -      48,    45,     0,   214,     0,    46,   210,     0,     0,    54, -      56,    53,     0,    57,   150,   142,   179,     0,   184,    36, -     112,    59,    61,    63,    67,    69,    75,    77,    79,    81, -      91,    93,    95,    97,    99,   101,   103,   105,     0,    65, -      83,    89,     0,    58,   211,     0,     0,     0,    55,    38, -       0,     0,     0,   113,     0,   112,   112,   112,   112,   112, -     112,   112,   112,   112,   112,   112,   112,   112,   112,   112, -     112,   112,     0,   112,   112,   112,   187,     0,   191,     0, -       0,   215,     0,   212,    49,    40,   151,   182,   114,     0, -      60,     0,    62,    64,    68,    70,    76,    78,    80,    82, -      92,    94,    96,    98,   100,   102,   104,   106,     0,    66, -      84,    90,   188,   189,     0,   190,   213,    50,     0,     0, -       0,     0,     0,    51,     0,   117,     0,     0,     0,   115, -      52,     0,     0,     0,     0,     0,   154,    85,     0,     0, -     118,     0,     0,     0,     0,   115,     0,     0,   115,     0, -     116,   119,    86,   216,     0,   216,   121,   109,   216,     0, -       0,   115,   217,   216,   115,   217,     0,   115,   217,     0, -     120,    87,   115,   115,   217,    71,   115,   122,   110,   115, -       0,    88,    73,   115,    72,   111,     0,    74,   107,     0, -     216,   108,     0,     0 -}; - -static const short yydefgoto[] = -{ -       1,     9,   145,   166,   167,   230,   231,    10,    11,    12, -     232,   233,   255,   125,   253,   287,   333,   345,   346,   347, -     363,   348,   349,   350,   351,   352,   353,   364,   365,   354, -     355,   356,   357,   358,   359,   360,   361,   479,   380,   381, -     427,   416,   422,   443,   450,   448,   456,    13,    14,    15, -      16,   149,   175,   214,   244,    17,   150,   179,    18,    19, -     151,   152,   182,   183,    20,   113,   143,    21,    22,    93, -     153,   264,   265,    23,   368,   369,    32,    84,    83,    80, -     121,   295,   296,   258,   259,   104,    31,   194,    24,    25 -}; - -static const short yypact[] = -{ -  -32768,    13,   412,-32768,-32768,-32768,-32768,   412,   412,-32768, -  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -  -32768,-32768,-32768,   111,-32768,   511,-32768,   412,   412,   412, -     -79,   600,   244,-32768,   562,-32768,-32768,-32768,-32768,-32768, -  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   412,   412, -     412,   412,   412,   412,   412,   412,-32768,-32768,   576,   412, -  -32768,   412,   412,   412,   412,   412,   412,   412,   412,-32768, -     412,   412,   412,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -  -32768,-32768,   256,   603,   603,   297,   297,   603,   603,   280, -     337,   603,   345,   100,   231,   607,   613,   567,   172,   172, -  -32768,-32768,-32768,-32768,-32768,   607,   613,   567,   172,   172, -  -32768,-32768,-32768,-32768,   -79,-32768,-32768,-32768,-32768,-32768, -  -32768,-32768,-32768,-32768,   -60,    63,    63,-32768,-32768,-32768, -  -32768,-32768,-32768,-32768,   412,   412,   412,   412,   412,   412, -     412,-32768,-32768,     7,-32768,     5,   412,   -79,   -79,    33, -      34,    35,   254,    51,   -79,   -79,-32768,-32768,-32768,-32768, -  -32768,    36,-32768,    60,-32768,-32768,-32768,   -38,-32768,-32768, -     -79,   -79,-32768,   -39,    11,-32768,-32768,    59,    25,-32768, -  -32768,-32768,-32768,    27,   600,-32768,   127,   144,   -79,   -79, -  -32768,-32768,    74,    63,    87,   -79,   -79,-32768,   -79,-32768, -  -32768,   -79,    12,   294,   118,   128,   -79,   -79,-32768,-32768, -     700,-32768,   -79,-32768,    22,   -79,-32768,    14,-32768,   600, -     194,   121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -      23,-32768,-32768,-32768,-32768,   309,-32768,-32768,-32768,-32768, -  -32768,-32768,-32768,   661,-32768,   -79,    38,-32768,    16,-32768, -  -32768,   700,-32768,   383,   472,-32768,    42,-32768,-32768,-32768, -  -32768,   124,-32768,   -79,    10,     4,-32768,-32768,   412,   126, -     187,    99,   412,   412,   412,   412,   200,-32768,   480,-32768, -  -32768,   125,   204,   207,   135,-32768,   -79,   510,-32768,-32768, -  -32768,-32768,    49,-32768,   412,   136,-32768,   133,   -79,-32768, -  -32768,-32768,   547,-32768,-32768,-32768,-32768,   134,-32768,-32768, -     152,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   153,-32768, -  -32768,-32768,   374,-32768,-32768,   140,   112,   157,-32768,-32768, -     584,   138,   160,   148,   412,   152,   152,   152,   152,   152, -     152,   152,   152,   152,   152,   152,   152,   152,   152,   152, -     152,   152,   158,   152,   152,   152,   161,   163,-32768,   412, -     165,-32768,    49,-32768,   -79,-32768,-32768,-32768,-32768,   170, -  -32768,   412,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   412,-32768, -  -32768,-32768,-32768,-32768,   -79,-32768,-32768,   -79,   123,   183, -     -79,   184,   -79,   -79,   183,-32768,   -79,   -79,   412,    17, -  -32768,   -79,    99,   -79,   -79,   190,-32768,-32768,   -79,   -79, -     136,   -79,   -79,   412,   248,    18,   -79,   -79,    19,   195, -  -32768,-32768,-32768,   -79,   -79,   -79,-32768,-32768,   -79,   412, -      99,   245,   -79,   -79,   245,   -79,    99,   245,   -79,   196, -     136,-32768,   245,   245,   -79,-32768,   245,   136,-32768,   245, -     412,-32768,-32768,   245,-32768,-32768,   201,-32768,-32768,    99, -      64,-32768,   295,-32768 -}; - -static const short yypgoto[] = -{ -  -32768,-32768,-32768,-32768,-32768,-32768,  -206,-32768,-32768,-32768, -  -32768,-32768,-32768,   212,   -85,  -259,-32768,-32768,-32768,-32768, -  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   281,    -8, -    -212,  -104,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -  -32768,    78,-32768,   113,    92,-32768,  -204,-32768,-32768,-32768, -    -140,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -  -32768,-32768,-32768,   -21,-32768,-32768,   350,   139,   175,   475, -     416,  -329,  -257,  -258,    29,    -2,    -1,-32768,  -122,-32768 -}; - - -#define	YYLAST		717 - - -static const short yytable[] = -{ -      30,   161,    47,   147,   148,   282,    33,    34,   285,   164, -     197,   162,   246,   482,   283,   216,    59,   247,   302,   262, -     426,   426,   426,   168,   252,   236,    56,    57,    58,   224, -     225,   226,   227,   228,   229,   334,   146,   172,   176,   180, -     190,   198,   260,   261,   340,   266,   279,    95,    96,    97, -      98,    99,   100,   101,   102,   185,     2,   193,   281,    60, -     105,   106,   107,   108,   109,   110,   111,   112,   114,   115, -     116,   209,     3,   237,   238,   239,   240,   241,   242,   373, -     284,   173,   177,   174,   178,   165,   177,     5,   178,    26, -     173,   199,   174,   430,     4,     5,    27,     6,     7,    59, -      28,   341,     8,   133,    29,   202,     7,    59,   200,    59, -       8,    59,    59,   441,   446,   406,    35,   243,   251,   186, -     187,   460,   203,    36,    37,    38,    39,   467,   280,   304, -     204,   293,   154,   155,   156,   157,   158,   159,   160,   201, -     191,   163,   376,   144,   169,     5,   294,   205,   254,   336, -     480,   184,    40,    41,   208,   192,     7,    42,    43,    59, -       8,   134,   135,   136,   137,   138,   139,   140,    44,    45, -     278,    46,   177,   177,   178,   178,   170,   171,   292,    87, -      88,   293,   210,   188,   189,   451,   177,   454,   178,   220, -     457,   372,     4,     5,   293,   463,   294,   249,   221,   195, -     196,   250,   219,   414,     7,    26,   289,   305,     8,   294, -     370,   306,    27,    85,    86,   307,    28,   206,   207,    91, -      29,   336,   481,   442,   211,   212,   447,   213,   337,   342, -     215,   217,   343,   362,   141,   222,   223,   374,   371,   461, -     377,   234,   465,   378,   245,   468,   248,    69,   426,   291, -     471,   472,   440,   398,   474,   301,   402,   475,   403,   117, -     405,   477,    66,    67,    68,   408,   288,   290,     4,     5, -     297,   298,   299,   300,    70,    71,    72,   263,   415,   418, -       7,     4,     5,   129,     8,   433,   434,    70,    71,    72, -     449,   470,   335,     7,   286,   483,   478,     8,   126,    70, -      71,    72,   344,    73,    74,    75,    76,    77,    78,    79, -     421,   118,   119,   124,   256,   308,    73,    74,    75,    76, -      77,    78,    79,    70,    71,    72,   235,   338,    73,    74, -      75,    76,    77,    78,    79,   257,    26,   181,     0,     0, -     130,     0,   379,    27,     0,     0,     0,    28,   132,     0, -       0,    29,    73,    74,    75,    76,    77,    78,    79,     0, -     237,   238,   239,   240,   241,   242,     0,   404,     0,    73, -      74,    75,    76,    77,    78,    79,    26,   218,     0,   410, -      70,    71,    72,    27,     0,    82,   267,    28,    70,    71, -      72,    29,    89,    90,     0,    92,   411,    94,     0,   268, -     269,   270,   271,   407,   243,     0,     0,     0,   409,    73, -      74,    75,    76,    77,    78,    79,   425,    73,    74,    75, -      76,    77,    78,    79,   272,     0,   273,   274,   275,   276, -       0,   439,     0,   412,     0,     0,   413,     0,     0,   417, -       0,   419,   420,     0,     0,   423,   424,   459,   428,     0, -     429,     0,   431,   432,   366,   367,     5,   435,   436,     0, -     437,   438,     0,     0,     0,   444,   445,     7,   476,     0, -       0,     8,   452,   453,   455,   277,     0,   458,     0,     0, -       0,   462,   464,   303,   466,     0,     0,   469,   268,   269, -     270,   271,     0,   473,    26,     0,   268,   269,   270,   271, -     123,    27,     0,   127,   128,    28,     0,   131,     0,    29, -     142,     0,     0,   272,   309,   273,   274,   275,   276,     0, -     310,   272,     0,   273,   274,   275,   276,     0,     0,     0, -     311,   312,   313,   314,   315,   316,   317,   318,   319,   320, -     321,   322,   323,   324,   325,   326,   327,   328,   329,   330, -     331,   339,   332,     0,     0,     0,     0,   310,   120,   122, -     120,   120,   122,   122,     0,     0,   120,   311,   312,   313, -     314,   315,   316,   317,   318,   319,   320,   321,   322,   323, -     324,   325,   326,   327,   328,   329,   330,   331,   375,   332, -       0,     0,     0,     0,   310,     0,    48,    49,    50,    51, -      52,    53,    54,    55,   311,   312,   313,   314,   315,   316, -     317,   318,   319,   320,   321,   322,   323,   324,   325,   326, -     327,   328,   329,   330,   331,     0,   332,   382,   383,   384, -     385,   386,   387,   388,   389,   390,   391,   392,   393,   394, -     395,   396,   397,     0,   399,   400,   401,    61,    62,    63, -      64,    65,    66,    67,    68,    64,    65,    66,    67,    68, -      81,    61,    62,    63,    64,    65,    66,    67,    68,     0, -       0,     0,     0,     0,   103,    73,    74,    75,    76,    77, -      78,    79,     0,   118,   119,    61,    62,    63,    64,    65, -      66,    67,    68,    62,    63,    64,    65,    66,    67,    68, -      63,    64,    65,    66,    67,    68,   224,   225,   226,   227, -     228,   229,   237,   238,   239,   240,   241,   242 -}; - -static const short yycheck[] = -{ -       2,   141,    23,   125,   126,   263,     7,     8,     4,     4, -      49,     4,   216,     0,     4,     3,    95,     3,   277,     3, -       3,     3,     3,   145,   230,     3,    27,    28,    29,     6, -       7,     8,     9,    10,    11,   292,    96,     4,     4,     4, -       4,    80,     4,   247,   303,   251,     4,    48,    49,    50, -      51,    52,    53,    54,    55,     4,    43,    95,   262,    30, -      61,    62,    63,    64,    65,    66,    67,    68,    70,    71, -      72,   193,    59,    51,    52,    53,    54,    55,    56,   336, -      70,    48,    48,    50,    50,    80,    48,    82,    50,    82, -      48,    80,    50,   422,    81,    82,    89,    84,    93,    95, -      93,   305,    97,     3,    97,    80,    93,    95,    49,    95, -      97,    95,    95,    95,    95,   372,     5,    95,    95,    68, -      69,   450,    95,    12,    13,    14,    15,   456,     4,     4, -       3,    82,   134,   135,   136,   137,   138,   139,   140,    80, -      80,   143,     4,   114,   146,    82,    97,     3,   233,    85, -     479,   152,    41,    42,    80,    95,    93,    46,    47,    95, -      97,    61,    62,    63,    64,    65,    66,    67,    57,    58, -     255,    60,    48,    48,    50,    50,   147,   148,    79,    40, -      41,    82,    95,   154,   155,   443,    48,   445,    50,    71, -     448,    79,    81,    82,    82,   453,    97,     3,    70,   170, -     171,    80,   203,    80,    93,    82,    80,     3,    97,    97, -     332,     4,    89,    38,    39,    80,    93,   188,   189,    44, -      97,    85,   480,   435,   195,   196,   438,   198,    95,    95, -     201,   202,    80,    80,     3,   206,   207,    80,    98,   451, -      80,   212,   454,    95,   215,   457,   217,     3,     3,   270, -     462,   463,     4,    95,   466,   276,    95,   469,    95,     3, -      95,   473,    90,    91,    92,    95,   268,    80,    81,    82, -     272,   273,   274,   275,    43,    44,    45,   248,    95,    95, -      93,    81,    82,     3,    97,    95,   426,    43,    44,    45, -      95,    95,   294,    93,   265,     0,    95,    97,    86,    43, -      44,    45,   310,    72,    73,    74,    75,    76,    77,    78, -     414,    80,    81,    16,   236,   286,    72,    73,    74,    75, -      76,    77,    78,    43,    44,    45,   213,   298,    72,    73, -      74,    75,    76,    77,    78,   243,    82,    83,    -1,    -1, -       3,    -1,   344,    89,    -1,    -1,    -1,    93,     3,    -1, -      -1,    97,    72,    73,    74,    75,    76,    77,    78,    -1, -      51,    52,    53,    54,    55,    56,    -1,   369,    -1,    72, -      73,    74,    75,    76,    77,    78,    82,    83,    -1,   381, -      43,    44,    45,    89,    -1,    35,     3,    93,    43,    44, -      45,    97,    42,    43,    -1,    45,   398,    47,    -1,    16, -      17,    18,    19,   374,    95,    -1,    -1,    -1,   379,    72, -      73,    74,    75,    76,    77,    78,   418,    72,    73,    74, -      75,    76,    77,    78,    41,    -1,    43,    44,    45,    46, -      -1,   433,    -1,   404,    -1,    -1,   407,    -1,    -1,   410, -      -1,   412,   413,    -1,    -1,   416,   417,   449,   419,    -1, -     421,    -1,   423,   424,    80,    81,    82,   428,   429,    -1, -     431,   432,    -1,    -1,    -1,   436,   437,    93,   470,    -1, -      -1,    97,   443,   444,   445,     3,    -1,   448,    -1,    -1, -      -1,   452,   453,     3,   455,    -1,    -1,   458,    16,    17, -      18,    19,    -1,   464,    82,    -1,    16,    17,    18,    19, -      84,    89,    -1,    87,    88,    93,    -1,    91,    -1,    97, -      94,    -1,    -1,    41,     4,    43,    44,    45,    46,    -1, -      10,    41,    -1,    43,    44,    45,    46,    -1,    -1,    -1, -      20,    21,    22,    23,    24,    25,    26,    27,    28,    29, -      30,    31,    32,    33,    34,    35,    36,    37,    38,    39, -      40,     4,    42,    -1,    -1,    -1,    -1,    10,    83,    84, -      85,    86,    87,    88,    -1,    -1,    91,    20,    21,    22, -      23,    24,    25,    26,    27,    28,    29,    30,    31,    32, -      33,    34,    35,    36,    37,    38,    39,    40,     4,    42, -      -1,    -1,    -1,    -1,    10,    -1,    85,    86,    87,    88, -      89,    90,    91,    92,    20,    21,    22,    23,    24,    25, -      26,    27,    28,    29,    30,    31,    32,    33,    34,    35, -      36,    37,    38,    39,    40,    -1,    42,   346,   347,   348, -     349,   350,   351,   352,   353,   354,   355,   356,   357,   358, -     359,   360,   361,    -1,   363,   364,   365,    85,    86,    87, -      88,    89,    90,    91,    92,    88,    89,    90,    91,    92, -      98,    85,    86,    87,    88,    89,    90,    91,    92,    -1, -      -1,    -1,    -1,    -1,    98,    72,    73,    74,    75,    76, -      77,    78,    -1,    80,    81,    85,    86,    87,    88,    89, -      90,    91,    92,    86,    87,    88,    89,    90,    91,    92, -      87,    88,    89,    90,    91,    92,     6,     7,     8,     9, -      10,    11,    51,    52,    53,    54,    55,    56 -}; -/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */ -#line 3 "/usr/share/bison/bison.simple" - -/* Skeleton output parser for bison, - -   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software -   Foundation, Inc. - -   This program is free software; you can redistribute it and/or modify -   it under the terms of the GNU General Public License as published by -   the Free Software Foundation; either version 2, or (at your option) -   any later version. - -   This program is distributed in the hope that it will be useful, -   but WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -   GNU General Public License for more details. - -   You should have received a copy of the GNU General Public License -   along with this program; if not, write to the Free Software -   Foundation, Inc., 59 Temple Place - Suite 330, -   Boston, MA 02111-1307, USA.  */ - -/* As a special exception, when this file is copied by Bison into a -   Bison output file, you may use that output file without restriction. -   This special exception was added by the Free Software Foundation -   in version 1.24 of Bison.  */ - -/* This is the parser code that is written into each bison parser when -   the %semantic_parser declaration is not specified in the grammar. -   It was written by Richard Stallman by simplifying the hairy parser -   used when %semantic_parser is specified.  */ - -/* All symbols defined below should begin with yy or YY, to avoid -   infringing on user name space.  This should be done even for local -   variables, as they might otherwise be expanded by user macros. -   There are some unavoidable exceptions within include files to -   define necessary library symbols; they are noted "INFRINGES ON -   USER NAME SPACE" below.  */ - -#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE) - -/* The parser invokes alloca or malloc; define the necessary symbols.  */ - -# if YYSTACK_USE_ALLOCA -#  define YYSTACK_ALLOC alloca -# else -#  ifndef YYSTACK_USE_ALLOCA -#   if defined (alloca) || defined (_ALLOCA_H) -#    define YYSTACK_ALLOC alloca -#   else -#    ifdef __GNUC__ -#     define YYSTACK_ALLOC __builtin_alloca -#    endif -#   endif -#  endif -# endif - -# ifdef YYSTACK_ALLOC -   /* Pacify GCC's `empty if-body' warning. */ -#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) -# else -#  if defined (__STDC__) || defined (__cplusplus) -#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -#   define YYSIZE_T size_t -#  endif -#  define YYSTACK_ALLOC malloc -#  define YYSTACK_FREE free -# endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ - - -#if (! defined (yyoverflow) \ -     && (! defined (__cplusplus) \ -	 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member.  */ -union yyalloc -{ -  short yyss; -  YYSTYPE yyvs; -# if YYLSP_NEEDED -  YYLTYPE yyls; -# endif -}; - -/* The size of the maximum gap between one aligned stack and the next.  */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with -   N elements.  */ -# if YYLSP_NEEDED -#  define YYSTACK_BYTES(N) \ -     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))	\ -      + 2 * YYSTACK_GAP_MAX) -# else -#  define YYSTACK_BYTES(N) \ -     ((N) * (sizeof (short) + sizeof (YYSTYPE))				\ -      + YYSTACK_GAP_MAX) -# endif - -/* Copy COUNT objects from FROM to TO.  The source and destination do -   not overlap.  */ -# ifndef YYCOPY -#  if 1 < __GNUC__ -#   define YYCOPY(To, From, Count) \ -      __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -#  else -#   define YYCOPY(To, From, Count)		\ -      do					\ -	{					\ -	  register YYSIZE_T yyi;		\ -	  for (yyi = 0; yyi < (Count); yyi++)	\ -	    (To)[yyi] = (From)[yyi];		\ -	}					\ -      while (0) -#  endif -# endif - -/* Relocate STACK from its old location to the new one.  The -   local variables YYSIZE and YYSTACKSIZE give the old and new number of -   elements in the stack, and YYPTR gives the new location of the -   stack.  Advance YYPTR to a properly aligned location for the next -   stack.  */ -# define YYSTACK_RELOCATE(Stack)					\ -    do									\ -      {									\ -	YYSIZE_T yynewbytes;						\ -	YYCOPY (&yyptr->Stack, Stack, yysize);				\ -	Stack = &yyptr->Stack;						\ -	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;	\ -	yyptr += yynewbytes / sizeof (*yyptr);				\ -      }									\ -    while (0) - -#endif - - -#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) -# define YYSIZE_T __SIZE_TYPE__ -#endif -#if ! defined (YYSIZE_T) && defined (size_t) -# define YYSIZE_T size_t -#endif -#if ! defined (YYSIZE_T) -# if defined (__STDC__) || defined (__cplusplus) -#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */ -#  define YYSIZE_T size_t -# endif -#endif -#if ! defined (YYSIZE_T) -# define YYSIZE_T unsigned int -#endif - -#define yyerrok		(yyerrstatus = 0) -#define yyclearin	(yychar = YYEMPTY) -#define YYEMPTY		-2 -#define YYEOF		0 -#define YYACCEPT	goto yyacceptlab -#define YYABORT 	goto yyabortlab -#define YYERROR		goto yyerrlab1 -/* Like YYERROR except do call yyerror.  This remains here temporarily -   to ease the transition to the new meaning of YYERROR, for GCC. -   Once GCC version 2 has supplanted version 1, this can go.  */ -#define YYFAIL		goto yyerrlab -#define YYRECOVERING()  (!!yyerrstatus) -#define YYBACKUP(Token, Value)					\ -do								\ -  if (yychar == YYEMPTY && yylen == 1)				\ -    {								\ -      yychar = (Token);						\ -      yylval = (Value);						\ -      yychar1 = YYTRANSLATE (yychar);				\ -      YYPOPSTACK;						\ -      goto yybackup;						\ -    }								\ -  else								\ -    { 								\ -      yyerror ("syntax error: cannot back up");			\ -      YYERROR;							\ -    }								\ -while (0) - -#define YYTERROR	1 -#define YYERRCODE	256 - - -/* YYLLOC_DEFAULT -- Compute the default location (before the actions -   are run). - -   When YYLLOC_DEFAULT is run, CURRENT is set the location of the -   first token.  By default, to implement support for ranges, extend -   its range to the last symbol.  */ - -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N)       	\ -   Current.last_line   = Rhs[N].last_line;	\ -   Current.last_column = Rhs[N].last_column; -#endif - - -/* YYLEX -- calling `yylex' with the right arguments.  */ - -#if YYPURE -# if YYLSP_NEEDED -#  ifdef YYLEX_PARAM -#   define YYLEX		yylex (&yylval, &yylloc, YYLEX_PARAM) -#  else -#   define YYLEX		yylex (&yylval, &yylloc) -#  endif -# else /* !YYLSP_NEEDED */ -#  ifdef YYLEX_PARAM -#   define YYLEX		yylex (&yylval, YYLEX_PARAM) -#  else -#   define YYLEX		yylex (&yylval) -#  endif -# endif /* !YYLSP_NEEDED */ -#else /* !YYPURE */ -# define YYLEX			yylex () -#endif /* !YYPURE */ - - -/* Enable debugging if requested.  */ -#if YYDEBUG - -# ifndef YYFPRINTF -#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */ -#  define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args)			\ -do {						\ -  if (yydebug)					\ -    YYFPRINTF Args;				\ -} while (0) -/* Nonzero means print parse trace.  It is left uninitialized so that -   multiple parsers can coexist.  */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -#endif /* !YYDEBUG */ - -/* YYINITDEPTH -- initial size of the parser's stacks.  */ -#ifndef	YYINITDEPTH -# define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only -   if the built-in stack extension method is used). - -   Do not make this value too large; the results are undefined if -   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) -   evaluated with infinite-precision integer arithmetic.  */ - -#if YYMAXDEPTH == 0 -# undef YYMAXDEPTH -#endif - -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 -#endif - -#ifdef YYERROR_VERBOSE - -# ifndef yystrlen -#  if defined (__GLIBC__) && defined (_STRING_H) -#   define yystrlen strlen -#  else -/* Return the length of YYSTR.  */ -static YYSIZE_T -#   if defined (__STDC__) || defined (__cplusplus) -yystrlen (const char *yystr) -#   else -yystrlen (yystr) -     const char *yystr; -#   endif -{ -  register const char *yys = yystr; - -  while (*yys++ != '\0') -    continue; - -  return yys - yystr - 1; -} -#  endif -# endif - -# ifndef yystpcpy -#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) -#   define yystpcpy stpcpy -#  else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in -   YYDEST.  */ -static char * -#   if defined (__STDC__) || defined (__cplusplus) -yystpcpy (char *yydest, const char *yysrc) -#   else -yystpcpy (yydest, yysrc) -     char *yydest; -     const char *yysrc; -#   endif -{ -  register char *yyd = yydest; -  register const char *yys = yysrc; - -  while ((*yyd++ = *yys++) != '\0') -    continue; - -  return yyd - 1; -} -#  endif -# endif -#endif - -#line 315 "/usr/share/bison/bison.simple" - - -/* The user can define YYPARSE_PARAM as the name of an argument to be passed -   into yyparse.  The argument should have type void *. -   It should actually point to an object. -   Grammar actions can access the variable by casting it -   to the proper pointer type.  */ - -#ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -#  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -#  define YYPARSE_PARAM_DECL -# else -#  define YYPARSE_PARAM_ARG YYPARSE_PARAM -#  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -# endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes.  */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else -int yyparse (void); -# endif -#endif - -/* YY_DECL_VARIABLES -- depending whether we use a pure parser, -   variables are global, or local to YYPARSE.  */ - -#define YY_DECL_NON_LSP_VARIABLES			\ -/* The lookahead symbol.  */				\ -int yychar;						\ -							\ -/* The semantic value of the lookahead symbol. */	\ -YYSTYPE yylval;						\ -							\ -/* Number of parse errors so far.  */			\ -int yynerrs; - -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES			\ -YY_DECL_NON_LSP_VARIABLES			\ -						\ -/* Location data for the lookahead symbol.  */	\ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES			\ -YY_DECL_NON_LSP_VARIABLES -#endif - - -/* If nonreentrant, generate the variables here. */ - -#if !YYPURE -YY_DECL_VARIABLES -#endif  /* !YYPURE */ - -int -yyparse (YYPARSE_PARAM_ARG) -     YYPARSE_PARAM_DECL -{ -  /* If reentrant, generate the variables here. */ -#if YYPURE -  YY_DECL_VARIABLES -#endif  /* !YYPURE */ - -  register int yystate; -  register int yyn; -  int yyresult; -  /* Number of tokens to shift before error messages enabled.  */ -  int yyerrstatus; -  /* Lookahead token as an internal (translated) token number.  */ -  int yychar1 = 0; - -  /* Three stacks and their tools: -     `yyss': related to states, -     `yyvs': related to semantic values, -     `yyls': related to locations. - -     Refer to the stacks thru separate pointers, to allow yyoverflow -     to reallocate them elsewhere.  */ - -  /* The state stack. */ -  short	yyssa[YYINITDEPTH]; -  short *yyss = yyssa; -  register short *yyssp; - -  /* The semantic value stack.  */ -  YYSTYPE yyvsa[YYINITDEPTH]; -  YYSTYPE *yyvs = yyvsa; -  register YYSTYPE *yyvsp; - -#if YYLSP_NEEDED -  /* The location stack.  */ -  YYLTYPE yylsa[YYINITDEPTH]; -  YYLTYPE *yyls = yylsa; -  YYLTYPE *yylsp; -#endif - -#if YYLSP_NEEDED -# define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--) -#else -# define YYPOPSTACK   (yyvsp--, yyssp--) -#endif - -  YYSIZE_T yystacksize = YYINITDEPTH; - - -  /* The variables used to return semantic value and location from the -     action routines.  */ -  YYSTYPE yyval; -#if YYLSP_NEEDED -  YYLTYPE yyloc; -#endif - -  /* When reducing, the number of symbols on the RHS of the reduced -     rule. */ -  int yylen; - -  YYDPRINTF ((stderr, "Starting parse\n")); - -  yystate = 0; -  yyerrstatus = 0; -  yynerrs = 0; -  yychar = YYEMPTY;		/* Cause a token to be read.  */ - -  /* Initialize stack pointers. -     Waste one element of value and location stack -     so that they stay on the same level as the state stack. -     The wasted elements are never initialized.  */ - -  yyssp = yyss; -  yyvsp = yyvs; -#if YYLSP_NEEDED -  yylsp = yyls; -#endif -  goto yysetstate; - -/*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate.  | -`------------------------------------------------------------*/ - yynewstate: -  /* In all cases, when you get here, the value and location stacks -     have just been pushed. so pushing a state here evens the stacks. -     */ -  yyssp++; - - yysetstate: -  *yyssp = yystate; - -  if (yyssp >= yyss + yystacksize - 1) -    { -      /* Get the current used size of the three stacks, in elements.  */ -      YYSIZE_T yysize = yyssp - yyss + 1; - -#ifdef yyoverflow -      { -	/* Give user a chance to reallocate the stack. Use copies of -	   these so that the &'s don't force the real ones into -	   memory.  */ -	YYSTYPE *yyvs1 = yyvs; -	short *yyss1 = yyss; - -	/* Each stack pointer address is followed by the size of the -	   data in use in that stack, in bytes.  */ -# if YYLSP_NEEDED -	YYLTYPE *yyls1 = yyls; -	/* This used to be a conditional around just the two extra args, -	   but that might be undefined if yyoverflow is a macro.  */ -	yyoverflow ("parser stack overflow", -		    &yyss1, yysize * sizeof (*yyssp), -		    &yyvs1, yysize * sizeof (*yyvsp), -		    &yyls1, yysize * sizeof (*yylsp), -		    &yystacksize); -	yyls = yyls1; -# else -	yyoverflow ("parser stack overflow", -		    &yyss1, yysize * sizeof (*yyssp), -		    &yyvs1, yysize * sizeof (*yyvsp), -		    &yystacksize); -# endif -	yyss = yyss1; -	yyvs = yyvs1; -      } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE -      goto yyoverflowlab; -# else -      /* Extend the stack our own way.  */ -      if (yystacksize >= YYMAXDEPTH) -	goto yyoverflowlab; -      yystacksize *= 2; -      if (yystacksize > YYMAXDEPTH) -	yystacksize = YYMAXDEPTH; - -      { -	short *yyss1 = yyss; -	union yyalloc *yyptr = -	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); -	if (! yyptr) -	  goto yyoverflowlab; -	YYSTACK_RELOCATE (yyss); -	YYSTACK_RELOCATE (yyvs); -# if YYLSP_NEEDED -	YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE -	if (yyss1 != yyssa) -	  YYSTACK_FREE (yyss1); -      } -# endif -#endif /* no yyoverflow */ - -      yyssp = yyss + yysize - 1; -      yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED -      yylsp = yyls + yysize - 1; -#endif - -      YYDPRINTF ((stderr, "Stack size increased to %lu\n", -		  (unsigned long int) yystacksize)); - -      if (yyssp >= yyss + yystacksize - 1) -	YYABORT; -    } - -  YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - -  goto yybackup; - - -/*-----------. -| yybackup.  | -`-----------*/ -yybackup: - -/* Do appropriate processing given the current state.  */ -/* Read a lookahead token if we need one and don't already have one.  */ -/* yyresume: */ - -  /* First try to decide what to do without reference to lookahead token.  */ - -  yyn = yypact[yystate]; -  if (yyn == YYFLAG) -    goto yydefault; - -  /* Not known => get a lookahead token if don't already have one.  */ - -  /* yychar is either YYEMPTY or YYEOF -     or a valid token in external form.  */ - -  if (yychar == YYEMPTY) -    { -      YYDPRINTF ((stderr, "Reading a token: ")); -      yychar = YYLEX; -    } - -  /* Convert token to internal form (in yychar1) for indexing tables with */ - -  if (yychar <= 0)		/* This means end of input. */ -    { -      yychar1 = 0; -      yychar = YYEOF;		/* Don't call YYLEX any more */ - -      YYDPRINTF ((stderr, "Now at end of input.\n")); -    } -  else -    { -      yychar1 = YYTRANSLATE (yychar); - -#if YYDEBUG -     /* We have to keep this `#if YYDEBUG', since we use variables -	which are defined only if `YYDEBUG' is set.  */ -      if (yydebug) -	{ -	  YYFPRINTF (stderr, "Next token is %d (%s", -		     yychar, yytname[yychar1]); -	  /* Give the individual parser a way to print the precise -	     meaning of a token, for further debugging info.  */ -# ifdef YYPRINT -	  YYPRINT (stderr, yychar, yylval); -# endif -	  YYFPRINTF (stderr, ")\n"); -	} -#endif -    } - -  yyn += yychar1; -  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) -    goto yydefault; - -  yyn = yytable[yyn]; - -  /* yyn is what to do for this token type in this state. -     Negative => reduce, -yyn is rule number. -     Positive => shift, yyn is new state. -       New state is final state => don't bother to shift, -       just return success. -     0, or most negative number => error.  */ - -  if (yyn < 0) -    { -      if (yyn == YYFLAG) -	goto yyerrlab; -      yyn = -yyn; -      goto yyreduce; -    } -  else if (yyn == 0) -    goto yyerrlab; - -  if (yyn == YYFINAL) -    YYACCEPT; - -  /* Shift the lookahead token.  */ -  YYDPRINTF ((stderr, "Shifting token %d (%s), ", -	      yychar, yytname[yychar1])); - -  /* Discard the token being shifted unless it is eof.  */ -  if (yychar != YYEOF) -    yychar = YYEMPTY; - -  *++yyvsp = yylval; -#if YYLSP_NEEDED -  *++yylsp = yylloc; -#endif - -  /* Count tokens shifted since error; after three, turn off error -     status.  */ -  if (yyerrstatus) -    yyerrstatus--; - -  yystate = yyn; -  goto yynewstate; - - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state.  | -`-----------------------------------------------------------*/ -yydefault: -  yyn = yydefact[yystate]; -  if (yyn == 0) -    goto yyerrlab; -  goto yyreduce; - - -/*-----------------------------. -| yyreduce -- Do a reduction.  | -`-----------------------------*/ -yyreduce: -  /* yyn is the number of a rule to reduce with.  */ -  yylen = yyr2[yyn]; - -  /* If YYLEN is nonzero, implement the default value of the action: -     `$$ = $1'. - -     Otherwise, the following line sets YYVAL to the semantic value of -     the lookahead token.  This behavior is undocumented and Bison -     users should not rely upon it.  Assigning to YYVAL -     unconditionally makes the parser a bit smaller, and it avoids a -     GCC warning that YYVAL may be used uninitialized.  */ -  yyval = yyvsp[1-yylen]; - -#if YYLSP_NEEDED -  /* Similarly for the default location.  Let the user run additional -     commands if for instance locations are ranges.  */ -  yyloc = yylsp[1-yylen]; -  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); -#endif - -#if YYDEBUG -  /* We have to keep this `#if YYDEBUG', since we use variables which -     are defined only if `YYDEBUG' is set.  */ -  if (yydebug) -    { -      int yyi; - -      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", -		 yyn, yyrline[yyn]); - -      /* Print the symbols being reduced, and their result.  */ -      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) -	YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); -      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); -    } -#endif - -  switch (yyn) { - -case 17: -#line 177 "rcparse.y" -{ -	    define_accelerator (yyvsp[-5].id, &yyvsp[-3].res_info, yyvsp[-1].pacc); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 18: -#line 187 "rcparse.y" -{ -	    yyval.pacc = NULL; -	  } -    break; -case 19: -#line 191 "rcparse.y" -{ -	    struct accelerator *a; - -	    a = (struct accelerator *) res_alloc (sizeof *a); -	    *a = yyvsp[0].acc; -	    if (yyvsp[-1].pacc == NULL) -	      yyval.pacc = a; -	    else -	      { -		struct accelerator **pp; - -		for (pp = &yyvsp[-1].pacc->next; *pp != NULL; pp = &(*pp)->next) -		  ; -		*pp = a; -		yyval.pacc = yyvsp[-1].pacc; -	      } -	  } -    break; -case 20: -#line 212 "rcparse.y" -{ -	    yyval.acc = yyvsp[-1].acc; -	    yyval.acc.id = yyvsp[0].il; -	  } -    break; -case 21: -#line 217 "rcparse.y" -{ -	    yyval.acc = yyvsp[-3].acc; -	    yyval.acc.id = yyvsp[-2].il; -	    yyval.acc.flags |= yyvsp[0].is; -	    if ((yyval.acc.flags & ACC_VIRTKEY) == 0 -		&& (yyval.acc.flags & (ACC_SHIFT | ACC_CONTROL | ACC_ALT)) != 0) -	      rcparse_warning (_("inappropriate modifiers for non-VIRTKEY")); -	  } -    break; -case 22: -#line 229 "rcparse.y" -{ -	    const char *s = yyvsp[0].s; -	    char ch; - -	    yyval.acc.next = NULL; -	    yyval.acc.id = 0; -	    ch = *s; -	    if (ch != '^') -	      yyval.acc.flags = 0; -	    else -	      { -		yyval.acc.flags = ACC_CONTROL | ACC_VIRTKEY; -		++s; -		ch = *s; -		ch = TOUPPER (ch); -	      } -	    yyval.acc.key = ch; -	    if (s[1] != '\0') -	      rcparse_warning (_("accelerator should only be one character")); -	  } -    break; -case 23: -#line 250 "rcparse.y" -{ -	    yyval.acc.next = NULL; -	    yyval.acc.flags = 0; -	    yyval.acc.id = 0; -	    yyval.acc.key = yyvsp[0].il; -	  } -    break; -case 24: -#line 260 "rcparse.y" -{ -	    yyval.is = yyvsp[0].is; -	  } -    break; -case 25: -#line 264 "rcparse.y" -{ -	    yyval.is = yyvsp[-2].is | yyvsp[0].is; -	  } -    break; -case 26: -#line 269 "rcparse.y" -{ -	    yyval.is = yyvsp[-1].is | yyvsp[0].is; -	  } -    break; -case 27: -#line 276 "rcparse.y" -{ -	    yyval.is = ACC_VIRTKEY; -	  } -    break; -case 28: -#line 280 "rcparse.y" -{ -	    /* This is just the absence of VIRTKEY.  */ -	    yyval.is = 0; -	  } -    break; -case 29: -#line 285 "rcparse.y" -{ -	    yyval.is = ACC_NOINVERT; -	  } -    break; -case 30: -#line 289 "rcparse.y" -{ -	    yyval.is = ACC_SHIFT; -	  } -    break; -case 31: -#line 293 "rcparse.y" -{ -	    yyval.is = ACC_CONTROL; -	  } -    break; -case 32: -#line 297 "rcparse.y" -{ -	    yyval.is = ACC_ALT; -	  } -    break; -case 33: -#line 306 "rcparse.y" -{ -	    define_bitmap (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 34: -#line 318 "rcparse.y" -{ -	    define_cursor (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 35: -#line 331 "rcparse.y" -{ -	      memset (&dialog, 0, sizeof dialog); -	      dialog.x = yyvsp[-3].il; -	      dialog.y = yyvsp[-2].il; -	      dialog.width = yyvsp[-1].il; -	      dialog.height = yyvsp[0].il; -	      dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; -	      dialog.exstyle = yyvsp[-4].il; -	      dialog.menu.named = 1; -	      dialog.class.named = 1; -	      dialog.font = NULL; -	      dialog.ex = NULL; -	      dialog.controls = NULL; -	      sub_res_info = yyvsp[-5].res_info; -	      style = 0; -	    } -    break; -case 36: -#line 348 "rcparse.y" -{ -	    define_dialog (yyvsp[-12].id, &sub_res_info, &dialog); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 37: -#line 356 "rcparse.y" -{ -	      memset (&dialog, 0, sizeof dialog); -	      dialog.x = yyvsp[-3].il; -	      dialog.y = yyvsp[-2].il; -	      dialog.width = yyvsp[-1].il; -	      dialog.height = yyvsp[0].il; -	      dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; -	      dialog.exstyle = yyvsp[-4].il; -	      dialog.menu.named = 1; -	      dialog.class.named = 1; -	      dialog.font = NULL; -	      dialog.ex = ((struct dialog_ex *) -			   res_alloc (sizeof (struct dialog_ex))); -	      memset (dialog.ex, 0, sizeof (struct dialog_ex)); -	      dialog.controls = NULL; -	      sub_res_info = yyvsp[-5].res_info; -	      style = 0; -	    } -    break; -case 38: -#line 375 "rcparse.y" -{ -	    define_dialog (yyvsp[-12].id, &sub_res_info, &dialog); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 39: -#line 383 "rcparse.y" -{ -	      memset (&dialog, 0, sizeof dialog); -	      dialog.x = yyvsp[-4].il; -	      dialog.y = yyvsp[-3].il; -	      dialog.width = yyvsp[-2].il; -	      dialog.height = yyvsp[-1].il; -	      dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; -	      dialog.exstyle = yyvsp[-5].il; -	      dialog.menu.named = 1; -	      dialog.class.named = 1; -	      dialog.font = NULL; -	      dialog.ex = ((struct dialog_ex *) -			   res_alloc (sizeof (struct dialog_ex))); -	      memset (dialog.ex, 0, sizeof (struct dialog_ex)); -	      dialog.ex->help = yyvsp[0].il; -	      dialog.controls = NULL; -	      sub_res_info = yyvsp[-6].res_info; -	      style = 0; -	    } -    break; -case 40: -#line 403 "rcparse.y" -{ -	    define_dialog (yyvsp[-13].id, &sub_res_info, &dialog); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 41: -#line 413 "rcparse.y" -{ -	    yyval.il = 0; -	  } -    break; -case 42: -#line 417 "rcparse.y" -{ -	    yyval.il = yyvsp[0].il; -	  } -    break; -case 44: -#line 425 "rcparse.y" -{ -	    dialog.style |= WS_CAPTION; -	    style |= WS_CAPTION; -	    unicode_from_ascii ((int *) NULL, &dialog.caption, yyvsp[0].s); -	  } -    break; -case 45: -#line 431 "rcparse.y" -{ -	    dialog.class = yyvsp[0].id; -	  } -    break; -case 46: -#line 436 "rcparse.y" -{ -	    dialog.style = style; -	  } -    break; -case 47: -#line 440 "rcparse.y" -{ -	    dialog.exstyle = yyvsp[0].il; -	  } -    break; -case 48: -#line 444 "rcparse.y" -{ -	    res_string_to_id (& dialog.class, yyvsp[0].s); -	  } -    break; -case 49: -#line 448 "rcparse.y" -{ -	    dialog.style |= DS_SETFONT; -	    style |= DS_SETFONT; -	    dialog.pointsize = yyvsp[-2].il; -	    unicode_from_ascii ((int *) NULL, &dialog.font, yyvsp[0].s); -	    if (dialog.ex != NULL) -	      { -		dialog.ex->weight = 0; -		dialog.ex->italic = 0; -		dialog.ex->charset = 1; -	      } -	  } -    break; -case 50: -#line 461 "rcparse.y" -{ -	    dialog.style |= DS_SETFONT; -	    style |= DS_SETFONT; -	    dialog.pointsize = yyvsp[-3].il; -	    unicode_from_ascii ((int *) NULL, &dialog.font, yyvsp[-1].s); -	    if (dialog.ex == NULL) -	      rcparse_warning (_("extended FONT requires DIALOGEX")); -	    else -	      { -		dialog.ex->weight = yyvsp[0].il; -		dialog.ex->italic = 0; -		dialog.ex->charset = 1; -	      } -	  } -    break; -case 51: -#line 476 "rcparse.y" -{ -	    dialog.style |= DS_SETFONT; -	    style |= DS_SETFONT; -	    dialog.pointsize = yyvsp[-4].il; -	    unicode_from_ascii ((int *) NULL, &dialog.font, yyvsp[-2].s); -	    if (dialog.ex == NULL) -	      rcparse_warning (_("extended FONT requires DIALOGEX")); -	    else -	      { -		dialog.ex->weight = yyvsp[-1].il; -		dialog.ex->italic = yyvsp[0].il; -		dialog.ex->charset = 1; -	      } -	  } -    break; -case 52: -#line 491 "rcparse.y" -{ -	    dialog.style |= DS_SETFONT; -	    style |= DS_SETFONT; -	    dialog.pointsize = yyvsp[-5].il; -	    unicode_from_ascii ((int *) NULL, &dialog.font, yyvsp[-3].s); -	    if (dialog.ex == NULL) -	      rcparse_warning (_("extended FONT requires DIALOGEX")); -	    else -	      { -		dialog.ex->weight = yyvsp[-2].il; -		dialog.ex->italic = yyvsp[-1].il; -		dialog.ex->charset = yyvsp[0].il; -	      } -	  } -    break; -case 53: -#line 506 "rcparse.y" -{ -	    dialog.menu = yyvsp[0].id; -	  } -    break; -case 54: -#line 510 "rcparse.y" -{ -	    sub_res_info.characteristics = yyvsp[0].il; -	  } -    break; -case 55: -#line 514 "rcparse.y" -{ -	    sub_res_info.language = yyvsp[-1].il | (yyvsp[0].il << SUBLANG_SHIFT); -	  } -    break; -case 56: -#line 518 "rcparse.y" -{ -	    sub_res_info.version = yyvsp[0].il; -	  } -    break; -case 58: -#line 526 "rcparse.y" -{ -	    struct dialog_control **pp; - -	    for (pp = &dialog.controls; *pp != NULL; pp = &(*pp)->next) -	      ; -	    *pp = yyvsp[0].dialog_control; -	  } -    break; -case 59: -#line 537 "rcparse.y" -{ -	      default_style = BS_AUTO3STATE | WS_TABSTOP; -	      base_style = BS_AUTO3STATE; -	      class = CTL_BUTTON; -	    } -    break; -case 60: -#line 543 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 61: -#line 547 "rcparse.y" -{ -	      default_style = BS_AUTOCHECKBOX | WS_TABSTOP; -	      base_style = BS_AUTOCHECKBOX; -	      class = CTL_BUTTON; -	    } -    break; -case 62: -#line 553 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 63: -#line 557 "rcparse.y" -{ -	      default_style = BS_AUTORADIOBUTTON | WS_TABSTOP; -	      base_style = BS_AUTORADIOBUTTON; -	      class = CTL_BUTTON; -	    } -    break; -case 64: -#line 563 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 65: -#line 567 "rcparse.y" -{ -	      default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; -	      base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; -	      class = CTL_EDIT; -	    } -    break; -case 66: -#line 573 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	    if (dialog.ex == NULL) -	      rcparse_warning (_("BEDIT requires DIALOGEX")); -	    res_string_to_id (&yyval.dialog_control->class, "BEDIT"); -	  } -    break; -case 67: -#line 580 "rcparse.y" -{ -	      default_style = BS_CHECKBOX | WS_TABSTOP; -	      base_style = BS_CHECKBOX | WS_TABSTOP; -	      class = CTL_BUTTON; -	    } -    break; -case 68: -#line 586 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 69: -#line 590 "rcparse.y" -{ -	      default_style = CBS_SIMPLE | WS_TABSTOP; -	      base_style = 0; -	      class = CTL_COMBOBOX; -	    } -    break; -case 70: -#line 596 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 71: -#line 601 "rcparse.y" -{ -	    yyval.dialog_control = define_control (yyvsp[-9].s, yyvsp[-8].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-2].il, yyvsp[-7].il, style, yyvsp[-1].il); -	    if (yyvsp[0].rcdata_item != NULL) -	      { -		if (dialog.ex == NULL) -		  rcparse_warning (_("control data requires DIALOGEX")); -		yyval.dialog_control->data = yyvsp[0].rcdata_item; -	      } -	  } -    break; -case 72: -#line 612 "rcparse.y" -{ -	    yyval.dialog_control = define_control (yyvsp[-10].s, yyvsp[-9].il, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-8].il, style, yyvsp[-2].il); -	    if (dialog.ex == NULL) -	      rcparse_warning (_("help ID requires DIALOGEX")); -	    yyval.dialog_control->help = yyvsp[-1].il; -	    yyval.dialog_control->data = yyvsp[0].rcdata_item; -	  } -    break; -case 73: -#line 621 "rcparse.y" -{ -	    yyval.dialog_control = define_control (yyvsp[-10].s, yyvsp[-9].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-2].il, 0, style, yyvsp[-1].il); -	    if (yyvsp[0].rcdata_item != NULL) -	      { -		if (dialog.ex == NULL) -		  rcparse_warning ("control data requires DIALOGEX"); -		yyval.dialog_control->data = yyvsp[0].rcdata_item; -	      } -	    yyval.dialog_control->class.named = 1; -  	    unicode_from_ascii (&yyval.dialog_control->class.u.n.length, &yyval.dialog_control->class.u.n.name, yyvsp[-7].s); -	  } -    break; -case 74: -#line 634 "rcparse.y" -{ -	    yyval.dialog_control = define_control (yyvsp[-11].s, yyvsp[-10].il, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, 0, style, yyvsp[-2].il); -	    if (dialog.ex == NULL) -	      rcparse_warning ("help ID requires DIALOGEX"); -	    yyval.dialog_control->help = yyvsp[-1].il; -	    yyval.dialog_control->data = yyvsp[0].rcdata_item; -	    yyval.dialog_control->class.named = 1; -  	    unicode_from_ascii (&yyval.dialog_control->class.u.n.length, &yyval.dialog_control->class.u.n.name, yyvsp[-8].s); -	  } -    break; -case 75: -#line 644 "rcparse.y" -{ -	      default_style = SS_CENTER | WS_GROUP; -	      base_style = SS_CENTER; -	      class = CTL_STATIC; -	    } -    break; -case 76: -#line 650 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 77: -#line 654 "rcparse.y" -{ -	      default_style = BS_DEFPUSHBUTTON | WS_TABSTOP; -	      base_style = BS_DEFPUSHBUTTON | WS_TABSTOP; -	      class = CTL_BUTTON; -	    } -    break; -case 78: -#line 660 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 79: -#line 664 "rcparse.y" -{ -	      default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; -	      base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; -	      class = CTL_EDIT; -	    } -    break; -case 80: -#line 670 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 81: -#line 674 "rcparse.y" -{ -	      default_style = BS_GROUPBOX; -	      base_style = BS_GROUPBOX; -	      class = CTL_BUTTON; -	    } -    break; -case 82: -#line 680 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 83: -#line 684 "rcparse.y" -{ -	      default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; -	      base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; -	      class = CTL_EDIT; -	    } -    break; -case 84: -#line 690 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	    if (dialog.ex == NULL) -	      rcparse_warning (_("IEDIT requires DIALOGEX")); -	    res_string_to_id (&yyval.dialog_control->class, "HEDIT"); -	  } -    break; -case 85: -#line 697 "rcparse.y" -{ -	    yyval.dialog_control = define_icon_control (yyvsp[-4].id, yyvsp[-3].il, yyvsp[-2].il, yyvsp[-1].il, 0, 0, 0, yyvsp[0].rcdata_item, -				      dialog.ex); -          } -    break; -case 86: -#line 703 "rcparse.y" -{ -	    yyval.dialog_control = define_icon_control (yyvsp[-6].id, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, 0, 0, 0, yyvsp[0].rcdata_item, -				      dialog.ex); -          } -    break; -case 87: -#line 709 "rcparse.y" -{ -	    yyval.dialog_control = define_icon_control (yyvsp[-8].id, yyvsp[-7].il, yyvsp[-6].il, yyvsp[-5].il, style, yyvsp[-1].il, 0, yyvsp[0].rcdata_item, -				      dialog.ex); -          } -    break; -case 88: -#line 715 "rcparse.y" -{ -	    yyval.dialog_control = define_icon_control (yyvsp[-9].id, yyvsp[-8].il, yyvsp[-7].il, yyvsp[-6].il, style, yyvsp[-2].il, yyvsp[-1].il, yyvsp[0].rcdata_item, -				      dialog.ex); -          } -    break; -case 89: -#line 720 "rcparse.y" -{ -	      default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; -	      base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; -	      class = CTL_EDIT; -	    } -    break; -case 90: -#line 726 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	    if (dialog.ex == NULL) -	      rcparse_warning (_("IEDIT requires DIALOGEX")); -	    res_string_to_id (&yyval.dialog_control->class, "IEDIT"); -	  } -    break; -case 91: -#line 733 "rcparse.y" -{ -	      default_style = LBS_NOTIFY | WS_BORDER; -	      base_style = LBS_NOTIFY | WS_BORDER; -	      class = CTL_LISTBOX; -	    } -    break; -case 92: -#line 739 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 93: -#line 743 "rcparse.y" -{ -	      default_style = SS_LEFT | WS_GROUP; -	      base_style = SS_LEFT; -	      class = CTL_STATIC; -	    } -    break; -case 94: -#line 749 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 95: -#line 753 "rcparse.y" -{ -	      default_style = BS_PUSHBOX | WS_TABSTOP; -	      base_style = BS_PUSHBOX; -	      class = CTL_BUTTON; -	    } -    break; -case 96: -#line 759 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 97: -#line 763 "rcparse.y" -{ -	      default_style = BS_PUSHBUTTON | WS_TABSTOP; -	      base_style = BS_PUSHBUTTON | WS_TABSTOP; -	      class = CTL_BUTTON; -	    } -    break; -case 98: -#line 769 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 99: -#line 773 "rcparse.y" -{ -	      default_style = BS_RADIOBUTTON | WS_TABSTOP; -	      base_style = BS_RADIOBUTTON; -	      class = CTL_BUTTON; -	    } -    break; -case 100: -#line 779 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 101: -#line 783 "rcparse.y" -{ -	      default_style = SS_RIGHT | WS_GROUP; -	      base_style = SS_RIGHT; -	      class = CTL_STATIC; -	    } -    break; -case 102: -#line 789 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 103: -#line 793 "rcparse.y" -{ -	      default_style = SBS_HORZ; -	      base_style = 0; -	      class = CTL_SCROLLBAR; -	    } -    break; -case 104: -#line 799 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 105: -#line 803 "rcparse.y" -{ -	      default_style = BS_3STATE | WS_TABSTOP; -	      base_style = BS_3STATE; -	      class = CTL_BUTTON; -	    } -    break; -case 106: -#line 809 "rcparse.y" -{ -	    yyval.dialog_control = yyvsp[0].dialog_control; -	  } -    break; -case 107: -#line 814 "rcparse.y" -{ style = WS_CHILD | WS_VISIBLE; } -    break; -case 108: -#line 816 "rcparse.y" -{ -	    yyval.dialog_control = define_control (yyvsp[-14].s, yyvsp[-12].il, yyvsp[-10].il, yyvsp[-8].il, yyvsp[-6].il, yyvsp[-4].il, CTL_BUTTON, -				 style, yyvsp[0].il); -	  } -    break; -case 109: -#line 832 "rcparse.y" -{ -	    yyval.dialog_control = define_control (yyvsp[-6].s, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-2].il, yyvsp[-1].il, class, -				 default_style | WS_CHILD | WS_VISIBLE, 0); -	    if (yyvsp[0].rcdata_item != NULL) -	      { -		if (dialog.ex == NULL) -		  rcparse_warning (_("control data requires DIALOGEX")); -		yyval.dialog_control->data = yyvsp[0].rcdata_item; -	      } -	  } -    break; -case 110: -#line 844 "rcparse.y" -{ -	    yyval.dialog_control = define_control (yyvsp[-8].s, yyvsp[-7].il, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, class, style, yyvsp[-1].il); -	    if (yyvsp[0].rcdata_item != NULL) -	      { -		if (dialog.ex == NULL) -		  rcparse_warning (_("control data requires DIALOGEX")); -		yyval.dialog_control->data = yyvsp[0].rcdata_item; -	      } -	  } -    break; -case 111: -#line 855 "rcparse.y" -{ -	    yyval.dialog_control = define_control (yyvsp[-9].s, yyvsp[-8].il, yyvsp[-7].il, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, class, style, yyvsp[-2].il); -	    if (dialog.ex == NULL) -	      rcparse_warning (_("help ID requires DIALOGEX")); -	    yyval.dialog_control->help = yyvsp[-1].il; -	    yyval.dialog_control->data = yyvsp[0].rcdata_item; -	  } -    break; -case 112: -#line 866 "rcparse.y" -{ -	    yyval.s = NULL; -	  } -    break; -case 113: -#line 870 "rcparse.y" -{ -	    yyval.s = yyvsp[0].s; -	  } -    break; -case 114: -#line 874 "rcparse.y" -{ -	    yyval.s = yyvsp[-1].s; -	  } -    break; -case 115: -#line 881 "rcparse.y" -{ -	    yyval.rcdata_item = NULL; -	  } -    break; -case 116: -#line 885 "rcparse.y" -{ -	    yyval.rcdata_item = yyvsp[-1].rcdata.first; -	  } -    break; -case 117: -#line 894 "rcparse.y" -{ style = WS_CHILD | WS_VISIBLE; } -    break; -case 119: -#line 900 "rcparse.y" -{ style = SS_ICON | WS_CHILD | WS_VISIBLE; } -    break; -case 121: -#line 906 "rcparse.y" -{ style = base_style | WS_CHILD | WS_VISIBLE; } -    break; -case 123: -#line 914 "rcparse.y" -{ -	    define_font (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 124: -#line 926 "rcparse.y" -{ -	    define_icon (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 125: -#line 939 "rcparse.y" -{ -	    language = yyvsp[-1].il | (yyvsp[0].il << SUBLANG_SHIFT); -	  } -    break; -case 126: -#line 948 "rcparse.y" -{ -	    define_menu (yyvsp[-5].id, &yyvsp[-3].res_info, yyvsp[-1].menuitem); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 127: -#line 958 "rcparse.y" -{ -	    yyval.menuitem = NULL; -	  } -    break; -case 128: -#line 962 "rcparse.y" -{ -	    if (yyvsp[-1].menuitem == NULL) -	      yyval.menuitem = yyvsp[0].menuitem; -	    else -	      { -		struct menuitem **pp; - -		for (pp = &yyvsp[-1].menuitem->next; *pp != NULL; pp = &(*pp)->next) -		  ; -		*pp = yyvsp[0].menuitem; -		yyval.menuitem = yyvsp[-1].menuitem; -	      } -	  } -    break; -case 129: -#line 979 "rcparse.y" -{ -	    yyval.menuitem = define_menuitem (yyvsp[-2].s, yyvsp[-1].il, yyvsp[0].is, 0, 0, NULL); -	  } -    break; -case 130: -#line 983 "rcparse.y" -{ -	    yyval.menuitem = define_menuitem (NULL, 0, 0, 0, 0, NULL); -	  } -    break; -case 131: -#line 987 "rcparse.y" -{ -	    yyval.menuitem = define_menuitem (yyvsp[-4].s, 0, yyvsp[-3].is, 0, 0, yyvsp[-1].menuitem); -	  } -    break; -case 132: -#line 994 "rcparse.y" -{ -	    yyval.is = 0; -	  } -    break; -case 133: -#line 998 "rcparse.y" -{ -	    yyval.is = yyvsp[-2].is | yyvsp[0].is; -	  } -    break; -case 134: -#line 1002 "rcparse.y" -{ -	    yyval.is = yyvsp[-1].is | yyvsp[0].is; -	  } -    break; -case 135: -#line 1009 "rcparse.y" -{ -	    yyval.is = MENUITEM_CHECKED; -	  } -    break; -case 136: -#line 1013 "rcparse.y" -{ -	    yyval.is = MENUITEM_GRAYED; -	  } -    break; -case 137: -#line 1017 "rcparse.y" -{ -	    yyval.is = MENUITEM_HELP; -	  } -    break; -case 138: -#line 1021 "rcparse.y" -{ -	    yyval.is = MENUITEM_INACTIVE; -	  } -    break; -case 139: -#line 1025 "rcparse.y" -{ -	    yyval.is = MENUITEM_MENUBARBREAK; -	  } -    break; -case 140: -#line 1029 "rcparse.y" -{ -	    yyval.is = MENUITEM_MENUBREAK; -	  } -    break; -case 141: -#line 1038 "rcparse.y" -{ -	    define_menu (yyvsp[-5].id, &yyvsp[-3].res_info, yyvsp[-1].menuitem); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 142: -#line 1048 "rcparse.y" -{ -	    yyval.menuitem = NULL; -	  } -    break; -case 143: -#line 1052 "rcparse.y" -{ -	    if (yyvsp[-1].menuitem == NULL) -	      yyval.menuitem = yyvsp[0].menuitem; -	    else -	      { -		struct menuitem **pp; - -		for (pp = &yyvsp[-1].menuitem->next; *pp != NULL; pp = &(*pp)->next) -		  ; -		*pp = yyvsp[0].menuitem; -		yyval.menuitem = yyvsp[-1].menuitem; -	      } -	  } -    break; -case 144: -#line 1069 "rcparse.y" -{ -	    yyval.menuitem = define_menuitem (yyvsp[0].s, 0, 0, 0, 0, NULL); -	  } -    break; -case 145: -#line 1073 "rcparse.y" -{ -	    yyval.menuitem = define_menuitem (yyvsp[-1].s, yyvsp[0].il, 0, 0, 0, NULL); -	  } -    break; -case 146: -#line 1077 "rcparse.y" -{ -	    yyval.menuitem = define_menuitem (yyvsp[-3].s, yyvsp[-2].il, yyvsp[-1].il, yyvsp[0].il, 0, NULL); -	  } -    break; -case 147: -#line 1081 "rcparse.y" -{ - 	    yyval.menuitem = define_menuitem (NULL, 0, 0, 0, 0, NULL); - 	  } -    break; -case 148: -#line 1085 "rcparse.y" -{ -	    yyval.menuitem = define_menuitem (yyvsp[-3].s, 0, 0, 0, 0, yyvsp[-1].menuitem); -	  } -    break; -case 149: -#line 1089 "rcparse.y" -{ -	    yyval.menuitem = define_menuitem (yyvsp[-4].s, yyvsp[-3].il, 0, 0, 0, yyvsp[-1].menuitem); -	  } -    break; -case 150: -#line 1093 "rcparse.y" -{ -	    yyval.menuitem = define_menuitem (yyvsp[-5].s, yyvsp[-4].il, yyvsp[-3].il, 0, 0, yyvsp[-1].menuitem); -	  } -    break; -case 151: -#line 1098 "rcparse.y" -{ -	    yyval.menuitem = define_menuitem (yyvsp[-7].s, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-1].menuitem); -	  } -    break; -case 152: -#line 1107 "rcparse.y" -{ -	    define_messagetable (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 153: -#line 1119 "rcparse.y" -{ -	    define_rcdata (yyvsp[-5].id, &yyvsp[-3].res_info, yyvsp[-1].rcdata.first); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 154: -#line 1131 "rcparse.y" -{ -	    rcparse_rcdata (); -	  } -    break; -case 155: -#line 1135 "rcparse.y" -{ -	    rcparse_normal (); -	    yyval.rcdata = yyvsp[0].rcdata; -	  } -    break; -case 156: -#line 1143 "rcparse.y" -{ -	    yyval.rcdata.first = NULL; -	    yyval.rcdata.last = NULL; -	  } -    break; -case 157: -#line 1148 "rcparse.y" -{ -	    yyval.rcdata = yyvsp[0].rcdata; -	  } -    break; -case 158: -#line 1155 "rcparse.y" -{ -	    struct rcdata_item *ri; - -	    ri = define_rcdata_string (yyvsp[0].ss.s, yyvsp[0].ss.length); -	    yyval.rcdata.first = ri; -	    yyval.rcdata.last = ri; -	  } -    break; -case 159: -#line 1163 "rcparse.y" -{ -	    struct rcdata_item *ri; - -	    ri = define_rcdata_number (yyvsp[0].i.val, yyvsp[0].i.dword); -	    yyval.rcdata.first = ri; -	    yyval.rcdata.last = ri; -	  } -    break; -case 160: -#line 1171 "rcparse.y" -{ -	    struct rcdata_item *ri; - -	    ri = define_rcdata_string (yyvsp[0].ss.s, yyvsp[0].ss.length); -	    yyval.rcdata.first = yyvsp[-2].rcdata.first; -	    yyvsp[-2].rcdata.last->next = ri; -	    yyval.rcdata.last = ri; -	  } -    break; -case 161: -#line 1180 "rcparse.y" -{ -	    struct rcdata_item *ri; - -	    ri = define_rcdata_number (yyvsp[0].i.val, yyvsp[0].i.dword); -	    yyval.rcdata.first = yyvsp[-2].rcdata.first; -	    yyvsp[-2].rcdata.last->next = ri; -	    yyval.rcdata.last = ri; -	  } -    break; -case 162: -#line 1194 "rcparse.y" -{ sub_res_info = yyvsp[-1].res_info; } -    break; -case 165: -#line 1201 "rcparse.y" -{ -	    define_stringtable (&sub_res_info, yyvsp[-1].il, yyvsp[0].s); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 166: -#line 1208 "rcparse.y" -{ -	    define_stringtable (&sub_res_info, yyvsp[-2].il, yyvsp[0].s); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 167: -#line 1221 "rcparse.y" -{ -	    define_user_data (yyvsp[-5].id, yyvsp[-4].id, &yyvsp[-3].res_info, yyvsp[-1].rcdata.first); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 168: -#line 1228 "rcparse.y" -{ -	    define_user_file (yyvsp[-3].id, yyvsp[-2].id, &yyvsp[-1].res_info, yyvsp[0].s); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 169: -#line 1240 "rcparse.y" -{ -	    define_versioninfo (yyvsp[-5].id, language, yyvsp[-3].fixver, yyvsp[-1].verinfo); -	    if (yychar != YYEMPTY) -	      YYERROR; -	    rcparse_discard_strings (); -	  } -    break; -case 170: -#line 1250 "rcparse.y" -{ -	    yyval.fixver = ((struct fixed_versioninfo *) -		  res_alloc (sizeof (struct fixed_versioninfo))); -	    memset (yyval.fixver, 0, sizeof (struct fixed_versioninfo)); -	  } -    break; -case 171: -#line 1256 "rcparse.y" -{ -	    yyvsp[-5].fixver->file_version_ms = (yyvsp[-3].il << 16) | yyvsp[-2].il; -	    yyvsp[-5].fixver->file_version_ls = (yyvsp[-1].il << 16) | yyvsp[0].il; -	    yyval.fixver = yyvsp[-5].fixver; -	  } -    break; -case 172: -#line 1262 "rcparse.y" -{ -	    yyvsp[-5].fixver->product_version_ms = (yyvsp[-3].il << 16) | yyvsp[-2].il; -	    yyvsp[-5].fixver->product_version_ls = (yyvsp[-1].il << 16) | yyvsp[0].il; -	    yyval.fixver = yyvsp[-5].fixver; -	  } -    break; -case 173: -#line 1268 "rcparse.y" -{ -	    yyvsp[-2].fixver->file_flags_mask = yyvsp[0].il; -	    yyval.fixver = yyvsp[-2].fixver; -	  } -    break; -case 174: -#line 1273 "rcparse.y" -{ -	    yyvsp[-2].fixver->file_flags = yyvsp[0].il; -	    yyval.fixver = yyvsp[-2].fixver; -	  } -    break; -case 175: -#line 1278 "rcparse.y" -{ -	    yyvsp[-2].fixver->file_os = yyvsp[0].il; -	    yyval.fixver = yyvsp[-2].fixver; -	  } -    break; -case 176: -#line 1283 "rcparse.y" -{ -	    yyvsp[-2].fixver->file_type = yyvsp[0].il; -	    yyval.fixver = yyvsp[-2].fixver; -	  } -    break; -case 177: -#line 1288 "rcparse.y" -{ -	    yyvsp[-2].fixver->file_subtype = yyvsp[0].il; -	    yyval.fixver = yyvsp[-2].fixver; -	  } -    break; -case 178: -#line 1302 "rcparse.y" -{ -	    yyval.verinfo = NULL; -	  } -    break; -case 179: -#line 1306 "rcparse.y" -{ -	    yyval.verinfo = append_ver_stringfileinfo (yyvsp[-7].verinfo, yyvsp[-4].s, yyvsp[-2].verstring); -	  } -    break; -case 180: -#line 1310 "rcparse.y" -{ -	    yyval.verinfo = append_ver_varfileinfo (yyvsp[-6].verinfo, yyvsp[-2].s, yyvsp[-1].vervar); -	  } -    break; -case 181: -#line 1317 "rcparse.y" -{ -	    yyval.verstring = NULL; -	  } -    break; -case 182: -#line 1321 "rcparse.y" -{ -	    yyval.verstring = append_verval (yyvsp[-4].verstring, yyvsp[-2].s, yyvsp[0].s); -	  } -    break; -case 183: -#line 1328 "rcparse.y" -{ -	    yyval.vervar = NULL; -	  } -    break; -case 184: -#line 1332 "rcparse.y" -{ -	    yyval.vervar = append_vertrans (yyvsp[-2].vervar, yyvsp[-1].il, yyvsp[0].il); -	  } -    break; -case 185: -#line 1341 "rcparse.y" -{ -	    yyval.id.named = 0; -	    yyval.id.u.id = yyvsp[0].il; -	  } -    break; -case 186: -#line 1346 "rcparse.y" -{ -	    char *copy, *s; - -	    /* It seems that resource ID's are forced to upper case.  */ -	    copy = xstrdup (yyvsp[0].s); -	    for (s = copy; *s != '\0'; s++) -	      *s = TOUPPER (*s); -	    res_string_to_id (&yyval.id, copy); -	    free (copy); -	  } -    break; -case 187: -#line 1362 "rcparse.y" -{ -	    yyval.s = yyvsp[0].s; -	  } -    break; -case 188: -#line 1366 "rcparse.y" -{ -	    yyval.s = yyvsp[-1].s; -	  } -    break; -case 189: -#line 1370 "rcparse.y" -{ -	    yyval.s = yyvsp[-1].s; -	  } -    break; -case 190: -#line 1378 "rcparse.y" -{ -	    yyval.id.named = 0; -	    yyval.id.u.id = yyvsp[-1].il; -	  } -    break; -case 191: -#line 1383 "rcparse.y" -{ -	    char *copy, *s; - -	    /* It seems that resource ID's are forced to upper case.  */ -	    copy = xstrdup (yyvsp[0].s); -	    for (s = copy; *s != '\0'; s++) -	      *s = TOUPPER (*s); -	    res_string_to_id (&yyval.id, copy); -	    free (copy); -	  } -    break; -case 192: -#line 1400 "rcparse.y" -{ -	    memset (&yyval.res_info, 0, sizeof (struct res_res_info)); -	    yyval.res_info.language = language; -	    /* FIXME: Is this the right default?  */ -	    yyval.res_info.memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE; -	  } -    break; -case 193: -#line 1407 "rcparse.y" -{ -	    yyval.res_info = yyvsp[-1].res_info; -	    yyval.res_info.memflags |= yyvsp[0].memflags.on; -	    yyval.res_info.memflags &=~ yyvsp[0].memflags.off; -	  } -    break; -case 194: -#line 1413 "rcparse.y" -{ -	    yyval.res_info = yyvsp[-2].res_info; -	    yyval.res_info.characteristics = yyvsp[0].il; -	  } -    break; -case 195: -#line 1418 "rcparse.y" -{ -	    yyval.res_info = yyvsp[-3].res_info; -	    yyval.res_info.language = yyvsp[-1].il | (yyvsp[0].il << SUBLANG_SHIFT); -	  } -    break; -case 196: -#line 1423 "rcparse.y" -{ -	    yyval.res_info = yyvsp[-2].res_info; -	    yyval.res_info.version = yyvsp[0].il; -	  } -    break; -case 197: -#line 1433 "rcparse.y" -{ -	    memset (&yyval.res_info, 0, sizeof (struct res_res_info)); -	    yyval.res_info.language = language; -	    yyval.res_info.memflags = MEMFLAG_MOVEABLE | MEMFLAG_DISCARDABLE; -	  } -    break; -case 198: -#line 1439 "rcparse.y" -{ -	    yyval.res_info = yyvsp[-1].res_info; -	    yyval.res_info.memflags |= yyvsp[0].memflags.on; -	    yyval.res_info.memflags &=~ yyvsp[0].memflags.off; -	  } -    break; -case 199: -#line 1450 "rcparse.y" -{ -	    memset (&yyval.res_info, 0, sizeof (struct res_res_info)); -	    yyval.res_info.language = language; -	    yyval.res_info.memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE; -	  } -    break; -case 200: -#line 1456 "rcparse.y" -{ -	    yyval.res_info = yyvsp[-1].res_info; -	    yyval.res_info.memflags |= yyvsp[0].memflags.on; -	    yyval.res_info.memflags &=~ yyvsp[0].memflags.off; -	  } -    break; -case 201: -#line 1468 "rcparse.y" -{ -	    yyval.memflags.on = MEMFLAG_MOVEABLE; -	    yyval.memflags.off = 0; -	  } -    break; -case 202: -#line 1473 "rcparse.y" -{ -	    yyval.memflags.on = 0; -	    yyval.memflags.off = MEMFLAG_MOVEABLE; -	  } -    break; -case 203: -#line 1478 "rcparse.y" -{ -	    yyval.memflags.on = MEMFLAG_PURE; -	    yyval.memflags.off = 0; -	  } -    break; -case 204: -#line 1483 "rcparse.y" -{ -	    yyval.memflags.on = 0; -	    yyval.memflags.off = MEMFLAG_PURE; -	  } -    break; -case 205: -#line 1488 "rcparse.y" -{ -	    yyval.memflags.on = MEMFLAG_PRELOAD; -	    yyval.memflags.off = 0; -	  } -    break; -case 206: -#line 1493 "rcparse.y" -{ -	    yyval.memflags.on = 0; -	    yyval.memflags.off = MEMFLAG_PRELOAD; -	  } -    break; -case 207: -#line 1498 "rcparse.y" -{ -	    yyval.memflags.on = MEMFLAG_DISCARDABLE; -	    yyval.memflags.off = 0; -	  } -    break; -case 208: -#line 1508 "rcparse.y" -{ -	    yyval.s = yyvsp[0].s; -	  } -    break; -case 209: -#line 1512 "rcparse.y" -{ -	    yyval.s = yyvsp[0].s; -	  } -    break; -case 210: -#line 1529 "rcparse.y" -{ -	    style |= yyvsp[0].il; -	  } -    break; -case 211: -#line 1533 "rcparse.y" -{ -	    style &=~ yyvsp[0].il; -	  } -    break; -case 212: -#line 1537 "rcparse.y" -{ -	    style |= yyvsp[0].il; -	  } -    break; -case 213: -#line 1541 "rcparse.y" -{ -	    style &=~ yyvsp[0].il; -	  } -    break; -case 214: -#line 1548 "rcparse.y" -{ -	    yyval.il = yyvsp[0].i.val; -	  } -    break; -case 215: -#line 1552 "rcparse.y" -{ -	    yyval.il = yyvsp[-1].il; -	  } -    break; -case 216: -#line 1561 "rcparse.y" -{ -	    yyval.il = 0; -	  } -    break; -case 217: -#line 1565 "rcparse.y" -{ -	    yyval.il = yyvsp[0].il; -	  } -    break; -case 218: -#line 1574 "rcparse.y" -{ -	    yyval.il = yyvsp[0].il; -	  } -    break; -case 219: -#line 1583 "rcparse.y" -{ -	    yyval.il = yyvsp[0].i.val; -	  } -    break; -case 220: -#line 1592 "rcparse.y" -{ -	    yyval.i = yyvsp[0].i; -	  } -    break; -case 221: -#line 1596 "rcparse.y" -{ -	    yyval.i = yyvsp[-1].i; -	  } -    break; -case 222: -#line 1600 "rcparse.y" -{ -	    yyval.i.val = ~ yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[0].i.dword; -	  } -    break; -case 223: -#line 1605 "rcparse.y" -{ -	    yyval.i.val = - yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[0].i.dword; -	  } -    break; -case 224: -#line 1610 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val * yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 225: -#line 1615 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val / yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 226: -#line 1620 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val % yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 227: -#line 1625 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val + yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 228: -#line 1630 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val - yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 229: -#line 1635 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val & yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 230: -#line 1640 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val ^ yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 231: -#line 1645 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val | yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 232: -#line 1656 "rcparse.y" -{ -	    yyval.il = yyvsp[0].il; -	  } -    break; -case 233: -#line 1665 "rcparse.y" -{ -	    yyval.il = yyvsp[0].i.val; -	  } -    break; -case 234: -#line 1676 "rcparse.y" -{ -	    yyval.i = yyvsp[0].i; -	  } -    break; -case 235: -#line 1680 "rcparse.y" -{ -	    yyval.i = yyvsp[-1].i; -	  } -    break; -case 236: -#line 1684 "rcparse.y" -{ -	    yyval.i.val = ~ yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[0].i.dword; -	  } -    break; -case 237: -#line 1689 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val * yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 238: -#line 1694 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val / yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 239: -#line 1699 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val % yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 240: -#line 1704 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val + yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 241: -#line 1709 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val - yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 242: -#line 1714 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val & yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 243: -#line 1719 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val ^ yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -case 244: -#line 1724 "rcparse.y" -{ -	    yyval.i.val = yyvsp[-2].i.val | yyvsp[0].i.val; -	    yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; -	  } -    break; -} - -#line 705 "/usr/share/bison/bison.simple" - - -  yyvsp -= yylen; -  yyssp -= yylen; -#if YYLSP_NEEDED -  yylsp -= yylen; -#endif - -#if YYDEBUG -  if (yydebug) -    { -      short *yyssp1 = yyss - 1; -      YYFPRINTF (stderr, "state stack now"); -      while (yyssp1 != yyssp) -	YYFPRINTF (stderr, " %d", *++yyssp1); -      YYFPRINTF (stderr, "\n"); -    } -#endif - -  *++yyvsp = yyval; -#if YYLSP_NEEDED -  *++yylsp = yyloc; -#endif - -  /* Now `shift' the result of the reduction.  Determine what state -     that goes to, based on the state we popped back to and the rule -     number reduced by.  */ - -  yyn = yyr1[yyn]; - -  yystate = yypgoto[yyn - YYNTBASE] + *yyssp; -  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) -    yystate = yytable[yystate]; -  else -    yystate = yydefgoto[yyn - YYNTBASE]; - -  goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: -  /* If not already recovering from an error, report this error.  */ -  if (!yyerrstatus) -    { -      ++yynerrs; - -#ifdef YYERROR_VERBOSE -      yyn = yypact[yystate]; - -      if (yyn > YYFLAG && yyn < YYLAST) -	{ -	  YYSIZE_T yysize = 0; -	  char *yymsg; -	  int yyx, yycount; - -	  yycount = 0; -	  /* Start YYX at -YYN if negative to avoid negative indexes in -	     YYCHECK.  */ -	  for (yyx = yyn < 0 ? -yyn : 0; -	       yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) -	    if (yycheck[yyx + yyn] == yyx) -	      yysize += yystrlen (yytname[yyx]) + 15, yycount++; -	  yysize += yystrlen ("parse error, unexpected ") + 1; -	  yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); -	  yymsg = (char *) YYSTACK_ALLOC (yysize); -	  if (yymsg != 0) -	    { -	      char *yyp = yystpcpy (yymsg, "parse error, unexpected "); -	      yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); - -	      if (yycount < 5) -		{ -		  yycount = 0; -		  for (yyx = yyn < 0 ? -yyn : 0; -		       yyx < (int) (sizeof (yytname) / sizeof (char *)); -		       yyx++) -		    if (yycheck[yyx + yyn] == yyx) -		      { -			const char *yyq = ! yycount ? ", expecting " : " or "; -			yyp = yystpcpy (yyp, yyq); -			yyp = yystpcpy (yyp, yytname[yyx]); -			yycount++; -		      } -		} -	      yyerror (yymsg); -	      YYSTACK_FREE (yymsg); -	    } -	  else -	    yyerror ("parse error; also virtual memory exhausted"); -	} -      else -#endif /* defined (YYERROR_VERBOSE) */ -	yyerror ("parse error"); -    } -  goto yyerrlab1; - - -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: -  if (yyerrstatus == 3) -    { -      /* If just tried and failed to reuse lookahead token after an -	 error, discard it.  */ - -      /* return failure if at end of input */ -      if (yychar == YYEOF) -	YYABORT; -      YYDPRINTF ((stderr, "Discarding token %d (%s).\n", -		  yychar, yytname[yychar1])); -      yychar = YYEMPTY; -    } - -  /* Else will try to reuse lookahead token after shifting the error -     token.  */ - -  yyerrstatus = 3;		/* Each real token shifted decrements this */ - -  goto yyerrhandle; - - -/*-------------------------------------------------------------------. -| yyerrdefault -- current state does not do anything special for the | -| error token.                                                       | -`-------------------------------------------------------------------*/ -yyerrdefault: -#if 0 -  /* This is wrong; only states that explicitly want error tokens -     should shift them.  */ - -  /* If its default is to accept any token, ok.  Otherwise pop it.  */ -  yyn = yydefact[yystate]; -  if (yyn) -    goto yydefault; -#endif - - -/*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token                                                    | -`---------------------------------------------------------------*/ -yyerrpop: -  if (yyssp == yyss) -    YYABORT; -  yyvsp--; -  yystate = *--yyssp; -#if YYLSP_NEEDED -  yylsp--; -#endif - -#if YYDEBUG -  if (yydebug) -    { -      short *yyssp1 = yyss - 1; -      YYFPRINTF (stderr, "Error: state stack now"); -      while (yyssp1 != yyssp) -	YYFPRINTF (stderr, " %d", *++yyssp1); -      YYFPRINTF (stderr, "\n"); -    } -#endif - -/*--------------. -| yyerrhandle.  | -`--------------*/ -yyerrhandle: -  yyn = yypact[yystate]; -  if (yyn == YYFLAG) -    goto yyerrdefault; - -  yyn += YYTERROR; -  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) -    goto yyerrdefault; - -  yyn = yytable[yyn]; -  if (yyn < 0) -    { -      if (yyn == YYFLAG) -	goto yyerrpop; -      yyn = -yyn; -      goto yyreduce; -    } -  else if (yyn == 0) -    goto yyerrpop; - -  if (yyn == YYFINAL) -    YYACCEPT; - -  YYDPRINTF ((stderr, "Shifting error token, ")); - -  *++yyvsp = yylval; -#if YYLSP_NEEDED -  *++yylsp = yylloc; -#endif - -  yystate = yyn; -  goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here.  | -`-------------------------------------*/ -yyacceptlab: -  yyresult = 0; -  goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here.  | -`-----------------------------------*/ -yyabortlab: -  yyresult = 1; -  goto yyreturn; - -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here.  | -`---------------------------------------------*/ -yyoverflowlab: -  yyerror ("parser stack overflow"); -  yyresult = 2; -  /* Fall through.  */ - -yyreturn: -#ifndef yyoverflow -  if (yyss != yyssa) -    YYSTACK_FREE (yyss); -#endif -  return yyresult; -} -#line 1730 "rcparse.y" - - -/* Set the language from the command line.  */ - -void -rcparse_set_language (lang) -     int lang; -{ -  language = lang; -}  | 
