xkbparse.c revision f46a6179
1f46a6179Smrg/* A Bison parser, made by GNU Bison 2.3.  */
2f46a6179Smrg
3f46a6179Smrg/* Skeleton implementation for Bison's Yacc-like parsers in C
4f46a6179Smrg
5f46a6179Smrg   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6f46a6179Smrg   Free Software Foundation, Inc.
7f46a6179Smrg
8f46a6179Smrg   This program is free software; you can redistribute it and/or modify
9f46a6179Smrg   it under the terms of the GNU General Public License as published by
10f46a6179Smrg   the Free Software Foundation; either version 2, or (at your option)
11f46a6179Smrg   any later version.
12f46a6179Smrg
13f46a6179Smrg   This program is distributed in the hope that it will be useful,
14f46a6179Smrg   but WITHOUT ANY WARRANTY; without even the implied warranty of
15f46a6179Smrg   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16f46a6179Smrg   GNU General Public License for more details.
17f46a6179Smrg
18f46a6179Smrg   You should have received a copy of the GNU General Public License
19f46a6179Smrg   along with this program; if not, write to the Free Software
20f46a6179Smrg   Foundation, Inc., 51 Franklin Street, Fifth Floor,
21f46a6179Smrg   Boston, MA 02110-1301, USA.  */
22f46a6179Smrg
23f46a6179Smrg/* As a special exception, you may create a larger work that contains
24f46a6179Smrg   part or all of the Bison parser skeleton and distribute that work
25f46a6179Smrg   under terms of your choice, so long as that work isn't itself a
26f46a6179Smrg   parser generator using the skeleton or a modified version thereof
27f46a6179Smrg   as a parser skeleton.  Alternatively, if you modify or redistribute
28f46a6179Smrg   the parser skeleton itself, you may (at your option) remove this
29f46a6179Smrg   special exception, which will cause the skeleton and the resulting
30f46a6179Smrg   Bison output files to be licensed under the GNU General Public
31f46a6179Smrg   License without this special exception.
32f46a6179Smrg
33f46a6179Smrg   This special exception was added by the Free Software Foundation in
34f46a6179Smrg   version 2.2 of Bison.  */
35f46a6179Smrg
36f46a6179Smrg/* C LALR(1) parser skeleton written by Richard Stallman, by
37f46a6179Smrg   simplifying the original so-called "semantic" parser.  */
38f46a6179Smrg
39f46a6179Smrg/* All symbols defined below should begin with yy or YY, to avoid
40f46a6179Smrg   infringing on user name space.  This should be done even for local
41f46a6179Smrg   variables, as they might otherwise be expanded by user macros.
42f46a6179Smrg   There are some unavoidable exceptions within include files to
43f46a6179Smrg   define necessary library symbols; they are noted "INFRINGES ON
44f46a6179Smrg   USER NAME SPACE" below.  */
45f46a6179Smrg
46f46a6179Smrg/* Identify Bison output.  */
47f46a6179Smrg#define YYBISON 1
48f46a6179Smrg
49f46a6179Smrg/* Bison version.  */
50f46a6179Smrg#define YYBISON_VERSION "2.3"
51f46a6179Smrg
52f46a6179Smrg/* Skeleton name.  */
53f46a6179Smrg#define YYSKELETON_NAME "yacc.c"
54f46a6179Smrg
55f46a6179Smrg/* Pure parsers.  */
56f46a6179Smrg#define YYPURE 0
57f46a6179Smrg
58f46a6179Smrg/* Using locations.  */
59f46a6179Smrg#define YYLSP_NEEDED 0
60f46a6179Smrg
61f46a6179Smrg
62f46a6179Smrg
63f46a6179Smrg/* Tokens.  */
64f46a6179Smrg#ifndef YYTOKENTYPE
65f46a6179Smrg# define YYTOKENTYPE
66f46a6179Smrg   /* Put the tokens into the symbol table, so that GDB and other debuggers
67f46a6179Smrg      know about them.  */
68f46a6179Smrg   enum yytokentype {
69f46a6179Smrg     END_OF_FILE = 0,
70f46a6179Smrg     ERROR_TOK = 255,
71f46a6179Smrg     XKB_KEYMAP = 1,
72f46a6179Smrg     XKB_KEYCODES = 2,
73f46a6179Smrg     XKB_TYPES = 3,
74f46a6179Smrg     XKB_SYMBOLS = 4,
75f46a6179Smrg     XKB_COMPATMAP = 5,
76f46a6179Smrg     XKB_GEOMETRY = 6,
77f46a6179Smrg     XKB_SEMANTICS = 7,
78f46a6179Smrg     XKB_LAYOUT = 8,
79f46a6179Smrg     INCLUDE = 10,
80f46a6179Smrg     OVERRIDE = 11,
81f46a6179Smrg     AUGMENT = 12,
82f46a6179Smrg     REPLACE = 13,
83f46a6179Smrg     ALTERNATE = 14,
84f46a6179Smrg     VIRTUAL_MODS = 20,
85f46a6179Smrg     TYPE = 21,
86f46a6179Smrg     INTERPRET = 22,
87f46a6179Smrg     ACTION_TOK = 23,
88f46a6179Smrg     KEY = 24,
89f46a6179Smrg     ALIAS = 25,
90f46a6179Smrg     GROUP = 26,
91f46a6179Smrg     MODIFIER_MAP = 27,
92f46a6179Smrg     INDICATOR = 28,
93f46a6179Smrg     SHAPE = 29,
94f46a6179Smrg     KEYS = 30,
95f46a6179Smrg     ROW = 31,
96f46a6179Smrg     SECTION = 32,
97f46a6179Smrg     OVERLAY = 33,
98f46a6179Smrg     TEXT = 34,
99f46a6179Smrg     OUTLINE = 35,
100f46a6179Smrg     SOLID = 36,
101f46a6179Smrg     LOGO = 37,
102f46a6179Smrg     VIRTUAL = 38,
103f46a6179Smrg     EQUALS = 40,
104f46a6179Smrg     PLUS = 41,
105f46a6179Smrg     MINUS = 42,
106f46a6179Smrg     DIVIDE = 43,
107f46a6179Smrg     TIMES = 44,
108f46a6179Smrg     OBRACE = 45,
109f46a6179Smrg     CBRACE = 46,
110f46a6179Smrg     OPAREN = 47,
111f46a6179Smrg     CPAREN = 48,
112f46a6179Smrg     OBRACKET = 49,
113f46a6179Smrg     CBRACKET = 50,
114f46a6179Smrg     DOT = 51,
115f46a6179Smrg     COMMA = 52,
116f46a6179Smrg     SEMI = 53,
117f46a6179Smrg     EXCLAM = 54,
118f46a6179Smrg     INVERT = 55,
119f46a6179Smrg     STRING = 60,
120f46a6179Smrg     INTEGER = 61,
121f46a6179Smrg     FLOAT = 62,
122f46a6179Smrg     IDENT = 63,
123f46a6179Smrg     KEYNAME = 64,
124f46a6179Smrg     PARTIAL = 70,
125f46a6179Smrg     DEFAULT = 71,
126f46a6179Smrg     HIDDEN = 72,
127f46a6179Smrg     ALPHANUMERIC_KEYS = 73,
128f46a6179Smrg     MODIFIER_KEYS = 74,
129f46a6179Smrg     KEYPAD_KEYS = 75,
130f46a6179Smrg     FUNCTION_KEYS = 76,
131f46a6179Smrg     ALTERNATE_GROUP = 77
132f46a6179Smrg   };
133f46a6179Smrg#endif
134f46a6179Smrg/* Tokens.  */
135f46a6179Smrg#define END_OF_FILE 0
136f46a6179Smrg#define ERROR_TOK 255
137f46a6179Smrg#define XKB_KEYMAP 1
138f46a6179Smrg#define XKB_KEYCODES 2
139f46a6179Smrg#define XKB_TYPES 3
140f46a6179Smrg#define XKB_SYMBOLS 4
141f46a6179Smrg#define XKB_COMPATMAP 5
142f46a6179Smrg#define XKB_GEOMETRY 6
143f46a6179Smrg#define XKB_SEMANTICS 7
144f46a6179Smrg#define XKB_LAYOUT 8
145f46a6179Smrg#define INCLUDE 10
146f46a6179Smrg#define OVERRIDE 11
147f46a6179Smrg#define AUGMENT 12
148f46a6179Smrg#define REPLACE 13
149f46a6179Smrg#define ALTERNATE 14
150f46a6179Smrg#define VIRTUAL_MODS 20
151f46a6179Smrg#define TYPE 21
152f46a6179Smrg#define INTERPRET 22
153f46a6179Smrg#define ACTION_TOK 23
154f46a6179Smrg#define KEY 24
155f46a6179Smrg#define ALIAS 25
156f46a6179Smrg#define GROUP 26
157f46a6179Smrg#define MODIFIER_MAP 27
158f46a6179Smrg#define INDICATOR 28
159f46a6179Smrg#define SHAPE 29
160f46a6179Smrg#define KEYS 30
161f46a6179Smrg#define ROW 31
162f46a6179Smrg#define SECTION 32
163f46a6179Smrg#define OVERLAY 33
164f46a6179Smrg#define TEXT 34
165f46a6179Smrg#define OUTLINE 35
166f46a6179Smrg#define SOLID 36
167f46a6179Smrg#define LOGO 37
168f46a6179Smrg#define VIRTUAL 38
169f46a6179Smrg#define EQUALS 40
170f46a6179Smrg#define PLUS 41
171f46a6179Smrg#define MINUS 42
172f46a6179Smrg#define DIVIDE 43
173f46a6179Smrg#define TIMES 44
174f46a6179Smrg#define OBRACE 45
175f46a6179Smrg#define CBRACE 46
176f46a6179Smrg#define OPAREN 47
177f46a6179Smrg#define CPAREN 48
178f46a6179Smrg#define OBRACKET 49
179f46a6179Smrg#define CBRACKET 50
180f46a6179Smrg#define DOT 51
181f46a6179Smrg#define COMMA 52
182f46a6179Smrg#define SEMI 53
183f46a6179Smrg#define EXCLAM 54
184f46a6179Smrg#define INVERT 55
185f46a6179Smrg#define STRING 60
186f46a6179Smrg#define INTEGER 61
187f46a6179Smrg#define FLOAT 62
188f46a6179Smrg#define IDENT 63
189f46a6179Smrg#define KEYNAME 64
190f46a6179Smrg#define PARTIAL 70
191f46a6179Smrg#define DEFAULT 71
192f46a6179Smrg#define HIDDEN 72
193f46a6179Smrg#define ALPHANUMERIC_KEYS 73
194f46a6179Smrg#define MODIFIER_KEYS 74
195f46a6179Smrg#define KEYPAD_KEYS 75
196f46a6179Smrg#define FUNCTION_KEYS 76
197f46a6179Smrg#define ALTERNATE_GROUP 77
198f46a6179Smrg
199f46a6179Smrg
200f46a6179Smrg
201f46a6179Smrg
202f46a6179Smrg/* Copy the first part of user declarations.  */
203f46a6179Smrg#line 93 "xkbparse.y"
204f46a6179Smrg
205f46a6179Smrg#ifdef DEBUG
206f46a6179Smrg#define	YYDEBUG 1
207f46a6179Smrg#endif
208f46a6179Smrg#define	DEBUG_VAR parseDebug
209f46a6179Smrg#include "parseutils.h"
210f46a6179Smrg#include <X11/keysym.h>
211f46a6179Smrg#include <X11/extensions/XKBgeom.h>
212f46a6179Smrg#include <stdlib.h>
213f46a6179Smrg
214f46a6179Smrg
215f46a6179Smrg
216f46a6179Smrg
217f46a6179Smrg/* Enabling traces.  */
218f46a6179Smrg#ifndef YYDEBUG
219f46a6179Smrg# define YYDEBUG 0
220f46a6179Smrg#endif
221f46a6179Smrg
222f46a6179Smrg/* Enabling verbose error messages.  */
223f46a6179Smrg#ifdef YYERROR_VERBOSE
224f46a6179Smrg# undef YYERROR_VERBOSE
225f46a6179Smrg# define YYERROR_VERBOSE 1
226f46a6179Smrg#else
227f46a6179Smrg# define YYERROR_VERBOSE 0
228f46a6179Smrg#endif
229f46a6179Smrg
230f46a6179Smrg/* Enabling the token table.  */
231f46a6179Smrg#ifndef YYTOKEN_TABLE
232f46a6179Smrg# define YYTOKEN_TABLE 0
233f46a6179Smrg#endif
234f46a6179Smrg
235f46a6179Smrg#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
236f46a6179Smrgtypedef union YYSTYPE
237f46a6179Smrg#line 111 "xkbparse.y"
238f46a6179Smrg{
239f46a6179Smrg	int		 ival;
240f46a6179Smrg	unsigned	 uval;
241f46a6179Smrg	char		*str;
242f46a6179Smrg	Atom	 	sval;
243f46a6179Smrg	ParseCommon	*any;
244f46a6179Smrg	ExprDef		*expr;
245f46a6179Smrg	VarDef		*var;
246f46a6179Smrg	VModDef		*vmod;
247f46a6179Smrg	InterpDef	*interp;
248f46a6179Smrg	KeyTypeDef	*keyType;
249f46a6179Smrg	SymbolsDef	*syms;
250f46a6179Smrg	ModMapDef	*modMask;
251f46a6179Smrg	GroupCompatDef	*groupCompat;
252f46a6179Smrg	IndicatorMapDef	*ledMap;
253f46a6179Smrg	IndicatorNameDef *ledName;
254f46a6179Smrg	KeycodeDef	*keyName;
255f46a6179Smrg	KeyAliasDef	*keyAlias;
256f46a6179Smrg	ShapeDef	*shape;
257f46a6179Smrg	SectionDef	*section;
258f46a6179Smrg	RowDef		*row;
259f46a6179Smrg	KeyDef		*key;
260f46a6179Smrg	OverlayDef	*overlay;
261f46a6179Smrg	OverlayKeyDef	*olKey;
262f46a6179Smrg	OutlineDef	*outline;
263f46a6179Smrg	DoodadDef	*doodad;
264f46a6179Smrg	XkbFile		*file;
265f46a6179Smrg}
266f46a6179Smrg/* Line 187 of yacc.c.  */
267f46a6179Smrg#line 268 "xkbparse.c"
268f46a6179Smrg	YYSTYPE;
269f46a6179Smrg# define yystype YYSTYPE /* obsolescent; will be withdrawn */
270f46a6179Smrg# define YYSTYPE_IS_DECLARED 1
271f46a6179Smrg# define YYSTYPE_IS_TRIVIAL 1
272f46a6179Smrg#endif
273f46a6179Smrg
274f46a6179Smrg
275f46a6179Smrg
276f46a6179Smrg/* Copy the second part of user declarations.  */
277f46a6179Smrg
278f46a6179Smrg
279f46a6179Smrg/* Line 216 of yacc.c.  */
280f46a6179Smrg#line 281 "xkbparse.c"
281f46a6179Smrg
282f46a6179Smrg#ifdef short
283f46a6179Smrg# undef short
284f46a6179Smrg#endif
285f46a6179Smrg
286f46a6179Smrg#ifdef YYTYPE_UINT8
287f46a6179Smrgtypedef YYTYPE_UINT8 yytype_uint8;
288f46a6179Smrg#else
289f46a6179Smrgtypedef unsigned char yytype_uint8;
290f46a6179Smrg#endif
291f46a6179Smrg
292f46a6179Smrg#ifdef YYTYPE_INT8
293f46a6179Smrgtypedef YYTYPE_INT8 yytype_int8;
294f46a6179Smrg#elif (defined __STDC__ || defined __C99__FUNC__ \
295f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
296f46a6179Smrgtypedef signed char yytype_int8;
297f46a6179Smrg#else
298f46a6179Smrgtypedef short int yytype_int8;
299f46a6179Smrg#endif
300f46a6179Smrg
301f46a6179Smrg#ifdef YYTYPE_UINT16
302f46a6179Smrgtypedef YYTYPE_UINT16 yytype_uint16;
303f46a6179Smrg#else
304f46a6179Smrgtypedef unsigned short int yytype_uint16;
305f46a6179Smrg#endif
306f46a6179Smrg
307f46a6179Smrg#ifdef YYTYPE_INT16
308f46a6179Smrgtypedef YYTYPE_INT16 yytype_int16;
309f46a6179Smrg#else
310f46a6179Smrgtypedef short int yytype_int16;
311f46a6179Smrg#endif
312f46a6179Smrg
313f46a6179Smrg#ifndef YYSIZE_T
314f46a6179Smrg# ifdef __SIZE_TYPE__
315f46a6179Smrg#  define YYSIZE_T __SIZE_TYPE__
316f46a6179Smrg# elif defined size_t
317f46a6179Smrg#  define YYSIZE_T size_t
318f46a6179Smrg# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
319f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
320f46a6179Smrg#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
321f46a6179Smrg#  define YYSIZE_T size_t
322f46a6179Smrg# else
323f46a6179Smrg#  define YYSIZE_T unsigned int
324f46a6179Smrg# endif
325f46a6179Smrg#endif
326f46a6179Smrg
327f46a6179Smrg#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
328f46a6179Smrg
329f46a6179Smrg#ifndef YY_
330f46a6179Smrg# if YYENABLE_NLS
331f46a6179Smrg#  if ENABLE_NLS
332f46a6179Smrg#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
333f46a6179Smrg#   define YY_(msgid) dgettext ("bison-runtime", msgid)
334f46a6179Smrg#  endif
335f46a6179Smrg# endif
336f46a6179Smrg# ifndef YY_
337f46a6179Smrg#  define YY_(msgid) msgid
338f46a6179Smrg# endif
339f46a6179Smrg#endif
340f46a6179Smrg
341f46a6179Smrg/* Suppress unused-variable warnings by "using" E.  */
342f46a6179Smrg#if ! defined lint || defined __GNUC__
343f46a6179Smrg# define YYUSE(e) ((void) (e))
344f46a6179Smrg#else
345f46a6179Smrg# define YYUSE(e) /* empty */
346f46a6179Smrg#endif
347f46a6179Smrg
348f46a6179Smrg/* Identity function, used to suppress warnings about constant conditions.  */
349f46a6179Smrg#ifndef lint
350f46a6179Smrg# define YYID(n) (n)
351f46a6179Smrg#else
352f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
353f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
354f46a6179Smrgstatic int
355f46a6179SmrgYYID (int i)
356f46a6179Smrg#else
357f46a6179Smrgstatic int
358f46a6179SmrgYYID (i)
359f46a6179Smrg    int i;
360f46a6179Smrg#endif
361f46a6179Smrg{
362f46a6179Smrg  return i;
363f46a6179Smrg}
364f46a6179Smrg#endif
365f46a6179Smrg
366f46a6179Smrg#if ! defined yyoverflow || YYERROR_VERBOSE
367f46a6179Smrg
368f46a6179Smrg/* The parser invokes alloca or malloc; define the necessary symbols.  */
369f46a6179Smrg
370f46a6179Smrg# ifdef YYSTACK_USE_ALLOCA
371f46a6179Smrg#  if YYSTACK_USE_ALLOCA
372f46a6179Smrg#   ifdef __GNUC__
373f46a6179Smrg#    define YYSTACK_ALLOC __builtin_alloca
374f46a6179Smrg#   elif defined __BUILTIN_VA_ARG_INCR
375f46a6179Smrg#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
376f46a6179Smrg#   elif defined _AIX
377f46a6179Smrg#    define YYSTACK_ALLOC __alloca
378f46a6179Smrg#   elif defined _MSC_VER
379f46a6179Smrg#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
380f46a6179Smrg#    define alloca _alloca
381f46a6179Smrg#   else
382f46a6179Smrg#    define YYSTACK_ALLOC alloca
383f46a6179Smrg#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
384f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
385f46a6179Smrg#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
386f46a6179Smrg#     ifndef _STDLIB_H
387f46a6179Smrg#      define _STDLIB_H 1
388f46a6179Smrg#     endif
389f46a6179Smrg#    endif
390f46a6179Smrg#   endif
391f46a6179Smrg#  endif
392f46a6179Smrg# endif
393f46a6179Smrg
394f46a6179Smrg# ifdef YYSTACK_ALLOC
395f46a6179Smrg   /* Pacify GCC's `empty if-body' warning.  */
396f46a6179Smrg#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
397f46a6179Smrg#  ifndef YYSTACK_ALLOC_MAXIMUM
398f46a6179Smrg    /* The OS might guarantee only one guard page at the bottom of the stack,
399f46a6179Smrg       and a page size can be as small as 4096 bytes.  So we cannot safely
400f46a6179Smrg       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
401f46a6179Smrg       to allow for a few compiler-allocated temporary stack slots.  */
402f46a6179Smrg#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
403f46a6179Smrg#  endif
404f46a6179Smrg# else
405f46a6179Smrg#  define YYSTACK_ALLOC YYMALLOC
406f46a6179Smrg#  define YYSTACK_FREE YYFREE
407f46a6179Smrg#  ifndef YYSTACK_ALLOC_MAXIMUM
408f46a6179Smrg#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
409f46a6179Smrg#  endif
410f46a6179Smrg#  if (defined __cplusplus && ! defined _STDLIB_H \
411f46a6179Smrg       && ! ((defined YYMALLOC || defined malloc) \
412f46a6179Smrg	     && (defined YYFREE || defined free)))
413f46a6179Smrg#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
414f46a6179Smrg#   ifndef _STDLIB_H
415f46a6179Smrg#    define _STDLIB_H 1
416f46a6179Smrg#   endif
417f46a6179Smrg#  endif
418f46a6179Smrg#  ifndef YYMALLOC
419f46a6179Smrg#   define YYMALLOC malloc
420f46a6179Smrg#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
421f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
422f46a6179Smrgvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
423f46a6179Smrg#   endif
424f46a6179Smrg#  endif
425f46a6179Smrg#  ifndef YYFREE
426f46a6179Smrg#   define YYFREE free
427f46a6179Smrg#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
428f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
429f46a6179Smrgvoid free (void *); /* INFRINGES ON USER NAME SPACE */
430f46a6179Smrg#   endif
431f46a6179Smrg#  endif
432f46a6179Smrg# endif
433f46a6179Smrg#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
434f46a6179Smrg
435f46a6179Smrg
436f46a6179Smrg#if (! defined yyoverflow \
437f46a6179Smrg     && (! defined __cplusplus \
438f46a6179Smrg	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
439f46a6179Smrg
440f46a6179Smrg/* A type that is properly aligned for any stack member.  */
441f46a6179Smrgunion yyalloc
442f46a6179Smrg{
443f46a6179Smrg  yytype_int16 yyss;
444f46a6179Smrg  YYSTYPE yyvs;
445f46a6179Smrg  };
446f46a6179Smrg
447f46a6179Smrg/* The size of the maximum gap between one aligned stack and the next.  */
448f46a6179Smrg# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
449f46a6179Smrg
450f46a6179Smrg/* The size of an array large to enough to hold all stacks, each with
451f46a6179Smrg   N elements.  */
452f46a6179Smrg# define YYSTACK_BYTES(N) \
453f46a6179Smrg     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
454f46a6179Smrg      + YYSTACK_GAP_MAXIMUM)
455f46a6179Smrg
456f46a6179Smrg/* Copy COUNT objects from FROM to TO.  The source and destination do
457f46a6179Smrg   not overlap.  */
458f46a6179Smrg# ifndef YYCOPY
459f46a6179Smrg#  if defined __GNUC__ && 1 < __GNUC__
460f46a6179Smrg#   define YYCOPY(To, From, Count) \
461f46a6179Smrg      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
462f46a6179Smrg#  else
463f46a6179Smrg#   define YYCOPY(To, From, Count)		\
464f46a6179Smrg      do					\
465f46a6179Smrg	{					\
466f46a6179Smrg	  YYSIZE_T yyi;				\
467f46a6179Smrg	  for (yyi = 0; yyi < (Count); yyi++)	\
468f46a6179Smrg	    (To)[yyi] = (From)[yyi];		\
469f46a6179Smrg	}					\
470f46a6179Smrg      while (YYID (0))
471f46a6179Smrg#  endif
472f46a6179Smrg# endif
473f46a6179Smrg
474f46a6179Smrg/* Relocate STACK from its old location to the new one.  The
475f46a6179Smrg   local variables YYSIZE and YYSTACKSIZE give the old and new number of
476f46a6179Smrg   elements in the stack, and YYPTR gives the new location of the
477f46a6179Smrg   stack.  Advance YYPTR to a properly aligned location for the next
478f46a6179Smrg   stack.  */
479f46a6179Smrg# define YYSTACK_RELOCATE(Stack)					\
480f46a6179Smrg    do									\
481f46a6179Smrg      {									\
482f46a6179Smrg	YYSIZE_T yynewbytes;						\
483f46a6179Smrg	YYCOPY (&yyptr->Stack, Stack, yysize);				\
484f46a6179Smrg	Stack = &yyptr->Stack;						\
485f46a6179Smrg	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
486f46a6179Smrg	yyptr += yynewbytes / sizeof (*yyptr);				\
487f46a6179Smrg      }									\
488f46a6179Smrg    while (YYID (0))
489f46a6179Smrg
490f46a6179Smrg#endif
491f46a6179Smrg
492f46a6179Smrg/* YYFINAL -- State number of the termination state.  */
493f46a6179Smrg#define YYFINAL  18
494f46a6179Smrg/* YYLAST -- Last index in YYTABLE.  */
495f46a6179Smrg#define YYLAST   706
496f46a6179Smrg
497f46a6179Smrg/* YYNTOKENS -- Number of terminals.  */
498f46a6179Smrg#define YYNTOKENS  65
499f46a6179Smrg/* YYNNTS -- Number of nonterminals.  */
500f46a6179Smrg#define YYNNTS  73
501f46a6179Smrg/* YYNRULES -- Number of rules.  */
502f46a6179Smrg#define YYNRULES  184
503f46a6179Smrg/* YYNRULES -- Number of states.  */
504f46a6179Smrg#define YYNSTATES  335
505f46a6179Smrg
506f46a6179Smrg/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
507f46a6179Smrg#define YYUNDEFTOK  2
508f46a6179Smrg#define YYMAXUTOK   257
509f46a6179Smrg
510f46a6179Smrg#define YYTRANSLATE(YYX)						\
511f46a6179Smrg  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
512f46a6179Smrg
513f46a6179Smrg/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
514f46a6179Smrgstatic const yytype_uint8 yytranslate[] =
515f46a6179Smrg{
516f46a6179Smrg       0,     4,     5,     6,     7,     8,     9,    10,    11,     2,
517f46a6179Smrg      12,    13,    14,    15,    16,     2,     2,     2,     2,     2,
518f46a6179Smrg      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
519f46a6179Smrg      27,    28,    29,    30,    31,    32,    33,    34,    35,     2,
520f46a6179Smrg      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
521f46a6179Smrg      46,    47,    48,    49,    50,    51,     2,     2,     2,     2,
522f46a6179Smrg      52,    53,    54,    55,    56,     2,     2,     2,     2,     2,
523f46a6179Smrg      57,    58,    59,    60,    61,    62,    63,    64,     2,     2,
524f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
525f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
526f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
527f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
528f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
529f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
530f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
531f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
532f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
533f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
534f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
535f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
536f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
537f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
538f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
539f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
540f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
541f46a6179Smrg       2,     2,     2,     2,     2,     3,     1,     2
542f46a6179Smrg};
543f46a6179Smrg
544f46a6179Smrg#if YYDEBUG
545f46a6179Smrg/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
546f46a6179Smrg   YYRHS.  */
547f46a6179Smrgstatic const yytype_uint16 yyprhs[] =
548f46a6179Smrg{
549f46a6179Smrg       0,     0,     3,     5,     7,     9,    12,    14,    22,    24,
550f46a6179Smrg      26,    28,    31,    33,    41,    46,    48,    50,    52,    54,
551f46a6179Smrg      56,    58,    59,    62,    64,    66,    68,    70,    72,    74,
552f46a6179Smrg      76,    78,    80,    83,    84,    87,    90,    93,    96,    99,
553f46a6179Smrg     102,   105,   108,   111,   114,   117,   120,   123,   126,   129,
554f46a6179Smrg     134,   137,   141,   146,   152,   156,   160,   162,   164,   168,
555f46a6179Smrg     175,   179,   181,   184,   186,   193,   200,   204,   206,   207,
556f46a6179Smrg     211,   215,   217,   220,   222,   226,   230,   236,   243,   250,
557f46a6179Smrg     256,   263,   270,   277,   284,   287,   289,   295,   297,   299,
558f46a6179Smrg     301,   303,   306,   308,   314,   316,   320,   322,   324,   328,
559f46a6179Smrg     335,   339,   341,   345,   349,   351,   355,   361,   365,   369,
560f46a6179Smrg     371,   377,   384,   386,   388,   390,   392,   394,   396,   398,
561f46a6179Smrg     400,   402,   404,   406,   408,   410,   412,   414,   416,   418,
562f46a6179Smrg     420,   421,   423,   425,   427,   429,   431,   433,   434,   438,
563f46a6179Smrg     440,   444,   448,   452,   456,   460,   462,   465,   468,   471,
564f46a6179Smrg     474,   476,   481,   483,   487,   491,   493,   498,   500,   504,
565f46a6179Smrg     509,   516,   518,   520,   522,   524,   526,   527,   531,   533,
566f46a6179Smrg     535,   537,   539,   542,   544,   546,   548,   550,   552,   554,
567f46a6179Smrg     556,   558,   560,   562,   563
568f46a6179Smrg};
569f46a6179Smrg
570f46a6179Smrg/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
571f46a6179Smrgstatic const yytype_int16 yyrhs[] =
572f46a6179Smrg{
573f46a6179Smrg      66,     0,    -1,    67,    -1,    70,    -1,    72,    -1,    67,
574f46a6179Smrg      68,    -1,    68,    -1,    74,    69,   136,    41,    70,    42,
575f46a6179Smrg      49,    -1,     4,    -1,    10,    -1,    11,    -1,    70,    71,
576f46a6179Smrg      -1,    71,    -1,    74,    73,   136,    41,    77,    42,    49,
577f46a6179Smrg      -1,    74,    73,   136,    77,    -1,     5,    -1,     6,    -1,
578f46a6179Smrg       8,    -1,     7,    -1,     9,    -1,    75,    -1,    -1,    75,
579f46a6179Smrg      76,    -1,    76,    -1,    57,    -1,    58,    -1,    59,    -1,
580f46a6179Smrg      60,    -1,    61,    -1,    62,    -1,    63,    -1,    64,    -1,
581f46a6179Smrg      77,    78,    -1,    -1,   116,    79,    -1,   116,    82,    -1,
582f46a6179Smrg     116,    85,    -1,   116,    80,    -1,   116,    81,    -1,   116,
583f46a6179Smrg      88,    -1,   116,    89,    -1,   116,    94,    -1,   116,    93,
584f46a6179Smrg      -1,   116,    95,    -1,   116,    96,    -1,   116,    97,    -1,
585f46a6179Smrg     116,    98,    -1,   116,   112,    -1,   117,    52,    -1,   124,
586f46a6179Smrg      36,   120,    49,    -1,   134,    49,    -1,    50,   134,    49,
587f46a6179Smrg      -1,   133,    36,   120,    49,    -1,    22,   133,    36,   133,
588f46a6179Smrg      49,    -1,    17,    83,    49,    -1,    83,    48,    84,    -1,
589f46a6179Smrg      84,    -1,   134,    -1,   134,    36,   120,    -1,    19,    86,
590f46a6179Smrg      41,    87,    42,    49,    -1,   128,    37,   120,    -1,   128,
591f46a6179Smrg      -1,    87,    79,    -1,    79,    -1,    18,   135,    41,    87,
592f46a6179Smrg      42,    49,    -1,    21,   133,    41,    90,    42,    49,    -1,
593f46a6179Smrg      90,    48,    91,    -1,    91,    -1,    -1,   124,    36,   120,
594f46a6179Smrg      -1,   124,    36,    92,    -1,   134,    -1,    50,   134,    -1,
595f46a6179Smrg      92,    -1,    45,   126,    46,    -1,    45,   122,    46,    -1,
596f46a6179Smrg      23,   132,    36,   120,    49,    -1,    24,   134,    41,   119,
597f46a6179Smrg      42,    49,    -1,    25,   135,    41,    87,    42,    49,    -1,
598f46a6179Smrg      25,   132,    36,   120,    49,    -1,    35,    25,   132,    36,
599f46a6179Smrg     120,    49,    -1,    26,   135,    41,   108,    42,    49,    -1,
600f46a6179Smrg      26,   135,    41,   110,    42,    49,    -1,    29,   135,    41,
601f46a6179Smrg      99,    42,    49,    -1,    99,   100,    -1,   100,    -1,    28,
602f46a6179Smrg      41,   101,    42,    49,    -1,    79,    -1,   112,    -1,    95,
603f46a6179Smrg      -1,   105,    -1,   101,   102,    -1,   102,    -1,    27,    41,
604f46a6179Smrg     103,    42,    49,    -1,    79,    -1,   103,    48,   104,    -1,
605f46a6179Smrg     104,    -1,   133,    -1,    41,   119,    42,    -1,    30,   135,
606f46a6179Smrg      41,   106,    42,    49,    -1,   106,    48,   107,    -1,   107,
607f46a6179Smrg      -1,   133,    36,   133,    -1,   108,    48,   109,    -1,   109,
608f46a6179Smrg      -1,    41,   110,    42,    -1,   134,    36,    41,   110,    42,
609f46a6179Smrg      -1,   134,    36,   120,    -1,   110,    48,   111,    -1,   111,
610f46a6179Smrg      -1,    45,   129,    48,   129,    46,    -1,   113,   135,    41,
611f46a6179Smrg      87,    42,    49,    -1,    31,    -1,    32,    -1,    33,    -1,
612f46a6179Smrg      34,    -1,   134,    -1,   115,    -1,    20,    -1,    19,    -1,
613f46a6179Smrg      18,    -1,    21,    -1,    23,    -1,    24,    -1,    25,    -1,
614f46a6179Smrg      26,    -1,    28,    -1,    29,    -1,    31,    -1,   117,    -1,
615f46a6179Smrg      -1,    12,    -1,    14,    -1,    13,    -1,    15,    -1,    16,
616f46a6179Smrg      -1,   119,    -1,    -1,   119,    48,   120,    -1,   120,    -1,
617f46a6179Smrg     120,    39,   120,    -1,   120,    37,   120,    -1,   120,    38,
618f46a6179Smrg     120,    -1,   120,    40,   120,    -1,   124,    36,   120,    -1,
619f46a6179Smrg     121,    -1,    38,   121,    -1,    37,   121,    -1,    50,   121,
620f46a6179Smrg      -1,    51,   121,    -1,   124,    -1,   114,    43,   118,    44,
621f46a6179Smrg      -1,   125,    -1,    43,   120,    44,    -1,   122,    48,   123,
622f46a6179Smrg      -1,   123,    -1,   114,    43,   118,    44,    -1,   114,    -1,
623f46a6179Smrg     114,    47,   114,    -1,   114,    45,   120,    46,    -1,   114,
624f46a6179Smrg      47,   114,    45,   120,    46,    -1,   135,    -1,   132,    -1,
625f46a6179Smrg     131,    -1,   133,    -1,   127,    -1,    -1,   127,    48,   128,
626f46a6179Smrg      -1,   128,    -1,    55,    -1,    29,    -1,   132,    -1,    38,
627f46a6179Smrg     130,    -1,   130,    -1,    54,    -1,    53,    -1,    54,    -1,
628f46a6179Smrg      53,    -1,    56,    -1,    55,    -1,    58,    -1,    52,    -1,
629f46a6179Smrg     137,    -1,    -1,    52,    -1
630f46a6179Smrg};
631f46a6179Smrg
632f46a6179Smrg/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
633f46a6179Smrgstatic const yytype_uint16 yyrline[] =
634f46a6179Smrg{
635f46a6179Smrg       0,   169,   169,   171,   173,   177,   179,   183,   189,   190,
636f46a6179Smrg     191,   194,   196,   200,   206,   211,   212,   213,   214,   215,
637f46a6179Smrg     218,   219,   222,   223,   226,   227,   228,   229,   230,   231,
638f46a6179Smrg     232,   233,   236,   238,   241,   246,   251,   256,   261,   266,
639f46a6179Smrg     271,   276,   281,   286,   291,   296,   301,   306,   311,   323,
640f46a6179Smrg     325,   327,   331,   342,   352,   356,   358,   362,   364,   368,
641f46a6179Smrg     377,   379,   383,   385,   389,   395,   401,   403,   405,   408,
642f46a6179Smrg     410,   412,   414,   416,   420,   422,   426,   430,   434,   438,
643f46a6179Smrg     440,   444,   446,   454,   458,   460,   464,   466,   468,   470,
644f46a6179Smrg     472,   476,   478,   482,   484,   488,   490,   494,   496,   500,
645f46a6179Smrg     504,   509,   513,   517,   519,   523,   525,   527,   531,   533,
646f46a6179Smrg     537,   547,   551,   552,   553,   554,   557,   558,   561,   563,
647f46a6179Smrg     565,   567,   569,   571,   573,   575,   577,   579,   581,   585,
648f46a6179Smrg     586,   589,   590,   591,   592,   593,   596,   597,   600,   602,
649f46a6179Smrg     606,   608,   610,   612,   614,   616,   620,   622,   624,   626,
650f46a6179Smrg     628,   630,   632,   634,   638,   640,   644,   648,   655,   663,
651f46a6179Smrg     672,   683,   690,   697,   704,   715,   716,   719,   721,   725,
652f46a6179Smrg     739,   743,   750,   751,   754,   755,   758,   761,   764,   767,
653f46a6179Smrg     768,   771,   774,   775,   778
654f46a6179Smrg};
655f46a6179Smrg#endif
656f46a6179Smrg
657f46a6179Smrg#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
658f46a6179Smrg/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
659f46a6179Smrg   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
660f46a6179Smrgstatic const char *const yytname[] =
661f46a6179Smrg{
662f46a6179Smrg  "END_OF_FILE", "error", "$undefined", "ERROR_TOK", "XKB_KEYMAP",
663f46a6179Smrg  "XKB_KEYCODES", "XKB_TYPES", "XKB_SYMBOLS", "XKB_COMPATMAP",
664f46a6179Smrg  "XKB_GEOMETRY", "XKB_SEMANTICS", "XKB_LAYOUT", "INCLUDE", "OVERRIDE",
665f46a6179Smrg  "AUGMENT", "REPLACE", "ALTERNATE", "VIRTUAL_MODS", "TYPE", "INTERPRET",
666f46a6179Smrg  "ACTION_TOK", "KEY", "ALIAS", "GROUP", "MODIFIER_MAP", "INDICATOR",
667f46a6179Smrg  "SHAPE", "KEYS", "ROW", "SECTION", "OVERLAY", "TEXT", "OUTLINE", "SOLID",
668f46a6179Smrg  "LOGO", "VIRTUAL", "EQUALS", "PLUS", "MINUS", "DIVIDE", "TIMES",
669f46a6179Smrg  "OBRACE", "CBRACE", "OPAREN", "CPAREN", "OBRACKET", "CBRACKET", "DOT",
670f46a6179Smrg  "COMMA", "SEMI", "EXCLAM", "INVERT", "STRING", "INTEGER", "FLOAT",
671f46a6179Smrg  "IDENT", "KEYNAME", "PARTIAL", "DEFAULT", "HIDDEN", "ALPHANUMERIC_KEYS",
672f46a6179Smrg  "MODIFIER_KEYS", "KEYPAD_KEYS", "FUNCTION_KEYS", "ALTERNATE_GROUP",
673f46a6179Smrg  "$accept", "XkbFile", "XkbCompMapList", "XkbCompositeMap",
674f46a6179Smrg  "XkbCompositeType", "XkbMapConfigList", "XkbMapConfig", "XkbConfig",
675f46a6179Smrg  "FileType", "OptFlags", "Flags", "Flag", "DeclList", "Decl", "VarDecl",
676f46a6179Smrg  "KeyNameDecl", "KeyAliasDecl", "VModDecl", "VModDefList", "VModDef",
677f46a6179Smrg  "InterpretDecl", "InterpretMatch", "VarDeclList", "KeyTypeDecl",
678f46a6179Smrg  "SymbolsDecl", "SymbolsBody", "SymbolsVarDecl", "ArrayInit",
679f46a6179Smrg  "GroupCompatDecl", "ModMapDecl", "IndicatorMapDecl", "IndicatorNameDecl",
680f46a6179Smrg  "ShapeDecl", "SectionDecl", "SectionBody", "SectionBodyItem", "RowBody",
681f46a6179Smrg  "RowBodyItem", "Keys", "Key", "OverlayDecl", "OverlayKeyList",
682f46a6179Smrg  "OverlayKey", "OutlineList", "OutlineInList", "CoordList", "Coord",
683f46a6179Smrg  "DoodadDecl", "DoodadType", "FieldSpec", "Element", "OptMergeMode",
684f46a6179Smrg  "MergeMode", "OptExprList", "ExprList", "Expr", "Term", "ActionList",
685f46a6179Smrg  "Action", "Lhs", "Terminal", "OptKeySymList", "KeySymList", "KeySym",
686f46a6179Smrg  "SignedNumber", "Number", "Float", "Integer", "KeyName", "Ident",
687f46a6179Smrg  "String", "OptMapName", "MapName", 0
688f46a6179Smrg};
689f46a6179Smrg#endif
690f46a6179Smrg
691f46a6179Smrg# ifdef YYPRINT
692f46a6179Smrg/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
693f46a6179Smrg   token YYLEX-NUM.  */
694f46a6179Smrgstatic const yytype_uint16 yytoknum[] =
695f46a6179Smrg{
696f46a6179Smrg       0,   256,   257,   255,     1,     2,     3,     4,     5,     6,
697f46a6179Smrg       7,     8,    10,    11,    12,    13,    14,    20,    21,    22,
698f46a6179Smrg      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
699f46a6179Smrg      33,    34,    35,    36,    37,    38,    40,    41,    42,    43,
700f46a6179Smrg      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
701f46a6179Smrg      54,    55,    60,    61,    62,    63,    64,    70,    71,    72,
702f46a6179Smrg      73,    74,    75,    76,    77
703f46a6179Smrg};
704f46a6179Smrg# endif
705f46a6179Smrg
706f46a6179Smrg/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
707f46a6179Smrgstatic const yytype_uint8 yyr1[] =
708f46a6179Smrg{
709f46a6179Smrg       0,    65,    66,    66,    66,    67,    67,    68,    69,    69,
710f46a6179Smrg      69,    70,    70,    71,    72,    73,    73,    73,    73,    73,
711f46a6179Smrg      74,    74,    75,    75,    76,    76,    76,    76,    76,    76,
712f46a6179Smrg      76,    76,    77,    77,    78,    78,    78,    78,    78,    78,
713f46a6179Smrg      78,    78,    78,    78,    78,    78,    78,    78,    78,    79,
714f46a6179Smrg      79,    79,    80,    81,    82,    83,    83,    84,    84,    85,
715f46a6179Smrg      86,    86,    87,    87,    88,    89,    90,    90,    90,    91,
716f46a6179Smrg      91,    91,    91,    91,    92,    92,    93,    94,    95,    96,
717f46a6179Smrg      96,    97,    97,    98,    99,    99,   100,   100,   100,   100,
718f46a6179Smrg     100,   101,   101,   102,   102,   103,   103,   104,   104,   105,
719f46a6179Smrg     106,   106,   107,   108,   108,   109,   109,   109,   110,   110,
720f46a6179Smrg     111,   112,   113,   113,   113,   113,   114,   114,   115,   115,
721f46a6179Smrg     115,   115,   115,   115,   115,   115,   115,   115,   115,   116,
722f46a6179Smrg     116,   117,   117,   117,   117,   117,   118,   118,   119,   119,
723f46a6179Smrg     120,   120,   120,   120,   120,   120,   121,   121,   121,   121,
724f46a6179Smrg     121,   121,   121,   121,   122,   122,   123,   124,   124,   124,
725f46a6179Smrg     124,   125,   125,   125,   125,   126,   126,   127,   127,   128,
726f46a6179Smrg     128,   128,   129,   129,   130,   130,   131,   132,   133,   134,
727f46a6179Smrg     134,   135,   136,   136,   137
728f46a6179Smrg};
729f46a6179Smrg
730f46a6179Smrg/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
731f46a6179Smrgstatic const yytype_uint8 yyr2[] =
732f46a6179Smrg{
733f46a6179Smrg       0,     2,     1,     1,     1,     2,     1,     7,     1,     1,
734f46a6179Smrg       1,     2,     1,     7,     4,     1,     1,     1,     1,     1,
735f46a6179Smrg       1,     0,     2,     1,     1,     1,     1,     1,     1,     1,
736f46a6179Smrg       1,     1,     2,     0,     2,     2,     2,     2,     2,     2,
737f46a6179Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     4,
738f46a6179Smrg       2,     3,     4,     5,     3,     3,     1,     1,     3,     6,
739f46a6179Smrg       3,     1,     2,     1,     6,     6,     3,     1,     0,     3,
740f46a6179Smrg       3,     1,     2,     1,     3,     3,     5,     6,     6,     5,
741f46a6179Smrg       6,     6,     6,     6,     2,     1,     5,     1,     1,     1,
742f46a6179Smrg       1,     2,     1,     5,     1,     3,     1,     1,     3,     6,
743f46a6179Smrg       3,     1,     3,     3,     1,     3,     5,     3,     3,     1,
744f46a6179Smrg       5,     6,     1,     1,     1,     1,     1,     1,     1,     1,
745f46a6179Smrg       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
746f46a6179Smrg       0,     1,     1,     1,     1,     1,     1,     0,     3,     1,
747f46a6179Smrg       3,     3,     3,     3,     3,     1,     2,     2,     2,     2,
748f46a6179Smrg       1,     4,     1,     3,     3,     1,     4,     1,     3,     4,
749f46a6179Smrg       6,     1,     1,     1,     1,     1,     0,     3,     1,     1,
750f46a6179Smrg       1,     1,     2,     1,     1,     1,     1,     1,     1,     1,
751f46a6179Smrg       1,     1,     1,     0,     1
752f46a6179Smrg};
753f46a6179Smrg
754f46a6179Smrg/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
755f46a6179Smrg   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
756f46a6179Smrg   means the default is an error.  */
757f46a6179Smrgstatic const yytype_uint8 yydefact[] =
758f46a6179Smrg{
759f46a6179Smrg      21,    24,    25,    26,    27,    28,    29,    30,    31,     0,
760f46a6179Smrg      21,     6,    21,    12,     4,     0,    20,    23,     1,     5,
761f46a6179Smrg       0,    11,     0,     8,    15,    16,    18,    17,    19,     9,
762f46a6179Smrg      10,   183,   183,    22,   183,   184,     0,   182,    33,     0,
763f46a6179Smrg      21,    33,   130,    21,   130,   131,   133,   132,   134,   135,
764f46a6179Smrg      32,     0,   129,     0,     0,     0,   120,   119,   118,   121,
765f46a6179Smrg       0,   122,   123,   124,   125,   126,   127,   128,   113,   114,
766f46a6179Smrg     115,     0,     0,   179,   178,   180,    34,    37,    38,    35,
767f46a6179Smrg      36,    39,    40,    42,    41,    43,    44,    45,    46,    47,
768f46a6179Smrg       0,   157,   117,     0,     0,   116,    48,     7,    13,     0,
769f46a6179Smrg      56,    57,   181,     0,   170,   177,   169,     0,    61,   171,
770f46a6179Smrg       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
771f46a6179Smrg       0,     0,     0,     0,     0,    50,     0,    54,     0,     0,
772f46a6179Smrg       0,     0,    68,     0,     0,     0,     0,     0,     0,     0,
773f46a6179Smrg       0,    51,     0,   120,   119,   121,   122,   123,   124,   125,
774f46a6179Smrg     127,   128,     0,     0,     0,     0,     0,   176,   157,     0,
775f46a6179Smrg     145,   150,   152,   163,   162,   164,   116,   161,   158,     0,
776f46a6179Smrg       0,    55,    58,    63,     0,     0,    60,   166,     0,     0,
777f46a6179Smrg      67,    73,     0,   116,     0,     0,     0,   139,     0,     0,
778f46a6179Smrg       0,     0,     0,   104,     0,   109,     0,   124,   126,     0,
779f46a6179Smrg      87,    89,     0,    85,    90,    88,     0,     0,   147,   150,
780f46a6179Smrg     146,     0,   148,   149,   137,     0,     0,     0,     0,   159,
781f46a6179Smrg       0,     0,    49,    52,     0,    62,     0,   170,   169,     0,
782f46a6179Smrg       0,   155,     0,   165,   168,    72,     0,     0,     0,    53,
783f46a6179Smrg      76,     0,     0,    79,     0,     0,     0,   175,   174,     0,
784f46a6179Smrg     173,     0,     0,     0,     0,     0,     0,     0,     0,    84,
785f46a6179Smrg       0,     0,   153,     0,   136,   141,   142,   140,   143,   144,
786f46a6179Smrg       0,    64,    59,   137,    75,     0,    74,     0,    65,    66,
787f46a6179Smrg      70,    69,    77,   138,    78,   105,   172,     0,    81,   103,
788f46a6179Smrg      82,   108,     0,   107,     0,    94,     0,    92,     0,    83,
789f46a6179Smrg      80,   111,   151,   160,     0,   154,   167,     0,     0,     0,
790f46a6179Smrg       0,    91,     0,   101,     0,   156,   110,   106,     0,     0,
791f46a6179Smrg      96,    97,    86,     0,     0,     0,     0,     0,     0,    99,
792f46a6179Smrg     100,   102,    98,    93,    95
793f46a6179Smrg};
794f46a6179Smrg
795f46a6179Smrg/* YYDEFGOTO[NTERM-NUM].  */
796f46a6179Smrgstatic const yytype_int16 yydefgoto[] =
797f46a6179Smrg{
798f46a6179Smrg      -1,     9,    10,    11,    31,    12,    13,    14,    32,    22,
799f46a6179Smrg      16,    17,    42,    50,   173,    77,    78,    79,    99,   100,
800f46a6179Smrg      80,   107,   174,    81,    82,   179,   180,   181,    83,    84,
801f46a6179Smrg     201,    86,    87,    88,   202,   203,   296,   297,   319,   320,
802f46a6179Smrg     204,   312,   313,   192,   193,   194,   195,   205,    90,   158,
803f46a6179Smrg      92,    51,    52,   263,   264,   187,   160,   230,   231,   161,
804f46a6179Smrg     162,   232,   233,   108,   249,   250,   163,   164,   165,   166,
805f46a6179Smrg     167,    36,    37
806f46a6179Smrg};
807f46a6179Smrg
808f46a6179Smrg/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
809f46a6179Smrg   STATE-NUM.  */
810f46a6179Smrg#define YYPACT_NINF -188
811f46a6179Smrgstatic const yytype_int16 yypact[] =
812f46a6179Smrg{
813f46a6179Smrg     628,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,    12,
814f46a6179Smrg       4,  -188,    58,  -188,  -188,   695,   628,  -188,  -188,  -188,
815f46a6179Smrg     121,  -188,   408,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
816f46a6179Smrg    -188,    -9,    -9,  -188,    -9,  -188,    19,  -188,    45,    45,
817f46a6179Smrg     628,  -188,   174,   620,   137,  -188,  -188,  -188,  -188,  -188,
818f46a6179Smrg    -188,   317,    39,   -15,    50,     1,    59,   -18,  -188,    72,
819f46a6179Smrg      72,   106,     1,   -27,    59,  -188,    59,    62,  -188,  -188,
820f46a6179Smrg    -188,   117,     1,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
821f46a6179Smrg    -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
822f46a6179Smrg      59,    51,  -188,   125,   146,   134,  -188,  -188,  -188,   132,
823f46a6179Smrg    -188,   163,  -188,   168,  -188,  -188,  -188,   173,   179,  -188,
824f46a6179Smrg     178,   186,   190,   194,   206,   204,   208,   221,   106,   216,
825f46a6179Smrg     225,   265,   640,   265,   265,  -188,     1,  -188,   265,   599,
826f46a6179Smrg     599,   265,   470,    72,   265,   265,   265,   599,   -26,    21,
827f46a6179Smrg     239,  -188,   599,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
828f46a6179Smrg    -188,  -188,   265,   265,   265,   265,   265,  -188,   159,   232,
829f46a6179Smrg    -188,   240,  -188,  -188,  -188,  -188,  -188,  -188,   223,    98,
830f46a6179Smrg     156,  -188,   260,  -188,   485,   513,   260,   617,     1,    30,
831f46a6179Smrg    -188,  -188,   243,    32,   231,   192,    64,   260,   199,   528,
832f46a6179Smrg     236,    35,   127,  -188,   128,  -188,   251,    59,   270,    59,
833f46a6179Smrg    -188,  -188,   422,  -188,  -188,  -188,   265,   556,  -188,  -188,
834f46a6179Smrg    -188,   342,  -188,  -188,   265,   265,   265,   265,   265,  -188,
835f46a6179Smrg     265,   265,  -188,  -188,   263,  -188,   264,   249,   271,   281,
836f46a6179Smrg      61,  -188,   279,   278,  -188,  -188,   280,   470,   340,  -188,
837f46a6179Smrg    -188,   283,   265,  -188,   284,   129,    16,  -188,  -188,   282,
838f46a6179Smrg    -188,   298,   -34,   308,   236,   381,   576,   287,   321,  -188,
839f46a6179Smrg     215,   325,  -188,   332,   336,   158,   158,  -188,  -188,   260,
840f46a6179Smrg     316,  -188,  -188,   265,  -188,   640,  -188,   -18,  -188,  -188,
841f46a6179Smrg    -188,   260,  -188,   260,  -188,  -188,  -188,    35,  -188,  -188,
842f46a6179Smrg    -188,  -188,   236,   260,   346,  -188,   442,  -188,    72,  -188,
843f46a6179Smrg    -188,  -188,  -188,  -188,   344,  -188,  -188,   343,   143,   -28,
844f46a6179Smrg     348,  -188,   176,  -188,   367,  -188,  -188,  -188,   265,   198,
845f46a6179Smrg    -188,  -188,  -188,   359,    72,    72,   202,   362,   -28,  -188,
846f46a6179Smrg    -188,  -188,  -188,  -188,  -188
847f46a6179Smrg};
848f46a6179Smrg
849f46a6179Smrg/* YYPGOTO[NTERM-NUM].  */
850f46a6179Smrgstatic const yytype_int16 yypgoto[] =
851f46a6179Smrg{
852f46a6179Smrg    -188,  -188,  -188,   410,  -188,   383,    -7,  -188,   399,    38,
853f46a6179Smrg    -188,   409,   385,  -188,   -35,  -188,  -188,  -188,  -188,   301,
854f46a6179Smrg    -188,  -188,   -47,  -188,  -188,  -188,   191,   200,  -188,  -188,
855f46a6179Smrg     378,  -188,  -188,  -188,  -188,   228,  -188,   148,  -188,   130,
856f46a6179Smrg    -188,  -188,   133,  -188,   197,  -187,   205,   423,  -188,    26,
857f46a6179Smrg    -188,  -188,  -188,   203,  -134,    89,   104,  -188,   207,   -29,
858f46a6179Smrg    -188,  -188,  -188,  -175,   188,   233,  -188,   -43,   -51,   -45,
859f46a6179Smrg     -33,   109,  -188
860f46a6179Smrg};
861f46a6179Smrg
862f46a6179Smrg/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
863f46a6179Smrg   positive, shift that token.  If negative, reduce the rule which
864f46a6179Smrg   number is the opposite.  If zero, do what YYDEFACT says.
865f46a6179Smrg   If YYTABLE_NINF, syntax error.  */
866f46a6179Smrg#define YYTABLE_NINF -180
867f46a6179Smrgstatic const yytype_int16 yytable[] =
868f46a6179Smrg{
869f46a6179Smrg      94,   186,   234,   245,    -2,    21,    95,   190,   110,   111,
870f46a6179Smrg     101,   104,    18,   318,   109,   190,    76,   113,   112,   191,
871f46a6179Smrg     114,    73,    93,   103,    75,   102,   105,   119,    74,    73,
872f46a6179Smrg     115,   116,    75,   117,    97,   105,    21,   106,    15,   143,
873f46a6179Smrg     144,    58,   145,    35,   146,   147,   197,   149,    20,   198,
874f46a6179Smrg     150,   199,    67,    68,    69,    70,    73,   120,    -3,    75,
875f46a6179Smrg      40,     1,     2,     3,     4,     5,     6,     7,     8,   247,
876f46a6179Smrg     248,    72,   236,   246,   -71,   140,    73,    91,   237,    75,
877f46a6179Smrg     -71,   101,   184,   175,    95,    95,    41,   183,   247,   248,
878f46a6179Smrg     189,    96,    95,   196,    95,   207,   121,    95,   122,    98,
879f46a6179Smrg      93,    93,   306,   182,   200,   308,   241,   274,    93,   275,
880f46a6179Smrg      93,   102,   242,    93,  -112,     1,     2,     3,     4,     5,
881f46a6179Smrg       6,     7,     8,   209,   209,    23,   209,   209,    74,    95,
882f46a6179Smrg      95,    29,    30,   235,   109,   215,   216,   217,   218,   225,
883f46a6179Smrg     225,    38,   118,    39,    95,    93,    93,   222,   168,    45,
884f46a6179Smrg      46,    47,    48,    49,   225,    91,    91,    95,    91,   105,
885f46a6179Smrg      93,   123,    95,    91,   115,    91,   257,   200,    91,   251,
886f46a6179Smrg     253,   285,   225,    93,   -14,   252,   254,   254,    93,    54,
887f46a6179Smrg     126,   127,   124,   125,   326,   317,    45,    46,    47,    48,
888f46a6179Smrg      49,   254,   183,   215,   216,   217,   218,   217,   218,   128,
889f46a6179Smrg      91,    91,   214,   229,   121,   223,   122,   196,   182,   129,
890f46a6179Smrg     159,    95,   169,   170,   130,    91,   131,   172,   323,   132,
891f46a6179Smrg     176,   295,   133,   185,   324,   188,   134,    93,    91,   215,
892f46a6179Smrg     216,   217,   218,    91,   109,   135,   215,   216,   217,   218,
893f46a6179Smrg     327,   240,   136,   211,   332,   137,   328,   314,   243,   138,
894f46a6179Smrg     242,    95,   215,   216,   217,   218,   208,   210,   321,   212,
895f46a6179Smrg     213,   295,   139,    91,   300,   141,   142,    93,   221,   215,
896f46a6179Smrg     216,   217,   218,   314,   331,   206,   220,   321,   219,   238,
897f46a6179Smrg     239,   191,    91,   143,   144,    58,   145,   255,   146,   147,
898f46a6179Smrg     148,   149,  -127,    65,   150,   260,   151,   215,   216,   217,
899f46a6179Smrg     218,   229,   152,   153,   265,   266,   267,   268,   154,   269,
900f46a6179Smrg     270,   256,   271,   272,  -179,   155,   156,   102,   105,   157,
901f46a6179Smrg      73,    74,    91,    75,   273,   276,   277,   281,   298,   278,
902f46a6179Smrg     287,   283,   282,   284,    55,    56,    57,    58,    59,    60,
903f46a6179Smrg      61,    62,    63,    64,   293,    65,    66,   288,    67,    68,
904f46a6179Smrg      69,    70,    71,   215,   216,   217,   218,   290,   143,   144,
905f46a6179Smrg      58,   145,   303,   146,   147,   148,   149,    72,    65,   150,
906f46a6179Smrg     299,   151,    73,    74,   301,    75,   302,   152,   153,   215,
907f46a6179Smrg     216,   217,   218,   154,   242,   177,   262,   309,   315,   316,
908f46a6179Smrg     155,   156,   102,   105,   157,    73,    74,   322,    75,   143,
909f46a6179Smrg     144,    58,   145,   325,   146,   147,   148,   149,   329,    65,
910f46a6179Smrg     150,   333,   151,    24,    25,    26,    27,    28,   152,   153,
911f46a6179Smrg      19,    34,   292,    43,   154,    33,    44,   171,   279,    85,
912f46a6179Smrg     259,   155,   156,   102,   105,   157,    73,    74,   280,    75,
913f46a6179Smrg     143,   144,    58,   145,   311,   146,   147,   197,   149,   289,
914f46a6179Smrg     198,   150,   199,    67,    68,    69,    70,   330,   334,   291,
915f46a6179Smrg     143,   144,    58,   145,   258,   146,   147,   148,   149,   294,
916f46a6179Smrg      65,   150,    72,   151,    89,   307,   304,    73,     0,   286,
917f46a6179Smrg      75,     0,   305,     0,   310,     0,     0,     0,   143,   144,
918f46a6179Smrg      58,   145,    72,   146,   147,   148,   149,    73,    65,   150,
919f46a6179Smrg      75,   151,     0,   143,   144,    58,   145,     0,   146,   147,
920f46a6179Smrg     148,   149,     0,    65,   150,   177,   151,     0,     0,     0,
921f46a6179Smrg     178,     0,     0,     0,     0,    73,     0,   224,    75,     0,
922f46a6179Smrg       0,   143,   144,    58,   145,    72,   146,   147,   148,   149,
923f46a6179Smrg      73,    65,   150,    75,   151,     0,   143,   144,    58,   145,
924f46a6179Smrg       0,   146,   147,   148,   149,   226,    65,   150,     0,   151,
925f46a6179Smrg       0,     0,     0,    72,     0,     0,     0,     0,    73,     0,
926f46a6179Smrg     244,    75,     0,     0,   143,   144,    58,   145,    72,   146,
927f46a6179Smrg     147,   148,   149,    73,    65,   150,    75,   151,     0,     0,
928f46a6179Smrg       0,     0,     0,     0,   143,   144,    58,   145,   261,   146,
929f46a6179Smrg     147,   148,   149,   294,    65,   150,    72,   151,     0,     0,
930f46a6179Smrg       0,    73,     0,     0,    75,     0,     0,   143,   144,    58,
931f46a6179Smrg     145,     0,   146,   147,   148,   149,    72,    65,   150,     0,
932f46a6179Smrg     151,    73,     0,     0,    75,   143,   144,    58,   145,     0,
933f46a6179Smrg     146,   147,   148,   149,     0,    65,   227,     0,   151,    72,
934f46a6179Smrg       0,     0,     0,     0,    73,     0,     0,    75,   143,   144,
935f46a6179Smrg      58,   145,    53,   146,   147,   148,   149,     0,    65,   150,
936f46a6179Smrg     105,   151,   228,     0,     0,    75,     0,     1,     2,     3,
937f46a6179Smrg       4,     5,     6,     7,     8,     1,     2,     3,     4,     5,
938f46a6179Smrg       6,     7,     8,     0,     0,    73,     0,     0,    75,    23,
939f46a6179Smrg      24,    25,    26,    27,    28,    29,    30
940f46a6179Smrg};
941f46a6179Smrg
942f46a6179Smrgstatic const yytype_int16 yycheck[] =
943f46a6179Smrg{
944f46a6179Smrg      51,   135,   177,   190,     0,    12,    51,    41,    59,    60,
945f46a6179Smrg      55,    29,     0,    41,    57,    41,    51,    62,    61,    45,
946f46a6179Smrg      63,    55,    51,    56,    58,    52,    53,    72,    56,    55,
947f46a6179Smrg      63,    64,    58,    66,    49,    53,    43,    55,     0,    18,
948f46a6179Smrg      19,    20,    21,    52,    23,    24,    25,    26,    10,    28,
949f46a6179Smrg      29,    30,    31,    32,    33,    34,    55,    90,     0,    58,
950f46a6179Smrg      41,    57,    58,    59,    60,    61,    62,    63,    64,    53,
951f46a6179Smrg      54,    50,    42,    38,    42,   118,    55,    51,    48,    58,
952f46a6179Smrg      48,   126,   133,   130,   129,   130,    41,   132,    53,    54,
953f46a6179Smrg     137,    52,   137,   138,   139,   142,    45,   142,    47,    49,
954f46a6179Smrg     129,   130,   277,   132,   139,   292,    42,    46,   137,    48,
955f46a6179Smrg     139,    52,    48,   142,    52,    57,    58,    59,    60,    61,
956f46a6179Smrg      62,    63,    64,   152,   153,     4,   155,   156,    56,   174,
957f46a6179Smrg     175,    10,    11,   178,   177,    37,    38,    39,    40,   174,
958f46a6179Smrg     175,    32,    25,    34,   189,   174,   175,    49,   122,    12,
959f46a6179Smrg      13,    14,    15,    16,   189,   129,   130,   202,   132,    53,
960f46a6179Smrg     189,    36,   207,   137,   197,   139,   199,   202,   142,    42,
961f46a6179Smrg      42,    42,   207,   202,     0,    48,    48,    48,   207,    42,
962f46a6179Smrg      48,    49,    36,    49,   318,    42,    12,    13,    14,    15,
963f46a6179Smrg      16,    48,   237,    37,    38,    39,    40,    39,    40,    36,
964f46a6179Smrg     174,   175,    43,   177,    45,    49,    47,   252,   237,    41,
965f46a6179Smrg     121,   256,   123,   124,    41,   189,    37,   128,    42,    41,
966f46a6179Smrg     131,   256,    36,   134,    48,   136,    36,   256,   202,    37,
967f46a6179Smrg      38,    39,    40,   207,   277,    41,    37,    38,    39,    40,
968f46a6179Smrg      42,    49,    36,   154,    42,    41,    48,   298,    49,    41,
969f46a6179Smrg      48,   296,    37,    38,    39,    40,   152,   153,   309,   155,
970f46a6179Smrg     156,   296,    41,   237,    49,    49,    41,   296,    45,    37,
971f46a6179Smrg      38,    39,    40,   324,   325,    36,    36,   328,    46,    36,
972f46a6179Smrg      49,    45,   256,    18,    19,    20,    21,    36,    23,    24,
973f46a6179Smrg      25,    26,    43,    28,    29,   206,    31,    37,    38,    39,
974f46a6179Smrg      40,   275,    37,    38,   215,   216,   217,   218,    43,   220,
975f46a6179Smrg     221,    41,    49,    49,    43,    50,    51,    52,    53,    54,
976f46a6179Smrg      55,    56,   296,    58,    43,    46,    48,   238,    41,    49,
977f46a6179Smrg      48,   242,    49,    49,    17,    18,    19,    20,    21,    22,
978f46a6179Smrg      23,    24,    25,    26,   255,    28,    29,    49,    31,    32,
979f46a6179Smrg      33,    34,    35,    37,    38,    39,    40,    49,    18,    19,
980f46a6179Smrg      20,    21,    46,    23,    24,    25,    26,    50,    28,    29,
981f46a6179Smrg      49,    31,    55,    56,    49,    58,    44,    37,    38,    37,
982f46a6179Smrg      38,    39,    40,    43,    48,    45,    44,    41,    44,    46,
983f46a6179Smrg      50,    51,    52,    53,    54,    55,    56,    49,    58,    18,
984f46a6179Smrg      19,    20,    21,    36,    23,    24,    25,    26,    49,    28,
985f46a6179Smrg      29,    49,    31,     5,     6,     7,     8,     9,    37,    38,
986f46a6179Smrg      10,    22,    41,    40,    43,    16,    41,   126,   237,    51,
987f46a6179Smrg     202,    50,    51,    52,    53,    54,    55,    56,   238,    58,
988f46a6179Smrg      18,    19,    20,    21,   296,    23,    24,    25,    26,   252,
989f46a6179Smrg      28,    29,    30,    31,    32,    33,    34,   324,   328,   254,
990f46a6179Smrg      18,    19,    20,    21,    42,    23,    24,    25,    26,    27,
991f46a6179Smrg      28,    29,    50,    31,    51,   287,   273,    55,    -1,   246,
992f46a6179Smrg      58,    -1,   275,    -1,    42,    -1,    -1,    -1,    18,    19,
993f46a6179Smrg      20,    21,    50,    23,    24,    25,    26,    55,    28,    29,
994f46a6179Smrg      58,    31,    -1,    18,    19,    20,    21,    -1,    23,    24,
995f46a6179Smrg      25,    26,    -1,    28,    29,    45,    31,    -1,    -1,    -1,
996f46a6179Smrg      50,    -1,    -1,    -1,    -1,    55,    -1,    42,    58,    -1,
997f46a6179Smrg      -1,    18,    19,    20,    21,    50,    23,    24,    25,    26,
998f46a6179Smrg      55,    28,    29,    58,    31,    -1,    18,    19,    20,    21,
999f46a6179Smrg      -1,    23,    24,    25,    26,    42,    28,    29,    -1,    31,
1000f46a6179Smrg      -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    55,    -1,
1001f46a6179Smrg      42,    58,    -1,    -1,    18,    19,    20,    21,    50,    23,
1002f46a6179Smrg      24,    25,    26,    55,    28,    29,    58,    31,    -1,    -1,
1003f46a6179Smrg      -1,    -1,    -1,    -1,    18,    19,    20,    21,    42,    23,
1004f46a6179Smrg      24,    25,    26,    27,    28,    29,    50,    31,    -1,    -1,
1005f46a6179Smrg      -1,    55,    -1,    -1,    58,    -1,    -1,    18,    19,    20,
1006f46a6179Smrg      21,    -1,    23,    24,    25,    26,    50,    28,    29,    -1,
1007f46a6179Smrg      31,    55,    -1,    -1,    58,    18,    19,    20,    21,    -1,
1008f46a6179Smrg      23,    24,    25,    26,    -1,    28,    29,    -1,    31,    50,
1009f46a6179Smrg      -1,    -1,    -1,    -1,    55,    -1,    -1,    58,    18,    19,
1010f46a6179Smrg      20,    21,    42,    23,    24,    25,    26,    -1,    28,    29,
1011f46a6179Smrg      53,    31,    55,    -1,    -1,    58,    -1,    57,    58,    59,
1012f46a6179Smrg      60,    61,    62,    63,    64,    57,    58,    59,    60,    61,
1013f46a6179Smrg      62,    63,    64,    -1,    -1,    55,    -1,    -1,    58,     4,
1014f46a6179Smrg       5,     6,     7,     8,     9,    10,    11
1015f46a6179Smrg};
1016f46a6179Smrg
1017f46a6179Smrg/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1018f46a6179Smrg   symbol of state STATE-NUM.  */
1019f46a6179Smrgstatic const yytype_uint8 yystos[] =
1020f46a6179Smrg{
1021f46a6179Smrg       0,    57,    58,    59,    60,    61,    62,    63,    64,    66,
1022f46a6179Smrg      67,    68,    70,    71,    72,    74,    75,    76,     0,    68,
1023f46a6179Smrg      74,    71,    74,     4,     5,     6,     7,     8,     9,    10,
1024f46a6179Smrg      11,    69,    73,    76,    73,    52,   136,   137,   136,   136,
1025f46a6179Smrg      41,    41,    77,    70,    77,    12,    13,    14,    15,    16,
1026f46a6179Smrg      78,   116,   117,    42,    42,    17,    18,    19,    20,    21,
1027f46a6179Smrg      22,    23,    24,    25,    26,    28,    29,    31,    32,    33,
1028f46a6179Smrg      34,    35,    50,    55,    56,    58,    79,    80,    81,    82,
1029f46a6179Smrg      85,    88,    89,    93,    94,    95,    96,    97,    98,   112,
1030f46a6179Smrg     113,   114,   115,   124,   133,   134,    52,    49,    49,    83,
1031f46a6179Smrg      84,   134,    52,   135,    29,    53,    55,    86,   128,   132,
1032f46a6179Smrg     133,   133,   132,   134,   132,   135,   135,   135,    25,   134,
1033f46a6179Smrg     135,    45,    47,    36,    36,    49,    48,    49,    36,    41,
1034f46a6179Smrg      41,    37,    41,    36,    36,    41,    36,    41,    41,    41,
1035f46a6179Smrg     132,    49,    41,    18,    19,    21,    23,    24,    25,    26,
1036f46a6179Smrg      29,    31,    37,    38,    43,    50,    51,    54,   114,   120,
1037f46a6179Smrg     121,   124,   125,   131,   132,   133,   134,   135,   114,   120,
1038f46a6179Smrg     120,    84,   120,    79,    87,    87,   120,    45,    50,    90,
1039f46a6179Smrg      91,    92,   124,   134,   133,   120,   119,   120,   120,    87,
1040f46a6179Smrg      41,    45,   108,   109,   110,   111,   134,    25,    28,    30,
1041f46a6179Smrg      79,    95,    99,   100,   105,   112,    36,    87,   121,   124,
1042f46a6179Smrg     121,   120,   121,   121,    43,    37,    38,    39,    40,    46,
1043f46a6179Smrg      36,    45,    49,    49,    42,    79,    42,    29,    55,   114,
1044f46a6179Smrg     122,   123,   126,   127,   128,   134,    42,    48,    36,    49,
1045f46a6179Smrg      49,    42,    48,    49,    42,   110,    38,    53,    54,   129,
1046f46a6179Smrg     130,    42,    48,    42,    48,    36,    41,   135,    42,   100,
1047f46a6179Smrg     120,    42,    44,   118,   119,   120,   120,   120,   120,   120,
1048f46a6179Smrg     120,    49,    49,    43,    46,    48,    46,    48,    49,    91,
1049f46a6179Smrg      92,   120,    49,   120,    49,    42,   130,    48,    49,   109,
1050f46a6179Smrg      49,   111,    41,   120,    27,    79,   101,   102,    41,    49,
1051f46a6179Smrg      49,    49,    44,    46,   118,   123,   128,   129,   110,    41,
1052f46a6179Smrg      42,   102,   106,   107,   133,    44,    46,    42,    41,   103,
1053f46a6179Smrg     104,   133,    49,    42,    48,    36,   119,    42,    48,    49,
1054f46a6179Smrg     107,   133,    42,    49,   104
1055f46a6179Smrg};
1056f46a6179Smrg
1057f46a6179Smrg#define yyerrok		(yyerrstatus = 0)
1058f46a6179Smrg#define yyclearin	(yychar = YYEMPTY)
1059f46a6179Smrg#define YYEMPTY		(-2)
1060f46a6179Smrg#define YYEOF		0
1061f46a6179Smrg
1062f46a6179Smrg#define YYACCEPT	goto yyacceptlab
1063f46a6179Smrg#define YYABORT		goto yyabortlab
1064f46a6179Smrg#define YYERROR		goto yyerrorlab
1065f46a6179Smrg
1066f46a6179Smrg
1067f46a6179Smrg/* Like YYERROR except do call yyerror.  This remains here temporarily
1068f46a6179Smrg   to ease the transition to the new meaning of YYERROR, for GCC.
1069f46a6179Smrg   Once GCC version 2 has supplanted version 1, this can go.  */
1070f46a6179Smrg
1071f46a6179Smrg#define YYFAIL		goto yyerrlab
1072f46a6179Smrg
1073f46a6179Smrg#define YYRECOVERING()  (!!yyerrstatus)
1074f46a6179Smrg
1075f46a6179Smrg#define YYBACKUP(Token, Value)					\
1076f46a6179Smrgdo								\
1077f46a6179Smrg  if (yychar == YYEMPTY && yylen == 1)				\
1078f46a6179Smrg    {								\
1079f46a6179Smrg      yychar = (Token);						\
1080f46a6179Smrg      yylval = (Value);						\
1081f46a6179Smrg      yytoken = YYTRANSLATE (yychar);				\
1082f46a6179Smrg      YYPOPSTACK (1);						\
1083f46a6179Smrg      goto yybackup;						\
1084f46a6179Smrg    }								\
1085f46a6179Smrg  else								\
1086f46a6179Smrg    {								\
1087f46a6179Smrg      yyerror (YY_("syntax error: cannot back up")); \
1088f46a6179Smrg      YYERROR;							\
1089f46a6179Smrg    }								\
1090f46a6179Smrgwhile (YYID (0))
1091f46a6179Smrg
1092f46a6179Smrg
1093f46a6179Smrg#define YYTERROR	1
1094f46a6179Smrg#define YYERRCODE	256
1095f46a6179Smrg
1096f46a6179Smrg
1097f46a6179Smrg/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1098f46a6179Smrg   If N is 0, then set CURRENT to the empty location which ends
1099f46a6179Smrg   the previous symbol: RHS[0] (always defined).  */
1100f46a6179Smrg
1101f46a6179Smrg#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1102f46a6179Smrg#ifndef YYLLOC_DEFAULT
1103f46a6179Smrg# define YYLLOC_DEFAULT(Current, Rhs, N)				\
1104f46a6179Smrg    do									\
1105f46a6179Smrg      if (YYID (N))                                                    \
1106f46a6179Smrg	{								\
1107f46a6179Smrg	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
1108f46a6179Smrg	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
1109f46a6179Smrg	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
1110f46a6179Smrg	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
1111f46a6179Smrg	}								\
1112f46a6179Smrg      else								\
1113f46a6179Smrg	{								\
1114f46a6179Smrg	  (Current).first_line   = (Current).last_line   =		\
1115f46a6179Smrg	    YYRHSLOC (Rhs, 0).last_line;				\
1116f46a6179Smrg	  (Current).first_column = (Current).last_column =		\
1117f46a6179Smrg	    YYRHSLOC (Rhs, 0).last_column;				\
1118f46a6179Smrg	}								\
1119f46a6179Smrg    while (YYID (0))
1120f46a6179Smrg#endif
1121f46a6179Smrg
1122f46a6179Smrg
1123f46a6179Smrg/* YY_LOCATION_PRINT -- Print the location on the stream.
1124f46a6179Smrg   This macro was not mandated originally: define only if we know
1125f46a6179Smrg   we won't break user code: when these are the locations we know.  */
1126f46a6179Smrg
1127f46a6179Smrg#ifndef YY_LOCATION_PRINT
1128f46a6179Smrg# if YYLTYPE_IS_TRIVIAL
1129f46a6179Smrg#  define YY_LOCATION_PRINT(File, Loc)			\
1130f46a6179Smrg     fprintf (File, "%d.%d-%d.%d",			\
1131f46a6179Smrg	      (Loc).first_line, (Loc).first_column,	\
1132f46a6179Smrg	      (Loc).last_line,  (Loc).last_column)
1133f46a6179Smrg# else
1134f46a6179Smrg#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1135f46a6179Smrg# endif
1136f46a6179Smrg#endif
1137f46a6179Smrg
1138f46a6179Smrg
1139f46a6179Smrg/* YYLEX -- calling `yylex' with the right arguments.  */
1140f46a6179Smrg
1141f46a6179Smrg#ifdef YYLEX_PARAM
1142f46a6179Smrg# define YYLEX yylex (YYLEX_PARAM)
1143f46a6179Smrg#else
1144f46a6179Smrg# define YYLEX yylex ()
1145f46a6179Smrg#endif
1146f46a6179Smrg
1147f46a6179Smrg/* Enable debugging if requested.  */
1148f46a6179Smrg#if YYDEBUG
1149f46a6179Smrg
1150f46a6179Smrg# ifndef YYFPRINTF
1151f46a6179Smrg#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1152f46a6179Smrg#  define YYFPRINTF fprintf
1153f46a6179Smrg# endif
1154f46a6179Smrg
1155f46a6179Smrg# define YYDPRINTF(Args)			\
1156f46a6179Smrgdo {						\
1157f46a6179Smrg  if (yydebug)					\
1158f46a6179Smrg    YYFPRINTF Args;				\
1159f46a6179Smrg} while (YYID (0))
1160f46a6179Smrg
1161f46a6179Smrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
1162f46a6179Smrgdo {									  \
1163f46a6179Smrg  if (yydebug)								  \
1164f46a6179Smrg    {									  \
1165f46a6179Smrg      YYFPRINTF (stderr, "%s ", Title);					  \
1166f46a6179Smrg      yy_symbol_print (stderr,						  \
1167f46a6179Smrg		  Type, Value); \
1168f46a6179Smrg      YYFPRINTF (stderr, "\n");						  \
1169f46a6179Smrg    }									  \
1170f46a6179Smrg} while (YYID (0))
1171f46a6179Smrg
1172f46a6179Smrg
1173f46a6179Smrg/*--------------------------------.
1174f46a6179Smrg| Print this symbol on YYOUTPUT.  |
1175f46a6179Smrg`--------------------------------*/
1176f46a6179Smrg
1177f46a6179Smrg/*ARGSUSED*/
1178f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1179f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1180f46a6179Smrgstatic void
1181f46a6179Smrgyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1182f46a6179Smrg#else
1183f46a6179Smrgstatic void
1184f46a6179Smrgyy_symbol_value_print (yyoutput, yytype, yyvaluep)
1185f46a6179Smrg    FILE *yyoutput;
1186f46a6179Smrg    int yytype;
1187f46a6179Smrg    YYSTYPE const * const yyvaluep;
1188f46a6179Smrg#endif
1189f46a6179Smrg{
1190f46a6179Smrg  if (!yyvaluep)
1191f46a6179Smrg    return;
1192f46a6179Smrg# ifdef YYPRINT
1193f46a6179Smrg  if (yytype < YYNTOKENS)
1194f46a6179Smrg    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1195f46a6179Smrg# else
1196f46a6179Smrg  YYUSE (yyoutput);
1197f46a6179Smrg# endif
1198f46a6179Smrg  switch (yytype)
1199f46a6179Smrg    {
1200f46a6179Smrg      default:
1201f46a6179Smrg	break;
1202f46a6179Smrg    }
1203f46a6179Smrg}
1204f46a6179Smrg
1205f46a6179Smrg
1206f46a6179Smrg/*--------------------------------.
1207f46a6179Smrg| Print this symbol on YYOUTPUT.  |
1208f46a6179Smrg`--------------------------------*/
1209f46a6179Smrg
1210f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1211f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1212f46a6179Smrgstatic void
1213f46a6179Smrgyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1214f46a6179Smrg#else
1215f46a6179Smrgstatic void
1216f46a6179Smrgyy_symbol_print (yyoutput, yytype, yyvaluep)
1217f46a6179Smrg    FILE *yyoutput;
1218f46a6179Smrg    int yytype;
1219f46a6179Smrg    YYSTYPE const * const yyvaluep;
1220f46a6179Smrg#endif
1221f46a6179Smrg{
1222f46a6179Smrg  if (yytype < YYNTOKENS)
1223f46a6179Smrg    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1224f46a6179Smrg  else
1225f46a6179Smrg    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1226f46a6179Smrg
1227f46a6179Smrg  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1228f46a6179Smrg  YYFPRINTF (yyoutput, ")");
1229f46a6179Smrg}
1230f46a6179Smrg
1231f46a6179Smrg/*------------------------------------------------------------------.
1232f46a6179Smrg| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1233f46a6179Smrg| TOP (included).                                                   |
1234f46a6179Smrg`------------------------------------------------------------------*/
1235f46a6179Smrg
1236f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1237f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1238f46a6179Smrgstatic void
1239f46a6179Smrgyy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
1240f46a6179Smrg#else
1241f46a6179Smrgstatic void
1242f46a6179Smrgyy_stack_print (bottom, top)
1243f46a6179Smrg    yytype_int16 *bottom;
1244f46a6179Smrg    yytype_int16 *top;
1245f46a6179Smrg#endif
1246f46a6179Smrg{
1247f46a6179Smrg  YYFPRINTF (stderr, "Stack now");
1248f46a6179Smrg  for (; bottom <= top; ++bottom)
1249f46a6179Smrg    YYFPRINTF (stderr, " %d", *bottom);
1250f46a6179Smrg  YYFPRINTF (stderr, "\n");
1251f46a6179Smrg}
1252f46a6179Smrg
1253f46a6179Smrg# define YY_STACK_PRINT(Bottom, Top)				\
1254f46a6179Smrgdo {								\
1255f46a6179Smrg  if (yydebug)							\
1256f46a6179Smrg    yy_stack_print ((Bottom), (Top));				\
1257f46a6179Smrg} while (YYID (0))
1258f46a6179Smrg
1259f46a6179Smrg
1260f46a6179Smrg/*------------------------------------------------.
1261f46a6179Smrg| Report that the YYRULE is going to be reduced.  |
1262f46a6179Smrg`------------------------------------------------*/
1263f46a6179Smrg
1264f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1265f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1266f46a6179Smrgstatic void
1267f46a6179Smrgyy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1268f46a6179Smrg#else
1269f46a6179Smrgstatic void
1270f46a6179Smrgyy_reduce_print (yyvsp, yyrule)
1271f46a6179Smrg    YYSTYPE *yyvsp;
1272f46a6179Smrg    int yyrule;
1273f46a6179Smrg#endif
1274f46a6179Smrg{
1275f46a6179Smrg  int yynrhs = yyr2[yyrule];
1276f46a6179Smrg  int yyi;
1277f46a6179Smrg  unsigned long int yylno = yyrline[yyrule];
1278f46a6179Smrg  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1279f46a6179Smrg	     yyrule - 1, yylno);
1280f46a6179Smrg  /* The symbols being reduced.  */
1281f46a6179Smrg  for (yyi = 0; yyi < yynrhs; yyi++)
1282f46a6179Smrg    {
1283f46a6179Smrg      fprintf (stderr, "   $%d = ", yyi + 1);
1284f46a6179Smrg      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1285f46a6179Smrg		       &(yyvsp[(yyi + 1) - (yynrhs)])
1286f46a6179Smrg		       		       );
1287f46a6179Smrg      fprintf (stderr, "\n");
1288f46a6179Smrg    }
1289f46a6179Smrg}
1290f46a6179Smrg
1291f46a6179Smrg# define YY_REDUCE_PRINT(Rule)		\
1292f46a6179Smrgdo {					\
1293f46a6179Smrg  if (yydebug)				\
1294f46a6179Smrg    yy_reduce_print (yyvsp, Rule); \
1295f46a6179Smrg} while (YYID (0))
1296f46a6179Smrg
1297f46a6179Smrg/* Nonzero means print parse trace.  It is left uninitialized so that
1298f46a6179Smrg   multiple parsers can coexist.  */
1299f46a6179Smrgint yydebug;
1300f46a6179Smrg#else /* !YYDEBUG */
1301f46a6179Smrg# define YYDPRINTF(Args)
1302f46a6179Smrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1303f46a6179Smrg# define YY_STACK_PRINT(Bottom, Top)
1304f46a6179Smrg# define YY_REDUCE_PRINT(Rule)
1305f46a6179Smrg#endif /* !YYDEBUG */
1306f46a6179Smrg
1307f46a6179Smrg
1308f46a6179Smrg/* YYINITDEPTH -- initial size of the parser's stacks.  */
1309f46a6179Smrg#ifndef	YYINITDEPTH
1310f46a6179Smrg# define YYINITDEPTH 200
1311f46a6179Smrg#endif
1312f46a6179Smrg
1313f46a6179Smrg/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1314f46a6179Smrg   if the built-in stack extension method is used).
1315f46a6179Smrg
1316f46a6179Smrg   Do not make this value too large; the results are undefined if
1317f46a6179Smrg   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1318f46a6179Smrg   evaluated with infinite-precision integer arithmetic.  */
1319f46a6179Smrg
1320f46a6179Smrg#ifndef YYMAXDEPTH
1321f46a6179Smrg# define YYMAXDEPTH 10000
1322f46a6179Smrg#endif
1323f46a6179Smrg
1324f46a6179Smrg
1325f46a6179Smrg
1326f46a6179Smrg#if YYERROR_VERBOSE
1327f46a6179Smrg
1328f46a6179Smrg# ifndef yystrlen
1329f46a6179Smrg#  if defined __GLIBC__ && defined _STRING_H
1330f46a6179Smrg#   define yystrlen strlen
1331f46a6179Smrg#  else
1332f46a6179Smrg/* Return the length of YYSTR.  */
1333f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1334f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1335f46a6179Smrgstatic YYSIZE_T
1336f46a6179Smrgyystrlen (const char *yystr)
1337f46a6179Smrg#else
1338f46a6179Smrgstatic YYSIZE_T
1339f46a6179Smrgyystrlen (yystr)
1340f46a6179Smrg    const char *yystr;
1341f46a6179Smrg#endif
1342f46a6179Smrg{
1343f46a6179Smrg  YYSIZE_T yylen;
1344f46a6179Smrg  for (yylen = 0; yystr[yylen]; yylen++)
1345f46a6179Smrg    continue;
1346f46a6179Smrg  return yylen;
1347f46a6179Smrg}
1348f46a6179Smrg#  endif
1349f46a6179Smrg# endif
1350f46a6179Smrg
1351f46a6179Smrg# ifndef yystpcpy
1352f46a6179Smrg#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1353f46a6179Smrg#   define yystpcpy stpcpy
1354f46a6179Smrg#  else
1355f46a6179Smrg/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1356f46a6179Smrg   YYDEST.  */
1357f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1358f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1359f46a6179Smrgstatic char *
1360f46a6179Smrgyystpcpy (char *yydest, const char *yysrc)
1361f46a6179Smrg#else
1362f46a6179Smrgstatic char *
1363f46a6179Smrgyystpcpy (yydest, yysrc)
1364f46a6179Smrg    char *yydest;
1365f46a6179Smrg    const char *yysrc;
1366f46a6179Smrg#endif
1367f46a6179Smrg{
1368f46a6179Smrg  char *yyd = yydest;
1369f46a6179Smrg  const char *yys = yysrc;
1370f46a6179Smrg
1371f46a6179Smrg  while ((*yyd++ = *yys++) != '\0')
1372f46a6179Smrg    continue;
1373f46a6179Smrg
1374f46a6179Smrg  return yyd - 1;
1375f46a6179Smrg}
1376f46a6179Smrg#  endif
1377f46a6179Smrg# endif
1378f46a6179Smrg
1379f46a6179Smrg# ifndef yytnamerr
1380f46a6179Smrg/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1381f46a6179Smrg   quotes and backslashes, so that it's suitable for yyerror.  The
1382f46a6179Smrg   heuristic is that double-quoting is unnecessary unless the string
1383f46a6179Smrg   contains an apostrophe, a comma, or backslash (other than
1384f46a6179Smrg   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1385f46a6179Smrg   null, do not copy; instead, return the length of what the result
1386f46a6179Smrg   would have been.  */
1387f46a6179Smrgstatic YYSIZE_T
1388f46a6179Smrgyytnamerr (char *yyres, const char *yystr)
1389f46a6179Smrg{
1390f46a6179Smrg  if (*yystr == '"')
1391f46a6179Smrg    {
1392f46a6179Smrg      YYSIZE_T yyn = 0;
1393f46a6179Smrg      char const *yyp = yystr;
1394f46a6179Smrg
1395f46a6179Smrg      for (;;)
1396f46a6179Smrg	switch (*++yyp)
1397f46a6179Smrg	  {
1398f46a6179Smrg	  case '\'':
1399f46a6179Smrg	  case ',':
1400f46a6179Smrg	    goto do_not_strip_quotes;
1401f46a6179Smrg
1402f46a6179Smrg	  case '\\':
1403f46a6179Smrg	    if (*++yyp != '\\')
1404f46a6179Smrg	      goto do_not_strip_quotes;
1405f46a6179Smrg	    /* Fall through.  */
1406f46a6179Smrg	  default:
1407f46a6179Smrg	    if (yyres)
1408f46a6179Smrg	      yyres[yyn] = *yyp;
1409f46a6179Smrg	    yyn++;
1410f46a6179Smrg	    break;
1411f46a6179Smrg
1412f46a6179Smrg	  case '"':
1413f46a6179Smrg	    if (yyres)
1414f46a6179Smrg	      yyres[yyn] = '\0';
1415f46a6179Smrg	    return yyn;
1416f46a6179Smrg	  }
1417f46a6179Smrg    do_not_strip_quotes: ;
1418f46a6179Smrg    }
1419f46a6179Smrg
1420f46a6179Smrg  if (! yyres)
1421f46a6179Smrg    return yystrlen (yystr);
1422f46a6179Smrg
1423f46a6179Smrg  return yystpcpy (yyres, yystr) - yyres;
1424f46a6179Smrg}
1425f46a6179Smrg# endif
1426f46a6179Smrg
1427f46a6179Smrg/* Copy into YYRESULT an error message about the unexpected token
1428f46a6179Smrg   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
1429f46a6179Smrg   including the terminating null byte.  If YYRESULT is null, do not
1430f46a6179Smrg   copy anything; just return the number of bytes that would be
1431f46a6179Smrg   copied.  As a special case, return 0 if an ordinary "syntax error"
1432f46a6179Smrg   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
1433f46a6179Smrg   size calculation.  */
1434f46a6179Smrgstatic YYSIZE_T
1435f46a6179Smrgyysyntax_error (char *yyresult, int yystate, int yychar)
1436f46a6179Smrg{
1437f46a6179Smrg  int yyn = yypact[yystate];
1438f46a6179Smrg
1439f46a6179Smrg  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1440f46a6179Smrg    return 0;
1441f46a6179Smrg  else
1442f46a6179Smrg    {
1443f46a6179Smrg      int yytype = YYTRANSLATE (yychar);
1444f46a6179Smrg      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1445f46a6179Smrg      YYSIZE_T yysize = yysize0;
1446f46a6179Smrg      YYSIZE_T yysize1;
1447f46a6179Smrg      int yysize_overflow = 0;
1448f46a6179Smrg      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1449f46a6179Smrg      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1450f46a6179Smrg      int yyx;
1451f46a6179Smrg
1452f46a6179Smrg# if 0
1453f46a6179Smrg      /* This is so xgettext sees the translatable formats that are
1454f46a6179Smrg	 constructed on the fly.  */
1455f46a6179Smrg      YY_("syntax error, unexpected %s");
1456f46a6179Smrg      YY_("syntax error, unexpected %s, expecting %s");
1457f46a6179Smrg      YY_("syntax error, unexpected %s, expecting %s or %s");
1458f46a6179Smrg      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1459f46a6179Smrg      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1460f46a6179Smrg# endif
1461f46a6179Smrg      char *yyfmt;
1462f46a6179Smrg      char const *yyf;
1463f46a6179Smrg      static char const yyunexpected[] = "syntax error, unexpected %s";
1464f46a6179Smrg      static char const yyexpecting[] = ", expecting %s";
1465f46a6179Smrg      static char const yyor[] = " or %s";
1466f46a6179Smrg      char yyformat[sizeof yyunexpected
1467f46a6179Smrg		    + sizeof yyexpecting - 1
1468f46a6179Smrg		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1469f46a6179Smrg		       * (sizeof yyor - 1))];
1470f46a6179Smrg      char const *yyprefix = yyexpecting;
1471f46a6179Smrg
1472f46a6179Smrg      /* Start YYX at -YYN if negative to avoid negative indexes in
1473f46a6179Smrg	 YYCHECK.  */
1474f46a6179Smrg      int yyxbegin = yyn < 0 ? -yyn : 0;
1475f46a6179Smrg
1476f46a6179Smrg      /* Stay within bounds of both yycheck and yytname.  */
1477f46a6179Smrg      int yychecklim = YYLAST - yyn + 1;
1478f46a6179Smrg      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1479f46a6179Smrg      int yycount = 1;
1480f46a6179Smrg
1481f46a6179Smrg      yyarg[0] = yytname[yytype];
1482f46a6179Smrg      yyfmt = yystpcpy (yyformat, yyunexpected);
1483f46a6179Smrg
1484f46a6179Smrg      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1485f46a6179Smrg	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1486f46a6179Smrg	  {
1487f46a6179Smrg	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1488f46a6179Smrg	      {
1489f46a6179Smrg		yycount = 1;
1490f46a6179Smrg		yysize = yysize0;
1491f46a6179Smrg		yyformat[sizeof yyunexpected - 1] = '\0';
1492f46a6179Smrg		break;
1493f46a6179Smrg	      }
1494f46a6179Smrg	    yyarg[yycount++] = yytname[yyx];
1495f46a6179Smrg	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1496f46a6179Smrg	    yysize_overflow |= (yysize1 < yysize);
1497f46a6179Smrg	    yysize = yysize1;
1498f46a6179Smrg	    yyfmt = yystpcpy (yyfmt, yyprefix);
1499f46a6179Smrg	    yyprefix = yyor;
1500f46a6179Smrg	  }
1501f46a6179Smrg
1502f46a6179Smrg      yyf = YY_(yyformat);
1503f46a6179Smrg      yysize1 = yysize + yystrlen (yyf);
1504f46a6179Smrg      yysize_overflow |= (yysize1 < yysize);
1505f46a6179Smrg      yysize = yysize1;
1506f46a6179Smrg
1507f46a6179Smrg      if (yysize_overflow)
1508f46a6179Smrg	return YYSIZE_MAXIMUM;
1509f46a6179Smrg
1510f46a6179Smrg      if (yyresult)
1511f46a6179Smrg	{
1512f46a6179Smrg	  /* Avoid sprintf, as that infringes on the user's name space.
1513f46a6179Smrg	     Don't have undefined behavior even if the translation
1514f46a6179Smrg	     produced a string with the wrong number of "%s"s.  */
1515f46a6179Smrg	  char *yyp = yyresult;
1516f46a6179Smrg	  int yyi = 0;
1517f46a6179Smrg	  while ((*yyp = *yyf) != '\0')
1518f46a6179Smrg	    {
1519f46a6179Smrg	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1520f46a6179Smrg		{
1521f46a6179Smrg		  yyp += yytnamerr (yyp, yyarg[yyi++]);
1522f46a6179Smrg		  yyf += 2;
1523f46a6179Smrg		}
1524f46a6179Smrg	      else
1525f46a6179Smrg		{
1526f46a6179Smrg		  yyp++;
1527f46a6179Smrg		  yyf++;
1528f46a6179Smrg		}
1529f46a6179Smrg	    }
1530f46a6179Smrg	}
1531f46a6179Smrg      return yysize;
1532f46a6179Smrg    }
1533f46a6179Smrg}
1534f46a6179Smrg#endif /* YYERROR_VERBOSE */
1535f46a6179Smrg
1536f46a6179Smrg
1537f46a6179Smrg/*-----------------------------------------------.
1538f46a6179Smrg| Release the memory associated to this symbol.  |
1539f46a6179Smrg`-----------------------------------------------*/
1540f46a6179Smrg
1541f46a6179Smrg/*ARGSUSED*/
1542f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1543f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1544f46a6179Smrgstatic void
1545f46a6179Smrgyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1546f46a6179Smrg#else
1547f46a6179Smrgstatic void
1548f46a6179Smrgyydestruct (yymsg, yytype, yyvaluep)
1549f46a6179Smrg    const char *yymsg;
1550f46a6179Smrg    int yytype;
1551f46a6179Smrg    YYSTYPE *yyvaluep;
1552f46a6179Smrg#endif
1553f46a6179Smrg{
1554f46a6179Smrg  YYUSE (yyvaluep);
1555f46a6179Smrg
1556f46a6179Smrg  if (!yymsg)
1557f46a6179Smrg    yymsg = "Deleting";
1558f46a6179Smrg  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1559f46a6179Smrg
1560f46a6179Smrg  switch (yytype)
1561f46a6179Smrg    {
1562f46a6179Smrg
1563f46a6179Smrg      default:
1564f46a6179Smrg	break;
1565f46a6179Smrg    }
1566f46a6179Smrg}
1567f46a6179Smrg
1568f46a6179Smrg
1569f46a6179Smrg/* Prevent warnings from -Wmissing-prototypes.  */
1570f46a6179Smrg
1571f46a6179Smrg#ifdef YYPARSE_PARAM
1572f46a6179Smrg#if defined __STDC__ || defined __cplusplus
1573f46a6179Smrgint yyparse (void *YYPARSE_PARAM);
1574f46a6179Smrg#else
1575f46a6179Smrgint yyparse ();
1576f46a6179Smrg#endif
1577f46a6179Smrg#else /* ! YYPARSE_PARAM */
1578f46a6179Smrg#if defined __STDC__ || defined __cplusplus
1579f46a6179Smrgint yyparse (void);
1580f46a6179Smrg#else
1581f46a6179Smrgint yyparse ();
1582f46a6179Smrg#endif
1583f46a6179Smrg#endif /* ! YYPARSE_PARAM */
1584f46a6179Smrg
1585f46a6179Smrg
1586f46a6179Smrg
1587f46a6179Smrg/* The look-ahead symbol.  */
1588f46a6179Smrgint yychar;
1589f46a6179Smrg
1590f46a6179Smrg/* The semantic value of the look-ahead symbol.  */
1591f46a6179SmrgYYSTYPE yylval;
1592f46a6179Smrg
1593f46a6179Smrg/* Number of syntax errors so far.  */
1594f46a6179Smrgint yynerrs;
1595f46a6179Smrg
1596f46a6179Smrg
1597f46a6179Smrg
1598f46a6179Smrg/*----------.
1599f46a6179Smrg| yyparse.  |
1600f46a6179Smrg`----------*/
1601f46a6179Smrg
1602f46a6179Smrg#ifdef YYPARSE_PARAM
1603f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1604f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1605f46a6179Smrgint
1606f46a6179Smrgyyparse (void *YYPARSE_PARAM)
1607f46a6179Smrg#else
1608f46a6179Smrgint
1609f46a6179Smrgyyparse (YYPARSE_PARAM)
1610f46a6179Smrg    void *YYPARSE_PARAM;
1611f46a6179Smrg#endif
1612f46a6179Smrg#else /* ! YYPARSE_PARAM */
1613f46a6179Smrg#if (defined __STDC__ || defined __C99__FUNC__ \
1614f46a6179Smrg     || defined __cplusplus || defined _MSC_VER)
1615f46a6179Smrgint
1616f46a6179Smrgyyparse (void)
1617f46a6179Smrg#else
1618f46a6179Smrgint
1619f46a6179Smrgyyparse ()
1620f46a6179Smrg
1621f46a6179Smrg#endif
1622f46a6179Smrg#endif
1623f46a6179Smrg{
1624f46a6179Smrg
1625f46a6179Smrg  int yystate;
1626f46a6179Smrg  int yyn;
1627f46a6179Smrg  int yyresult;
1628f46a6179Smrg  /* Number of tokens to shift before error messages enabled.  */
1629f46a6179Smrg  int yyerrstatus;
1630f46a6179Smrg  /* Look-ahead token as an internal (translated) token number.  */
1631f46a6179Smrg  int yytoken = 0;
1632f46a6179Smrg#if YYERROR_VERBOSE
1633f46a6179Smrg  /* Buffer for error messages, and its allocated size.  */
1634f46a6179Smrg  char yymsgbuf[128];
1635f46a6179Smrg  char *yymsg = yymsgbuf;
1636f46a6179Smrg  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1637f46a6179Smrg#endif
1638f46a6179Smrg
1639f46a6179Smrg  /* Three stacks and their tools:
1640f46a6179Smrg     `yyss': related to states,
1641f46a6179Smrg     `yyvs': related to semantic values,
1642f46a6179Smrg     `yyls': related to locations.
1643f46a6179Smrg
1644f46a6179Smrg     Refer to the stacks thru separate pointers, to allow yyoverflow
1645f46a6179Smrg     to reallocate them elsewhere.  */
1646f46a6179Smrg
1647f46a6179Smrg  /* The state stack.  */
1648f46a6179Smrg  yytype_int16 yyssa[YYINITDEPTH];
1649f46a6179Smrg  yytype_int16 *yyss = yyssa;
1650f46a6179Smrg  yytype_int16 *yyssp;
1651f46a6179Smrg
1652f46a6179Smrg  /* The semantic value stack.  */
1653f46a6179Smrg  YYSTYPE yyvsa[YYINITDEPTH];
1654f46a6179Smrg  YYSTYPE *yyvs = yyvsa;
1655f46a6179Smrg  YYSTYPE *yyvsp;
1656f46a6179Smrg
1657f46a6179Smrg
1658f46a6179Smrg
1659f46a6179Smrg#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
1660f46a6179Smrg
1661f46a6179Smrg  YYSIZE_T yystacksize = YYINITDEPTH;
1662f46a6179Smrg
1663f46a6179Smrg  /* The variables used to return semantic value and location from the
1664f46a6179Smrg     action routines.  */
1665f46a6179Smrg  YYSTYPE yyval;
1666f46a6179Smrg
1667f46a6179Smrg
1668f46a6179Smrg  /* The number of symbols on the RHS of the reduced rule.
1669f46a6179Smrg     Keep to zero when no symbol should be popped.  */
1670f46a6179Smrg  int yylen = 0;
1671f46a6179Smrg
1672f46a6179Smrg  YYDPRINTF ((stderr, "Starting parse\n"));
1673f46a6179Smrg
1674f46a6179Smrg  yystate = 0;
1675f46a6179Smrg  yyerrstatus = 0;
1676f46a6179Smrg  yynerrs = 0;
1677f46a6179Smrg  yychar = YYEMPTY;		/* Cause a token to be read.  */
1678f46a6179Smrg
1679f46a6179Smrg  /* Initialize stack pointers.
1680f46a6179Smrg     Waste one element of value and location stack
1681f46a6179Smrg     so that they stay on the same level as the state stack.
1682f46a6179Smrg     The wasted elements are never initialized.  */
1683f46a6179Smrg
1684f46a6179Smrg  yyssp = yyss;
1685f46a6179Smrg  yyvsp = yyvs;
1686f46a6179Smrg
1687f46a6179Smrg  goto yysetstate;
1688f46a6179Smrg
1689f46a6179Smrg/*------------------------------------------------------------.
1690f46a6179Smrg| yynewstate -- Push a new state, which is found in yystate.  |
1691f46a6179Smrg`------------------------------------------------------------*/
1692f46a6179Smrg yynewstate:
1693f46a6179Smrg  /* In all cases, when you get here, the value and location stacks
1694f46a6179Smrg     have just been pushed.  So pushing a state here evens the stacks.  */
1695f46a6179Smrg  yyssp++;
1696f46a6179Smrg
1697f46a6179Smrg yysetstate:
1698f46a6179Smrg  *yyssp = yystate;
1699f46a6179Smrg
1700f46a6179Smrg  if (yyss + yystacksize - 1 <= yyssp)
1701f46a6179Smrg    {
1702f46a6179Smrg      /* Get the current used size of the three stacks, in elements.  */
1703f46a6179Smrg      YYSIZE_T yysize = yyssp - yyss + 1;
1704f46a6179Smrg
1705f46a6179Smrg#ifdef yyoverflow
1706f46a6179Smrg      {
1707f46a6179Smrg	/* Give user a chance to reallocate the stack.  Use copies of
1708f46a6179Smrg	   these so that the &'s don't force the real ones into
1709f46a6179Smrg	   memory.  */
1710f46a6179Smrg	YYSTYPE *yyvs1 = yyvs;
1711f46a6179Smrg	yytype_int16 *yyss1 = yyss;
1712f46a6179Smrg
1713f46a6179Smrg
1714f46a6179Smrg	/* Each stack pointer address is followed by the size of the
1715f46a6179Smrg	   data in use in that stack, in bytes.  This used to be a
1716f46a6179Smrg	   conditional around just the two extra args, but that might
1717f46a6179Smrg	   be undefined if yyoverflow is a macro.  */
1718f46a6179Smrg	yyoverflow (YY_("memory exhausted"),
1719f46a6179Smrg		    &yyss1, yysize * sizeof (*yyssp),
1720f46a6179Smrg		    &yyvs1, yysize * sizeof (*yyvsp),
1721f46a6179Smrg
1722f46a6179Smrg		    &yystacksize);
1723f46a6179Smrg
1724f46a6179Smrg	yyss = yyss1;
1725f46a6179Smrg	yyvs = yyvs1;
1726f46a6179Smrg      }
1727f46a6179Smrg#else /* no yyoverflow */
1728f46a6179Smrg# ifndef YYSTACK_RELOCATE
1729f46a6179Smrg      goto yyexhaustedlab;
1730f46a6179Smrg# else
1731f46a6179Smrg      /* Extend the stack our own way.  */
1732f46a6179Smrg      if (YYMAXDEPTH <= yystacksize)
1733f46a6179Smrg	goto yyexhaustedlab;
1734f46a6179Smrg      yystacksize *= 2;
1735f46a6179Smrg      if (YYMAXDEPTH < yystacksize)
1736f46a6179Smrg	yystacksize = YYMAXDEPTH;
1737f46a6179Smrg
1738f46a6179Smrg      {
1739f46a6179Smrg	yytype_int16 *yyss1 = yyss;
1740f46a6179Smrg	union yyalloc *yyptr =
1741f46a6179Smrg	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1742f46a6179Smrg	if (! yyptr)
1743f46a6179Smrg	  goto yyexhaustedlab;
1744f46a6179Smrg	YYSTACK_RELOCATE (yyss);
1745f46a6179Smrg	YYSTACK_RELOCATE (yyvs);
1746f46a6179Smrg
1747f46a6179Smrg#  undef YYSTACK_RELOCATE
1748f46a6179Smrg	if (yyss1 != yyssa)
1749f46a6179Smrg	  YYSTACK_FREE (yyss1);
1750f46a6179Smrg      }
1751f46a6179Smrg# endif
1752f46a6179Smrg#endif /* no yyoverflow */
1753f46a6179Smrg
1754f46a6179Smrg      yyssp = yyss + yysize - 1;
1755f46a6179Smrg      yyvsp = yyvs + yysize - 1;
1756f46a6179Smrg
1757f46a6179Smrg
1758f46a6179Smrg      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1759f46a6179Smrg		  (unsigned long int) yystacksize));
1760f46a6179Smrg
1761f46a6179Smrg      if (yyss + yystacksize - 1 <= yyssp)
1762f46a6179Smrg	YYABORT;
1763f46a6179Smrg    }
1764f46a6179Smrg
1765f46a6179Smrg  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1766f46a6179Smrg
1767f46a6179Smrg  goto yybackup;
1768f46a6179Smrg
1769f46a6179Smrg/*-----------.
1770f46a6179Smrg| yybackup.  |
1771f46a6179Smrg`-----------*/
1772f46a6179Smrgyybackup:
1773f46a6179Smrg
1774f46a6179Smrg  /* Do appropriate processing given the current state.  Read a
1775f46a6179Smrg     look-ahead token if we need one and don't already have one.  */
1776f46a6179Smrg
1777f46a6179Smrg  /* First try to decide what to do without reference to look-ahead token.  */
1778f46a6179Smrg  yyn = yypact[yystate];
1779f46a6179Smrg  if (yyn == YYPACT_NINF)
1780f46a6179Smrg    goto yydefault;
1781f46a6179Smrg
1782f46a6179Smrg  /* Not known => get a look-ahead token if don't already have one.  */
1783f46a6179Smrg
1784f46a6179Smrg  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
1785f46a6179Smrg  if (yychar == YYEMPTY)
1786f46a6179Smrg    {
1787f46a6179Smrg      YYDPRINTF ((stderr, "Reading a token: "));
1788f46a6179Smrg      yychar = YYLEX;
1789f46a6179Smrg    }
1790f46a6179Smrg
1791f46a6179Smrg  if (yychar <= YYEOF)
1792f46a6179Smrg    {
1793f46a6179Smrg      yychar = yytoken = YYEOF;
1794f46a6179Smrg      YYDPRINTF ((stderr, "Now at end of input.\n"));
1795f46a6179Smrg    }
1796f46a6179Smrg  else
1797f46a6179Smrg    {
1798f46a6179Smrg      yytoken = YYTRANSLATE (yychar);
1799f46a6179Smrg      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1800f46a6179Smrg    }
1801f46a6179Smrg
1802f46a6179Smrg  /* If the proper action on seeing token YYTOKEN is to reduce or to
1803f46a6179Smrg     detect an error, take that action.  */
1804f46a6179Smrg  yyn += yytoken;
1805f46a6179Smrg  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1806f46a6179Smrg    goto yydefault;
1807f46a6179Smrg  yyn = yytable[yyn];
1808f46a6179Smrg  if (yyn <= 0)
1809f46a6179Smrg    {
1810f46a6179Smrg      if (yyn == 0 || yyn == YYTABLE_NINF)
1811f46a6179Smrg	goto yyerrlab;
1812f46a6179Smrg      yyn = -yyn;
1813f46a6179Smrg      goto yyreduce;
1814f46a6179Smrg    }
1815f46a6179Smrg
1816f46a6179Smrg  if (yyn == YYFINAL)
1817f46a6179Smrg    YYACCEPT;
1818f46a6179Smrg
1819f46a6179Smrg  /* Count tokens shifted since error; after three, turn off error
1820f46a6179Smrg     status.  */
1821f46a6179Smrg  if (yyerrstatus)
1822f46a6179Smrg    yyerrstatus--;
1823f46a6179Smrg
1824f46a6179Smrg  /* Shift the look-ahead token.  */
1825f46a6179Smrg  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1826f46a6179Smrg
1827f46a6179Smrg  /* Discard the shifted token unless it is eof.  */
1828f46a6179Smrg  if (yychar != YYEOF)
1829f46a6179Smrg    yychar = YYEMPTY;
1830f46a6179Smrg
1831f46a6179Smrg  yystate = yyn;
1832f46a6179Smrg  *++yyvsp = yylval;
1833f46a6179Smrg
1834f46a6179Smrg  goto yynewstate;
1835f46a6179Smrg
1836f46a6179Smrg
1837f46a6179Smrg/*-----------------------------------------------------------.
1838f46a6179Smrg| yydefault -- do the default action for the current state.  |
1839f46a6179Smrg`-----------------------------------------------------------*/
1840f46a6179Smrgyydefault:
1841f46a6179Smrg  yyn = yydefact[yystate];
1842f46a6179Smrg  if (yyn == 0)
1843f46a6179Smrg    goto yyerrlab;
1844f46a6179Smrg  goto yyreduce;
1845f46a6179Smrg
1846f46a6179Smrg
1847f46a6179Smrg/*-----------------------------.
1848f46a6179Smrg| yyreduce -- Do a reduction.  |
1849f46a6179Smrg`-----------------------------*/
1850f46a6179Smrgyyreduce:
1851f46a6179Smrg  /* yyn is the number of a rule to reduce with.  */
1852f46a6179Smrg  yylen = yyr2[yyn];
1853f46a6179Smrg
1854f46a6179Smrg  /* If YYLEN is nonzero, implement the default value of the action:
1855f46a6179Smrg     `$$ = $1'.
1856f46a6179Smrg
1857f46a6179Smrg     Otherwise, the following line sets YYVAL to garbage.
1858f46a6179Smrg     This behavior is undocumented and Bison
1859f46a6179Smrg     users should not rely upon it.  Assigning to YYVAL
1860f46a6179Smrg     unconditionally makes the parser a bit smaller, and it avoids a
1861f46a6179Smrg     GCC warning that YYVAL may be used uninitialized.  */
1862f46a6179Smrg  yyval = yyvsp[1-yylen];
1863f46a6179Smrg
1864f46a6179Smrg
1865f46a6179Smrg  YY_REDUCE_PRINT (yyn);
1866f46a6179Smrg  switch (yyn)
1867f46a6179Smrg    {
1868f46a6179Smrg        case 2:
1869f46a6179Smrg#line 170 "xkbparse.y"
1870f46a6179Smrg    { (yyval.file)= rtrnValue= (yyvsp[(1) - (1)].file); }
1871f46a6179Smrg    break;
1872f46a6179Smrg
1873f46a6179Smrg  case 3:
1874f46a6179Smrg#line 172 "xkbparse.y"
1875f46a6179Smrg    { (yyval.file)= rtrnValue= (yyvsp[(1) - (1)].file);  }
1876f46a6179Smrg    break;
1877f46a6179Smrg
1878f46a6179Smrg  case 4:
1879f46a6179Smrg#line 174 "xkbparse.y"
1880f46a6179Smrg    { (yyval.file)= rtrnValue= (yyvsp[(1) - (1)].file); }
1881f46a6179Smrg    break;
1882f46a6179Smrg
1883f46a6179Smrg  case 5:
1884f46a6179Smrg#line 178 "xkbparse.y"
1885f46a6179Smrg    { (yyval.file)= (XkbFile *)AppendStmt(&(yyvsp[(1) - (2)].file)->common,&(yyvsp[(2) - (2)].file)->common); }
1886f46a6179Smrg    break;
1887f46a6179Smrg
1888f46a6179Smrg  case 6:
1889f46a6179Smrg#line 180 "xkbparse.y"
1890f46a6179Smrg    { (yyval.file)= (yyvsp[(1) - (1)].file); }
1891f46a6179Smrg    break;
1892f46a6179Smrg
1893f46a6179Smrg  case 7:
1894f46a6179Smrg#line 186 "xkbparse.y"
1895f46a6179Smrg    { (yyval.file)= CreateXKBFile((yyvsp[(2) - (7)].uval),(yyvsp[(3) - (7)].str),&(yyvsp[(5) - (7)].file)->common,(yyvsp[(1) - (7)].uval)); }
1896f46a6179Smrg    break;
1897f46a6179Smrg
1898f46a6179Smrg  case 8:
1899f46a6179Smrg#line 189 "xkbparse.y"
1900f46a6179Smrg    { (yyval.uval)= XkmKeymapFile; }
1901f46a6179Smrg    break;
1902f46a6179Smrg
1903f46a6179Smrg  case 9:
1904f46a6179Smrg#line 190 "xkbparse.y"
1905f46a6179Smrg    { (yyval.uval)= XkmSemanticsFile; }
1906f46a6179Smrg    break;
1907f46a6179Smrg
1908f46a6179Smrg  case 10:
1909f46a6179Smrg#line 191 "xkbparse.y"
1910f46a6179Smrg    { (yyval.uval)= XkmLayoutFile; }
1911f46a6179Smrg    break;
1912f46a6179Smrg
1913f46a6179Smrg  case 11:
1914f46a6179Smrg#line 195 "xkbparse.y"
1915f46a6179Smrg    { (yyval.file)= (XkbFile *)AppendStmt(&(yyvsp[(1) - (2)].file)->common,&(yyvsp[(2) - (2)].file)->common); }
1916f46a6179Smrg    break;
1917f46a6179Smrg
1918f46a6179Smrg  case 12:
1919f46a6179Smrg#line 197 "xkbparse.y"
1920f46a6179Smrg    { (yyval.file)= (yyvsp[(1) - (1)].file); }
1921f46a6179Smrg    break;
1922f46a6179Smrg
1923f46a6179Smrg  case 13:
1924f46a6179Smrg#line 203 "xkbparse.y"
1925f46a6179Smrg    { (yyval.file)= CreateXKBFile((yyvsp[(2) - (7)].uval),(yyvsp[(3) - (7)].str),(yyvsp[(5) - (7)].any),(yyvsp[(1) - (7)].uval)); }
1926f46a6179Smrg    break;
1927f46a6179Smrg
1928f46a6179Smrg  case 14:
1929f46a6179Smrg#line 207 "xkbparse.y"
1930f46a6179Smrg    { (yyval.file)= CreateXKBFile((yyvsp[(2) - (4)].uval),(yyvsp[(3) - (4)].str),(yyvsp[(4) - (4)].any),(yyvsp[(1) - (4)].uval)); }
1931f46a6179Smrg    break;
1932f46a6179Smrg
1933f46a6179Smrg  case 15:
1934f46a6179Smrg#line 211 "xkbparse.y"
1935f46a6179Smrg    { (yyval.uval)= XkmKeyNamesIndex; }
1936f46a6179Smrg    break;
1937f46a6179Smrg
1938f46a6179Smrg  case 16:
1939f46a6179Smrg#line 212 "xkbparse.y"
1940f46a6179Smrg    { (yyval.uval)= XkmTypesIndex; }
1941f46a6179Smrg    break;
1942f46a6179Smrg
1943f46a6179Smrg  case 17:
1944f46a6179Smrg#line 213 "xkbparse.y"
1945f46a6179Smrg    { (yyval.uval)= XkmCompatMapIndex; }
1946f46a6179Smrg    break;
1947f46a6179Smrg
1948f46a6179Smrg  case 18:
1949f46a6179Smrg#line 214 "xkbparse.y"
1950f46a6179Smrg    { (yyval.uval)= XkmSymbolsIndex; }
1951f46a6179Smrg    break;
1952f46a6179Smrg
1953f46a6179Smrg  case 19:
1954f46a6179Smrg#line 215 "xkbparse.y"
1955f46a6179Smrg    { (yyval.uval)= XkmGeometryIndex; }
1956f46a6179Smrg    break;
1957f46a6179Smrg
1958f46a6179Smrg  case 20:
1959f46a6179Smrg#line 218 "xkbparse.y"
1960f46a6179Smrg    { (yyval.uval)= (yyvsp[(1) - (1)].uval); }
1961f46a6179Smrg    break;
1962f46a6179Smrg
1963f46a6179Smrg  case 21:
1964f46a6179Smrg#line 219 "xkbparse.y"
1965f46a6179Smrg    { (yyval.uval)= 0; }
1966f46a6179Smrg    break;
1967f46a6179Smrg
1968f46a6179Smrg  case 22:
1969f46a6179Smrg#line 222 "xkbparse.y"
1970f46a6179Smrg    { (yyval.uval)= (((yyvsp[(1) - (2)].uval))|((yyvsp[(2) - (2)].uval))); }
1971f46a6179Smrg    break;
1972f46a6179Smrg
1973f46a6179Smrg  case 23:
1974f46a6179Smrg#line 223 "xkbparse.y"
1975f46a6179Smrg    { (yyval.uval)= (yyvsp[(1) - (1)].uval); }
1976f46a6179Smrg    break;
1977f46a6179Smrg
1978f46a6179Smrg  case 24:
1979f46a6179Smrg#line 226 "xkbparse.y"
1980f46a6179Smrg    { (yyval.uval)= XkbLC_Partial; }
1981f46a6179Smrg    break;
1982f46a6179Smrg
1983f46a6179Smrg  case 25:
1984f46a6179Smrg#line 227 "xkbparse.y"
1985f46a6179Smrg    { (yyval.uval)= XkbLC_Default; }
1986f46a6179Smrg    break;
1987f46a6179Smrg
1988f46a6179Smrg  case 26:
1989f46a6179Smrg#line 228 "xkbparse.y"
1990f46a6179Smrg    { (yyval.uval)= XkbLC_Hidden; }
1991f46a6179Smrg    break;
1992f46a6179Smrg
1993f46a6179Smrg  case 27:
1994f46a6179Smrg#line 229 "xkbparse.y"
1995f46a6179Smrg    { (yyval.uval)= XkbLC_AlphanumericKeys; }
1996f46a6179Smrg    break;
1997f46a6179Smrg
1998f46a6179Smrg  case 28:
1999f46a6179Smrg#line 230 "xkbparse.y"
2000f46a6179Smrg    { (yyval.uval)= XkbLC_ModifierKeys; }
2001f46a6179Smrg    break;
2002f46a6179Smrg
2003f46a6179Smrg  case 29:
2004f46a6179Smrg#line 231 "xkbparse.y"
2005f46a6179Smrg    { (yyval.uval)= XkbLC_KeypadKeys; }
2006f46a6179Smrg    break;
2007f46a6179Smrg
2008f46a6179Smrg  case 30:
2009f46a6179Smrg#line 232 "xkbparse.y"
2010f46a6179Smrg    { (yyval.uval)= XkbLC_FunctionKeys; }
2011f46a6179Smrg    break;
2012f46a6179Smrg
2013f46a6179Smrg  case 31:
2014f46a6179Smrg#line 233 "xkbparse.y"
2015f46a6179Smrg    { (yyval.uval)= XkbLC_AlternateGroup; }
2016f46a6179Smrg    break;
2017f46a6179Smrg
2018f46a6179Smrg  case 32:
2019f46a6179Smrg#line 237 "xkbparse.y"
2020f46a6179Smrg    { (yyval.any)= AppendStmt((yyvsp[(1) - (2)].any),(yyvsp[(2) - (2)].any)); }
2021f46a6179Smrg    break;
2022f46a6179Smrg
2023f46a6179Smrg  case 33:
2024f46a6179Smrg#line 238 "xkbparse.y"
2025f46a6179Smrg    { (yyval.any)= NULL; }
2026f46a6179Smrg    break;
2027f46a6179Smrg
2028f46a6179Smrg  case 34:
2029f46a6179Smrg#line 242 "xkbparse.y"
2030f46a6179Smrg    {
2031f46a6179Smrg			    (yyvsp[(2) - (2)].var)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].var)->common,(yyvsp[(1) - (2)].uval));
2032f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].var)->common;
2033f46a6179Smrg			}
2034f46a6179Smrg    break;
2035f46a6179Smrg
2036f46a6179Smrg  case 35:
2037f46a6179Smrg#line 247 "xkbparse.y"
2038f46a6179Smrg    {
2039f46a6179Smrg			    (yyvsp[(2) - (2)].vmod)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].vmod)->common,(yyvsp[(1) - (2)].uval));
2040f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].vmod)->common;
2041f46a6179Smrg			}
2042f46a6179Smrg    break;
2043f46a6179Smrg
2044f46a6179Smrg  case 36:
2045f46a6179Smrg#line 252 "xkbparse.y"
2046f46a6179Smrg    {
2047f46a6179Smrg			    (yyvsp[(2) - (2)].interp)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].interp)->common,(yyvsp[(1) - (2)].uval));
2048f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].interp)->common;
2049f46a6179Smrg			}
2050f46a6179Smrg    break;
2051f46a6179Smrg
2052f46a6179Smrg  case 37:
2053f46a6179Smrg#line 257 "xkbparse.y"
2054f46a6179Smrg    {
2055f46a6179Smrg			    (yyvsp[(2) - (2)].keyName)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].keyName)->common,(yyvsp[(1) - (2)].uval));
2056f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].keyName)->common;
2057f46a6179Smrg			}
2058f46a6179Smrg    break;
2059f46a6179Smrg
2060f46a6179Smrg  case 38:
2061f46a6179Smrg#line 262 "xkbparse.y"
2062f46a6179Smrg    {
2063f46a6179Smrg			    (yyvsp[(2) - (2)].keyAlias)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].keyAlias)->common,(yyvsp[(1) - (2)].uval));
2064f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].keyAlias)->common;
2065f46a6179Smrg			}
2066f46a6179Smrg    break;
2067f46a6179Smrg
2068f46a6179Smrg  case 39:
2069f46a6179Smrg#line 267 "xkbparse.y"
2070f46a6179Smrg    {
2071f46a6179Smrg			    (yyvsp[(2) - (2)].keyType)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].keyType)->common,(yyvsp[(1) - (2)].uval));
2072f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].keyType)->common;
2073f46a6179Smrg			}
2074f46a6179Smrg    break;
2075f46a6179Smrg
2076f46a6179Smrg  case 40:
2077f46a6179Smrg#line 272 "xkbparse.y"
2078f46a6179Smrg    {
2079f46a6179Smrg			    (yyvsp[(2) - (2)].syms)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].syms)->common,(yyvsp[(1) - (2)].uval));
2080f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].syms)->common;
2081f46a6179Smrg			}
2082f46a6179Smrg    break;
2083f46a6179Smrg
2084f46a6179Smrg  case 41:
2085f46a6179Smrg#line 277 "xkbparse.y"
2086f46a6179Smrg    {
2087f46a6179Smrg			    (yyvsp[(2) - (2)].modMask)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].modMask)->common,(yyvsp[(1) - (2)].uval));
2088f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].modMask)->common;
2089f46a6179Smrg			}
2090f46a6179Smrg    break;
2091f46a6179Smrg
2092f46a6179Smrg  case 42:
2093f46a6179Smrg#line 282 "xkbparse.y"
2094f46a6179Smrg    {
2095f46a6179Smrg			    (yyvsp[(2) - (2)].groupCompat)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].groupCompat)->common,(yyvsp[(1) - (2)].uval));
2096f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].groupCompat)->common;
2097f46a6179Smrg			}
2098f46a6179Smrg    break;
2099f46a6179Smrg
2100f46a6179Smrg  case 43:
2101f46a6179Smrg#line 287 "xkbparse.y"
2102f46a6179Smrg    {
2103f46a6179Smrg			    (yyvsp[(2) - (2)].ledMap)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].ledMap)->common,(yyvsp[(1) - (2)].uval));
2104f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].ledMap)->common;
2105f46a6179Smrg			}
2106f46a6179Smrg    break;
2107f46a6179Smrg
2108f46a6179Smrg  case 44:
2109f46a6179Smrg#line 292 "xkbparse.y"
2110f46a6179Smrg    {
2111f46a6179Smrg			    (yyvsp[(2) - (2)].ledName)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].ledName)->common,(yyvsp[(1) - (2)].uval));
2112f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].ledName)->common;
2113f46a6179Smrg			}
2114f46a6179Smrg    break;
2115f46a6179Smrg
2116f46a6179Smrg  case 45:
2117f46a6179Smrg#line 297 "xkbparse.y"
2118f46a6179Smrg    {
2119f46a6179Smrg			    (yyvsp[(2) - (2)].shape)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].shape)->common,(yyvsp[(1) - (2)].uval));
2120f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].shape)->common;
2121f46a6179Smrg			}
2122f46a6179Smrg    break;
2123f46a6179Smrg
2124f46a6179Smrg  case 46:
2125f46a6179Smrg#line 302 "xkbparse.y"
2126f46a6179Smrg    {
2127f46a6179Smrg			    (yyvsp[(2) - (2)].section)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].section)->common,(yyvsp[(1) - (2)].uval));
2128f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].section)->common;
2129f46a6179Smrg			}
2130f46a6179Smrg    break;
2131f46a6179Smrg
2132f46a6179Smrg  case 47:
2133f46a6179Smrg#line 307 "xkbparse.y"
2134f46a6179Smrg    {
2135f46a6179Smrg			    (yyvsp[(2) - (2)].doodad)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].doodad)->common,(yyvsp[(1) - (2)].uval));
2136f46a6179Smrg			    (yyval.any)= &(yyvsp[(2) - (2)].doodad)->common;
2137f46a6179Smrg			}
2138f46a6179Smrg    break;
2139f46a6179Smrg
2140f46a6179Smrg  case 48:
2141f46a6179Smrg#line 312 "xkbparse.y"
2142f46a6179Smrg    {
2143f46a6179Smrg			    if ((yyvsp[(1) - (2)].uval)==MergeAltForm) {
2144f46a6179Smrg				yyerror("cannot use 'alternate' to include other maps");
2145f46a6179Smrg				(yyval.any)= &IncludeCreate(scanStr,MergeDefault)->common;
2146f46a6179Smrg			    }
2147f46a6179Smrg			    else {
2148f46a6179Smrg				(yyval.any)= &IncludeCreate(scanStr,(yyvsp[(1) - (2)].uval))->common;
2149f46a6179Smrg			    }
2150f46a6179Smrg                        }
2151f46a6179Smrg    break;
2152f46a6179Smrg
2153f46a6179Smrg  case 49:
2154f46a6179Smrg#line 324 "xkbparse.y"
2155f46a6179Smrg    { (yyval.var)= VarCreate((yyvsp[(1) - (4)].expr),(yyvsp[(3) - (4)].expr)); }
2156f46a6179Smrg    break;
2157f46a6179Smrg
2158f46a6179Smrg  case 50:
2159f46a6179Smrg#line 326 "xkbparse.y"
2160f46a6179Smrg    { (yyval.var)= BoolVarCreate((yyvsp[(1) - (2)].sval),1); }
2161f46a6179Smrg    break;
2162f46a6179Smrg
2163f46a6179Smrg  case 51:
2164f46a6179Smrg#line 328 "xkbparse.y"
2165f46a6179Smrg    { (yyval.var)= BoolVarCreate((yyvsp[(2) - (3)].sval),0); }
2166f46a6179Smrg    break;
2167f46a6179Smrg
2168f46a6179Smrg  case 52:
2169f46a6179Smrg#line 332 "xkbparse.y"
2170f46a6179Smrg    {
2171f46a6179Smrg			    KeycodeDef *def;
2172f46a6179Smrg
2173f46a6179Smrg			    def= KeycodeCreate((yyvsp[(1) - (4)].str),(yyvsp[(3) - (4)].expr));
2174f46a6179Smrg			    if ((yyvsp[(1) - (4)].str))
2175f46a6179Smrg				free((yyvsp[(1) - (4)].str));
2176f46a6179Smrg			    (yyval.keyName)= def;
2177f46a6179Smrg			}
2178f46a6179Smrg    break;
2179f46a6179Smrg
2180f46a6179Smrg  case 53:
2181f46a6179Smrg#line 343 "xkbparse.y"
2182f46a6179Smrg    {
2183f46a6179Smrg			    KeyAliasDef	*def;
2184f46a6179Smrg			    def= KeyAliasCreate((yyvsp[(2) - (5)].str),(yyvsp[(4) - (5)].str));
2185f46a6179Smrg			    if ((yyvsp[(2) - (5)].str))	free((yyvsp[(2) - (5)].str));
2186f46a6179Smrg			    if ((yyvsp[(4) - (5)].str))	free((yyvsp[(4) - (5)].str));
2187f46a6179Smrg			    (yyval.keyAlias)= def;
2188f46a6179Smrg			}
2189f46a6179Smrg    break;
2190f46a6179Smrg
2191f46a6179Smrg  case 54:
2192f46a6179Smrg#line 353 "xkbparse.y"
2193f46a6179Smrg    { (yyval.vmod)= (yyvsp[(2) - (3)].vmod); }
2194f46a6179Smrg    break;
2195f46a6179Smrg
2196f46a6179Smrg  case 55:
2197f46a6179Smrg#line 357 "xkbparse.y"
2198f46a6179Smrg    { (yyval.vmod)= (VModDef *)AppendStmt(&(yyvsp[(1) - (3)].vmod)->common,&(yyvsp[(3) - (3)].vmod)->common); }
2199f46a6179Smrg    break;
2200f46a6179Smrg
2201f46a6179Smrg  case 56:
2202f46a6179Smrg#line 359 "xkbparse.y"
2203f46a6179Smrg    { (yyval.vmod)= (yyvsp[(1) - (1)].vmod); }
2204f46a6179Smrg    break;
2205f46a6179Smrg
2206f46a6179Smrg  case 57:
2207f46a6179Smrg#line 363 "xkbparse.y"
2208f46a6179Smrg    { (yyval.vmod)= VModCreate((yyvsp[(1) - (1)].sval),NULL); }
2209f46a6179Smrg    break;
2210f46a6179Smrg
2211f46a6179Smrg  case 58:
2212f46a6179Smrg#line 365 "xkbparse.y"
2213f46a6179Smrg    { (yyval.vmod)= VModCreate((yyvsp[(1) - (3)].sval),(yyvsp[(3) - (3)].expr)); }
2214f46a6179Smrg    break;
2215f46a6179Smrg
2216f46a6179Smrg  case 59:
2217f46a6179Smrg#line 371 "xkbparse.y"
2218f46a6179Smrg    {
2219f46a6179Smrg			    (yyvsp[(2) - (6)].interp)->def= (yyvsp[(4) - (6)].var);
2220f46a6179Smrg			    (yyval.interp)= (yyvsp[(2) - (6)].interp);
2221f46a6179Smrg			}
2222f46a6179Smrg    break;
2223f46a6179Smrg
2224f46a6179Smrg  case 60:
2225f46a6179Smrg#line 378 "xkbparse.y"
2226f46a6179Smrg    { (yyval.interp)= InterpCreate((KeySym)(yyvsp[(1) - (3)].uval),(yyvsp[(3) - (3)].expr)); }
2227f46a6179Smrg    break;
2228f46a6179Smrg
2229f46a6179Smrg  case 61:
2230f46a6179Smrg#line 380 "xkbparse.y"
2231f46a6179Smrg    { (yyval.interp)= InterpCreate((KeySym)(yyvsp[(1) - (1)].uval),NULL); }
2232f46a6179Smrg    break;
2233f46a6179Smrg
2234f46a6179Smrg  case 62:
2235f46a6179Smrg#line 384 "xkbparse.y"
2236f46a6179Smrg    { (yyval.var)= (VarDef *)AppendStmt(&(yyvsp[(1) - (2)].var)->common,&(yyvsp[(2) - (2)].var)->common); }
2237f46a6179Smrg    break;
2238f46a6179Smrg
2239f46a6179Smrg  case 63:
2240f46a6179Smrg#line 386 "xkbparse.y"
2241f46a6179Smrg    { (yyval.var)= (yyvsp[(1) - (1)].var); }
2242f46a6179Smrg    break;
2243f46a6179Smrg
2244f46a6179Smrg  case 64:
2245f46a6179Smrg#line 392 "xkbparse.y"
2246f46a6179Smrg    { (yyval.keyType)= KeyTypeCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].var)); }
2247f46a6179Smrg    break;
2248f46a6179Smrg
2249f46a6179Smrg  case 65:
2250f46a6179Smrg#line 398 "xkbparse.y"
2251f46a6179Smrg    { (yyval.syms)= SymbolsCreate((yyvsp[(2) - (6)].str),(ExprDef *)(yyvsp[(4) - (6)].var)); }
2252f46a6179Smrg    break;
2253f46a6179Smrg
2254f46a6179Smrg  case 66:
2255f46a6179Smrg#line 402 "xkbparse.y"
2256f46a6179Smrg    { (yyval.var)= (VarDef *)AppendStmt(&(yyvsp[(1) - (3)].var)->common,&(yyvsp[(3) - (3)].var)->common); }
2257f46a6179Smrg    break;
2258f46a6179Smrg
2259f46a6179Smrg  case 67:
2260f46a6179Smrg#line 404 "xkbparse.y"
2261f46a6179Smrg    { (yyval.var)= (yyvsp[(1) - (1)].var); }
2262f46a6179Smrg    break;
2263f46a6179Smrg
2264f46a6179Smrg  case 68:
2265f46a6179Smrg#line 405 "xkbparse.y"
2266f46a6179Smrg    { (yyval.var)= NULL; }
2267f46a6179Smrg    break;
2268f46a6179Smrg
2269f46a6179Smrg  case 69:
2270f46a6179Smrg#line 409 "xkbparse.y"
2271f46a6179Smrg    { (yyval.var)= VarCreate((yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2272f46a6179Smrg    break;
2273f46a6179Smrg
2274f46a6179Smrg  case 70:
2275f46a6179Smrg#line 411 "xkbparse.y"
2276f46a6179Smrg    { (yyval.var)= VarCreate((yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2277f46a6179Smrg    break;
2278f46a6179Smrg
2279f46a6179Smrg  case 71:
2280f46a6179Smrg#line 413 "xkbparse.y"
2281f46a6179Smrg    { (yyval.var)= BoolVarCreate((yyvsp[(1) - (1)].sval),1); }
2282f46a6179Smrg    break;
2283f46a6179Smrg
2284f46a6179Smrg  case 72:
2285f46a6179Smrg#line 415 "xkbparse.y"
2286f46a6179Smrg    { (yyval.var)= BoolVarCreate((yyvsp[(2) - (2)].sval),0); }
2287f46a6179Smrg    break;
2288f46a6179Smrg
2289f46a6179Smrg  case 73:
2290f46a6179Smrg#line 417 "xkbparse.y"
2291f46a6179Smrg    { (yyval.var)= VarCreate(NULL,(yyvsp[(1) - (1)].expr)); }
2292f46a6179Smrg    break;
2293f46a6179Smrg
2294f46a6179Smrg  case 74:
2295f46a6179Smrg#line 421 "xkbparse.y"
2296f46a6179Smrg    { (yyval.expr)= (yyvsp[(2) - (3)].expr); }
2297f46a6179Smrg    break;
2298f46a6179Smrg
2299f46a6179Smrg  case 75:
2300f46a6179Smrg#line 423 "xkbparse.y"
2301f46a6179Smrg    { (yyval.expr)= ExprCreateUnary(ExprActionList,TypeAction,(yyvsp[(2) - (3)].expr)); }
2302f46a6179Smrg    break;
2303f46a6179Smrg
2304f46a6179Smrg  case 76:
2305f46a6179Smrg#line 427 "xkbparse.y"
2306f46a6179Smrg    { (yyval.groupCompat)= GroupCompatCreate((yyvsp[(2) - (5)].ival),(yyvsp[(4) - (5)].expr)); }
2307f46a6179Smrg    break;
2308f46a6179Smrg
2309f46a6179Smrg  case 77:
2310f46a6179Smrg#line 431 "xkbparse.y"
2311f46a6179Smrg    { (yyval.modMask)= ModMapCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].expr)); }
2312f46a6179Smrg    break;
2313f46a6179Smrg
2314f46a6179Smrg  case 78:
2315f46a6179Smrg#line 435 "xkbparse.y"
2316f46a6179Smrg    { (yyval.ledMap)= IndicatorMapCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].var)); }
2317f46a6179Smrg    break;
2318f46a6179Smrg
2319f46a6179Smrg  case 79:
2320f46a6179Smrg#line 439 "xkbparse.y"
2321f46a6179Smrg    { (yyval.ledName)= IndicatorNameCreate((yyvsp[(2) - (5)].ival),(yyvsp[(4) - (5)].expr),False); }
2322f46a6179Smrg    break;
2323f46a6179Smrg
2324f46a6179Smrg  case 80:
2325f46a6179Smrg#line 441 "xkbparse.y"
2326f46a6179Smrg    { (yyval.ledName)= IndicatorNameCreate((yyvsp[(3) - (6)].ival),(yyvsp[(5) - (6)].expr),True); }
2327f46a6179Smrg    break;
2328f46a6179Smrg
2329f46a6179Smrg  case 81:
2330f46a6179Smrg#line 445 "xkbparse.y"
2331f46a6179Smrg    { (yyval.shape)= ShapeDeclCreate((yyvsp[(2) - (6)].sval),(OutlineDef *)&(yyvsp[(4) - (6)].outline)->common); }
2332f46a6179Smrg    break;
2333f46a6179Smrg
2334f46a6179Smrg  case 82:
2335f46a6179Smrg#line 447 "xkbparse.y"
2336f46a6179Smrg    {
2337f46a6179Smrg			    OutlineDef *outlines;
2338f46a6179Smrg			    outlines= OutlineCreate(None,(yyvsp[(4) - (6)].expr));
2339f46a6179Smrg			    (yyval.shape)= ShapeDeclCreate((yyvsp[(2) - (6)].sval),outlines);
2340f46a6179Smrg			}
2341f46a6179Smrg    break;
2342f46a6179Smrg
2343f46a6179Smrg  case 83:
2344f46a6179Smrg#line 455 "xkbparse.y"
2345f46a6179Smrg    { (yyval.section)= SectionDeclCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].row)); }
2346f46a6179Smrg    break;
2347f46a6179Smrg
2348f46a6179Smrg  case 84:
2349f46a6179Smrg#line 459 "xkbparse.y"
2350f46a6179Smrg    { (yyval.row)=(RowDef *)AppendStmt(&(yyvsp[(1) - (2)].row)->common,&(yyvsp[(2) - (2)].row)->common);}
2351f46a6179Smrg    break;
2352f46a6179Smrg
2353f46a6179Smrg  case 85:
2354f46a6179Smrg#line 461 "xkbparse.y"
2355f46a6179Smrg    { (yyval.row)= (yyvsp[(1) - (1)].row); }
2356f46a6179Smrg    break;
2357f46a6179Smrg
2358f46a6179Smrg  case 86:
2359f46a6179Smrg#line 465 "xkbparse.y"
2360f46a6179Smrg    { (yyval.row)= RowDeclCreate((yyvsp[(3) - (5)].key)); }
2361f46a6179Smrg    break;
2362f46a6179Smrg
2363f46a6179Smrg  case 87:
2364f46a6179Smrg#line 467 "xkbparse.y"
2365f46a6179Smrg    { (yyval.row)= (RowDef *)(yyvsp[(1) - (1)].var); }
2366f46a6179Smrg    break;
2367f46a6179Smrg
2368f46a6179Smrg  case 88:
2369f46a6179Smrg#line 469 "xkbparse.y"
2370f46a6179Smrg    { (yyval.row)= (RowDef *)(yyvsp[(1) - (1)].doodad); }
2371f46a6179Smrg    break;
2372f46a6179Smrg
2373f46a6179Smrg  case 89:
2374f46a6179Smrg#line 471 "xkbparse.y"
2375f46a6179Smrg    { (yyval.row)= (RowDef *)(yyvsp[(1) - (1)].ledMap); }
2376f46a6179Smrg    break;
2377f46a6179Smrg
2378f46a6179Smrg  case 90:
2379f46a6179Smrg#line 473 "xkbparse.y"
2380f46a6179Smrg    { (yyval.row)= (RowDef *)(yyvsp[(1) - (1)].overlay); }
2381f46a6179Smrg    break;
2382f46a6179Smrg
2383f46a6179Smrg  case 91:
2384f46a6179Smrg#line 477 "xkbparse.y"
2385f46a6179Smrg    { (yyval.key)=(KeyDef *)AppendStmt(&(yyvsp[(1) - (2)].key)->common,&(yyvsp[(2) - (2)].key)->common);}
2386f46a6179Smrg    break;
2387f46a6179Smrg
2388f46a6179Smrg  case 92:
2389f46a6179Smrg#line 479 "xkbparse.y"
2390f46a6179Smrg    { (yyval.key)= (yyvsp[(1) - (1)].key); }
2391f46a6179Smrg    break;
2392f46a6179Smrg
2393f46a6179Smrg  case 93:
2394f46a6179Smrg#line 483 "xkbparse.y"
2395f46a6179Smrg    { (yyval.key)= (yyvsp[(3) - (5)].key); }
2396f46a6179Smrg    break;
2397f46a6179Smrg
2398f46a6179Smrg  case 94:
2399f46a6179Smrg#line 485 "xkbparse.y"
2400f46a6179Smrg    { (yyval.key)= (KeyDef *)(yyvsp[(1) - (1)].var); }
2401f46a6179Smrg    break;
2402f46a6179Smrg
2403f46a6179Smrg  case 95:
2404f46a6179Smrg#line 489 "xkbparse.y"
2405f46a6179Smrg    { (yyval.key)=(KeyDef *)AppendStmt(&(yyvsp[(1) - (3)].key)->common,&(yyvsp[(3) - (3)].key)->common);}
2406f46a6179Smrg    break;
2407f46a6179Smrg
2408f46a6179Smrg  case 96:
2409f46a6179Smrg#line 491 "xkbparse.y"
2410f46a6179Smrg    { (yyval.key)= (yyvsp[(1) - (1)].key); }
2411f46a6179Smrg    break;
2412f46a6179Smrg
2413f46a6179Smrg  case 97:
2414f46a6179Smrg#line 495 "xkbparse.y"
2415f46a6179Smrg    { (yyval.key)= KeyDeclCreate((yyvsp[(1) - (1)].str),NULL); }
2416f46a6179Smrg    break;
2417f46a6179Smrg
2418f46a6179Smrg  case 98:
2419f46a6179Smrg#line 497 "xkbparse.y"
2420f46a6179Smrg    { (yyval.key)= KeyDeclCreate(NULL,(yyvsp[(2) - (3)].expr)); }
2421f46a6179Smrg    break;
2422f46a6179Smrg
2423f46a6179Smrg  case 99:
2424f46a6179Smrg#line 501 "xkbparse.y"
2425f46a6179Smrg    { (yyval.overlay)= OverlayDeclCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].olKey)); }
2426f46a6179Smrg    break;
2427f46a6179Smrg
2428f46a6179Smrg  case 100:
2429f46a6179Smrg#line 505 "xkbparse.y"
2430f46a6179Smrg    {
2431f46a6179Smrg			    (yyval.olKey)= (OverlayKeyDef *)
2432f46a6179Smrg				AppendStmt(&(yyvsp[(1) - (3)].olKey)->common,&(yyvsp[(3) - (3)].olKey)->common);
2433f46a6179Smrg			}
2434f46a6179Smrg    break;
2435f46a6179Smrg
2436f46a6179Smrg  case 101:
2437f46a6179Smrg#line 510 "xkbparse.y"
2438f46a6179Smrg    { (yyval.olKey)= (yyvsp[(1) - (1)].olKey); }
2439f46a6179Smrg    break;
2440f46a6179Smrg
2441f46a6179Smrg  case 102:
2442f46a6179Smrg#line 514 "xkbparse.y"
2443f46a6179Smrg    { (yyval.olKey)= OverlayKeyCreate((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str)); }
2444f46a6179Smrg    break;
2445f46a6179Smrg
2446f46a6179Smrg  case 103:
2447f46a6179Smrg#line 518 "xkbparse.y"
2448f46a6179Smrg    { (yyval.outline)=(OutlineDef *)AppendStmt(&(yyvsp[(1) - (3)].outline)->common,&(yyvsp[(3) - (3)].outline)->common);}
2449f46a6179Smrg    break;
2450f46a6179Smrg
2451f46a6179Smrg  case 104:
2452f46a6179Smrg#line 520 "xkbparse.y"
2453f46a6179Smrg    { (yyval.outline)= (yyvsp[(1) - (1)].outline); }
2454f46a6179Smrg    break;
2455f46a6179Smrg
2456f46a6179Smrg  case 105:
2457f46a6179Smrg#line 524 "xkbparse.y"
2458f46a6179Smrg    { (yyval.outline)= OutlineCreate(None,(yyvsp[(2) - (3)].expr)); }
2459f46a6179Smrg    break;
2460f46a6179Smrg
2461f46a6179Smrg  case 106:
2462f46a6179Smrg#line 526 "xkbparse.y"
2463f46a6179Smrg    { (yyval.outline)= OutlineCreate((yyvsp[(1) - (5)].sval),(yyvsp[(4) - (5)].expr)); }
2464f46a6179Smrg    break;
2465f46a6179Smrg
2466f46a6179Smrg  case 107:
2467f46a6179Smrg#line 528 "xkbparse.y"
2468f46a6179Smrg    { (yyval.outline)= OutlineCreate((yyvsp[(1) - (3)].sval),(yyvsp[(3) - (3)].expr)); }
2469f46a6179Smrg    break;
2470f46a6179Smrg
2471f46a6179Smrg  case 108:
2472f46a6179Smrg#line 532 "xkbparse.y"
2473f46a6179Smrg    { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[(1) - (3)].expr)->common,&(yyvsp[(3) - (3)].expr)->common); }
2474f46a6179Smrg    break;
2475f46a6179Smrg
2476f46a6179Smrg  case 109:
2477f46a6179Smrg#line 534 "xkbparse.y"
2478f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2479f46a6179Smrg    break;
2480f46a6179Smrg
2481f46a6179Smrg  case 110:
2482f46a6179Smrg#line 538 "xkbparse.y"
2483f46a6179Smrg    {
2484f46a6179Smrg			    ExprDef *expr;
2485f46a6179Smrg			    expr= ExprCreate(ExprCoord,TypeUnknown);
2486f46a6179Smrg			    expr->value.coord.x= (yyvsp[(2) - (5)].ival);
2487f46a6179Smrg			    expr->value.coord.y= (yyvsp[(4) - (5)].ival);
2488f46a6179Smrg			    (yyval.expr)= expr;
2489f46a6179Smrg			}
2490f46a6179Smrg    break;
2491f46a6179Smrg
2492f46a6179Smrg  case 111:
2493f46a6179Smrg#line 548 "xkbparse.y"
2494f46a6179Smrg    { (yyval.doodad)= DoodadCreate((yyvsp[(1) - (6)].uval),(yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].var)); }
2495f46a6179Smrg    break;
2496f46a6179Smrg
2497f46a6179Smrg  case 112:
2498f46a6179Smrg#line 551 "xkbparse.y"
2499f46a6179Smrg    { (yyval.uval)= XkbTextDoodad; }
2500f46a6179Smrg    break;
2501f46a6179Smrg
2502f46a6179Smrg  case 113:
2503f46a6179Smrg#line 552 "xkbparse.y"
2504f46a6179Smrg    { (yyval.uval)= XkbOutlineDoodad; }
2505f46a6179Smrg    break;
2506f46a6179Smrg
2507f46a6179Smrg  case 114:
2508f46a6179Smrg#line 553 "xkbparse.y"
2509f46a6179Smrg    { (yyval.uval)= XkbSolidDoodad; }
2510f46a6179Smrg    break;
2511f46a6179Smrg
2512f46a6179Smrg  case 115:
2513f46a6179Smrg#line 554 "xkbparse.y"
2514f46a6179Smrg    { (yyval.uval)= XkbLogoDoodad; }
2515f46a6179Smrg    break;
2516f46a6179Smrg
2517f46a6179Smrg  case 116:
2518f46a6179Smrg#line 557 "xkbparse.y"
2519f46a6179Smrg    { (yyval.sval)= (yyvsp[(1) - (1)].sval); }
2520f46a6179Smrg    break;
2521f46a6179Smrg
2522f46a6179Smrg  case 117:
2523f46a6179Smrg#line 558 "xkbparse.y"
2524f46a6179Smrg    { (yyval.sval)= (yyvsp[(1) - (1)].sval); }
2525f46a6179Smrg    break;
2526f46a6179Smrg
2527f46a6179Smrg  case 118:
2528f46a6179Smrg#line 562 "xkbparse.y"
2529f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"action",False); }
2530f46a6179Smrg    break;
2531f46a6179Smrg
2532f46a6179Smrg  case 119:
2533f46a6179Smrg#line 564 "xkbparse.y"
2534f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"interpret",False); }
2535f46a6179Smrg    break;
2536f46a6179Smrg
2537f46a6179Smrg  case 120:
2538f46a6179Smrg#line 566 "xkbparse.y"
2539f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"type",False); }
2540f46a6179Smrg    break;
2541f46a6179Smrg
2542f46a6179Smrg  case 121:
2543f46a6179Smrg#line 568 "xkbparse.y"
2544f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"key",False); }
2545f46a6179Smrg    break;
2546f46a6179Smrg
2547f46a6179Smrg  case 122:
2548f46a6179Smrg#line 570 "xkbparse.y"
2549f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"group",False); }
2550f46a6179Smrg    break;
2551f46a6179Smrg
2552f46a6179Smrg  case 123:
2553f46a6179Smrg#line 572 "xkbparse.y"
2554f46a6179Smrg    {(yyval.sval)=XkbInternAtom(NULL,"modifier_map",False);}
2555f46a6179Smrg    break;
2556f46a6179Smrg
2557f46a6179Smrg  case 124:
2558f46a6179Smrg#line 574 "xkbparse.y"
2559f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"indicator",False); }
2560f46a6179Smrg    break;
2561f46a6179Smrg
2562f46a6179Smrg  case 125:
2563f46a6179Smrg#line 576 "xkbparse.y"
2564f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"shape",False); }
2565f46a6179Smrg    break;
2566f46a6179Smrg
2567f46a6179Smrg  case 126:
2568f46a6179Smrg#line 578 "xkbparse.y"
2569f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"row",False); }
2570f46a6179Smrg    break;
2571f46a6179Smrg
2572f46a6179Smrg  case 127:
2573f46a6179Smrg#line 580 "xkbparse.y"
2574f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"section",False); }
2575f46a6179Smrg    break;
2576f46a6179Smrg
2577f46a6179Smrg  case 128:
2578f46a6179Smrg#line 582 "xkbparse.y"
2579f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"text",False); }
2580f46a6179Smrg    break;
2581f46a6179Smrg
2582f46a6179Smrg  case 129:
2583f46a6179Smrg#line 585 "xkbparse.y"
2584f46a6179Smrg    { (yyval.uval)= (yyvsp[(1) - (1)].uval); }
2585f46a6179Smrg    break;
2586f46a6179Smrg
2587f46a6179Smrg  case 130:
2588f46a6179Smrg#line 586 "xkbparse.y"
2589f46a6179Smrg    { (yyval.uval)= MergeDefault; }
2590f46a6179Smrg    break;
2591f46a6179Smrg
2592f46a6179Smrg  case 131:
2593f46a6179Smrg#line 589 "xkbparse.y"
2594f46a6179Smrg    { (yyval.uval)= MergeDefault; }
2595f46a6179Smrg    break;
2596f46a6179Smrg
2597f46a6179Smrg  case 132:
2598f46a6179Smrg#line 590 "xkbparse.y"
2599f46a6179Smrg    { (yyval.uval)= MergeAugment; }
2600f46a6179Smrg    break;
2601f46a6179Smrg
2602f46a6179Smrg  case 133:
2603f46a6179Smrg#line 591 "xkbparse.y"
2604f46a6179Smrg    { (yyval.uval)= MergeOverride; }
2605f46a6179Smrg    break;
2606f46a6179Smrg
2607f46a6179Smrg  case 134:
2608f46a6179Smrg#line 592 "xkbparse.y"
2609f46a6179Smrg    { (yyval.uval)= MergeReplace; }
2610f46a6179Smrg    break;
2611f46a6179Smrg
2612f46a6179Smrg  case 135:
2613f46a6179Smrg#line 593 "xkbparse.y"
2614f46a6179Smrg    { (yyval.uval)= MergeAltForm; }
2615f46a6179Smrg    break;
2616f46a6179Smrg
2617f46a6179Smrg  case 136:
2618f46a6179Smrg#line 596 "xkbparse.y"
2619f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2620f46a6179Smrg    break;
2621f46a6179Smrg
2622f46a6179Smrg  case 137:
2623f46a6179Smrg#line 597 "xkbparse.y"
2624f46a6179Smrg    { (yyval.expr)= NULL; }
2625f46a6179Smrg    break;
2626f46a6179Smrg
2627f46a6179Smrg  case 138:
2628f46a6179Smrg#line 601 "xkbparse.y"
2629f46a6179Smrg    { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[(1) - (3)].expr)->common,&(yyvsp[(3) - (3)].expr)->common); }
2630f46a6179Smrg    break;
2631f46a6179Smrg
2632f46a6179Smrg  case 139:
2633f46a6179Smrg#line 603 "xkbparse.y"
2634f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2635f46a6179Smrg    break;
2636f46a6179Smrg
2637f46a6179Smrg  case 140:
2638f46a6179Smrg#line 607 "xkbparse.y"
2639f46a6179Smrg    { (yyval.expr)= ExprCreateBinary(OpDivide,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2640f46a6179Smrg    break;
2641f46a6179Smrg
2642f46a6179Smrg  case 141:
2643f46a6179Smrg#line 609 "xkbparse.y"
2644f46a6179Smrg    { (yyval.expr)= ExprCreateBinary(OpAdd,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2645f46a6179Smrg    break;
2646f46a6179Smrg
2647f46a6179Smrg  case 142:
2648f46a6179Smrg#line 611 "xkbparse.y"
2649f46a6179Smrg    { (yyval.expr)= ExprCreateBinary(OpSubtract,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2650f46a6179Smrg    break;
2651f46a6179Smrg
2652f46a6179Smrg  case 143:
2653f46a6179Smrg#line 613 "xkbparse.y"
2654f46a6179Smrg    { (yyval.expr)= ExprCreateBinary(OpMultiply,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2655f46a6179Smrg    break;
2656f46a6179Smrg
2657f46a6179Smrg  case 144:
2658f46a6179Smrg#line 615 "xkbparse.y"
2659f46a6179Smrg    { (yyval.expr)= ExprCreateBinary(OpAssign,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2660f46a6179Smrg    break;
2661f46a6179Smrg
2662f46a6179Smrg  case 145:
2663f46a6179Smrg#line 617 "xkbparse.y"
2664f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2665f46a6179Smrg    break;
2666f46a6179Smrg
2667f46a6179Smrg  case 146:
2668f46a6179Smrg#line 621 "xkbparse.y"
2669f46a6179Smrg    { (yyval.expr)= ExprCreateUnary(OpNegate,(yyvsp[(2) - (2)].expr)->type,(yyvsp[(2) - (2)].expr)); }
2670f46a6179Smrg    break;
2671f46a6179Smrg
2672f46a6179Smrg  case 147:
2673f46a6179Smrg#line 623 "xkbparse.y"
2674f46a6179Smrg    { (yyval.expr)= ExprCreateUnary(OpUnaryPlus,(yyvsp[(2) - (2)].expr)->type,(yyvsp[(2) - (2)].expr)); }
2675f46a6179Smrg    break;
2676f46a6179Smrg
2677f46a6179Smrg  case 148:
2678f46a6179Smrg#line 625 "xkbparse.y"
2679f46a6179Smrg    { (yyval.expr)= ExprCreateUnary(OpNot,TypeBoolean,(yyvsp[(2) - (2)].expr)); }
2680f46a6179Smrg    break;
2681f46a6179Smrg
2682f46a6179Smrg  case 149:
2683f46a6179Smrg#line 627 "xkbparse.y"
2684f46a6179Smrg    { (yyval.expr)= ExprCreateUnary(OpInvert,(yyvsp[(2) - (2)].expr)->type,(yyvsp[(2) - (2)].expr)); }
2685f46a6179Smrg    break;
2686f46a6179Smrg
2687f46a6179Smrg  case 150:
2688f46a6179Smrg#line 629 "xkbparse.y"
2689f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr);  }
2690f46a6179Smrg    break;
2691f46a6179Smrg
2692f46a6179Smrg  case 151:
2693f46a6179Smrg#line 631 "xkbparse.y"
2694f46a6179Smrg    { (yyval.expr)= ActionCreate((yyvsp[(1) - (4)].sval),(yyvsp[(3) - (4)].expr)); }
2695f46a6179Smrg    break;
2696f46a6179Smrg
2697f46a6179Smrg  case 152:
2698f46a6179Smrg#line 633 "xkbparse.y"
2699f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr);  }
2700f46a6179Smrg    break;
2701f46a6179Smrg
2702f46a6179Smrg  case 153:
2703f46a6179Smrg#line 635 "xkbparse.y"
2704f46a6179Smrg    { (yyval.expr)= (yyvsp[(2) - (3)].expr);  }
2705f46a6179Smrg    break;
2706f46a6179Smrg
2707f46a6179Smrg  case 154:
2708f46a6179Smrg#line 639 "xkbparse.y"
2709f46a6179Smrg    { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[(1) - (3)].expr)->common,&(yyvsp[(3) - (3)].expr)->common); }
2710f46a6179Smrg    break;
2711f46a6179Smrg
2712f46a6179Smrg  case 155:
2713f46a6179Smrg#line 641 "xkbparse.y"
2714f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2715f46a6179Smrg    break;
2716f46a6179Smrg
2717f46a6179Smrg  case 156:
2718f46a6179Smrg#line 645 "xkbparse.y"
2719f46a6179Smrg    { (yyval.expr)= ActionCreate((yyvsp[(1) - (4)].sval),(yyvsp[(3) - (4)].expr)); }
2720f46a6179Smrg    break;
2721f46a6179Smrg
2722f46a6179Smrg  case 157:
2723f46a6179Smrg#line 649 "xkbparse.y"
2724f46a6179Smrg    {
2725f46a6179Smrg			    ExprDef *expr;
2726f46a6179Smrg                            expr= ExprCreate(ExprIdent,TypeUnknown);
2727f46a6179Smrg                            expr->value.str= (yyvsp[(1) - (1)].sval);
2728f46a6179Smrg                            (yyval.expr)= expr;
2729f46a6179Smrg			}
2730f46a6179Smrg    break;
2731f46a6179Smrg
2732f46a6179Smrg  case 158:
2733f46a6179Smrg#line 656 "xkbparse.y"
2734f46a6179Smrg    {
2735f46a6179Smrg                            ExprDef *expr;
2736f46a6179Smrg                            expr= ExprCreate(ExprFieldRef,TypeUnknown);
2737f46a6179Smrg                            expr->value.field.element= (yyvsp[(1) - (3)].sval);
2738f46a6179Smrg                            expr->value.field.field= (yyvsp[(3) - (3)].sval);
2739f46a6179Smrg                            (yyval.expr)= expr;
2740f46a6179Smrg			}
2741f46a6179Smrg    break;
2742f46a6179Smrg
2743f46a6179Smrg  case 159:
2744f46a6179Smrg#line 664 "xkbparse.y"
2745f46a6179Smrg    {
2746f46a6179Smrg			    ExprDef *expr;
2747f46a6179Smrg			    expr= ExprCreate(ExprArrayRef,TypeUnknown);
2748f46a6179Smrg			    expr->value.array.element= None;
2749f46a6179Smrg			    expr->value.array.field= (yyvsp[(1) - (4)].sval);
2750f46a6179Smrg			    expr->value.array.entry= (yyvsp[(3) - (4)].expr);
2751f46a6179Smrg			    (yyval.expr)= expr;
2752f46a6179Smrg			}
2753f46a6179Smrg    break;
2754f46a6179Smrg
2755f46a6179Smrg  case 160:
2756f46a6179Smrg#line 673 "xkbparse.y"
2757f46a6179Smrg    {
2758f46a6179Smrg			    ExprDef *expr;
2759f46a6179Smrg			    expr= ExprCreate(ExprArrayRef,TypeUnknown);
2760f46a6179Smrg			    expr->value.array.element= (yyvsp[(1) - (6)].sval);
2761f46a6179Smrg			    expr->value.array.field= (yyvsp[(3) - (6)].sval);
2762f46a6179Smrg			    expr->value.array.entry= (yyvsp[(5) - (6)].expr);
2763f46a6179Smrg			    (yyval.expr)= expr;
2764f46a6179Smrg			}
2765f46a6179Smrg    break;
2766f46a6179Smrg
2767f46a6179Smrg  case 161:
2768f46a6179Smrg#line 684 "xkbparse.y"
2769f46a6179Smrg    {
2770f46a6179Smrg			    ExprDef *expr;
2771f46a6179Smrg                            expr= ExprCreate(ExprValue,TypeString);
2772f46a6179Smrg                            expr->value.str= (yyvsp[(1) - (1)].sval);
2773f46a6179Smrg                            (yyval.expr)= expr;
2774f46a6179Smrg			}
2775f46a6179Smrg    break;
2776f46a6179Smrg
2777f46a6179Smrg  case 162:
2778f46a6179Smrg#line 691 "xkbparse.y"
2779f46a6179Smrg    {
2780f46a6179Smrg			    ExprDef *expr;
2781f46a6179Smrg                            expr= ExprCreate(ExprValue,TypeInt);
2782f46a6179Smrg                            expr->value.ival= (yyvsp[(1) - (1)].ival);
2783f46a6179Smrg                            (yyval.expr)= expr;
2784f46a6179Smrg			}
2785f46a6179Smrg    break;
2786f46a6179Smrg
2787f46a6179Smrg  case 163:
2788f46a6179Smrg#line 698 "xkbparse.y"
2789f46a6179Smrg    {
2790f46a6179Smrg			    ExprDef *expr;
2791f46a6179Smrg			    expr= ExprCreate(ExprValue,TypeFloat);
2792f46a6179Smrg			    expr->value.ival= (yyvsp[(1) - (1)].ival);
2793f46a6179Smrg			    (yyval.expr)= expr;
2794f46a6179Smrg			}
2795f46a6179Smrg    break;
2796f46a6179Smrg
2797f46a6179Smrg  case 164:
2798f46a6179Smrg#line 705 "xkbparse.y"
2799f46a6179Smrg    {
2800f46a6179Smrg			    ExprDef *expr;
2801f46a6179Smrg			    expr= ExprCreate(ExprValue,TypeKeyName);
2802f46a6179Smrg			    memset(expr->value.keyName,0,5);
2803f46a6179Smrg			    strncpy(expr->value.keyName,(yyvsp[(1) - (1)].str),4);
2804f46a6179Smrg			    free((yyvsp[(1) - (1)].str));
2805f46a6179Smrg			    (yyval.expr)= expr;
2806f46a6179Smrg			}
2807f46a6179Smrg    break;
2808f46a6179Smrg
2809f46a6179Smrg  case 165:
2810f46a6179Smrg#line 715 "xkbparse.y"
2811f46a6179Smrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2812f46a6179Smrg    break;
2813f46a6179Smrg
2814f46a6179Smrg  case 166:
2815f46a6179Smrg#line 716 "xkbparse.y"
2816f46a6179Smrg    { (yyval.expr)= NULL; }
2817f46a6179Smrg    break;
2818f46a6179Smrg
2819f46a6179Smrg  case 167:
2820f46a6179Smrg#line 720 "xkbparse.y"
2821f46a6179Smrg    { (yyval.expr)= AppendKeysymList((yyvsp[(1) - (3)].expr),(KeySym)(yyvsp[(3) - (3)].uval)); }
2822f46a6179Smrg    break;
2823f46a6179Smrg
2824f46a6179Smrg  case 168:
2825f46a6179Smrg#line 722 "xkbparse.y"
2826f46a6179Smrg    { (yyval.expr)= CreateKeysymList((KeySym)(yyvsp[(1) - (1)].uval)); }
2827f46a6179Smrg    break;
2828f46a6179Smrg
2829f46a6179Smrg  case 169:
2830f46a6179Smrg#line 726 "xkbparse.y"
2831f46a6179Smrg    {
2832f46a6179Smrg			    KeySym sym;
2833f46a6179Smrg			    if (LookupKeysym(scanStr,&sym))
2834f46a6179Smrg				(yyval.uval)= sym;
2835f46a6179Smrg			    else {
2836f46a6179Smrg				char buf[120];
2837f46a6179Smrg				sprintf(buf,"expected keysym, got %s",
2838f46a6179Smrg							uStringText(scanStr));
2839f46a6179Smrg				yyerror(buf);
2840f46a6179Smrg				yynerrs++;
2841f46a6179Smrg				(yyval.uval)= NoSymbol;
2842f46a6179Smrg			    }
2843f46a6179Smrg			}
2844f46a6179Smrg    break;
2845f46a6179Smrg
2846f46a6179Smrg  case 170:
2847f46a6179Smrg#line 740 "xkbparse.y"
2848f46a6179Smrg    {
2849f46a6179Smrg			    (yyval.uval)= XK_section;
2850f46a6179Smrg			}
2851f46a6179Smrg    break;
2852f46a6179Smrg
2853f46a6179Smrg  case 171:
2854f46a6179Smrg#line 744 "xkbparse.y"
2855f46a6179Smrg    {
2856f46a6179Smrg			    if ((yyvsp[(1) - (1)].ival)<10)	(yyval.uval)= (yyvsp[(1) - (1)].ival)+'0';	/* XK_0 .. XK_9 */
2857f46a6179Smrg			    else	(yyval.uval)= (yyvsp[(1) - (1)].ival);
2858f46a6179Smrg			}
2859f46a6179Smrg    break;
2860f46a6179Smrg
2861f46a6179Smrg  case 172:
2862f46a6179Smrg#line 750 "xkbparse.y"
2863f46a6179Smrg    { (yyval.ival)= -(yyvsp[(2) - (2)].ival); }
2864f46a6179Smrg    break;
2865f46a6179Smrg
2866f46a6179Smrg  case 173:
2867f46a6179Smrg#line 751 "xkbparse.y"
2868f46a6179Smrg    { (yyval.ival)= (yyvsp[(1) - (1)].ival); }
2869f46a6179Smrg    break;
2870f46a6179Smrg
2871f46a6179Smrg  case 174:
2872f46a6179Smrg#line 754 "xkbparse.y"
2873f46a6179Smrg    { (yyval.ival)= scanInt; }
2874f46a6179Smrg    break;
2875f46a6179Smrg
2876f46a6179Smrg  case 175:
2877f46a6179Smrg#line 755 "xkbparse.y"
2878f46a6179Smrg    { (yyval.ival)= scanInt*XkbGeomPtsPerMM; }
2879f46a6179Smrg    break;
2880f46a6179Smrg
2881f46a6179Smrg  case 176:
2882f46a6179Smrg#line 758 "xkbparse.y"
2883f46a6179Smrg    { (yyval.ival)= scanInt; }
2884f46a6179Smrg    break;
2885f46a6179Smrg
2886f46a6179Smrg  case 177:
2887f46a6179Smrg#line 761 "xkbparse.y"
2888f46a6179Smrg    { (yyval.ival)= scanInt; }
2889f46a6179Smrg    break;
2890f46a6179Smrg
2891f46a6179Smrg  case 178:
2892f46a6179Smrg#line 764 "xkbparse.y"
2893f46a6179Smrg    { (yyval.str)= scanStr; scanStr= NULL; }
2894f46a6179Smrg    break;
2895f46a6179Smrg
2896f46a6179Smrg  case 179:
2897f46a6179Smrg#line 767 "xkbparse.y"
2898f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,scanStr,False); }
2899f46a6179Smrg    break;
2900f46a6179Smrg
2901f46a6179Smrg  case 180:
2902f46a6179Smrg#line 768 "xkbparse.y"
2903f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,"default",False); }
2904f46a6179Smrg    break;
2905f46a6179Smrg
2906f46a6179Smrg  case 181:
2907f46a6179Smrg#line 771 "xkbparse.y"
2908f46a6179Smrg    { (yyval.sval)= XkbInternAtom(NULL,scanStr,False); }
2909f46a6179Smrg    break;
2910f46a6179Smrg
2911f46a6179Smrg  case 182:
2912f46a6179Smrg#line 774 "xkbparse.y"
2913f46a6179Smrg    { (yyval.str)= (yyvsp[(1) - (1)].str); }
2914f46a6179Smrg    break;
2915f46a6179Smrg
2916f46a6179Smrg  case 183:
2917f46a6179Smrg#line 775 "xkbparse.y"
2918f46a6179Smrg    { (yyval.str)= NULL; }
2919f46a6179Smrg    break;
2920f46a6179Smrg
2921f46a6179Smrg  case 184:
2922f46a6179Smrg#line 778 "xkbparse.y"
2923f46a6179Smrg    { (yyval.str)= scanStr; scanStr= NULL; }
2924f46a6179Smrg    break;
2925f46a6179Smrg
2926f46a6179Smrg
2927f46a6179Smrg/* Line 1267 of yacc.c.  */
2928f46a6179Smrg#line 2929 "xkbparse.c"
2929f46a6179Smrg      default: break;
2930f46a6179Smrg    }
2931f46a6179Smrg  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
2932f46a6179Smrg
2933f46a6179Smrg  YYPOPSTACK (yylen);
2934f46a6179Smrg  yylen = 0;
2935f46a6179Smrg  YY_STACK_PRINT (yyss, yyssp);
2936f46a6179Smrg
2937f46a6179Smrg  *++yyvsp = yyval;
2938f46a6179Smrg
2939f46a6179Smrg
2940f46a6179Smrg  /* Now `shift' the result of the reduction.  Determine what state
2941f46a6179Smrg     that goes to, based on the state we popped back to and the rule
2942f46a6179Smrg     number reduced by.  */
2943f46a6179Smrg
2944f46a6179Smrg  yyn = yyr1[yyn];
2945f46a6179Smrg
2946f46a6179Smrg  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2947f46a6179Smrg  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2948f46a6179Smrg    yystate = yytable[yystate];
2949f46a6179Smrg  else
2950f46a6179Smrg    yystate = yydefgoto[yyn - YYNTOKENS];
2951f46a6179Smrg
2952f46a6179Smrg  goto yynewstate;
2953f46a6179Smrg
2954f46a6179Smrg
2955f46a6179Smrg/*------------------------------------.
2956f46a6179Smrg| yyerrlab -- here on detecting error |
2957f46a6179Smrg`------------------------------------*/
2958f46a6179Smrgyyerrlab:
2959f46a6179Smrg  /* If not already recovering from an error, report this error.  */
2960f46a6179Smrg  if (!yyerrstatus)
2961f46a6179Smrg    {
2962f46a6179Smrg      ++yynerrs;
2963f46a6179Smrg#if ! YYERROR_VERBOSE
2964f46a6179Smrg      yyerror (YY_("syntax error"));
2965f46a6179Smrg#else
2966f46a6179Smrg      {
2967f46a6179Smrg	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
2968f46a6179Smrg	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
2969f46a6179Smrg	  {
2970f46a6179Smrg	    YYSIZE_T yyalloc = 2 * yysize;
2971f46a6179Smrg	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
2972f46a6179Smrg	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
2973f46a6179Smrg	    if (yymsg != yymsgbuf)
2974f46a6179Smrg	      YYSTACK_FREE (yymsg);
2975f46a6179Smrg	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
2976f46a6179Smrg	    if (yymsg)
2977f46a6179Smrg	      yymsg_alloc = yyalloc;
2978f46a6179Smrg	    else
2979f46a6179Smrg	      {
2980f46a6179Smrg		yymsg = yymsgbuf;
2981f46a6179Smrg		yymsg_alloc = sizeof yymsgbuf;
2982f46a6179Smrg	      }
2983f46a6179Smrg	  }
2984f46a6179Smrg
2985f46a6179Smrg	if (0 < yysize && yysize <= yymsg_alloc)
2986f46a6179Smrg	  {
2987f46a6179Smrg	    (void) yysyntax_error (yymsg, yystate, yychar);
2988f46a6179Smrg	    yyerror (yymsg);
2989f46a6179Smrg	  }
2990f46a6179Smrg	else
2991f46a6179Smrg	  {
2992f46a6179Smrg	    yyerror (YY_("syntax error"));
2993f46a6179Smrg	    if (yysize != 0)
2994f46a6179Smrg	      goto yyexhaustedlab;
2995f46a6179Smrg	  }
2996f46a6179Smrg      }
2997f46a6179Smrg#endif
2998f46a6179Smrg    }
2999f46a6179Smrg
3000f46a6179Smrg
3001f46a6179Smrg
3002f46a6179Smrg  if (yyerrstatus == 3)
3003f46a6179Smrg    {
3004f46a6179Smrg      /* If just tried and failed to reuse look-ahead token after an
3005f46a6179Smrg	 error, discard it.  */
3006f46a6179Smrg
3007f46a6179Smrg      if (yychar <= YYEOF)
3008f46a6179Smrg	{
3009f46a6179Smrg	  /* Return failure if at end of input.  */
3010f46a6179Smrg	  if (yychar == YYEOF)
3011f46a6179Smrg	    YYABORT;
3012f46a6179Smrg	}
3013f46a6179Smrg      else
3014f46a6179Smrg	{
3015f46a6179Smrg	  yydestruct ("Error: discarding",
3016f46a6179Smrg		      yytoken, &yylval);
3017f46a6179Smrg	  yychar = YYEMPTY;
3018f46a6179Smrg	}
3019f46a6179Smrg    }
3020f46a6179Smrg
3021f46a6179Smrg  /* Else will try to reuse look-ahead token after shifting the error
3022f46a6179Smrg     token.  */
3023f46a6179Smrg  goto yyerrlab1;
3024f46a6179Smrg
3025f46a6179Smrg
3026f46a6179Smrg/*---------------------------------------------------.
3027f46a6179Smrg| yyerrorlab -- error raised explicitly by YYERROR.  |
3028f46a6179Smrg`---------------------------------------------------*/
3029f46a6179Smrgyyerrorlab:
3030f46a6179Smrg
3031f46a6179Smrg  /* Pacify compilers like GCC when the user code never invokes
3032f46a6179Smrg     YYERROR and the label yyerrorlab therefore never appears in user
3033f46a6179Smrg     code.  */
3034f46a6179Smrg  if (/*CONSTCOND*/ 0)
3035f46a6179Smrg     goto yyerrorlab;
3036f46a6179Smrg
3037f46a6179Smrg  /* Do not reclaim the symbols of the rule which action triggered
3038f46a6179Smrg     this YYERROR.  */
3039f46a6179Smrg  YYPOPSTACK (yylen);
3040f46a6179Smrg  yylen = 0;
3041f46a6179Smrg  YY_STACK_PRINT (yyss, yyssp);
3042f46a6179Smrg  yystate = *yyssp;
3043f46a6179Smrg  goto yyerrlab1;
3044f46a6179Smrg
3045f46a6179Smrg
3046f46a6179Smrg/*-------------------------------------------------------------.
3047f46a6179Smrg| yyerrlab1 -- common code for both syntax error and YYERROR.  |
3048f46a6179Smrg`-------------------------------------------------------------*/
3049f46a6179Smrgyyerrlab1:
3050f46a6179Smrg  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
3051f46a6179Smrg
3052f46a6179Smrg  for (;;)
3053f46a6179Smrg    {
3054f46a6179Smrg      yyn = yypact[yystate];
3055f46a6179Smrg      if (yyn != YYPACT_NINF)
3056f46a6179Smrg	{
3057f46a6179Smrg	  yyn += YYTERROR;
3058f46a6179Smrg	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3059f46a6179Smrg	    {
3060f46a6179Smrg	      yyn = yytable[yyn];
3061f46a6179Smrg	      if (0 < yyn)
3062f46a6179Smrg		break;
3063f46a6179Smrg	    }
3064f46a6179Smrg	}
3065f46a6179Smrg
3066f46a6179Smrg      /* Pop the current state because it cannot handle the error token.  */
3067f46a6179Smrg      if (yyssp == yyss)
3068f46a6179Smrg	YYABORT;
3069f46a6179Smrg
3070f46a6179Smrg
3071f46a6179Smrg      yydestruct ("Error: popping",
3072f46a6179Smrg		  yystos[yystate], yyvsp);
3073f46a6179Smrg      YYPOPSTACK (1);
3074f46a6179Smrg      yystate = *yyssp;
3075f46a6179Smrg      YY_STACK_PRINT (yyss, yyssp);
3076f46a6179Smrg    }
3077f46a6179Smrg
3078f46a6179Smrg  if (yyn == YYFINAL)
3079f46a6179Smrg    YYACCEPT;
3080f46a6179Smrg
3081f46a6179Smrg  *++yyvsp = yylval;
3082f46a6179Smrg
3083f46a6179Smrg
3084f46a6179Smrg  /* Shift the error token.  */
3085f46a6179Smrg  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3086f46a6179Smrg
3087f46a6179Smrg  yystate = yyn;
3088f46a6179Smrg  goto yynewstate;
3089f46a6179Smrg
3090f46a6179Smrg
3091f46a6179Smrg/*-------------------------------------.
3092f46a6179Smrg| yyacceptlab -- YYACCEPT comes here.  |
3093f46a6179Smrg`-------------------------------------*/
3094f46a6179Smrgyyacceptlab:
3095f46a6179Smrg  yyresult = 0;
3096f46a6179Smrg  goto yyreturn;
3097f46a6179Smrg
3098f46a6179Smrg/*-----------------------------------.
3099f46a6179Smrg| yyabortlab -- YYABORT comes here.  |
3100f46a6179Smrg`-----------------------------------*/
3101f46a6179Smrgyyabortlab:
3102f46a6179Smrg  yyresult = 1;
3103f46a6179Smrg  goto yyreturn;
3104f46a6179Smrg
3105f46a6179Smrg#ifndef yyoverflow
3106f46a6179Smrg/*-------------------------------------------------.
3107f46a6179Smrg| yyexhaustedlab -- memory exhaustion comes here.  |
3108f46a6179Smrg`-------------------------------------------------*/
3109f46a6179Smrgyyexhaustedlab:
3110f46a6179Smrg  yyerror (YY_("memory exhausted"));
3111f46a6179Smrg  yyresult = 2;
3112f46a6179Smrg  /* Fall through.  */
3113f46a6179Smrg#endif
3114f46a6179Smrg
3115f46a6179Smrgyyreturn:
3116f46a6179Smrg  if (yychar != YYEOF && yychar != YYEMPTY)
3117f46a6179Smrg     yydestruct ("Cleanup: discarding lookahead",
3118f46a6179Smrg		 yytoken, &yylval);
3119f46a6179Smrg  /* Do not reclaim the symbols of the rule which action triggered
3120f46a6179Smrg     this YYABORT or YYACCEPT.  */
3121f46a6179Smrg  YYPOPSTACK (yylen);
3122f46a6179Smrg  YY_STACK_PRINT (yyss, yyssp);
3123f46a6179Smrg  while (yyssp != yyss)
3124f46a6179Smrg    {
3125f46a6179Smrg      yydestruct ("Cleanup: popping",
3126f46a6179Smrg		  yystos[*yyssp], yyvsp);
3127f46a6179Smrg      YYPOPSTACK (1);
3128f46a6179Smrg    }
3129f46a6179Smrg#ifndef yyoverflow
3130f46a6179Smrg  if (yyss != yyssa)
3131f46a6179Smrg    YYSTACK_FREE (yyss);
3132f46a6179Smrg#endif
3133f46a6179Smrg#if YYERROR_VERBOSE
3134f46a6179Smrg  if (yymsg != yymsgbuf)
3135f46a6179Smrg    YYSTACK_FREE (yymsg);
3136f46a6179Smrg#endif
3137f46a6179Smrg  /* Make sure YYID is used.  */
3138f46a6179Smrg  return YYID (yyresult);
3139f46a6179Smrg}
3140f46a6179Smrg
3141f46a6179Smrg
3142f46a6179Smrg#line 780 "xkbparse.y"
3143f46a6179Smrg
3144f46a6179Smrgvoid
3145f46a6179Smrgyyerror(const char *s)
3146f46a6179Smrg{
3147f46a6179Smrg    if (warningLevel>0) {
3148f46a6179Smrg	(void)fprintf(stderr,"%s: line %d of %s\n",s,lineNum,
3149f46a6179Smrg					(scanFile?scanFile:"(unknown)"));
3150f46a6179Smrg	if ((scanStr)&&(warningLevel>3))
3151f46a6179Smrg	    (void)fprintf(stderr,"last scanned symbol is: %s\n",scanStr);
3152f46a6179Smrg    }
3153f46a6179Smrg    return;
3154f46a6179Smrg}
3155f46a6179Smrg
3156f46a6179Smrg
3157f46a6179Smrgint
3158f46a6179Smrgyywrap(void)
3159f46a6179Smrg{
3160f46a6179Smrg   return 1;
3161f46a6179Smrg}
3162f46a6179Smrg
3163f46a6179Smrg
3164