Revert last change, it was causing build problems. Go back to causing run
problems instead (try Start/Run/Browse)
Modified: trunk/reactos/tools/wrc/parser.y
Modified: trunk/reactos/tools/wrc/y.tab.c
Modified: trunk/reactos/tools/wrc/y.tab.h

Modified: trunk/reactos/tools/wrc/parser.y
--- trunk/reactos/tools/wrc/parser.y	2005-05-30 20:13:35 UTC (rev 15688)
+++ trunk/reactos/tools/wrc/parser.y	2005-05-30 20:37:29 UTC (rev 15689)
@@ -1002,8 +1002,8 @@
 style
 	: style '|' style	{ $$ = new_style($1->or_mask | $3->or_mask, $1->and_mask | $3->and_mask); free($1); free($3);}
 	| '(' style ')'		{ $$ = $2; }
-        | any_num       	{ $$ = new_style($1, 0); }
-        | tNOT any_num		{ $$ = new_style(0, $2); }
+        | xpr       		{ $$ = new_style($1, 0); }
+        | tNOT xpr		{ $$ = new_style(0, $2); }
         ;
 
 ctlclass
@@ -2249,27 +2249,32 @@
 
 static event_t *add_string_event(string_t *key, int id, int flags, event_t *prev)
 {
-	int keycode = 0;
+	int keycode = 0, keysym = 0;
 	event_t *ev = new_event();
 
-	if(key->type != str_char)
-		yyerror("Key code must be an ascii string");
+	if(key->type == str_char)
+		keysym = key->str.cstr[0];
+	else
+		keysym = key->str.wstr[0];
 
-	if((flags & WRC_AF_VIRTKEY) && (!isupper(key->str.cstr[0] & 0xff) && !isdigit(key->str.cstr[0] & 0xff)))
+	if((flags & WRC_AF_VIRTKEY) && (!isupper(keysym & 0xff) && !isdigit(keysym & 0xff)))
 		yyerror("VIRTKEY code is not equal to ascii value");
 
-	if(key->str.cstr[0] == '^' && (flags & WRC_AF_CONTROL) != 0)
+	if(keysym == '^' && (flags & WRC_AF_CONTROL) != 0)
 	{
 		yyerror("Cannot use both '^' and CONTROL modifier");
 	}
-	else if(key->str.cstr[0] == '^')
+	else if(keysym == '^')
 	{
-		keycode = toupper(key->str.cstr[1]) - '@';
+		if(key->type == str_char)
+			keycode = toupper(key->str.cstr[1]) - '@';
+		else
+			keycode = toupper(key->str.wstr[1]) - '@';
 		if(keycode >= ' ')
 			yyerror("Control-code out of range");
 	}
 	else
-		keycode = key->str.cstr[0];
+		keycode = keysym;
 	ev->key = keycode;
 	ev->id = id;
 	ev->flags = flags & ~WRC_AF_ASCII;

Modified: trunk/reactos/tools/wrc/y.tab.c
--- trunk/reactos/tools/wrc/y.tab.c	2005-05-30 20:13:35 UTC (rev 15688)
+++ trunk/reactos/tools/wrc/y.tab.c	2005-05-30 20:37:29 UTC (rev 15689)
@@ -1,93 +1,231 @@
-/* A Bison parser, made from ./parser.y
-   by GNU bison 1.35.  */
+/* A Bison parser, made by GNU Bison 1.875b.  */
 
-#define YYBISON 1  /* Identify Bison output.  */
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
-# define	tNL	257
-# define	tNUMBER	258
-# define	tLNUMBER	259
-# define	tSTRING	260
-# define	tIDENT	261
-# define	tFILENAME	262
-# define	tRAWDATA	263
-# define	tACCELERATORS	264
-# define	tBITMAP	265
-# define	tCURSOR	266
-# define	tDIALOG	267
-# define	tDIALOGEX	268
-# define	tMENU	269
-# define	tMENUEX	270
-# define	tMESSAGETABLE	271
-# define	tRCDATA	272
-# define	tVERSIONINFO	273
-# define	tSTRINGTABLE	274
-# define	tFONT	275
-# define	tFONTDIR	276
-# define	tICON	277
-# define	tAUTO3STATE	278
-# define	tAUTOCHECKBOX	279
-# define	tAUTORADIOBUTTON	280
-# define	tCHECKBOX	281
-# define	tDEFPUSHBUTTON	282
-# define	tPUSHBUTTON	283
-# define	tRADIOBUTTON	284
-# define	tSTATE3	285
-# define	tGROUPBOX	286
-# define	tCOMBOBOX	287
-# define	tLISTBOX	288
-# define	tSCROLLBAR	289
-# define	tCONTROL	290
-# define	tEDITTEXT	291
-# define	tRTEXT	292
-# define	tCTEXT	293
-# define	tLTEXT	294
-# define	tBLOCK	295
-# define	tVALUE	296
-# define	tSHIFT	297
-# define	tALT	298
-# define	tASCII	299
-# define	tVIRTKEY	300
-# define	tGRAYED	301
-# define	tCHECKED	302
-# define	tINACTIVE	303
-# define	tNOINVERT	304
-# define	tPURE	305
-# define	tIMPURE	306
-# define	tDISCARDABLE	307
-# define	tLOADONCALL	308
-# define	tPRELOAD	309
-# define	tFIXED	310
-# define	tMOVEABLE	311
-# define	tCLASS	312
-# define	tCAPTION	313
-# define	tCHARACTERISTICS	314
-# define	tEXSTYLE	315
-# define	tSTYLE	316
-# define	tVERSION	317
-# define	tLANGUAGE	318
-# define	tFILEVERSION	319
-# define	tPRODUCTVERSION	320
-# define	tFILEFLAGSMASK	321
-# define	tFILEOS	322
-# define	tFILETYPE	323
-# define	tFILEFLAGS	324
-# define	tFILESUBTYPE	325
-# define	tMENUBARBREAK	326
-# define	tMENUBREAK	327
-# define	tMENUITEM	328
-# define	tPOPUP	329
-# define	tSEPARATOR	330
-# define	tHELP	331
-# define	tTOOLBAR	332
-# define	tBUTTON	333
-# define	tBEGIN	334
-# define	tEND	335
-# define	tDLGINIT	336
-# define	tNOT	337
-# define	pUPM	338
+   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.
 
-#line 1 "./parser.y"
+   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.  */
+
+/* Written by Richard Stallman by simplifying the original so called
+   ``semantic'' parser.  */
+
+/* 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.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 0
+
+/* Using locations.  */
+#define YYLSP_NEEDED 0
+
+
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     tNL = 258,
+     tNUMBER = 259,
+     tLNUMBER = 260,
+     tSTRING = 261,
+     tIDENT = 262,
+     tFILENAME = 263,
+     tRAWDATA = 264,
+     tACCELERATORS = 265,
+     tBITMAP = 266,
+     tCURSOR = 267,
+     tDIALOG = 268,
+     tDIALOGEX = 269,
+     tMENU = 270,
+     tMENUEX = 271,
+     tMESSAGETABLE = 272,
+     tRCDATA = 273,
+     tVERSIONINFO = 274,
+     tSTRINGTABLE = 275,
+     tFONT = 276,
+     tFONTDIR = 277,
+     tICON = 278,
+     tAUTO3STATE = 279,
+     tAUTOCHECKBOX = 280,
+     tAUTORADIOBUTTON = 281,
+     tCHECKBOX = 282,
+     tDEFPUSHBUTTON = 283,
+     tPUSHBUTTON = 284,
+     tRADIOBUTTON = 285,
+     tSTATE3 = 286,
+     tGROUPBOX = 287,
+     tCOMBOBOX = 288,
+     tLISTBOX = 289,
+     tSCROLLBAR = 290,
+     tCONTROL = 291,
+     tEDITTEXT = 292,
+     tRTEXT = 293,
+     tCTEXT = 294,
+     tLTEXT = 295,
+     tBLOCK = 296,
+     tVALUE = 297,
+     tSHIFT = 298,
+     tALT = 299,
+     tASCII = 300,
+     tVIRTKEY = 301,
+     tGRAYED = 302,
+     tCHECKED = 303,
+     tINACTIVE = 304,
+     tNOINVERT = 305,
+     tPURE = 306,
+     tIMPURE = 307,
+     tDISCARDABLE = 308,
+     tLOADONCALL = 309,
+     tPRELOAD = 310,
+     tFIXED = 311,
+     tMOVEABLE = 312,
+     tCLASS = 313,
+     tCAPTION = 314,
+     tCHARACTERISTICS = 315,
+     tEXSTYLE = 316,
+     tSTYLE = 317,
+     tVERSION = 318,
+     tLANGUAGE = 319,
+     tFILEVERSION = 320,
+     tPRODUCTVERSION = 321,
+     tFILEFLAGSMASK = 322,
+     tFILEOS = 323,
+     tFILETYPE = 324,
+     tFILEFLAGS = 325,
+     tFILESUBTYPE = 326,
+     tMENUBARBREAK = 327,
+     tMENUBREAK = 328,
+     tMENUITEM = 329,
+     tPOPUP = 330,
+     tSEPARATOR = 331,
+     tHELP = 332,
+     tTOOLBAR = 333,
+     tBUTTON = 334,
+     tBEGIN = 335,
+     tEND = 336,
+     tDLGINIT = 337,
+     tNOT = 338,
+     pUPM = 339
+   };
+#endif
+#define tNL 258
+#define tNUMBER 259
+#define tLNUMBER 260
+#define tSTRING 261
+#define tIDENT 262
+#define tFILENAME 263
+#define tRAWDATA 264
+#define tACCELERATORS 265
+#define tBITMAP 266
+#define tCURSOR 267
+#define tDIALOG 268
+#define tDIALOGEX 269
+#define tMENU 270
+#define tMENUEX 271
+#define tMESSAGETABLE 272
+#define tRCDATA 273
+#define tVERSIONINFO 274
+#define tSTRINGTABLE 275
+#define tFONT 276
+#define tFONTDIR 277
+#define tICON 278
+#define tAUTO3STATE 279
+#define tAUTOCHECKBOX 280
+#define tAUTORADIOBUTTON 281
+#define tCHECKBOX 282
+#define tDEFPUSHBUTTON 283
+#define tPUSHBUTTON 284
+#define tRADIOBUTTON 285
+#define tSTATE3 286
+#define tGROUPBOX 287
+#define tCOMBOBOX 288
+#define tLISTBOX 289
+#define tSCROLLBAR 290
+#define tCONTROL 291
+#define tEDITTEXT 292
+#define tRTEXT 293
+#define tCTEXT 294
+#define tLTEXT 295
+#define tBLOCK 296
+#define tVALUE 297
+#define tSHIFT 298
+#define tALT 299
+#define tASCII 300
+#define tVIRTKEY 301
+#define tGRAYED 302
+#define tCHECKED 303
+#define tINACTIVE 304
+#define tNOINVERT 305
+#define tPURE 306
+#define tIMPURE 307
+#define tDISCARDABLE 308
+#define tLOADONCALL 309
+#define tPRELOAD 310
+#define tFIXED 311
+#define tMOVEABLE 312
+#define tCLASS 313
+#define tCAPTION 314
+#define tCHARACTERISTICS 315
+#define tEXSTYLE 316
+#define tSTYLE 317
+#define tVERSION 318
+#define tLANGUAGE 319
+#define tFILEVERSION 320
+#define tPRODUCTVERSION 321
+#define tFILEFLAGSMASK 322
+#define tFILEOS 323
+#define tFILETYPE 324
+#define tFILEFLAGS 325
+#define tFILESUBTYPE 326
+#define tMENUBARBREAK 327
+#define tMENUBREAK 328
+#define tMENUITEM 329
+#define tPOPUP 330
+#define tSEPARATOR 331
+#define tHELP 332
+#define tTOOLBAR 333
+#define tBUTTON 334
+#define tBEGIN 335
+#define tEND 336
+#define tDLGINIT 337
+#define tNOT 338
+#define pUPM 339
+
+
+
+
+/* Copy the first part of user declarations.  */
+#line 1 "parser.y"
+
 /*
  * Copyright 1994	Martin von Loewis
  * Copyright 1998-2000	Bertho A. Stultiens (BS)
@@ -326,9 +464,23 @@
 static int rsrcid_to_token(int lookahead);
 
 
-#line 240 "./parser.y"
-#ifndef YYSTYPE
-typedef union{
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 1
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+#line 240 "parser.y"
+typedef union YYSTYPE {
 	string_t	*str;
 	int		num;
 	int		*iptr;
@@ -369,25 +521,139 @@
 	style_pair_t	*styles;
 	style_t		*style;
 	ani_any_t	*ani;
-} yystype;
-# define YYSTYPE yystype
+} YYSTYPE;
+/* Line 191 of yacc.c.  */
+#line 527 "y.tab.c"
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
-#ifndef YYDEBUG
-# define YYDEBUG 1
+
+
+
+/* Copy the second part of user declarations.  */
+
+
+/* Line 214 of yacc.c.  */
+#line 539 "y.tab.c"
+
+#if ! defined (yyoverflow) || 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) || YYERROR_VERBOSE */
+
+
+#if (! defined (yyoverflow) \
+     && (! defined (__cplusplus) \
+	 || (YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  short yyss;
+  YYSTYPE yyvs;
+  };
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
+      + YYSTACK_GAP_MAXIMUM)
+
+/* 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_MAXIMUM; \
+	yyptr += yynewbytes / sizeof (*yyptr);				\
+      }									\
+    while (0)
+
 #endif
 
+#if defined (__STDC__) || defined (__cplusplus)
+   typedef signed char yysigned_char;
+#else
+   typedef short yysigned_char;
+#endif
 
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL  3
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   669
 
-#define	YYFINAL		568
-#define	YYFLAG		-32768
-#define	YYNTBASE	96
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS  96
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS  82
+/* YYNRULES -- Number of rules. */
+#define YYNRULES  256
+/* YYNRULES -- Number of states. */
+#define YYNSTATES  570
 
