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