xkbparse.c revision 5fac8b10
1f46a6179Smrg
25fac8b10Smrg/* A Bison parser, made by GNU Bison 2.4.1.  */
3f46a6179Smrg
45fac8b10Smrg/* Skeleton implementation for Bison's Yacc-like parsers in C
55fac8b10Smrg
65fac8b10Smrg      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7f46a6179Smrg   Free Software Foundation, Inc.
85fac8b10Smrg
95fac8b10Smrg   This program is free software: you can redistribute it and/or modify
10f46a6179Smrg   it under the terms of the GNU General Public License as published by
115fac8b10Smrg   the Free Software Foundation, either version 3 of the License, or
125fac8b10Smrg   (at your option) any later version.
135fac8b10Smrg
14f46a6179Smrg   This program is distributed in the hope that it will be useful,
15f46a6179Smrg   but WITHOUT ANY WARRANTY; without even the implied warranty of
16f46a6179Smrg   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17f46a6179Smrg   GNU General Public License for more details.
185fac8b10Smrg
19f46a6179Smrg   You should have received a copy of the GNU General Public License
205fac8b10Smrg   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
21f46a6179Smrg
22f46a6179Smrg/* As a special exception, you may create a larger work that contains
23f46a6179Smrg   part or all of the Bison parser skeleton and distribute that work
24f46a6179Smrg   under terms of your choice, so long as that work isn't itself a
25f46a6179Smrg   parser generator using the skeleton or a modified version thereof
26f46a6179Smrg   as a parser skeleton.  Alternatively, if you modify or redistribute
27f46a6179Smrg   the parser skeleton itself, you may (at your option) remove this
28f46a6179Smrg   special exception, which will cause the skeleton and the resulting
29f46a6179Smrg   Bison output files to be licensed under the GNU General Public
30f46a6179Smrg   License without this special exception.
315fac8b10Smrg
32f46a6179Smrg   This special exception was added by the Free Software Foundation in
33f46a6179Smrg   version 2.2 of Bison.  */
34f46a6179Smrg
35f46a6179Smrg/* C LALR(1) parser skeleton written by Richard Stallman, by
36f46a6179Smrg   simplifying the original so-called "semantic" parser.  */
37f46a6179Smrg
38f46a6179Smrg/* All symbols defined below should begin with yy or YY, to avoid
39f46a6179Smrg   infringing on user name space.  This should be done even for local
40f46a6179Smrg   variables, as they might otherwise be expanded by user macros.
41f46a6179Smrg   There are some unavoidable exceptions within include files to
42f46a6179Smrg   define necessary library symbols; they are noted "INFRINGES ON
43f46a6179Smrg   USER NAME SPACE" below.  */
44f46a6179Smrg
45f46a6179Smrg/* Identify Bison output.  */
46f46a6179Smrg#define YYBISON 1
47f46a6179Smrg
48f46a6179Smrg/* Bison version.  */
495fac8b10Smrg#define YYBISON_VERSION "2.4.1"
50f46a6179Smrg
51f46a6179Smrg/* Skeleton name.  */
52f46a6179Smrg#define YYSKELETON_NAME "yacc.c"
53f46a6179Smrg
54f46a6179Smrg/* Pure parsers.  */
55f46a6179Smrg#define YYPURE 0
56f46a6179Smrg
575fac8b10Smrg/* Push parsers.  */
585fac8b10Smrg#define YYPUSH 0
595fac8b10Smrg
605fac8b10Smrg/* Pull parsers.  */
615fac8b10Smrg#define YYPULL 1
625fac8b10Smrg
63f46a6179Smrg/* Using locations.  */
64f46a6179Smrg#define YYLSP_NEEDED 0
65f46a6179Smrg
66f46a6179Smrg
67f46a6179Smrg
685fac8b10Smrg/* Copy the first part of user declarations.  */
695fac8b10Smrg
705fac8b10Smrg/* Line 189 of yacc.c  */
715fac8b10Smrg#line 91 "xkbparse.y"
725fac8b10Smrg
735fac8b10Smrg#ifdef DEBUG
745fac8b10Smrg#define	YYDEBUG 1
755fac8b10Smrg#endif
765fac8b10Smrg#define	DEBUG_VAR parseDebug
775fac8b10Smrg#include "parseutils.h"
785fac8b10Smrg#include <X11/keysym.h>
795fac8b10Smrg#include <X11/extensions/XKBgeom.h>
805fac8b10Smrg#include <stdlib.h>
815fac8b10Smrg
825fac8b10Smrgunsigned int parseDebug;
835fac8b10Smrg
845fac8b10Smrg
855fac8b10Smrg
865fac8b10Smrg/* Line 189 of yacc.c  */
875fac8b10Smrg#line 88 "xkbparse.c"
885fac8b10Smrg
895fac8b10Smrg/* Enabling traces.  */
905fac8b10Smrg#ifndef YYDEBUG
915fac8b10Smrg# define YYDEBUG 0
925fac8b10Smrg#endif
935fac8b10Smrg
945fac8b10Smrg/* Enabling verbose error messages.  */
955fac8b10Smrg#ifdef YYERROR_VERBOSE
965fac8b10Smrg# undef YYERROR_VERBOSE
975fac8b10Smrg# define YYERROR_VERBOSE 1
985fac8b10Smrg#else
995fac8b10Smrg# define YYERROR_VERBOSE 0
1005fac8b10Smrg#endif
1015fac8b10Smrg
1025fac8b10Smrg/* Enabling the token table.  */
1035fac8b10Smrg#ifndef YYTOKEN_TABLE
1045fac8b10Smrg# define YYTOKEN_TABLE 0
1055fac8b10Smrg#endif
1065fac8b10Smrg
1075fac8b10Smrg
108f46a6179Smrg/* Tokens.  */
109f46a6179Smrg#ifndef YYTOKENTYPE
110f46a6179Smrg# define YYTOKENTYPE
111f46a6179Smrg   /* Put the tokens into the symbol table, so that GDB and other debuggers
112f46a6179Smrg      know about them.  */
113f46a6179Smrg   enum yytokentype {
114f46a6179Smrg     END_OF_FILE = 0,
115f46a6179Smrg     ERROR_TOK = 255,
116f46a6179Smrg     XKB_KEYMAP = 1,
117f46a6179Smrg     XKB_KEYCODES = 2,
118f46a6179Smrg     XKB_TYPES = 3,
119f46a6179Smrg     XKB_SYMBOLS = 4,
120f46a6179Smrg     XKB_COMPATMAP = 5,
121f46a6179Smrg     XKB_GEOMETRY = 6,
122f46a6179Smrg     XKB_SEMANTICS = 7,
123f46a6179Smrg     XKB_LAYOUT = 8,
124f46a6179Smrg     INCLUDE = 10,
125f46a6179Smrg     OVERRIDE = 11,
126f46a6179Smrg     AUGMENT = 12,
127f46a6179Smrg     REPLACE = 13,
128f46a6179Smrg     ALTERNATE = 14,
129f46a6179Smrg     VIRTUAL_MODS = 20,
130f46a6179Smrg     TYPE = 21,
131f46a6179Smrg     INTERPRET = 22,
132f46a6179Smrg     ACTION_TOK = 23,
133f46a6179Smrg     KEY = 24,
134f46a6179Smrg     ALIAS = 25,
135f46a6179Smrg     GROUP = 26,
136f46a6179Smrg     MODIFIER_MAP = 27,
137f46a6179Smrg     INDICATOR = 28,
138f46a6179Smrg     SHAPE = 29,
139f46a6179Smrg     KEYS = 30,
140f46a6179Smrg     ROW = 31,
141f46a6179Smrg     SECTION = 32,
142f46a6179Smrg     OVERLAY = 33,
143f46a6179Smrg     TEXT = 34,
144f46a6179Smrg     OUTLINE = 35,
145f46a6179Smrg     SOLID = 36,
146f46a6179Smrg     LOGO = 37,
147f46a6179Smrg     VIRTUAL = 38,
148f46a6179Smrg     EQUALS = 40,
149f46a6179Smrg     PLUS = 41,
150f46a6179Smrg     MINUS = 42,
151f46a6179Smrg     DIVIDE = 43,
152f46a6179Smrg     TIMES = 44,
153f46a6179Smrg     OBRACE = 45,
154f46a6179Smrg     CBRACE = 46,
155f46a6179Smrg     OPAREN = 47,
156f46a6179Smrg     CPAREN = 48,
157f46a6179Smrg     OBRACKET = 49,
158f46a6179Smrg     CBRACKET = 50,
159f46a6179Smrg     DOT = 51,
160f46a6179Smrg     COMMA = 52,
161f46a6179Smrg     SEMI = 53,
162f46a6179Smrg     EXCLAM = 54,
163f46a6179Smrg     INVERT = 55,
164f46a6179Smrg     STRING = 60,
165f46a6179Smrg     INTEGER = 61,
166f46a6179Smrg     FLOAT = 62,
167f46a6179Smrg     IDENT = 63,
168f46a6179Smrg     KEYNAME = 64,
169f46a6179Smrg     PARTIAL = 70,
170f46a6179Smrg     DEFAULT = 71,
171f46a6179Smrg     HIDDEN = 72,
172f46a6179Smrg     ALPHANUMERIC_KEYS = 73,
173f46a6179Smrg     MODIFIER_KEYS = 74,
174f46a6179Smrg     KEYPAD_KEYS = 75,
175f46a6179Smrg     FUNCTION_KEYS = 76,
176f46a6179Smrg     ALTERNATE_GROUP = 77
177f46a6179Smrg   };
178f46a6179Smrg#endif
179f46a6179Smrg/* Tokens.  */
180f46a6179Smrg#define END_OF_FILE 0
181f46a6179Smrg#define ERROR_TOK 255
182f46a6179Smrg#define XKB_KEYMAP 1
183f46a6179Smrg#define XKB_KEYCODES 2
184f46a6179Smrg#define XKB_TYPES 3
185f46a6179Smrg#define XKB_SYMBOLS 4
186f46a6179Smrg#define XKB_COMPATMAP 5
187f46a6179Smrg#define XKB_GEOMETRY 6
188f46a6179Smrg#define XKB_SEMANTICS 7
189f46a6179Smrg#define XKB_LAYOUT 8
190f46a6179Smrg#define INCLUDE 10
191f46a6179Smrg#define OVERRIDE 11
192f46a6179Smrg#define AUGMENT 12
193f46a6179Smrg#define REPLACE 13
194f46a6179Smrg#define ALTERNATE 14
195f46a6179Smrg#define VIRTUAL_MODS 20
196f46a6179Smrg#define TYPE 21
197f46a6179Smrg#define INTERPRET 22
198f46a6179Smrg#define ACTION_TOK 23
199f46a6179Smrg#define KEY 24
200f46a6179Smrg#define ALIAS 25
201f46a6179Smrg#define GROUP 26
202f46a6179Smrg#define MODIFIER_MAP 27
203f46a6179Smrg#define INDICATOR 28
204f46a6179Smrg#define SHAPE 29
205f46a6179Smrg#define KEYS 30
206f46a6179Smrg#define ROW 31
207f46a6179Smrg#define SECTION 32
208f46a6179Smrg#define OVERLAY 33
209f46a6179Smrg#define TEXT 34
210f46a6179Smrg#define OUTLINE 35
211f46a6179Smrg#define SOLID 36
212f46a6179Smrg#define LOGO 37
213f46a6179Smrg#define VIRTUAL 38
214f46a6179Smrg#define EQUALS 40
215f46a6179Smrg#define PLUS 41
216f46a6179Smrg#define MINUS 42
217f46a6179Smrg#define DIVIDE 43
218f46a6179Smrg#define TIMES 44
219f46a6179Smrg#define OBRACE 45
220f46a6179Smrg#define CBRACE 46
221f46a6179Smrg#define OPAREN 47
222f46a6179Smrg#define CPAREN 48
223f46a6179Smrg#define OBRACKET 49
224f46a6179Smrg#define CBRACKET 50
225f46a6179Smrg#define DOT 51
226f46a6179Smrg#define COMMA 52
227f46a6179Smrg#define SEMI 53
228f46a6179Smrg#define EXCLAM 54
229f46a6179Smrg#define INVERT 55
230f46a6179Smrg#define STRING 60
231f46a6179Smrg#define INTEGER 61
232f46a6179Smrg#define FLOAT 62
233f46a6179Smrg#define IDENT 63
234f46a6179Smrg#define KEYNAME 64
235f46a6179Smrg#define PARTIAL 70
236f46a6179Smrg#define DEFAULT 71
237f46a6179Smrg#define HIDDEN 72
238f46a6179Smrg#define ALPHANUMERIC_KEYS 73
239f46a6179Smrg#define MODIFIER_KEYS 74
240f46a6179Smrg#define KEYPAD_KEYS 75
241f46a6179Smrg#define FUNCTION_KEYS 76
242f46a6179Smrg#define ALTERNATE_GROUP 77
243f46a6179Smrg
244f46a6179Smrg
245f46a6179Smrg
246f46a6179Smrg
247f46a6179Smrg#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
248f46a6179Smrgtypedef union YYSTYPE
249f46a6179Smrg{
2505fac8b10Smrg
2515fac8b10Smrg/* Line 214 of yacc.c  */
2525fac8b10Smrg#line 110 "xkbparse.y"
2535fac8b10Smrg
254f46a6179Smrg	int		 ival;
255f46a6179Smrg	unsigned	 uval;
256f46a6179Smrg	char		*str;
257f46a6179Smrg	Atom	 	sval;
258f46a6179Smrg	ParseCommon	*any;
259f46a6179Smrg	ExprDef		*expr;
260f46a6179Smrg	VarDef		*var;
261f46a6179Smrg	VModDef		*vmod;
262f46a6179Smrg	InterpDef	*interp;
263f46a6179Smrg	KeyTypeDef	*keyType;
264f46a6179Smrg	SymbolsDef	*syms;
265f46a6179Smrg	ModMapDef	*modMask;
266f46a6179Smrg	GroupCompatDef	*groupCompat;
267f46a6179Smrg	IndicatorMapDef	*ledMap;
268f46a6179Smrg	IndicatorNameDef *ledName;
269f46a6179Smrg	KeycodeDef	*keyName;
270f46a6179Smrg	KeyAliasDef	*keyAlias;
271f46a6179Smrg	ShapeDef	*shape;
272f46a6179Smrg	SectionDef	*section;
273f46a6179Smrg	RowDef		*row;
274f46a6179Smrg	KeyDef		*key;
275f46a6179Smrg	OverlayDef	*overlay;
276f46a6179Smrg	OverlayKeyDef	*olKey;
277f46a6179Smrg	OutlineDef	*outline;
278f46a6179Smrg	DoodadDef	*doodad;
279f46a6179Smrg	XkbFile		*file;
2805fac8b10Smrg
2815fac8b10Smrg
2825fac8b10Smrg
2835fac8b10Smrg/* Line 214 of yacc.c  */
2845fac8b10Smrg#line 285 "xkbparse.c"
2855fac8b10Smrg} YYSTYPE;
2865fac8b10Smrg# define YYSTYPE_IS_TRIVIAL 1
287f46a6179Smrg# define yystype YYSTYPE /* obsolescent; will be withdrawn */
288f46a6179Smrg# define YYSTYPE_IS_DECLARED 1
289f46a6179Smrg#endif
290f46a6179Smrg
291f46a6179Smrg
292f46a6179Smrg/* Copy the second part of user declarations.  */
293f46a6179Smrg
294f46a6179Smrg
2955fac8b10Smrg/* Line 264 of yacc.c  */
2965fac8b10Smrg#line 297 "xkbparse.c"
297f46a6179Smrg
298f46a6179Smrg#ifdef short
299f46a6179Smrg# undef short
300f46a6179Smrg#endif
301f46a6179Smrg
302f46a6179Smrg#ifdef YYTYPE_UINT8
303f46a6179Smrgtypedef YYTYPE_UINT8 yytype_uint8;
304f46a6179Smrg#else
305f46a6179Smrgtypedef unsigned char yytype_uint8;
306f46a6179Smrg#endif
307f46a6179Smrg
308f46a6179Smrg#ifdef YYTYPE_INT8
309f46a6179Smrgtypedef YYTYPE_INT8 yytype_int8;
310f46a6179Smrg#elif (defined __STDC__ || defined __C99__FUNC__ \
311f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
312f46a6179Smrgtypedef signed char yytype_int8;
313f46a6179Smrg#else
314f46a6179Smrgtypedef short int yytype_int8;
315f46a6179Smrg#endif
316f46a6179Smrg
317f46a6179Smrg#ifdef YYTYPE_UINT16
318f46a6179Smrgtypedef YYTYPE_UINT16 yytype_uint16;
319f46a6179Smrg#else
320f46a6179Smrgtypedef unsigned short int yytype_uint16;
321f46a6179Smrg#endif
322f46a6179Smrg
323f46a6179Smrg#ifdef YYTYPE_INT16
324f46a6179Smrgtypedef YYTYPE_INT16 yytype_int16;
325f46a6179Smrg#else
326f46a6179Smrgtypedef short int yytype_int16;
327f46a6179Smrg#endif
328f46a6179Smrg
329f46a6179Smrg#ifndef YYSIZE_T
330f46a6179Smrg# ifdef __SIZE_TYPE__
331f46a6179Smrg#  define YYSIZE_T __SIZE_TYPE__
332f46a6179Smrg# elif defined size_t
333f46a6179Smrg#  define YYSIZE_T size_t
334f46a6179Smrg# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
335f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
336f46a6179Smrg#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
337f46a6179Smrg#  define YYSIZE_T size_t
338f46a6179Smrg# else
339f46a6179Smrg#  define YYSIZE_T unsigned int
340f46a6179Smrg# endif
341f46a6179Smrg#endif
342f46a6179Smrg
343f46a6179Smrg#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
344f46a6179Smrg
345f46a6179Smrg#ifndef YY_
346f46a6179Smrg# if YYENABLE_NLS
347f46a6179Smrg#  if ENABLE_NLS
348f46a6179Smrg#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
349f46a6179Smrg#   define YY_(msgid) dgettext ("bison-runtime", msgid)
350f46a6179Smrg#  endif
351f46a6179Smrg# endif
352f46a6179Smrg# ifndef YY_
353f46a6179Smrg#  define YY_(msgid) msgid
354f46a6179Smrg# endif
355f46a6179Smrg#endif
356f46a6179Smrg
357f46a6179Smrg/* Suppress unused-variable warnings by "using" E.  */
358f46a6179Smrg#if ! defined lint || defined __GNUC__
359f46a6179Smrg# define YYUSE(e) ((void) (e))
360f46a6179Smrg#else
361f46a6179Smrg# define YYUSE(e) /* empty */
362f46a6179Smrg#endif
363f46a6179Smrg
364f46a6179Smrg/* Identity function, used to suppress warnings about constant conditions.  */
365f46a6179Smrg#ifndef lint
366f46a6179Smrg# define YYID(n) (n)
367f46a6179Smrg#else
368f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
369f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
370f46a6179Smrgstatic int
3715fac8b10SmrgYYID (int yyi)
372f46a6179Smrg#else
373f46a6179Smrgstatic int
3745fac8b10SmrgYYID (yyi)
3755fac8b10Smrg    int yyi;
376f46a6179Smrg#endif
377f46a6179Smrg{
3785fac8b10Smrg  return yyi;
379f46a6179Smrg}
380f46a6179Smrg#endif
381f46a6179Smrg
382f46a6179Smrg#if ! defined yyoverflow || YYERROR_VERBOSE
383f46a6179Smrg
384f46a6179Smrg/* The parser invokes alloca or malloc; define the necessary symbols.  */
385f46a6179Smrg
386f46a6179Smrg# ifdef YYSTACK_USE_ALLOCA
387f46a6179Smrg#  if YYSTACK_USE_ALLOCA
388f46a6179Smrg#   ifdef __GNUC__
389f46a6179Smrg#    define YYSTACK_ALLOC __builtin_alloca
390f46a6179Smrg#   elif defined __BUILTIN_VA_ARG_INCR
391f46a6179Smrg#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
392f46a6179Smrg#   elif defined _AIX
393f46a6179Smrg#    define YYSTACK_ALLOC __alloca
394f46a6179Smrg#   elif defined _MSC_VER
395f46a6179Smrg#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
396f46a6179Smrg#    define alloca _alloca
397f46a6179Smrg#   else
398f46a6179Smrg#    define YYSTACK_ALLOC alloca
399f46a6179Smrg#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
400f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
401f46a6179Smrg#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
402f46a6179Smrg#     ifndef _STDLIB_H
403f46a6179Smrg#      define _STDLIB_H 1
404f46a6179Smrg#     endif
405f46a6179Smrg#    endif
406f46a6179Smrg#   endif
407f46a6179Smrg#  endif
408f46a6179Smrg# endif
409f46a6179Smrg
410f46a6179Smrg# ifdef YYSTACK_ALLOC
411f46a6179Smrg   /* Pacify GCC's `empty if-body' warning.  */
412f46a6179Smrg#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
413f46a6179Smrg#  ifndef YYSTACK_ALLOC_MAXIMUM
414f46a6179Smrg    /* The OS might guarantee only one guard page at the bottom of the stack,
415f46a6179Smrg       and a page size can be as small as 4096 bytes.  So we cannot safely
416f46a6179Smrg       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
417f46a6179Smrg       to allow for a few compiler-allocated temporary stack slots.  */
418f46a6179Smrg#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
419f46a6179Smrg#  endif
420f46a6179Smrg# else
421f46a6179Smrg#  define YYSTACK_ALLOC YYMALLOC
422f46a6179Smrg#  define YYSTACK_FREE YYFREE
423f46a6179Smrg#  ifndef YYSTACK_ALLOC_MAXIMUM
424f46a6179Smrg#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
425f46a6179Smrg#  endif
426f46a6179Smrg#  if (defined __cplusplus && ! defined _STDLIB_H \
427f46a6179Smrg       && ! ((defined YYMALLOC || defined malloc) \
428f46a6179Smrg	     && (defined YYFREE || defined free)))
429f46a6179Smrg#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
430f46a6179Smrg#   ifndef _STDLIB_H
431f46a6179Smrg#    define _STDLIB_H 1
432f46a6179Smrg#   endif
433f46a6179Smrg#  endif
434f46a6179Smrg#  ifndef YYMALLOC
435f46a6179Smrg#   define YYMALLOC malloc
436f46a6179Smrg#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
437f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
438f46a6179Smrgvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
439f46a6179Smrg#   endif
440f46a6179Smrg#  endif
441f46a6179Smrg#  ifndef YYFREE
442f46a6179Smrg#   define YYFREE free
443f46a6179Smrg#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
444f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
445f46a6179Smrgvoid free (void *); /* INFRINGES ON USER NAME SPACE */
446f46a6179Smrg#   endif
447f46a6179Smrg#  endif
448f46a6179Smrg# endif
449f46a6179Smrg#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
450f46a6179Smrg
451f46a6179Smrg
452f46a6179Smrg#if (! defined yyoverflow \
453f46a6179Smrg     && (! defined __cplusplus \
454f46a6179Smrg	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
455f46a6179Smrg
456f46a6179Smrg/* A type that is properly aligned for any stack member.  */
457f46a6179Smrgunion yyalloc
458f46a6179Smrg{
4595fac8b10Smrg  yytype_int16 yyss_alloc;
4605fac8b10Smrg  YYSTYPE yyvs_alloc;
4615fac8b10Smrg};
462f46a6179Smrg
463f46a6179Smrg/* The size of the maximum gap between one aligned stack and the next.  */
464f46a6179Smrg# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
465f46a6179Smrg
466f46a6179Smrg/* The size of an array large to enough to hold all stacks, each with
467f46a6179Smrg   N elements.  */
468f46a6179Smrg# define YYSTACK_BYTES(N) \
469f46a6179Smrg     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
470f46a6179Smrg      + YYSTACK_GAP_MAXIMUM)
471f46a6179Smrg
472f46a6179Smrg/* Copy COUNT objects from FROM to TO.  The source and destination do
473f46a6179Smrg   not overlap.  */
474f46a6179Smrg# ifndef YYCOPY
475f46a6179Smrg#  if defined __GNUC__ && 1 < __GNUC__
476f46a6179Smrg#   define YYCOPY(To, From, Count) \
477f46a6179Smrg      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
478f46a6179Smrg#  else
479f46a6179Smrg#   define YYCOPY(To, From, Count)		\
480f46a6179Smrg      do					\
481f46a6179Smrg	{					\
482f46a6179Smrg	  YYSIZE_T yyi;				\
483f46a6179Smrg	  for (yyi = 0; yyi < (Count); yyi++)	\
484f46a6179Smrg	    (To)[yyi] = (From)[yyi];		\
485f46a6179Smrg	}					\
486f46a6179Smrg      while (YYID (0))
487f46a6179Smrg#  endif
488f46a6179Smrg# endif
489f46a6179Smrg
490f46a6179Smrg/* Relocate STACK from its old location to the new one.  The
491f46a6179Smrg   local variables YYSIZE and YYSTACKSIZE give the old and new number of
492f46a6179Smrg   elements in the stack, and YYPTR gives the new location of the
493f46a6179Smrg   stack.  Advance YYPTR to a properly aligned location for the next
494f46a6179Smrg   stack.  */
4955fac8b10Smrg# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
496f46a6179Smrg    do									\
497f46a6179Smrg      {									\
498f46a6179Smrg	YYSIZE_T yynewbytes;						\
4995fac8b10Smrg	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
5005fac8b10Smrg	Stack = &yyptr->Stack_alloc;					\
501f46a6179Smrg	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
502f46a6179Smrg	yyptr += yynewbytes / sizeof (*yyptr);				\
503f46a6179Smrg      }									\
504f46a6179Smrg    while (YYID (0))
505f46a6179Smrg
506f46a6179Smrg#endif
507f46a6179Smrg
508f46a6179Smrg/* YYFINAL -- State number of the termination state.  */
509f46a6179Smrg#define YYFINAL  18
510f46a6179Smrg/* YYLAST -- Last index in YYTABLE.  */
511f46a6179Smrg#define YYLAST   706
512f46a6179Smrg
513f46a6179Smrg/* YYNTOKENS -- Number of terminals.  */
514f46a6179Smrg#define YYNTOKENS  65
515f46a6179Smrg/* YYNNTS -- Number of nonterminals.  */
516f46a6179Smrg#define YYNNTS  73
517f46a6179Smrg/* YYNRULES -- Number of rules.  */
518f46a6179Smrg#define YYNRULES  184
519f46a6179Smrg/* YYNRULES -- Number of states.  */
520f46a6179Smrg#define YYNSTATES  335
521f46a6179Smrg
522f46a6179Smrg/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
523f46a6179Smrg#define YYUNDEFTOK  2
524f46a6179Smrg#define YYMAXUTOK   257
525f46a6179Smrg
526f46a6179Smrg#define YYTRANSLATE(YYX)						\
527f46a6179Smrg  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
528f46a6179Smrg
529f46a6179Smrg/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
530f46a6179Smrgstatic const yytype_uint8 yytranslate[] =
531f46a6179Smrg{
532f46a6179Smrg       0,     4,     5,     6,     7,     8,     9,    10,    11,     2,
533f46a6179Smrg      12,    13,    14,    15,    16,     2,     2,     2,     2,     2,
534f46a6179Smrg      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
535f46a6179Smrg      27,    28,    29,    30,    31,    32,    33,    34,    35,     2,
536f46a6179Smrg      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
537f46a6179Smrg      46,    47,    48,    49,    50,    51,     2,     2,     2,     2,
538f46a6179Smrg      52,    53,    54,    55,    56,     2,     2,     2,     2,     2,
539f46a6179Smrg      57,    58,    59,    60,    61,    62,    63,    64,     2,     2,
540f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
541f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
542f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
543f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
544f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
545f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
546f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
547f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
548f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
549f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
550f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
551f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
552f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
553f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
554f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
555f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
556f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
557f46a6179Smrg       2,     2,     2,     2,     2,     3,     1,     2
558f46a6179Smrg};
559f46a6179Smrg
560f46a6179Smrg#if YYDEBUG
561f46a6179Smrg/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
562f46a6179Smrg   YYRHS.  */
563f46a6179Smrgstatic const yytype_uint16 yyprhs[] =
564f46a6179Smrg{
565f46a6179Smrg       0,     0,     3,     5,     7,     9,    12,    14,    22,    24,
566f46a6179Smrg      26,    28,    31,    33,    41,    46,    48,    50,    52,    54,
567f46a6179Smrg      56,    58,    59,    62,    64,    66,    68,    70,    72,    74,
568f46a6179Smrg      76,    78,    80,    83,    84,    87,    90,    93,    96,    99,
569f46a6179Smrg     102,   105,   108,   111,   114,   117,   120,   123,   126,   129,
570f46a6179Smrg     134,   137,   141,   146,   152,   156,   160,   162,   164,   168,
571f46a6179Smrg     175,   179,   181,   184,   186,   193,   200,   204,   206,   207,
572f46a6179Smrg     211,   215,   217,   220,   222,   226,   230,   236,   243,   250,
573f46a6179Smrg     256,   263,   270,   277,   284,   287,   289,   295,   297,   299,
574f46a6179Smrg     301,   303,   306,   308,   314,   316,   320,   322,   324,   328,
575f46a6179Smrg     335,   339,   341,   345,   349,   351,   355,   361,   365,   369,
576f46a6179Smrg     371,   377,   384,   386,   388,   390,   392,   394,   396,   398,
577f46a6179Smrg     400,   402,   404,   406,   408,   410,   412,   414,   416,   418,
578f46a6179Smrg     420,   421,   423,   425,   427,   429,   431,   433,   434,   438,
579f46a6179Smrg     440,   444,   448,   452,   456,   460,   462,   465,   468,   471,
580f46a6179Smrg     474,   476,   481,   483,   487,   491,   493,   498,   500,   504,
581f46a6179Smrg     509,   516,   518,   520,   522,   524,   526,   527,   531,   533,
582f46a6179Smrg     535,   537,   539,   542,   544,   546,   548,   550,   552,   554,
583f46a6179Smrg     556,   558,   560,   562,   563
584f46a6179Smrg};
585f46a6179Smrg
586f46a6179Smrg/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
587f46a6179Smrgstatic const yytype_int16 yyrhs[] =
588f46a6179Smrg{
589f46a6179Smrg      66,     0,    -1,    67,    -1,    70,    -1,    72,    -1,    67,
590f46a6179Smrg      68,    -1,    68,    -1,    74,    69,   136,    41,    70,    42,
591f46a6179Smrg      49,    -1,     4,    -1,    10,    -1,    11,    -1,    70,    71,
592f46a6179Smrg      -1,    71,    -1,    74,    73,   136,    41,    77,    42,    49,
593f46a6179Smrg      -1,    74,    73,   136,    77,    -1,     5,    -1,     6,    -1,
594f46a6179Smrg       8,    -1,     7,    -1,     9,    -1,    75,    -1,    -1,    75,
595f46a6179Smrg      76,    -1,    76,    -1,    57,    -1,    58,    -1,    59,    -1,
596f46a6179Smrg      60,    -1,    61,    -1,    62,    -1,    63,    -1,    64,    -1,
597f46a6179Smrg      77,    78,    -1,    -1,   116,    79,    -1,   116,    82,    -1,
598f46a6179Smrg     116,    85,    -1,   116,    80,    -1,   116,    81,    -1,   116,
599f46a6179Smrg      88,    -1,   116,    89,    -1,   116,    94,    -1,   116,    93,
600f46a6179Smrg      -1,   116,    95,    -1,   116,    96,    -1,   116,    97,    -1,
601f46a6179Smrg     116,    98,    -1,   116,   112,    -1,   117,    52,    -1,   124,
602f46a6179Smrg      36,   120,    49,    -1,   134,    49,    -1,    50,   134,    49,
603f46a6179Smrg      -1,   133,    36,   120,    49,    -1,    22,   133,    36,   133,
604f46a6179Smrg      49,    -1,    17,    83,    49,    -1,    83,    48,    84,    -1,
605f46a6179Smrg      84,    -1,   134,    -1,   134,    36,   120,    -1,    19,    86,
606f46a6179Smrg      41,    87,    42,    49,    -1,   128,    37,   120,    -1,   128,
607f46a6179Smrg      -1,    87,    79,    -1,    79,    -1,    18,   135,    41,    87,
608f46a6179Smrg      42,    49,    -1,    21,   133,    41,    90,    42,    49,    -1,
609f46a6179Smrg      90,    48,    91,    -1,    91,    -1,    -1,   124,    36,   120,
610f46a6179Smrg      -1,   124,    36,    92,    -1,   134,    -1,    50,   134,    -1,
611f46a6179Smrg      92,    -1,    45,   126,    46,    -1,    45,   122,    46,    -1,
612f46a6179Smrg      23,   132,    36,   120,    49,    -1,    24,   134,    41,   119,
613f46a6179Smrg      42,    49,    -1,    25,   135,    41,    87,    42,    49,    -1,
614f46a6179Smrg      25,   132,    36,   120,    49,    -1,    35,    25,   132,    36,
615f46a6179Smrg     120,    49,    -1,    26,   135,    41,   108,    42,    49,    -1,
616f46a6179Smrg      26,   135,    41,   110,    42,    49,    -1,    29,   135,    41,
617f46a6179Smrg      99,    42,    49,    -1,    99,   100,    -1,   100,    -1,    28,
618f46a6179Smrg      41,   101,    42,    49,    -1,    79,    -1,   112,    -1,    95,
619f46a6179Smrg      -1,   105,    -1,   101,   102,    -1,   102,    -1,    27,    41,
620f46a6179Smrg     103,    42,    49,    -1,    79,    -1,   103,    48,   104,    -1,
621f46a6179Smrg     104,    -1,   133,    -1,    41,   119,    42,    -1,    30,   135,
622f46a6179Smrg      41,   106,    42,    49,    -1,   106,    48,   107,    -1,   107,
623f46a6179Smrg      -1,   133,    36,   133,    -1,   108,    48,   109,    -1,   109,
624f46a6179Smrg      -1,    41,   110,    42,    -1,   134,    36,    41,   110,    42,
625f46a6179Smrg      -1,   134,    36,   120,    -1,   110,    48,   111,    -1,   111,
626f46a6179Smrg      -1,    45,   129,    48,   129,    46,    -1,   113,   135,    41,
627f46a6179Smrg      87,    42,    49,    -1,    31,    -1,    32,    -1,    33,    -1,
628f46a6179Smrg      34,    -1,   134,    -1,   115,    -1,    20,    -1,    19,    -1,
629f46a6179Smrg      18,    -1,    21,    -1,    23,    -1,    24,    -1,    25,    -1,
630f46a6179Smrg      26,    -1,    28,    -1,    29,    -1,    31,    -1,   117,    -1,
631f46a6179Smrg      -1,    12,    -1,    14,    -1,    13,    -1,    15,    -1,    16,
632f46a6179Smrg      -1,   119,    -1,    -1,   119,    48,   120,    -1,   120,    -1,
633f46a6179Smrg     120,    39,   120,    -1,   120,    37,   120,    -1,   120,    38,
634f46a6179Smrg     120,    -1,   120,    40,   120,    -1,   124,    36,   120,    -1,
635f46a6179Smrg     121,    -1,    38,   121,    -1,    37,   121,    -1,    50,   121,
636f46a6179Smrg      -1,    51,   121,    -1,   124,    -1,   114,    43,   118,    44,
637f46a6179Smrg      -1,   125,    -1,    43,   120,    44,    -1,   122,    48,   123,
638f46a6179Smrg      -1,   123,    -1,   114,    43,   118,    44,    -1,   114,    -1,
639f46a6179Smrg     114,    47,   114,    -1,   114,    45,   120,    46,    -1,   114,
640f46a6179Smrg      47,   114,    45,   120,    46,    -1,   135,    -1,   132,    -1,
641f46a6179Smrg     131,    -1,   133,    -1,   127,    -1,    -1,   127,    48,   128,
642f46a6179Smrg      -1,   128,    -1,    55,    -1,    29,    -1,   132,    -1,    38,
643f46a6179Smrg     130,    -1,   130,    -1,    54,    -1,    53,    -1,    54,    -1,
644f46a6179Smrg      53,    -1,    56,    -1,    55,    -1,    58,    -1,    52,    -1,
645f46a6179Smrg     137,    -1,    -1,    52,    -1
646f46a6179Smrg};
647f46a6179Smrg
648f46a6179Smrg/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
649f46a6179Smrgstatic const yytype_uint16 yyrline[] =
650f46a6179Smrg{
65134345a63Smrg       0,   168,   168,   170,   172,   176,   178,   182,   188,   189,
65234345a63Smrg     190,   193,   195,   199,   205,   210,   211,   212,   213,   214,
65334345a63Smrg     217,   218,   221,   222,   225,   226,   227,   228,   229,   230,
65434345a63Smrg     231,   232,   235,   237,   240,   245,   250,   255,   260,   265,
65534345a63Smrg     270,   275,   280,   285,   290,   295,   300,   305,   310,   322,
65634345a63Smrg     324,   326,   330,   341,   351,   355,   357,   361,   363,   367,
65734345a63Smrg     376,   378,   382,   384,   388,   394,   400,   402,   404,   407,
65834345a63Smrg     409,   411,   413,   415,   419,   421,   425,   429,   433,   437,
65934345a63Smrg     439,   443,   445,   453,   457,   459,   463,   465,   467,   469,
66034345a63Smrg     471,   475,   477,   481,   483,   487,   489,   493,   495,   499,
66134345a63Smrg     503,   508,   512,   516,   518,   522,   524,   526,   530,   532,
66234345a63Smrg     536,   546,   550,   551,   552,   553,   556,   557,   560,   562,
66334345a63Smrg     564,   566,   568,   570,   572,   574,   576,   578,   580,   584,
66434345a63Smrg     585,   588,   589,   590,   591,   592,   595,   596,   599,   601,
66534345a63Smrg     605,   607,   609,   611,   613,   615,   619,   621,   623,   625,
66634345a63Smrg     627,   629,   631,   633,   637,   639,   643,   647,   654,   662,
66734345a63Smrg     671,   682,   689,   696,   703,   714,   715,   718,   720,   724,
668f46a6179Smrg     739,   743,   750,   751,   754,   755,   758,   761,   764,   767,
669f46a6179Smrg     768,   771,   774,   775,   778
670f46a6179Smrg};
671f46a6179Smrg#endif
672f46a6179Smrg
673f46a6179Smrg#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
674f46a6179Smrg/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
675f46a6179Smrg   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
676f46a6179Smrgstatic const char *const yytname[] =
677f46a6179Smrg{
678f46a6179Smrg  "END_OF_FILE", "error", "$undefined", "ERROR_TOK", "XKB_KEYMAP",
679f46a6179Smrg  "XKB_KEYCODES", "XKB_TYPES", "XKB_SYMBOLS", "XKB_COMPATMAP",
680f46a6179Smrg  "XKB_GEOMETRY", "XKB_SEMANTICS", "XKB_LAYOUT", "INCLUDE", "OVERRIDE",
681f46a6179Smrg  "AUGMENT", "REPLACE", "ALTERNATE", "VIRTUAL_MODS", "TYPE", "INTERPRET",
682f46a6179Smrg  "ACTION_TOK", "KEY", "ALIAS", "GROUP", "MODIFIER_MAP", "INDICATOR",
683f46a6179Smrg  "SHAPE", "KEYS", "ROW", "SECTION", "OVERLAY", "TEXT", "OUTLINE", "SOLID",
684f46a6179Smrg  "LOGO", "VIRTUAL", "EQUALS", "PLUS", "MINUS", "DIVIDE", "TIMES",
685f46a6179Smrg  "OBRACE", "CBRACE", "OPAREN", "CPAREN", "OBRACKET", "CBRACKET", "DOT",
686f46a6179Smrg  "COMMA", "SEMI", "EXCLAM", "INVERT", "STRING", "INTEGER", "FLOAT",
687f46a6179Smrg  "IDENT", "KEYNAME", "PARTIAL", "DEFAULT", "HIDDEN", "ALPHANUMERIC_KEYS",
688f46a6179Smrg  "MODIFIER_KEYS", "KEYPAD_KEYS", "FUNCTION_KEYS", "ALTERNATE_GROUP",
689f46a6179Smrg  "$accept", "XkbFile", "XkbCompMapList", "XkbCompositeMap",
690f46a6179Smrg  "XkbCompositeType", "XkbMapConfigList", "XkbMapConfig", "XkbConfig",
691f46a6179Smrg  "FileType", "OptFlags", "Flags", "Flag", "DeclList", "Decl", "VarDecl",
692f46a6179Smrg  "KeyNameDecl", "KeyAliasDecl", "VModDecl", "VModDefList", "VModDef",
693f46a6179Smrg  "InterpretDecl", "InterpretMatch", "VarDeclList", "KeyTypeDecl",
694f46a6179Smrg  "SymbolsDecl", "SymbolsBody", "SymbolsVarDecl", "ArrayInit",
695f46a6179Smrg  "GroupCompatDecl", "ModMapDecl", "IndicatorMapDecl", "IndicatorNameDecl",
696f46a6179Smrg  "ShapeDecl", "SectionDecl", "SectionBody", "SectionBodyItem", "RowBody",
697f46a6179Smrg  "RowBodyItem", "Keys", "Key", "OverlayDecl", "OverlayKeyList",
698f46a6179Smrg  "OverlayKey", "OutlineList", "OutlineInList", "CoordList", "Coord",
699f46a6179Smrg  "DoodadDecl", "DoodadType", "FieldSpec", "Element", "OptMergeMode",
700f46a6179Smrg  "MergeMode", "OptExprList", "ExprList", "Expr", "Term", "ActionList",
701f46a6179Smrg  "Action", "Lhs", "Terminal", "OptKeySymList", "KeySymList", "KeySym",
702f46a6179Smrg  "SignedNumber", "Number", "Float", "Integer", "KeyName", "Ident",
703f46a6179Smrg  "String", "OptMapName", "MapName", 0
704f46a6179Smrg};
705f46a6179Smrg#endif
706f46a6179Smrg
707f46a6179Smrg# ifdef YYPRINT
708f46a6179Smrg/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
709f46a6179Smrg   token YYLEX-NUM.  */
710f46a6179Smrgstatic const yytype_uint16 yytoknum[] =
711f46a6179Smrg{
712f46a6179Smrg       0,   256,   257,   255,     1,     2,     3,     4,     5,     6,
713f46a6179Smrg       7,     8,    10,    11,    12,    13,    14,    20,    21,    22,
714f46a6179Smrg      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
715f46a6179Smrg      33,    34,    35,    36,    37,    38,    40,    41,    42,    43,
716f46a6179Smrg      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
717f46a6179Smrg      54,    55,    60,    61,    62,    63,    64,    70,    71,    72,
718f46a6179Smrg      73,    74,    75,    76,    77
719f46a6179Smrg};
720f46a6179Smrg# endif
721f46a6179Smrg
722f46a6179Smrg/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
723f46a6179Smrgstatic const yytype_uint8 yyr1[] =
724f46a6179Smrg{
725f46a6179Smrg       0,    65,    66,    66,    66,    67,    67,    68,    69,    69,
726f46a6179Smrg      69,    70,    70,    71,    72,    73,    73,    73,    73,    73,
727f46a6179Smrg      74,    74,    75,    75,    76,    76,    76,    76,    76,    76,
728f46a6179Smrg      76,    76,    77,    77,    78,    78,    78,    78,    78,    78,
729f46a6179Smrg      78,    78,    78,    78,    78,    78,    78,    78,    78,    79,
730f46a6179Smrg      79,    79,    80,    81,    82,    83,    83,    84,    84,    85,
731f46a6179Smrg      86,    86,    87,    87,    88,    89,    90,    90,    90,    91,
732f46a6179Smrg      91,    91,    91,    91,    92,    92,    93,    94,    95,    96,
733f46a6179Smrg      96,    97,    97,    98,    99,    99,   100,   100,   100,   100,
734f46a6179Smrg     100,   101,   101,   102,   102,   103,   103,   104,   104,   105,
735f46a6179Smrg     106,   106,   107,   108,   108,   109,   109,   109,   110,   110,
736f46a6179Smrg     111,   112,   113,   113,   113,   113,   114,   114,   115,   115,
737f46a6179Smrg     115,   115,   115,   115,   115,   115,   115,   115,   115,   116,
738f46a6179Smrg     116,   117,   117,   117,   117,   117,   118,   118,   119,   119,
739f46a6179Smrg     120,   120,   120,   120,   120,   120,   121,   121,   121,   121,
740f46a6179Smrg     121,   121,   121,   121,   122,   122,   123,   124,   124,   124,
741f46a6179Smrg     124,   125,   125,   125,   125,   126,   126,   127,   127,   128,
742f46a6179Smrg     128,   128,   129,   129,   130,   130,   131,   132,   133,   134,
743f46a6179Smrg     134,   135,   136,   136,   137
744f46a6179Smrg};
745f46a6179Smrg
746f46a6179Smrg/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
747f46a6179Smrgstatic const yytype_uint8 yyr2[] =
748f46a6179Smrg{
749f46a6179Smrg       0,     2,     1,     1,     1,     2,     1,     7,     1,     1,
750f46a6179Smrg       1,     2,     1,     7,     4,     1,     1,     1,     1,     1,
751f46a6179Smrg       1,     0,     2,     1,     1,     1,     1,     1,     1,     1,
752f46a6179Smrg       1,     1,     2,     0,     2,     2,     2,     2,     2,     2,
753f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     4,
754f46a6179Smrg       2,     3,     4,     5,     3,     3,     1,     1,     3,     6,
755f46a6179Smrg       3,     1,     2,     1,     6,     6,     3,     1,     0,     3,
756f46a6179Smrg       3,     1,     2,     1,     3,     3,     5,     6,     6,     5,
757f46a6179Smrg       6,     6,     6,     6,     2,     1,     5,     1,     1,     1,
758f46a6179Smrg       1,     2,     1,     5,     1,     3,     1,     1,     3,     6,
759f46a6179Smrg       3,     1,     3,     3,     1,     3,     5,     3,     3,     1,
760f46a6179Smrg       5,     6,     1,     1,     1,     1,     1,     1,     1,     1,
761f46a6179Smrg       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
762f46a6179Smrg       0,     1,     1,     1,     1,     1,     1,     0,     3,     1,
763f46a6179Smrg       3,     3,     3,     3,     3,     1,     2,     2,     2,     2,
764f46a6179Smrg       1,     4,     1,     3,     3,     1,     4,     1,     3,     4,
765f46a6179Smrg       6,     1,     1,     1,     1,     1,     0,     3,     1,     1,
766f46a6179Smrg       1,     1,     2,     1,     1,     1,     1,     1,     1,     1,
767f46a6179Smrg       1,     1,     1,     0,     1
768f46a6179Smrg};
769f46a6179Smrg
770f46a6179Smrg/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
771f46a6179Smrg   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
772f46a6179Smrg   means the default is an error.  */
773f46a6179Smrgstatic const yytype_uint8 yydefact[] =
774f46a6179Smrg{
775f46a6179Smrg      21,    24,    25,    26,    27,    28,    29,    30,    31,     0,
776f46a6179Smrg      21,     6,    21,    12,     4,     0,    20,    23,     1,     5,
777f46a6179Smrg       0,    11,     0,     8,    15,    16,    18,    17,    19,     9,
778f46a6179Smrg      10,   183,   183,    22,   183,   184,     0,   182,    33,     0,
779f46a6179Smrg      21,    33,   130,    21,   130,   131,   133,   132,   134,   135,
780f46a6179Smrg      32,     0,   129,     0,     0,     0,   120,   119,   118,   121,
781f46a6179Smrg       0,   122,   123,   124,   125,   126,   127,   128,   113,   114,
782f46a6179Smrg     115,     0,     0,   179,   178,   180,    34,    37,    38,    35,
783f46a6179Smrg      36,    39,    40,    42,    41,    43,    44,    45,    46,    47,
784f46a6179Smrg       0,   157,   117,     0,     0,   116,    48,     7,    13,     0,
785f46a6179Smrg      56,    57,   181,     0,   170,   177,   169,     0,    61,   171,
786f46a6179Smrg       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
787f46a6179Smrg       0,     0,     0,     0,     0,    50,     0,    54,     0,     0,
788f46a6179Smrg       0,     0,    68,     0,     0,     0,     0,     0,     0,     0,
789f46a6179Smrg       0,    51,     0,   120,   119,   121,   122,   123,   124,   125,
790f46a6179Smrg     127,   128,     0,     0,     0,     0,     0,   176,   157,     0,
791f46a6179Smrg     145,   150,   152,   163,   162,   164,   116,   161,   158,     0,
792f46a6179Smrg       0,    55,    58,    63,     0,     0,    60,   166,     0,     0,
793f46a6179Smrg      67,    73,     0,   116,     0,     0,     0,   139,     0,     0,
794f46a6179Smrg       0,     0,     0,   104,     0,   109,     0,   124,   126,     0,
795f46a6179Smrg      87,    89,     0,    85,    90,    88,     0,     0,   147,   150,
796f46a6179Smrg     146,     0,   148,   149,   137,     0,     0,     0,     0,   159,
797f46a6179Smrg       0,     0,    49,    52,     0,    62,     0,   170,   169,     0,
798f46a6179Smrg       0,   155,     0,   165,   168,    72,     0,     0,     0,    53,
799f46a6179Smrg      76,     0,     0,    79,     0,     0,     0,   175,   174,     0,
800f46a6179Smrg     173,     0,     0,     0,     0,     0,     0,     0,     0,    84,
801f46a6179Smrg       0,     0,   153,     0,   136,   141,   142,   140,   143,   144,
802f46a6179Smrg       0,    64,    59,   137,    75,     0,    74,     0,    65,    66,
803f46a6179Smrg      70,    69,    77,   138,    78,   105,   172,     0,    81,   103,
804f46a6179Smrg      82,   108,     0,   107,     0,    94,     0,    92,     0,    83,
805f46a6179Smrg      80,   111,   151,   160,     0,   154,   167,     0,     0,     0,
806f46a6179Smrg       0,    91,     0,   101,     0,   156,   110,   106,     0,     0,
807f46a6179Smrg      96,    97,    86,     0,     0,     0,     0,     0,     0,    99,
808f46a6179Smrg     100,   102,    98,    93,    95
809f46a6179Smrg};
810f46a6179Smrg
811f46a6179Smrg/* YYDEFGOTO[NTERM-NUM].  */
812f46a6179Smrgstatic const yytype_int16 yydefgoto[] =
813f46a6179Smrg{
814f46a6179Smrg      -1,     9,    10,    11,    31,    12,    13,    14,    32,    22,
815f46a6179Smrg      16,    17,    42,    50,   173,    77,    78,    79,    99,   100,
816f46a6179Smrg      80,   107,   174,    81,    82,   179,   180,   181,    83,    84,
817f46a6179Smrg     201,    86,    87,    88,   202,   203,   296,   297,   319,   320,
818f46a6179Smrg     204,   312,   313,   192,   193,   194,   195,   205,    90,   158,
819f46a6179Smrg      92,    51,    52,   263,   264,   187,   160,   230,   231,   161,
820f46a6179Smrg     162,   232,   233,   108,   249,   250,   163,   164,   165,   166,
821f46a6179Smrg     167,    36,    37
822f46a6179Smrg};
823f46a6179Smrg
824f46a6179Smrg/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
825f46a6179Smrg   STATE-NUM.  */
826f46a6179Smrg#define YYPACT_NINF -188
827f46a6179Smrgstatic const yytype_int16 yypact[] =
828f46a6179Smrg{
829f46a6179Smrg     628,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,    12,
830f46a6179Smrg       4,  -188,    58,  -188,  -188,   695,   628,  -188,  -188,  -188,
831f46a6179Smrg     121,  -188,   408,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
832f46a6179Smrg    -188,    -9,    -9,  -188,    -9,  -188,    19,  -188,    45,    45,
833f46a6179Smrg     628,  -188,   174,   620,   137,  -188,  -188,  -188,  -188,  -188,
834f46a6179Smrg    -188,   317,    39,   -15,    50,     1,    59,   -18,  -188,    72,
835f46a6179Smrg      72,   106,     1,   -27,    59,  -188,    59,    62,  -188,  -188,
836f46a6179Smrg    -188,   117,     1,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
837f46a6179Smrg    -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
838f46a6179Smrg      59,    51,  -188,   125,   146,   134,  -188,  -188,  -188,   132,
839f46a6179Smrg    -188,   163,  -188,   168,  -188,  -188,  -188,   173,   179,  -188,
840f46a6179Smrg     178,   186,   190,   194,   206,   204,   208,   221,   106,   216,
841f46a6179Smrg     225,   265,   640,   265,   265,  -188,     1,  -188,   265,   599,
842f46a6179Smrg     599,   265,   470,    72,   265,   265,   265,   599,   -26,    21,
843f46a6179Smrg     239,  -188,   599,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
844f46a6179Smrg    -188,  -188,   265,   265,   265,   265,   265,  -188,   159,   232,
845f46a6179Smrg    -188,   240,  -188,  -188,  -188,  -188,  -188,  -188,   223,    98,
846f46a6179Smrg     156,  -188,   260,  -188,   485,   513,   260,   617,     1,    30,
847f46a6179Smrg    -188,  -188,   243,    32,   231,   192,    64,   260,   199,   528,
848f46a6179Smrg     236,    35,   127,  -188,   128,  -188,   251,    59,   270,    59,
849f46a6179Smrg    -188,  -188,   422,  -188,  -188,  -188,   265,   556,  -188,  -188,
850f46a6179Smrg    -188,   342,  -188,  -188,   265,   265,   265,   265,   265,  -188,
851f46a6179Smrg     265,   265,  -188,  -188,   263,  -188,   264,   249,   271,   281,
852f46a6179Smrg      61,  -188,   279,   278,  -188,  -188,   280,   470,   340,  -188,
853f46a6179Smrg    -188,   283,   265,  -188,   284,   129,    16,  -188,  -188,   282,
854f46a6179Smrg    -188,   298,   -34,   308,   236,   381,   576,   287,   321,  -188,
855f46a6179Smrg     215,   325,  -188,   332,   336,   158,   158,  -188,  -188,   260,
856f46a6179Smrg     316,  -188,  -188,   265,  -188,   640,  -188,   -18,  -188,  -188,
857f46a6179Smrg    -188,   260,  -188,   260,  -188,  -188,  -188,    35,  -188,  -188,
858f46a6179Smrg    -188,  -188,   236,   260,   346,  -188,   442,  -188,    72,  -188,
859f46a6179Smrg    -188,  -188,  -188,  -188,   344,  -188,  -188,   343,   143,   -28,
860f46a6179Smrg     348,  -188,   176,  -188,   367,  -188,  -188,  -188,   265,   198,
861f46a6179Smrg    -188,  -188,  -188,   359,    72,    72,   202,   362,   -28,  -188,
862f46a6179Smrg    -188,  -188,  -188,  -188,  -188
863f46a6179Smrg};
864f46a6179Smrg
865f46a6179Smrg/* YYPGOTO[NTERM-NUM].  */
866f46a6179Smrgstatic const yytype_int16 yypgoto[] =
867f46a6179Smrg{
868f46a6179Smrg    -188,  -188,  -188,   410,  -188,   383,    -7,  -188,   399,    38,
869f46a6179Smrg    -188,   409,   385,  -188,   -35,  -188,  -188,  -188,  -188,   301,
870f46a6179Smrg    -188,  -188,   -47,  -188,  -188,  -188,   191,   200,  -188,  -188,
871f46a6179Smrg     378,  -188,  -188,  -188,  -188,   228,  -188,   148,  -188,   130,
872f46a6179Smrg    -188,  -188,   133,  -188,   197,  -187,   205,   423,  -188,    26,
873f46a6179Smrg    -188,  -188,  -188,   203,  -134,    89,   104,  -188,   207,   -29,
874f46a6179Smrg    -188,  -188,  -188,  -175,   188,   233,  -188,   -43,   -51,   -45,
875f46a6179Smrg     -33,   109,  -188
876f46a6179Smrg};
877f46a6179Smrg
878f46a6179Smrg/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
879f46a6179Smrg   positive, shift that token.  If negative, reduce the rule which
880f46a6179Smrg   number is the opposite.  If zero, do what YYDEFACT says.
881f46a6179Smrg   If YYTABLE_NINF, syntax error.  */
882f46a6179Smrg#define YYTABLE_NINF -180
883f46a6179Smrgstatic const yytype_int16 yytable[] =
884f46a6179Smrg{
885f46a6179Smrg      94,   186,   234,   245,    -2,    21,    95,   190,   110,   111,
886f46a6179Smrg     101,   104,    18,   318,   109,   190,    76,   113,   112,   191,
887f46a6179Smrg     114,    73,    93,   103,    75,   102,   105,   119,    74,    73,
888f46a6179Smrg     115,   116,    75,   117,    97,   105,    21,   106,    15,   143,
889f46a6179Smrg     144,    58,   145,    35,   146,   147,   197,   149,    20,   198,
890f46a6179Smrg     150,   199,    67,    68,    69,    70,    73,   120,    -3,    75,
891f46a6179Smrg      40,     1,     2,     3,     4,     5,     6,     7,     8,   247,
892f46a6179Smrg     248,    72,   236,   246,   -71,   140,    73,    91,   237,    75,
893f46a6179Smrg     -71,   101,   184,   175,    95,    95,    41,   183,   247,   248,
894f46a6179Smrg     189,    96,    95,   196,    95,   207,   121,    95,   122,    98,
895f46a6179Smrg      93,    93,   306,   182,   200,   308,   241,   274,    93,   275,
896f46a6179Smrg      93,   102,   242,    93,  -112,     1,     2,     3,     4,     5,
897f46a6179Smrg       6,     7,     8,   209,   209,    23,   209,   209,    74,    95,
898f46a6179Smrg      95,    29,    30,   235,   109,   215,   216,   217,   218,   225,
899f46a6179Smrg     225,    38,   118,    39,    95,    93,    93,   222,   168,    45,
900f46a6179Smrg      46,    47,    48,    49,   225,    91,    91,    95,    91,   105,
901f46a6179Smrg      93,   123,    95,    91,   115,    91,   257,   200,    91,   251,
902f46a6179Smrg     253,   285,   225,    93,   -14,   252,   254,   254,    93,    54,
903f46a6179Smrg     126,   127,   124,   125,   326,   317,    45,    46,    47,    48,
904f46a6179Smrg      49,   254,   183,   215,   216,   217,   218,   217,   218,   128,
905f46a6179Smrg      91,    91,   214,   229,   121,   223,   122,   196,   182,   129,
906f46a6179Smrg     159,    95,   169,   170,   130,    91,   131,   172,   323,   132,
907f46a6179Smrg     176,   295,   133,   185,   324,   188,   134,    93,    91,   215,
908f46a6179Smrg     216,   217,   218,    91,   109,   135,   215,   216,   217,   218,
909f46a6179Smrg     327,   240,   136,   211,   332,   137,   328,   314,   243,   138,
910f46a6179Smrg     242,    95,   215,   216,   217,   218,   208,   210,   321,   212,
911f46a6179Smrg     213,   295,   139,    91,   300,   141,   142,    93,   221,   215,
912f46a6179Smrg     216,   217,   218,   314,   331,   206,   220,   321,   219,   238,
913f46a6179Smrg     239,   191,    91,   143,   144,    58,   145,   255,   146,   147,
914f46a6179Smrg     148,   149,  -127,    65,   150,   260,   151,   215,   216,   217,
915f46a6179Smrg     218,   229,   152,   153,   265,   266,   267,   268,   154,   269,
916f46a6179Smrg     270,   256,   271,   272,  -179,   155,   156,   102,   105,   157,
917f46a6179Smrg      73,    74,    91,    75,   273,   276,   277,   281,   298,   278,
918f46a6179Smrg     287,   283,   282,   284,    55,    56,    57,    58,    59,    60,
919f46a6179Smrg      61,    62,    63,    64,   293,    65,    66,   288,    67,    68,
920f46a6179Smrg      69,    70,    71,   215,   216,   217,   218,   290,   143,   144,
921f46a6179Smrg      58,   145,   303,   146,   147,   148,   149,    72,    65,   150,
922f46a6179Smrg     299,   151,    73,    74,   301,    75,   302,   152,   153,   215,
923f46a6179Smrg     216,   217,   218,   154,   242,   177,   262,   309,   315,   316,
924f46a6179Smrg     155,   156,   102,   105,   157,    73,    74,   322,    75,   143,
925f46a6179Smrg     144,    58,   145,   325,   146,   147,   148,   149,   329,    65,
926f46a6179Smrg     150,   333,   151,    24,    25,    26,    27,    28,   152,   153,
927f46a6179Smrg      19,    34,   292,    43,   154,    33,    44,   171,   279,    85,
928f46a6179Smrg     259,   155,   156,   102,   105,   157,    73,    74,   280,    75,
929f46a6179Smrg     143,   144,    58,   145,   311,   146,   147,   197,   149,   289,
930f46a6179Smrg     198,   150,   199,    67,    68,    69,    70,   330,   334,   291,
931f46a6179Smrg     143,   144,    58,   145,   258,   146,   147,   148,   149,   294,
932f46a6179Smrg      65,   150,    72,   151,    89,   307,   304,    73,     0,   286,
933f46a6179Smrg      75,     0,   305,     0,   310,     0,     0,     0,   143,   144,
934f46a6179Smrg      58,   145,    72,   146,   147,   148,   149,    73,    65,   150,
935f46a6179Smrg      75,   151,     0,   143,   144,    58,   145,     0,   146,   147,
936f46a6179Smrg     148,   149,     0,    65,   150,   177,   151,     0,     0,     0,
937f46a6179Smrg     178,     0,     0,     0,     0,    73,     0,   224,    75,     0,
938f46a6179Smrg       0,   143,   144,    58,   145,    72,   146,   147,   148,   149,
939f46a6179Smrg      73,    65,   150,    75,   151,     0,   143,   144,    58,   145,
940f46a6179Smrg       0,   146,   147,   148,   149,   226,    65,   150,     0,   151,
941f46a6179Smrg       0,     0,     0,    72,     0,     0,     0,     0,    73,     0,
942f46a6179Smrg     244,    75,     0,     0,   143,   144,    58,   145,    72,   146,
943f46a6179Smrg     147,   148,   149,    73,    65,   150,    75,   151,     0,     0,
944f46a6179Smrg       0,     0,     0,     0,   143,   144,    58,   145,   261,   146,
945f46a6179Smrg     147,   148,   149,   294,    65,   150,    72,   151,     0,     0,
946f46a6179Smrg       0,    73,     0,     0,    75,     0,     0,   143,   144,    58,
947f46a6179Smrg     145,     0,   146,   147,   148,   149,    72,    65,   150,     0,
948f46a6179Smrg     151,    73,     0,     0,    75,   143,   144,    58,   145,     0,
949f46a6179Smrg     146,   147,   148,   149,     0,    65,   227,     0,   151,    72,
950f46a6179Smrg       0,     0,     0,     0,    73,     0,     0,    75,   143,   144,
951f46a6179Smrg      58,   145,    53,   146,   147,   148,   149,     0,    65,   150,
952f46a6179Smrg     105,   151,   228,     0,     0,    75,     0,     1,     2,     3,
953f46a6179Smrg       4,     5,     6,     7,     8,     1,     2,     3,     4,     5,
954f46a6179Smrg       6,     7,     8,     0,     0,    73,     0,     0,    75,    23,
955f46a6179Smrg      24,    25,    26,    27,    28,    29,    30
956f46a6179Smrg};
957f46a6179Smrg
958f46a6179Smrgstatic const yytype_int16 yycheck[] =
959f46a6179Smrg{
960f46a6179Smrg      51,   135,   177,   190,     0,    12,    51,    41,    59,    60,
961f46a6179Smrg      55,    29,     0,    41,    57,    41,    51,    62,    61,    45,
962f46a6179Smrg      63,    55,    51,    56,    58,    52,    53,    72,    56,    55,
963f46a6179Smrg      63,    64,    58,    66,    49,    53,    43,    55,     0,    18,
964f46a6179Smrg      19,    20,    21,    52,    23,    24,    25,    26,    10,    28,
965f46a6179Smrg      29,    30,    31,    32,    33,    34,    55,    90,     0,    58,
966f46a6179Smrg      41,    57,    58,    59,    60,    61,    62,    63,    64,    53,
967f46a6179Smrg      54,    50,    42,    38,    42,   118,    55,    51,    48,    58,
968f46a6179Smrg      48,   126,   133,   130,   129,   130,    41,   132,    53,    54,
969f46a6179Smrg     137,    52,   137,   138,   139,   142,    45,   142,    47,    49,
970f46a6179Smrg     129,   130,   277,   132,   139,   292,    42,    46,   137,    48,
971f46a6179Smrg     139,    52,    48,   142,    52,    57,    58,    59,    60,    61,
972f46a6179Smrg      62,    63,    64,   152,   153,     4,   155,   156,    56,   174,
973f46a6179Smrg     175,    10,    11,   178,   177,    37,    38,    39,    40,   174,
974f46a6179Smrg     175,    32,    25,    34,   189,   174,   175,    49,   122,    12,
975f46a6179Smrg      13,    14,    15,    16,   189,   129,   130,   202,   132,    53,
976f46a6179Smrg     189,    36,   207,   137,   197,   139,   199,   202,   142,    42,
977f46a6179Smrg      42,    42,   207,   202,     0,    48,    48,    48,   207,    42,
978f46a6179Smrg      48,    49,    36,    49,   318,    42,    12,    13,    14,    15,
979f46a6179Smrg      16,    48,   237,    37,    38,    39,    40,    39,    40,    36,
980f46a6179Smrg     174,   175,    43,   177,    45,    49,    47,   252,   237,    41,
981f46a6179Smrg     121,   256,   123,   124,    41,   189,    37,   128,    42,    41,
982f46a6179Smrg     131,   256,    36,   134,    48,   136,    36,   256,   202,    37,
983f46a6179Smrg      38,    39,    40,   207,   277,    41,    37,    38,    39,    40,
984f46a6179Smrg      42,    49,    36,   154,    42,    41,    48,   298,    49,    41,
985f46a6179Smrg      48,   296,    37,    38,    39,    40,   152,   153,   309,   155,
986f46a6179Smrg     156,   296,    41,   237,    49,    49,    41,   296,    45,    37,
987f46a6179Smrg      38,    39,    40,   324,   325,    36,    36,   328,    46,    36,
988f46a6179Smrg      49,    45,   256,    18,    19,    20,    21,    36,    23,    24,
989f46a6179Smrg      25,    26,    43,    28,    29,   206,    31,    37,    38,    39,
990f46a6179Smrg      40,   275,    37,    38,   215,   216,   217,   218,    43,   220,
991f46a6179Smrg     221,    41,    49,    49,    43,    50,    51,    52,    53,    54,
992f46a6179Smrg      55,    56,   296,    58,    43,    46,    48,   238,    41,    49,
993f46a6179Smrg      48,   242,    49,    49,    17,    18,    19,    20,    21,    22,
994f46a6179Smrg      23,    24,    25,    26,   255,    28,    29,    49,    31,    32,
995f46a6179Smrg      33,    34,    35,    37,    38,    39,    40,    49,    18,    19,
996f46a6179Smrg      20,    21,    46,    23,    24,    25,    26,    50,    28,    29,
997f46a6179Smrg      49,    31,    55,    56,    49,    58,    44,    37,    38,    37,
998f46a6179Smrg      38,    39,    40,    43,    48,    45,    44,    41,    44,    46,
999f46a6179Smrg      50,    51,    52,    53,    54,    55,    56,    49,    58,    18,
1000f46a6179Smrg      19,    20,    21,    36,    23,    24,    25,    26,    49,    28,
1001f46a6179Smrg      29,    49,    31,     5,     6,     7,     8,     9,    37,    38,
1002f46a6179Smrg      10,    22,    41,    40,    43,    16,    41,   126,   237,    51,
1003f46a6179Smrg     202,    50,    51,    52,    53,    54,    55,    56,   238,    58,
1004f46a6179Smrg      18,    19,    20,    21,   296,    23,    24,    25,    26,   252,
1005f46a6179Smrg      28,    29,    30,    31,    32,    33,    34,   324,   328,   254,
1006f46a6179Smrg      18,    19,    20,    21,    42,    23,    24,    25,    26,    27,
1007f46a6179Smrg      28,    29,    50,    31,    51,   287,   273,    55,    -1,   246,
1008f46a6179Smrg      58,    -1,   275,    -1,    42,    -1,    -1,    -1,    18,    19,
1009f46a6179Smrg      20,    21,    50,    23,    24,    25,    26,    55,    28,    29,
1010f46a6179Smrg      58,    31,    -1,    18,    19,    20,    21,    -1,    23,    24,
1011f46a6179Smrg      25,    26,    -1,    28,    29,    45,    31,    -1,    -1,    -1,
1012f46a6179Smrg      50,    -1,    -1,    -1,    -1,    55,    -1,    42,    58,    -1,
1013f46a6179Smrg      -1,    18,    19,    20,    21,    50,    23,    24,    25,    26,
1014f46a6179Smrg      55,    28,    29,    58,    31,    -1,    18,    19,    20,    21,
1015f46a6179Smrg      -1,    23,    24,    25,    26,    42,    28,    29,    -1,    31,
1016f46a6179Smrg      -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    55,    -1,
1017f46a6179Smrg      42,    58,    -1,    -1,    18,    19,    20,    21,    50,    23,
1018f46a6179Smrg      24,    25,    26,    55,    28,    29,    58,    31,    -1,    -1,
1019f46a6179Smrg      -1,    -1,    -1,    -1,    18,    19,    20,    21,    42,    23,
1020f46a6179Smrg      24,    25,    26,    27,    28,    29,    50,    31,    -1,    -1,
1021f46a6179Smrg      -1,    55,    -1,    -1,    58,    -1,    -1,    18,    19,    20,
1022f46a6179Smrg      21,    -1,    23,    24,    25,    26,    50,    28,    29,    -1,
1023f46a6179Smrg      31,    55,    -1,    -1,    58,    18,    19,    20,    21,    -1,
1024f46a6179Smrg      23,    24,    25,    26,    -1,    28,    29,    -1,    31,    50,
1025f46a6179Smrg      -1,    -1,    -1,    -1,    55,    -1,    -1,    58,    18,    19,
1026f46a6179Smrg      20,    21,    42,    23,    24,    25,    26,    -1,    28,    29,
1027f46a6179Smrg      53,    31,    55,    -1,    -1,    58,    -1,    57,    58,    59,
1028f46a6179Smrg      60,    61,    62,    63,    64,    57,    58,    59,    60,    61,
1029f46a6179Smrg      62,    63,    64,    -1,    -1,    55,    -1,    -1,    58,     4,
1030f46a6179Smrg       5,     6,     7,     8,     9,    10,    11
1031f46a6179Smrg};
1032f46a6179Smrg
1033f46a6179Smrg/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1034f46a6179Smrg   symbol of state STATE-NUM.  */
1035f46a6179Smrgstatic const yytype_uint8 yystos[] =
1036f46a6179Smrg{
1037f46a6179Smrg       0,    57,    58,    59,    60,    61,    62,    63,    64,    66,
1038f46a6179Smrg      67,    68,    70,    71,    72,    74,    75,    76,     0,    68,
1039f46a6179Smrg      74,    71,    74,     4,     5,     6,     7,     8,     9,    10,
1040f46a6179Smrg      11,    69,    73,    76,    73,    52,   136,   137,   136,   136,
1041f46a6179Smrg      41,    41,    77,    70,    77,    12,    13,    14,    15,    16,
1042f46a6179Smrg      78,   116,   117,    42,    42,    17,    18,    19,    20,    21,
1043f46a6179Smrg      22,    23,    24,    25,    26,    28,    29,    31,    32,    33,
1044f46a6179Smrg      34,    35,    50,    55,    56,    58,    79,    80,    81,    82,
1045f46a6179Smrg      85,    88,    89,    93,    94,    95,    96,    97,    98,   112,
1046f46a6179Smrg     113,   114,   115,   124,   133,   134,    52,    49,    49,    83,
1047f46a6179Smrg      84,   134,    52,   135,    29,    53,    55,    86,   128,   132,
1048f46a6179Smrg     133,   133,   132,   134,   132,   135,   135,   135,    25,   134,
1049f46a6179Smrg     135,    45,    47,    36,    36,    49,    48,    49,    36,    41,
1050f46a6179Smrg      41,    37,    41,    36,    36,    41,    36,    41,    41,    41,
1051f46a6179Smrg     132,    49,    41,    18,    19,    21,    23,    24,    25,    26,
1052f46a6179Smrg      29,    31,    37,    38,    43,    50,    51,    54,   114,   120,
1053f46a6179Smrg     121,   124,   125,   131,   132,   133,   134,   135,   114,   120,
1054f46a6179Smrg     120,    84,   120,    79,    87,    87,   120,    45,    50,    90,
1055f46a6179Smrg      91,    92,   124,   134,   133,   120,   119,   120,   120,    87,
1056f46a6179Smrg      41,    45,   108,   109,   110,   111,   134,    25,    28,    30,
1057f46a6179Smrg      79,    95,    99,   100,   105,   112,    36,    87,   121,   124,
1058f46a6179Smrg     121,   120,   121,   121,    43,    37,    38,    39,    40,    46,
1059f46a6179Smrg      36,    45,    49,    49,    42,    79,    42,    29,    55,   114,
1060f46a6179Smrg     122,   123,   126,   127,   128,   134,    42,    48,    36,    49,
1061f46a6179Smrg      49,    42,    48,    49,    42,   110,    38,    53,    54,   129,
1062f46a6179Smrg     130,    42,    48,    42,    48,    36,    41,   135,    42,   100,
1063f46a6179Smrg     120,    42,    44,   118,   119,   120,   120,   120,   120,   120,
1064f46a6179Smrg     120,    49,    49,    43,    46,    48,    46,    48,    49,    91,
1065f46a6179Smrg      92,   120,    49,   120,    49,    42,   130,    48,    49,   109,
1066f46a6179Smrg      49,   111,    41,   120,    27,    79,   101,   102,    41,    49,
1067f46a6179Smrg      49,    49,    44,    46,   118,   123,   128,   129,   110,    41,
1068f46a6179Smrg      42,   102,   106,   107,   133,    44,    46,    42,    41,   103,
1069f46a6179Smrg     104,   133,    49,    42,    48,    36,   119,    42,    48,    49,
1070f46a6179Smrg     107,   133,    42,    49,   104
1071f46a6179Smrg};
1072f46a6179Smrg
1073f46a6179Smrg#define yyerrok		(yyerrstatus = 0)
1074f46a6179Smrg#define yyclearin	(yychar = YYEMPTY)
1075f46a6179Smrg#define YYEMPTY		(-2)
1076f46a6179Smrg#define YYEOF		0
1077f46a6179Smrg
1078f46a6179Smrg#define YYACCEPT	goto yyacceptlab
1079f46a6179Smrg#define YYABORT		goto yyabortlab
1080f46a6179Smrg#define YYERROR		goto yyerrorlab
1081f46a6179Smrg
1082f46a6179Smrg
1083f46a6179Smrg/* Like YYERROR except do call yyerror.  This remains here temporarily
1084f46a6179Smrg   to ease the transition to the new meaning of YYERROR, for GCC.
1085f46a6179Smrg   Once GCC version 2 has supplanted version 1, this can go.  */
1086f46a6179Smrg
1087f46a6179Smrg#define YYFAIL		goto yyerrlab
1088f46a6179Smrg
1089f46a6179Smrg#define YYRECOVERING()  (!!yyerrstatus)
1090f46a6179Smrg
1091f46a6179Smrg#define YYBACKUP(Token, Value)					\
1092f46a6179Smrgdo								\
1093f46a6179Smrg  if (yychar == YYEMPTY && yylen == 1)				\
1094f46a6179Smrg    {								\
1095f46a6179Smrg      yychar = (Token);						\
1096f46a6179Smrg      yylval = (Value);						\
1097f46a6179Smrg      yytoken = YYTRANSLATE (yychar);				\
1098f46a6179Smrg      YYPOPSTACK (1);						\
1099f46a6179Smrg      goto yybackup;						\
1100f46a6179Smrg    }								\
1101f46a6179Smrg  else								\
1102f46a6179Smrg    {								\
1103f46a6179Smrg      yyerror (YY_("syntax error: cannot back up")); \
1104f46a6179Smrg      YYERROR;							\
1105f46a6179Smrg    }								\
1106f46a6179Smrgwhile (YYID (0))
1107f46a6179Smrg
1108f46a6179Smrg
1109f46a6179Smrg#define YYTERROR	1
1110f46a6179Smrg#define YYERRCODE	256
1111f46a6179Smrg
1112f46a6179Smrg
1113f46a6179Smrg/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1114f46a6179Smrg   If N is 0, then set CURRENT to the empty location which ends
1115f46a6179Smrg   the previous symbol: RHS[0] (always defined).  */
1116f46a6179Smrg
1117f46a6179Smrg#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1118f46a6179Smrg#ifndef YYLLOC_DEFAULT
1119f46a6179Smrg# define YYLLOC_DEFAULT(Current, Rhs, N)				\
1120f46a6179Smrg    do									\
1121f46a6179Smrg      if (YYID (N))                                                    \
1122f46a6179Smrg	{								\
1123f46a6179Smrg	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
1124f46a6179Smrg	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
1125f46a6179Smrg	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
1126f46a6179Smrg	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
1127f46a6179Smrg	}								\
1128f46a6179Smrg      else								\
1129f46a6179Smrg	{								\
1130f46a6179Smrg	  (Current).first_line   = (Current).last_line   =		\
1131f46a6179Smrg	    YYRHSLOC (Rhs, 0).last_line;				\
1132f46a6179Smrg	  (Current).first_column = (Current).last_column =		\
1133f46a6179Smrg	    YYRHSLOC (Rhs, 0).last_column;				\
1134f46a6179Smrg	}								\
1135f46a6179Smrg    while (YYID (0))
1136f46a6179Smrg#endif
1137f46a6179Smrg
1138f46a6179Smrg
1139f46a6179Smrg/* YY_LOCATION_PRINT -- Print the location on the stream.
1140f46a6179Smrg   This macro was not mandated originally: define only if we know
1141f46a6179Smrg   we won't break user code: when these are the locations we know.  */
1142f46a6179Smrg
1143f46a6179Smrg#ifndef YY_LOCATION_PRINT
1144f46a6179Smrg# if YYLTYPE_IS_TRIVIAL
1145f46a6179Smrg#  define YY_LOCATION_PRINT(File, Loc)			\
1146f46a6179Smrg     fprintf (File, "%d.%d-%d.%d",			\
1147f46a6179Smrg	      (Loc).first_line, (Loc).first_column,	\
1148f46a6179Smrg	      (Loc).last_line,  (Loc).last_column)
1149f46a6179Smrg# else
1150f46a6179Smrg#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1151f46a6179Smrg# endif
1152f46a6179Smrg#endif
1153f46a6179Smrg
1154f46a6179Smrg
1155f46a6179Smrg/* YYLEX -- calling `yylex' with the right arguments.  */
1156f46a6179Smrg
1157f46a6179Smrg#ifdef YYLEX_PARAM
1158f46a6179Smrg# define YYLEX yylex (YYLEX_PARAM)
1159f46a6179Smrg#else
1160f46a6179Smrg# define YYLEX yylex ()
1161f46a6179Smrg#endif
1162f46a6179Smrg
1163f46a6179Smrg/* Enable debugging if requested.  */
1164f46a6179Smrg#if YYDEBUG
1165f46a6179Smrg
1166f46a6179Smrg# ifndef YYFPRINTF
1167f46a6179Smrg#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1168f46a6179Smrg#  define YYFPRINTF fprintf
1169f46a6179Smrg# endif
1170f46a6179Smrg
1171f46a6179Smrg# define YYDPRINTF(Args)			\
1172f46a6179Smrgdo {						\
1173f46a6179Smrg  if (yydebug)					\
1174f46a6179Smrg    YYFPRINTF Args;				\
1175f46a6179Smrg} while (YYID (0))
1176f46a6179Smrg
1177f46a6179Smrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
1178f46a6179Smrgdo {									  \
1179f46a6179Smrg  if (yydebug)								  \
1180f46a6179Smrg    {									  \
1181f46a6179Smrg      YYFPRINTF (stderr, "%s ", Title);					  \
1182f46a6179Smrg      yy_symbol_print (stderr,						  \
1183f46a6179Smrg		  Type, Value); \
1184f46a6179Smrg      YYFPRINTF (stderr, "\n");						  \
1185f46a6179Smrg    }									  \
1186f46a6179Smrg} while (YYID (0))
1187f46a6179Smrg
1188f46a6179Smrg
1189f46a6179Smrg/*--------------------------------.
1190f46a6179Smrg| Print this symbol on YYOUTPUT.  |
1191f46a6179Smrg`--------------------------------*/
1192f46a6179Smrg
1193f46a6179Smrg/*ARGSUSED*/
1194f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1195f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1196f46a6179Smrgstatic void
1197f46a6179Smrgyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1198f46a6179Smrg#else
1199f46a6179Smrgstatic void
1200f46a6179Smrgyy_symbol_value_print (yyoutput, yytype, yyvaluep)
1201f46a6179Smrg    FILE *yyoutput;
1202f46a6179Smrg    int yytype;
1203f46a6179Smrg    YYSTYPE const * const yyvaluep;
1204f46a6179Smrg#endif
1205f46a6179Smrg{
1206f46a6179Smrg  if (!yyvaluep)
1207f46a6179Smrg    return;
1208f46a6179Smrg# ifdef YYPRINT
1209f46a6179Smrg  if (yytype < YYNTOKENS)
1210f46a6179Smrg    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1211f46a6179Smrg# else
1212f46a6179Smrg  YYUSE (yyoutput);
1213f46a6179Smrg# endif
1214f46a6179Smrg  switch (yytype)
1215f46a6179Smrg    {
1216f46a6179Smrg      default:
1217f46a6179Smrg	break;
1218f46a6179Smrg    }
1219f46a6179Smrg}
1220f46a6179Smrg
1221f46a6179Smrg
1222f46a6179Smrg/*--------------------------------.
1223f46a6179Smrg| Print this symbol on YYOUTPUT.  |
1224f46a6179Smrg`--------------------------------*/
1225f46a6179Smrg
1226f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1227f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1228f46a6179Smrgstatic void
1229f46a6179Smrgyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1230f46a6179Smrg#else
1231f46a6179Smrgstatic void
1232f46a6179Smrgyy_symbol_print (yyoutput, yytype, yyvaluep)
1233f46a6179Smrg    FILE *yyoutput;
1234f46a6179Smrg    int yytype;
1235f46a6179Smrg    YYSTYPE const * const yyvaluep;
1236f46a6179Smrg#endif
1237f46a6179Smrg{
1238f46a6179Smrg  if (yytype < YYNTOKENS)
1239f46a6179Smrg    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1240f46a6179Smrg  else
1241f46a6179Smrg    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1242f46a6179Smrg
1243f46a6179Smrg  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1244f46a6179Smrg  YYFPRINTF (yyoutput, ")");
1245f46a6179Smrg}
1246f46a6179Smrg
1247f46a6179Smrg/*------------------------------------------------------------------.
1248f46a6179Smrg| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1249f46a6179Smrg| TOP (included).                                                   |
1250f46a6179Smrg`------------------------------------------------------------------*/
1251f46a6179Smrg
1252f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1253f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1254f46a6179Smrgstatic void
12555fac8b10Smrgyy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1256f46a6179Smrg#else
1257f46a6179Smrgstatic void
12585fac8b10Smrgyy_stack_print (yybottom, yytop)
12595fac8b10Smrg    yytype_int16 *yybottom;
12605fac8b10Smrg    yytype_int16 *yytop;
1261f46a6179Smrg#endif
1262f46a6179Smrg{
1263f46a6179Smrg  YYFPRINTF (stderr, "Stack now");
12645fac8b10Smrg  for (; yybottom <= yytop; yybottom++)
12655fac8b10Smrg    {
12665fac8b10Smrg      int yybot = *yybottom;
12675fac8b10Smrg      YYFPRINTF (stderr, " %d", yybot);
12685fac8b10Smrg    }
1269f46a6179Smrg  YYFPRINTF (stderr, "\n");
1270f46a6179Smrg}
1271f46a6179Smrg
1272f46a6179Smrg# define YY_STACK_PRINT(Bottom, Top)				\
1273f46a6179Smrgdo {								\
1274f46a6179Smrg  if (yydebug)							\
1275f46a6179Smrg    yy_stack_print ((Bottom), (Top));				\
1276f46a6179Smrg} while (YYID (0))
1277f46a6179Smrg
1278f46a6179Smrg
1279f46a6179Smrg/*------------------------------------------------.
1280f46a6179Smrg| Report that the YYRULE is going to be reduced.  |
1281f46a6179Smrg`------------------------------------------------*/
1282f46a6179Smrg
1283f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1284f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1285f46a6179Smrgstatic void
1286f46a6179Smrgyy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1287f46a6179Smrg#else
1288f46a6179Smrgstatic void
1289f46a6179Smrgyy_reduce_print (yyvsp, yyrule)
1290f46a6179Smrg    YYSTYPE *yyvsp;
1291f46a6179Smrg    int yyrule;
1292f46a6179Smrg#endif
1293f46a6179Smrg{
1294f46a6179Smrg  int yynrhs = yyr2[yyrule];
1295f46a6179Smrg  int yyi;
1296f46a6179Smrg  unsigned long int yylno = yyrline[yyrule];
1297f46a6179Smrg  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1298f46a6179Smrg	     yyrule - 1, yylno);
1299f46a6179Smrg  /* The symbols being reduced.  */
1300f46a6179Smrg  for (yyi = 0; yyi < yynrhs; yyi++)
1301f46a6179Smrg    {
13025fac8b10Smrg      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1303f46a6179Smrg      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1304f46a6179Smrg		       &(yyvsp[(yyi + 1) - (yynrhs)])
1305f46a6179Smrg		       		       );
13065fac8b10Smrg      YYFPRINTF (stderr, "\n");
1307f46a6179Smrg    }
1308f46a6179Smrg}
1309f46a6179Smrg
1310f46a6179Smrg# define YY_REDUCE_PRINT(Rule)		\
1311f46a6179Smrgdo {					\
1312f46a6179Smrg  if (yydebug)				\
1313f46a6179Smrg    yy_reduce_print (yyvsp, Rule); \
1314f46a6179Smrg} while (YYID (0))
1315f46a6179Smrg
1316f46a6179Smrg/* Nonzero means print parse trace.  It is left uninitialized so that
1317f46a6179Smrg   multiple parsers can coexist.  */
1318f46a6179Smrgint yydebug;
1319f46a6179Smrg#else /* !YYDEBUG */
1320f46a6179Smrg# define YYDPRINTF(Args)
1321f46a6179Smrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1322f46a6179Smrg# define YY_STACK_PRINT(Bottom, Top)
1323f46a6179Smrg# define YY_REDUCE_PRINT(Rule)
1324f46a6179Smrg#endif /* !YYDEBUG */
1325f46a6179Smrg
1326f46a6179Smrg
1327f46a6179Smrg/* YYINITDEPTH -- initial size of the parser's stacks.  */
1328f46a6179Smrg#ifndef	YYINITDEPTH
1329f46a6179Smrg# define YYINITDEPTH 200
1330f46a6179Smrg#endif
1331f46a6179Smrg
1332f46a6179Smrg/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1333f46a6179Smrg   if the built-in stack extension method is used).
1334f46a6179Smrg
1335f46a6179Smrg   Do not make this value too large; the results are undefined if
1336f46a6179Smrg   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1337f46a6179Smrg   evaluated with infinite-precision integer arithmetic.  */
1338f46a6179Smrg
1339f46a6179Smrg#ifndef YYMAXDEPTH
1340f46a6179Smrg# define YYMAXDEPTH 10000
1341f46a6179Smrg#endif
1342f46a6179Smrg
1343f46a6179Smrg
1344f46a6179Smrg
1345f46a6179Smrg#if YYERROR_VERBOSE
1346f46a6179Smrg
1347f46a6179Smrg# ifndef yystrlen
1348f46a6179Smrg#  if defined __GLIBC__ && defined _STRING_H
1349f46a6179Smrg#   define yystrlen strlen
1350f46a6179Smrg#  else
1351f46a6179Smrg/* Return the length of YYSTR.  */
1352f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1353f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1354f46a6179Smrgstatic YYSIZE_T
1355f46a6179Smrgyystrlen (const char *yystr)
1356f46a6179Smrg#else
1357f46a6179Smrgstatic YYSIZE_T
1358f46a6179Smrgyystrlen (yystr)
1359f46a6179Smrg    const char *yystr;
1360f46a6179Smrg#endif
1361f46a6179Smrg{
1362f46a6179Smrg  YYSIZE_T yylen;
1363f46a6179Smrg  for (yylen = 0; yystr[yylen]; yylen++)
1364f46a6179Smrg    continue;
1365f46a6179Smrg  return yylen;
1366f46a6179Smrg}
1367f46a6179Smrg#  endif
1368f46a6179Smrg# endif
1369f46a6179Smrg
1370f46a6179Smrg# ifndef yystpcpy
1371f46a6179Smrg#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1372f46a6179Smrg#   define yystpcpy stpcpy
1373f46a6179Smrg#  else
1374f46a6179Smrg/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1375f46a6179Smrg   YYDEST.  */
1376f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1377f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1378f46a6179Smrgstatic char *
1379f46a6179Smrgyystpcpy (char *yydest, const char *yysrc)
1380f46a6179Smrg#else
1381f46a6179Smrgstatic char *
1382f46a6179Smrgyystpcpy (yydest, yysrc)
1383f46a6179Smrg    char *yydest;
1384f46a6179Smrg    const char *yysrc;
1385f46a6179Smrg#endif
1386f46a6179Smrg{
1387f46a6179Smrg  char *yyd = yydest;
1388f46a6179Smrg  const char *yys = yysrc;
1389f46a6179Smrg
1390f46a6179Smrg  while ((*yyd++ = *yys++) != '\0')
1391f46a6179Smrg    continue;
1392f46a6179Smrg
1393f46a6179Smrg  return yyd - 1;
1394f46a6179Smrg}
1395f46a6179Smrg#  endif
1396f46a6179Smrg# endif
1397f46a6179Smrg
1398f46a6179Smrg# ifndef yytnamerr
1399f46a6179Smrg/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1400f46a6179Smrg   quotes and backslashes, so that it's suitable for yyerror.  The
1401f46a6179Smrg   heuristic is that double-quoting is unnecessary unless the string
1402f46a6179Smrg   contains an apostrophe, a comma, or backslash (other than
1403f46a6179Smrg   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1404f46a6179Smrg   null, do not copy; instead, return the length of what the result
1405f46a6179Smrg   would have been.  */
1406f46a6179Smrgstatic YYSIZE_T
1407f46a6179Smrgyytnamerr (char *yyres, const char *yystr)
1408f46a6179Smrg{
1409f46a6179Smrg  if (*yystr == '"')
1410f46a6179Smrg    {
1411f46a6179Smrg      YYSIZE_T yyn = 0;
1412f46a6179Smrg      char const *yyp = yystr;
1413f46a6179Smrg
1414f46a6179Smrg      for (;;)
1415f46a6179Smrg	switch (*++yyp)
1416f46a6179Smrg	  {
1417f46a6179Smrg	  case '\'':
1418f46a6179Smrg	  case ',':
1419f46a6179Smrg	    goto do_not_strip_quotes;
1420f46a6179Smrg
1421f46a6179Smrg	  case '\\':
1422f46a6179Smrg	    if (*++yyp != '\\')
1423f46a6179Smrg	      goto do_not_strip_quotes;
1424f46a6179Smrg	    /* Fall through.  */
1425f46a6179Smrg	  default:
1426f46a6179Smrg	    if (yyres)
1427f46a6179Smrg	      yyres[yyn] = *yyp;
1428f46a6179Smrg	    yyn++;
1429f46a6179Smrg	    break;
1430f46a6179Smrg
1431f46a6179Smrg	  case '"':
1432f46a6179Smrg	    if (yyres)
1433f46a6179Smrg	      yyres[yyn] = '\0';
1434f46a6179Smrg	    return yyn;
1435f46a6179Smrg	  }
1436f46a6179Smrg    do_not_strip_quotes: ;
1437f46a6179Smrg    }
1438f46a6179Smrg
1439f46a6179Smrg  if (! yyres)
1440f46a6179Smrg    return yystrlen (yystr);
1441f46a6179Smrg
1442f46a6179Smrg  return yystpcpy (yyres, yystr) - yyres;
1443f46a6179Smrg}
1444f46a6179Smrg# endif
1445f46a6179Smrg
1446f46a6179Smrg/* Copy into YYRESULT an error message about the unexpected token
1447f46a6179Smrg   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
1448f46a6179Smrg   including the terminating null byte.  If YYRESULT is null, do not
1449f46a6179Smrg   copy anything; just return the number of bytes that would be
1450f46a6179Smrg   copied.  As a special case, return 0 if an ordinary "syntax error"
1451f46a6179Smrg   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
1452f46a6179Smrg   size calculation.  */
1453f46a6179Smrgstatic YYSIZE_T
1454f46a6179Smrgyysyntax_error (char *yyresult, int yystate, int yychar)
1455f46a6179Smrg{
1456f46a6179Smrg  int yyn = yypact[yystate];
1457f46a6179Smrg
1458f46a6179Smrg  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1459f46a6179Smrg    return 0;
1460f46a6179Smrg  else
1461f46a6179Smrg    {
1462f46a6179Smrg      int yytype = YYTRANSLATE (yychar);
1463f46a6179Smrg      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1464f46a6179Smrg      YYSIZE_T yysize = yysize0;
1465f46a6179Smrg      YYSIZE_T yysize1;
1466f46a6179Smrg      int yysize_overflow = 0;
1467f46a6179Smrg      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1468f46a6179Smrg      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1469f46a6179Smrg      int yyx;
1470f46a6179Smrg
1471f46a6179Smrg# if 0
1472f46a6179Smrg      /* This is so xgettext sees the translatable formats that are
1473f46a6179Smrg	 constructed on the fly.  */
1474f46a6179Smrg      YY_("syntax error, unexpected %s");
1475f46a6179Smrg      YY_("syntax error, unexpected %s, expecting %s");
1476f46a6179Smrg      YY_("syntax error, unexpected %s, expecting %s or %s");
1477f46a6179Smrg      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1478f46a6179Smrg      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1479f46a6179Smrg# endif
1480f46a6179Smrg      char *yyfmt;
1481f46a6179Smrg      char const *yyf;
1482f46a6179Smrg      static char const yyunexpected[] = "syntax error, unexpected %s";
1483f46a6179Smrg      static char const yyexpecting[] = ", expecting %s";
1484f46a6179Smrg      static char const yyor[] = " or %s";
1485f46a6179Smrg      char yyformat[sizeof yyunexpected
1486f46a6179Smrg		    + sizeof yyexpecting - 1
1487f46a6179Smrg		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1488f46a6179Smrg		       * (sizeof yyor - 1))];
1489f46a6179Smrg      char const *yyprefix = yyexpecting;
1490f46a6179Smrg
1491f46a6179Smrg      /* Start YYX at -YYN if negative to avoid negative indexes in
1492f46a6179Smrg	 YYCHECK.  */
1493f46a6179Smrg      int yyxbegin = yyn < 0 ? -yyn : 0;
1494f46a6179Smrg
1495f46a6179Smrg      /* Stay within bounds of both yycheck and yytname.  */
1496f46a6179Smrg      int yychecklim = YYLAST - yyn + 1;
1497f46a6179Smrg      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1498f46a6179Smrg      int yycount = 1;
1499f46a6179Smrg
1500f46a6179Smrg      yyarg[0] = yytname[yytype];
1501f46a6179Smrg      yyfmt = yystpcpy (yyformat, yyunexpected);
1502f46a6179Smrg
1503f46a6179Smrg      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1504f46a6179Smrg	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1505f46a6179Smrg	  {
1506f46a6179Smrg	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1507f46a6179Smrg	      {
1508f46a6179Smrg		yycount = 1;
1509f46a6179Smrg		yysize = yysize0;
1510f46a6179Smrg		yyformat[sizeof yyunexpected - 1] = '\0';
1511f46a6179Smrg		break;
1512f46a6179Smrg	      }
1513f46a6179Smrg	    yyarg[yycount++] = yytname[yyx];
1514f46a6179Smrg	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1515f46a6179Smrg	    yysize_overflow |= (yysize1 < yysize);
1516f46a6179Smrg	    yysize = yysize1;
1517f46a6179Smrg	    yyfmt = yystpcpy (yyfmt, yyprefix);
1518f46a6179Smrg	    yyprefix = yyor;
1519f46a6179Smrg	  }
1520f46a6179Smrg
1521f46a6179Smrg      yyf = YY_(yyformat);
1522f46a6179Smrg      yysize1 = yysize + yystrlen (yyf);
1523f46a6179Smrg      yysize_overflow |= (yysize1 < yysize);
1524f46a6179Smrg      yysize = yysize1;
1525f46a6179Smrg
1526f46a6179Smrg      if (yysize_overflow)
1527f46a6179Smrg	return YYSIZE_MAXIMUM;
1528f46a6179Smrg
1529f46a6179Smrg      if (yyresult)
1530f46a6179Smrg	{
1531f46a6179Smrg	  /* Avoid sprintf, as that infringes on the user's name space.
1532f46a6179Smrg	     Don't have undefined behavior even if the translation
1533f46a6179Smrg	     produced a string with the wrong number of "%s"s.  */
1534f46a6179Smrg	  char *yyp = yyresult;
1535f46a6179Smrg	  int yyi = 0;
1536f46a6179Smrg	  while ((*yyp = *yyf) != '\0')
1537f46a6179Smrg	    {
1538f46a6179Smrg	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1539f46a6179Smrg		{
1540f46a6179Smrg		  yyp += yytnamerr (yyp, yyarg[yyi++]);
1541f46a6179Smrg		  yyf += 2;
1542f46a6179Smrg		}
1543f46a6179Smrg	      else
1544f46a6179Smrg		{
1545f46a6179Smrg		  yyp++;
1546f46a6179Smrg		  yyf++;
1547f46a6179Smrg		}
1548f46a6179Smrg	    }
1549f46a6179Smrg	}
1550f46a6179Smrg      return yysize;
1551f46a6179Smrg    }
1552f46a6179Smrg}
1553f46a6179Smrg#endif /* YYERROR_VERBOSE */
1554f46a6179Smrg
1555f46a6179Smrg
1556f46a6179Smrg/*-----------------------------------------------.
1557f46a6179Smrg| Release the memory associated to this symbol.  |
1558f46a6179Smrg`-----------------------------------------------*/
1559f46a6179Smrg
1560f46a6179Smrg/*ARGSUSED*/
1561f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1562f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1563f46a6179Smrgstatic void
1564f46a6179Smrgyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1565f46a6179Smrg#else
1566f46a6179Smrgstatic void
1567f46a6179Smrgyydestruct (yymsg, yytype, yyvaluep)
1568f46a6179Smrg    const char *yymsg;
1569f46a6179Smrg    int yytype;
1570f46a6179Smrg    YYSTYPE *yyvaluep;
1571f46a6179Smrg#endif
1572f46a6179Smrg{
1573f46a6179Smrg  YYUSE (yyvaluep);
1574f46a6179Smrg
1575f46a6179Smrg  if (!yymsg)
1576f46a6179Smrg    yymsg = "Deleting";
1577f46a6179Smrg  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1578f46a6179Smrg
1579f46a6179Smrg  switch (yytype)
1580f46a6179Smrg    {
1581f46a6179Smrg
1582f46a6179Smrg      default:
1583f46a6179Smrg	break;
1584f46a6179Smrg    }
1585f46a6179Smrg}
1586f46a6179Smrg
1587f46a6179Smrg/* Prevent warnings from -Wmissing-prototypes.  */
1588f46a6179Smrg#ifdef YYPARSE_PARAM
1589f46a6179Smrg#if defined __STDC__ || defined __cplusplus
1590f46a6179Smrgint yyparse (void *YYPARSE_PARAM);
1591f46a6179Smrg#else
1592f46a6179Smrgint yyparse ();
1593f46a6179Smrg#endif
1594f46a6179Smrg#else /* ! YYPARSE_PARAM */
1595f46a6179Smrg#if defined __STDC__ || defined __cplusplus
1596f46a6179Smrgint yyparse (void);
1597f46a6179Smrg#else
1598f46a6179Smrgint yyparse ();
1599f46a6179Smrg#endif
1600f46a6179Smrg#endif /* ! YYPARSE_PARAM */
1601f46a6179Smrg
1602f46a6179Smrg
16035fac8b10Smrg/* The lookahead symbol.  */
1604f46a6179Smrgint yychar;
1605f46a6179Smrg
16065fac8b10Smrg/* The semantic value of the lookahead symbol.  */
1607f46a6179SmrgYYSTYPE yylval;
1608f46a6179Smrg
1609f46a6179Smrg/* Number of syntax errors so far.  */
1610f46a6179Smrgint yynerrs;
1611f46a6179Smrg
1612f46a6179Smrg
1613f46a6179Smrg
16145fac8b10Smrg/*-------------------------.
16155fac8b10Smrg| yyparse or yypush_parse.  |
16165fac8b10Smrg`-------------------------*/
1617f46a6179Smrg
1618f46a6179Smrg#ifdef YYPARSE_PARAM
1619f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1620f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1621f46a6179Smrgint
1622f46a6179Smrgyyparse (void *YYPARSE_PARAM)
1623f46a6179Smrg#else
1624f46a6179Smrgint
1625f46a6179Smrgyyparse (YYPARSE_PARAM)
1626f46a6179Smrg    void *YYPARSE_PARAM;
1627f46a6179Smrg#endif
1628f46a6179Smrg#else /* ! YYPARSE_PARAM */
1629f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1630f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1631f46a6179Smrgint
1632f46a6179Smrgyyparse (void)
1633f46a6179Smrg#else
1634f46a6179Smrgint
1635f46a6179Smrgyyparse ()
1636f46a6179Smrg
1637f46a6179Smrg#endif
1638f46a6179Smrg#endif
1639f46a6179Smrg{
1640f46a6179Smrg
1641f46a6179Smrg
16425fac8b10Smrg    int yystate;
16435fac8b10Smrg    /* Number of tokens to shift before error messages enabled.  */
16445fac8b10Smrg    int yyerrstatus;
1645f46a6179Smrg
16465fac8b10Smrg    /* The stacks and their tools:
16475fac8b10Smrg       `yyss': related to states.
16485fac8b10Smrg       `yyvs': related to semantic values.
1649f46a6179Smrg
16505fac8b10Smrg       Refer to the stacks thru separate pointers, to allow yyoverflow
16515fac8b10Smrg       to reallocate them elsewhere.  */
1652f46a6179Smrg
16535fac8b10Smrg    /* The state stack.  */
16545fac8b10Smrg    yytype_int16 yyssa[YYINITDEPTH];
16555fac8b10Smrg    yytype_int16 *yyss;
16565fac8b10Smrg    yytype_int16 *yyssp;
1657f46a6179Smrg
16585fac8b10Smrg    /* The semantic value stack.  */
16595fac8b10Smrg    YYSTYPE yyvsa[YYINITDEPTH];
16605fac8b10Smrg    YYSTYPE *yyvs;
16615fac8b10Smrg    YYSTYPE *yyvsp;
1662f46a6179Smrg
16635fac8b10Smrg    YYSIZE_T yystacksize;
1664f46a6179Smrg
16655fac8b10Smrg  int yyn;
16665fac8b10Smrg  int yyresult;
16675fac8b10Smrg  /* Lookahead token as an internal (translated) token number.  */
16685fac8b10Smrg  int yytoken;
1669f46a6179Smrg  /* The variables used to return semantic value and location from the
1670f46a6179Smrg     action routines.  */
1671f46a6179Smrg  YYSTYPE yyval;
1672f46a6179Smrg
16735fac8b10Smrg#if YYERROR_VERBOSE
16745fac8b10Smrg  /* Buffer for error messages, and its allocated size.  */
16755fac8b10Smrg  char yymsgbuf[128];
16765fac8b10Smrg  char *yymsg = yymsgbuf;
16775fac8b10Smrg  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
16785fac8b10Smrg#endif
16795fac8b10Smrg
16805fac8b10Smrg#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
1681f46a6179Smrg
1682f46a6179Smrg  /* The number of symbols on the RHS of the reduced rule.
1683f46a6179Smrg     Keep to zero when no symbol should be popped.  */
1684f46a6179Smrg  int yylen = 0;
1685f46a6179Smrg
16865fac8b10Smrg  yytoken = 0;
16875fac8b10Smrg  yyss = yyssa;
16885fac8b10Smrg  yyvs = yyvsa;
16895fac8b10Smrg  yystacksize = YYINITDEPTH;
16905fac8b10Smrg
1691f46a6179Smrg  YYDPRINTF ((stderr, "Starting parse\n"));
1692f46a6179Smrg
1693f46a6179Smrg  yystate = 0;
1694f46a6179Smrg  yyerrstatus = 0;
1695f46a6179Smrg  yynerrs = 0;
16965fac8b10Smrg  yychar = YYEMPTY; /* Cause a token to be read.  */
1697f46a6179Smrg
1698f46a6179Smrg  /* Initialize stack pointers.
1699f46a6179Smrg     Waste one element of value and location stack
1700f46a6179Smrg     so that they stay on the same level as the state stack.
1701f46a6179Smrg     The wasted elements are never initialized.  */
1702f46a6179Smrg  yyssp = yyss;
1703f46a6179Smrg  yyvsp = yyvs;
1704f46a6179Smrg
1705f46a6179Smrg  goto yysetstate;
1706f46a6179Smrg
1707f46a6179Smrg/*------------------------------------------------------------.
1708f46a6179Smrg| yynewstate -- Push a new state, which is found in yystate.  |
1709f46a6179Smrg`------------------------------------------------------------*/
1710f46a6179Smrg yynewstate:
1711f46a6179Smrg  /* In all cases, when you get here, the value and location stacks
1712f46a6179Smrg     have just been pushed.  So pushing a state here evens the stacks.  */
1713f46a6179Smrg  yyssp++;
1714f46a6179Smrg
1715f46a6179Smrg yysetstate:
1716f46a6179Smrg  *yyssp = yystate;
1717f46a6179Smrg
1718f46a6179Smrg  if (yyss + yystacksize - 1 <= yyssp)
1719f46a6179Smrg    {
1720f46a6179Smrg      /* Get the current used size of the three stacks, in elements.  */
1721f46a6179Smrg      YYSIZE_T yysize = yyssp - yyss + 1;
1722f46a6179Smrg
1723f46a6179Smrg#ifdef yyoverflow
1724f46a6179Smrg      {
1725f46a6179Smrg	/* Give user a chance to reallocate the stack.  Use copies of
1726f46a6179Smrg	   these so that the &'s don't force the real ones into
1727f46a6179Smrg	   memory.  */
1728f46a6179Smrg	YYSTYPE *yyvs1 = yyvs;
1729f46a6179Smrg	yytype_int16 *yyss1 = yyss;
1730f46a6179Smrg
1731f46a6179Smrg	/* Each stack pointer address is followed by the size of the
1732f46a6179Smrg	   data in use in that stack, in bytes.  This used to be a
1733f46a6179Smrg	   conditional around just the two extra args, but that might
1734f46a6179Smrg	   be undefined if yyoverflow is a macro.  */
1735f46a6179Smrg	yyoverflow (YY_("memory exhausted"),
1736f46a6179Smrg		    &yyss1, yysize * sizeof (*yyssp),
1737f46a6179Smrg		    &yyvs1, yysize * sizeof (*yyvsp),
1738f46a6179Smrg		    &yystacksize);
1739f46a6179Smrg
1740f46a6179Smrg	yyss = yyss1;
1741f46a6179Smrg	yyvs = yyvs1;
1742f46a6179Smrg      }
1743f46a6179Smrg#else /* no yyoverflow */
1744f46a6179Smrg# ifndef YYSTACK_RELOCATE
1745f46a6179Smrg      goto yyexhaustedlab;
1746f46a6179Smrg# else
1747f46a6179Smrg      /* Extend the stack our own way.  */
1748f46a6179Smrg      if (YYMAXDEPTH <= yystacksize)
1749f46a6179Smrg	goto yyexhaustedlab;
1750f46a6179Smrg      yystacksize *= 2;
1751f46a6179Smrg      if (YYMAXDEPTH < yystacksize)
1752f46a6179Smrg	yystacksize = YYMAXDEPTH;
1753f46a6179Smrg
1754f46a6179Smrg      {
1755f46a6179Smrg	yytype_int16 *yyss1 = yyss;
1756f46a6179Smrg	union yyalloc *yyptr =
1757f46a6179Smrg	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1758f46a6179Smrg	if (! yyptr)
1759f46a6179Smrg	  goto yyexhaustedlab;
17605fac8b10Smrg	YYSTACK_RELOCATE (yyss_alloc, yyss);
17615fac8b10Smrg	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1762f46a6179Smrg#  undef YYSTACK_RELOCATE
1763f46a6179Smrg	if (yyss1 != yyssa)
1764f46a6179Smrg	  YYSTACK_FREE (yyss1);
1765f46a6179Smrg      }
1766f46a6179Smrg# endif
1767f46a6179Smrg#endif /* no yyoverflow */
1768f46a6179Smrg
1769f46a6179Smrg      yyssp = yyss + yysize - 1;
1770f46a6179Smrg      yyvsp = yyvs + yysize - 1;
1771f46a6179Smrg
1772f46a6179Smrg      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1773f46a6179Smrg		  (unsigned long int) yystacksize));
1774f46a6179Smrg
1775f46a6179Smrg      if (yyss + yystacksize - 1 <= yyssp)
1776f46a6179Smrg	YYABORT;
1777f46a6179Smrg    }
1778f46a6179Smrg
1779f46a6179Smrg  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1780f46a6179Smrg
17815fac8b10Smrg  if (yystate == YYFINAL)
17825fac8b10Smrg    YYACCEPT;
17835fac8b10Smrg
1784f46a6179Smrg  goto yybackup;
1785f46a6179Smrg
1786f46a6179Smrg/*-----------.
1787f46a6179Smrg| yybackup.  |
1788f46a6179Smrg`-----------*/
1789f46a6179Smrgyybackup:
1790f46a6179Smrg
1791f46a6179Smrg  /* Do appropriate processing given the current state.  Read a
17925fac8b10Smrg     lookahead token if we need one and don't already have one.  */
1793f46a6179Smrg
17945fac8b10Smrg  /* First try to decide what to do without reference to lookahead token.  */
1795f46a6179Smrg  yyn = yypact[yystate];
1796f46a6179Smrg  if (yyn == YYPACT_NINF)
1797f46a6179Smrg    goto yydefault;
1798f46a6179Smrg
17995fac8b10Smrg  /* Not known => get a lookahead token if don't already have one.  */
1800f46a6179Smrg
18015fac8b10Smrg  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
1802f46a6179Smrg  if (yychar == YYEMPTY)
1803f46a6179Smrg    {
1804f46a6179Smrg      YYDPRINTF ((stderr, "Reading a token: "));
1805f46a6179Smrg      yychar = YYLEX;
1806f46a6179Smrg    }
1807f46a6179Smrg
1808f46a6179Smrg  if (yychar <= YYEOF)
1809f46a6179Smrg    {
1810f46a6179Smrg      yychar = yytoken = YYEOF;
1811f46a6179Smrg      YYDPRINTF ((stderr, "Now at end of input.\n"));
1812f46a6179Smrg    }
1813f46a6179Smrg  else
1814f46a6179Smrg    {
1815f46a6179Smrg      yytoken = YYTRANSLATE (yychar);
1816f46a6179Smrg      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1817f46a6179Smrg    }
1818f46a6179Smrg
1819f46a6179Smrg  /* If the proper action on seeing token YYTOKEN is to reduce or to
1820f46a6179Smrg     detect an error, take that action.  */
1821f46a6179Smrg  yyn += yytoken;
1822f46a6179Smrg  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1823f46a6179Smrg    goto yydefault;
1824f46a6179Smrg  yyn = yytable[yyn];
1825f46a6179Smrg  if (yyn <= 0)
1826f46a6179Smrg    {
1827f46a6179Smrg      if (yyn == 0 || yyn == YYTABLE_NINF)
1828f46a6179Smrg	goto yyerrlab;
1829f46a6179Smrg      yyn = -yyn;
1830f46a6179Smrg      goto yyreduce;
1831f46a6179Smrg    }
1832f46a6179Smrg
1833f46a6179Smrg  /* Count tokens shifted since error; after three, turn off error
1834f46a6179Smrg     status.  */
1835f46a6179Smrg  if (yyerrstatus)
1836f46a6179Smrg    yyerrstatus--;
1837f46a6179Smrg
18385fac8b10Smrg  /* Shift the lookahead token.  */
1839f46a6179Smrg  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1840f46a6179Smrg
18415fac8b10Smrg  /* Discard the shifted token.  */
18425fac8b10Smrg  yychar = YYEMPTY;
1843f46a6179Smrg
1844f46a6179Smrg  yystate = yyn;
1845f46a6179Smrg  *++yyvsp = yylval;
1846f46a6179Smrg
1847f46a6179Smrg  goto yynewstate;
1848f46a6179Smrg
1849f46a6179Smrg
1850f46a6179Smrg/*-----------------------------------------------------------.
1851f46a6179Smrg| yydefault -- do the default action for the current state.  |
1852f46a6179Smrg`-----------------------------------------------------------*/
1853f46a6179Smrgyydefault:
1854f46a6179Smrg  yyn = yydefact[yystate];
1855f46a6179Smrg  if (yyn == 0)
1856f46a6179Smrg    goto yyerrlab;
1857f46a6179Smrg  goto yyreduce;
1858f46a6179Smrg
1859f46a6179Smrg
1860f46a6179Smrg/*-----------------------------.
1861f46a6179Smrg| yyreduce -- Do a reduction.  |
1862f46a6179Smrg`-----------------------------*/
1863f46a6179Smrgyyreduce:
1864f46a6179Smrg  /* yyn is the number of a rule to reduce with.  */
1865f46a6179Smrg  yylen = yyr2[yyn];
1866f46a6179Smrg
1867f46a6179Smrg  /* If YYLEN is nonzero, implement the default value of the action:
1868f46a6179Smrg     `$$ = $1'.
1869f46a6179Smrg
1870f46a6179Smrg     Otherwise, the following line sets YYVAL to garbage.
1871f46a6179Smrg     This behavior is undocumented and Bison
1872f46a6179Smrg     users should not rely upon it.  Assigning to YYVAL
1873f46a6179Smrg     unconditionally makes the parser a bit smaller, and it avoids a
1874f46a6179Smrg     GCC warning that YYVAL may be used uninitialized.  */
1875f46a6179Smrg  yyval = yyvsp[1-yylen];
1876f46a6179Smrg
1877f46a6179Smrg
1878f46a6179Smrg  YY_REDUCE_PRINT (yyn);
1879f46a6179Smrg  switch (yyn)
1880f46a6179Smrg    {
1881f46a6179Smrg        case 2:
18825fac8b10Smrg
18835fac8b10Smrg/* Line 1455 of yacc.c  */
188434345a63Smrg#line 169 "xkbparse.y"
1885f46a6179Smrg    { (yyval.file)= rtrnValue= (yyvsp[(1) - (1)].file); }
1886f46a6179Smrg    break;
1887f46a6179Smrg
1888f46a6179Smrg  case 3:
18895fac8b10Smrg
18905fac8b10Smrg/* Line 1455 of yacc.c  */
189134345a63Smrg#line 171 "xkbparse.y"
1892f46a6179Smrg    { (yyval.file)= rtrnValue= (yyvsp[(1) - (1)].file);  }
1893f46a6179Smrg    break;
1894f46a6179Smrg
1895f46a6179Smrg  case 4:
18965fac8b10Smrg
18975fac8b10Smrg/* Line 1455 of yacc.c  */
189834345a63Smrg#line 173 "xkbparse.y"
1899f46a6179Smrg    { (yyval.file)= rtrnValue= (yyvsp[(1) - (1)].file); }
1900f46a6179Smrg    break;
1901f46a6179Smrg
1902f46a6179Smrg  case 5:
19035fac8b10Smrg
19045fac8b10Smrg/* Line 1455 of yacc.c  */
190534345a63Smrg#line 177 "xkbparse.y"
1906f46a6179Smrg    { (yyval.file)= (XkbFile *)AppendStmt(&(yyvsp[(1) - (2)].file)->common,&(yyvsp[(2) - (2)].file)->common); }
1907f46a6179Smrg    break;
1908f46a6179Smrg
1909f46a6179Smrg  case 6:
19105fac8b10Smrg
19115fac8b10Smrg/* Line 1455 of yacc.c  */
191234345a63Smrg#line 179 "xkbparse.y"
1913f46a6179Smrg    { (yyval.file)= (yyvsp[(1) - (1)].file); }
1914f46a6179Smrg    break;
1915f46a6179Smrg
1916f46a6179Smrg  case 7:
19175fac8b10Smrg
19185fac8b10Smrg/* Line 1455 of yacc.c  */
191934345a63Smrg#line 185 "xkbparse.y"
1920f46a6179Smrg    { (yyval.file)= CreateXKBFile((yyvsp[(2) - (7)].uval),(yyvsp[(3) - (7)].str),&(yyvsp[(5) - (7)].file)->common,(yyvsp[(1) - (7)].uval)); }
1921f46a6179Smrg    break;
1922f46a6179Smrg
1923f46a6179Smrg  case 8:
19245fac8b10Smrg
19255fac8b10Smrg/* Line 1455 of yacc.c  */
192634345a63Smrg#line 188 "xkbparse.y"
1927f46a6179Smrg    { (yyval.uval)= XkmKeymapFile; }
1928f46a6179Smrg    break;
1929f46a6179Smrg
1930f46a6179Smrg  case 9:
19315fac8b10Smrg
19325fac8b10Smrg/* Line 1455 of yacc.c  */
193334345a63Smrg#line 189 "xkbparse.y"
1934f46a6179Smrg    { (yyval.uval)= XkmSemanticsFile; }
1935f46a6179Smrg    break;
1936f46a6179Smrg
1937f46a6179Smrg  case 10:
19385fac8b10Smrg
19395fac8b10Smrg/* Line 1455 of yacc.c  */
194034345a63Smrg#line 190 "xkbparse.y"
1941f46a6179Smrg    { (yyval.uval)= XkmLayoutFile; }
1942f46a6179Smrg    break;
1943f46a6179Smrg
1944f46a6179Smrg  case 11:
19455fac8b10Smrg
19465fac8b10Smrg/* Line 1455 of yacc.c  */
194734345a63Smrg#line 194 "xkbparse.y"
1948f46a6179Smrg    { (yyval.file)= (XkbFile *)AppendStmt(&(yyvsp[(1) - (2)].file)->common,&(yyvsp[(2) - (2)].file)->common); }
1949f46a6179Smrg    break;
1950f46a6179Smrg
1951f46a6179Smrg  case 12:
19525fac8b10Smrg
19535fac8b10Smrg/* Line 1455 of yacc.c  */
195434345a63Smrg#line 196 "xkbparse.y"
1955f46a6179Smrg    { (yyval.file)= (yyvsp[(1) - (1)].file); }
1956f46a6179Smrg    break;
1957f46a6179Smrg
1958f46a6179Smrg  case 13:
19595fac8b10Smrg
19605fac8b10Smrg/* Line 1455 of yacc.c  */
196134345a63Smrg#line 202 "xkbparse.y"
1962f46a6179Smrg    { (yyval.file)= CreateXKBFile((yyvsp[(2) - (7)].uval),(yyvsp[(3) - (7)].str),(yyvsp[(5) - (7)].any),(yyvsp[(1) - (7)].uval)); }
1963f46a6179Smrg    break;
1964f46a6179Smrg
1965f46a6179Smrg  case 14:
19665fac8b10Smrg
19675fac8b10Smrg/* Line 1455 of yacc.c  */
196834345a63Smrg#line 206 "xkbparse.y"
1969f46a6179Smrg    { (yyval.file)= CreateXKBFile((yyvsp[(2) - (4)].uval),(yyvsp[(3) - (4)].str),(yyvsp[(4) - (4)].any),(yyvsp[(1) - (4)].uval)); }
1970f46a6179Smrg    break;
1971f46a6179Smrg
1972f46a6179Smrg  case 15:
19735fac8b10Smrg
19745fac8b10Smrg/* Line 1455 of yacc.c  */
197534345a63Smrg#line 210 "xkbparse.y"
1976f46a6179Smrg    { (yyval.uval)= XkmKeyNamesIndex; }
1977f46a6179Smrg    break;
1978f46a6179Smrg
1979f46a6179Smrg  case 16:
19805fac8b10Smrg
19815fac8b10Smrg/* Line 1455 of yacc.c  */
198234345a63Smrg#line 211 "xkbparse.y"
1983f46a6179Smrg    { (yyval.uval)= XkmTypesIndex; }
1984f46a6179Smrg    break;
1985f46a6179Smrg
1986f46a6179Smrg  case 17:
19875fac8b10Smrg
19885fac8b10Smrg/* Line 1455 of yacc.c  */
198934345a63Smrg#line 212 "xkbparse.y"
1990f46a6179Smrg    { (yyval.uval)= XkmCompatMapIndex; }
1991f46a6179Smrg    break;
1992f46a6179Smrg
1993f46a6179Smrg  case 18:
19945fac8b10Smrg
19955fac8b10Smrg/* Line 1455 of yacc.c  */
199634345a63Smrg#line 213 "xkbparse.y"
1997f46a6179Smrg    { (yyval.uval)= XkmSymbolsIndex; }
1998f46a6179Smrg    break;
1999f46a6179Smrg
2000f46a6179Smrg  case 19:
20015fac8b10Smrg
20025fac8b10Smrg/* Line 1455 of yacc.c  */
200334345a63Smrg#line 214 "xkbparse.y"
2004f46a6179Smrg    { (yyval.uval)= XkmGeometryIndex; }
2005f46a6179Smrg    break;
2006f46a6179Smrg
2007f46a6179Smrg  case 20:
20085fac8b10Smrg
20095fac8b10Smrg/* Line 1455 of yacc.c  */
201034345a63Smrg#line 217 "xkbparse.y"
2011f46a6179Smrg    { (yyval.uval)= (yyvsp[(1) - (1)].uval); }
2012f46a6179Smrg    break;
2013f46a6179Smrg
2014f46a6179Smrg  case 21:
20155fac8b10Smrg
20165fac8b10Smrg/* Line 1455 of yacc.c  */
201734345a63Smrg#line 218 "xkbparse.y"
2018f46a6179Smrg    { (yyval.uval)= 0; }
2019f46a6179Smrg    break;
2020f46a6179Smrg
2021f46a6179Smrg  case 22:
20225fac8b10Smrg
20235fac8b10Smrg/* Line 1455 of yacc.c  */
202434345a63Smrg#line 221 "xkbparse.y"
2025f46a6179Smrg    { (yyval.uval)= (((yyvsp[(1) - (2)].uval))|((yyvsp[(2) - (2)].uval))); }
2026f46a6179Smrg    break;
2027f46a6179Smrg
2028f46a6179Smrg  case 23:
20295fac8b10Smrg
20305fac8b10Smrg/* Line 1455 of yacc.c  */
203134345a63Smrg#line 222 "xkbparse.y"
2032f46a6179Smrg    { (yyval.uval)= (yyvsp[(1) - (1)].uval); }
2033f46a6179Smrg    break;
2034f46a6179Smrg
2035f46a6179Smrg  case 24:
20365fac8b10Smrg
20375fac8b10Smrg/* Line 1455 of yacc.c  */
203834345a63Smrg#line 225 "xkbparse.y"
2039f46a6179Smrg    { (yyval.uval)= XkbLC_Partial; }
2040f46a6179Smrg    break;
2041f46a6179Smrg
2042f46a6179Smrg  case 25:
20435fac8b10Smrg
20445fac8b10Smrg/* Line 1455 of yacc.c  */
204534345a63Smrg#line 226 "xkbparse.y"
2046f46a6179Smrg    { (yyval.uval)= XkbLC_Default; }
2047f46a6179Smrg    break;
2048f46a6179Smrg
2049f46a6179Smrg  case 26:
20505fac8b10Smrg
20515fac8b10Smrg/* Line 1455 of yacc.c  */
205234345a63Smrg#line 227 "xkbparse.y"
2053f46a6179Smrg    { (yyval.uval)= XkbLC_Hidden; }
2054f46a6179Smrg    break;
2055f46a6179Smrg
2056f46a6179Smrg  case 27:
20575fac8b10Smrg
20585fac8b10Smrg/* Line 1455 of yacc.c  */
205934345a63Smrg#line 228 "xkbparse.y"
2060f46a6179Smrg    { (yyval.uval)= XkbLC_AlphanumericKeys; }
2061f46a6179Smrg    break;
2062f46a6179Smrg
2063f46a6179Smrg  case 28:
20645fac8b10Smrg
20655fac8b10Smrg/* Line 1455 of yacc.c  */
206634345a63Smrg#line 229 "xkbparse.y"
2067f46a6179Smrg    { (yyval.uval)= XkbLC_ModifierKeys; }
2068f46a6179Smrg    break;
2069f46a6179Smrg
2070f46a6179Smrg  case 29:
20715fac8b10Smrg
20725fac8b10Smrg/* Line 1455 of yacc.c  */
207334345a63Smrg#line 230 "xkbparse.y"
2074f46a6179Smrg    { (yyval.uval)= XkbLC_KeypadKeys; }
2075f46a6179Smrg    break;
2076f46a6179Smrg
2077f46a6179Smrg  case 30:
20785fac8b10Smrg
20795fac8b10Smrg/* Line 1455 of yacc.c  */
208034345a63Smrg#line 231 "xkbparse.y"
2081f46a6179Smrg    { (yyval.uval)= XkbLC_FunctionKeys; }
2082f46a6179Smrg    break;
2083f46a6179Smrg
2084f46a6179Smrg  case 31:
20855fac8b10Smrg
20865fac8b10Smrg/* Line 1455 of yacc.c  */
208734345a63Smrg#line 232 "xkbparse.y"
2088f46a6179Smrg    { (yyval.uval)= XkbLC_AlternateGroup; }
2089f46a6179Smrg    break;
2090f46a6179Smrg
2091f46a6179Smrg  case 32:
20925fac8b10Smrg
20935fac8b10Smrg/* Line 1455 of yacc.c  */
209434345a63Smrg#line 236 "xkbparse.y"
2095f46a6179Smrg    { (yyval.any)= AppendStmt((yyvsp[(1) - (2)].any),(yyvsp[(2) - (2)].any)); }
2096f46a6179Smrg    break;
2097f46a6179Smrg
2098f46a6179Smrg  case 33:
20995fac8b10Smrg
21005fac8b10Smrg/* Line 1455 of yacc.c  */
210134345a63Smrg#line 237 "xkbparse.y"
2102f46a6179Smrg    { (yyval.any)= NULL; }
2103f46a6179Smrg    break;
2104f46a6179Smrg
2105f46a6179Smrg  case 34:
21065fac8b10Smrg
21075fac8b10Smrg/* Line 1455 of yacc.c  */
210834345a63Smrg#line 241 "xkbparse.y"
2109f46a6179Smrg    {
2110f46a6179Smrg			    (yyvsp[(2) - (2)].var)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].var)->common,(yyvsp[(1) - (2)].uval));
2111f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].var)->common;
2112f46a6179Smrg			}
2113f46a6179Smrg    break;
2114f46a6179Smrg
2115f46a6179Smrg  case 35:
21165fac8b10Smrg
21175fac8b10Smrg/* Line 1455 of yacc.c  */
211834345a63Smrg#line 246 "xkbparse.y"
2119f46a6179Smrg    {
2120f46a6179Smrg			    (yyvsp[(2) - (2)].vmod)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].vmod)->common,(yyvsp[(1) - (2)].uval));
2121f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].vmod)->common;
2122f46a6179Smrg			}
2123f46a6179Smrg    break;
2124f46a6179Smrg
2125f46a6179Smrg  case 36:
21265fac8b10Smrg
21275fac8b10Smrg/* Line 1455 of yacc.c  */
212834345a63Smrg#line 251 "xkbparse.y"
2129f46a6179Smrg    {
2130f46a6179Smrg			    (yyvsp[(2) - (2)].interp)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].interp)->common,(yyvsp[(1) - (2)].uval));
2131f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].interp)->common;
2132f46a6179Smrg			}
2133f46a6179Smrg    break;
2134f46a6179Smrg
2135f46a6179Smrg  case 37:
21365fac8b10Smrg
21375fac8b10Smrg/* Line 1455 of yacc.c  */
213834345a63Smrg#line 256 "xkbparse.y"
2139f46a6179Smrg    {
2140f46a6179Smrg			    (yyvsp[(2) - (2)].keyName)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].keyName)->common,(yyvsp[(1) - (2)].uval));
2141f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].keyName)->common;
2142f46a6179Smrg			}
2143f46a6179Smrg    break;
2144f46a6179Smrg
2145f46a6179Smrg  case 38:
21465fac8b10Smrg
21475fac8b10Smrg/* Line 1455 of yacc.c  */
214834345a63Smrg#line 261 "xkbparse.y"
2149f46a6179Smrg    {
2150f46a6179Smrg			    (yyvsp[(2) - (2)].keyAlias)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].keyAlias)->common,(yyvsp[(1) - (2)].uval));
2151f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].keyAlias)->common;
2152f46a6179Smrg			}
2153f46a6179Smrg    break;
2154f46a6179Smrg
2155f46a6179Smrg  case 39:
21565fac8b10Smrg
21575fac8b10Smrg/* Line 1455 of yacc.c  */
215834345a63Smrg#line 266 "xkbparse.y"
2159f46a6179Smrg    {
2160f46a6179Smrg			    (yyvsp[(2) - (2)].keyType)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].keyType)->common,(yyvsp[(1) - (2)].uval));
2161f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].keyType)->common;
2162f46a6179Smrg			}
2163f46a6179Smrg    break;
2164f46a6179Smrg
2165f46a6179Smrg  case 40:
21665fac8b10Smrg
21675fac8b10Smrg/* Line 1455 of yacc.c  */
216834345a63Smrg#line 271 "xkbparse.y"
2169f46a6179Smrg    {
2170f46a6179Smrg			    (yyvsp[(2) - (2)].syms)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].syms)->common,(yyvsp[(1) - (2)].uval));
2171f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].syms)->common;
2172f46a6179Smrg			}
2173f46a6179Smrg    break;
2174f46a6179Smrg
2175f46a6179Smrg  case 41:
21765fac8b10Smrg
21775fac8b10Smrg/* Line 1455 of yacc.c  */
217834345a63Smrg#line 276 "xkbparse.y"
2179f46a6179Smrg    {
2180f46a6179Smrg			    (yyvsp[(2) - (2)].modMask)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].modMask)->common,(yyvsp[(1) - (2)].uval));
2181f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].modMask)->common;
2182f46a6179Smrg			}
2183f46a6179Smrg    break;
2184f46a6179Smrg
2185f46a6179Smrg  case 42:
21865fac8b10Smrg
21875fac8b10Smrg/* Line 1455 of yacc.c  */
218834345a63Smrg#line 281 "xkbparse.y"
2189f46a6179Smrg    {
2190f46a6179Smrg			    (yyvsp[(2) - (2)].groupCompat)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].groupCompat)->common,(yyvsp[(1) - (2)].uval));
2191f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].groupCompat)->common;
2192f46a6179Smrg			}
2193f46a6179Smrg    break;
2194f46a6179Smrg
2195f46a6179Smrg  case 43:
21965fac8b10Smrg
21975fac8b10Smrg/* Line 1455 of yacc.c  */
219834345a63Smrg#line 286 "xkbparse.y"
2199f46a6179Smrg    {
2200f46a6179Smrg			    (yyvsp[(2) - (2)].ledMap)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].ledMap)->common,(yyvsp[(1) - (2)].uval));
2201f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].ledMap)->common;
2202f46a6179Smrg			}
2203f46a6179Smrg    break;
2204f46a6179Smrg
2205f46a6179Smrg  case 44:
22065fac8b10Smrg
22075fac8b10Smrg/* Line 1455 of yacc.c  */
220834345a63Smrg#line 291 "xkbparse.y"
2209f46a6179Smrg    {
2210f46a6179Smrg			    (yyvsp[(2) - (2)].ledName)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].ledName)->common,(yyvsp[(1) - (2)].uval));
2211f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].ledName)->common;
2212f46a6179Smrg			}
2213f46a6179Smrg    break;
2214f46a6179Smrg
2215f46a6179Smrg  case 45:
22165fac8b10Smrg
22175fac8b10Smrg/* Line 1455 of yacc.c  */
221834345a63Smrg#line 296 "xkbparse.y"
2219f46a6179Smrg    {
2220f46a6179Smrg			    (yyvsp[(2) - (2)].shape)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].shape)->common,(yyvsp[(1) - (2)].uval));
2221f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].shape)->common;
2222f46a6179Smrg			}
2223f46a6179Smrg    break;
2224f46a6179Smrg
2225f46a6179Smrg  case 46:
22265fac8b10Smrg
22275fac8b10Smrg/* Line 1455 of yacc.c  */
222834345a63Smrg#line 301 "xkbparse.y"
2229f46a6179Smrg    {
2230f46a6179Smrg			    (yyvsp[(2) - (2)].section)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].section)->common,(yyvsp[(1) - (2)].uval));
2231f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].section)->common;
2232f46a6179Smrg			}
2233f46a6179Smrg    break;
2234f46a6179Smrg
2235f46a6179Smrg  case 47:
22365fac8b10Smrg
22375fac8b10Smrg/* Line 1455 of yacc.c  */
223834345a63Smrg#line 306 "xkbparse.y"
2239f46a6179Smrg    {
2240f46a6179Smrg			    (yyvsp[(2) - (2)].doodad)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].doodad)->common,(yyvsp[(1) - (2)].uval));
2241f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].doodad)->common;
2242f46a6179Smrg			}
2243f46a6179Smrg    break;
2244f46a6179Smrg
2245f46a6179Smrg  case 48:
22465fac8b10Smrg
22475fac8b10Smrg/* Line 1455 of yacc.c  */
224834345a63Smrg#line 311 "xkbparse.y"
2249f46a6179Smrg    {
2250f46a6179Smrg			    if ((yyvsp[(1) - (2)].uval)==MergeAltForm) {
2251f46a6179Smrg				yyerror("cannot use 'alternate' to include other maps");
2252f46a6179Smrg				(yyval.any)= &IncludeCreate(scanStr,MergeDefault)->common;
2253f46a6179Smrg			    }
2254f46a6179Smrg			    else {
2255f46a6179Smrg				(yyval.any)= &IncludeCreate(scanStr,(yyvsp[(1) - (2)].uval))->common;
2256f46a6179Smrg			    }
2257f46a6179Smrg                        }
2258f46a6179Smrg    break;
2259f46a6179Smrg
2260f46a6179Smrg  case 49:
22615fac8b10Smrg
22625fac8b10Smrg/* Line 1455 of yacc.c  */
226334345a63Smrg#line 323 "xkbparse.y"
2264f46a6179Smrg    { (yyval.var)= VarCreate((yyvsp[(1) - (4)].expr),(yyvsp[(3) - (4)].expr)); }
2265f46a6179Smrg    break;
2266f46a6179Smrg
2267f46a6179Smrg  case 50:
22685fac8b10Smrg
22695fac8b10Smrg/* Line 1455 of yacc.c  */
227034345a63Smrg#line 325 "xkbparse.y"
2271f46a6179Smrg    { (yyval.var)= BoolVarCreate((yyvsp[(1) - (2)].sval),1); }
2272f46a6179Smrg    break;
2273f46a6179Smrg
2274f46a6179Smrg  case 51:
22755fac8b10Smrg
22765fac8b10Smrg/* Line 1455 of yacc.c  */
227734345a63Smrg#line 327 "xkbparse.y"
2278f46a6179Smrg    { (yyval.var)= BoolVarCreate((yyvsp[(2) - (3)].sval),0); }
2279f46a6179Smrg    break;
2280f46a6179Smrg
2281f46a6179Smrg  case 52:
22825fac8b10Smrg
22835fac8b10Smrg/* Line 1455 of yacc.c  */
228434345a63Smrg#line 331 "xkbparse.y"
2285f46a6179Smrg    {
2286f46a6179Smrg			    KeycodeDef *def;
2287f46a6179Smrg
2288f46a6179Smrg			    def= KeycodeCreate((yyvsp[(1) - (4)].str),(yyvsp[(3) - (4)].expr));
2289f46a6179Smrg			    if ((yyvsp[(1) - (4)].str))
2290f46a6179Smrg				free((yyvsp[(1) - (4)].str));
2291f46a6179Smrg			    (yyval.keyName)= def;
2292f46a6179Smrg			}
2293f46a6179Smrg    break;
2294f46a6179Smrg
2295f46a6179Smrg  case 53:
22965fac8b10Smrg
22975fac8b10Smrg/* Line 1455 of yacc.c  */
229834345a63Smrg#line 342 "xkbparse.y"
2299f46a6179Smrg    {
2300f46a6179Smrg			    KeyAliasDef	*def;
2301f46a6179Smrg			    def= KeyAliasCreate((yyvsp[(2) - (5)].str),(yyvsp[(4) - (5)].str));
2302f46a6179Smrg			    if ((yyvsp[(2) - (5)].str))	free((yyvsp[(2) - (5)].str));
2303f46a6179Smrg			    if ((yyvsp[(4) - (5)].str))	free((yyvsp[(4) - (5)].str));
2304f46a6179Smrg			    (yyval.keyAlias)= def;
2305f46a6179Smrg			}
2306f46a6179Smrg    break;
2307f46a6179Smrg
2308f46a6179Smrg  case 54:
23095fac8b10Smrg
23105fac8b10Smrg/* Line 1455 of yacc.c  */
231134345a63Smrg#line 352 "xkbparse.y"
2312f46a6179Smrg    { (yyval.vmod)= (yyvsp[(2) - (3)].vmod); }
2313f46a6179Smrg    break;
2314f46a6179Smrg
2315f46a6179Smrg  case 55:
23165fac8b10Smrg
23175fac8b10Smrg/* Line 1455 of yacc.c  */
231834345a63Smrg#line 356 "xkbparse.y"
2319f46a6179Smrg    { (yyval.vmod)= (VModDef *)AppendStmt(&(yyvsp[(1) - (3)].vmod)->common,&(yyvsp[(3) - (3)].vmod)->common); }
2320f46a6179Smrg    break;
2321f46a6179Smrg
2322f46a6179Smrg  case 56:
23235fac8b10Smrg
23245fac8b10Smrg/* Line 1455 of yacc.c  */
232534345a63Smrg#line 358 "xkbparse.y"
2326f46a6179Smrg    { (yyval.vmod)= (yyvsp[(1) - (1)].vmod); }
2327f46a6179Smrg    break;
2328f46a6179Smrg
2329f46a6179Smrg  case 57:
23305fac8b10Smrg
23315fac8b10Smrg/* Line 1455 of yacc.c  */
233234345a63Smrg#line 362 "xkbparse.y"
2333f46a6179Smrg    { (yyval.vmod)= VModCreate((yyvsp[(1) - (1)].sval),NULL); }
2334f46a6179Smrg    break;
2335f46a6179Smrg
2336f46a6179Smrg  case 58:
23375fac8b10Smrg
23385fac8b10Smrg/* Line 1455 of yacc.c  */
233934345a63Smrg#line 364 "xkbparse.y"
2340f46a6179Smrg    { (yyval.vmod)= VModCreate((yyvsp[(1) - (3)].sval),(yyvsp[(3) - (3)].expr)); }
2341f46a6179Smrg    break;
2342f46a6179Smrg
2343f46a6179Smrg  case 59:
23445fac8b10Smrg
23455fac8b10Smrg/* Line 1455 of yacc.c  */
234634345a63Smrg#line 370 "xkbparse.y"
2347f46a6179Smrg    {
2348f46a6179Smrg			    (yyvsp[(2) - (6)].interp)->def= (yyvsp[(4) - (6)].var);
2349f46a6179Smrg			    (yyval.interp)= (yyvsp[(2) - (6)].interp);
2350f46a6179Smrg			}
2351f46a6179Smrg    break;
2352f46a6179Smrg
2353f46a6179Smrg  case 60:
23545fac8b10Smrg
23555fac8b10Smrg/* Line 1455 of yacc.c  */
235634345a63Smrg#line 377 "xkbparse.y"
2357f46a6179Smrg    { (yyval.interp)= InterpCreate((KeySym)(yyvsp[(1) - (3)].uval),(yyvsp[(3) - (3)].expr)); }
2358f46a6179Smrg    break;
2359f46a6179Smrg
2360f46a6179Smrg  case 61:
23615fac8b10Smrg
23625fac8b10Smrg/* Line 1455 of yacc.c  */
236334345a63Smrg#line 379 "xkbparse.y"
2364f46a6179Smrg    { (yyval.interp)= InterpCreate((KeySym)(yyvsp[(1) - (1)].uval),NULL); }
2365f46a6179Smrg    break;
2366f46a6179Smrg
2367f46a6179Smrg  case 62:
23685fac8b10Smrg
23695fac8b10Smrg/* Line 1455 of yacc.c  */
237034345a63Smrg#line 383 "xkbparse.y"
2371f46a6179Smrg    { (yyval.var)= (VarDef *)AppendStmt(&(yyvsp[(1) - (2)].var)->common,&(yyvsp[(2) - (2)].var)->common); }
2372f46a6179Smrg    break;
2373f46a6179Smrg
2374f46a6179Smrg  case 63:
23755fac8b10Smrg
23765fac8b10Smrg/* Line 1455 of yacc.c  */
237734345a63Smrg#line 385 "xkbparse.y"
2378f46a6179Smrg    { (yyval.var)= (yyvsp[(1) - (1)].var); }
2379f46a6179Smrg    break;
2380f46a6179Smrg
2381f46a6179Smrg  case 64:
23825fac8b10Smrg
23835fac8b10Smrg/* Line 1455 of yacc.c  */
238434345a63Smrg#line 391 "xkbparse.y"
2385f46a6179Smrg    { (yyval.keyType)= KeyTypeCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].var)); }
2386f46a6179Smrg    break;
2387f46a6179Smrg
2388f46a6179Smrg  case 65:
23895fac8b10Smrg
23905fac8b10Smrg/* Line 1455 of yacc.c  */
239134345a63Smrg#line 397 "xkbparse.y"
2392f46a6179Smrg    { (yyval.syms)= SymbolsCreate((yyvsp[(2) - (6)].str),(ExprDef *)(yyvsp[(4) - (6)].var)); }
2393f46a6179Smrg    break;
2394f46a6179Smrg
2395f46a6179Smrg  case 66:
23965fac8b10Smrg
23975fac8b10Smrg/* Line 1455 of yacc.c  */
239834345a63Smrg#line 401 "xkbparse.y"
2399f46a6179Smrg    { (yyval.var)= (VarDef *)AppendStmt(&(yyvsp[(1) - (3)].var)->common,&(yyvsp[(3) - (3)].var)->common); }
2400f46a6179Smrg    break;
2401f46a6179Smrg
2402f46a6179Smrg  case 67:
24035fac8b10Smrg
24045fac8b10Smrg/* Line 1455 of yacc.c  */
240534345a63Smrg#line 403 "xkbparse.y"
2406f46a6179Smrg    { (yyval.var)= (yyvsp[(1) - (1)].var); }
2407f46a6179Smrg    break;
2408f46a6179Smrg
2409f46a6179Smrg  case 68:
24105fac8b10Smrg
24115fac8b10Smrg/* Line 1455 of yacc.c  */
241234345a63Smrg#line 404 "xkbparse.y"
2413f46a6179Smrg    { (yyval.var)= NULL; }
2414f46a6179Smrg    break;
2415f46a6179Smrg
2416f46a6179Smrg  case 69:
24175fac8b10Smrg
24185fac8b10Smrg/* Line 1455 of yacc.c  */
241934345a63Smrg#line 408 "xkbparse.y"
2420f46a6179Smrg    { (yyval.var)= VarCreate((yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2421f46a6179Smrg    break;
2422f46a6179Smrg
2423f46a6179Smrg  case 70:
24245fac8b10Smrg
24255fac8b10Smrg/* Line 1455 of yacc.c  */
242634345a63Smrg#line 410 "xkbparse.y"
2427f46a6179Smrg    { (yyval.var)= VarCreate((yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2428f46a6179Smrg    break;
2429f46a6179Smrg
2430f46a6179Smrg  case 71:
24315fac8b10Smrg
24325fac8b10Smrg/* Line 1455 of yacc.c  */
243334345a63Smrg#line 412 "xkbparse.y"
2434f46a6179Smrg    { (yyval.var)= BoolVarCreate((yyvsp[(1) - (1)].sval),1); }
2435f46a6179Smrg    break;
2436f46a6179Smrg
2437f46a6179Smrg  case 72:
24385fac8b10Smrg
24395fac8b10Smrg/* Line 1455 of yacc.c  */
244034345a63Smrg#line 414 "xkbparse.y"
2441f46a6179Smrg    { (yyval.var)= BoolVarCreate((yyvsp[(2) - (2)].sval),0); }
2442f46a6179Smrg    break;
2443f46a6179Smrg
2444f46a6179Smrg  case 73:
24455fac8b10Smrg
24465fac8b10Smrg/* Line 1455 of yacc.c  */
244734345a63Smrg#line 416 "xkbparse.y"
2448f46a6179Smrg    { (yyval.var)= VarCreate(NULL,(yyvsp[(1) - (1)].expr)); }
2449f46a6179Smrg    break;
2450f46a6179Smrg
2451f46a6179Smrg  case 74:
24525fac8b10Smrg
24535fac8b10Smrg/* Line 1455 of yacc.c  */
245434345a63Smrg#line 420 "xkbparse.y"
2455f46a6179Smrg    { (yyval.expr)= (yyvsp[(2) - (3)].expr); }
2456f46a6179Smrg    break;
2457f46a6179Smrg
2458f46a6179Smrg  case 75:
24595fac8b10Smrg
24605fac8b10Smrg/* Line 1455 of yacc.c  */
246134345a63Smrg#line 422 "xkbparse.y"
2462f46a6179Smrg    { (yyval.expr)= ExprCreateUnary(ExprActionList,TypeAction,(yyvsp[(2) - (3)].expr)); }
2463f46a6179Smrg    break;
2464f46a6179Smrg
2465f46a6179Smrg  case 76:
24665fac8b10Smrg
24675fac8b10Smrg/* Line 1455 of yacc.c  */
246834345a63Smrg#line 426 "xkbparse.y"
2469f46a6179Smrg    { (yyval.groupCompat)= GroupCompatCreate((yyvsp[(2) - (5)].ival),(yyvsp[(4) - (5)].expr)); }
2470f46a6179Smrg    break;
2471f46a6179Smrg
2472f46a6179Smrg  case 77:
24735fac8b10Smrg
24745fac8b10Smrg/* Line 1455 of yacc.c  */
247534345a63Smrg#line 430 "xkbparse.y"
2476f46a6179Smrg    { (yyval.modMask)= ModMapCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].expr)); }
2477f46a6179Smrg    break;
2478f46a6179Smrg
2479f46a6179Smrg  case 78:
24805fac8b10Smrg
24815fac8b10Smrg/* Line 1455 of yacc.c  */
248234345a63Smrg#line 434 "xkbparse.y"
2483f46a6179Smrg    { (yyval.ledMap)= IndicatorMapCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].var)); }
2484f46a6179Smrg    break;
2485f46a6179Smrg
2486f46a6179Smrg  case 79:
24875fac8b10Smrg
24885fac8b10Smrg/* Line 1455 of yacc.c  */
248934345a63Smrg#line 438 "xkbparse.y"
2490f46a6179Smrg    { (yyval.ledName)= IndicatorNameCreate((yyvsp[(2) - (5)].ival),(yyvsp[(4) - (5)].expr),False); }
2491f46a6179Smrg    break;
2492f46a6179Smrg
2493f46a6179Smrg  case 80:
24945fac8b10Smrg
24955fac8b10Smrg/* Line 1455 of yacc.c  */
249634345a63Smrg#line 440 "xkbparse.y"
2497f46a6179Smrg    { (yyval.ledName)= IndicatorNameCreate((yyvsp[(3) - (6)].ival),(yyvsp[(5) - (6)].expr),True); }
2498f46a6179Smrg    break;
2499f46a6179Smrg
2500f46a6179Smrg  case 81:
25015fac8b10Smrg
25025fac8b10Smrg/* Line 1455 of yacc.c  */
250334345a63Smrg#line 444 "xkbparse.y"
2504f46a6179Smrg    { (yyval.shape)= ShapeDeclCreate((yyvsp[(2) - (6)].sval),(OutlineDef *)&(yyvsp[(4) - (6)].outline)->common); }
2505f46a6179Smrg    break;
2506f46a6179Smrg
2507f46a6179Smrg  case 82:
25085fac8b10Smrg
25095fac8b10Smrg/* Line 1455 of yacc.c  */
251034345a63Smrg#line 446 "xkbparse.y"
2511f46a6179Smrg    {
2512f46a6179Smrg			    OutlineDef *outlines;
2513f46a6179Smrg			    outlines= OutlineCreate(None,(yyvsp[(4) - (6)].expr));
2514f46a6179Smrg			    (yyval.shape)= ShapeDeclCreate((yyvsp[(2) - (6)].sval),outlines);
2515f46a6179Smrg			}
2516f46a6179Smrg    break;
2517f46a6179Smrg
2518f46a6179Smrg  case 83:
25195fac8b10Smrg
25205fac8b10Smrg/* Line 1455 of yacc.c  */
252134345a63Smrg#line 454 "xkbparse.y"
2522f46a6179Smrg    { (yyval.section)= SectionDeclCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].row)); }
2523f46a6179Smrg    break;
2524f46a6179Smrg
2525f46a6179Smrg  case 84:
25265fac8b10Smrg
25275fac8b10Smrg/* Line 1455 of yacc.c  */
252834345a63Smrg#line 458 "xkbparse.y"
2529f46a6179Smrg    { (yyval.row)=(RowDef *)AppendStmt(&(yyvsp[(1) - (2)].row)->common,&(yyvsp[(2) - (2)].row)->common);}
2530f46a6179Smrg    break;
2531f46a6179Smrg
2532f46a6179Smrg  case 85:
25335fac8b10Smrg
25345fac8b10Smrg/* Line 1455 of yacc.c  */
253534345a63Smrg#line 460 "xkbparse.y"
2536f46a6179Smrg    { (yyval.row)= (yyvsp[(1) - (1)].row); }
2537f46a6179Smrg    break;
2538f46a6179Smrg
2539f46a6179Smrg  case 86:
25405fac8b10Smrg
25415fac8b10Smrg/* Line 1455 of yacc.c  */
254234345a63Smrg#line 464 "xkbparse.y"
2543f46a6179Smrg    { (yyval.row)= RowDeclCreate((yyvsp[(3) - (5)].key)); }
2544f46a6179Smrg    break;
2545f46a6179Smrg
2546f46a6179Smrg  case 87:
25475fac8b10Smrg
25485fac8b10Smrg/* Line 1455 of yacc.c  */
254934345a63Smrg#line 466 "xkbparse.y"
2550f46a6179Smrg    { (yyval.row)= (RowDef *)(yyvsp[(1) - (1)].var); }
2551f46a6179Smrg    break;
2552f46a6179Smrg
2553f46a6179Smrg  case 88:
25545fac8b10Smrg
25555fac8b10Smrg/* Line 1455 of yacc.c  */
255634345a63Smrg#line 468 "xkbparse.y"
2557f46a6179Smrg    { (yyval.row)= (RowDef *)(yyvsp[(1) - (1)].doodad); }
2558f46a6179Smrg    break;
2559f46a6179Smrg
2560f46a6179Smrg  case 89:
25615fac8b10Smrg
25625fac8b10Smrg/* Line 1455 of yacc.c  */
256334345a63Smrg#line 470 "xkbparse.y"
2564f46a6179Smrg    { (yyval.row)= (RowDef *)(yyvsp[(1) - (1)].ledMap); }
2565f46a6179Smrg    break;
2566f46a6179Smrg
2567f46a6179Smrg  case 90:
25685fac8b10Smrg
25695fac8b10Smrg/* Line 1455 of yacc.c  */
257034345a63Smrg#line 472 "xkbparse.y"
2571f46a6179Smrg    { (yyval.row)= (RowDef *)(yyvsp[(1) - (1)].overlay); }
2572f46a6179Smrg    break;
2573f46a6179Smrg
2574f46a6179Smrg  case 91:
25755fac8b10Smrg
25765fac8b10Smrg/* Line 1455 of yacc.c  */
257734345a63Smrg#line 476 "xkbparse.y"
2578f46a6179Smrg    { (yyval.key)=(KeyDef *)AppendStmt(&(yyvsp[(1) - (2)].key)->common,&(yyvsp[(2) - (2)].key)->common);}
2579f46a6179Smrg    break;
2580f46a6179Smrg
2581f46a6179Smrg  case 92:
25825fac8b10Smrg
25835fac8b10Smrg/* Line 1455 of yacc.c  */
258434345a63Smrg#line 478 "xkbparse.y"
2585f46a6179Smrg    { (yyval.key)= (yyvsp[(1) - (1)].key); }
2586f46a6179Smrg    break;
2587f46a6179Smrg
2588f46a6179Smrg  case 93:
25895fac8b10Smrg
25905fac8b10Smrg/* Line 1455 of yacc.c  */
259134345a63Smrg#line 482 "xkbparse.y"
2592f46a6179Smrg    { (yyval.key)= (yyvsp[(3) - (5)].key); }
2593f46a6179Smrg    break;
2594f46a6179Smrg
2595f46a6179Smrg  case 94:
25965fac8b10Smrg
25975fac8b10Smrg/* Line 1455 of yacc.c  */
259834345a63Smrg#line 484 "xkbparse.y"
2599f46a6179Smrg    { (yyval.key)= (KeyDef *)(yyvsp[(1) - (1)].var); }
2600f46a6179Smrg    break;
2601f46a6179Smrg
2602f46a6179Smrg  case 95:
26035fac8b10Smrg
26045fac8b10Smrg/* Line 1455 of yacc.c  */
260534345a63Smrg#line 488 "xkbparse.y"
2606f46a6179Smrg    { (yyval.key)=(KeyDef *)AppendStmt(&(yyvsp[(1) - (3)].key)->common,&(yyvsp[(3) - (3)].key)->common);}
2607f46a6179Smrg    break;
2608f46a6179Smrg
2609f46a6179Smrg  case 96:
26105fac8b10Smrg
26115fac8b10Smrg/* Line 1455 of yacc.c  */
261234345a63Smrg#line 490 "xkbparse.y"
2613f46a6179Smrg    { (yyval.key)= (yyvsp[(1) - (1)].key); }
2614f46a6179Smrg    break;
2615f46a6179Smrg
2616f46a6179Smrg  case 97:
26175fac8b10Smrg
26185fac8b10Smrg/* Line 1455 of yacc.c  */
261934345a63Smrg#line 494 "xkbparse.y"
2620f46a6179Smrg    { (yyval.key)= KeyDeclCreate((yyvsp[(1) - (1)].str),NULL); }
2621f46a6179Smrg    break;
2622f46a6179Smrg
2623f46a6179Smrg  case 98:
26245fac8b10Smrg
26255fac8b10Smrg/* Line 1455 of yacc.c  */
262634345a63Smrg#line 496 "xkbparse.y"
2627f46a6179Smrg    { (yyval.key)= KeyDeclCreate(NULL,(yyvsp[(2) - (3)].expr)); }
2628f46a6179Smrg    break;
2629f46a6179Smrg
2630f46a6179Smrg  case 99:
26315fac8b10Smrg
26325fac8b10Smrg/* Line 1455 of yacc.c  */
263334345a63Smrg#line 500 "xkbparse.y"
2634f46a6179Smrg    { (yyval.overlay)= OverlayDeclCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].olKey)); }
2635f46a6179Smrg    break;
2636f46a6179Smrg
2637f46a6179Smrg  case 100:
26385fac8b10Smrg
26395fac8b10Smrg/* Line 1455 of yacc.c  */
264034345a63Smrg#line 504 "xkbparse.y"
2641f46a6179Smrg    {
2642f46a6179Smrg			    (yyval.olKey)= (OverlayKeyDef *)
2643f46a6179Smrg				AppendStmt(&(yyvsp[(1) - (3)].olKey)->common,&(yyvsp[(3) - (3)].olKey)->common);
2644f46a6179Smrg			}
2645f46a6179Smrg    break;
2646f46a6179Smrg
2647f46a6179Smrg  case 101:
26485fac8b10Smrg
26495fac8b10Smrg/* Line 1455 of yacc.c  */
265034345a63Smrg#line 509 "xkbparse.y"
2651f46a6179Smrg    { (yyval.olKey)= (yyvsp[(1) - (1)].olKey); }
2652f46a6179Smrg    break;
2653f46a6179Smrg
2654f46a6179Smrg  case 102:
26555fac8b10Smrg
26565fac8b10Smrg/* Line 1455 of yacc.c  */
265734345a63Smrg#line 513 "xkbparse.y"
2658f46a6179Smrg    { (yyval.olKey)= OverlayKeyCreate((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str)); }
2659f46a6179Smrg    break;
2660f46a6179Smrg
2661f46a6179Smrg  case 103:
26625fac8b10Smrg
26635fac8b10Smrg/* Line 1455 of yacc.c  */
266434345a63Smrg#line 517 "xkbparse.y"
2665f46a6179Smrg    { (yyval.outline)=(OutlineDef *)AppendStmt(&(yyvsp[(1) - (3)].outline)->common,&(yyvsp[(3) - (3)].outline)->common);}
2666f46a6179Smrg    break;
2667f46a6179Smrg
2668f46a6179Smrg  case 104:
26695fac8b10Smrg
26705fac8b10Smrg/* Line 1455 of yacc.c  */
267134345a63Smrg#line 519 "xkbparse.y"
2672f46a6179Smrg    { (yyval.outline)= (yyvsp[(1) - (1)].outline); }
2673f46a6179Smrg    break;
2674f46a6179Smrg
2675f46a6179Smrg  case 105:
26765fac8b10Smrg
26775fac8b10Smrg/* Line 1455 of yacc.c  */
267834345a63Smrg#line 523 "xkbparse.y"
2679f46a6179Smrg    { (yyval.outline)= OutlineCreate(None,(yyvsp[(2) - (3)].expr)); }
2680f46a6179Smrg    break;
2681f46a6179Smrg
2682f46a6179Smrg  case 106:
26835fac8b10Smrg
26845fac8b10Smrg/* Line 1455 of yacc.c  */
268534345a63Smrg#line 525 "xkbparse.y"
2686f46a6179Smrg    { (yyval.outline)= OutlineCreate((yyvsp[(1) - (5)].sval),(yyvsp[(4) - (5)].expr)); }
2687f46a6179Smrg    break;
2688f46a6179Smrg
2689f46a6179Smrg  case 107:
26905fac8b10Smrg
26915fac8b10Smrg/* Line 1455 of yacc.c  */
269234345a63Smrg#line 527 "xkbparse.y"
2693f46a6179Smrg    { (yyval.outline)= OutlineCreate((yyvsp[(1) - (3)].sval),(yyvsp[(3) - (3)].expr)); }
2694f46a6179Smrg    break;
2695f46a6179Smrg
2696f46a6179Smrg  case 108:
26975fac8b10Smrg
26985fac8b10Smrg/* Line 1455 of yacc.c  */
269934345a63Smrg#line 531 "xkbparse.y"
2700f46a6179Smrg    { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[(1) - (3)].expr)->common,&(yyvsp[(3) - (3)].expr)->common); }
2701f46a6179Smrg    break;
2702f46a6179Smrg
2703f46a6179Smrg  case 109:
27045fac8b10Smrg
27055fac8b10Smrg/* Line 1455 of yacc.c  */
270634345a63Smrg#line 533 "xkbparse.y"
2707f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2708f46a6179Smrg    break;
2709f46a6179Smrg
2710f46a6179Smrg  case 110:
27115fac8b10Smrg
27125fac8b10Smrg/* Line 1455 of yacc.c  */
271334345a63Smrg#line 537 "xkbparse.y"
2714f46a6179Smrg    {
2715f46a6179Smrg			    ExprDef *expr;
2716f46a6179Smrg			    expr= ExprCreate(ExprCoord,TypeUnknown);
2717f46a6179Smrg			    expr->value.coord.x= (yyvsp[(2) - (5)].ival);
2718f46a6179Smrg			    expr->value.coord.y= (yyvsp[(4) - (5)].ival);
2719f46a6179Smrg			    (yyval.expr)= expr;
2720f46a6179Smrg			}
2721f46a6179Smrg    break;
2722f46a6179Smrg
2723f46a6179Smrg  case 111:
27245fac8b10Smrg
27255fac8b10Smrg/* Line 1455 of yacc.c  */
272634345a63Smrg#line 547 "xkbparse.y"
2727f46a6179Smrg    { (yyval.doodad)= DoodadCreate((yyvsp[(1) - (6)].uval),(yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].var)); }
2728f46a6179Smrg    break;
2729f46a6179Smrg
2730f46a6179Smrg  case 112:
27315fac8b10Smrg
27325fac8b10Smrg/* Line 1455 of yacc.c  */
273334345a63Smrg#line 550 "xkbparse.y"
2734f46a6179Smrg    { (yyval.uval)= XkbTextDoodad; }
2735f46a6179Smrg    break;
2736f46a6179Smrg
2737f46a6179Smrg  case 113:
27385fac8b10Smrg
27395fac8b10Smrg/* Line 1455 of yacc.c  */
274034345a63Smrg#line 551 "xkbparse.y"
2741f46a6179Smrg    { (yyval.uval)= XkbOutlineDoodad; }
2742f46a6179Smrg    break;
2743f46a6179Smrg
2744f46a6179Smrg  case 114:
27455fac8b10Smrg
27465fac8b10Smrg/* Line 1455 of yacc.c  */
274734345a63Smrg#line 552 "xkbparse.y"
2748f46a6179Smrg    { (yyval.uval)= XkbSolidDoodad; }
2749f46a6179Smrg    break;
2750f46a6179Smrg
2751f46a6179Smrg  case 115:
27525fac8b10Smrg
27535fac8b10Smrg/* Line 1455 of yacc.c  */
275434345a63Smrg#line 553 "xkbparse.y"
2755f46a6179Smrg    { (yyval.uval)= XkbLogoDoodad; }
2756f46a6179Smrg    break;
2757f46a6179Smrg
2758f46a6179Smrg  case 116:
27595fac8b10Smrg
27605fac8b10Smrg/* Line 1455 of yacc.c  */
276134345a63Smrg#line 556 "xkbparse.y"
2762f46a6179Smrg    { (yyval.sval)= (yyvsp[(1) - (1)].sval); }
2763f46a6179Smrg    break;
2764f46a6179Smrg
2765f46a6179Smrg  case 117:
27665fac8b10Smrg
27675fac8b10Smrg/* Line 1455 of yacc.c  */
276834345a63Smrg#line 557 "xkbparse.y"
2769f46a6179Smrg    { (yyval.sval)= (yyvsp[(1) - (1)].sval); }
2770f46a6179Smrg    break;
2771f46a6179Smrg
2772f46a6179Smrg  case 118:
27735fac8b10Smrg
27745fac8b10Smrg/* Line 1455 of yacc.c  */
277534345a63Smrg#line 561 "xkbparse.y"
2776f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"action",False); }
2777f46a6179Smrg    break;
2778f46a6179Smrg
2779f46a6179Smrg  case 119:
27805fac8b10Smrg
27815fac8b10Smrg/* Line 1455 of yacc.c  */
278234345a63Smrg#line 563 "xkbparse.y"
2783f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"interpret",False); }
2784f46a6179Smrg    break;
2785f46a6179Smrg
2786f46a6179Smrg  case 120:
27875fac8b10Smrg
27885fac8b10Smrg/* Line 1455 of yacc.c  */
278934345a63Smrg#line 565 "xkbparse.y"
2790f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"type",False); }
2791f46a6179Smrg    break;
2792f46a6179Smrg
2793f46a6179Smrg  case 121:
27945fac8b10Smrg
27955fac8b10Smrg/* Line 1455 of yacc.c  */
279634345a63Smrg#line 567 "xkbparse.y"
2797f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"key",False); }
2798f46a6179Smrg    break;
2799f46a6179Smrg
2800f46a6179Smrg  case 122:
28015fac8b10Smrg
28025fac8b10Smrg/* Line 1455 of yacc.c  */
280334345a63Smrg#line 569 "xkbparse.y"
2804f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"group",False); }
2805f46a6179Smrg    break;
2806f46a6179Smrg
2807f46a6179Smrg  case 123:
28085fac8b10Smrg
28095fac8b10Smrg/* Line 1455 of yacc.c  */
281034345a63Smrg#line 571 "xkbparse.y"
2811f46a6179Smrg    {(yyval.sval)=XkbInternAtom(NULL,"modifier_map",False);}
2812f46a6179Smrg    break;
2813f46a6179Smrg
2814f46a6179Smrg  case 124:
28155fac8b10Smrg
28165fac8b10Smrg/* Line 1455 of yacc.c  */
281734345a63Smrg#line 573 "xkbparse.y"
2818f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"indicator",False); }
2819f46a6179Smrg    break;
2820f46a6179Smrg
2821f46a6179Smrg  case 125:
28225fac8b10Smrg
28235fac8b10Smrg/* Line 1455 of yacc.c  */
282434345a63Smrg#line 575 "xkbparse.y"
2825f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"shape",False); }
2826f46a6179Smrg    break;
2827f46a6179Smrg
2828f46a6179Smrg  case 126:
28295fac8b10Smrg
28305fac8b10Smrg/* Line 1455 of yacc.c  */
283134345a63Smrg#line 577 "xkbparse.y"
2832f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"row",False); }
2833f46a6179Smrg    break;
2834f46a6179Smrg
2835f46a6179Smrg  case 127:
28365fac8b10Smrg
28375fac8b10Smrg/* Line 1455 of yacc.c  */
283834345a63Smrg#line 579 "xkbparse.y"
2839f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"section",False); }
2840f46a6179Smrg    break;
2841f46a6179Smrg
2842f46a6179Smrg  case 128:
28435fac8b10Smrg
28445fac8b10Smrg/* Line 1455 of yacc.c  */
284534345a63Smrg#line 581 "xkbparse.y"
2846f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"text",False); }
2847f46a6179Smrg    break;
2848f46a6179Smrg
2849f46a6179Smrg  case 129:
28505fac8b10Smrg
28515fac8b10Smrg/* Line 1455 of yacc.c  */
285234345a63Smrg#line 584 "xkbparse.y"
2853f46a6179Smrg    { (yyval.uval)= (yyvsp[(1) - (1)].uval); }
2854f46a6179Smrg    break;
2855f46a6179Smrg
2856f46a6179Smrg  case 130:
28575fac8b10Smrg
28585fac8b10Smrg/* Line 1455 of yacc.c  */
285934345a63Smrg#line 585 "xkbparse.y"
2860f46a6179Smrg    { (yyval.uval)= MergeDefault; }
2861f46a6179Smrg    break;
2862f46a6179Smrg
2863f46a6179Smrg  case 131:
28645fac8b10Smrg
28655fac8b10Smrg/* Line 1455 of yacc.c  */
286634345a63Smrg#line 588 "xkbparse.y"
2867f46a6179Smrg    { (yyval.uval)= MergeDefault; }
2868f46a6179Smrg    break;
2869f46a6179Smrg
2870f46a6179Smrg  case 132:
28715fac8b10Smrg
28725fac8b10Smrg/* Line 1455 of yacc.c  */
287334345a63Smrg#line 589 "xkbparse.y"
2874f46a6179Smrg    { (yyval.uval)= MergeAugment; }
2875f46a6179Smrg    break;
2876f46a6179Smrg
2877f46a6179Smrg  case 133:
28785fac8b10Smrg
28795fac8b10Smrg/* Line 1455 of yacc.c  */
288034345a63Smrg#line 590 "xkbparse.y"
2881f46a6179Smrg    { (yyval.uval)= MergeOverride; }
2882f46a6179Smrg    break;
2883f46a6179Smrg
2884f46a6179Smrg  case 134:
28855fac8b10Smrg
28865fac8b10Smrg/* Line 1455 of yacc.c  */
288734345a63Smrg#line 591 "xkbparse.y"
2888f46a6179Smrg    { (yyval.uval)= MergeReplace; }
2889f46a6179Smrg    break;
2890f46a6179Smrg
2891f46a6179Smrg  case 135:
28925fac8b10Smrg
28935fac8b10Smrg/* Line 1455 of yacc.c  */
289434345a63Smrg#line 592 "xkbparse.y"
2895f46a6179Smrg    { (yyval.uval)= MergeAltForm; }
2896f46a6179Smrg    break;
2897f46a6179Smrg
2898f46a6179Smrg  case 136:
28995fac8b10Smrg
29005fac8b10Smrg/* Line 1455 of yacc.c  */
290134345a63Smrg#line 595 "xkbparse.y"
2902f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2903f46a6179Smrg    break;
2904f46a6179Smrg
2905f46a6179Smrg  case 137:
29065fac8b10Smrg
29075fac8b10Smrg/* Line 1455 of yacc.c  */
290834345a63Smrg#line 596 "xkbparse.y"
2909f46a6179Smrg    { (yyval.expr)= NULL; }
2910f46a6179Smrg    break;
2911f46a6179Smrg
2912f46a6179Smrg  case 138:
29135fac8b10Smrg
29145fac8b10Smrg/* Line 1455 of yacc.c  */
291534345a63Smrg#line 600 "xkbparse.y"
2916f46a6179Smrg    { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[(1) - (3)].expr)->common,&(yyvsp[(3) - (3)].expr)->common); }
2917f46a6179Smrg    break;
2918f46a6179Smrg
2919f46a6179Smrg  case 139:
29205fac8b10Smrg
29215fac8b10Smrg/* Line 1455 of yacc.c  */
292234345a63Smrg#line 602 "xkbparse.y"
2923f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2924f46a6179Smrg    break;
2925f46a6179Smrg
2926f46a6179Smrg  case 140:
29275fac8b10Smrg
29285fac8b10Smrg/* Line 1455 of yacc.c  */
292934345a63Smrg#line 606 "xkbparse.y"
2930f46a6179Smrg    { (yyval.expr)= ExprCreateBinary(OpDivide,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2931f46a6179Smrg    break;
2932f46a6179Smrg
2933f46a6179Smrg  case 141:
29345fac8b10Smrg
29355fac8b10Smrg/* Line 1455 of yacc.c  */
293634345a63Smrg#line 608 "xkbparse.y"
2937f46a6179Smrg    { (yyval.expr)= ExprCreateBinary(OpAdd,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2938f46a6179Smrg    break;
2939f46a6179Smrg
2940f46a6179Smrg  case 142:
29415fac8b10Smrg
29425fac8b10Smrg/* Line 1455 of yacc.c  */
294334345a63Smrg#line 610 "xkbparse.y"
2944f46a6179Smrg    { (yyval.expr)= ExprCreateBinary(OpSubtract,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2945f46a6179Smrg    break;
2946f46a6179Smrg
2947f46a6179Smrg  case 143:
29485fac8b10Smrg
29495fac8b10Smrg/* Line 1455 of yacc.c  */
295034345a63Smrg#line 612 "xkbparse.y"
2951f46a6179Smrg    { (yyval.expr)= ExprCreateBinary(OpMultiply,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2952f46a6179Smrg    break;
2953f46a6179Smrg
2954f46a6179Smrg  case 144:
29555fac8b10Smrg
29565fac8b10Smrg/* Line 1455 of yacc.c  */
295734345a63Smrg#line 614 "xkbparse.y"
2958f46a6179Smrg    { (yyval.expr)= ExprCreateBinary(OpAssign,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2959f46a6179Smrg    break;
2960f46a6179Smrg
2961f46a6179Smrg  case 145:
29625fac8b10Smrg
29635fac8b10Smrg/* Line 1455 of yacc.c  */
296434345a63Smrg#line 616 "xkbparse.y"
2965f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2966f46a6179Smrg    break;
2967f46a6179Smrg
2968f46a6179Smrg  case 146:
29695fac8b10Smrg
29705fac8b10Smrg/* Line 1455 of yacc.c  */
297134345a63Smrg#line 620 "xkbparse.y"
2972f46a6179Smrg    { (yyval.expr)= ExprCreateUnary(OpNegate,(yyvsp[(2) - (2)].expr)->type,(yyvsp[(2) - (2)].expr)); }
2973f46a6179Smrg    break;
2974f46a6179Smrg
2975f46a6179Smrg  case 147:
29765fac8b10Smrg
29775fac8b10Smrg/* Line 1455 of yacc.c  */
297834345a63Smrg#line 622 "xkbparse.y"
2979f46a6179Smrg    { (yyval.expr)= ExprCreateUnary(OpUnaryPlus,(yyvsp[(2) - (2)].expr)->type,(yyvsp[(2) - (2)].expr)); }
2980f46a6179Smrg    break;
2981f46a6179Smrg
2982f46a6179Smrg  case 148:
29835fac8b10Smrg
29845fac8b10Smrg/* Line 1455 of yacc.c  */
298534345a63Smrg#line 624 "xkbparse.y"
2986f46a6179Smrg    { (yyval.expr)= ExprCreateUnary(OpNot,TypeBoolean,(yyvsp[(2) - (2)].expr)); }
2987f46a6179Smrg    break;
2988f46a6179Smrg
2989f46a6179Smrg  case 149:
29905fac8b10Smrg
29915fac8b10Smrg/* Line 1455 of yacc.c  */
299234345a63Smrg#line 626 "xkbparse.y"
2993f46a6179Smrg    { (yyval.expr)= ExprCreateUnary(OpInvert,(yyvsp[(2) - (2)].expr)->type,(yyvsp[(2) - (2)].expr)); }
2994f46a6179Smrg    break;
2995f46a6179Smrg
2996f46a6179Smrg  case 150:
29975fac8b10Smrg
29985fac8b10Smrg/* Line 1455 of yacc.c  */
299934345a63Smrg#line 628 "xkbparse.y"
3000f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr);  }
3001f46a6179Smrg    break;
3002f46a6179Smrg
3003f46a6179Smrg  case 151:
30045fac8b10Smrg
30055fac8b10Smrg/* Line 1455 of yacc.c  */
300634345a63Smrg#line 630 "xkbparse.y"
3007f46a6179Smrg    { (yyval.expr)= ActionCreate((yyvsp[(1) - (4)].sval),(yyvsp[(3) - (4)].expr)); }
3008f46a6179Smrg    break;
3009f46a6179Smrg
3010f46a6179Smrg  case 152:
30115fac8b10Smrg
30125fac8b10Smrg/* Line 1455 of yacc.c  */
301334345a63Smrg#line 632 "xkbparse.y"
3014f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr);  }
3015f46a6179Smrg    break;
3016f46a6179Smrg
3017f46a6179Smrg  case 153:
30185fac8b10Smrg
30195fac8b10Smrg/* Line 1455 of yacc.c  */
302034345a63Smrg#line 634 "xkbparse.y"
3021f46a6179Smrg    { (yyval.expr)= (yyvsp[(2) - (3)].expr);  }
3022f46a6179Smrg    break;
3023f46a6179Smrg
3024f46a6179Smrg  case 154:
30255fac8b10Smrg
30265fac8b10Smrg/* Line 1455 of yacc.c  */
302734345a63Smrg#line 638 "xkbparse.y"
3028f46a6179Smrg    { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[(1) - (3)].expr)->common,&(yyvsp[(3) - (3)].expr)->common); }
3029f46a6179Smrg    break;
3030f46a6179Smrg
3031f46a6179Smrg  case 155:
30325fac8b10Smrg
30335fac8b10Smrg/* Line 1455 of yacc.c  */
303434345a63Smrg#line 640 "xkbparse.y"
3035f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
3036f46a6179Smrg    break;
3037f46a6179Smrg
3038f46a6179Smrg  case 156:
30395fac8b10Smrg
30405fac8b10Smrg/* Line 1455 of yacc.c  */
304134345a63Smrg#line 644 "xkbparse.y"
3042f46a6179Smrg    { (yyval.expr)= ActionCreate((yyvsp[(1) - (4)].sval),(yyvsp[(3) - (4)].expr)); }
3043f46a6179Smrg    break;
3044f46a6179Smrg
3045f46a6179Smrg  case 157:
30465fac8b10Smrg
30475fac8b10Smrg/* Line 1455 of yacc.c  */
304834345a63Smrg#line 648 "xkbparse.y"
3049f46a6179Smrg    {
3050f46a6179Smrg			    ExprDef *expr;
3051f46a6179Smrg                            expr= ExprCreate(ExprIdent,TypeUnknown);
3052f46a6179Smrg                            expr->value.str= (yyvsp[(1) - (1)].sval);
3053f46a6179Smrg                            (yyval.expr)= expr;
3054f46a6179Smrg			}
3055f46a6179Smrg    break;
3056f46a6179Smrg
3057f46a6179Smrg  case 158:
30585fac8b10Smrg
30595fac8b10Smrg/* Line 1455 of yacc.c  */
306034345a63Smrg#line 655 "xkbparse.y"
3061f46a6179Smrg    {
3062f46a6179Smrg                            ExprDef *expr;
3063f46a6179Smrg                            expr= ExprCreate(ExprFieldRef,TypeUnknown);
3064f46a6179Smrg                            expr->value.field.element= (yyvsp[(1) - (3)].sval);
3065f46a6179Smrg                            expr->value.field.field= (yyvsp[(3) - (3)].sval);
3066f46a6179Smrg                            (yyval.expr)= expr;
3067f46a6179Smrg			}
3068f46a6179Smrg    break;
3069f46a6179Smrg
3070f46a6179Smrg  case 159:
30715fac8b10Smrg
30725fac8b10Smrg/* Line 1455 of yacc.c  */
307334345a63Smrg#line 663 "xkbparse.y"
3074f46a6179Smrg    {
3075f46a6179Smrg			    ExprDef *expr;
3076f46a6179Smrg			    expr= ExprCreate(ExprArrayRef,TypeUnknown);
3077f46a6179Smrg			    expr->value.array.element= None;
3078f46a6179Smrg			    expr->value.array.field= (yyvsp[(1) - (4)].sval);
3079f46a6179Smrg			    expr->value.array.entry= (yyvsp[(3) - (4)].expr);
3080f46a6179Smrg			    (yyval.expr)= expr;
3081f46a6179Smrg			}
3082f46a6179Smrg    break;
3083f46a6179Smrg
3084f46a6179Smrg  case 160:
30855fac8b10Smrg
30865fac8b10Smrg/* Line 1455 of yacc.c  */
308734345a63Smrg#line 672 "xkbparse.y"
3088f46a6179Smrg    {
3089f46a6179Smrg			    ExprDef *expr;
3090f46a6179Smrg			    expr= ExprCreate(ExprArrayRef,TypeUnknown);
3091f46a6179Smrg			    expr->value.array.element= (yyvsp[(1) - (6)].sval);
3092f46a6179Smrg			    expr->value.array.field= (yyvsp[(3) - (6)].sval);
3093f46a6179Smrg			    expr->value.array.entry= (yyvsp[(5) - (6)].expr);
3094f46a6179Smrg			    (yyval.expr)= expr;
3095f46a6179Smrg			}
3096f46a6179Smrg    break;
3097f46a6179Smrg
3098f46a6179Smrg  case 161:
30995fac8b10Smrg
31005fac8b10Smrg/* Line 1455 of yacc.c  */
310134345a63Smrg#line 683 "xkbparse.y"
3102f46a6179Smrg    {
3103f46a6179Smrg			    ExprDef *expr;
3104f46a6179Smrg                            expr= ExprCreate(ExprValue,TypeString);
3105f46a6179Smrg                            expr->value.str= (yyvsp[(1) - (1)].sval);
3106f46a6179Smrg                            (yyval.expr)= expr;
3107f46a6179Smrg			}
3108f46a6179Smrg    break;
3109f46a6179Smrg
3110f46a6179Smrg  case 162:
31115fac8b10Smrg
31125fac8b10Smrg/* Line 1455 of yacc.c  */
311334345a63Smrg#line 690 "xkbparse.y"
3114f46a6179Smrg    {
3115f46a6179Smrg			    ExprDef *expr;
3116f46a6179Smrg                            expr= ExprCreate(ExprValue,TypeInt);
3117f46a6179Smrg                            expr->value.ival= (yyvsp[(1) - (1)].ival);
3118f46a6179Smrg                            (yyval.expr)= expr;
3119f46a6179Smrg			}
3120f46a6179Smrg    break;
3121f46a6179Smrg
3122f46a6179Smrg  case 163:
31235fac8b10Smrg
31245fac8b10Smrg/* Line 1455 of yacc.c  */
312534345a63Smrg#line 697 "xkbparse.y"
3126f46a6179Smrg    {
3127f46a6179Smrg			    ExprDef *expr;
3128f46a6179Smrg			    expr= ExprCreate(ExprValue,TypeFloat);
3129f46a6179Smrg			    expr->value.ival= (yyvsp[(1) - (1)].ival);
3130f46a6179Smrg			    (yyval.expr)= expr;
3131f46a6179Smrg			}
3132f46a6179Smrg    break;
3133f46a6179Smrg
3134f46a6179Smrg  case 164:
31355fac8b10Smrg
31365fac8b10Smrg/* Line 1455 of yacc.c  */
313734345a63Smrg#line 704 "xkbparse.y"
3138f46a6179Smrg    {
3139f46a6179Smrg			    ExprDef *expr;
3140f46a6179Smrg			    expr= ExprCreate(ExprValue,TypeKeyName);
3141f46a6179Smrg			    memset(expr->value.keyName,0,5);
3142f46a6179Smrg			    strncpy(expr->value.keyName,(yyvsp[(1) - (1)].str),4);
3143f46a6179Smrg			    free((yyvsp[(1) - (1)].str));
3144f46a6179Smrg			    (yyval.expr)= expr;
3145f46a6179Smrg			}
3146f46a6179Smrg    break;
3147f46a6179Smrg
3148f46a6179Smrg  case 165:
31495fac8b10Smrg
31505fac8b10Smrg/* Line 1455 of yacc.c  */
315134345a63Smrg#line 714 "xkbparse.y"
3152f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
3153f46a6179Smrg    break;
3154f46a6179Smrg
3155f46a6179Smrg  case 166:
31565fac8b10Smrg
31575fac8b10Smrg/* Line 1455 of yacc.c  */
315834345a63Smrg#line 715 "xkbparse.y"
3159f46a6179Smrg    { (yyval.expr)= NULL; }
3160f46a6179Smrg    break;
3161f46a6179Smrg
3162f46a6179Smrg  case 167:
31635fac8b10Smrg
31645fac8b10Smrg/* Line 1455 of yacc.c  */
316534345a63Smrg#line 719 "xkbparse.y"
3166f46a6179Smrg    { (yyval.expr)= AppendKeysymList((yyvsp[(1) - (3)].expr),(KeySym)(yyvsp[(3) - (3)].uval)); }
3167f46a6179Smrg    break;
3168f46a6179Smrg
3169f46a6179Smrg  case 168:
31705fac8b10Smrg
31715fac8b10Smrg/* Line 1455 of yacc.c  */
317234345a63Smrg#line 721 "xkbparse.y"
3173f46a6179Smrg    { (yyval.expr)= CreateKeysymList((KeySym)(yyvsp[(1) - (1)].uval)); }
3174f46a6179Smrg    break;
3175f46a6179Smrg
3176f46a6179Smrg  case 169:
31775fac8b10Smrg
31785fac8b10Smrg/* Line 1455 of yacc.c  */
317934345a63Smrg#line 725 "xkbparse.y"
3180f46a6179Smrg    {
3181f46a6179Smrg			    KeySym sym;
3182f46a6179Smrg			    if (LookupKeysym(scanStr,&sym))
3183f46a6179Smrg				(yyval.uval)= sym;
3184f46a6179Smrg			    else {
3185f46a6179Smrg				char buf[120];
318634345a63Smrg				snprintf(buf, sizeof(buf),
318734345a63Smrg					 "expected keysym, got %s",
318834345a63Smrg					 uStringText(scanStr));
3189f46a6179Smrg				yyerror(buf);
3190f46a6179Smrg				yynerrs++;
3191f46a6179Smrg				(yyval.uval)= NoSymbol;
3192f46a6179Smrg			    }
3193f46a6179Smrg			}
3194f46a6179Smrg    break;
3195f46a6179Smrg
3196f46a6179Smrg  case 170:
31975fac8b10Smrg
31985fac8b10Smrg/* Line 1455 of yacc.c  */
3199f46a6179Smrg#line 740 "xkbparse.y"
3200f46a6179Smrg    {
3201f46a6179Smrg			    (yyval.uval)= XK_section;
3202f46a6179Smrg			}
3203f46a6179Smrg    break;
3204f46a6179Smrg
3205f46a6179Smrg  case 171:
32065fac8b10Smrg
32075fac8b10Smrg/* Line 1455 of yacc.c  */
3208f46a6179Smrg#line 744 "xkbparse.y"
3209f46a6179Smrg    {
3210f46a6179Smrg			    if ((yyvsp[(1) - (1)].ival)<10)	(yyval.uval)= (yyvsp[(1) - (1)].ival)+'0';	/* XK_0 .. XK_9 */
3211f46a6179Smrg			    else	(yyval.uval)= (yyvsp[(1) - (1)].ival);
3212f46a6179Smrg			}
3213f46a6179Smrg    break;
3214f46a6179Smrg
3215f46a6179Smrg  case 172:
32165fac8b10Smrg
32175fac8b10Smrg/* Line 1455 of yacc.c  */
3218f46a6179Smrg#line 750 "xkbparse.y"
3219f46a6179Smrg    { (yyval.ival)= -(yyvsp[(2) - (2)].ival); }
3220f46a6179Smrg    break;
3221f46a6179Smrg
3222f46a6179Smrg  case 173:
32235fac8b10Smrg
32245fac8b10Smrg/* Line 1455 of yacc.c  */
3225f46a6179Smrg#line 751 "xkbparse.y"
3226f46a6179Smrg    { (yyval.ival)= (yyvsp[(1) - (1)].ival); }
3227f46a6179Smrg    break;
3228f46a6179Smrg
3229f46a6179Smrg  case 174:
32305fac8b10Smrg
32315fac8b10Smrg/* Line 1455 of yacc.c  */
3232f46a6179Smrg#line 754 "xkbparse.y"
3233f46a6179Smrg    { (yyval.ival)= scanInt; }
3234f46a6179Smrg    break;
3235f46a6179Smrg
3236f46a6179Smrg  case 175:
32375fac8b10Smrg
32385fac8b10Smrg/* Line 1455 of yacc.c  */
3239f46a6179Smrg#line 755 "xkbparse.y"
3240f46a6179Smrg    { (yyval.ival)= scanInt*XkbGeomPtsPerMM; }
3241f46a6179Smrg    break;
3242f46a6179Smrg
3243f46a6179Smrg  case 176:
32445fac8b10Smrg
32455fac8b10Smrg/* Line 1455 of yacc.c  */
3246f46a6179Smrg#line 758 "xkbparse.y"
3247f46a6179Smrg    { (yyval.ival)= scanInt; }
3248f46a6179Smrg    break;
3249f46a6179Smrg
3250f46a6179Smrg  case 177:
32515fac8b10Smrg
32525fac8b10Smrg/* Line 1455 of yacc.c  */
3253f46a6179Smrg#line 761 "xkbparse.y"
3254f46a6179Smrg    { (yyval.ival)= scanInt; }
3255f46a6179Smrg    break;
3256f46a6179Smrg
3257f46a6179Smrg  case 178:
32585fac8b10Smrg
32595fac8b10Smrg/* Line 1455 of yacc.c  */
3260f46a6179Smrg#line 764 "xkbparse.y"
3261f46a6179Smrg    { (yyval.str)= scanStr; scanStr= NULL; }
3262f46a6179Smrg    break;
3263f46a6179Smrg
3264f46a6179Smrg  case 179:
32655fac8b10Smrg
32665fac8b10Smrg/* Line 1455 of yacc.c  */
3267f46a6179Smrg#line 767 "xkbparse.y"
3268f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,scanStr,False); }
3269f46a6179Smrg    break;
3270f46a6179Smrg
3271f46a6179Smrg  case 180:
32725fac8b10Smrg
32735fac8b10Smrg/* Line 1455 of yacc.c  */
3274f46a6179Smrg#line 768 "xkbparse.y"
3275f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"default",False); }
3276f46a6179Smrg    break;
3277f46a6179Smrg
3278f46a6179Smrg  case 181:
32795fac8b10Smrg
32805fac8b10Smrg/* Line 1455 of yacc.c  */
3281f46a6179Smrg#line 771 "xkbparse.y"
3282f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,scanStr,False); }
3283f46a6179Smrg    break;
3284f46a6179Smrg
3285f46a6179Smrg  case 182:
32865fac8b10Smrg
32875fac8b10Smrg/* Line 1455 of yacc.c  */
3288f46a6179Smrg#line 774 "xkbparse.y"
3289f46a6179Smrg    { (yyval.str)= (yyvsp[(1) - (1)].str); }
3290f46a6179Smrg    break;
3291f46a6179Smrg
3292f46a6179Smrg  case 183:
32935fac8b10Smrg
32945fac8b10Smrg/* Line 1455 of yacc.c  */
3295f46a6179Smrg#line 775 "xkbparse.y"
3296f46a6179Smrg    { (yyval.str)= NULL; }
3297f46a6179Smrg    break;
3298f46a6179Smrg
3299f46a6179Smrg  case 184:
33005fac8b10Smrg
33015fac8b10Smrg/* Line 1455 of yacc.c  */
3302f46a6179Smrg#line 778 "xkbparse.y"
3303f46a6179Smrg    { (yyval.str)= scanStr; scanStr= NULL; }
3304f46a6179Smrg    break;
3305f46a6179Smrg
3306f46a6179Smrg
33075fac8b10Smrg
33085fac8b10Smrg/* Line 1455 of yacc.c  */
33095fac8b10Smrg#line 3310 "xkbparse.c"
3310f46a6179Smrg      default: break;
3311f46a6179Smrg    }
3312f46a6179Smrg  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3313f46a6179Smrg
3314f46a6179Smrg  YYPOPSTACK (yylen);
3315f46a6179Smrg  yylen = 0;
3316f46a6179Smrg  YY_STACK_PRINT (yyss, yyssp);
3317f46a6179Smrg
3318f46a6179Smrg  *++yyvsp = yyval;
3319f46a6179Smrg
3320f46a6179Smrg  /* Now `shift' the result of the reduction.  Determine what state
3321f46a6179Smrg     that goes to, based on the state we popped back to and the rule
3322f46a6179Smrg     number reduced by.  */
3323f46a6179Smrg
3324f46a6179Smrg  yyn = yyr1[yyn];
3325f46a6179Smrg
3326f46a6179Smrg  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3327f46a6179Smrg  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3328f46a6179Smrg    yystate = yytable[yystate];
3329f46a6179Smrg  else
3330f46a6179Smrg    yystate = yydefgoto[yyn - YYNTOKENS];
3331f46a6179Smrg
3332f46a6179Smrg  goto yynewstate;
3333f46a6179Smrg
3334f46a6179Smrg
3335f46a6179Smrg/*------------------------------------.
3336f46a6179Smrg| yyerrlab -- here on detecting error |
3337f46a6179Smrg`------------------------------------*/
3338f46a6179Smrgyyerrlab:
3339f46a6179Smrg  /* If not already recovering from an error, report this error.  */
3340f46a6179Smrg  if (!yyerrstatus)
3341f46a6179Smrg    {
3342f46a6179Smrg      ++yynerrs;
3343f46a6179Smrg#if ! YYERROR_VERBOSE
3344f46a6179Smrg      yyerror (YY_("syntax error"));
3345f46a6179Smrg#else
3346f46a6179Smrg      {
3347f46a6179Smrg	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
3348f46a6179Smrg	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
3349f46a6179Smrg	  {
3350f46a6179Smrg	    YYSIZE_T yyalloc = 2 * yysize;
3351f46a6179Smrg	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
3352f46a6179Smrg	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
3353f46a6179Smrg	    if (yymsg != yymsgbuf)
3354f46a6179Smrg	      YYSTACK_FREE (yymsg);
3355f46a6179Smrg	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
3356f46a6179Smrg	    if (yymsg)
3357f46a6179Smrg	      yymsg_alloc = yyalloc;
3358f46a6179Smrg	    else
3359f46a6179Smrg	      {
3360f46a6179Smrg		yymsg = yymsgbuf;
3361f46a6179Smrg		yymsg_alloc = sizeof yymsgbuf;
3362f46a6179Smrg	      }
3363f46a6179Smrg	  }
3364f46a6179Smrg
3365f46a6179Smrg	if (0 < yysize && yysize <= yymsg_alloc)
3366f46a6179Smrg	  {
3367f46a6179Smrg	    (void) yysyntax_error (yymsg, yystate, yychar);
3368f46a6179Smrg	    yyerror (yymsg);
3369f46a6179Smrg	  }
3370f46a6179Smrg	else
3371f46a6179Smrg	  {
3372f46a6179Smrg	    yyerror (YY_("syntax error"));
3373f46a6179Smrg	    if (yysize != 0)
3374f46a6179Smrg	      goto yyexhaustedlab;
3375f46a6179Smrg	  }
3376f46a6179Smrg      }
3377f46a6179Smrg#endif
3378f46a6179Smrg    }
3379f46a6179Smrg
3380f46a6179Smrg
3381f46a6179Smrg
3382f46a6179Smrg  if (yyerrstatus == 3)
3383f46a6179Smrg    {
33845fac8b10Smrg      /* If just tried and failed to reuse lookahead token after an
3385f46a6179Smrg	 error, discard it.  */
3386f46a6179Smrg
3387f46a6179Smrg      if (yychar <= YYEOF)
3388f46a6179Smrg	{
3389f46a6179Smrg	  /* Return failure if at end of input.  */
3390f46a6179Smrg	  if (yychar == YYEOF)
3391f46a6179Smrg	    YYABORT;
3392f46a6179Smrg	}
3393f46a6179Smrg      else
3394f46a6179Smrg	{
3395f46a6179Smrg	  yydestruct ("Error: discarding",
3396f46a6179Smrg		      yytoken, &yylval);
3397f46a6179Smrg	  yychar = YYEMPTY;
3398f46a6179Smrg	}
3399f46a6179Smrg    }
3400f46a6179Smrg
34015fac8b10Smrg  /* Else will try to reuse lookahead token after shifting the error
3402f46a6179Smrg     token.  */
3403f46a6179Smrg  goto yyerrlab1;
3404f46a6179Smrg
3405f46a6179Smrg
3406f46a6179Smrg/*---------------------------------------------------.
3407f46a6179Smrg| yyerrorlab -- error raised explicitly by YYERROR.  |
3408f46a6179Smrg`---------------------------------------------------*/
3409f46a6179Smrgyyerrorlab:
3410f46a6179Smrg
3411f46a6179Smrg  /* Pacify compilers like GCC when the user code never invokes
3412f46a6179Smrg     YYERROR and the label yyerrorlab therefore never appears in user
3413f46a6179Smrg     code.  */
3414f46a6179Smrg  if (/*CONSTCOND*/ 0)
3415f46a6179Smrg     goto yyerrorlab;
3416f46a6179Smrg
3417f46a6179Smrg  /* Do not reclaim the symbols of the rule which action triggered
3418f46a6179Smrg     this YYERROR.  */
3419f46a6179Smrg  YYPOPSTACK (yylen);
3420f46a6179Smrg  yylen = 0;
3421f46a6179Smrg  YY_STACK_PRINT (yyss, yyssp);
3422f46a6179Smrg  yystate = *yyssp;
3423f46a6179Smrg  goto yyerrlab1;
3424f46a6179Smrg
3425f46a6179Smrg
3426f46a6179Smrg/*-------------------------------------------------------------.
3427f46a6179Smrg| yyerrlab1 -- common code for both syntax error and YYERROR.  |
3428f46a6179Smrg`-------------------------------------------------------------*/
3429f46a6179Smrgyyerrlab1:
3430f46a6179Smrg  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
3431f46a6179Smrg
3432f46a6179Smrg  for (;;)
3433f46a6179Smrg    {
3434f46a6179Smrg      yyn = yypact[yystate];
3435f46a6179Smrg      if (yyn != YYPACT_NINF)
3436f46a6179Smrg	{
3437f46a6179Smrg	  yyn += YYTERROR;
3438f46a6179Smrg	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3439f46a6179Smrg	    {
3440f46a6179Smrg	      yyn = yytable[yyn];
3441f46a6179Smrg	      if (0 < yyn)
3442f46a6179Smrg		break;
3443f46a6179Smrg	    }
3444f46a6179Smrg	}
3445f46a6179Smrg
3446f46a6179Smrg      /* Pop the current state because it cannot handle the error token.  */
3447f46a6179Smrg      if (yyssp == yyss)
3448f46a6179Smrg	YYABORT;
3449f46a6179Smrg
3450f46a6179Smrg
3451f46a6179Smrg      yydestruct ("Error: popping",
3452f46a6179Smrg		  yystos[yystate], yyvsp);
3453f46a6179Smrg      YYPOPSTACK (1);
3454f46a6179Smrg      yystate = *yyssp;
3455f46a6179Smrg      YY_STACK_PRINT (yyss, yyssp);
3456f46a6179Smrg    }
3457f46a6179Smrg
3458f46a6179Smrg  *++yyvsp = yylval;
3459f46a6179Smrg
3460f46a6179Smrg
3461f46a6179Smrg  /* Shift the error token.  */
3462f46a6179Smrg  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3463f46a6179Smrg
3464f46a6179Smrg  yystate = yyn;
3465f46a6179Smrg  goto yynewstate;
3466f46a6179Smrg
3467f46a6179Smrg
3468f46a6179Smrg/*-------------------------------------.
3469f46a6179Smrg| yyacceptlab -- YYACCEPT comes here.  |
3470f46a6179Smrg`-------------------------------------*/
3471f46a6179Smrgyyacceptlab:
3472f46a6179Smrg  yyresult = 0;
3473f46a6179Smrg  goto yyreturn;
3474f46a6179Smrg
3475f46a6179Smrg/*-----------------------------------.
3476f46a6179Smrg| yyabortlab -- YYABORT comes here.  |
3477f46a6179Smrg`-----------------------------------*/
3478f46a6179Smrgyyabortlab:
3479f46a6179Smrg  yyresult = 1;
3480f46a6179Smrg  goto yyreturn;
3481f46a6179Smrg
34825fac8b10Smrg#if !defined(yyoverflow) || YYERROR_VERBOSE
3483f46a6179Smrg/*-------------------------------------------------.
3484f46a6179Smrg| yyexhaustedlab -- memory exhaustion comes here.  |
3485f46a6179Smrg`-------------------------------------------------*/
3486f46a6179Smrgyyexhaustedlab:
3487f46a6179Smrg  yyerror (YY_("memory exhausted"));
3488f46a6179Smrg  yyresult = 2;
3489f46a6179Smrg  /* Fall through.  */
3490f46a6179Smrg#endif
3491f46a6179Smrg
3492f46a6179Smrgyyreturn:
34935fac8b10Smrg  if (yychar != YYEMPTY)
3494f46a6179Smrg     yydestruct ("Cleanup: discarding lookahead",
3495f46a6179Smrg		 yytoken, &yylval);
3496f46a6179Smrg  /* Do not reclaim the symbols of the rule which action triggered
3497f46a6179Smrg     this YYABORT or YYACCEPT.  */
3498f46a6179Smrg  YYPOPSTACK (yylen);
3499f46a6179Smrg  YY_STACK_PRINT (yyss, yyssp);
3500f46a6179Smrg  while (yyssp != yyss)
3501f46a6179Smrg    {
3502f46a6179Smrg      yydestruct ("Cleanup: popping",
3503f46a6179Smrg		  yystos[*yyssp], yyvsp);
3504f46a6179Smrg      YYPOPSTACK (1);
3505f46a6179Smrg    }
3506f46a6179Smrg#ifndef yyoverflow
3507f46a6179Smrg  if (yyss != yyssa)
3508f46a6179Smrg    YYSTACK_FREE (yyss);
3509f46a6179Smrg#endif
3510f46a6179Smrg#if YYERROR_VERBOSE
3511f46a6179Smrg  if (yymsg != yymsgbuf)
3512f46a6179Smrg    YYSTACK_FREE (yymsg);
3513f46a6179Smrg#endif
3514f46a6179Smrg  /* Make sure YYID is used.  */
3515f46a6179Smrg  return YYID (yyresult);
3516f46a6179Smrg}
3517f46a6179Smrg
3518f46a6179Smrg
35195fac8b10Smrg
35205fac8b10Smrg/* Line 1675 of yacc.c  */
3521f46a6179Smrg#line 780 "xkbparse.y"
3522f46a6179Smrg
3523f46a6179Smrgvoid
3524f46a6179Smrgyyerror(const char *s)
3525f46a6179Smrg{
3526f46a6179Smrg    if (warningLevel>0) {
3527f46a6179Smrg	(void)fprintf(stderr,"%s: line %d of %s\n",s,lineNum,
3528f46a6179Smrg					(scanFile?scanFile:"(unknown)"));
3529f46a6179Smrg	if ((scanStr)&&(warningLevel>3))
3530f46a6179Smrg	    (void)fprintf(stderr,"last scanned symbol is: %s\n",scanStr);
3531f46a6179Smrg    }
3532f46a6179Smrg    return;
3533f46a6179Smrg}
3534f46a6179Smrg
3535f46a6179Smrg
3536f46a6179Smrgint
3537f46a6179Smrgyywrap(void)
3538f46a6179Smrg{
3539f46a6179Smrg   return 1;
3540f46a6179Smrg}
3541f46a6179Smrg
3542f46a6179Smrg
3543