-/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
-#define YYTRANSLATE(x) ((unsigned)(x) <= 338 ? yytranslate[x] : 177)
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   339
 
-/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
-static const char yytranslate[] =
+#define YYTRANSLATE(YYX) 						\
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const unsigned char yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -414,193 +680,193 @@
        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,    91,    92
+       2,     2,     2,     2,     2,     2,     1,     2,     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,    91,    92
 };
 
 #if YYDEBUG
-static const short yyprhs[] =
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const unsigned short yyprhs[] =
 {
-       0,     0,     2,     3,     6,     9,    13,    17,    19,    20,
-      26,    27,    29,    31,    33,    35,    37,    39,    41,    43,
-      45,    47,    49,    51,    53,    55,    57,    59,    61,    63,
-      65,    67,    69,    71,    73,    77,    81,    85,    89,    93,
-      97,   101,   105,   109,   111,   113,   120,   121,   127,   133,
-     134,   137,   139,   143,   145,   147,   149,   151,   153,   155,
-     169,   170,   174,   178,   182,   185,   189,   193,   196,   199,
-     202,   203,   207,   211,   215,   219,   223,   227,   231,   235,
-     239,   243,   247,   251,   255,   259,   263,   267,   271,   282,
-     295,   306,   307,   312,   319,   328,   346,   362,   367,   368,
-     371,   376,   380,   384,   386,   389,   391,   393,   408,   409,
-     413,   417,   421,   424,   427,   431,   435,   438,   441,   444,
-     445,   449,   453,   457,   461,   465,   469,   473,   477,   481,
-     485,   489,   493,   497,   501,   505,   509,   513,   524,   544,
-     561,   576,   589,   590,   592,   593,   596,   606,   607,   610,
-     615,   619,   620,   627,   631,   637,   638,   642,   646,   650,
-     654,   658,   662,   667,   671,   672,   677,   681,   687,   688,
-     691,   697,   704,   705,   708,   713,   720,   729,   734,   738,
-     739,   744,   745,   747,   754,   755,   765,   775,   779,   783,
-     787,   791,   795,   796,   799,   805,   806,   809,   811,   816,
-     821,   823,   827,   837,   838,   842,   845,   846,   849,   852,
-     854,   856,   858,   860,   862,   864,   866,   867,   870,   873,
-     876,   881,   884,   887,   892,   894,   896,   899,   901,   904,
-     906,   910,   914,   919,   923,   928,   932,   934,   936,   937,
-     939,   941,   945,   949,   953,   957,   961,   965,   969,   972,
-     975,   978,   982,   984,   987,   989
+       0,     0,     3,     5,     6,     9,    12,    16,    20,    22,
+      23,    29,    30,    32,    34,    36,    38,    40,    42,    44,
+      46,    48,    50,    52,    54,    56,    58,    60,    62,    64,
+      66,    68,    70,    72,    74,    76,    80,    84,    88,    92,
+      96,   100,   104,   108,   112,   114,   116,   123,   124,   130,
+     136,   137,   140,   142,   146,   148,   150,   152,   154,   156,
+     158,   172,   173,   177,   181,   185,   188,   192,   196,   199,
+     202,   205,   206,   210,   214,   218,   222,   226,   230,   234,
+     238,   242,   246,   250,   254,   258,   262,   266,   270,   274,
+     285,   298,   309,   310,   315,   322,   331,   349,   365,   370,
+     371,   374,   379,   383,   387,   389,   392,   394,   396,   411,
+     412,   416,   420,   424,   427,   430,   434,   438,   441,   444,
+     447,   448,   452,   456,   460,   464,   468,   472,   476,   480,
+     484,   488,   492,   496,   500,   504,   508,   512,   516,   527,
+     547,   564,   579,   592,   593,   595,   596,   599,   609,   610,
+     613,   618,   622,   623,   630,   634,   640,   641,   645,   649,
+     653,   657,   661,   665,   670,   674,   675,   680,   684,   690,
+     691,   694,   700,   707,   708,   711,   716,   723,   732,   737,
+     741,   742,   747,   748,   750,   757,   758,   768,   778,   782,
+     786,   790,   794,   798,   799,   802,   808,   809,   812,   814,
+     819,   824,   826,   830,   840,   841,   845,   848,   849,   852,
+     855,   857,   859,   861,   863,   865,   867,   869,   870,   873,
+     876,   879,   884,   887,   890,   895,   897,   899,   902,   904,
+     907,   909,   913,   917,   922,   926,   931,   935,   937,   939,
+     940,   942,   944,   948,   952,   956,   960,   964,   968,   972,
+     975,   978,   981,   985,   987,   990,   992
 };
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
 static const short yyrhs[] =
 {
-      97,     0,     0,    97,    98,     0,    97,     3,     0,   174,
-     100,   103,     0,     7,   100,   103,     0,   150,     0,     0,
-      64,    99,   174,    93,   174,     0,     0,   174,     0,     7,
-       0,   101,     0,     6,     0,   115,     0,   105,     0,   106,
-       0,   120,     0,   131,     0,   112,     0,   108,     0,   109,
-       0,   107,     0,   141,     0,   145,     0,   110,     0,   111,
-       0,   161,     0,   113,     0,   154,     0,     8,     0,     7,
-       0,     6,     0,    11,   163,   172,     0,    12,   163,   172,
-       0,    23,   163,   172,     0,    21,   163,   172,     0,    22,
-     163,   172,     0,    17,   163,   172,     0,    18,   163,   172,
-       0,    82,   163,   172,     0,   114,   163,   172,     0,     4,
-       0,     7,     0,    10,   163,   166,    80,   116,    81,     0,
-       0,   116,     6,    93,   174,   117,     0,   116,   174,    93,
-     174,   117,     0,     0,    93,   118,     0,   119,     0,   118,
-      93,   119,     0,    50,     0,    43,     0,    36,     0,    44,
-       0,    45,     0,    46,     0,    13,   163,   174,    93,   174,
-      93,   174,    93,   174,   121,    80,   122,    81,     0,     0,
-     121,    62,   129,     0,   121,    61,   129,     0,   121,    59,
-       6,     0,   121,   127,     0,   121,    58,   102,     0,   121,
-      15,   101,     0,   121,   167,     0,   121,   168,     0,   121,
-     169,     0,     0,   122,    36,   126,     0,   122,    37,   124,
-       0,   122,    34,   124,     0,   122,    33,   124,     0,   122,
-      35,   124,     0,   122,    27,   123,     0,   122,    28,   123,
-       0,   122,    32,   123,     0,   122,    29,   123,     0,   122,
-      30,   123,     0,   122,    24,   123,     0,   122,    31,   123,
-       0,   122,    25,   123,     0,   122,    26,   123,     0,   122,
-      40,   123,     0,   122,    39,   123,     0,   122,    38,   123,
-       0,   122,    23,   102,   153,   174,    93,   174,    93,   174,
-     125,     0,     6,   153,   174,    93,   174,    93,   174,    93,
-     174,    93,   174,   128,     0,   174,    93,   174,    93,   174,
-      93,   174,    93,   174,   128,     0,     0,    93,   174,    93,
-     174,     0,    93,   174,    93,   174,    93,   129,     0,    93,
-     174,    93,   174,    93,   129,    93,   129,     0,   102,   153,
-     174,    93,   130,    93,   129,    93,   174,    93,   174,    93,
-     174,    93,   174,    93,   129,     0,   102,   153,   174,    93,
-     130,    93,   129,    93,   174,    93,   174,    93,   174,    93,
-     174,     0,    21,   174,    93,     6,     0,     0,    93,   129,
-       0,    93,   129,    93,   129,     0,   129,    83,   129,     0,
-      94,   129,    95,     0,   176,     0,    91,   176,     0,   174,
-       0,     6,     0,    14,   163,   174,    93,   174,    93,   174,
-      93,   174,   138,   132,    80,   133,    81,     0,     0,   132,
-      62,   129,     0,   132,    61,   129,     0,   132,    59,     6,
-       0,   132,   127,     0,   132,   139,     0,   132,    58,   102,
-       0,   132,    15,   101,     0,   132,   167,     0,   132,   168,
-       0,   132,   169,     0,     0,   133,    36,   134,     0,   133,
-      37,   136,     0,   133,    34,   136,     0,   133,    33,   136,
-       0,   133,    35,   136,     0,   133,    27,   135,     0,   133,
-      28,   135,     0,   133,    32,   135,     0,   133,    29,   135,
-       0,   133,    30,   135,     0,   133,    24,   135,     0,   133,
-      31,   135,     0,   133,    25,   135,     0,   133,    26,   135,
-       0,   133,    40,   135,     0,   133,    39,   135,     0,   133,
-      38,   135,     0,   133,    23,   102,   153,   174,    93,   174,
-      93,   174,   125,     0,   102,   153,   174,    93,   130,    93,
-     129,    93,   174,    93,   174,    93,   174,    93,   174,    93,
-     129,   138,   137,     0,   102,   153,   174,    93,   130,    93,
-     129,    93,   174,    93,   174,    93,   174,    93,   174,   137,
-       0,     6,   153,   174,    93,   174,    93,   174,    93,   174,
-      93,   174,   128,   138,   137,     0,   174,    93,   174,    93,
-     174,    93,   174,    93,   174,   128,   138,   137,     0,     0,
-     170,     0,     0,    93,   174,     0,    21,   174,    93,     6,
-      93,   174,    93,   174,   140,     0,     0,    93,   174,     0,
-      15,   163,   166,   142,     0,    80,   143,    81,     0,     0,
-     143,    74,     6,   153,   174,   144,     0,   143,    74,    76,
-       0,   143,    75,     6,   144,   142,     0,     0,   153,    48,
-     144,     0,   153,    47,   144,     0,   153,    77,   144,     0,
-     153,    49,   144,     0,   153,    72,   144,     0,   153,    73,
-     144,     0,    16,   163,   166,   146,     0,    80,   147,    81,
-       0,     0,   147,    74,     6,   148,     0,   147,    74,    76,
-       0,   147,    75,     6,   149,   146,     0,     0,    93,   174,
-       0,    93,   173,    93,   173,   144,     0,    93,   173,    93,
-     173,    93,   174,     0,     0,    93,   174,     0,    93,   173,
-      93,   174,     0,    93,   173,    93,   173,    93,   174,     0,
-      93,   173,    93,   173,    93,   173,    93,   174,     0,   151,
-      80,   152,    81,     0,    20,   163,   166,     0,     0,   152,
-     174,   153,     6,     0,     0,    93,     0,    19,   163,   155,
-      80,   156,    81,     0,     0,   155,    65,   174,    93,   174,
-      93,   174,    93,   174,     0,   155,    66,   174,    93,   174,
-      93,   174,    93,   174,     0,   155,    70,   174,     0,   155,
-      67,   174,     0,   155,    68,   174,     0,   155,    69,   174,
-       0,   155,    71,   174,     0,     0,   156,   157,     0,    41,
-       6,    80,   158,    81,     0,     0,   158,   159,     0,   157,
-       0,    42,     6,    93,     6,     0,    42,     6,    93,   160,
-       0,   174,     0,   160,    93,   174,     0,    78,   163,   174,
-      93,   174,   166,    80,   162,    81,     0,     0,   162,    79,
-     174,     0,   162,    76,     0,     0,   163,   164,     0,   163,
-     165,     0,    55,     0,    57,     0,    53,     0,    51,     0,
-      54,     0,    56,     0,    52,     0,     0,   166,   167,     0,
-     166,   168,     0,   166,   169,     0,    64,   174,    93,   174,
-       0,    60,   174,     0,    63,   174,     0,   166,    80,   171,
-      81,     0,     9,     0,     4,     0,    87,     4,     0,     5,
-       0,    87,     5,     0,     6,     0,   171,   153,     9,     0,
-     171,   153,     4,     0,   171,   153,    87,     4,     0,   171,
-     153,     5,     0,   171,   153,    87,     5,     0,   171,   153,
-       6,     0,   104,     0,   170,     0,     0,   174,     0,   175,
-       0,   175,    86,   175,     0,   175,    87,   175,     0,   175,
-      83,   175,     0,   175,    85,   175,     0,   175,    88,   175,
-       0,   175,    89,   175,     0,   175,    84,   175,     0,    90,
-     175,     0,    87,   175,     0,    86,   175,     0,    94,   175,
-      95,     0,   176,     0,    91,   176,     0,     4,     0,     5,
-       0
+      97,     0,    -1,    98,    -1,    -1,    98,    99,    -1,    98,
+       3,    -1,   175,   101,   104,    -1,     7,   101,   104,    -1,
+     151,    -1,    -1,    64,   100,   175,    93,   175,    -1,    -1,
+     175,    -1,     7,    -1,   102,    -1,     6,    -1,   116,    -1,
+     106,    -1,   107,    -1,   121,    -1,   132,    -1,   113,    -1,
+     109,    -1,   110,    -1,   108,    -1,   142,    -1,   146,    -1,
+     111,    -1,   112,    -1,   162,    -1,   114,    -1,   155,    -1,
+       8,    -1,     7,    -1,     6,    -1,    11,   164,   173,    -1,
+      12,   164,   173,    -1,    23,   164,   173,    -1,    21,   164,
+     173,    -1,    22,   164,   173,    -1,    17,   164,   173,    -1,
+      18,   164,   173,    -1,    82,   164,   173,    -1,   115,   164,
+     173,    -1,     4,    -1,     7,    -1,    10,   164,   167,    80,
+     117,    81,    -1,    -1,   117,     6,    93,   175,   118,    -1,
+     117,   175,    93,   175,   118,    -1,    -1,    93,   119,    -1,
+     120,    -1,   119,    93,   120,    -1,    50,    -1,    43,    -1,
+      36,    -1,    44,    -1,    45,    -1,    46,    -1,    13,   164,
+     175,    93,   175,    93,   175,    93,   175,   122,    80,   123,
+      81,    -1,    -1,   122,    62,   130,    -1,   122,    61,   130,
+      -1,   122,    59,     6,    -1,   122,   128,    -1,   122,    58,
+     103,    -1,   122,    15,   102,    -1,   122,   168,    -1,   122,
+     169,    -1,   122,   170,    -1,    -1,   123,    36,   127,    -1,
+     123,    37,   125,    -1,   123,    34,   125,    -1,   123,    33,
+     125,    -1,   123,    35,   125,    -1,   123,    27,   124,    -1,
+     123,    28,   124,    -1,   123,    32,   124,    -1,   123,    29,
+     124,    -1,   123,    30,   124,    -1,   123,    24,   124,    -1,
+     123,    31,   124,    -1,   123,    25,   124,    -1,   123,    26,
+     124,    -1,   123,    40,   124,    -1,   123,    39,   124,    -1,
+     123,    38,   124,    -1,   123,    23,   103,   154,   175,    93,
+     175,    93,   175,   126,    -1,     6,   154,   175,    93,   175,
+      93,   175,    93,   175,    93,   175,   129,    -1,   175,    93,
+     175,    93,   175,    93,   175,    93,   175,   129,    -1,    -1,
+      93,   175,    93,   175,    -1,    93,   175,    93,   175,    93,
+     130,    -1,    93,   175,    93,   175,    93,   130,    93,   130,
+      -1,   103,   154,   175,    93,   131,    93,   130,    93,   175,
+      93,   175,    93,   175,    93,   175,    93,   130,    -1,   103,
+     154,   175,    93,   131,    93,   130,    93,   175,    93,   175,
+      93,   175,    93,   175,    -1,    21,   175,    93,     6,    -1,
+      -1,    93,   130,    -1,    93,   130,    93,   130,    -1,   130,
+      83,   130,    -1,    94,   130,    95,    -1,   176,    -1,    91,
+     176,    -1,   175,    -1,     6,    -1,    14,   164,   175,    93,
+     175,    93,   175,    93,   175,   139,   133,    80,   134,    81,
+      -1,    -1,   133,    62,   130,    -1,   133,    61,   130,    -1,
+     133,    59,     6,    -1,   133,   128,    -1,   133,   140,    -1,
+     133,    58,   103,    -1,   133,    15,   102,    -1,   133,   168,
+      -1,   133,   169,    -1,   133,   170,    -1,    -1,   134,    36,
+     135,    -1,   134,    37,   137,    -1,   134,    34,   137,    -1,
+     134,    33,   137,    -1,   134,    35,   137,    -1,   134,    27,
+     136,    -1,   134,    28,   136,    -1,   134,    32,   136,    -1,
+     134,    29,   136,    -1,   134,    30,   136,    -1,   134,    24,
+     136,    -1,   134,    31,   136,    -1,   134,    25,   136,    -1,
+     134,    26,   136,    -1,   134,    40,   136,    -1,   134,    39,
+     136,    -1,   134,    38,   136,    -1,   134,    23,   103,   154,
+     175,    93,   175,    93,   175,   126,    -1,   103,   154,   175,
+      93,   131,    93,   130,    93,   175,    93,   175,    93,   175,
+      93,   175,    93,   130,   139,   138,    -1,   103,   154,   175,
+      93,   131,    93,   130,    93,   175,    93,   175,    93,   175,
+      93,   175,   138,    -1,     6,   154,   175,    93,   175,    93,
+     175,    93,   175,    93,   175,   129,   139,   138,    -1,   175,
+      93,   175,    93,   175,    93,   175,    93,   175,   129,   139,
+     138,    -1,    -1,   171,    -1,    -1,    93,   175,    -1,    21,
+     175,    93,     6,    93,   175,    93,   175,   141,    -1,    -1,
+      93,   175,    -1,    15,   164,   167,   143,    -1,    80,   144,
+      81,    -1,    -1,   144,    74,     6,   154,   175,   145,    -1,
+     144,    74,    76,    -1,   144,    75,     6,   145,   143,    -1,
+      -1,   154,    48,   145,    -1,   154,    47,   145,    -1,   154,
+      77,   145,    -1,   154,    49,   145,    -1,   154,    72,   145,
+      -1,   154,    73,   145,    -1,    16,   164,   167,   147,    -1,
+      80,   148,    81,    -1,    -1,   148,    74,     6,   149,    -1,
+     148,    74,    76,    -1,   148,    75,     6,   150,   147,    -1,
+      -1,    93,   175,    -1,    93,   174,    93,   174,   145,    -1,
+      93,   174,    93,   174,    93,   175,    -1,    -1,    93,   175,
+      -1,    93,   174,    93,   175,    -1,    93,   174,    93,   174,
+      93,   175,    -1,    93,   174,    93,   174,    93,   174,    93,
+     175,    -1,   152,    80,   153,    81,    -1,    20,   164,   167,
+      -1,    -1,   153,   175,   154,     6,    -1,    -1,    93,    -1,
+      19,   164,   156,    80,   157,    81,    -1,    -1,   156,    65,
+     175,    93,   175,    93,   175,    93,   175,    -1,   156,    66,
+     175,    93,   175,    93,   175,    93,   175,    -1,   156,    70,
+     175,    -1,   156,    67,   175,    -1,   156,    68,   175,    -1,
+     156,    69,   175,    -1,   156,    71,   175,    -1,    -1,   157,
+     158,    -1,    41,     6,    80,   159,    81,    -1,    -1,   159,
+     160,    -1,   158,    -1,    42,     6,    93,     6,    -1,    42,
+       6,    93,   161,    -1,   175,    -1,   161,    93,   175,    -1,
+      78,   164,   175,    93,   175,   167,    80,   163,    81,    -1,
+      -1,   163,    79,   175,    -1,   163,    76,    -1,    -1,   164,
+     165,    -1,   164,   166,    -1,    55,    -1,    57,    -1,    53,
+      -1,    51,    -1,    54,    -1,    56,    -1,    52,    -1,    -1,
+     167,   168,    -1,   167,   169,    -1,   167,   170,    -1,    64,
+     175,    93,   175,    -1,    60,   175,    -1,    63,   175,    -1,
+     167,    80,   172,    81,    -1,     9,    -1,     4,    -1,    87,
+       4,    -1,     5,    -1,    87,     5,    -1,     6,    -1,   172,
+     154,     9,    -1,   172,   154,     4,    -1,   172,   154,    87,
+       4,    -1,   172,   154,     5,    -1,   172,   154,    87,     5,
+      -1,   172,   154,     6,    -1,   105,    -1,   171,    -1,    -1,
+     175,    -1,   176,    -1,   176,    86,   176,    -1,   176,    87,
+     176,    -1,   176,    83,   176,    -1,   176,    85,   176,    -1,
+     176,    88,   176,    -1,   176,    89,   176,    -1,   176,    84,
+     176,    -1,    90,   176,    -1,    87,   176,    -1,    86,   176,
+      -1,    94,   176,    95,    -1,   177,    -1,    91,   177,    -1,
+       4,    -1,     5,    -1
 };
 
