xkbparse.c revision f757b1e9
1f757b1e9Smrg/* A Bison parser, made by GNU Bison 3.0.4.  */
2f46a6179Smrg
3c82dfdfbSmrg/* Bison implementation for Yacc-like parsers in C
4f757b1e9Smrg
5f757b1e9Smrg   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6f757b1e9Smrg
7c82dfdfbSmrg   This program is free software: you can redistribute it and/or modify
8690143ccSmrg   it under the terms of the GNU General Public License as published by
9c82dfdfbSmrg   the Free Software Foundation, either version 3 of the License, or
10c82dfdfbSmrg   (at your option) any later version.
11f757b1e9Smrg
12690143ccSmrg   This program is distributed in the hope that it will be useful,
13690143ccSmrg   but WITHOUT ANY WARRANTY; without even the implied warranty of
14690143ccSmrg   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15690143ccSmrg   GNU General Public License for more details.
16f757b1e9Smrg
17690143ccSmrg   You should have received a copy of the GNU General Public License
18c82dfdfbSmrg   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19f46a6179Smrg
20690143ccSmrg/* As a special exception, you may create a larger work that contains
21690143ccSmrg   part or all of the Bison parser skeleton and distribute that work
22690143ccSmrg   under terms of your choice, so long as that work isn't itself a
23690143ccSmrg   parser generator using the skeleton or a modified version thereof
24690143ccSmrg   as a parser skeleton.  Alternatively, if you modify or redistribute
25690143ccSmrg   the parser skeleton itself, you may (at your option) remove this
26690143ccSmrg   special exception, which will cause the skeleton and the resulting
27690143ccSmrg   Bison output files to be licensed under the GNU General Public
28690143ccSmrg   License without this special exception.
29f757b1e9Smrg
30690143ccSmrg   This special exception was added by the Free Software Foundation in
31690143ccSmrg   version 2.2 of Bison.  */
32f46a6179Smrg
33690143ccSmrg/* C LALR(1) parser skeleton written by Richard Stallman, by
34690143ccSmrg   simplifying the original so-called "semantic" parser.  */
35690143ccSmrg
36690143ccSmrg/* All symbols defined below should begin with yy or YY, to avoid
37690143ccSmrg   infringing on user name space.  This should be done even for local
38690143ccSmrg   variables, as they might otherwise be expanded by user macros.
39690143ccSmrg   There are some unavoidable exceptions within include files to
40690143ccSmrg   define necessary library symbols; they are noted "INFRINGES ON
41690143ccSmrg   USER NAME SPACE" below.  */
42690143ccSmrg
43690143ccSmrg/* Identify Bison output.  */
44690143ccSmrg#define YYBISON 1
45690143ccSmrg
46690143ccSmrg/* Bison version.  */
47f757b1e9Smrg#define YYBISON_VERSION "3.0.4"
48690143ccSmrg
49690143ccSmrg/* Skeleton name.  */
50690143ccSmrg#define YYSKELETON_NAME "yacc.c"
51690143ccSmrg
52690143ccSmrg/* Pure parsers.  */
53690143ccSmrg#define YYPURE 0
54690143ccSmrg
55c82dfdfbSmrg/* Push parsers.  */
56c82dfdfbSmrg#define YYPUSH 0
57c82dfdfbSmrg
58c82dfdfbSmrg/* Pull parsers.  */
59c82dfdfbSmrg#define YYPULL 1
60c82dfdfbSmrg
61c82dfdfbSmrg
62c82dfdfbSmrg
63c82dfdfbSmrg
64c82dfdfbSmrg/* Copy the first part of user declarations.  */
65f757b1e9Smrg#line 91 "xkbparse.y" /* yacc.c:339  */
66c82dfdfbSmrg
67c82dfdfbSmrg#ifdef DEBUG
68c82dfdfbSmrg#define	YYDEBUG 1
69c82dfdfbSmrg#endif
70c82dfdfbSmrg#define	DEBUG_VAR parseDebug
71c82dfdfbSmrg#include "parseutils.h"
72c82dfdfbSmrg#include <X11/keysym.h>
73c82dfdfbSmrg#include <X11/extensions/XKBgeom.h>
74c82dfdfbSmrg#include <stdlib.h>
75c82dfdfbSmrg
76c82dfdfbSmrgunsigned int parseDebug;
77c82dfdfbSmrg
78c82dfdfbSmrg
79f757b1e9Smrg#line 80 "xkbparse.c" /* yacc.c:339  */
80c82dfdfbSmrg
81f757b1e9Smrg# ifndef YY_NULLPTR
82c82dfdfbSmrg#  if defined __cplusplus && 201103L <= __cplusplus
83f757b1e9Smrg#   define YY_NULLPTR nullptr
84c82dfdfbSmrg#  else
85f757b1e9Smrg#   define YY_NULLPTR 0
86c82dfdfbSmrg#  endif
87c82dfdfbSmrg# endif
88c82dfdfbSmrg
89c82dfdfbSmrg/* Enabling verbose error messages.  */
90c82dfdfbSmrg#ifdef YYERROR_VERBOSE
91c82dfdfbSmrg# undef YYERROR_VERBOSE
92c82dfdfbSmrg# define YYERROR_VERBOSE 1
93c82dfdfbSmrg#else
94c82dfdfbSmrg# define YYERROR_VERBOSE 0
95c82dfdfbSmrg#endif
96f46a6179Smrg
97f46a6179Smrg
98f757b1e9Smrg/* Debug traces.  */
99c82dfdfbSmrg#ifndef YYDEBUG
100c82dfdfbSmrg# define YYDEBUG 0
101c82dfdfbSmrg#endif
102c82dfdfbSmrg#if YYDEBUG
103c82dfdfbSmrgextern int yydebug;
104c82dfdfbSmrg#endif
105f46a6179Smrg
106f757b1e9Smrg/* Token type.  */
107690143ccSmrg#ifndef YYTOKENTYPE
108690143ccSmrg# define YYTOKENTYPE
109f757b1e9Smrg  enum yytokentype
110f757b1e9Smrg  {
111f757b1e9Smrg    END_OF_FILE = 0,
112f757b1e9Smrg    ERROR_TOK = 255,
113f757b1e9Smrg    XKB_KEYMAP = 1,
114f757b1e9Smrg    XKB_KEYCODES = 2,
115f757b1e9Smrg    XKB_TYPES = 3,
116f757b1e9Smrg    XKB_SYMBOLS = 4,
117f757b1e9Smrg    XKB_COMPATMAP = 5,
118f757b1e9Smrg    XKB_GEOMETRY = 6,
119f757b1e9Smrg    XKB_SEMANTICS = 7,
120f757b1e9Smrg    XKB_LAYOUT = 8,
121f757b1e9Smrg    INCLUDE = 10,
122f757b1e9Smrg    OVERRIDE = 11,
123f757b1e9Smrg    AUGMENT = 12,
124f757b1e9Smrg    REPLACE = 13,
125f757b1e9Smrg    ALTERNATE = 14,
126f757b1e9Smrg    VIRTUAL_MODS = 20,
127f757b1e9Smrg    TYPE = 21,
128f757b1e9Smrg    INTERPRET = 22,
129f757b1e9Smrg    ACTION_TOK = 23,
130f757b1e9Smrg    KEY = 24,
131f757b1e9Smrg    ALIAS = 25,
132f757b1e9Smrg    GROUP = 26,
133f757b1e9Smrg    MODIFIER_MAP = 27,
134f757b1e9Smrg    INDICATOR = 28,
135f757b1e9Smrg    SHAPE = 29,
136f757b1e9Smrg    KEYS = 30,
137f757b1e9Smrg    ROW = 31,
138f757b1e9Smrg    SECTION = 32,
139f757b1e9Smrg    OVERLAY = 33,
140f757b1e9Smrg    TEXT = 34,
141f757b1e9Smrg    OUTLINE = 35,
142f757b1e9Smrg    SOLID = 36,
143f757b1e9Smrg    LOGO = 37,
144f757b1e9Smrg    VIRTUAL = 38,
145f757b1e9Smrg    EQUALS = 40,
146f757b1e9Smrg    PLUS = 41,
147f757b1e9Smrg    MINUS = 42,
148f757b1e9Smrg    DIVIDE = 43,
149f757b1e9Smrg    TIMES = 44,
150f757b1e9Smrg    OBRACE = 45,
151f757b1e9Smrg    CBRACE = 46,
152f757b1e9Smrg    OPAREN = 47,
153f757b1e9Smrg    CPAREN = 48,
154f757b1e9Smrg    OBRACKET = 49,
155f757b1e9Smrg    CBRACKET = 50,
156f757b1e9Smrg    DOT = 51,
157f757b1e9Smrg    COMMA = 52,
158f757b1e9Smrg    SEMI = 53,
159f757b1e9Smrg    EXCLAM = 54,
160f757b1e9Smrg    INVERT = 55,
161f757b1e9Smrg    STRING = 60,
162f757b1e9Smrg    INTEGER = 61,
163f757b1e9Smrg    FLOAT = 62,
164f757b1e9Smrg    IDENT = 63,
165f757b1e9Smrg    KEYNAME = 64,
166f757b1e9Smrg    PARTIAL = 70,
167f757b1e9Smrg    DEFAULT = 71,
168f757b1e9Smrg    HIDDEN = 72,
169f757b1e9Smrg    ALPHANUMERIC_KEYS = 73,
170f757b1e9Smrg    MODIFIER_KEYS = 74,
171f757b1e9Smrg    KEYPAD_KEYS = 75,
172f757b1e9Smrg    FUNCTION_KEYS = 76,
173f757b1e9Smrg    ALTERNATE_GROUP = 77
174f757b1e9Smrg  };
175690143ccSmrg#endif
176690143ccSmrg/* Tokens.  */
177f46a6179Smrg#define END_OF_FILE 0
178f46a6179Smrg#define ERROR_TOK 255
179f46a6179Smrg#define XKB_KEYMAP 1
180f46a6179Smrg#define XKB_KEYCODES 2
181f46a6179Smrg#define XKB_TYPES 3
182f46a6179Smrg#define XKB_SYMBOLS 4
183f46a6179Smrg#define XKB_COMPATMAP 5
184f46a6179Smrg#define XKB_GEOMETRY 6
185f46a6179Smrg#define XKB_SEMANTICS 7
186f46a6179Smrg#define XKB_LAYOUT 8
187f46a6179Smrg#define INCLUDE 10
188f46a6179Smrg#define OVERRIDE 11
189f46a6179Smrg#define AUGMENT 12
190f46a6179Smrg#define REPLACE 13
191f46a6179Smrg#define ALTERNATE 14
192f46a6179Smrg#define VIRTUAL_MODS 20
193f46a6179Smrg#define TYPE 21
194f46a6179Smrg#define INTERPRET 22
195f46a6179Smrg#define ACTION_TOK 23
196f46a6179Smrg#define KEY 24
197f46a6179Smrg#define ALIAS 25
198f46a6179Smrg#define GROUP 26
199f46a6179Smrg#define MODIFIER_MAP 27
200f46a6179Smrg#define INDICATOR 28
201f46a6179Smrg#define SHAPE 29
202f46a6179Smrg#define KEYS 30
203f46a6179Smrg#define ROW 31
204f46a6179Smrg#define SECTION 32
205f46a6179Smrg#define OVERLAY 33
206f46a6179Smrg#define TEXT 34
207f46a6179Smrg#define OUTLINE 35
208f46a6179Smrg#define SOLID 36
209f46a6179Smrg#define LOGO 37
210f46a6179Smrg#define VIRTUAL 38
211f46a6179Smrg#define EQUALS 40
212f46a6179Smrg#define PLUS 41
213f46a6179Smrg#define MINUS 42
214f46a6179Smrg#define DIVIDE 43
215f46a6179Smrg#define TIMES 44
216f46a6179Smrg#define OBRACE 45
217f46a6179Smrg#define CBRACE 46
218f46a6179Smrg#define OPAREN 47
219f46a6179Smrg#define CPAREN 48
220f46a6179Smrg#define OBRACKET 49
221f46a6179Smrg#define CBRACKET 50
222f46a6179Smrg#define DOT 51
223f46a6179Smrg#define COMMA 52
224f46a6179Smrg#define SEMI 53
225f46a6179Smrg#define EXCLAM 54
226f46a6179Smrg#define INVERT 55
227f46a6179Smrg#define STRING 60
228f46a6179Smrg#define INTEGER 61
229f46a6179Smrg#define FLOAT 62
230f46a6179Smrg#define IDENT 63
231f46a6179Smrg#define KEYNAME 64
232f46a6179Smrg#define PARTIAL 70
233f46a6179Smrg#define DEFAULT 71
234f46a6179Smrg#define HIDDEN 72
235f46a6179Smrg#define ALPHANUMERIC_KEYS 73
236f46a6179Smrg#define MODIFIER_KEYS 74
237f46a6179Smrg#define KEYPAD_KEYS 75
238f46a6179Smrg#define FUNCTION_KEYS 76
239f46a6179Smrg#define ALTERNATE_GROUP 77
240690143ccSmrg
241f757b1e9Smrg/* Value type.  */
242690143ccSmrg#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
243f757b1e9Smrg
244f757b1e9Smrgunion YYSTYPE
2451d8c7986Smrg{
246f757b1e9Smrg#line 110 "xkbparse.y" /* yacc.c:355  */
247c82dfdfbSmrg
248690143ccSmrg	int		 ival;
249690143ccSmrg	unsigned	 uval;
250690143ccSmrg	char		*str;
251690143ccSmrg	Atom	 	sval;
252690143ccSmrg	ParseCommon	*any;
253690143ccSmrg	ExprDef		*expr;
254690143ccSmrg	VarDef		*var;
255690143ccSmrg	VModDef		*vmod;
256690143ccSmrg	InterpDef	*interp;
257690143ccSmrg	KeyTypeDef	*keyType;
258690143ccSmrg	SymbolsDef	*syms;
259690143ccSmrg	ModMapDef	*modMask;
260690143ccSmrg	GroupCompatDef	*groupCompat;
261690143ccSmrg	IndicatorMapDef	*ledMap;
262690143ccSmrg	IndicatorNameDef *ledName;
263690143ccSmrg	KeycodeDef	*keyName;
264690143ccSmrg	KeyAliasDef	*keyAlias;
265690143ccSmrg	ShapeDef	*shape;
266690143ccSmrg	SectionDef	*section;
267690143ccSmrg	RowDef		*row;
268690143ccSmrg	KeyDef		*key;
269690143ccSmrg	OverlayDef	*overlay;
270690143ccSmrg	OverlayKeyDef	*olKey;
271690143ccSmrg	OutlineDef	*outline;
272690143ccSmrg	DoodadDef	*doodad;
273690143ccSmrg	XkbFile		*file;
274c82dfdfbSmrg
275f757b1e9Smrg#line 276 "xkbparse.c" /* yacc.c:355  */
276f757b1e9Smrg};
277c82dfdfbSmrg
278f757b1e9Smrgtypedef union YYSTYPE YYSTYPE;
279c82dfdfbSmrg# define YYSTYPE_IS_TRIVIAL 1
280690143ccSmrg# define YYSTYPE_IS_DECLARED 1
281690143ccSmrg#endif
282690143ccSmrg
283f757b1e9Smrg
284c82dfdfbSmrgextern YYSTYPE yylval;
285690143ccSmrg
286c82dfdfbSmrgint yyparse (void);
2871d8c7986Smrg
288690143ccSmrg
289690143ccSmrg
290c82dfdfbSmrg/* Copy the second part of user declarations.  */
291c82dfdfbSmrg
292f757b1e9Smrg#line 293 "xkbparse.c" /* yacc.c:358  */
293690143ccSmrg
294690143ccSmrg#ifdef short
295690143ccSmrg# undef short
296690143ccSmrg#endif
297690143ccSmrg
298690143ccSmrg#ifdef YYTYPE_UINT8
299690143ccSmrgtypedef YYTYPE_UINT8 yytype_uint8;
300690143ccSmrg#else
301690143ccSmrgtypedef unsigned char yytype_uint8;
302690143ccSmrg#endif
303690143ccSmrg
304690143ccSmrg#ifdef YYTYPE_INT8
305690143ccSmrgtypedef YYTYPE_INT8 yytype_int8;
306690143ccSmrg#else
307f757b1e9Smrgtypedef signed char yytype_int8;
308690143ccSmrg#endif
309690143ccSmrg
310690143ccSmrg#ifdef YYTYPE_UINT16
311690143ccSmrgtypedef YYTYPE_UINT16 yytype_uint16;
312690143ccSmrg#else
313690143ccSmrgtypedef unsigned short int yytype_uint16;
314690143ccSmrg#endif
315690143ccSmrg
316690143ccSmrg#ifdef YYTYPE_INT16
317690143ccSmrgtypedef YYTYPE_INT16 yytype_int16;
318690143ccSmrg#else
319690143ccSmrgtypedef short int yytype_int16;
320690143ccSmrg#endif
321690143ccSmrg
322690143ccSmrg#ifndef YYSIZE_T
323690143ccSmrg# ifdef __SIZE_TYPE__
324690143ccSmrg#  define YYSIZE_T __SIZE_TYPE__
325690143ccSmrg# elif defined size_t
326690143ccSmrg#  define YYSIZE_T size_t
327f757b1e9Smrg# elif ! defined YYSIZE_T
328690143ccSmrg#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
329690143ccSmrg#  define YYSIZE_T size_t
330690143ccSmrg# else
331690143ccSmrg#  define YYSIZE_T unsigned int
332690143ccSmrg# endif
333690143ccSmrg#endif
334690143ccSmrg
335690143ccSmrg#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
336690143ccSmrg
337690143ccSmrg#ifndef YY_
338c82dfdfbSmrg# if defined YYENABLE_NLS && YYENABLE_NLS
339690143ccSmrg#  if ENABLE_NLS
340690143ccSmrg#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
341c82dfdfbSmrg#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
342690143ccSmrg#  endif
343690143ccSmrg# endif
344690143ccSmrg# ifndef YY_
345c82dfdfbSmrg#  define YY_(Msgid) Msgid
346690143ccSmrg# endif
347690143ccSmrg#endif
348690143ccSmrg
349f757b1e9Smrg#ifndef YY_ATTRIBUTE
350f757b1e9Smrg# if (defined __GNUC__                                               \
351f757b1e9Smrg      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
352f757b1e9Smrg     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
353f757b1e9Smrg#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
354f757b1e9Smrg# else
355f757b1e9Smrg#  define YY_ATTRIBUTE(Spec) /* empty */
356f757b1e9Smrg# endif
357f757b1e9Smrg#endif
358f757b1e9Smrg
359f757b1e9Smrg#ifndef YY_ATTRIBUTE_PURE
360f757b1e9Smrg# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
361f757b1e9Smrg#endif
362f757b1e9Smrg
363f757b1e9Smrg#ifndef YY_ATTRIBUTE_UNUSED
364f757b1e9Smrg# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
365f757b1e9Smrg#endif
366f757b1e9Smrg
367f757b1e9Smrg#if !defined _Noreturn \
368f757b1e9Smrg     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
369f757b1e9Smrg# if defined _MSC_VER && 1200 <= _MSC_VER
370f757b1e9Smrg#  define _Noreturn __declspec (noreturn)
371f757b1e9Smrg# else
372f757b1e9Smrg#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
373f757b1e9Smrg# endif
374f757b1e9Smrg#endif
375f757b1e9Smrg
376690143ccSmrg/* Suppress unused-variable warnings by "using" E.  */
377690143ccSmrg#if ! defined lint || defined __GNUC__
378c82dfdfbSmrg# define YYUSE(E) ((void) (E))
379690143ccSmrg#else
380c82dfdfbSmrg# define YYUSE(E) /* empty */
381690143ccSmrg#endif
382690143ccSmrg
383f757b1e9Smrg#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
384f757b1e9Smrg/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
385f757b1e9Smrg# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
386f757b1e9Smrg    _Pragma ("GCC diagnostic push") \
387f757b1e9Smrg    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
388f757b1e9Smrg    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
389f757b1e9Smrg# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
390f757b1e9Smrg    _Pragma ("GCC diagnostic pop")
391690143ccSmrg#else
392f757b1e9Smrg# define YY_INITIAL_VALUE(Value) Value
393690143ccSmrg#endif
394f757b1e9Smrg#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
395f757b1e9Smrg# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
396f757b1e9Smrg# define YY_IGNORE_MAYBE_UNINITIALIZED_END
397f757b1e9Smrg#endif
398f757b1e9Smrg#ifndef YY_INITIAL_VALUE
399f757b1e9Smrg# define YY_INITIAL_VALUE(Value) /* Nothing. */
400690143ccSmrg#endif
401690143ccSmrg
402f757b1e9Smrg
403690143ccSmrg#if ! defined yyoverflow || YYERROR_VERBOSE
404690143ccSmrg
405690143ccSmrg/* The parser invokes alloca or malloc; define the necessary symbols.  */
406690143ccSmrg
407690143ccSmrg# ifdef YYSTACK_USE_ALLOCA
408690143ccSmrg#  if YYSTACK_USE_ALLOCA
409690143ccSmrg#   ifdef __GNUC__
410690143ccSmrg#    define YYSTACK_ALLOC __builtin_alloca
411690143ccSmrg#   elif defined __BUILTIN_VA_ARG_INCR
412690143ccSmrg#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
413690143ccSmrg#   elif defined _AIX
414690143ccSmrg#    define YYSTACK_ALLOC __alloca
415690143ccSmrg#   elif defined _MSC_VER
416690143ccSmrg#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
417690143ccSmrg#    define alloca _alloca
418690143ccSmrg#   else
419690143ccSmrg#    define YYSTACK_ALLOC alloca
420f757b1e9Smrg#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
421690143ccSmrg#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
422c82dfdfbSmrg      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
423c82dfdfbSmrg#     ifndef EXIT_SUCCESS
424c82dfdfbSmrg#      define EXIT_SUCCESS 0
425690143ccSmrg#     endif
426690143ccSmrg#    endif
427690143ccSmrg#   endif
428690143ccSmrg#  endif
429690143ccSmrg# endif
430690143ccSmrg
431690143ccSmrg# ifdef YYSTACK_ALLOC
432f757b1e9Smrg   /* Pacify GCC's 'empty if-body' warning.  */
433f757b1e9Smrg#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
434690143ccSmrg#  ifndef YYSTACK_ALLOC_MAXIMUM
435690143ccSmrg    /* The OS might guarantee only one guard page at the bottom of the stack,
436690143ccSmrg       and a page size can be as small as 4096 bytes.  So we cannot safely
437690143ccSmrg       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
438690143ccSmrg       to allow for a few compiler-allocated temporary stack slots.  */
439690143ccSmrg#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
440690143ccSmrg#  endif
441690143ccSmrg# else
442690143ccSmrg#  define YYSTACK_ALLOC YYMALLOC
443690143ccSmrg#  define YYSTACK_FREE YYFREE
444690143ccSmrg#  ifndef YYSTACK_ALLOC_MAXIMUM
445690143ccSmrg#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
446690143ccSmrg#  endif
447c82dfdfbSmrg#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
448690143ccSmrg       && ! ((defined YYMALLOC || defined malloc) \
449f757b1e9Smrg             && (defined YYFREE || defined free)))
450690143ccSmrg#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
451c82dfdfbSmrg#   ifndef EXIT_SUCCESS
452c82dfdfbSmrg#    define EXIT_SUCCESS 0
453690143ccSmrg#   endif
454690143ccSmrg#  endif
455690143ccSmrg#  ifndef YYMALLOC
456690143ccSmrg#   define YYMALLOC malloc
457f757b1e9Smrg#   if ! defined malloc && ! defined EXIT_SUCCESS
458690143ccSmrgvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
459690143ccSmrg#   endif
460690143ccSmrg#  endif
461690143ccSmrg#  ifndef YYFREE
462690143ccSmrg#   define YYFREE free
463f757b1e9Smrg#   if ! defined free && ! defined EXIT_SUCCESS
464690143ccSmrgvoid free (void *); /* INFRINGES ON USER NAME SPACE */
465690143ccSmrg#   endif
466690143ccSmrg#  endif
467690143ccSmrg# endif
468690143ccSmrg#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
469690143ccSmrg
470690143ccSmrg
471690143ccSmrg#if (! defined yyoverflow \
472690143ccSmrg     && (! defined __cplusplus \
473f757b1e9Smrg         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
474690143ccSmrg
475690143ccSmrg/* A type that is properly aligned for any stack member.  */
476690143ccSmrgunion yyalloc
477690143ccSmrg{
478c82dfdfbSmrg  yytype_int16 yyss_alloc;
479c82dfdfbSmrg  YYSTYPE yyvs_alloc;
480c82dfdfbSmrg};
481690143ccSmrg
482690143ccSmrg/* The size of the maximum gap between one aligned stack and the next.  */
483690143ccSmrg# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
484690143ccSmrg
485690143ccSmrg/* The size of an array large to enough to hold all stacks, each with
486690143ccSmrg   N elements.  */
487690143ccSmrg# define YYSTACK_BYTES(N) \
488690143ccSmrg     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
489690143ccSmrg      + YYSTACK_GAP_MAXIMUM)
490690143ccSmrg
491c82dfdfbSmrg# define YYCOPY_NEEDED 1
492690143ccSmrg
493690143ccSmrg/* Relocate STACK from its old location to the new one.  The
494690143ccSmrg   local variables YYSIZE and YYSTACKSIZE give the old and new number of
495690143ccSmrg   elements in the stack, and YYPTR gives the new location of the
496690143ccSmrg   stack.  Advance YYPTR to a properly aligned location for the next
497690143ccSmrg   stack.  */
498f757b1e9Smrg# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
499f757b1e9Smrg    do                                                                  \
500f757b1e9Smrg      {                                                                 \
501f757b1e9Smrg        YYSIZE_T yynewbytes;                                            \
502f757b1e9Smrg        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
503f757b1e9Smrg        Stack = &yyptr->Stack_alloc;                                    \
504f757b1e9Smrg        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
505f757b1e9Smrg        yyptr += yynewbytes / sizeof (*yyptr);                          \
506f757b1e9Smrg      }                                                                 \
507f757b1e9Smrg    while (0)
508690143ccSmrg
509690143ccSmrg#endif
510690143ccSmrg
511c82dfdfbSmrg#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
512c82dfdfbSmrg/* Copy COUNT objects from SRC to DST.  The source and destination do
513c82dfdfbSmrg   not overlap.  */
514c82dfdfbSmrg# ifndef YYCOPY
515c82dfdfbSmrg#  if defined __GNUC__ && 1 < __GNUC__
516c82dfdfbSmrg#   define YYCOPY(Dst, Src, Count) \
517c82dfdfbSmrg      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
518c82dfdfbSmrg#  else
519c82dfdfbSmrg#   define YYCOPY(Dst, Src, Count)              \
520c82dfdfbSmrg      do                                        \
521c82dfdfbSmrg        {                                       \
522c82dfdfbSmrg          YYSIZE_T yyi;                         \
523c82dfdfbSmrg          for (yyi = 0; yyi < (Count); yyi++)   \
524c82dfdfbSmrg            (Dst)[yyi] = (Src)[yyi];            \
525c82dfdfbSmrg        }                                       \
526f757b1e9Smrg      while (0)
527c82dfdfbSmrg#  endif
528c82dfdfbSmrg# endif
529c82dfdfbSmrg#endif /* !YYCOPY_NEEDED */
530c82dfdfbSmrg
531690143ccSmrg/* YYFINAL -- State number of the termination state.  */
532690143ccSmrg#define YYFINAL  18
533690143ccSmrg/* YYLAST -- Last index in YYTABLE.  */
534c82dfdfbSmrg#define YYLAST   747
535690143ccSmrg
536690143ccSmrg/* YYNTOKENS -- Number of terminals.  */
537690143ccSmrg#define YYNTOKENS  65
538690143ccSmrg/* YYNNTS -- Number of nonterminals.  */
539c82dfdfbSmrg#define YYNNTS  74
540690143ccSmrg/* YYNRULES -- Number of rules.  */
541c82dfdfbSmrg#define YYNRULES  187
542f757b1e9Smrg/* YYNSTATES -- Number of states.  */
543c82dfdfbSmrg#define YYNSTATES  340
544690143ccSmrg
545f757b1e9Smrg/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
546f757b1e9Smrg   by yylex, with out-of-bounds checking.  */
547690143ccSmrg#define YYUNDEFTOK  2
548690143ccSmrg#define YYMAXUTOK   257
549690143ccSmrg
550f757b1e9Smrg#define YYTRANSLATE(YYX)                                                \
551690143ccSmrg  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
552690143ccSmrg
553f757b1e9Smrg/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
554f757b1e9Smrg   as returned by yylex, without out-of-bounds checking.  */
555690143ccSmrgstatic const yytype_uint8 yytranslate[] =
556690143ccSmrg{
557690143ccSmrg       0,     4,     5,     6,     7,     8,     9,    10,    11,     2,
558690143ccSmrg      12,    13,    14,    15,    16,     2,     2,     2,     2,     2,
559690143ccSmrg      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
560690143ccSmrg      27,    28,    29,    30,    31,    32,    33,    34,    35,     2,
561690143ccSmrg      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
562690143ccSmrg      46,    47,    48,    49,    50,    51,     2,     2,     2,     2,
563690143ccSmrg      52,    53,    54,    55,    56,     2,     2,     2,     2,     2,
564690143ccSmrg      57,    58,    59,    60,    61,    62,    63,    64,     2,     2,
565690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
566690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
567690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
568690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
569690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
570690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
571690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
572690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
573690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
574690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
575690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
576690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
577690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
578690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
579690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
580690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
581690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
582690143ccSmrg       2,     2,     2,     2,     2,     3,     1,     2
583690143ccSmrg};
584690143ccSmrg
585690143ccSmrg#if YYDEBUG
586f757b1e9Smrg  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
587690143ccSmrgstatic const yytype_uint16 yyrline[] =
588690143ccSmrg{
589690143ccSmrg       0,   168,   168,   170,   172,   176,   178,   182,   188,   189,
590690143ccSmrg     190,   193,   195,   199,   205,   210,   211,   212,   213,   214,
591690143ccSmrg     217,   218,   221,   222,   225,   226,   227,   228,   229,   230,
592690143ccSmrg     231,   232,   235,   237,   240,   245,   250,   255,   260,   265,
593690143ccSmrg     270,   275,   280,   285,   290,   295,   300,   305,   310,   322,
594690143ccSmrg     324,   326,   330,   341,   351,   355,   357,   361,   363,   367,
595690143ccSmrg     376,   378,   382,   384,   388,   394,   400,   402,   404,   407,
596690143ccSmrg     409,   411,   413,   415,   419,   421,   425,   429,   433,   437,
597690143ccSmrg     439,   443,   445,   453,   457,   459,   463,   465,   467,   469,
598690143ccSmrg     471,   475,   477,   481,   483,   487,   489,   493,   495,   499,
599690143ccSmrg     503,   508,   512,   516,   518,   522,   524,   526,   530,   532,
600690143ccSmrg     536,   546,   550,   551,   552,   553,   556,   557,   560,   562,
601690143ccSmrg     564,   566,   568,   570,   572,   574,   576,   578,   580,   584,
602690143ccSmrg     585,   588,   589,   590,   591,   592,   595,   596,   599,   601,
603690143ccSmrg     605,   607,   609,   611,   613,   615,   619,   621,   623,   625,
604690143ccSmrg     627,   629,   631,   633,   637,   639,   643,   647,   654,   662,
605c82dfdfbSmrg     671,   682,   689,   696,   703,   714,   715,   718,   720,   722,
606c82dfdfbSmrg     724,   728,   729,   730,   737,   741,   742,   745,   746,   749,
607c82dfdfbSmrg     752,   755,   758,   759,   762,   765,   766,   769
608690143ccSmrg};
609690143ccSmrg#endif
610690143ccSmrg
611c82dfdfbSmrg#if YYDEBUG || YYERROR_VERBOSE || 0
612690143ccSmrg/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
613690143ccSmrg   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
614690143ccSmrgstatic const char *const yytname[] =
615690143ccSmrg{
616690143ccSmrg  "END_OF_FILE", "error", "$undefined", "ERROR_TOK", "XKB_KEYMAP",
617690143ccSmrg  "XKB_KEYCODES", "XKB_TYPES", "XKB_SYMBOLS", "XKB_COMPATMAP",
618690143ccSmrg  "XKB_GEOMETRY", "XKB_SEMANTICS", "XKB_LAYOUT", "INCLUDE", "OVERRIDE",
619690143ccSmrg  "AUGMENT", "REPLACE", "ALTERNATE", "VIRTUAL_MODS", "TYPE", "INTERPRET",
620690143ccSmrg  "ACTION_TOK", "KEY", "ALIAS", "GROUP", "MODIFIER_MAP", "INDICATOR",
621690143ccSmrg  "SHAPE", "KEYS", "ROW", "SECTION", "OVERLAY", "TEXT", "OUTLINE", "SOLID",
622690143ccSmrg  "LOGO", "VIRTUAL", "EQUALS", "PLUS", "MINUS", "DIVIDE", "TIMES",
623690143ccSmrg  "OBRACE", "CBRACE", "OPAREN", "CPAREN", "OBRACKET", "CBRACKET", "DOT",
624690143ccSmrg  "COMMA", "SEMI", "EXCLAM", "INVERT", "STRING", "INTEGER", "FLOAT",
625690143ccSmrg  "IDENT", "KEYNAME", "PARTIAL", "DEFAULT", "HIDDEN", "ALPHANUMERIC_KEYS",
626690143ccSmrg  "MODIFIER_KEYS", "KEYPAD_KEYS", "FUNCTION_KEYS", "ALTERNATE_GROUP",
627690143ccSmrg  "$accept", "XkbFile", "XkbCompMapList", "XkbCompositeMap",
628690143ccSmrg  "XkbCompositeType", "XkbMapConfigList", "XkbMapConfig", "XkbConfig",
629690143ccSmrg  "FileType", "OptFlags", "Flags", "Flag", "DeclList", "Decl", "VarDecl",
630690143ccSmrg  "KeyNameDecl", "KeyAliasDecl", "VModDecl", "VModDefList", "VModDef",
631690143ccSmrg  "InterpretDecl", "InterpretMatch", "VarDeclList", "KeyTypeDecl",
632690143ccSmrg  "SymbolsDecl", "SymbolsBody", "SymbolsVarDecl", "ArrayInit",
633690143ccSmrg  "GroupCompatDecl", "ModMapDecl", "IndicatorMapDecl", "IndicatorNameDecl",
634690143ccSmrg  "ShapeDecl", "SectionDecl", "SectionBody", "SectionBodyItem", "RowBody",
635690143ccSmrg  "RowBodyItem", "Keys", "Key", "OverlayDecl", "OverlayKeyList",
636690143ccSmrg  "OverlayKey", "OutlineList", "OutlineInList", "CoordList", "Coord",
637690143ccSmrg  "DoodadDecl", "DoodadType", "FieldSpec", "Element", "OptMergeMode",
638690143ccSmrg  "MergeMode", "OptExprList", "ExprList", "Expr", "Term", "ActionList",
639690143ccSmrg  "Action", "Lhs", "Terminal", "OptKeySymList", "KeySymList", "KeySym",
640c82dfdfbSmrg  "KeySyms", "SignedNumber", "Number", "Float", "Integer", "KeyName",
641f757b1e9Smrg  "Ident", "String", "OptMapName", "MapName", YY_NULLPTR
642690143ccSmrg};
643690143ccSmrg#endif
644690143ccSmrg
645690143ccSmrg# ifdef YYPRINT
646f757b1e9Smrg/* YYTOKNUM[NUM] -- (External) token number corresponding to the
647f757b1e9Smrg   (internal) symbol number NUM (which must be that of a token).  */
648690143ccSmrgstatic const yytype_uint16 yytoknum[] =
649690143ccSmrg{
650690143ccSmrg       0,   256,   257,   255,     1,     2,     3,     4,     5,     6,
651690143ccSmrg       7,     8,    10,    11,    12,    13,    14,    20,    21,    22,
652690143ccSmrg      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
653690143ccSmrg      33,    34,    35,    36,    37,    38,    40,    41,    42,    43,
654690143ccSmrg      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
655690143ccSmrg      54,    55,    60,    61,    62,    63,    64,    70,    71,    72,
656690143ccSmrg      73,    74,    75,    76,    77
657f46a6179Smrg};
658690143ccSmrg# endif
659690143ccSmrg
660f757b1e9Smrg#define YYPACT_NINF -179
661690143ccSmrg
662f757b1e9Smrg#define yypact_value_is_default(Yystate) \
663f757b1e9Smrg  (!!((Yystate) == (-179)))
664690143ccSmrg
665f757b1e9Smrg#define YYTABLE_NINF -183
666690143ccSmrg
667f757b1e9Smrg#define yytable_value_is_error(Yytable_value) \
668f757b1e9Smrg  0
669690143ccSmrg
670f757b1e9Smrg  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
671f757b1e9Smrg     STATE-NUM.  */
672690143ccSmrgstatic const yytype_int16 yypact[] =
673690143ccSmrg{
674c82dfdfbSmrg     669,  -179,  -179,  -179,  -179,  -179,  -179,  -179,  -179,    19,
675c82dfdfbSmrg     138,  -179,   185,  -179,  -179,   736,   669,  -179,  -179,  -179,
676c82dfdfbSmrg      41,  -179,   297,  -179,  -179,  -179,  -179,  -179,  -179,  -179,
677c82dfdfbSmrg    -179,    -3,    -3,  -179,    -3,  -179,    13,  -179,    31,    31,
678c82dfdfbSmrg     669,  -179,    63,   544,    53,  -179,  -179,  -179,  -179,  -179,
679c82dfdfbSmrg    -179,   266,    59,    66,   104,     1,    98,    -9,  -179,    27,
680c82dfdfbSmrg      27,    52,     1,    79,    98,  -179,    98,   109,  -179,  -179,
681c82dfdfbSmrg    -179,   140,     1,  -179,  -179,  -179,  -179,  -179,  -179,  -179,
682c82dfdfbSmrg    -179,  -179,  -179,  -179,  -179,  -179,  -179,  -179,  -179,  -179,
683c82dfdfbSmrg      98,   130,  -179,   132,   135,   125,  -179,  -179,  -179,   144,
684c82dfdfbSmrg    -179,   145,  -179,   170,  -179,  -179,  -179,   176,   189,  -179,
685c82dfdfbSmrg     186,   192,   200,   196,   202,   210,   211,   212,    52,   213,
686c82dfdfbSmrg     220,   371,   681,   371,   371,  -179,     1,  -179,   371,   667,
687c82dfdfbSmrg     667,   371,   498,    27,   371,   371,   371,   667,    16,   453,
688c82dfdfbSmrg     205,  -179,   667,  -179,  -179,  -179,  -179,  -179,  -179,  -179,
689c82dfdfbSmrg    -179,  -179,   371,   371,   371,   371,   371,  -179,   358,   194,
690c82dfdfbSmrg    -179,   224,  -179,  -179,  -179,  -179,  -179,  -179,   226,   166,
691c82dfdfbSmrg     181,  -179,    51,  -179,   513,   541,    51,   556,     1,   -27,
692c82dfdfbSmrg    -179,  -179,   233,    22,   223,   219,    38,    51,   325,   597,
693c82dfdfbSmrg     229,   -24,    54,  -179,    56,  -179,   239,    98,   236,    98,
694c82dfdfbSmrg    -179,  -179,   412,  -179,  -179,  -179,   371,   612,  -179,  -179,
695c82dfdfbSmrg    -179,   291,  -179,  -179,   371,   371,   371,   371,   371,  -179,
696c82dfdfbSmrg     371,   371,  -179,  -179,   232,  -179,   244,   253,   -16,   268,
697c82dfdfbSmrg     276,   134,  -179,   277,   285,  -179,  -179,  -179,   287,   498,
698c82dfdfbSmrg     289,  -179,  -179,   288,   371,  -179,   303,    70,   154,  -179,
699c82dfdfbSmrg    -179,   290,  -179,   308,   -17,   311,   229,   330,   653,   284,
700c82dfdfbSmrg     317,  -179,   338,   320,  -179,   302,   322,   183,   183,  -179,
701c82dfdfbSmrg    -179,    51,   227,  -179,  -179,    80,   371,  -179,   681,  -179,
702c82dfdfbSmrg     -16,  -179,  -179,  -179,    51,  -179,    51,  -179,  -179,  -179,
703c82dfdfbSmrg     -24,  -179,  -179,  -179,  -179,   229,    51,   331,  -179,   470,
704c82dfdfbSmrg    -179,    27,  -179,  -179,  -179,  -179,  -179,  -179,   335,  -179,
705c82dfdfbSmrg    -179,  -179,   347,    99,   -25,   349,  -179,   100,  -179,   368,
706c82dfdfbSmrg    -179,  -179,  -179,   371,   101,  -179,  -179,  -179,   357,    27,
707c82dfdfbSmrg      27,   116,   361,   -25,  -179,  -179,  -179,  -179,  -179,  -179
708f46a6179Smrg};
709690143ccSmrg
710f757b1e9Smrg  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
711f757b1e9Smrg     Performed when YYTABLE does not specify something else to do.  Zero
712f757b1e9Smrg     means the default is an error.  */
713f757b1e9Smrgstatic const yytype_uint8 yydefact[] =
714f757b1e9Smrg{
715f757b1e9Smrg      21,    24,    25,    26,    27,    28,    29,    30,    31,     0,
716f757b1e9Smrg      21,     6,    21,    12,     4,     0,    20,    23,     1,     5,
717f757b1e9Smrg       0,    11,     0,     8,    15,    16,    18,    17,    19,     9,
718f757b1e9Smrg      10,   186,   186,    22,   186,   187,     0,   185,    33,     0,
719f757b1e9Smrg      21,    33,   130,    21,   130,   131,   133,   132,   134,   135,
720f757b1e9Smrg      32,     0,   129,     0,     0,     0,   120,   119,   118,   121,
721f757b1e9Smrg       0,   122,   123,   124,   125,   126,   127,   128,   113,   114,
722f757b1e9Smrg     115,     0,     0,   182,   181,   183,    34,    37,    38,    35,
723f757b1e9Smrg      36,    39,    40,    42,    41,    43,    44,    45,    46,    47,
724f757b1e9Smrg       0,   157,   117,     0,     0,   116,    48,     7,    13,     0,
725f757b1e9Smrg      56,    57,   184,     0,   172,   180,   171,     0,    61,   173,
726f757b1e9Smrg       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
727f757b1e9Smrg       0,     0,     0,     0,     0,    50,     0,    54,     0,     0,
728f757b1e9Smrg       0,     0,    68,     0,     0,     0,     0,     0,     0,     0,
729f757b1e9Smrg       0,    51,     0,   120,   119,   121,   122,   123,   124,   125,
730f757b1e9Smrg     127,   128,     0,     0,     0,     0,     0,   179,   157,     0,
731f757b1e9Smrg     145,   150,   152,   163,   162,   164,   116,   161,   158,     0,
732f757b1e9Smrg       0,    55,    58,    63,     0,     0,    60,   166,     0,     0,
733f757b1e9Smrg      67,    73,     0,   116,     0,     0,     0,   139,     0,     0,
734f757b1e9Smrg       0,     0,     0,   104,     0,   109,     0,   124,   126,     0,
735f757b1e9Smrg      87,    89,     0,    85,    90,    88,     0,     0,   147,   150,
736f757b1e9Smrg     146,     0,   148,   149,   137,     0,     0,     0,     0,   159,
737f757b1e9Smrg       0,     0,    49,    52,     0,    62,     0,   172,     0,   171,
738f757b1e9Smrg       0,     0,   155,     0,   165,   169,   170,    72,     0,     0,
739f757b1e9Smrg       0,    53,    76,     0,     0,    79,     0,     0,     0,   178,
740f757b1e9Smrg     177,     0,   176,     0,     0,     0,     0,     0,     0,     0,
741f757b1e9Smrg       0,    84,     0,     0,   153,     0,   136,   141,   142,   140,
742f757b1e9Smrg     143,   144,     0,    64,    59,     0,   137,    75,     0,    74,
743f757b1e9Smrg       0,    65,    66,    70,    69,    77,   138,    78,   105,   175,
744f757b1e9Smrg       0,    81,   103,    82,   108,     0,   107,     0,    94,     0,
745f757b1e9Smrg      92,     0,    83,    80,   111,   151,   160,   174,     0,   154,
746f757b1e9Smrg     167,   168,     0,     0,     0,     0,    91,     0,   101,     0,
747f757b1e9Smrg     156,   110,   106,     0,     0,    96,    97,    86,     0,     0,
748f757b1e9Smrg       0,     0,     0,     0,    99,   100,   102,    98,    93,    95
749f757b1e9Smrg};
750f757b1e9Smrg
751f757b1e9Smrg  /* YYPGOTO[NTERM-NUM].  */
752690143ccSmrgstatic const yytype_int16 yypgoto[] =
753690143ccSmrg{
754c82dfdfbSmrg    -179,  -179,  -179,   397,  -179,   372,    -8,  -179,   389,    48,
755c82dfdfbSmrg    -179,   399,   375,  -179,   -19,  -179,  -179,  -179,  -179,   292,
756c82dfdfbSmrg    -179,  -179,  -119,  -179,  -179,  -179,   174,   177,  -179,  -179,
757c82dfdfbSmrg     369,  -179,  -179,  -179,  -179,   217,  -179,   129,  -179,   106,
758c82dfdfbSmrg    -179,  -179,   105,  -179,   193,  -178,   195,   398,  -179,   -23,
759c82dfdfbSmrg    -179,  -179,  -179,   172,  -132,   -81,    34,  -179,   175,   -29,
760c82dfdfbSmrg    -179,  -179,   222,   -55,   178,   162,   207,  -179,   -56,   -51,
761c82dfdfbSmrg     -45,   -30,   180,  -179
762f46a6179Smrg};
763690143ccSmrg
764f757b1e9Smrg  /* YYDEFGOTO[NTERM-NUM].  */
765f757b1e9Smrgstatic const yytype_int16 yydefgoto[] =
766f757b1e9Smrg{
767f757b1e9Smrg      -1,     9,    10,    11,    31,    12,    13,    14,    32,    22,
768f757b1e9Smrg      16,    17,    42,    50,   173,    77,    78,    79,    99,   100,
769f757b1e9Smrg      80,   107,   174,    81,    82,   179,   180,   181,    83,    84,
770f757b1e9Smrg     201,    86,    87,    88,   202,   203,   299,   300,   324,   325,
771f757b1e9Smrg     204,   317,   318,   192,   193,   194,   195,   205,    90,   158,
772f757b1e9Smrg      92,    51,    52,   265,   266,   187,   160,   231,   232,   161,
773f757b1e9Smrg     162,   233,   234,   235,   236,   251,   252,   163,   164,   165,
774f757b1e9Smrg     166,   167,    36,    37
775f757b1e9Smrg};
776f757b1e9Smrg
777f757b1e9Smrg  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
778f757b1e9Smrg     positive, shift that token.  If negative, reduce the rule whose
779f757b1e9Smrg     number is the opposite.  If YYTABLE_NINF, syntax error.  */
780690143ccSmrgstatic const yytype_int16 yytable[] =
781690143ccSmrg{
782c82dfdfbSmrg      94,   109,   108,   186,    21,   112,    95,   114,   110,   111,
783c82dfdfbSmrg     101,   175,   247,   104,   248,   238,   323,   113,   189,    18,
784c82dfdfbSmrg     104,   239,    93,   207,   190,   228,   103,   119,    91,   249,
785c82dfdfbSmrg     250,    74,    76,   115,   116,    21,   117,   105,    73,   106,
786c82dfdfbSmrg     159,    75,   169,   170,   105,    23,   106,   172,    15,    35,
787c82dfdfbSmrg     176,    29,    30,   185,    40,   188,    73,   190,    20,    75,
788c82dfdfbSmrg     120,   191,   140,   -14,   -71,    45,    46,    47,    48,    49,
789c82dfdfbSmrg     -71,    73,    41,   211,    75,    45,    46,    47,    48,    49,
790c82dfdfbSmrg     243,   101,   184,    74,    95,    95,   244,   183,   215,   216,
791c82dfdfbSmrg     217,   218,    95,   196,    95,    54,   253,    95,   255,   168,
792c82dfdfbSmrg      93,    93,   254,   182,   256,   105,    91,    91,    93,    91,
793c82dfdfbSmrg      93,    96,   288,    93,    91,    97,    91,   313,   256,    91,
794c82dfdfbSmrg     200,   109,   307,   209,   209,   262,   209,   209,   280,    95,
795c82dfdfbSmrg      95,   102,   105,   237,   267,   268,   269,   270,    -2,   271,
796c82dfdfbSmrg     272,   322,   328,   332,    95,    93,    93,   256,   329,   333,
797c82dfdfbSmrg     102,    91,    91,    98,   230,   225,   225,    95,   337,   284,
798c82dfdfbSmrg      93,  -112,    95,   286,   244,   118,    91,   115,   123,   259,
799c82dfdfbSmrg     225,   124,   109,    93,   125,   121,   296,   122,    93,    91,
800c82dfdfbSmrg     277,   128,   278,   200,    91,    -3,   208,   210,   225,   212,
801c82dfdfbSmrg     213,   331,   126,   127,   183,     1,     2,     3,     4,     5,
802c82dfdfbSmrg       6,     7,     8,   215,   216,   217,   218,   249,   250,   196,
803c82dfdfbSmrg     182,   129,    38,    95,    39,   222,    91,   130,   215,   216,
804c82dfdfbSmrg     217,   218,   217,   218,   109,   310,   131,   132,   133,    93,
805c82dfdfbSmrg     223,   215,   216,   217,   218,    91,   134,   135,   136,   298,
806c82dfdfbSmrg     219,   206,     1,     2,     3,     4,     5,     6,     7,     8,
807c82dfdfbSmrg     319,   137,   138,   139,    95,   230,   215,   216,   217,   218,
808c82dfdfbSmrg     220,   142,   141,   326,   215,   216,   217,   218,   242,   240,
809c82dfdfbSmrg      93,   221,   241,   306,   191,   257,    91,   258,   319,   336,
810c82dfdfbSmrg     298,   273,   326,    55,    56,    57,    58,    59,    60,    61,
811c82dfdfbSmrg      62,    63,    64,   274,    65,    66,  -127,    67,    68,    69,
812c82dfdfbSmrg      70,    71,    24,    25,    26,    27,    28,   143,   144,    58,
813c82dfdfbSmrg     145,  -182,   146,   147,   148,   149,    72,    65,   150,   276,
814c82dfdfbSmrg     151,    73,    74,   279,    75,   301,   152,   153,   215,   216,
815c82dfdfbSmrg     217,   218,   154,   280,   177,   264,   281,   285,   290,   155,
816c82dfdfbSmrg     156,   102,   105,   157,    73,    74,   305,    75,   143,   144,
817c82dfdfbSmrg      58,   145,   287,   146,   147,   148,   149,   291,    65,   150,
818c82dfdfbSmrg     293,   151,   215,   216,   217,   218,   302,   152,   153,   304,
819c82dfdfbSmrg     244,   295,   314,   154,   245,   215,   216,   217,   218,   320,
820c82dfdfbSmrg     155,   156,   102,   105,   157,    73,    74,   303,    75,   143,
821c82dfdfbSmrg     144,    58,   145,   321,   146,   147,   148,   149,   327,    65,
822c82dfdfbSmrg     150,   214,   151,   121,   330,   122,   334,    19,   152,   153,
823c82dfdfbSmrg     338,    34,    43,   282,   154,    33,    44,   283,   171,   261,
824c82dfdfbSmrg      85,   155,   156,   102,   105,   157,    73,    74,   316,    75,
825c82dfdfbSmrg     143,   144,    58,   145,   335,   146,   147,   197,   149,   339,
826c82dfdfbSmrg     198,   150,   199,    67,    68,    69,    70,   292,   308,    89,
827c82dfdfbSmrg     275,   294,   312,   309,   260,   289,     0,     0,   311,     0,
828c82dfdfbSmrg       0,     0,    72,     0,     0,     0,     0,    73,     0,     0,
829c82dfdfbSmrg      75,   143,   144,    58,   145,     0,   146,   147,   197,   149,
830c82dfdfbSmrg       0,   198,   150,   199,    67,    68,    69,    70,   143,   144,
831c82dfdfbSmrg      58,   145,     0,   146,   147,   148,   149,   297,    65,   150,
832c82dfdfbSmrg       0,   151,     0,    72,     0,     0,     0,     0,    73,     0,
833c82dfdfbSmrg       0,    75,   315,     0,     0,     0,   143,   144,    58,   145,
834c82dfdfbSmrg      72,   146,   147,   148,   149,    73,    65,   150,    75,   151,
835c82dfdfbSmrg       0,   143,   144,    58,   145,     0,   146,   147,   148,   149,
836c82dfdfbSmrg       0,    65,   150,   177,   151,     0,     0,     0,   178,     0,
837c82dfdfbSmrg       0,     0,     0,    73,     0,   224,    75,     0,     0,   143,
838c82dfdfbSmrg     144,    58,   145,    72,   146,   147,   148,   149,    73,    65,
839c82dfdfbSmrg     150,    75,   151,     0,   143,   144,    58,   145,     0,   146,
840c82dfdfbSmrg     147,   148,   149,   226,    65,   227,    53,   151,     0,     0,
841c82dfdfbSmrg       0,    72,     0,     0,     0,     0,    73,   228,     0,    75,
842c82dfdfbSmrg       0,     1,     2,     3,     4,     5,     6,     7,     8,   105,
843c82dfdfbSmrg       0,   229,     0,     0,    75,   143,   144,    58,   145,     0,
844c82dfdfbSmrg     146,   147,   148,   149,     0,    65,   150,     0,   151,     0,
845c82dfdfbSmrg     143,   144,    58,   145,     0,   146,   147,   148,   149,   246,
846c82dfdfbSmrg      65,   150,     0,   151,     0,     0,     0,    72,     0,     0,
847c82dfdfbSmrg       0,     0,    73,     0,   263,    75,     0,     0,     0,     0,
848c82dfdfbSmrg       0,     0,    72,     0,     0,     0,     0,    73,     0,     0,
849c82dfdfbSmrg      75,   143,   144,    58,   145,     0,   146,   147,   148,   149,
850c82dfdfbSmrg     297,    65,   150,     0,   151,   143,   144,    58,   145,     0,
851c82dfdfbSmrg     146,   147,   148,   149,     0,    65,   150,     0,   151,   143,
852c82dfdfbSmrg     144,    58,   145,    72,   146,   147,   148,   149,    73,    65,
853c82dfdfbSmrg     150,    75,   151,     0,     0,     0,     0,    72,     0,     0,
854c82dfdfbSmrg       0,     0,    73,     0,     0,    75,     1,     2,     3,     4,
855c82dfdfbSmrg       5,     6,     7,     8,     0,     0,    73,     0,     0,    75,
856c82dfdfbSmrg      23,    24,    25,    26,    27,    28,    29,    30
857f46a6179Smrg};
858690143ccSmrg
859690143ccSmrgstatic const yytype_int16 yycheck[] =
860690143ccSmrg{
861c82dfdfbSmrg      51,    57,    57,   135,    12,    61,    51,    63,    59,    60,
862c82dfdfbSmrg      55,   130,   190,    29,    38,    42,    41,    62,   137,     0,
863c82dfdfbSmrg      29,    48,    51,   142,    41,    41,    56,    72,    51,    53,
864c82dfdfbSmrg      54,    56,    51,    63,    64,    43,    66,    53,    55,    55,
865c82dfdfbSmrg     121,    58,   123,   124,    53,     4,    55,   128,     0,    52,
866c82dfdfbSmrg     131,    10,    11,   134,    41,   136,    55,    41,    10,    58,
867c82dfdfbSmrg      90,    45,   118,     0,    42,    12,    13,    14,    15,    16,
868c82dfdfbSmrg      48,    55,    41,   154,    58,    12,    13,    14,    15,    16,
869c82dfdfbSmrg      42,   126,   133,    56,   129,   130,    48,   132,    37,    38,
870c82dfdfbSmrg      39,    40,   137,   138,   139,    42,    42,   142,    42,   122,
871c82dfdfbSmrg     129,   130,    48,   132,    48,    53,   129,   130,   137,   132,
872c82dfdfbSmrg     139,    52,    42,   142,   137,    49,   139,   295,    48,   142,
873c82dfdfbSmrg     139,   177,    42,   152,   153,   206,   155,   156,    48,   174,
874c82dfdfbSmrg     175,    52,    53,   178,   215,   216,   217,   218,     0,   220,
875c82dfdfbSmrg     221,    42,    42,    42,   189,   174,   175,    48,    48,    48,
876c82dfdfbSmrg      52,   174,   175,    49,   177,   174,   175,   202,    42,   240,
877c82dfdfbSmrg     189,    52,   207,   244,    48,    25,   189,   197,    36,   199,
878c82dfdfbSmrg     189,    36,   228,   202,    49,    45,   257,    47,   207,   202,
879c82dfdfbSmrg      46,    36,    48,   202,   207,     0,   152,   153,   207,   155,
880c82dfdfbSmrg     156,   323,    48,    49,   239,    57,    58,    59,    60,    61,
881c82dfdfbSmrg      62,    63,    64,    37,    38,    39,    40,    53,    54,   254,
882c82dfdfbSmrg     239,    41,    32,   258,    34,    49,   239,    41,    37,    38,
883c82dfdfbSmrg      39,    40,    39,    40,   280,   280,    37,    41,    36,   258,
884c82dfdfbSmrg      49,    37,    38,    39,    40,   258,    36,    41,    36,   258,
885c82dfdfbSmrg      46,    36,    57,    58,    59,    60,    61,    62,    63,    64,
886c82dfdfbSmrg     301,    41,    41,    41,   299,   278,    37,    38,    39,    40,
887c82dfdfbSmrg      36,    41,    49,   314,    37,    38,    39,    40,    49,    36,
888c82dfdfbSmrg     299,    45,    49,    46,    45,    36,   299,    41,   329,   330,
889c82dfdfbSmrg     299,    49,   333,    17,    18,    19,    20,    21,    22,    23,
890c82dfdfbSmrg      24,    25,    26,    49,    28,    29,    43,    31,    32,    33,
891c82dfdfbSmrg      34,    35,     5,     6,     7,     8,     9,    18,    19,    20,
892c82dfdfbSmrg      21,    43,    23,    24,    25,    26,    50,    28,    29,    43,
893c82dfdfbSmrg      31,    55,    56,    46,    58,    41,    37,    38,    37,    38,
894c82dfdfbSmrg      39,    40,    43,    48,    45,    44,    49,    49,    48,    50,
895c82dfdfbSmrg      51,    52,    53,    54,    55,    56,    44,    58,    18,    19,
896c82dfdfbSmrg      20,    21,    49,    23,    24,    25,    26,    49,    28,    29,
897c82dfdfbSmrg      49,    31,    37,    38,    39,    40,    49,    37,    38,    49,
898c82dfdfbSmrg      48,    41,    41,    43,    49,    37,    38,    39,    40,    44,
899690143ccSmrg      50,    51,    52,    53,    54,    55,    56,    49,    58,    18,
900c82dfdfbSmrg      19,    20,    21,    46,    23,    24,    25,    26,    49,    28,
901c82dfdfbSmrg      29,    43,    31,    45,    36,    47,    49,    10,    37,    38,
902c82dfdfbSmrg      49,    22,    40,   239,    43,    16,    41,   240,   126,   202,
903c82dfdfbSmrg      51,    50,    51,    52,    53,    54,    55,    56,   299,    58,
904c82dfdfbSmrg      18,    19,    20,    21,   329,    23,    24,    25,    26,   333,
905c82dfdfbSmrg      28,    29,    30,    31,    32,    33,    34,   254,   276,    51,
906c82dfdfbSmrg     228,   256,   290,   278,    42,   248,    -1,    -1,   280,    -1,
907c82dfdfbSmrg      -1,    -1,    50,    -1,    -1,    -1,    -1,    55,    -1,    -1,
908c82dfdfbSmrg      58,    18,    19,    20,    21,    -1,    23,    24,    25,    26,
909c82dfdfbSmrg      -1,    28,    29,    30,    31,    32,    33,    34,    18,    19,
910c82dfdfbSmrg      20,    21,    -1,    23,    24,    25,    26,    27,    28,    29,
911c82dfdfbSmrg      -1,    31,    -1,    50,    -1,    -1,    -1,    -1,    55,    -1,
912c82dfdfbSmrg      -1,    58,    42,    -1,    -1,    -1,    18,    19,    20,    21,
913c82dfdfbSmrg      50,    23,    24,    25,    26,    55,    28,    29,    58,    31,
914c82dfdfbSmrg      -1,    18,    19,    20,    21,    -1,    23,    24,    25,    26,
915c82dfdfbSmrg      -1,    28,    29,    45,    31,    -1,    -1,    -1,    50,    -1,
916c82dfdfbSmrg      -1,    -1,    -1,    55,    -1,    42,    58,    -1,    -1,    18,
917c82dfdfbSmrg      19,    20,    21,    50,    23,    24,    25,    26,    55,    28,
918c82dfdfbSmrg      29,    58,    31,    -1,    18,    19,    20,    21,    -1,    23,
919c82dfdfbSmrg      24,    25,    26,    42,    28,    29,    42,    31,    -1,    -1,
920c82dfdfbSmrg      -1,    50,    -1,    -1,    -1,    -1,    55,    41,    -1,    58,
921c82dfdfbSmrg      -1,    57,    58,    59,    60,    61,    62,    63,    64,    53,
922c82dfdfbSmrg      -1,    55,    -1,    -1,    58,    18,    19,    20,    21,    -1,
923c82dfdfbSmrg      23,    24,    25,    26,    -1,    28,    29,    -1,    31,    -1,
924c82dfdfbSmrg      18,    19,    20,    21,    -1,    23,    24,    25,    26,    42,
925c82dfdfbSmrg      28,    29,    -1,    31,    -1,    -1,    -1,    50,    -1,    -1,
926c82dfdfbSmrg      -1,    -1,    55,    -1,    42,    58,    -1,    -1,    -1,    -1,
927c82dfdfbSmrg      -1,    -1,    50,    -1,    -1,    -1,    -1,    55,    -1,    -1,
928c82dfdfbSmrg      58,    18,    19,    20,    21,    -1,    23,    24,    25,    26,
929c82dfdfbSmrg      27,    28,    29,    -1,    31,    18,    19,    20,    21,    -1,
930c82dfdfbSmrg      23,    24,    25,    26,    -1,    28,    29,    -1,    31,    18,
931c82dfdfbSmrg      19,    20,    21,    50,    23,    24,    25,    26,    55,    28,
932c82dfdfbSmrg      29,    58,    31,    -1,    -1,    -1,    -1,    50,    -1,    -1,
933c82dfdfbSmrg      -1,    -1,    55,    -1,    -1,    58,    57,    58,    59,    60,
934c82dfdfbSmrg      61,    62,    63,    64,    -1,    -1,    55,    -1,    -1,    58,
935c82dfdfbSmrg       4,     5,     6,     7,     8,     9,    10,    11
936f46a6179Smrg};
937f46a6179Smrg
938f757b1e9Smrg  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
939f757b1e9Smrg     symbol of state STATE-NUM.  */
940690143ccSmrgstatic const yytype_uint8 yystos[] =
941690143ccSmrg{
942690143ccSmrg       0,    57,    58,    59,    60,    61,    62,    63,    64,    66,
943690143ccSmrg      67,    68,    70,    71,    72,    74,    75,    76,     0,    68,
944690143ccSmrg      74,    71,    74,     4,     5,     6,     7,     8,     9,    10,
945c82dfdfbSmrg      11,    69,    73,    76,    73,    52,   137,   138,   137,   137,
946690143ccSmrg      41,    41,    77,    70,    77,    12,    13,    14,    15,    16,
947690143ccSmrg      78,   116,   117,    42,    42,    17,    18,    19,    20,    21,
948690143ccSmrg      22,    23,    24,    25,    26,    28,    29,    31,    32,    33,
949690143ccSmrg      34,    35,    50,    55,    56,    58,    79,    80,    81,    82,
950690143ccSmrg      85,    88,    89,    93,    94,    95,    96,    97,    98,   112,
951c82dfdfbSmrg     113,   114,   115,   124,   134,   135,    52,    49,    49,    83,
952c82dfdfbSmrg      84,   135,    52,   136,    29,    53,    55,    86,   128,   133,
953c82dfdfbSmrg     134,   134,   133,   135,   133,   136,   136,   136,    25,   135,
954c82dfdfbSmrg     136,    45,    47,    36,    36,    49,    48,    49,    36,    41,
955690143ccSmrg      41,    37,    41,    36,    36,    41,    36,    41,    41,    41,
956c82dfdfbSmrg     133,    49,    41,    18,    19,    21,    23,    24,    25,    26,
957690143ccSmrg      29,    31,    37,    38,    43,    50,    51,    54,   114,   120,
958c82dfdfbSmrg     121,   124,   125,   132,   133,   134,   135,   136,   114,   120,
959690143ccSmrg     120,    84,   120,    79,    87,    87,   120,    45,    50,    90,
960c82dfdfbSmrg      91,    92,   124,   135,   134,   120,   119,   120,   120,    87,
961c82dfdfbSmrg      41,    45,   108,   109,   110,   111,   135,    25,    28,    30,
962690143ccSmrg      79,    95,    99,   100,   105,   112,    36,    87,   121,   124,
963690143ccSmrg     121,   120,   121,   121,    43,    37,    38,    39,    40,    46,
964c82dfdfbSmrg      36,    45,    49,    49,    42,    79,    42,    29,    41,    55,
965c82dfdfbSmrg     114,   122,   123,   126,   127,   128,   129,   135,    42,    48,
966c82dfdfbSmrg      36,    49,    49,    42,    48,    49,    42,   110,    38,    53,
967c82dfdfbSmrg      54,   130,   131,    42,    48,    42,    48,    36,    41,   136,
968c82dfdfbSmrg      42,   100,   120,    42,    44,   118,   119,   120,   120,   120,
969c82dfdfbSmrg     120,   120,   120,    49,    49,   127,    43,    46,    48,    46,
970c82dfdfbSmrg      48,    49,    91,    92,   120,    49,   120,    49,    42,   131,
971c82dfdfbSmrg      48,    49,   109,    49,   111,    41,   120,    27,    79,   101,
972c82dfdfbSmrg     102,    41,    49,    49,    49,    44,    46,    42,   118,   123,
973c82dfdfbSmrg     128,   129,   130,   110,    41,    42,   102,   106,   107,   134,
974c82dfdfbSmrg      44,    46,    42,    41,   103,   104,   134,    49,    42,    48,
975c82dfdfbSmrg      36,   119,    42,    48,    49,   107,   134,    42,    49,   104
976f46a6179Smrg};
977690143ccSmrg
978f757b1e9Smrg  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
979f757b1e9Smrgstatic const yytype_uint8 yyr1[] =
980f757b1e9Smrg{
981f757b1e9Smrg       0,    65,    66,    66,    66,    67,    67,    68,    69,    69,
982f757b1e9Smrg      69,    70,    70,    71,    72,    73,    73,    73,    73,    73,
983f757b1e9Smrg      74,    74,    75,    75,    76,    76,    76,    76,    76,    76,
984f757b1e9Smrg      76,    76,    77,    77,    78,    78,    78,    78,    78,    78,
985f757b1e9Smrg      78,    78,    78,    78,    78,    78,    78,    78,    78,    79,
986f757b1e9Smrg      79,    79,    80,    81,    82,    83,    83,    84,    84,    85,
987f757b1e9Smrg      86,    86,    87,    87,    88,    89,    90,    90,    90,    91,
988f757b1e9Smrg      91,    91,    91,    91,    92,    92,    93,    94,    95,    96,
989f757b1e9Smrg      96,    97,    97,    98,    99,    99,   100,   100,   100,   100,
990f757b1e9Smrg     100,   101,   101,   102,   102,   103,   103,   104,   104,   105,
991f757b1e9Smrg     106,   106,   107,   108,   108,   109,   109,   109,   110,   110,
992f757b1e9Smrg     111,   112,   113,   113,   113,   113,   114,   114,   115,   115,
993f757b1e9Smrg     115,   115,   115,   115,   115,   115,   115,   115,   115,   116,
994f757b1e9Smrg     116,   117,   117,   117,   117,   117,   118,   118,   119,   119,
995f757b1e9Smrg     120,   120,   120,   120,   120,   120,   121,   121,   121,   121,
996f757b1e9Smrg     121,   121,   121,   121,   122,   122,   123,   124,   124,   124,
997f757b1e9Smrg     124,   125,   125,   125,   125,   126,   126,   127,   127,   127,
998f757b1e9Smrg     127,   128,   128,   128,   129,   130,   130,   131,   131,   132,
999f757b1e9Smrg     133,   134,   135,   135,   136,   137,   137,   138
1000f757b1e9Smrg};
1001f757b1e9Smrg
1002f757b1e9Smrg  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
1003f757b1e9Smrgstatic const yytype_uint8 yyr2[] =
1004f757b1e9Smrg{
1005f757b1e9Smrg       0,     2,     1,     1,     1,     2,     1,     7,     1,     1,
1006f757b1e9Smrg       1,     2,     1,     7,     4,     1,     1,     1,     1,     1,
1007f757b1e9Smrg       1,     0,     2,     1,     1,     1,     1,     1,     1,     1,
1008f757b1e9Smrg       1,     1,     2,     0,     2,     2,     2,     2,     2,     2,
1009f757b1e9Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     4,
1010f757b1e9Smrg       2,     3,     4,     5,     3,     3,     1,     1,     3,     6,
1011f757b1e9Smrg       3,     1,     2,     1,     6,     6,     3,     1,     0,     3,
1012f757b1e9Smrg       3,     1,     2,     1,     3,     3,     5,     6,     6,     5,
1013f757b1e9Smrg       6,     6,     6,     6,     2,     1,     5,     1,     1,     1,
1014f757b1e9Smrg       1,     2,     1,     5,     1,     3,     1,     1,     3,     6,
1015f757b1e9Smrg       3,     1,     3,     3,     1,     3,     5,     3,     3,     1,
1016f757b1e9Smrg       5,     6,     1,     1,     1,     1,     1,     1,     1,     1,
1017f757b1e9Smrg       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1018f757b1e9Smrg       0,     1,     1,     1,     1,     1,     1,     0,     3,     1,
1019f757b1e9Smrg       3,     3,     3,     3,     3,     1,     2,     2,     2,     2,
1020f757b1e9Smrg       1,     4,     1,     3,     3,     1,     4,     1,     3,     4,
1021f757b1e9Smrg       6,     1,     1,     1,     1,     1,     0,     3,     3,     1,
1022f757b1e9Smrg       1,     1,     1,     1,     3,     2,     1,     1,     1,     1,
1023f757b1e9Smrg       1,     1,     1,     1,     1,     1,     0,     1
1024f757b1e9Smrg};
1025f757b1e9Smrg
1026f757b1e9Smrg
1027f757b1e9Smrg#define yyerrok         (yyerrstatus = 0)
1028f757b1e9Smrg#define yyclearin       (yychar = YYEMPTY)
1029f757b1e9Smrg#define YYEMPTY         (-2)
1030f757b1e9Smrg#define YYEOF           0
1031f757b1e9Smrg
1032f757b1e9Smrg#define YYACCEPT        goto yyacceptlab
1033f757b1e9Smrg#define YYABORT         goto yyabortlab
1034f757b1e9Smrg#define YYERROR         goto yyerrorlab
1035f757b1e9Smrg
1036690143ccSmrg
1037690143ccSmrg#define YYRECOVERING()  (!!yyerrstatus)
1038690143ccSmrg
1039c82dfdfbSmrg#define YYBACKUP(Token, Value)                                  \
1040c82dfdfbSmrgdo                                                              \
1041c82dfdfbSmrg  if (yychar == YYEMPTY)                                        \
1042c82dfdfbSmrg    {                                                           \
1043c82dfdfbSmrg      yychar = (Token);                                         \
1044c82dfdfbSmrg      yylval = (Value);                                         \
1045c82dfdfbSmrg      YYPOPSTACK (yylen);                                       \
1046c82dfdfbSmrg      yystate = *yyssp;                                         \
1047c82dfdfbSmrg      goto yybackup;                                            \
1048c82dfdfbSmrg    }                                                           \
1049c82dfdfbSmrg  else                                                          \
1050c82dfdfbSmrg    {                                                           \
1051690143ccSmrg      yyerror (YY_("syntax error: cannot back up")); \
1052f757b1e9Smrg      YYERROR;                                                  \
1053f757b1e9Smrg    }                                                           \
1054f757b1e9Smrgwhile (0)
1055f46a6179Smrg
1056f757b1e9Smrg/* Error token number */
1057f757b1e9Smrg#define YYTERROR        1
1058f757b1e9Smrg#define YYERRCODE       256
1059690143ccSmrg
1060690143ccSmrg
1061f46a6179Smrg
1062690143ccSmrg/* Enable debugging if requested.  */
1063690143ccSmrg#if YYDEBUG
1064f46a6179Smrg
1065690143ccSmrg# ifndef YYFPRINTF
1066690143ccSmrg#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1067690143ccSmrg#  define YYFPRINTF fprintf
1068690143ccSmrg# endif
1069f46a6179Smrg
1070f757b1e9Smrg# define YYDPRINTF(Args)                        \
1071f757b1e9Smrgdo {                                            \
1072f757b1e9Smrg  if (yydebug)                                  \
1073f757b1e9Smrg    YYFPRINTF Args;                             \
1074f757b1e9Smrg} while (0)
1075f757b1e9Smrg
1076f757b1e9Smrg/* This macro is provided for backward compatibility. */
1077f757b1e9Smrg#ifndef YY_LOCATION_PRINT
1078f757b1e9Smrg# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1079f757b1e9Smrg#endif
1080f46a6179Smrg
1081f46a6179Smrg
1082f757b1e9Smrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
1083f757b1e9Smrgdo {                                                                      \
1084f757b1e9Smrg  if (yydebug)                                                            \
1085f757b1e9Smrg    {                                                                     \
1086f757b1e9Smrg      YYFPRINTF (stderr, "%s ", Title);                                   \
1087f757b1e9Smrg      yy_symbol_print (stderr,                                            \
1088f757b1e9Smrg                  Type, Value); \
1089f757b1e9Smrg      YYFPRINTF (stderr, "\n");                                           \
1090f757b1e9Smrg    }                                                                     \
1091f757b1e9Smrg} while (0)
1092f46a6179Smrg
1093690143ccSmrg
1094f757b1e9Smrg/*----------------------------------------.
1095f757b1e9Smrg| Print this symbol's value on YYOUTPUT.  |
1096f757b1e9Smrg`----------------------------------------*/
1097f757b1e9Smrg
1098690143ccSmrgstatic void
1099690143ccSmrgyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1100f46a6179Smrg{
1101c82dfdfbSmrg  FILE *yyo = yyoutput;
1102c82dfdfbSmrg  YYUSE (yyo);
1103690143ccSmrg  if (!yyvaluep)
110407d2e718Smrg    return;
1105690143ccSmrg# ifdef YYPRINT
1106690143ccSmrg  if (yytype < YYNTOKENS)
1107690143ccSmrg    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1108690143ccSmrg# endif
1109f757b1e9Smrg  YYUSE (yytype);
1110f46a6179Smrg}
1111f46a6179Smrg
1112f46a6179Smrg
1113690143ccSmrg/*--------------------------------.
1114690143ccSmrg| Print this symbol on YYOUTPUT.  |
1115690143ccSmrg`--------------------------------*/
1116f46a6179Smrg
1117690143ccSmrgstatic void
1118690143ccSmrgyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1119f46a6179Smrg{
1120f757b1e9Smrg  YYFPRINTF (yyoutput, "%s %s (",
1121f757b1e9Smrg             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
1122f46a6179Smrg
1123690143ccSmrg  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1124690143ccSmrg  YYFPRINTF (yyoutput, ")");
1125f46a6179Smrg}
1126f46a6179Smrg
1127690143ccSmrg/*------------------------------------------------------------------.
1128690143ccSmrg| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1129690143ccSmrg| TOP (included).                                                   |
1130690143ccSmrg`------------------------------------------------------------------*/
1131f46a6179Smrg
1132690143ccSmrgstatic void
1133c82dfdfbSmrgyy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1134f46a6179Smrg{
1135690143ccSmrg  YYFPRINTF (stderr, "Stack now");
1136c82dfdfbSmrg  for (; yybottom <= yytop; yybottom++)
1137c82dfdfbSmrg    {
1138c82dfdfbSmrg      int yybot = *yybottom;
1139c82dfdfbSmrg      YYFPRINTF (stderr, " %d", yybot);
1140c82dfdfbSmrg    }
1141690143ccSmrg  YYFPRINTF (stderr, "\n");
1142690143ccSmrg}
1143f46a6179Smrg
1144f757b1e9Smrg# define YY_STACK_PRINT(Bottom, Top)                            \
1145f757b1e9Smrgdo {                                                            \
1146f757b1e9Smrg  if (yydebug)                                                  \
1147f757b1e9Smrg    yy_stack_print ((Bottom), (Top));                           \
1148f757b1e9Smrg} while (0)
1149f46a6179Smrg
1150f46a6179Smrg
1151690143ccSmrg/*------------------------------------------------.
1152690143ccSmrg| Report that the YYRULE is going to be reduced.  |
1153690143ccSmrg`------------------------------------------------*/
1154f46a6179Smrg
1155690143ccSmrgstatic void
1156f757b1e9Smrgyy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
1157690143ccSmrg{
1158f757b1e9Smrg  unsigned long int yylno = yyrline[yyrule];
1159690143ccSmrg  int yynrhs = yyr2[yyrule];
1160690143ccSmrg  int yyi;
1161690143ccSmrg  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1162f757b1e9Smrg             yyrule - 1, yylno);
1163690143ccSmrg  /* The symbols being reduced.  */
1164690143ccSmrg  for (yyi = 0; yyi < yynrhs; yyi++)
1165f46a6179Smrg    {
1166c82dfdfbSmrg      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1167f757b1e9Smrg      yy_symbol_print (stderr,
1168f757b1e9Smrg                       yystos[yyssp[yyi + 1 - yynrhs]],
1169f757b1e9Smrg                       &(yyvsp[(yyi + 1) - (yynrhs)])
1170f757b1e9Smrg                                              );
1171c82dfdfbSmrg      YYFPRINTF (stderr, "\n");
1172f46a6179Smrg    }
1173690143ccSmrg}
1174f46a6179Smrg
1175f757b1e9Smrg# define YY_REDUCE_PRINT(Rule)          \
1176f757b1e9Smrgdo {                                    \
1177f757b1e9Smrg  if (yydebug)                          \
1178f757b1e9Smrg    yy_reduce_print (yyssp, yyvsp, Rule); \
1179f757b1e9Smrg} while (0)
1180f46a6179Smrg
1181690143ccSmrg/* Nonzero means print parse trace.  It is left uninitialized so that
1182690143ccSmrg   multiple parsers can coexist.  */
1183690143ccSmrgint yydebug;
1184690143ccSmrg#else /* !YYDEBUG */
1185690143ccSmrg# define YYDPRINTF(Args)
1186690143ccSmrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1187690143ccSmrg# define YY_STACK_PRINT(Bottom, Top)
1188690143ccSmrg# define YY_REDUCE_PRINT(Rule)
1189690143ccSmrg#endif /* !YYDEBUG */
1190f46a6179Smrg
1191f46a6179Smrg
1192690143ccSmrg/* YYINITDEPTH -- initial size of the parser's stacks.  */
1193f757b1e9Smrg#ifndef YYINITDEPTH
1194690143ccSmrg# define YYINITDEPTH 200
119507d2e718Smrg#endif
1196690143ccSmrg
1197690143ccSmrg/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1198690143ccSmrg   if the built-in stack extension method is used).
1199690143ccSmrg
1200690143ccSmrg   Do not make this value too large; the results are undefined if
1201690143ccSmrg   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1202690143ccSmrg   evaluated with infinite-precision integer arithmetic.  */
1203690143ccSmrg
1204690143ccSmrg#ifndef YYMAXDEPTH
1205690143ccSmrg# define YYMAXDEPTH 10000
1206690143ccSmrg#endif
1207690143ccSmrg
1208690143ccSmrg
1209690143ccSmrg#if YYERROR_VERBOSE
1210690143ccSmrg
1211690143ccSmrg# ifndef yystrlen
1212690143ccSmrg#  if defined __GLIBC__ && defined _STRING_H
1213690143ccSmrg#   define yystrlen strlen
1214690143ccSmrg#  else
1215690143ccSmrg/* Return the length of YYSTR.  */
1216690143ccSmrgstatic YYSIZE_T
1217690143ccSmrgyystrlen (const char *yystr)
1218690143ccSmrg{
1219690143ccSmrg  YYSIZE_T yylen;
1220690143ccSmrg  for (yylen = 0; yystr[yylen]; yylen++)
1221690143ccSmrg    continue;
1222690143ccSmrg  return yylen;
1223690143ccSmrg}
1224690143ccSmrg#  endif
1225690143ccSmrg# endif
1226690143ccSmrg
1227690143ccSmrg# ifndef yystpcpy
1228690143ccSmrg#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1229690143ccSmrg#   define yystpcpy stpcpy
1230690143ccSmrg#  else
1231690143ccSmrg/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1232690143ccSmrg   YYDEST.  */
1233690143ccSmrgstatic char *
1234690143ccSmrgyystpcpy (char *yydest, const char *yysrc)
1235690143ccSmrg{
1236690143ccSmrg  char *yyd = yydest;
1237690143ccSmrg  const char *yys = yysrc;
1238690143ccSmrg
1239690143ccSmrg  while ((*yyd++ = *yys++) != '\0')
1240690143ccSmrg    continue;
1241690143ccSmrg
1242690143ccSmrg  return yyd - 1;
1243690143ccSmrg}
1244690143ccSmrg#  endif
1245690143ccSmrg# endif
1246690143ccSmrg
1247690143ccSmrg# ifndef yytnamerr
1248690143ccSmrg/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1249690143ccSmrg   quotes and backslashes, so that it's suitable for yyerror.  The
1250690143ccSmrg   heuristic is that double-quoting is unnecessary unless the string
1251690143ccSmrg   contains an apostrophe, a comma, or backslash (other than
1252690143ccSmrg   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1253690143ccSmrg   null, do not copy; instead, return the length of what the result
1254690143ccSmrg   would have been.  */
1255690143ccSmrgstatic YYSIZE_T
1256690143ccSmrgyytnamerr (char *yyres, const char *yystr)
1257690143ccSmrg{
1258690143ccSmrg  if (*yystr == '"')
1259690143ccSmrg    {
1260690143ccSmrg      YYSIZE_T yyn = 0;
1261690143ccSmrg      char const *yyp = yystr;
1262690143ccSmrg
1263690143ccSmrg      for (;;)
1264f757b1e9Smrg        switch (*++yyp)
1265f757b1e9Smrg          {
1266f757b1e9Smrg          case '\'':
1267f757b1e9Smrg          case ',':
1268f757b1e9Smrg            goto do_not_strip_quotes;
1269f757b1e9Smrg
1270f757b1e9Smrg          case '\\':
1271f757b1e9Smrg            if (*++yyp != '\\')
1272f757b1e9Smrg              goto do_not_strip_quotes;
1273f757b1e9Smrg            /* Fall through.  */
1274f757b1e9Smrg          default:
1275f757b1e9Smrg            if (yyres)
1276f757b1e9Smrg              yyres[yyn] = *yyp;
1277f757b1e9Smrg            yyn++;
1278f757b1e9Smrg            break;
1279f757b1e9Smrg
1280f757b1e9Smrg          case '"':
1281f757b1e9Smrg            if (yyres)
1282f757b1e9Smrg              yyres[yyn] = '\0';
1283f757b1e9Smrg            return yyn;
1284f757b1e9Smrg          }
1285690143ccSmrg    do_not_strip_quotes: ;
128607d2e718Smrg    }
1287690143ccSmrg
1288690143ccSmrg  if (! yyres)
1289690143ccSmrg    return yystrlen (yystr);
1290690143ccSmrg
1291690143ccSmrg  return yystpcpy (yyres, yystr) - yyres;
1292690143ccSmrg}
1293690143ccSmrg# endif
1294690143ccSmrg
1295c82dfdfbSmrg/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1296c82dfdfbSmrg   about the unexpected token YYTOKEN for the state stack whose top is
1297c82dfdfbSmrg   YYSSP.
1298690143ccSmrg
1299c82dfdfbSmrg   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
1300c82dfdfbSmrg   not large enough to hold the message.  In that case, also set
1301c82dfdfbSmrg   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
1302c82dfdfbSmrg   required number of bytes is too large to store.  */
1303c82dfdfbSmrgstatic int
1304c82dfdfbSmrgyysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1305c82dfdfbSmrg                yytype_int16 *yyssp, int yytoken)
1306c82dfdfbSmrg{
1307f757b1e9Smrg  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
1308c82dfdfbSmrg  YYSIZE_T yysize = yysize0;
1309c82dfdfbSmrg  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1310c82dfdfbSmrg  /* Internationalized format string. */
1311f757b1e9Smrg  const char *yyformat = YY_NULLPTR;
1312c82dfdfbSmrg  /* Arguments of yyformat. */
1313c82dfdfbSmrg  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1314c82dfdfbSmrg  /* Number of reported tokens (one for the "unexpected", one per
1315c82dfdfbSmrg     "expected"). */
1316c82dfdfbSmrg  int yycount = 0;
1317c82dfdfbSmrg
1318c82dfdfbSmrg  /* There are many possibilities here to consider:
1319c82dfdfbSmrg     - If this state is a consistent state with a default action, then
1320c82dfdfbSmrg       the only way this function was invoked is if the default action
1321c82dfdfbSmrg       is an error action.  In that case, don't check for expected
1322c82dfdfbSmrg       tokens because there are none.
1323c82dfdfbSmrg     - The only way there can be no lookahead present (in yychar) is if
1324c82dfdfbSmrg       this state is a consistent state with a default action.  Thus,
1325c82dfdfbSmrg       detecting the absence of a lookahead is sufficient to determine
1326c82dfdfbSmrg       that there is no unexpected or expected token to report.  In that
1327c82dfdfbSmrg       case, just report a simple "syntax error".
1328c82dfdfbSmrg     - Don't assume there isn't a lookahead just because this state is a
1329c82dfdfbSmrg       consistent state with a default action.  There might have been a
1330c82dfdfbSmrg       previous inconsistent state, consistent state with a non-default
1331c82dfdfbSmrg       action, or user semantic action that manipulated yychar.
1332c82dfdfbSmrg     - Of course, the expected token list depends on states to have
1333c82dfdfbSmrg       correct lookahead information, and it depends on the parser not
1334c82dfdfbSmrg       to perform extra reductions after fetching a lookahead from the
1335c82dfdfbSmrg       scanner and before detecting a syntax error.  Thus, state merging
1336c82dfdfbSmrg       (from LALR or IELR) and default reductions corrupt the expected
1337c82dfdfbSmrg       token list.  However, the list is correct for canonical LR with
1338c82dfdfbSmrg       one exception: it will still contain any token that will not be
1339c82dfdfbSmrg       accepted due to an error action in a later state.
1340c82dfdfbSmrg  */
1341c82dfdfbSmrg  if (yytoken != YYEMPTY)
134207d2e718Smrg    {
1343c82dfdfbSmrg      int yyn = yypact[*yyssp];
1344c82dfdfbSmrg      yyarg[yycount++] = yytname[yytoken];
1345c82dfdfbSmrg      if (!yypact_value_is_default (yyn))
1346c82dfdfbSmrg        {
1347c82dfdfbSmrg          /* Start YYX at -YYN if negative to avoid negative indexes in
1348c82dfdfbSmrg             YYCHECK.  In other words, skip the first -YYN actions for
1349c82dfdfbSmrg             this state because they are default actions.  */
1350c82dfdfbSmrg          int yyxbegin = yyn < 0 ? -yyn : 0;
1351c82dfdfbSmrg          /* Stay within bounds of both yycheck and yytname.  */
1352c82dfdfbSmrg          int yychecklim = YYLAST - yyn + 1;
1353c82dfdfbSmrg          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1354c82dfdfbSmrg          int yyx;
1355c82dfdfbSmrg
1356c82dfdfbSmrg          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1357c82dfdfbSmrg            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1358c82dfdfbSmrg                && !yytable_value_is_error (yytable[yyx + yyn]))
1359c82dfdfbSmrg              {
1360c82dfdfbSmrg                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1361c82dfdfbSmrg                  {
1362c82dfdfbSmrg                    yycount = 1;
1363c82dfdfbSmrg                    yysize = yysize0;
1364c82dfdfbSmrg                    break;
1365c82dfdfbSmrg                  }
1366c82dfdfbSmrg                yyarg[yycount++] = yytname[yyx];
1367f757b1e9Smrg                {
1368f757b1e9Smrg                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
1369f757b1e9Smrg                  if (! (yysize <= yysize1
1370f757b1e9Smrg                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1371f757b1e9Smrg                    return 2;
1372f757b1e9Smrg                  yysize = yysize1;
1373f757b1e9Smrg                }
1374c82dfdfbSmrg              }
1375c82dfdfbSmrg        }
1376c82dfdfbSmrg    }
1377690143ccSmrg
1378c82dfdfbSmrg  switch (yycount)
1379c82dfdfbSmrg    {
1380c82dfdfbSmrg# define YYCASE_(N, S)                      \
1381c82dfdfbSmrg      case N:                               \
1382c82dfdfbSmrg        yyformat = S;                       \
1383c82dfdfbSmrg      break
1384c82dfdfbSmrg      YYCASE_(0, YY_("syntax error"));
1385c82dfdfbSmrg      YYCASE_(1, YY_("syntax error, unexpected %s"));
1386c82dfdfbSmrg      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1387c82dfdfbSmrg      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1388c82dfdfbSmrg      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1389c82dfdfbSmrg      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1390c82dfdfbSmrg# undef YYCASE_
1391c82dfdfbSmrg    }
1392690143ccSmrg
1393f757b1e9Smrg  {
1394f757b1e9Smrg    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1395f757b1e9Smrg    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1396f757b1e9Smrg      return 2;
1397f757b1e9Smrg    yysize = yysize1;
1398f757b1e9Smrg  }
1399690143ccSmrg
1400c82dfdfbSmrg  if (*yymsg_alloc < yysize)
1401c82dfdfbSmrg    {
1402c82dfdfbSmrg      *yymsg_alloc = 2 * yysize;
1403c82dfdfbSmrg      if (! (yysize <= *yymsg_alloc
1404c82dfdfbSmrg             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1405c82dfdfbSmrg        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1406c82dfdfbSmrg      return 1;
1407690143ccSmrg    }
1408c82dfdfbSmrg
1409c82dfdfbSmrg  /* Avoid sprintf, as that infringes on the user's name space.
1410c82dfdfbSmrg     Don't have undefined behavior even if the translation
1411c82dfdfbSmrg     produced a string with the wrong number of "%s"s.  */
1412c82dfdfbSmrg  {
1413c82dfdfbSmrg    char *yyp = *yymsg;
1414c82dfdfbSmrg    int yyi = 0;
1415c82dfdfbSmrg    while ((*yyp = *yyformat) != '\0')
1416c82dfdfbSmrg      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1417c82dfdfbSmrg        {
1418c82dfdfbSmrg          yyp += yytnamerr (yyp, yyarg[yyi++]);
1419c82dfdfbSmrg          yyformat += 2;
1420c82dfdfbSmrg        }
1421c82dfdfbSmrg      else
1422c82dfdfbSmrg        {
1423c82dfdfbSmrg          yyp++;
1424c82dfdfbSmrg          yyformat++;
1425c82dfdfbSmrg        }
1426c82dfdfbSmrg  }
1427c82dfdfbSmrg  return 0;
1428690143ccSmrg}
1429690143ccSmrg#endif /* YYERROR_VERBOSE */
1430690143ccSmrg
1431690143ccSmrg/*-----------------------------------------------.
1432690143ccSmrg| Release the memory associated to this symbol.  |
1433690143ccSmrg`-----------------------------------------------*/
1434690143ccSmrg
1435690143ccSmrgstatic void
1436690143ccSmrgyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1437690143ccSmrg{
1438690143ccSmrg  YYUSE (yyvaluep);
1439690143ccSmrg  if (!yymsg)
1440690143ccSmrg    yymsg = "Deleting";
1441690143ccSmrg  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1442690143ccSmrg
1443f757b1e9Smrg  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1444f757b1e9Smrg  YYUSE (yytype);
1445f757b1e9Smrg  YY_IGNORE_MAYBE_UNINITIALIZED_END
1446690143ccSmrg}
14471d8c7986Smrg
1448690143ccSmrg
1449690143ccSmrg
14501d8c7986Smrg
1451c82dfdfbSmrg/* The lookahead symbol.  */
1452690143ccSmrgint yychar;
1453690143ccSmrg
1454c82dfdfbSmrg/* The semantic value of the lookahead symbol.  */
1455690143ccSmrgYYSTYPE yylval;
1456690143ccSmrg/* Number of syntax errors so far.  */
1457690143ccSmrgint yynerrs;
1458690143ccSmrg
1459690143ccSmrg
14601d8c7986Smrg/*----------.
14611d8c7986Smrg| yyparse.  |
14621d8c7986Smrg`----------*/
1463690143ccSmrg
1464690143ccSmrgint
1465690143ccSmrgyyparse (void)
1466690143ccSmrg{
1467c82dfdfbSmrg    int yystate;
1468c82dfdfbSmrg    /* Number of tokens to shift before error messages enabled.  */
1469c82dfdfbSmrg    int yyerrstatus;
1470c82dfdfbSmrg
1471c82dfdfbSmrg    /* The stacks and their tools:
1472f757b1e9Smrg       'yyss': related to states.
1473f757b1e9Smrg       'yyvs': related to semantic values.
1474c82dfdfbSmrg
1475c82dfdfbSmrg       Refer to the stacks through separate pointers, to allow yyoverflow
1476c82dfdfbSmrg       to reallocate them elsewhere.  */
1477c82dfdfbSmrg
1478c82dfdfbSmrg    /* The state stack.  */
1479c82dfdfbSmrg    yytype_int16 yyssa[YYINITDEPTH];
1480c82dfdfbSmrg    yytype_int16 *yyss;
1481c82dfdfbSmrg    yytype_int16 *yyssp;
1482c82dfdfbSmrg
1483c82dfdfbSmrg    /* The semantic value stack.  */
1484c82dfdfbSmrg    YYSTYPE yyvsa[YYINITDEPTH];
1485c82dfdfbSmrg    YYSTYPE *yyvs;
1486c82dfdfbSmrg    YYSTYPE *yyvsp;
1487c82dfdfbSmrg
1488c82dfdfbSmrg    YYSIZE_T yystacksize;
1489c82dfdfbSmrg
14901d8c7986Smrg  int yyn;
14911d8c7986Smrg  int yyresult;
1492c82dfdfbSmrg  /* Lookahead token as an internal (translated) token number.  */
14931d8c7986Smrg  int yytoken = 0;
1494c82dfdfbSmrg  /* The variables used to return semantic value and location from the
1495c82dfdfbSmrg     action routines.  */
1496c82dfdfbSmrg  YYSTYPE yyval;
1497c82dfdfbSmrg
14981d8c7986Smrg#if YYERROR_VERBOSE
14991d8c7986Smrg  /* Buffer for error messages, and its allocated size.  */
15001d8c7986Smrg  char yymsgbuf[128];
15011d8c7986Smrg  char *yymsg = yymsgbuf;
15021d8c7986Smrg  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
15031d8c7986Smrg#endif
1504690143ccSmrg
15051d8c7986Smrg#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
15061d8c7986Smrg
1507690143ccSmrg  /* The number of symbols on the RHS of the reduced rule.
1508690143ccSmrg     Keep to zero when no symbol should be popped.  */
1509690143ccSmrg  int yylen = 0;
1510690143ccSmrg
1511f757b1e9Smrg  yyssp = yyss = yyssa;
1512f757b1e9Smrg  yyvsp = yyvs = yyvsa;
1513c82dfdfbSmrg  yystacksize = YYINITDEPTH;
1514c82dfdfbSmrg
1515690143ccSmrg  YYDPRINTF ((stderr, "Starting parse\n"));
1516690143ccSmrg
1517690143ccSmrg  yystate = 0;
1518690143ccSmrg  yyerrstatus = 0;
1519690143ccSmrg  yynerrs = 0;
1520c82dfdfbSmrg  yychar = YYEMPTY; /* Cause a token to be read.  */
1521690143ccSmrg  goto yysetstate;
1522690143ccSmrg
1523690143ccSmrg/*------------------------------------------------------------.
1524690143ccSmrg| yynewstate -- Push a new state, which is found in yystate.  |
1525690143ccSmrg`------------------------------------------------------------*/
1526690143ccSmrg yynewstate:
1527690143ccSmrg  /* In all cases, when you get here, the value and location stacks
1528690143ccSmrg     have just been pushed.  So pushing a state here evens the stacks.  */
1529690143ccSmrg  yyssp++;
1530690143ccSmrg
1531690143ccSmrg yysetstate:
1532690143ccSmrg  *yyssp = yystate;
1533690143ccSmrg
1534690143ccSmrg  if (yyss + yystacksize - 1 <= yyssp)
1535690143ccSmrg    {
1536690143ccSmrg      /* Get the current used size of the three stacks, in elements.  */
1537690143ccSmrg      YYSIZE_T yysize = yyssp - yyss + 1;
1538690143ccSmrg
1539690143ccSmrg#ifdef yyoverflow
1540690143ccSmrg      {
1541f757b1e9Smrg        /* Give user a chance to reallocate the stack.  Use copies of
1542f757b1e9Smrg           these so that the &'s don't force the real ones into
1543f757b1e9Smrg           memory.  */
1544f757b1e9Smrg        YYSTYPE *yyvs1 = yyvs;
1545f757b1e9Smrg        yytype_int16 *yyss1 = yyss;
1546f757b1e9Smrg
1547f757b1e9Smrg        /* Each stack pointer address is followed by the size of the
1548f757b1e9Smrg           data in use in that stack, in bytes.  This used to be a
1549f757b1e9Smrg           conditional around just the two extra args, but that might
1550f757b1e9Smrg           be undefined if yyoverflow is a macro.  */
1551f757b1e9Smrg        yyoverflow (YY_("memory exhausted"),
1552f757b1e9Smrg                    &yyss1, yysize * sizeof (*yyssp),
1553f757b1e9Smrg                    &yyvs1, yysize * sizeof (*yyvsp),
1554f757b1e9Smrg                    &yystacksize);
1555f757b1e9Smrg
1556f757b1e9Smrg        yyss = yyss1;
1557f757b1e9Smrg        yyvs = yyvs1;
1558690143ccSmrg      }
1559690143ccSmrg#else /* no yyoverflow */
1560690143ccSmrg# ifndef YYSTACK_RELOCATE
1561690143ccSmrg      goto yyexhaustedlab;
1562690143ccSmrg# else
1563690143ccSmrg      /* Extend the stack our own way.  */
1564690143ccSmrg      if (YYMAXDEPTH <= yystacksize)
1565f757b1e9Smrg        goto yyexhaustedlab;
1566690143ccSmrg      yystacksize *= 2;
1567690143ccSmrg      if (YYMAXDEPTH < yystacksize)
1568f757b1e9Smrg        yystacksize = YYMAXDEPTH;
1569690143ccSmrg
1570690143ccSmrg      {
1571f757b1e9Smrg        yytype_int16 *yyss1 = yyss;
1572f757b1e9Smrg        union yyalloc *yyptr =
1573f757b1e9Smrg          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1574f757b1e9Smrg        if (! yyptr)
1575f757b1e9Smrg          goto yyexhaustedlab;
1576f757b1e9Smrg        YYSTACK_RELOCATE (yyss_alloc, yyss);
1577f757b1e9Smrg        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1578690143ccSmrg#  undef YYSTACK_RELOCATE
1579f757b1e9Smrg        if (yyss1 != yyssa)
1580f757b1e9Smrg          YYSTACK_FREE (yyss1);
1581690143ccSmrg      }
1582690143ccSmrg# endif
1583690143ccSmrg#endif /* no yyoverflow */
1584690143ccSmrg
1585690143ccSmrg      yyssp = yyss + yysize - 1;
1586690143ccSmrg      yyvsp = yyvs + yysize - 1;
1587690143ccSmrg
1588690143ccSmrg      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1589f757b1e9Smrg                  (unsigned long int) yystacksize));
1590690143ccSmrg
1591690143ccSmrg      if (yyss + yystacksize - 1 <= yyssp)
1592f757b1e9Smrg        YYABORT;
1593690143ccSmrg    }
1594690143ccSmrg
1595690143ccSmrg  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1596690143ccSmrg
1597c82dfdfbSmrg  if (yystate == YYFINAL)
1598c82dfdfbSmrg    YYACCEPT;
1599c82dfdfbSmrg
1600690143ccSmrg  goto yybackup;
1601690143ccSmrg
1602690143ccSmrg/*-----------.
1603690143ccSmrg| yybackup.  |
1604690143ccSmrg`-----------*/
1605690143ccSmrgyybackup:
1606690143ccSmrg
1607690143ccSmrg  /* Do appropriate processing given the current state.  Read a
1608c82dfdfbSmrg     lookahead token if we need one and don't already have one.  */
1609690143ccSmrg
1610c82dfdfbSmrg  /* First try to decide what to do without reference to lookahead token.  */
1611690143ccSmrg  yyn = yypact[yystate];
1612c82dfdfbSmrg  if (yypact_value_is_default (yyn))
1613690143ccSmrg    goto yydefault;
1614690143ccSmrg
1615c82dfdfbSmrg  /* Not known => get a lookahead token if don't already have one.  */
1616690143ccSmrg
1617c82dfdfbSmrg  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
1618690143ccSmrg  if (yychar == YYEMPTY)
1619690143ccSmrg    {
1620690143ccSmrg      YYDPRINTF ((stderr, "Reading a token: "));
1621f757b1e9Smrg      yychar = yylex ();
1622690143ccSmrg    }
1623690143ccSmrg
1624690143ccSmrg  if (yychar <= YYEOF)
1625690143ccSmrg    {
1626690143ccSmrg      yychar = yytoken = YYEOF;
1627690143ccSmrg      YYDPRINTF ((stderr, "Now at end of input.\n"));
1628690143ccSmrg    }
1629690143ccSmrg  else
1630690143ccSmrg    {
1631690143ccSmrg      yytoken = YYTRANSLATE (yychar);
1632690143ccSmrg      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1633690143ccSmrg    }
1634690143ccSmrg
1635690143ccSmrg  /* If the proper action on seeing token YYTOKEN is to reduce or to
1636690143ccSmrg     detect an error, take that action.  */
1637690143ccSmrg  yyn += yytoken;
1638690143ccSmrg  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1639690143ccSmrg    goto yydefault;
1640690143ccSmrg  yyn = yytable[yyn];
1641690143ccSmrg  if (yyn <= 0)
1642690143ccSmrg    {
1643c82dfdfbSmrg      if (yytable_value_is_error (yyn))
1644c82dfdfbSmrg        goto yyerrlab;
1645690143ccSmrg      yyn = -yyn;
1646690143ccSmrg      goto yyreduce;
1647690143ccSmrg    }
1648690143ccSmrg
1649690143ccSmrg  /* Count tokens shifted since error; after three, turn off error
1650690143ccSmrg     status.  */
1651690143ccSmrg  if (yyerrstatus)
1652690143ccSmrg    yyerrstatus--;
1653690143ccSmrg
1654c82dfdfbSmrg  /* Shift the lookahead token.  */
1655690143ccSmrg  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1656690143ccSmrg
1657c82dfdfbSmrg  /* Discard the shifted token.  */
1658c82dfdfbSmrg  yychar = YYEMPTY;
1659690143ccSmrg
1660690143ccSmrg  yystate = yyn;
1661c82dfdfbSmrg  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1662690143ccSmrg  *++yyvsp = yylval;
1663c82dfdfbSmrg  YY_IGNORE_MAYBE_UNINITIALIZED_END
1664690143ccSmrg
1665690143ccSmrg  goto yynewstate;
1666690143ccSmrg
1667690143ccSmrg
1668690143ccSmrg/*-----------------------------------------------------------.
1669690143ccSmrg| yydefault -- do the default action for the current state.  |
1670690143ccSmrg`-----------------------------------------------------------*/
1671690143ccSmrgyydefault:
1672690143ccSmrg  yyn = yydefact[yystate];
1673690143ccSmrg  if (yyn == 0)
1674690143ccSmrg    goto yyerrlab;
1675690143ccSmrg  goto yyreduce;
1676690143ccSmrg
1677690143ccSmrg
1678690143ccSmrg/*-----------------------------.
1679690143ccSmrg| yyreduce -- Do a reduction.  |
1680690143ccSmrg`-----------------------------*/
1681690143ccSmrgyyreduce:
1682690143ccSmrg  /* yyn is the number of a rule to reduce with.  */
1683690143ccSmrg  yylen = yyr2[yyn];
1684690143ccSmrg
1685690143ccSmrg  /* If YYLEN is nonzero, implement the default value of the action:
1686f757b1e9Smrg     '$$ = $1'.
1687690143ccSmrg
1688690143ccSmrg     Otherwise, the following line sets YYVAL to garbage.
1689690143ccSmrg     This behavior is undocumented and Bison
1690690143ccSmrg     users should not rely upon it.  Assigning to YYVAL
1691690143ccSmrg     unconditionally makes the parser a bit smaller, and it avoids a
1692690143ccSmrg     GCC warning that YYVAL may be used uninitialized.  */
1693690143ccSmrg  yyval = yyvsp[1-yylen];
1694690143ccSmrg
1695690143ccSmrg
1696690143ccSmrg  YY_REDUCE_PRINT (yyn);
1697690143ccSmrg  switch (yyn)
1698f46a6179Smrg    {
1699690143ccSmrg        case 2:
1700f757b1e9Smrg#line 169 "xkbparse.y" /* yacc.c:1646  */
1701f757b1e9Smrg    { (yyval.file)= rtrnValue= (yyvsp[0].file); }
1702f757b1e9Smrg#line 1703 "xkbparse.c" /* yacc.c:1646  */
1703690143ccSmrg    break;
1704690143ccSmrg
1705690143ccSmrg  case 3:
1706f757b1e9Smrg#line 171 "xkbparse.y" /* yacc.c:1646  */
1707f757b1e9Smrg    { (yyval.file)= rtrnValue= (yyvsp[0].file);  }
1708f757b1e9Smrg#line 1709 "xkbparse.c" /* yacc.c:1646  */
1709690143ccSmrg    break;
1710690143ccSmrg
1711690143ccSmrg  case 4:
1712f757b1e9Smrg#line 173 "xkbparse.y" /* yacc.c:1646  */
1713f757b1e9Smrg    { (yyval.file)= rtrnValue= (yyvsp[0].file); }
1714f757b1e9Smrg#line 1715 "xkbparse.c" /* yacc.c:1646  */
1715690143ccSmrg    break;
1716690143ccSmrg
1717690143ccSmrg  case 5:
1718f757b1e9Smrg#line 177 "xkbparse.y" /* yacc.c:1646  */
1719f757b1e9Smrg    { (yyval.file)= (XkbFile *)AppendStmt(&(yyvsp[-1].file)->common,&(yyvsp[0].file)->common); }
1720f757b1e9Smrg#line 1721 "xkbparse.c" /* yacc.c:1646  */
1721690143ccSmrg    break;
1722690143ccSmrg
1723690143ccSmrg  case 6:
1724f757b1e9Smrg#line 179 "xkbparse.y" /* yacc.c:1646  */
1725f757b1e9Smrg    { (yyval.file)= (yyvsp[0].file); }
1726f757b1e9Smrg#line 1727 "xkbparse.c" /* yacc.c:1646  */
1727690143ccSmrg    break;
1728690143ccSmrg
1729690143ccSmrg  case 7:
1730f757b1e9Smrg#line 185 "xkbparse.y" /* yacc.c:1646  */
1731f757b1e9Smrg    { (yyval.file)= CreateXKBFile((yyvsp[-5].uval),(yyvsp[-4].str),&(yyvsp[-2].file)->common,(yyvsp[-6].uval)); }
1732f757b1e9Smrg#line 1733 "xkbparse.c" /* yacc.c:1646  */
1733690143ccSmrg    break;
1734690143ccSmrg
1735690143ccSmrg  case 8:
1736f757b1e9Smrg#line 188 "xkbparse.y" /* yacc.c:1646  */
1737690143ccSmrg    { (yyval.uval)= XkmKeymapFile; }
1738f757b1e9Smrg#line 1739 "xkbparse.c" /* yacc.c:1646  */
1739690143ccSmrg    break;
1740690143ccSmrg
1741690143ccSmrg  case 9:
1742f757b1e9Smrg#line 189 "xkbparse.y" /* yacc.c:1646  */
1743690143ccSmrg    { (yyval.uval)= XkmSemanticsFile; }
1744f757b1e9Smrg#line 1745 "xkbparse.c" /* yacc.c:1646  */
1745690143ccSmrg    break;
1746690143ccSmrg
1747690143ccSmrg  case 10:
1748f757b1e9Smrg#line 190 "xkbparse.y" /* yacc.c:1646  */
1749690143ccSmrg    { (yyval.uval)= XkmLayoutFile; }
1750f757b1e9Smrg#line 1751 "xkbparse.c" /* yacc.c:1646  */
1751690143ccSmrg    break;
1752690143ccSmrg
1753690143ccSmrg  case 11:
1754f757b1e9Smrg#line 194 "xkbparse.y" /* yacc.c:1646  */
1755f757b1e9Smrg    { (yyval.file)= (XkbFile *)AppendStmt(&(yyvsp[-1].file)->common,&(yyvsp[0].file)->common); }
1756f757b1e9Smrg#line 1757 "xkbparse.c" /* yacc.c:1646  */
1757690143ccSmrg    break;
1758690143ccSmrg
1759690143ccSmrg  case 12:
1760f757b1e9Smrg#line 196 "xkbparse.y" /* yacc.c:1646  */
1761f757b1e9Smrg    { (yyval.file)= (yyvsp[0].file); }
1762f757b1e9Smrg#line 1763 "xkbparse.c" /* yacc.c:1646  */
1763690143ccSmrg    break;
1764690143ccSmrg
1765690143ccSmrg  case 13:
1766f757b1e9Smrg#line 202 "xkbparse.y" /* yacc.c:1646  */
1767f757b1e9Smrg    { (yyval.file)= CreateXKBFile((yyvsp[-5].uval),(yyvsp[-4].str),(yyvsp[-2].any),(yyvsp[-6].uval)); }
1768f757b1e9Smrg#line 1769 "xkbparse.c" /* yacc.c:1646  */
1769690143ccSmrg    break;
1770690143ccSmrg
1771690143ccSmrg  case 14:
1772f757b1e9Smrg#line 206 "xkbparse.y" /* yacc.c:1646  */
1773f757b1e9Smrg    { (yyval.file)= CreateXKBFile((yyvsp[-2].uval),(yyvsp[-1].str),(yyvsp[0].any),(yyvsp[-3].uval)); }
1774f757b1e9Smrg#line 1775 "xkbparse.c" /* yacc.c:1646  */
1775690143ccSmrg    break;
1776690143ccSmrg
1777690143ccSmrg  case 15:
1778f757b1e9Smrg#line 210 "xkbparse.y" /* yacc.c:1646  */
1779690143ccSmrg    { (yyval.uval)= XkmKeyNamesIndex; }
1780f757b1e9Smrg#line 1781 "xkbparse.c" /* yacc.c:1646  */
1781690143ccSmrg    break;
1782690143ccSmrg
1783690143ccSmrg  case 16:
1784f757b1e9Smrg#line 211 "xkbparse.y" /* yacc.c:1646  */
1785690143ccSmrg    { (yyval.uval)= XkmTypesIndex; }
1786f757b1e9Smrg#line 1787 "xkbparse.c" /* yacc.c:1646  */
1787690143ccSmrg    break;
1788690143ccSmrg
1789690143ccSmrg  case 17:
1790f757b1e9Smrg#line 212 "xkbparse.y" /* yacc.c:1646  */
1791690143ccSmrg    { (yyval.uval)= XkmCompatMapIndex; }
1792f757b1e9Smrg#line 1793 "xkbparse.c" /* yacc.c:1646  */
1793690143ccSmrg    break;
1794690143ccSmrg
1795690143ccSmrg  case 18:
1796f757b1e9Smrg#line 213 "xkbparse.y" /* yacc.c:1646  */
1797690143ccSmrg    { (yyval.uval)= XkmSymbolsIndex; }
1798f757b1e9Smrg#line 1799 "xkbparse.c" /* yacc.c:1646  */
1799690143ccSmrg    break;
1800690143ccSmrg
1801690143ccSmrg  case 19:
1802f757b1e9Smrg#line 214 "xkbparse.y" /* yacc.c:1646  */
1803690143ccSmrg    { (yyval.uval)= XkmGeometryIndex; }
1804f757b1e9Smrg#line 1805 "xkbparse.c" /* yacc.c:1646  */
1805690143ccSmrg    break;
1806690143ccSmrg
1807690143ccSmrg  case 20:
1808f757b1e9Smrg#line 217 "xkbparse.y" /* yacc.c:1646  */
1809f757b1e9Smrg    { (yyval.uval)= (yyvsp[0].uval); }
1810f757b1e9Smrg#line 1811 "xkbparse.c" /* yacc.c:1646  */
1811690143ccSmrg    break;
1812690143ccSmrg
1813690143ccSmrg  case 21:
1814f757b1e9Smrg#line 218 "xkbparse.y" /* yacc.c:1646  */
1815690143ccSmrg    { (yyval.uval)= 0; }
1816f757b1e9Smrg#line 1817 "xkbparse.c" /* yacc.c:1646  */
1817690143ccSmrg    break;
1818690143ccSmrg
1819690143ccSmrg  case 22:
1820f757b1e9Smrg#line 221 "xkbparse.y" /* yacc.c:1646  */
1821f757b1e9Smrg    { (yyval.uval)= (((yyvsp[-1].uval))|((yyvsp[0].uval))); }
1822f757b1e9Smrg#line 1823 "xkbparse.c" /* yacc.c:1646  */
1823690143ccSmrg    break;
1824690143ccSmrg
1825690143ccSmrg  case 23:
1826f757b1e9Smrg#line 222 "xkbparse.y" /* yacc.c:1646  */
1827f757b1e9Smrg    { (yyval.uval)= (yyvsp[0].uval); }
1828f757b1e9Smrg#line 1829 "xkbparse.c" /* yacc.c:1646  */
1829690143ccSmrg    break;
1830690143ccSmrg
1831690143ccSmrg  case 24:
1832f757b1e9Smrg#line 225 "xkbparse.y" /* yacc.c:1646  */
1833690143ccSmrg    { (yyval.uval)= XkbLC_Partial; }
1834f757b1e9Smrg#line 1835 "xkbparse.c" /* yacc.c:1646  */
1835690143ccSmrg    break;
1836690143ccSmrg
1837690143ccSmrg  case 25:
1838f757b1e9Smrg#line 226 "xkbparse.y" /* yacc.c:1646  */
1839690143ccSmrg    { (yyval.uval)= XkbLC_Default; }
1840f757b1e9Smrg#line 1841 "xkbparse.c" /* yacc.c:1646  */
1841690143ccSmrg    break;
1842690143ccSmrg
1843690143ccSmrg  case 26:
1844f757b1e9Smrg#line 227 "xkbparse.y" /* yacc.c:1646  */
1845690143ccSmrg    { (yyval.uval)= XkbLC_Hidden; }
1846f757b1e9Smrg#line 1847 "xkbparse.c" /* yacc.c:1646  */
1847690143ccSmrg    break;
1848690143ccSmrg
1849690143ccSmrg  case 27:
1850f757b1e9Smrg#line 228 "xkbparse.y" /* yacc.c:1646  */
1851690143ccSmrg    { (yyval.uval)= XkbLC_AlphanumericKeys; }
1852f757b1e9Smrg#line 1853 "xkbparse.c" /* yacc.c:1646  */
1853690143ccSmrg    break;
1854690143ccSmrg
1855690143ccSmrg  case 28:
1856f757b1e9Smrg#line 229 "xkbparse.y" /* yacc.c:1646  */
1857690143ccSmrg    { (yyval.uval)= XkbLC_ModifierKeys; }
1858f757b1e9Smrg#line 1859 "xkbparse.c" /* yacc.c:1646  */
1859690143ccSmrg    break;
1860690143ccSmrg
1861690143ccSmrg  case 29:
1862f757b1e9Smrg#line 230 "xkbparse.y" /* yacc.c:1646  */
1863690143ccSmrg    { (yyval.uval)= XkbLC_KeypadKeys; }
1864f757b1e9Smrg#line 1865 "xkbparse.c" /* yacc.c:1646  */
1865690143ccSmrg    break;
1866690143ccSmrg
1867690143ccSmrg  case 30:
1868f757b1e9Smrg#line 231 "xkbparse.y" /* yacc.c:1646  */
1869690143ccSmrg    { (yyval.uval)= XkbLC_FunctionKeys; }
1870f757b1e9Smrg#line 1871 "xkbparse.c" /* yacc.c:1646  */
1871690143ccSmrg    break;
1872690143ccSmrg
1873690143ccSmrg  case 31:
1874f757b1e9Smrg#line 232 "xkbparse.y" /* yacc.c:1646  */
1875690143ccSmrg    { (yyval.uval)= XkbLC_AlternateGroup; }
1876f757b1e9Smrg#line 1877 "xkbparse.c" /* yacc.c:1646  */
1877690143ccSmrg    break;
1878690143ccSmrg
1879690143ccSmrg  case 32:
1880f757b1e9Smrg#line 236 "xkbparse.y" /* yacc.c:1646  */
1881f757b1e9Smrg    { (yyval.any)= AppendStmt((yyvsp[-1].any),(yyvsp[0].any)); }
1882f757b1e9Smrg#line 1883 "xkbparse.c" /* yacc.c:1646  */
1883690143ccSmrg    break;
1884690143ccSmrg
1885690143ccSmrg  case 33:
1886f757b1e9Smrg#line 237 "xkbparse.y" /* yacc.c:1646  */
1887690143ccSmrg    { (yyval.any)= NULL; }
1888f757b1e9Smrg#line 1889 "xkbparse.c" /* yacc.c:1646  */
1889690143ccSmrg    break;
1890690143ccSmrg
1891690143ccSmrg  case 34:
1892f757b1e9Smrg#line 241 "xkbparse.y" /* yacc.c:1646  */
1893690143ccSmrg    {
1894f757b1e9Smrg			    (yyvsp[0].var)->merge= StmtSetMerge(&(yyvsp[0].var)->common,(yyvsp[-1].uval));
1895f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].var)->common;
1896f46a6179Smrg			}
1897f757b1e9Smrg#line 1898 "xkbparse.c" /* yacc.c:1646  */
1898690143ccSmrg    break;
1899690143ccSmrg
1900690143ccSmrg  case 35:
1901f757b1e9Smrg#line 246 "xkbparse.y" /* yacc.c:1646  */
1902690143ccSmrg    {
1903f757b1e9Smrg			    (yyvsp[0].vmod)->merge= StmtSetMerge(&(yyvsp[0].vmod)->common,(yyvsp[-1].uval));
1904f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].vmod)->common;
1905f46a6179Smrg			}
1906f757b1e9Smrg#line 1907 "xkbparse.c" /* yacc.c:1646  */
1907690143ccSmrg    break;
1908690143ccSmrg
1909690143ccSmrg  case 36:
1910f757b1e9Smrg#line 251 "xkbparse.y" /* yacc.c:1646  */
1911690143ccSmrg    {
1912f757b1e9Smrg			    (yyvsp[0].interp)->merge= StmtSetMerge(&(yyvsp[0].interp)->common,(yyvsp[-1].uval));
1913f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].interp)->common;
1914f46a6179Smrg			}
1915f757b1e9Smrg#line 1916 "xkbparse.c" /* yacc.c:1646  */
1916690143ccSmrg    break;
1917690143ccSmrg
1918690143ccSmrg  case 37:
1919f757b1e9Smrg#line 256 "xkbparse.y" /* yacc.c:1646  */
1920690143ccSmrg    {
1921f757b1e9Smrg			    (yyvsp[0].keyName)->merge= StmtSetMerge(&(yyvsp[0].keyName)->common,(yyvsp[-1].uval));
1922f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].keyName)->common;
1923f46a6179Smrg			}
1924f757b1e9Smrg#line 1925 "xkbparse.c" /* yacc.c:1646  */
1925690143ccSmrg    break;
1926690143ccSmrg
1927690143ccSmrg  case 38:
1928f757b1e9Smrg#line 261 "xkbparse.y" /* yacc.c:1646  */
1929690143ccSmrg    {
1930f757b1e9Smrg			    (yyvsp[0].keyAlias)->merge= StmtSetMerge(&(yyvsp[0].keyAlias)->common,(yyvsp[-1].uval));
1931f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].keyAlias)->common;
1932f46a6179Smrg			}
1933f757b1e9Smrg#line 1934 "xkbparse.c" /* yacc.c:1646  */
1934690143ccSmrg    break;
1935690143ccSmrg
1936690143ccSmrg  case 39:
1937f757b1e9Smrg#line 266 "xkbparse.y" /* yacc.c:1646  */
1938690143ccSmrg    {
1939f757b1e9Smrg			    (yyvsp[0].keyType)->merge= StmtSetMerge(&(yyvsp[0].keyType)->common,(yyvsp[-1].uval));
1940f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].keyType)->common;
1941f46a6179Smrg			}
1942f757b1e9Smrg#line 1943 "xkbparse.c" /* yacc.c:1646  */
1943690143ccSmrg    break;
1944690143ccSmrg
1945690143ccSmrg  case 40:
1946f757b1e9Smrg#line 271 "xkbparse.y" /* yacc.c:1646  */
1947690143ccSmrg    {
1948f757b1e9Smrg			    (yyvsp[0].syms)->merge= StmtSetMerge(&(yyvsp[0].syms)->common,(yyvsp[-1].uval));
1949f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].syms)->common;
1950f46a6179Smrg			}
1951f757b1e9Smrg#line 1952 "xkbparse.c" /* yacc.c:1646  */
1952690143ccSmrg    break;
1953690143ccSmrg
1954690143ccSmrg  case 41:
1955f757b1e9Smrg#line 276 "xkbparse.y" /* yacc.c:1646  */
1956690143ccSmrg    {
1957f757b1e9Smrg			    (yyvsp[0].modMask)->merge= StmtSetMerge(&(yyvsp[0].modMask)->common,(yyvsp[-1].uval));
1958f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].modMask)->common;
1959f46a6179Smrg			}
1960f757b1e9Smrg#line 1961 "xkbparse.c" /* yacc.c:1646  */
1961690143ccSmrg    break;
1962690143ccSmrg
1963690143ccSmrg  case 42:
1964f757b1e9Smrg#line 281 "xkbparse.y" /* yacc.c:1646  */
1965690143ccSmrg    {
1966f757b1e9Smrg			    (yyvsp[0].groupCompat)->merge= StmtSetMerge(&(yyvsp[0].groupCompat)->common,(yyvsp[-1].uval));
1967f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].groupCompat)->common;
1968f46a6179Smrg			}
1969f757b1e9Smrg#line 1970 "xkbparse.c" /* yacc.c:1646  */
1970690143ccSmrg    break;
1971690143ccSmrg
1972690143ccSmrg  case 43:
1973f757b1e9Smrg#line 286 "xkbparse.y" /* yacc.c:1646  */
1974690143ccSmrg    {
1975f757b1e9Smrg			    (yyvsp[0].ledMap)->merge= StmtSetMerge(&(yyvsp[0].ledMap)->common,(yyvsp[-1].uval));
1976f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].ledMap)->common;
1977f46a6179Smrg			}
1978f757b1e9Smrg#line 1979 "xkbparse.c" /* yacc.c:1646  */
1979690143ccSmrg    break;
1980690143ccSmrg
1981690143ccSmrg  case 44:
1982f757b1e9Smrg#line 291 "xkbparse.y" /* yacc.c:1646  */
1983690143ccSmrg    {
1984f757b1e9Smrg			    (yyvsp[0].ledName)->merge= StmtSetMerge(&(yyvsp[0].ledName)->common,(yyvsp[-1].uval));
1985f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].ledName)->common;
1986f46a6179Smrg			}
1987f757b1e9Smrg#line 1988 "xkbparse.c" /* yacc.c:1646  */
1988690143ccSmrg    break;
1989690143ccSmrg
1990690143ccSmrg  case 45:
1991f757b1e9Smrg#line 296 "xkbparse.y" /* yacc.c:1646  */
1992690143ccSmrg    {
1993f757b1e9Smrg			    (yyvsp[0].shape)->merge= StmtSetMerge(&(yyvsp[0].shape)->common,(yyvsp[-1].uval));
1994f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].shape)->common;
1995f46a6179Smrg			}
1996f757b1e9Smrg#line 1997 "xkbparse.c" /* yacc.c:1646  */
1997690143ccSmrg    break;
1998690143ccSmrg
1999690143ccSmrg  case 46:
2000f757b1e9Smrg#line 301 "xkbparse.y" /* yacc.c:1646  */
2001690143ccSmrg    {
2002f757b1e9Smrg			    (yyvsp[0].section)->merge= StmtSetMerge(&(yyvsp[0].section)->common,(yyvsp[-1].uval));
2003f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].section)->common;
2004f46a6179Smrg			}
2005f757b1e9Smrg#line 2006 "xkbparse.c" /* yacc.c:1646  */
2006690143ccSmrg    break;
2007690143ccSmrg
2008690143ccSmrg  case 47:
2009f757b1e9Smrg#line 306 "xkbparse.y" /* yacc.c:1646  */
2010690143ccSmrg    {
2011f757b1e9Smrg			    (yyvsp[0].doodad)->merge= StmtSetMerge(&(yyvsp[0].doodad)->common,(yyvsp[-1].uval));
2012f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].doodad)->common;
2013f46a6179Smrg			}
2014f757b1e9Smrg#line 2015 "xkbparse.c" /* yacc.c:1646  */
2015690143ccSmrg    break;
2016690143ccSmrg
2017690143ccSmrg  case 48:
2018f757b1e9Smrg#line 311 "xkbparse.y" /* yacc.c:1646  */
2019690143ccSmrg    {
2020f757b1e9Smrg			    if ((yyvsp[-1].uval)==MergeAltForm) {
2021f46a6179Smrg				yyerror("cannot use 'alternate' to include other maps");
2022690143ccSmrg				(yyval.any)= &IncludeCreate(scanBuf,MergeDefault)->common;
2023f46a6179Smrg			    }
2024f46a6179Smrg			    else {
2025f757b1e9Smrg				(yyval.any)= &IncludeCreate(scanBuf,(yyvsp[-1].uval))->common;
2026f46a6179Smrg			    }
2027f46a6179Smrg                        }
2028f757b1e9Smrg#line 2029 "xkbparse.c" /* yacc.c:1646  */
2029690143ccSmrg    break;
2030690143ccSmrg
2031690143ccSmrg  case 49:
2032f757b1e9Smrg#line 323 "xkbparse.y" /* yacc.c:1646  */
2033f757b1e9Smrg    { (yyval.var)= VarCreate((yyvsp[-3].expr),(yyvsp[-1].expr)); }
2034f757b1e9Smrg#line 2035 "xkbparse.c" /* yacc.c:1646  */
2035690143ccSmrg    break;
2036690143ccSmrg
2037690143ccSmrg  case 50:
2038f757b1e9Smrg#line 325 "xkbparse.y" /* yacc.c:1646  */
2039f757b1e9Smrg    { (yyval.var)= BoolVarCreate((yyvsp[-1].sval),1); }
2040f757b1e9Smrg#line 2041 "xkbparse.c" /* yacc.c:1646  */
2041690143ccSmrg    break;
2042690143ccSmrg
2043690143ccSmrg  case 51:
2044f757b1e9Smrg#line 327 "xkbparse.y" /* yacc.c:1646  */
2045f757b1e9Smrg    { (yyval.var)= BoolVarCreate((yyvsp[-1].sval),0); }
2046f757b1e9Smrg#line 2047 "xkbparse.c" /* yacc.c:1646  */
2047690143ccSmrg    break;
2048690143ccSmrg
2049690143ccSmrg  case 52:
2050f757b1e9Smrg#line 331 "xkbparse.y" /* yacc.c:1646  */
2051690143ccSmrg    {
2052f46a6179Smrg			    KeycodeDef *def;
2053f46a6179Smrg
2054f757b1e9Smrg			    def= KeycodeCreate((yyvsp[-3].str),(yyvsp[-1].expr));
2055f757b1e9Smrg			    if ((yyvsp[-3].str))
2056f757b1e9Smrg				free((yyvsp[-3].str));
2057690143ccSmrg			    (yyval.keyName)= def;
2058f46a6179Smrg			}
2059f757b1e9Smrg#line 2060 "xkbparse.c" /* yacc.c:1646  */
2060690143ccSmrg    break;
2061690143ccSmrg
2062690143ccSmrg  case 53:
2063f757b1e9Smrg#line 342 "xkbparse.y" /* yacc.c:1646  */
2064690143ccSmrg    {
2065f46a6179Smrg			    KeyAliasDef	*def;
2066f757b1e9Smrg			    def= KeyAliasCreate((yyvsp[-3].str),(yyvsp[-1].str));
2067f757b1e9Smrg			    if ((yyvsp[-3].str))	free((yyvsp[-3].str));
2068f757b1e9Smrg			    if ((yyvsp[-1].str))	free((yyvsp[-1].str));
2069690143ccSmrg			    (yyval.keyAlias)= def;
2070f46a6179Smrg			}
2071f757b1e9Smrg#line 2072 "xkbparse.c" /* yacc.c:1646  */
2072690143ccSmrg    break;
2073690143ccSmrg
2074690143ccSmrg  case 54:
2075f757b1e9Smrg#line 352 "xkbparse.y" /* yacc.c:1646  */
2076f757b1e9Smrg    { (yyval.vmod)= (yyvsp[-1].vmod); }
2077f757b1e9Smrg#line 2078 "xkbparse.c" /* yacc.c:1646  */
2078690143ccSmrg    break;
2079690143ccSmrg
2080690143ccSmrg  case 55:
2081f757b1e9Smrg#line 356 "xkbparse.y" /* yacc.c:1646  */
2082f757b1e9Smrg    { (yyval.vmod)= (VModDef *)AppendStmt(&(yyvsp[-2].vmod)->common,&(yyvsp[0].vmod)->common); }
2083f757b1e9Smrg#line 2084 "xkbparse.c" /* yacc.c:1646  */
2084690143ccSmrg    break;
2085690143ccSmrg
2086690143ccSmrg  case 56:
2087f757b1e9Smrg#line 358 "xkbparse.y" /* yacc.c:1646  */
2088f757b1e9Smrg    { (yyval.vmod)= (yyvsp[0].vmod); }
2089f757b1e9Smrg#line 2090 "xkbparse.c" /* yacc.c:1646  */
2090690143ccSmrg    break;
2091690143ccSmrg
2092690143ccSmrg  case 57:
2093f757b1e9Smrg#line 362 "xkbparse.y" /* yacc.c:1646  */
2094f757b1e9Smrg    { (yyval.vmod)= VModCreate((yyvsp[0].sval),NULL); }
2095f757b1e9Smrg#line 2096 "xkbparse.c" /* yacc.c:1646  */
2096690143ccSmrg    break;
2097690143ccSmrg
2098690143ccSmrg  case 58:
2099f757b1e9Smrg#line 364 "xkbparse.y" /* yacc.c:1646  */
2100f757b1e9Smrg    { (yyval.vmod)= VModCreate((yyvsp[-2].sval),(yyvsp[0].expr)); }
2101f757b1e9Smrg#line 2102 "xkbparse.c" /* yacc.c:1646  */
2102690143ccSmrg    break;
2103690143ccSmrg
2104690143ccSmrg  case 59:
2105f757b1e9Smrg#line 370 "xkbparse.y" /* yacc.c:1646  */
2106690143ccSmrg    {
2107f757b1e9Smrg			    (yyvsp[-4].interp)->def= (yyvsp[-2].var);
2108f757b1e9Smrg			    (yyval.interp)= (yyvsp[-4].interp);
2109f46a6179Smrg			}
2110f757b1e9Smrg#line 2111 "xkbparse.c" /* yacc.c:1646  */
2111690143ccSmrg    break;
2112690143ccSmrg
2113690143ccSmrg  case 60:
2114f757b1e9Smrg#line 377 "xkbparse.y" /* yacc.c:1646  */
2115f757b1e9Smrg    { (yyval.interp)= InterpCreate((yyvsp[-2].str), (yyvsp[0].expr)); }
2116f757b1e9Smrg#line 2117 "xkbparse.c" /* yacc.c:1646  */
2117690143ccSmrg    break;
2118690143ccSmrg
2119690143ccSmrg  case 61:
2120f757b1e9Smrg#line 379 "xkbparse.y" /* yacc.c:1646  */
2121f757b1e9Smrg    { (yyval.interp)= InterpCreate((yyvsp[0].str), NULL); }
2122f757b1e9Smrg#line 2123 "xkbparse.c" /* yacc.c:1646  */
2123690143ccSmrg    break;
2124690143ccSmrg
2125690143ccSmrg  case 62:
2126f757b1e9Smrg#line 383 "xkbparse.y" /* yacc.c:1646  */
2127f757b1e9Smrg    { (yyval.var)= (VarDef *)AppendStmt(&(yyvsp[-1].var)->common,&(yyvsp[0].var)->common); }
2128f757b1e9Smrg#line 2129 "xkbparse.c" /* yacc.c:1646  */
2129690143ccSmrg    break;
2130690143ccSmrg
2131690143ccSmrg  case 63:
2132f757b1e9Smrg#line 385 "xkbparse.y" /* yacc.c:1646  */
2133f757b1e9Smrg    { (yyval.var)= (yyvsp[0].var); }
2134f757b1e9Smrg#line 2135 "xkbparse.c" /* yacc.c:1646  */
2135690143ccSmrg    break;
2136690143ccSmrg
2137690143ccSmrg  case 64:
2138f757b1e9Smrg#line 391 "xkbparse.y" /* yacc.c:1646  */
2139f757b1e9Smrg    { (yyval.keyType)= KeyTypeCreate((yyvsp[-4].sval),(yyvsp[-2].var)); }
2140f757b1e9Smrg#line 2141 "xkbparse.c" /* yacc.c:1646  */
2141690143ccSmrg    break;
2142690143ccSmrg
2143690143ccSmrg  case 65:
2144f757b1e9Smrg#line 397 "xkbparse.y" /* yacc.c:1646  */
2145f757b1e9Smrg    { (yyval.syms)= SymbolsCreate((yyvsp[-4].str),(ExprDef *)(yyvsp[-2].var)); }
2146f757b1e9Smrg#line 2147 "xkbparse.c" /* yacc.c:1646  */
2147690143ccSmrg    break;
2148690143ccSmrg
2149690143ccSmrg  case 66:
2150f757b1e9Smrg#line 401 "xkbparse.y" /* yacc.c:1646  */
2151f757b1e9Smrg    { (yyval.var)= (VarDef *)AppendStmt(&(yyvsp[-2].var)->common,&(yyvsp[0].var)->common); }
2152f757b1e9Smrg#line 2153 "xkbparse.c" /* yacc.c:1646  */
2153690143ccSmrg    break;
2154690143ccSmrg
2155690143ccSmrg  case 67:
2156f757b1e9Smrg#line 403 "xkbparse.y" /* yacc.c:1646  */
2157f757b1e9Smrg    { (yyval.var)= (yyvsp[0].var); }
2158f757b1e9Smrg#line 2159 "xkbparse.c" /* yacc.c:1646  */
2159690143ccSmrg    break;
2160690143ccSmrg
2161690143ccSmrg  case 68:
2162f757b1e9Smrg#line 404 "xkbparse.y" /* yacc.c:1646  */
2163690143ccSmrg    { (yyval.var)= NULL; }
2164f757b1e9Smrg#line 2165 "xkbparse.c" /* yacc.c:1646  */
2165690143ccSmrg    break;
2166690143ccSmrg
2167690143ccSmrg  case 69:
2168f757b1e9Smrg#line 408 "xkbparse.y" /* yacc.c:1646  */
2169f757b1e9Smrg    { (yyval.var)= VarCreate((yyvsp[-2].expr),(yyvsp[0].expr)); }
2170f757b1e9Smrg#line 2171 "xkbparse.c" /* yacc.c:1646  */
2171690143ccSmrg    break;
2172690143ccSmrg
2173690143ccSmrg  case 70:
2174f757b1e9Smrg#line 410 "xkbparse.y" /* yacc.c:1646  */
2175f757b1e9Smrg    { (yyval.var)= VarCreate((yyvsp[-2].expr),(yyvsp[0].expr)); }
2176f757b1e9Smrg#line 2177 "xkbparse.c" /* yacc.c:1646  */
2177690143ccSmrg    break;
2178690143ccSmrg
2179690143ccSmrg  case 71:
2180f757b1e9Smrg#line 412 "xkbparse.y" /* yacc.c:1646  */
2181f757b1e9Smrg    { (yyval.var)= BoolVarCreate((yyvsp[0].sval),1); }
2182f757b1e9Smrg#line 2183 "xkbparse.c" /* yacc.c:1646  */
2183690143ccSmrg    break;
2184690143ccSmrg
2185690143ccSmrg  case 72:
2186f757b1e9Smrg#line 414 "xkbparse.y" /* yacc.c:1646  */
2187f757b1e9Smrg    { (yyval.var)= BoolVarCreate((yyvsp[0].sval),0); }
2188f757b1e9Smrg#line 2189 "xkbparse.c" /* yacc.c:1646  */
2189690143ccSmrg    break;
2190690143ccSmrg
2191690143ccSmrg  case 73:
2192f757b1e9Smrg#line 416 "xkbparse.y" /* yacc.c:1646  */
2193f757b1e9Smrg    { (yyval.var)= VarCreate(NULL,(yyvsp[0].expr)); }
2194f757b1e9Smrg#line 2195 "xkbparse.c" /* yacc.c:1646  */
2195690143ccSmrg    break;
2196690143ccSmrg
2197690143ccSmrg  case 74:
2198f757b1e9Smrg#line 420 "xkbparse.y" /* yacc.c:1646  */
2199f757b1e9Smrg    { (yyval.expr)= (yyvsp[-1].expr); }
2200f757b1e9Smrg#line 2201 "xkbparse.c" /* yacc.c:1646  */
2201690143ccSmrg    break;
2202690143ccSmrg
2203690143ccSmrg  case 75:
2204f757b1e9Smrg#line 422 "xkbparse.y" /* yacc.c:1646  */
2205f757b1e9Smrg    { (yyval.expr)= ExprCreateUnary(ExprActionList,TypeAction,(yyvsp[-1].expr)); }
2206f757b1e9Smrg#line 2207 "xkbparse.c" /* yacc.c:1646  */
2207690143ccSmrg    break;
2208690143ccSmrg
2209690143ccSmrg  case 76:
2210f757b1e9Smrg#line 426 "xkbparse.y" /* yacc.c:1646  */
2211f757b1e9Smrg    { (yyval.groupCompat)= GroupCompatCreate((yyvsp[-3].ival),(yyvsp[-1].expr)); }
2212f757b1e9Smrg#line 2213 "xkbparse.c" /* yacc.c:1646  */
2213690143ccSmrg    break;
2214690143ccSmrg
2215690143ccSmrg  case 77:
2216f757b1e9Smrg#line 430 "xkbparse.y" /* yacc.c:1646  */
2217f757b1e9Smrg    { (yyval.modMask)= ModMapCreate((yyvsp[-4].sval),(yyvsp[-2].expr)); }
2218f757b1e9Smrg#line 2219 "xkbparse.c" /* yacc.c:1646  */
2219690143ccSmrg    break;
2220690143ccSmrg
2221690143ccSmrg  case 78:
2222f757b1e9Smrg#line 434 "xkbparse.y" /* yacc.c:1646  */
2223f757b1e9Smrg    { (yyval.ledMap)= IndicatorMapCreate((yyvsp[-4].sval),(yyvsp[-2].var)); }
2224f757b1e9Smrg#line 2225 "xkbparse.c" /* yacc.c:1646  */
2225690143ccSmrg    break;
2226690143ccSmrg
2227690143ccSmrg  case 79:
2228f757b1e9Smrg#line 438 "xkbparse.y" /* yacc.c:1646  */
2229f757b1e9Smrg    { (yyval.ledName)= IndicatorNameCreate((yyvsp[-3].ival),(yyvsp[-1].expr),False); }
2230f757b1e9Smrg#line 2231 "xkbparse.c" /* yacc.c:1646  */
2231690143ccSmrg    break;
2232690143ccSmrg
2233690143ccSmrg  case 80:
2234f757b1e9Smrg#line 440 "xkbparse.y" /* yacc.c:1646  */
2235f757b1e9Smrg    { (yyval.ledName)= IndicatorNameCreate((yyvsp[-3].ival),(yyvsp[-1].expr),True); }
2236f757b1e9Smrg#line 2237 "xkbparse.c" /* yacc.c:1646  */
2237690143ccSmrg    break;
2238690143ccSmrg
2239690143ccSmrg  case 81:
2240f757b1e9Smrg#line 444 "xkbparse.y" /* yacc.c:1646  */
2241f757b1e9Smrg    { (yyval.shape)= ShapeDeclCreate((yyvsp[-4].sval),(OutlineDef *)&(yyvsp[-2].outline)->common); }
2242f757b1e9Smrg#line 2243 "xkbparse.c" /* yacc.c:1646  */
2243690143ccSmrg    break;
2244690143ccSmrg
2245690143ccSmrg  case 82:
2246f757b1e9Smrg#line 446 "xkbparse.y" /* yacc.c:1646  */
2247690143ccSmrg    {
2248f46a6179Smrg			    OutlineDef *outlines;
2249f757b1e9Smrg			    outlines= OutlineCreate(None,(yyvsp[-2].expr));
2250f757b1e9Smrg			    (yyval.shape)= ShapeDeclCreate((yyvsp[-4].sval),outlines);
2251f46a6179Smrg			}
2252f757b1e9Smrg#line 2253 "xkbparse.c" /* yacc.c:1646  */
2253690143ccSmrg    break;
2254690143ccSmrg
2255690143ccSmrg  case 83:
2256f757b1e9Smrg#line 454 "xkbparse.y" /* yacc.c:1646  */
2257f757b1e9Smrg    { (yyval.section)= SectionDeclCreate((yyvsp[-4].sval),(yyvsp[-2].row)); }
2258f757b1e9Smrg#line 2259 "xkbparse.c" /* yacc.c:1646  */
2259690143ccSmrg    break;
2260690143ccSmrg
2261690143ccSmrg  case 84:
2262f757b1e9Smrg#line 458 "xkbparse.y" /* yacc.c:1646  */
2263f757b1e9Smrg    { (yyval.row)=(RowDef *)AppendStmt(&(yyvsp[-1].row)->common,&(yyvsp[0].row)->common);}
2264f757b1e9Smrg#line 2265 "xkbparse.c" /* yacc.c:1646  */
2265690143ccSmrg    break;
2266690143ccSmrg
2267690143ccSmrg  case 85:
2268f757b1e9Smrg#line 460 "xkbparse.y" /* yacc.c:1646  */
2269f757b1e9Smrg    { (yyval.row)= (yyvsp[0].row); }
2270f757b1e9Smrg#line 2271 "xkbparse.c" /* yacc.c:1646  */
2271690143ccSmrg    break;
2272690143ccSmrg
2273690143ccSmrg  case 86:
2274f757b1e9Smrg#line 464 "xkbparse.y" /* yacc.c:1646  */
2275f757b1e9Smrg    { (yyval.row)= RowDeclCreate((yyvsp[-2].key)); }
2276f757b1e9Smrg#line 2277 "xkbparse.c" /* yacc.c:1646  */
2277690143ccSmrg    break;
2278690143ccSmrg
2279690143ccSmrg  case 87:
2280f757b1e9Smrg#line 466 "xkbparse.y" /* yacc.c:1646  */
2281f757b1e9Smrg    { (yyval.row)= (RowDef *)(yyvsp[0].var); }
2282f757b1e9Smrg#line 2283 "xkbparse.c" /* yacc.c:1646  */
2283690143ccSmrg    break;
2284690143ccSmrg
2285690143ccSmrg  case 88:
2286f757b1e9Smrg#line 468 "xkbparse.y" /* yacc.c:1646  */
2287f757b1e9Smrg    { (yyval.row)= (RowDef *)(yyvsp[0].doodad); }
2288f757b1e9Smrg#line 2289 "xkbparse.c" /* yacc.c:1646  */
2289690143ccSmrg    break;
2290690143ccSmrg
2291690143ccSmrg  case 89:
2292f757b1e9Smrg#line 470 "xkbparse.y" /* yacc.c:1646  */
2293f757b1e9Smrg    { (yyval.row)= (RowDef *)(yyvsp[0].ledMap); }
2294f757b1e9Smrg#line 2295 "xkbparse.c" /* yacc.c:1646  */
2295690143ccSmrg    break;
2296690143ccSmrg
2297690143ccSmrg  case 90:
2298f757b1e9Smrg#line 472 "xkbparse.y" /* yacc.c:1646  */
2299f757b1e9Smrg    { (yyval.row)= (RowDef *)(yyvsp[0].overlay); }
2300f757b1e9Smrg#line 2301 "xkbparse.c" /* yacc.c:1646  */
2301690143ccSmrg    break;
2302690143ccSmrg
2303690143ccSmrg  case 91:
2304f757b1e9Smrg#line 476 "xkbparse.y" /* yacc.c:1646  */
2305f757b1e9Smrg    { (yyval.key)=(KeyDef *)AppendStmt(&(yyvsp[-1].key)->common,&(yyvsp[0].key)->common);}
2306f757b1e9Smrg#line 2307 "xkbparse.c" /* yacc.c:1646  */
2307690143ccSmrg    break;
2308690143ccSmrg
2309690143ccSmrg  case 92:
2310f757b1e9Smrg#line 478 "xkbparse.y" /* yacc.c:1646  */
2311f757b1e9Smrg    { (yyval.key)= (yyvsp[0].key); }
2312f757b1e9Smrg#line 2313 "xkbparse.c" /* yacc.c:1646  */
2313690143ccSmrg    break;
2314690143ccSmrg
2315690143ccSmrg  case 93:
2316f757b1e9Smrg#line 482 "xkbparse.y" /* yacc.c:1646  */
2317f757b1e9Smrg    { (yyval.key)= (yyvsp[-2].key); }
2318f757b1e9Smrg#line 2319 "xkbparse.c" /* yacc.c:1646  */
2319690143ccSmrg    break;
2320690143ccSmrg
2321690143ccSmrg  case 94:
2322f757b1e9Smrg#line 484 "xkbparse.y" /* yacc.c:1646  */
2323f757b1e9Smrg    { (yyval.key)= (KeyDef *)(yyvsp[0].var); }
2324f757b1e9Smrg#line 2325 "xkbparse.c" /* yacc.c:1646  */
2325690143ccSmrg    break;
2326690143ccSmrg
2327690143ccSmrg  case 95:
2328f757b1e9Smrg#line 488 "xkbparse.y" /* yacc.c:1646  */
2329f757b1e9Smrg    { (yyval.key)=(KeyDef *)AppendStmt(&(yyvsp[-2].key)->common,&(yyvsp[0].key)->common);}
2330f757b1e9Smrg#line 2331 "xkbparse.c" /* yacc.c:1646  */
2331690143ccSmrg    break;
2332690143ccSmrg
2333690143ccSmrg  case 96:
2334f757b1e9Smrg#line 490 "xkbparse.y" /* yacc.c:1646  */
2335f757b1e9Smrg    { (yyval.key)= (yyvsp[0].key); }
2336f757b1e9Smrg#line 2337 "xkbparse.c" /* yacc.c:1646  */
2337690143ccSmrg    break;
2338690143ccSmrg
2339690143ccSmrg  case 97:
2340f757b1e9Smrg#line 494 "xkbparse.y" /* yacc.c:1646  */
2341f757b1e9Smrg    { (yyval.key)= KeyDeclCreate((yyvsp[0].str),NULL); }
2342f757b1e9Smrg#line 2343 "xkbparse.c" /* yacc.c:1646  */
2343690143ccSmrg    break;
2344690143ccSmrg
2345690143ccSmrg  case 98:
2346f757b1e9Smrg#line 496 "xkbparse.y" /* yacc.c:1646  */
2347f757b1e9Smrg    { (yyval.key)= KeyDeclCreate(NULL,(yyvsp[-1].expr)); }
2348f757b1e9Smrg#line 2349 "xkbparse.c" /* yacc.c:1646  */
2349690143ccSmrg    break;
2350690143ccSmrg
2351690143ccSmrg  case 99:
2352f757b1e9Smrg#line 500 "xkbparse.y" /* yacc.c:1646  */
2353f757b1e9Smrg    { (yyval.overlay)= OverlayDeclCreate((yyvsp[-4].sval),(yyvsp[-2].olKey)); }
2354f757b1e9Smrg#line 2355 "xkbparse.c" /* yacc.c:1646  */
2355690143ccSmrg    break;
2356690143ccSmrg
2357690143ccSmrg  case 100:
2358f757b1e9Smrg#line 504 "xkbparse.y" /* yacc.c:1646  */
2359690143ccSmrg    {
2360690143ccSmrg			    (yyval.olKey)= (OverlayKeyDef *)
2361f757b1e9Smrg				AppendStmt(&(yyvsp[-2].olKey)->common,&(yyvsp[0].olKey)->common);
2362f46a6179Smrg			}
2363f757b1e9Smrg#line 2364 "xkbparse.c" /* yacc.c:1646  */
2364690143ccSmrg    break;
2365690143ccSmrg
2366690143ccSmrg  case 101:
2367f757b1e9Smrg#line 509 "xkbparse.y" /* yacc.c:1646  */
2368f757b1e9Smrg    { (yyval.olKey)= (yyvsp[0].olKey); }
2369f757b1e9Smrg#line 2370 "xkbparse.c" /* yacc.c:1646  */
2370690143ccSmrg    break;
2371690143ccSmrg
2372690143ccSmrg  case 102:
2373f757b1e9Smrg#line 513 "xkbparse.y" /* yacc.c:1646  */
2374f757b1e9Smrg    { (yyval.olKey)= OverlayKeyCreate((yyvsp[-2].str),(yyvsp[0].str)); }
2375f757b1e9Smrg#line 2376 "xkbparse.c" /* yacc.c:1646  */
2376690143ccSmrg    break;
2377690143ccSmrg
2378690143ccSmrg  case 103:
2379f757b1e9Smrg#line 517 "xkbparse.y" /* yacc.c:1646  */
2380f757b1e9Smrg    { (yyval.outline)=(OutlineDef *)AppendStmt(&(yyvsp[-2].outline)->common,&(yyvsp[0].outline)->common);}
2381f757b1e9Smrg#line 2382 "xkbparse.c" /* yacc.c:1646  */
2382690143ccSmrg    break;
2383690143ccSmrg
2384690143ccSmrg  case 104:
2385f757b1e9Smrg#line 519 "xkbparse.y" /* yacc.c:1646  */
2386f757b1e9Smrg    { (yyval.outline)= (yyvsp[0].outline); }
2387f757b1e9Smrg#line 2388 "xkbparse.c" /* yacc.c:1646  */
2388690143ccSmrg    break;
2389690143ccSmrg
2390690143ccSmrg  case 105:
2391f757b1e9Smrg#line 523 "xkbparse.y" /* yacc.c:1646  */
2392f757b1e9Smrg    { (yyval.outline)= OutlineCreate(None,(yyvsp[-1].expr)); }
2393f757b1e9Smrg#line 2394 "xkbparse.c" /* yacc.c:1646  */
2394690143ccSmrg    break;
2395690143ccSmrg
2396690143ccSmrg  case 106:
2397f757b1e9Smrg#line 525 "xkbparse.y" /* yacc.c:1646  */
2398f757b1e9Smrg    { (yyval.outline)= OutlineCreate((yyvsp[-4].sval),(yyvsp[-1].expr)); }
2399f757b1e9Smrg#line 2400 "xkbparse.c" /* yacc.c:1646  */
2400690143ccSmrg    break;
2401690143ccSmrg
2402690143ccSmrg  case 107:
2403f757b1e9Smrg#line 527 "xkbparse.y" /* yacc.c:1646  */
2404f757b1e9Smrg    { (yyval.outline)= OutlineCreate((yyvsp[-2].sval),(yyvsp[0].expr)); }
2405f757b1e9Smrg#line 2406 "xkbparse.c" /* yacc.c:1646  */
2406690143ccSmrg    break;
2407690143ccSmrg
2408690143ccSmrg  case 108:
2409f757b1e9Smrg#line 531 "xkbparse.y" /* yacc.c:1646  */
2410f757b1e9Smrg    { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[-2].expr)->common,&(yyvsp[0].expr)->common); }
2411f757b1e9Smrg#line 2412 "xkbparse.c" /* yacc.c:1646  */
2412690143ccSmrg    break;
2413690143ccSmrg
2414690143ccSmrg  case 109:
2415f757b1e9Smrg#line 533 "xkbparse.y" /* yacc.c:1646  */
2416f757b1e9Smrg    { (yyval.expr)= (yyvsp[0].expr); }
2417f757b1e9Smrg#line 2418 "xkbparse.c" /* yacc.c:1646  */
2418690143ccSmrg    break;
2419690143ccSmrg
2420690143ccSmrg  case 110:
2421f757b1e9Smrg#line 537 "xkbparse.y" /* yacc.c:1646  */
2422690143ccSmrg    {
2423f46a6179Smrg			    ExprDef *expr;
2424f46a6179Smrg			    expr= ExprCreate(ExprCoord,TypeUnknown);
2425f757b1e9Smrg			    expr->value.coord.x= (yyvsp[-3].ival);
2426f757b1e9Smrg			    expr->value.coord.y= (yyvsp[-1].ival);
2427690143ccSmrg			    (yyval.expr)= expr;
2428f46a6179Smrg			}
2429f757b1e9Smrg#line 2430 "xkbparse.c" /* yacc.c:1646  */
2430690143ccSmrg    break;
2431690143ccSmrg
2432690143ccSmrg  case 111:
2433f757b1e9Smrg#line 547 "xkbparse.y" /* yacc.c:1646  */
2434f757b1e9Smrg    { (yyval.doodad)= DoodadCreate((yyvsp[-5].uval),(yyvsp[-4].sval),(yyvsp[-2].var)); }
2435f757b1e9Smrg#line 2436 "xkbparse.c" /* yacc.c:1646  */
2436690143ccSmrg    break;
2437690143ccSmrg
2438690143ccSmrg  case 112:
2439f757b1e9Smrg#line 550 "xkbparse.y" /* yacc.c:1646  */
2440690143ccSmrg    { (yyval.uval)= XkbTextDoodad; }
2441f757b1e9Smrg#line 2442 "xkbparse.c" /* yacc.c:1646  */
2442690143ccSmrg    break;
2443690143ccSmrg
2444690143ccSmrg  case 113:
2445f757b1e9Smrg#line 551 "xkbparse.y" /* yacc.c:1646  */
2446690143ccSmrg    { (yyval.uval)= XkbOutlineDoodad; }
2447f757b1e9Smrg#line 2448 "xkbparse.c" /* yacc.c:1646  */
2448690143ccSmrg    break;
2449690143ccSmrg
2450690143ccSmrg  case 114:
2451f757b1e9Smrg#line 552 "xkbparse.y" /* yacc.c:1646  */
2452690143ccSmrg    { (yyval.uval)= XkbSolidDoodad; }
2453f757b1e9Smrg#line 2454 "xkbparse.c" /* yacc.c:1646  */
2454690143ccSmrg    break;
2455690143ccSmrg
2456690143ccSmrg  case 115:
2457f757b1e9Smrg#line 553 "xkbparse.y" /* yacc.c:1646  */
2458690143ccSmrg    { (yyval.uval)= XkbLogoDoodad; }
2459f757b1e9Smrg#line 2460 "xkbparse.c" /* yacc.c:1646  */
2460690143ccSmrg    break;
2461690143ccSmrg
2462690143ccSmrg  case 116:
2463f757b1e9Smrg#line 556 "xkbparse.y" /* yacc.c:1646  */
2464f757b1e9Smrg    { (yyval.sval)= (yyvsp[0].sval); }
2465f757b1e9Smrg#line 2466 "xkbparse.c" /* yacc.c:1646  */
2466690143ccSmrg    break;
2467690143ccSmrg
2468690143ccSmrg  case 117:
2469f757b1e9Smrg#line 557 "xkbparse.y" /* yacc.c:1646  */
2470f757b1e9Smrg    { (yyval.sval)= (yyvsp[0].sval); }
2471f757b1e9Smrg#line 2472 "xkbparse.c" /* yacc.c:1646  */
2472690143ccSmrg    break;
2473690143ccSmrg
2474690143ccSmrg  case 118:
2475f757b1e9Smrg#line 561 "xkbparse.y" /* yacc.c:1646  */
2476690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"action",False); }
2477f757b1e9Smrg#line 2478 "xkbparse.c" /* yacc.c:1646  */
2478690143ccSmrg    break;
2479690143ccSmrg
2480690143ccSmrg  case 119:
2481f757b1e9Smrg#line 563 "xkbparse.y" /* yacc.c:1646  */
2482690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"interpret",False); }
2483f757b1e9Smrg#line 2484 "xkbparse.c" /* yacc.c:1646  */
2484690143ccSmrg    break;
2485690143ccSmrg
2486690143ccSmrg  case 120:
2487f757b1e9Smrg#line 565 "xkbparse.y" /* yacc.c:1646  */
2488690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"type",False); }
2489f757b1e9Smrg#line 2490 "xkbparse.c" /* yacc.c:1646  */
2490690143ccSmrg    break;
2491690143ccSmrg
2492690143ccSmrg  case 121:
2493f757b1e9Smrg#line 567 "xkbparse.y" /* yacc.c:1646  */
2494690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"key",False); }
2495f757b1e9Smrg#line 2496 "xkbparse.c" /* yacc.c:1646  */
2496690143ccSmrg    break;
2497690143ccSmrg
2498690143ccSmrg  case 122:
2499f757b1e9Smrg#line 569 "xkbparse.y" /* yacc.c:1646  */
2500690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"group",False); }
2501f757b1e9Smrg#line 2502 "xkbparse.c" /* yacc.c:1646  */
2502690143ccSmrg    break;
2503690143ccSmrg
2504690143ccSmrg  case 123:
2505f757b1e9Smrg#line 571 "xkbparse.y" /* yacc.c:1646  */
2506690143ccSmrg    {(yyval.sval)=XkbInternAtom(NULL,"modifier_map",False);}
2507f757b1e9Smrg#line 2508 "xkbparse.c" /* yacc.c:1646  */
2508690143ccSmrg    break;
2509690143ccSmrg
2510690143ccSmrg  case 124:
2511f757b1e9Smrg#line 573 "xkbparse.y" /* yacc.c:1646  */
2512690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"indicator",False); }
2513f757b1e9Smrg#line 2514 "xkbparse.c" /* yacc.c:1646  */
2514690143ccSmrg    break;
2515690143ccSmrg
2516690143ccSmrg  case 125:
2517f757b1e9Smrg#line 575 "xkbparse.y" /* yacc.c:1646  */
2518690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"shape",False); }
2519f757b1e9Smrg#line 2520 "xkbparse.c" /* yacc.c:1646  */
2520690143ccSmrg    break;
2521690143ccSmrg
2522690143ccSmrg  case 126:
2523f757b1e9Smrg#line 577 "xkbparse.y" /* yacc.c:1646  */
2524690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"row",False); }
2525f757b1e9Smrg#line 2526 "xkbparse.c" /* yacc.c:1646  */
2526690143ccSmrg    break;
2527690143ccSmrg
2528690143ccSmrg  case 127:
2529f757b1e9Smrg#line 579 "xkbparse.y" /* yacc.c:1646  */
2530690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"section",False); }
2531f757b1e9Smrg#line 2532 "xkbparse.c" /* yacc.c:1646  */
2532690143ccSmrg    break;
2533690143ccSmrg
2534690143ccSmrg  case 128:
2535f757b1e9Smrg#line 581 "xkbparse.y" /* yacc.c:1646  */
2536690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"text",False); }
2537f757b1e9Smrg#line 2538 "xkbparse.c" /* yacc.c:1646  */
2538690143ccSmrg    break;
2539690143ccSmrg
2540690143ccSmrg  case 129:
2541f757b1e9Smrg#line 584 "xkbparse.y" /* yacc.c:1646  */
2542f757b1e9Smrg    { (yyval.uval)= (yyvsp[0].uval); }
2543f757b1e9Smrg#line 2544 "xkbparse.c" /* yacc.c:1646  */
2544690143ccSmrg    break;
2545690143ccSmrg
2546690143ccSmrg  case 130:
2547f757b1e9Smrg#line 585 "xkbparse.y" /* yacc.c:1646  */
2548690143ccSmrg    { (yyval.uval)= MergeDefault; }
2549f757b1e9Smrg#line 2550 "xkbparse.c" /* yacc.c:1646  */
2550690143ccSmrg    break;
2551690143ccSmrg
2552690143ccSmrg  case 131:
2553f757b1e9Smrg#line 588 "xkbparse.y" /* yacc.c:1646  */
2554690143ccSmrg    { (yyval.uval)= MergeDefault; }
2555f757b1e9Smrg#line 2556 "xkbparse.c" /* yacc.c:1646  */
2556690143ccSmrg    break;
2557690143ccSmrg
2558690143ccSmrg  case 132:
2559f757b1e9Smrg#line 589 "xkbparse.y" /* yacc.c:1646  */
2560690143ccSmrg    { (yyval.uval)= MergeAugment; }
2561f757b1e9Smrg#line 2562 "xkbparse.c" /* yacc.c:1646  */
2562690143ccSmrg    break;
2563690143ccSmrg
2564690143ccSmrg  case 133:
2565f757b1e9Smrg#line 590 "xkbparse.y" /* yacc.c:1646  */
2566690143ccSmrg    { (yyval.uval)= MergeOverride; }
2567f757b1e9Smrg#line 2568 "xkbparse.c" /* yacc.c:1646  */
2568690143ccSmrg    break;
2569690143ccSmrg
2570690143ccSmrg  case 134:
2571f757b1e9Smrg#line 591 "xkbparse.y" /* yacc.c:1646  */
2572690143ccSmrg    { (yyval.uval)= MergeReplace; }
2573f757b1e9Smrg#line 2574 "xkbparse.c" /* yacc.c:1646  */
2574690143ccSmrg    break;
2575690143ccSmrg
2576690143ccSmrg  case 135:
2577f757b1e9Smrg#line 592 "xkbparse.y" /* yacc.c:1646  */
2578690143ccSmrg    { (yyval.uval)= MergeAltForm; }
2579f757b1e9Smrg#line 2580 "xkbparse.c" /* yacc.c:1646  */
2580690143ccSmrg    break;
2581690143ccSmrg
2582690143ccSmrg  case 136:
2583f757b1e9Smrg#line 595 "xkbparse.y" /* yacc.c:1646  */
2584f757b1e9Smrg    { (yyval.expr)= (yyvsp[0].expr); }
2585f757b1e9Smrg#line 2586 "xkbparse.c" /* yacc.c:1646  */
2586690143ccSmrg    break;
2587690143ccSmrg
2588690143ccSmrg  case 137:
2589f757b1e9Smrg#line 596 "xkbparse.y" /* yacc.c:1646  */
2590690143ccSmrg    { (yyval.expr)= NULL; }
2591f757b1e9Smrg#line 2592 "xkbparse.c" /* yacc.c:1646  */
2592690143ccSmrg    break;
2593690143ccSmrg
2594690143ccSmrg  case 138:
2595f757b1e9Smrg#line 600 "xkbparse.y" /* yacc.c:1646  */
2596f757b1e9Smrg    { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[-2].expr)->common,&(yyvsp[0].expr)->common); }
2597f757b1e9Smrg#line 2598 "xkbparse.c" /* yacc.c:1646  */
2598690143ccSmrg    break;
2599690143ccSmrg
2600690143ccSmrg  case 139:
2601f757b1e9Smrg#line 602 "xkbparse.y" /* yacc.c:1646  */
2602f757b1e9Smrg    { (yyval.expr)= (yyvsp[0].expr); }
2603f757b1e9Smrg#line 2604 "xkbparse.c" /* yacc.c:1646  */
2604690143ccSmrg    break;
2605690143ccSmrg
2606690143ccSmrg  case 140:
2607f757b1e9Smrg#line 606 "xkbparse.y" /* yacc.c:1646  */
2608f757b1e9Smrg    { (yyval.expr)= ExprCreateBinary(OpDivide,(yyvsp[-2].expr),(yyvsp[0].expr)); }
2609f757b1e9Smrg#line 2610 "xkbparse.c" /* yacc.c:1646  */
2610690143ccSmrg    break;
2611690143ccSmrg
2612690143ccSmrg  case 141:
2613f757b1e9Smrg#line 608 "xkbparse.y" /* yacc.c:1646  */
2614f757b1e9Smrg    { (yyval.expr)= ExprCreateBinary(OpAdd,(yyvsp[-2].expr),(yyvsp[0].expr)); }
2615f757b1e9Smrg#line 2616 "xkbparse.c" /* yacc.c:1646  */
2616690143ccSmrg    break;
2617690143ccSmrg
2618690143ccSmrg  case 142:
2619f757b1e9Smrg#line 610 "xkbparse.y" /* yacc.c:1646  */
2620f757b1e9Smrg    { (yyval.expr)= ExprCreateBinary(OpSubtract,(yyvsp[-2].expr),(yyvsp[0].expr)); }
2621f757b1e9Smrg#line 2622 "xkbparse.c" /* yacc.c:1646  */
2622690143ccSmrg    break;
2623690143ccSmrg
2624690143ccSmrg  case 143:
2625f757b1e9Smrg#line 612 "xkbparse.y" /* yacc.c:1646  */
2626f757b1e9Smrg    { (yyval.expr)= ExprCreateBinary(OpMultiply,(yyvsp[-2].expr),(yyvsp[0].expr)); }
2627f757b1e9Smrg#line 2628 "xkbparse.c" /* yacc.c:1646  */
2628690143ccSmrg    break;
2629690143ccSmrg
2630690143ccSmrg  case 144:
2631f757b1e9Smrg#line 614 "xkbparse.y" /* yacc.c:1646  */
2632f757b1e9Smrg    { (yyval.expr)= ExprCreateBinary(OpAssign,(yyvsp[-2].expr),(yyvsp[0].expr)); }
2633f757b1e9Smrg#line 2634 "xkbparse.c" /* yacc.c:1646  */
2634690143ccSmrg    break;
2635690143ccSmrg
2636690143ccSmrg  case 145:
2637f757b1e9Smrg#line 616 "xkbparse.y" /* yacc.c:1646  */
2638f757b1e9Smrg    { (yyval.expr)= (yyvsp[0].expr); }
2639f757b1e9Smrg#line 2640 "xkbparse.c" /* yacc.c:1646  */
2640690143ccSmrg    break;
2641690143ccSmrg
2642690143ccSmrg  case 146:
2643f757b1e9Smrg#line 620 "xkbparse.y" /* yacc.c:1646  */
2644f757b1e9Smrg    { (yyval.expr)= ExprCreateUnary(OpNegate,(yyvsp[0].expr)->type,(yyvsp[0].expr)); }
2645f757b1e9Smrg#line 2646 "xkbparse.c" /* yacc.c:1646  */
2646690143ccSmrg    break;
2647690143ccSmrg
2648690143ccSmrg  case 147:
2649f757b1e9Smrg#line 622 "xkbparse.y" /* yacc.c:1646  */
2650f757b1e9Smrg    { (yyval.expr)= ExprCreateUnary(OpUnaryPlus,(yyvsp[0].expr)->type,(yyvsp[0].expr)); }
2651f757b1e9Smrg#line 2652 "xkbparse.c" /* yacc.c:1646  */
2652690143ccSmrg    break;
2653690143ccSmrg
2654690143ccSmrg  case 148:
2655f757b1e9Smrg#line 624 "xkbparse.y" /* yacc.c:1646  */
2656f757b1e9Smrg    { (yyval.expr)= ExprCreateUnary(OpNot,TypeBoolean,(yyvsp[0].expr)); }
2657f757b1e9Smrg#line 2658 "xkbparse.c" /* yacc.c:1646  */
2658690143ccSmrg    break;
2659690143ccSmrg
2660690143ccSmrg  case 149:
2661f757b1e9Smrg#line 626 "xkbparse.y" /* yacc.c:1646  */
2662f757b1e9Smrg    { (yyval.expr)= ExprCreateUnary(OpInvert,(yyvsp[0].expr)->type,(yyvsp[0].expr)); }
2663f757b1e9Smrg#line 2664 "xkbparse.c" /* yacc.c:1646  */
2664690143ccSmrg    break;
2665690143ccSmrg
2666690143ccSmrg  case 150:
2667f757b1e9Smrg#line 628 "xkbparse.y" /* yacc.c:1646  */
2668f757b1e9Smrg    { (yyval.expr)= (yyvsp[0].expr);  }
2669f757b1e9Smrg#line 2670 "xkbparse.c" /* yacc.c:1646  */
2670690143ccSmrg    break;
2671690143ccSmrg
2672690143ccSmrg  case 151:
2673f757b1e9Smrg#line 630 "xkbparse.y" /* yacc.c:1646  */
2674f757b1e9Smrg    { (yyval.expr)= ActionCreate((yyvsp[-3].sval),(yyvsp[-1].expr)); }
2675f757b1e9Smrg#line 2676 "xkbparse.c" /* yacc.c:1646  */
2676690143ccSmrg    break;
2677690143ccSmrg
2678690143ccSmrg  case 152:
2679f757b1e9Smrg#line 632 "xkbparse.y" /* yacc.c:1646  */
2680f757b1e9Smrg    { (yyval.expr)= (yyvsp[0].expr);  }
2681f757b1e9Smrg#line 2682 "xkbparse.c" /* yacc.c:1646  */
2682690143ccSmrg    break;
2683690143ccSmrg
2684690143ccSmrg  case 153:
2685f757b1e9Smrg#line 634 "xkbparse.y" /* yacc.c:1646  */
2686f757b1e9Smrg    { (yyval.expr)= (yyvsp[-1].expr);  }
2687f757b1e9Smrg#line 2688 "xkbparse.c" /* yacc.c:1646  */
2688690143ccSmrg    break;
2689690143ccSmrg
2690690143ccSmrg  case 154:
2691f757b1e9Smrg#line 638 "xkbparse.y" /* yacc.c:1646  */
2692f757b1e9Smrg    { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[-2].expr)->common,&(yyvsp[0].expr)->common); }
2693f757b1e9Smrg#line 2694 "xkbparse.c" /* yacc.c:1646  */
2694690143ccSmrg    break;
2695690143ccSmrg
2696690143ccSmrg  case 155:
2697f757b1e9Smrg#line 640 "xkbparse.y" /* yacc.c:1646  */
2698f757b1e9Smrg    { (yyval.expr)= (yyvsp[0].expr); }
2699f757b1e9Smrg#line 2700 "xkbparse.c" /* yacc.c:1646  */
2700690143ccSmrg    break;
2701690143ccSmrg
2702690143ccSmrg  case 156:
2703f757b1e9Smrg#line 644 "xkbparse.y" /* yacc.c:1646  */
2704f757b1e9Smrg    { (yyval.expr)= ActionCreate((yyvsp[-3].sval),(yyvsp[-1].expr)); }
2705f757b1e9Smrg#line 2706 "xkbparse.c" /* yacc.c:1646  */
2706690143ccSmrg    break;
2707690143ccSmrg
2708690143ccSmrg  case 157:
2709f757b1e9Smrg#line 648 "xkbparse.y" /* yacc.c:1646  */
2710690143ccSmrg    {
2711f46a6179Smrg			    ExprDef *expr;
2712f46a6179Smrg                            expr= ExprCreate(ExprIdent,TypeUnknown);
2713f757b1e9Smrg                            expr->value.str= (yyvsp[0].sval);
2714690143ccSmrg                            (yyval.expr)= expr;
2715f46a6179Smrg			}
2716f757b1e9Smrg#line 2717 "xkbparse.c" /* yacc.c:1646  */
2717690143ccSmrg    break;
2718690143ccSmrg
2719690143ccSmrg  case 158:
2720f757b1e9Smrg#line 655 "xkbparse.y" /* yacc.c:1646  */
2721690143ccSmrg    {
2722f46a6179Smrg                            ExprDef *expr;
2723f46a6179Smrg                            expr= ExprCreate(ExprFieldRef,TypeUnknown);
2724f757b1e9Smrg                            expr->value.field.element= (yyvsp[-2].sval);
2725f757b1e9Smrg                            expr->value.field.field= (yyvsp[0].sval);
2726690143ccSmrg                            (yyval.expr)= expr;
2727f46a6179Smrg			}
2728f757b1e9Smrg#line 2729 "xkbparse.c" /* yacc.c:1646  */
2729690143ccSmrg    break;
2730690143ccSmrg
2731690143ccSmrg  case 159:
2732f757b1e9Smrg#line 663 "xkbparse.y" /* yacc.c:1646  */
2733690143ccSmrg    {
2734f46a6179Smrg			    ExprDef *expr;
2735f46a6179Smrg			    expr= ExprCreate(ExprArrayRef,TypeUnknown);
2736f46a6179Smrg			    expr->value.array.element= None;
2737f757b1e9Smrg			    expr->value.array.field= (yyvsp[-3].sval);
2738f757b1e9Smrg			    expr->value.array.entry= (yyvsp[-1].expr);
2739690143ccSmrg			    (yyval.expr)= expr;
2740f46a6179Smrg			}
2741f757b1e9Smrg#line 2742 "xkbparse.c" /* yacc.c:1646  */
2742690143ccSmrg    break;
2743690143ccSmrg
2744690143ccSmrg  case 160:
2745f757b1e9Smrg#line 672 "xkbparse.y" /* yacc.c:1646  */
2746690143ccSmrg    {
2747f46a6179Smrg			    ExprDef *expr;
2748f46a6179Smrg			    expr= ExprCreate(ExprArrayRef,TypeUnknown);
2749f757b1e9Smrg			    expr->value.array.element= (yyvsp[-5].sval);
2750f757b1e9Smrg			    expr->value.array.field= (yyvsp[-3].sval);
2751f757b1e9Smrg			    expr->value.array.entry= (yyvsp[-1].expr);
2752690143ccSmrg			    (yyval.expr)= expr;
2753f46a6179Smrg			}
2754f757b1e9Smrg#line 2755 "xkbparse.c" /* yacc.c:1646  */
2755690143ccSmrg    break;
2756690143ccSmrg
2757690143ccSmrg  case 161:
2758f757b1e9Smrg#line 683 "xkbparse.y" /* yacc.c:1646  */
2759690143ccSmrg    {
2760f46a6179Smrg			    ExprDef *expr;
2761f46a6179Smrg                            expr= ExprCreate(ExprValue,TypeString);
2762f757b1e9Smrg                            expr->value.str= (yyvsp[0].sval);
2763690143ccSmrg                            (yyval.expr)= expr;
2764f46a6179Smrg			}
2765f757b1e9Smrg#line 2766 "xkbparse.c" /* yacc.c:1646  */
2766690143ccSmrg    break;
2767690143ccSmrg
2768690143ccSmrg  case 162:
2769f757b1e9Smrg#line 690 "xkbparse.y" /* yacc.c:1646  */
2770690143ccSmrg    {
2771f46a6179Smrg			    ExprDef *expr;
2772f46a6179Smrg                            expr= ExprCreate(ExprValue,TypeInt);
2773f757b1e9Smrg                            expr->value.ival= (yyvsp[0].ival);
2774690143ccSmrg                            (yyval.expr)= expr;
2775f46a6179Smrg			}
2776f757b1e9Smrg#line 2777 "xkbparse.c" /* yacc.c:1646  */
2777690143ccSmrg    break;
2778690143ccSmrg
2779690143ccSmrg  case 163:
2780f757b1e9Smrg#line 697 "xkbparse.y" /* yacc.c:1646  */
2781690143ccSmrg    {
2782f46a6179Smrg			    ExprDef *expr;
2783f46a6179Smrg			    expr= ExprCreate(ExprValue,TypeFloat);
2784f757b1e9Smrg			    expr->value.ival= (yyvsp[0].ival);
2785690143ccSmrg			    (yyval.expr)= expr;
2786f46a6179Smrg			}
2787f757b1e9Smrg#line 2788 "xkbparse.c" /* yacc.c:1646  */
2788690143ccSmrg    break;
2789690143ccSmrg
2790690143ccSmrg  case 164:
2791f757b1e9Smrg#line 704 "xkbparse.y" /* yacc.c:1646  */
2792690143ccSmrg    {
2793f46a6179Smrg			    ExprDef *expr;
2794f46a6179Smrg			    expr= ExprCreate(ExprValue,TypeKeyName);
2795f46a6179Smrg			    memset(expr->value.keyName,0,5);
2796f757b1e9Smrg			    strncpy(expr->value.keyName,(yyvsp[0].str),4);
2797f757b1e9Smrg			    free((yyvsp[0].str));
2798690143ccSmrg			    (yyval.expr)= expr;
2799f46a6179Smrg			}
2800f757b1e9Smrg#line 2801 "xkbparse.c" /* yacc.c:1646  */
2801690143ccSmrg    break;
2802690143ccSmrg
2803690143ccSmrg  case 165:
2804f757b1e9Smrg#line 714 "xkbparse.y" /* yacc.c:1646  */
2805f757b1e9Smrg    { (yyval.expr)= (yyvsp[0].expr); }
2806f757b1e9Smrg#line 2807 "xkbparse.c" /* yacc.c:1646  */
2807690143ccSmrg    break;
2808690143ccSmrg
2809690143ccSmrg  case 166:
2810f757b1e9Smrg#line 715 "xkbparse.y" /* yacc.c:1646  */
2811690143ccSmrg    { (yyval.expr)= NULL; }
2812f757b1e9Smrg#line 2813 "xkbparse.c" /* yacc.c:1646  */
2813690143ccSmrg    break;
2814690143ccSmrg
2815690143ccSmrg  case 167:
2816f757b1e9Smrg#line 719 "xkbparse.y" /* yacc.c:1646  */
2817f757b1e9Smrg    { (yyval.expr)= AppendKeysymList((yyvsp[-2].expr),(yyvsp[0].str)); }
2818f757b1e9Smrg#line 2819 "xkbparse.c" /* yacc.c:1646  */
2819690143ccSmrg    break;
2820690143ccSmrg
2821690143ccSmrg  case 168:
2822f757b1e9Smrg#line 721 "xkbparse.y" /* yacc.c:1646  */
2823f757b1e9Smrg    { (yyval.expr)= AppendKeysymList((yyvsp[-2].expr),strdup("NoSymbol")); }
2824f757b1e9Smrg#line 2825 "xkbparse.c" /* yacc.c:1646  */
2825690143ccSmrg    break;
2826690143ccSmrg
2827690143ccSmrg  case 169:
2828f757b1e9Smrg#line 723 "xkbparse.y" /* yacc.c:1646  */
2829f757b1e9Smrg    { (yyval.expr)= CreateKeysymList((yyvsp[0].str)); }
2830f757b1e9Smrg#line 2831 "xkbparse.c" /* yacc.c:1646  */
2831690143ccSmrg    break;
2832690143ccSmrg
2833690143ccSmrg  case 170:
2834f757b1e9Smrg#line 725 "xkbparse.y" /* yacc.c:1646  */
2835c82dfdfbSmrg    { (yyval.expr)= CreateKeysymList(strdup("NoSymbol")); }
2836f757b1e9Smrg#line 2837 "xkbparse.c" /* yacc.c:1646  */
2837690143ccSmrg    break;
2838690143ccSmrg
2839690143ccSmrg  case 171:
2840f757b1e9Smrg#line 728 "xkbparse.y" /* yacc.c:1646  */
2841c82dfdfbSmrg    { (yyval.str)= strdup(scanBuf); }
2842f757b1e9Smrg#line 2843 "xkbparse.c" /* yacc.c:1646  */
2843c82dfdfbSmrg    break;
2844c82dfdfbSmrg
2845c82dfdfbSmrg  case 172:
2846f757b1e9Smrg#line 729 "xkbparse.y" /* yacc.c:1646  */
2847c82dfdfbSmrg    { (yyval.str)= strdup("section"); }
2848f757b1e9Smrg#line 2849 "xkbparse.c" /* yacc.c:1646  */
2849c82dfdfbSmrg    break;
2850c82dfdfbSmrg
2851c82dfdfbSmrg  case 173:
2852f757b1e9Smrg#line 731 "xkbparse.y" /* yacc.c:1646  */
2853690143ccSmrg    {
2854f757b1e9Smrg			    if ((yyvsp[0].ival)<10)	{ (yyval.str)= malloc(2); (yyval.str)[0]= '0' + (yyvsp[0].ival); (yyval.str)[1]= '\0'; }
2855f757b1e9Smrg			    else	{ (yyval.str)= malloc(19); snprintf((yyval.str), 19, "0x%x", (yyvsp[0].ival)); }
2856f46a6179Smrg			}
2857f757b1e9Smrg#line 2858 "xkbparse.c" /* yacc.c:1646  */
2858690143ccSmrg    break;
2859690143ccSmrg
2860c82dfdfbSmrg  case 174:
2861f757b1e9Smrg#line 738 "xkbparse.y" /* yacc.c:1646  */
2862f757b1e9Smrg    { (yyval.expr)= (yyvsp[-1].expr); }
2863f757b1e9Smrg#line 2864 "xkbparse.c" /* yacc.c:1646  */
2864c82dfdfbSmrg    break;
2865c82dfdfbSmrg
2866c82dfdfbSmrg  case 175:
2867f757b1e9Smrg#line 741 "xkbparse.y" /* yacc.c:1646  */
2868f757b1e9Smrg    { (yyval.ival)= -(yyvsp[0].ival); }
2869f757b1e9Smrg#line 2870 "xkbparse.c" /* yacc.c:1646  */
2870690143ccSmrg    break;
2871690143ccSmrg
2872c82dfdfbSmrg  case 176:
2873f757b1e9Smrg#line 742 "xkbparse.y" /* yacc.c:1646  */
2874f757b1e9Smrg    { (yyval.ival)= (yyvsp[0].ival); }
2875f757b1e9Smrg#line 2876 "xkbparse.c" /* yacc.c:1646  */
2876690143ccSmrg    break;
2877690143ccSmrg
2878c82dfdfbSmrg  case 177:
2879f757b1e9Smrg#line 745 "xkbparse.y" /* yacc.c:1646  */
2880690143ccSmrg    { (yyval.ival)= scanInt; }
2881f757b1e9Smrg#line 2882 "xkbparse.c" /* yacc.c:1646  */
2882690143ccSmrg    break;
2883690143ccSmrg
2884c82dfdfbSmrg  case 178:
2885f757b1e9Smrg#line 746 "xkbparse.y" /* yacc.c:1646  */
2886690143ccSmrg    { (yyval.ival)= scanInt*XkbGeomPtsPerMM; }
2887f757b1e9Smrg#line 2888 "xkbparse.c" /* yacc.c:1646  */
2888690143ccSmrg    break;
2889690143ccSmrg
2890c82dfdfbSmrg  case 179:
2891f757b1e9Smrg#line 749 "xkbparse.y" /* yacc.c:1646  */
2892690143ccSmrg    { (yyval.ival)= scanInt; }
2893f757b1e9Smrg#line 2894 "xkbparse.c" /* yacc.c:1646  */
2894690143ccSmrg    break;
2895690143ccSmrg
2896c82dfdfbSmrg  case 180:
2897f757b1e9Smrg#line 752 "xkbparse.y" /* yacc.c:1646  */
2898690143ccSmrg    { (yyval.ival)= scanInt; }
2899f757b1e9Smrg#line 2900 "xkbparse.c" /* yacc.c:1646  */
2900690143ccSmrg    break;
2901690143ccSmrg
2902c82dfdfbSmrg  case 181:
2903f757b1e9Smrg#line 755 "xkbparse.y" /* yacc.c:1646  */
2904690143ccSmrg    { (yyval.str)= strdup(scanBuf); }
2905f757b1e9Smrg#line 2906 "xkbparse.c" /* yacc.c:1646  */
2906690143ccSmrg    break;
2907690143ccSmrg
2908c82dfdfbSmrg  case 182:
2909f757b1e9Smrg#line 758 "xkbparse.y" /* yacc.c:1646  */
2910690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,scanBuf,False); }
2911f757b1e9Smrg#line 2912 "xkbparse.c" /* yacc.c:1646  */
2912690143ccSmrg    break;
2913690143ccSmrg
2914c82dfdfbSmrg  case 183:
2915f757b1e9Smrg#line 759 "xkbparse.y" /* yacc.c:1646  */
2916690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"default",False); }
2917f757b1e9Smrg#line 2918 "xkbparse.c" /* yacc.c:1646  */
2918690143ccSmrg    break;
2919690143ccSmrg
2920c82dfdfbSmrg  case 184:
2921f757b1e9Smrg#line 762 "xkbparse.y" /* yacc.c:1646  */
2922690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,scanBuf,False); }
2923f757b1e9Smrg#line 2924 "xkbparse.c" /* yacc.c:1646  */
2924690143ccSmrg    break;
2925690143ccSmrg
2926c82dfdfbSmrg  case 185:
2927f757b1e9Smrg#line 765 "xkbparse.y" /* yacc.c:1646  */
2928f757b1e9Smrg    { (yyval.str)= (yyvsp[0].str); }
2929f757b1e9Smrg#line 2930 "xkbparse.c" /* yacc.c:1646  */
2930690143ccSmrg    break;
2931690143ccSmrg
2932c82dfdfbSmrg  case 186:
2933f757b1e9Smrg#line 766 "xkbparse.y" /* yacc.c:1646  */
2934690143ccSmrg    { (yyval.str)= NULL; }
2935f757b1e9Smrg#line 2936 "xkbparse.c" /* yacc.c:1646  */
2936690143ccSmrg    break;
2937690143ccSmrg
2938c82dfdfbSmrg  case 187:
2939f757b1e9Smrg#line 769 "xkbparse.y" /* yacc.c:1646  */
2940690143ccSmrg    { (yyval.str)= strdup(scanBuf); }
2941f757b1e9Smrg#line 2942 "xkbparse.c" /* yacc.c:1646  */
2942690143ccSmrg    break;
2943690143ccSmrg
2944690143ccSmrg
2945f757b1e9Smrg#line 2946 "xkbparse.c" /* yacc.c:1646  */
2946690143ccSmrg      default: break;
2947f46a6179Smrg    }
2948c82dfdfbSmrg  /* User semantic actions sometimes alter yychar, and that requires
2949c82dfdfbSmrg     that yytoken be updated with the new translation.  We take the
2950c82dfdfbSmrg     approach of translating immediately before every use of yytoken.
2951c82dfdfbSmrg     One alternative is translating here after every semantic action,
2952c82dfdfbSmrg     but that translation would be missed if the semantic action invokes
2953c82dfdfbSmrg     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
2954c82dfdfbSmrg     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
2955c82dfdfbSmrg     incorrect destructor might then be invoked immediately.  In the
2956c82dfdfbSmrg     case of YYERROR or YYBACKUP, subsequent parser actions might lead
2957c82dfdfbSmrg     to an incorrect destructor call or verbose syntax error message
2958c82dfdfbSmrg     before the lookahead is translated.  */
2959690143ccSmrg  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
2960690143ccSmrg
2961690143ccSmrg  YYPOPSTACK (yylen);
2962690143ccSmrg  yylen = 0;
2963690143ccSmrg  YY_STACK_PRINT (yyss, yyssp);
2964690143ccSmrg
2965690143ccSmrg  *++yyvsp = yyval;
2966690143ccSmrg
2967f757b1e9Smrg  /* Now 'shift' the result of the reduction.  Determine what state
2968690143ccSmrg     that goes to, based on the state we popped back to and the rule
2969690143ccSmrg     number reduced by.  */
2970690143ccSmrg
2971690143ccSmrg  yyn = yyr1[yyn];
2972690143ccSmrg
2973690143ccSmrg  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2974690143ccSmrg  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2975690143ccSmrg    yystate = yytable[yystate];
2976690143ccSmrg  else
2977690143ccSmrg    yystate = yydefgoto[yyn - YYNTOKENS];
2978690143ccSmrg
2979690143ccSmrg  goto yynewstate;
2980690143ccSmrg
2981690143ccSmrg
2982f757b1e9Smrg/*--------------------------------------.
2983f757b1e9Smrg| yyerrlab -- here on detecting error.  |
2984f757b1e9Smrg`--------------------------------------*/
2985690143ccSmrgyyerrlab:
2986c82dfdfbSmrg  /* Make sure we have latest lookahead translation.  See comments at
2987c82dfdfbSmrg     user semantic actions for why this is necessary.  */
2988c82dfdfbSmrg  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
2989c82dfdfbSmrg
2990690143ccSmrg  /* If not already recovering from an error, report this error.  */
2991690143ccSmrg  if (!yyerrstatus)
2992f46a6179Smrg    {
2993690143ccSmrg      ++yynerrs;
2994690143ccSmrg#if ! YYERROR_VERBOSE
2995690143ccSmrg      yyerror (YY_("syntax error"));
2996690143ccSmrg#else
2997c82dfdfbSmrg# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
2998c82dfdfbSmrg                                        yyssp, yytoken)
2999690143ccSmrg      {
3000c82dfdfbSmrg        char const *yymsgp = YY_("syntax error");
3001c82dfdfbSmrg        int yysyntax_error_status;
3002c82dfdfbSmrg        yysyntax_error_status = YYSYNTAX_ERROR;
3003c82dfdfbSmrg        if (yysyntax_error_status == 0)
3004c82dfdfbSmrg          yymsgp = yymsg;
3005c82dfdfbSmrg        else if (yysyntax_error_status == 1)
3006c82dfdfbSmrg          {
3007c82dfdfbSmrg            if (yymsg != yymsgbuf)
3008c82dfdfbSmrg              YYSTACK_FREE (yymsg);
3009c82dfdfbSmrg            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
3010c82dfdfbSmrg            if (!yymsg)
3011c82dfdfbSmrg              {
3012c82dfdfbSmrg                yymsg = yymsgbuf;
3013c82dfdfbSmrg                yymsg_alloc = sizeof yymsgbuf;
3014c82dfdfbSmrg                yysyntax_error_status = 2;
3015c82dfdfbSmrg              }
3016c82dfdfbSmrg            else
3017c82dfdfbSmrg              {
3018c82dfdfbSmrg                yysyntax_error_status = YYSYNTAX_ERROR;
3019c82dfdfbSmrg                yymsgp = yymsg;
3020c82dfdfbSmrg              }
3021c82dfdfbSmrg          }
3022c82dfdfbSmrg        yyerror (yymsgp);
3023c82dfdfbSmrg        if (yysyntax_error_status == 2)
3024c82dfdfbSmrg          goto yyexhaustedlab;
3025690143ccSmrg      }
3026c82dfdfbSmrg# undef YYSYNTAX_ERROR
302707d2e718Smrg#endif
3028f46a6179Smrg    }
3029690143ccSmrg
3030690143ccSmrg
3031690143ccSmrg
3032690143ccSmrg  if (yyerrstatus == 3)
3033690143ccSmrg    {
3034c82dfdfbSmrg      /* If just tried and failed to reuse lookahead token after an
3035f757b1e9Smrg         error, discard it.  */
3036690143ccSmrg
3037690143ccSmrg      if (yychar <= YYEOF)
3038f757b1e9Smrg        {
3039f757b1e9Smrg          /* Return failure if at end of input.  */
3040f757b1e9Smrg          if (yychar == YYEOF)
3041f757b1e9Smrg            YYABORT;
3042f757b1e9Smrg        }
3043690143ccSmrg      else
3044f757b1e9Smrg        {
3045f757b1e9Smrg          yydestruct ("Error: discarding",
3046f757b1e9Smrg                      yytoken, &yylval);
3047f757b1e9Smrg          yychar = YYEMPTY;
3048f757b1e9Smrg        }
3049690143ccSmrg    }
3050690143ccSmrg
3051c82dfdfbSmrg  /* Else will try to reuse lookahead token after shifting the error
3052690143ccSmrg     token.  */
3053690143ccSmrg  goto yyerrlab1;
3054690143ccSmrg
3055690143ccSmrg
3056690143ccSmrg/*---------------------------------------------------.
3057690143ccSmrg| yyerrorlab -- error raised explicitly by YYERROR.  |
3058690143ccSmrg`---------------------------------------------------*/
3059690143ccSmrgyyerrorlab:
3060690143ccSmrg
3061690143ccSmrg  /* Pacify compilers like GCC when the user code never invokes
3062690143ccSmrg     YYERROR and the label yyerrorlab therefore never appears in user
3063690143ccSmrg     code.  */
3064690143ccSmrg  if (/*CONSTCOND*/ 0)
3065690143ccSmrg     goto yyerrorlab;
3066690143ccSmrg
3067f757b1e9Smrg  /* Do not reclaim the symbols of the rule whose action triggered
3068690143ccSmrg     this YYERROR.  */
3069690143ccSmrg  YYPOPSTACK (yylen);
3070690143ccSmrg  yylen = 0;
3071690143ccSmrg  YY_STACK_PRINT (yyss, yyssp);
3072690143ccSmrg  yystate = *yyssp;
3073690143ccSmrg  goto yyerrlab1;
3074690143ccSmrg
3075690143ccSmrg
3076690143ccSmrg/*-------------------------------------------------------------.
3077690143ccSmrg| yyerrlab1 -- common code for both syntax error and YYERROR.  |
3078690143ccSmrg`-------------------------------------------------------------*/
3079690143ccSmrgyyerrlab1:
3080f757b1e9Smrg  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3081690143ccSmrg
3082690143ccSmrg  for (;;)
3083690143ccSmrg    {
3084690143ccSmrg      yyn = yypact[yystate];
3085c82dfdfbSmrg      if (!yypact_value_is_default (yyn))
3086f757b1e9Smrg        {
3087f757b1e9Smrg          yyn += YYTERROR;
3088f757b1e9Smrg          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3089f757b1e9Smrg            {
3090f757b1e9Smrg              yyn = yytable[yyn];
3091f757b1e9Smrg              if (0 < yyn)
3092f757b1e9Smrg                break;
3093f757b1e9Smrg            }
3094f757b1e9Smrg        }
3095690143ccSmrg
3096690143ccSmrg      /* Pop the current state because it cannot handle the error token.  */
3097690143ccSmrg      if (yyssp == yyss)
3098f757b1e9Smrg        YYABORT;
3099690143ccSmrg
3100690143ccSmrg
3101690143ccSmrg      yydestruct ("Error: popping",
3102f757b1e9Smrg                  yystos[yystate], yyvsp);
3103690143ccSmrg      YYPOPSTACK (1);
3104690143ccSmrg      yystate = *yyssp;
3105690143ccSmrg      YY_STACK_PRINT (yyss, yyssp);
3106690143ccSmrg    }
3107690143ccSmrg
3108c82dfdfbSmrg  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3109690143ccSmrg  *++yyvsp = yylval;
3110c82dfdfbSmrg  YY_IGNORE_MAYBE_UNINITIALIZED_END
3111690143ccSmrg
3112690143ccSmrg
3113690143ccSmrg  /* Shift the error token.  */
3114690143ccSmrg  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3115690143ccSmrg
3116690143ccSmrg  yystate = yyn;
3117690143ccSmrg  goto yynewstate;
3118690143ccSmrg
3119690143ccSmrg
3120690143ccSmrg/*-------------------------------------.
3121690143ccSmrg| yyacceptlab -- YYACCEPT comes here.  |
3122690143ccSmrg`-------------------------------------*/
3123690143ccSmrgyyacceptlab:
3124690143ccSmrg  yyresult = 0;
3125690143ccSmrg  goto yyreturn;
3126690143ccSmrg
3127690143ccSmrg/*-----------------------------------.
3128690143ccSmrg| yyabortlab -- YYABORT comes here.  |
3129690143ccSmrg`-----------------------------------*/
3130690143ccSmrgyyabortlab:
3131690143ccSmrg  yyresult = 1;
3132690143ccSmrg  goto yyreturn;
3133690143ccSmrg
3134c82dfdfbSmrg#if !defined yyoverflow || YYERROR_VERBOSE
3135690143ccSmrg/*-------------------------------------------------.
3136690143ccSmrg| yyexhaustedlab -- memory exhaustion comes here.  |
3137690143ccSmrg`-------------------------------------------------*/
3138690143ccSmrgyyexhaustedlab:
3139690143ccSmrg  yyerror (YY_("memory exhausted"));
3140690143ccSmrg  yyresult = 2;
3141690143ccSmrg  /* Fall through.  */
3142f46a6179Smrg#endif
3143690143ccSmrg
3144690143ccSmrgyyreturn:
3145c82dfdfbSmrg  if (yychar != YYEMPTY)
3146c82dfdfbSmrg    {
3147c82dfdfbSmrg      /* Make sure we have latest lookahead translation.  See comments at
3148c82dfdfbSmrg         user semantic actions for why this is necessary.  */
3149c82dfdfbSmrg      yytoken = YYTRANSLATE (yychar);
3150c82dfdfbSmrg      yydestruct ("Cleanup: discarding lookahead",
3151c82dfdfbSmrg                  yytoken, &yylval);
3152c82dfdfbSmrg    }
3153f757b1e9Smrg  /* Do not reclaim the symbols of the rule whose action triggered
3154690143ccSmrg     this YYABORT or YYACCEPT.  */
3155690143ccSmrg  YYPOPSTACK (yylen);
3156690143ccSmrg  YY_STACK_PRINT (yyss, yyssp);
3157690143ccSmrg  while (yyssp != yyss)
3158f46a6179Smrg    {
3159690143ccSmrg      yydestruct ("Cleanup: popping",
3160f757b1e9Smrg                  yystos[*yyssp], yyvsp);
3161690143ccSmrg      YYPOPSTACK (1);
3162f46a6179Smrg    }
3163690143ccSmrg#ifndef yyoverflow
3164690143ccSmrg  if (yyss != yyssa)
3165690143ccSmrg    YYSTACK_FREE (yyss);
3166690143ccSmrg#endif
3167690143ccSmrg#if YYERROR_VERBOSE
3168690143ccSmrg  if (yymsg != yymsgbuf)
3169690143ccSmrg    YYSTACK_FREE (yymsg);
3170690143ccSmrg#endif
3171f757b1e9Smrg  return yyresult;
3172690143ccSmrg}
3173f757b1e9Smrg#line 771 "xkbparse.y" /* yacc.c:1906  */
3174690143ccSmrg
3175690143ccSmrgvoid
3176690143ccSmrgyyerror(const char *s)
3177690143ccSmrg{
3178690143ccSmrg    if (warningLevel>0) {
3179690143ccSmrg	(void)fprintf(stderr,"%s: line %d of %s\n",s,lineNum,
3180690143ccSmrg					(scanFile?scanFile:"(unknown)"));
3181690143ccSmrg	if ((warningLevel>3))
3182690143ccSmrg	    (void)fprintf(stderr,"last scanned symbol is: %s\n",scanBuf);
3183690143ccSmrg    }
3184690143ccSmrg    return;
3185690143ccSmrg}
3186690143ccSmrg
3187690143ccSmrg
3188690143ccSmrgint
3189690143ccSmrgyywrap(void)
3190690143ccSmrg{
3191690143ccSmrg   return 1;
3192f46a6179Smrg}
3193690143ccSmrg
3194