-#endif
-
-#if YYDEBUG
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const short yyrline[] =
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const unsigned short yyrline[] =
 {
-       0,   361,   395,   396,   466,   472,   484,   494,   502,   502,
-     546,   552,   559,   569,   570,   579,   580,   581,   605,   606,
-     612,   613,   614,   615,   639,   640,   646,   647,   648,   649,
-     650,   654,   655,   656,   660,   664,   680,   702,   712,   720,
-     728,   732,   736,   747,   752,   761,   785,   786,   787,   796,
-     797,   800,   801,   804,   805,   806,   807,   808,   809,   814,
-     849,   850,   851,   852,   853,   854,   855,   856,   857,   858,
-     861,   862,   863,   864,   865,   866,   867,   868,   869,   870,
-     872,   873,   874,   875,   876,   877,   878,   879,   881,   891,
-     916,   937,   940,   945,   952,   963,   977,   992,   997,   998,
-     999,  1003,  1004,  1005,  1006,  1010,  1015,  1023,  1067,  1068,
-    1069,  1070,  1071,  1072,  1073,  1074,  1075,  1076,  1077,  1080,
-    1081,  1082,  1083,  1084,  1085,  1086,  1087,  1088,  1089,  1091,
-    1092,  1093,  1094,  1095,  1096,  1097,  1098,  1100,  1110,  1135,
-    1151,  1179,  1202,  1203,  1206,  1207,  1211,  1218,  1219,  1223,
-    1246,  1250,  1251,  1260,  1266,  1285,  1286,  1287,  1288,  1289,
-    1290,  1291,  1295,  1320,  1324,  1325,  1341,  1347,  1367,  1368,
-    1372,  1380,  1391,  1392,  1396,  1402,  1410,  1430,  1471,  1482,
-    1483,  1517,  1518,  1523,  1539,  1540,  1550,  1560,  1567,  1574,
-    1581,  1588,  1598,  1599,  1608,  1616,  1617,  1626,  1631,  1637,
-    1646,  1647,  1651,  1677,  1678,  1683,  1692,  1693,  1703,  1718,
-    1719,  1720,  1721,  1724,  1725,  1726,  1730,  1731,  1739,  1747,
-    1765,  1772,  1776,  1780,  1795,  1796,  1797,  1798,  1799,  1800,
-    1801,  1802,  1803,  1804,  1805,  1806,  1810,  1811,  1818,  1819,
-    1823,  1826,  1827,  1828,  1829,  1830,  1831,  1832,  1833,  1834,
-    1835,  1836,  1837,  1838,  1841,  1842
+       0,   361,   361,   395,   396,   466,   472,   484,   494,   502,
+     502,   546,   552,   559,   569,   570,   579,   580,   581,   605,
+     606,   612,   613,   614,   615,   639,   640,   646,   647,   648,
+     649,   650,   654,   655,   656,   660,   664,   680,   702,   712,
+     720,   728,   732,   736,   747,   752,   761,   785,   786,   787,
+     796,   797,   800,   801,   804,   805,   806,   807,   808,   809,
+     814,   849,   850,   851,   852,   853,   854,   855,   856,   857,
+     858,   861,   862,   863,   864,   865,   866,   867,   868,   869,
+     870,   872,   873,   874,   875,   876,   877,   878,   879,   881,
+     891,   916,   938,   940,   945,   952,   963,   977,   992,   997,
+     998,   999,  1003,  1004,  1005,  1006,  1010,  1015,  1023,  1067,
+    1068,  1069,  1070,  1071,  1072,  1073,  1074,  1075,  1076,  1077,
+    1080,  1081,  1082,  1083,  1084,  1085,  1086,  1087,  1088,  1089,
+    1091,  1092,  1093,  1094,  1095,  1096,  1097,  1098,  1100,  1110,
+    1135,  1151,  1179,  1202,  1203,  1206,  1207,  1211,  1218,  1219,
+    1223,  1246,  1250,  1251,  1260,  1266,  1285,  1286,  1287,  1288,
+    1289,  1290,  1291,  1295,  1320,  1324,  1325,  1341,  1347,  1367,
+    1368,  1372,  1380,  1391,  1392,  1396,  1402,  1410,  1430,  1471,
+    1482,  1483,  1516,  1518,  1523,  1539,  1540,  1550,  1560,  1567,
+    1574,  1581,  1588,  1598,  1599,  1608,  1616,  1617,  1626,  1631,
+    1637,  1646,  1647,  1651,  1677,  1678,  1683,  1692,  1693,  1703,
+    1718,  1719,  1720,  1721,  1724,  1725,  1726,  1730,  1731,  1739,
+    1747,  1765,  1772,  1776,  1780,  1795,  1796,  1797,  1798,  1799,
+    1800,  1801,  1802,  1803,  1804,  1805,  1806,  1810,  1811,  1818,
+    1819,  1823,  1826,  1827,  1828,  1829,  1830,  1831,  1832,  1833,
+    1834,  1835,  1836,  1837,  1838,  1841,  1842
 };
 #endif
 
-
-#if (YYDEBUG) || defined YYERROR_VERBOSE
-
-/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
 static const char *const yytname[] =
 {
-  "$", "error", "$undefined.", "tNL", "tNUMBER", "tLNUMBER", "tSTRING", 
+  "$end", "error", "$undefined", "tNL", "tNUMBER", "tLNUMBER", "tSTRING", 
   "tIDENT", "tFILENAME", "tRAWDATA", "tACCELERATORS", "tBITMAP", 
   "tCURSOR", "tDIALOG", "tDIALOGEX", "tMENU", "tMENUEX", "tMESSAGETABLE", 
   "tRCDATA", "tVERSIONINFO", "tSTRINGTABLE", "tFONT", "tFONTDIR", "tICON", 
@@ -616,9 +882,9 @@
   "tMENUBARBREAK", "tMENUBREAK", "tMENUITEM", "tPOPUP", "tSEPARATOR", 
   "tHELP", "tTOOLBAR", "tBUTTON", "tBEGIN", "tEND", "tDLGINIT", "'|'", 
   "'^'", "'&'", "'+'", "'-'", "'*'", "'/'", "'~'", "tNOT", "pUPM", "','", 
-  "'('", "')'", "resource_file", "resources", "resource", "@1", "usrcvt", 
-  "nameid", "nameid_s", "resource_definition", "filename", "bitmap", 
-  "cursor", "icon", "font", "fontdir", "messagetable", "rcdata", 
+  "'('", "')'", "$accept", "resource_file", "resources", "resource", "@1", 
+  "usrcvt", "nameid", "nameid_s", "resource_definition", "filename", 
+  "bitmap", "cursor", "icon", "font", "fontdir", "messagetable", "rcdata", 
   "dlginit", "userres", "usertype", "accelerators", "events", "acc_opt", 
   "accs", "acc", "dialog", "dlg_attributes", "ctrls", "lab_ctrl", 
   "ctrl_desc", "iconinfo", "gen_ctrl", "opt_font", "optional_style_pair", 
@@ -635,502 +901,452 @@
 };
 #endif
 
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const short yyr1[] =
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const unsigned short yytoknum[] =
 {
-       0,    96,    97,    97,    97,    98,    98,    98,    99,    98,
-     100,   101,   101,   102,   102,   103,   103,   103,   103,   103,
-     103,   103,   103,   103,   103,   103,   103,   103,   103,   103,
-     103,   104,   104,   104,   105,   106,   107,   108,   109,   110,
-     111,   112,   113,   114,   114,   115,   116,   116,   116,   117,
-     117,   118,   118,   119,   119,   119,   119,   119,   119,   120,
-     121,   121,   121,   121,   121,   121,   121,   121,   121,   121,
-     122,   122,   122,   122,   122,   122,   122,   122,   122,   122,
-     122,   122,   122,   122,   122,   122,   122,   122,   122,   123,
-     124,   125,   125,   125,   125,   126,   126,   127,   128,   128,
-     128,   129,   129,   129,   129,   130,   130,   131,   132,   132,
-     132,   132,   132,   132,   132,   132,   132,   132,   132,   133,
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
+     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
+     335,   336,   337,   124,    94,    38,    43,    45,    42,    47,
+     126,   338,   339,    44,    40,    41
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const unsigned char yyr1[] =
+{
+       0,    96,    97,    98,    98,    98,    99,    99,    99,   100,
+      99,   101,   102,   102,   103,   103,   104,   104,   104,   104,
+     104,   104,   104,   104,   104,   104,   104,   104,   104,   104,
+     104,   104,   105,   105,   105,   106,   107,   108,   109,   110,
+     111,   112,   113,   114,   115,   115,   116,   117,   117,   117,
+     118,   118,   119,   119,   120,   120,   120,   120,   120,   120,
+     121,   122,   122,   122,   122,   122,   122,   122,   122,   122,
+     122,   123,   123,   123,   123,   123,   123,   123,   123,   123,
+     123,   123,   123,   123,   123,   123,   123,   123,   123,   123,
+     124,   125,   126,   126,   126,   126,   127,   127,   128,   129,
+     129,   129,   130,   130,   130,   130,   131,   131,   132,   133,
      133,   133,   133,   133,   133,   133,   133,   133,   133,   133,
-     133,   133,   133,   133,   133,   133,   133,   133,   134,   134,
-     135,   136,   137,   137,   138,   138,   139,   140,   140,   141,
-     142,   143,   143,   143,   143,   144,   144,   144,   144,   144,
-     144,   144,   145,   146,   147,   147,   147,   147,   148,   148,
-     148,   148,   149,   149,   149,   149,   149,   150,   151,   152,
-     152,   153,   153,   154,   155,   155,   155,   155,   155,   155,
-     155,   155,   156,   156,   157,   158,   158,   159,   159,   159,
-     160,   160,   161,   162,   162,   162,   163,   163,   163,   164,
-     164,   164,   164,   165,   165,   165,   166,   166,   166,   166,
-     167,   168,   169,   170,   171,   171,   171,   171,   171,   171,
-     171,   171,   171,   171,   171,   171,   172,   172,   173,   173,
-     174,   175,   175,   175,   175,   175,   175,   175,   175,   175,
-     175,   175,   175,   175,   176,   176
+     134,   134,   134,   134,   134,   134,   134,   134,   134,   134,
[truncated at 1000 lines; 4823 more skipped]