xkbparse.c revision 1d8c7986
11d8c7986Smrg/* A Bison parser, made by GNU Bison 2.3.  */
2f46a6179Smrg
3690143ccSmrg/* Skeleton implementation for Bison's Yacc-like parsers in C
41d8c7986Smrg
51d8c7986Smrg   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6690143ccSmrg   Free Software Foundation, Inc.
71d8c7986Smrg
81d8c7986Smrg   This program is free software; you can redistribute it and/or modify
9690143ccSmrg   it under the terms of the GNU General Public License as published by
101d8c7986Smrg   the Free Software Foundation; either version 2, or (at your option)
111d8c7986Smrg   any later version.
121d8c7986Smrg
13690143ccSmrg   This program is distributed in the hope that it will be useful,
14690143ccSmrg   but WITHOUT ANY WARRANTY; without even the implied warranty of
15690143ccSmrg   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16690143ccSmrg   GNU General Public License for more details.
171d8c7986Smrg
18690143ccSmrg   You should have received a copy of the GNU General Public License
191d8c7986Smrg   along with this program; if not, write to the Free Software
201d8c7986Smrg   Foundation, Inc., 51 Franklin Street, Fifth Floor,
211d8c7986Smrg   Boston, MA 02110-1301, USA.  */
22f46a6179Smrg
23690143ccSmrg/* As a special exception, you may create a larger work that contains
24690143ccSmrg   part or all of the Bison parser skeleton and distribute that work
25690143ccSmrg   under terms of your choice, so long as that work isn't itself a
26690143ccSmrg   parser generator using the skeleton or a modified version thereof
27690143ccSmrg   as a parser skeleton.  Alternatively, if you modify or redistribute
28690143ccSmrg   the parser skeleton itself, you may (at your option) remove this
29690143ccSmrg   special exception, which will cause the skeleton and the resulting
30690143ccSmrg   Bison output files to be licensed under the GNU General Public
31690143ccSmrg   License without this special exception.
321d8c7986Smrg
33690143ccSmrg   This special exception was added by the Free Software Foundation in
34690143ccSmrg   version 2.2 of Bison.  */
35f46a6179Smrg
36690143ccSmrg/* C LALR(1) parser skeleton written by Richard Stallman, by
37690143ccSmrg   simplifying the original so-called "semantic" parser.  */
38690143ccSmrg
39690143ccSmrg/* All symbols defined below should begin with yy or YY, to avoid
40690143ccSmrg   infringing on user name space.  This should be done even for local
41690143ccSmrg   variables, as they might otherwise be expanded by user macros.
42690143ccSmrg   There are some unavoidable exceptions within include files to
43690143ccSmrg   define necessary library symbols; they are noted "INFRINGES ON
44690143ccSmrg   USER NAME SPACE" below.  */
45690143ccSmrg
46690143ccSmrg/* Identify Bison output.  */
47690143ccSmrg#define YYBISON 1
48690143ccSmrg
49690143ccSmrg/* Bison version.  */
501d8c7986Smrg#define YYBISON_VERSION "2.3"
51690143ccSmrg
52690143ccSmrg/* Skeleton name.  */
53690143ccSmrg#define YYSKELETON_NAME "yacc.c"
54690143ccSmrg
55690143ccSmrg/* Pure parsers.  */
56690143ccSmrg#define YYPURE 0
57690143ccSmrg
58690143ccSmrg/* Using locations.  */
59690143ccSmrg#define YYLSP_NEEDED 0
60f46a6179Smrg
61f46a6179Smrg
62f46a6179Smrg
63690143ccSmrg/* Tokens.  */
64690143ccSmrg#ifndef YYTOKENTYPE
65690143ccSmrg# define YYTOKENTYPE
66690143ccSmrg   /* Put the tokens into the symbol table, so that GDB and other debuggers
67690143ccSmrg      know about them.  */
68690143ccSmrg   enum yytokentype {
69690143ccSmrg     END_OF_FILE = 0,
70690143ccSmrg     ERROR_TOK = 255,
71690143ccSmrg     XKB_KEYMAP = 1,
72690143ccSmrg     XKB_KEYCODES = 2,
73690143ccSmrg     XKB_TYPES = 3,
74690143ccSmrg     XKB_SYMBOLS = 4,
75690143ccSmrg     XKB_COMPATMAP = 5,
76690143ccSmrg     XKB_GEOMETRY = 6,
77690143ccSmrg     XKB_SEMANTICS = 7,
78690143ccSmrg     XKB_LAYOUT = 8,
79690143ccSmrg     INCLUDE = 10,
80690143ccSmrg     OVERRIDE = 11,
81690143ccSmrg     AUGMENT = 12,
82690143ccSmrg     REPLACE = 13,
83690143ccSmrg     ALTERNATE = 14,
84690143ccSmrg     VIRTUAL_MODS = 20,
85690143ccSmrg     TYPE = 21,
86690143ccSmrg     INTERPRET = 22,
87690143ccSmrg     ACTION_TOK = 23,
88690143ccSmrg     KEY = 24,
89690143ccSmrg     ALIAS = 25,
90690143ccSmrg     GROUP = 26,
91690143ccSmrg     MODIFIER_MAP = 27,
92690143ccSmrg     INDICATOR = 28,
93690143ccSmrg     SHAPE = 29,
94690143ccSmrg     KEYS = 30,
95690143ccSmrg     ROW = 31,
96690143ccSmrg     SECTION = 32,
97690143ccSmrg     OVERLAY = 33,
98690143ccSmrg     TEXT = 34,
99690143ccSmrg     OUTLINE = 35,
100690143ccSmrg     SOLID = 36,
101690143ccSmrg     LOGO = 37,
102690143ccSmrg     VIRTUAL = 38,
103690143ccSmrg     EQUALS = 40,
104690143ccSmrg     PLUS = 41,
105690143ccSmrg     MINUS = 42,
106690143ccSmrg     DIVIDE = 43,
107690143ccSmrg     TIMES = 44,
108690143ccSmrg     OBRACE = 45,
109690143ccSmrg     CBRACE = 46,
110690143ccSmrg     OPAREN = 47,
111690143ccSmrg     CPAREN = 48,
112690143ccSmrg     OBRACKET = 49,
113690143ccSmrg     CBRACKET = 50,
114690143ccSmrg     DOT = 51,
115690143ccSmrg     COMMA = 52,
116690143ccSmrg     SEMI = 53,
117690143ccSmrg     EXCLAM = 54,
118690143ccSmrg     INVERT = 55,
119690143ccSmrg     STRING = 60,
120690143ccSmrg     INTEGER = 61,
121690143ccSmrg     FLOAT = 62,
122690143ccSmrg     IDENT = 63,
123690143ccSmrg     KEYNAME = 64,
124690143ccSmrg     PARTIAL = 70,
125690143ccSmrg     DEFAULT = 71,
126690143ccSmrg     HIDDEN = 72,
127690143ccSmrg     ALPHANUMERIC_KEYS = 73,
128690143ccSmrg     MODIFIER_KEYS = 74,
129690143ccSmrg     KEYPAD_KEYS = 75,
130690143ccSmrg     FUNCTION_KEYS = 76,
131690143ccSmrg     ALTERNATE_GROUP = 77
132690143ccSmrg   };
133690143ccSmrg#endif
134690143ccSmrg/* Tokens.  */
135f46a6179Smrg#define END_OF_FILE 0
136f46a6179Smrg#define ERROR_TOK 255
137f46a6179Smrg#define XKB_KEYMAP 1
138f46a6179Smrg#define XKB_KEYCODES 2
139f46a6179Smrg#define XKB_TYPES 3
140f46a6179Smrg#define XKB_SYMBOLS 4
141f46a6179Smrg#define XKB_COMPATMAP 5
142f46a6179Smrg#define XKB_GEOMETRY 6
143f46a6179Smrg#define XKB_SEMANTICS 7
144f46a6179Smrg#define XKB_LAYOUT 8
145f46a6179Smrg#define INCLUDE 10
146f46a6179Smrg#define OVERRIDE 11
147f46a6179Smrg#define AUGMENT 12
148f46a6179Smrg#define REPLACE 13
149f46a6179Smrg#define ALTERNATE 14
150f46a6179Smrg#define VIRTUAL_MODS 20
151f46a6179Smrg#define TYPE 21
152f46a6179Smrg#define INTERPRET 22
153f46a6179Smrg#define ACTION_TOK 23
154f46a6179Smrg#define KEY 24
155f46a6179Smrg#define ALIAS 25
156f46a6179Smrg#define GROUP 26
157f46a6179Smrg#define MODIFIER_MAP 27
158f46a6179Smrg#define INDICATOR 28
159f46a6179Smrg#define SHAPE 29
160f46a6179Smrg#define KEYS 30
161f46a6179Smrg#define ROW 31
162f46a6179Smrg#define SECTION 32
163f46a6179Smrg#define OVERLAY 33
164f46a6179Smrg#define TEXT 34
165f46a6179Smrg#define OUTLINE 35
166f46a6179Smrg#define SOLID 36
167f46a6179Smrg#define LOGO 37
168f46a6179Smrg#define VIRTUAL 38
169f46a6179Smrg#define EQUALS 40
170f46a6179Smrg#define PLUS 41
171f46a6179Smrg#define MINUS 42
172f46a6179Smrg#define DIVIDE 43
173f46a6179Smrg#define TIMES 44
174f46a6179Smrg#define OBRACE 45
175f46a6179Smrg#define CBRACE 46
176f46a6179Smrg#define OPAREN 47
177f46a6179Smrg#define CPAREN 48
178f46a6179Smrg#define OBRACKET 49
179f46a6179Smrg#define CBRACKET 50
180f46a6179Smrg#define DOT 51
181f46a6179Smrg#define COMMA 52
182f46a6179Smrg#define SEMI 53
183f46a6179Smrg#define EXCLAM 54
184f46a6179Smrg#define INVERT 55
185f46a6179Smrg#define STRING 60
186f46a6179Smrg#define INTEGER 61
187f46a6179Smrg#define FLOAT 62
188f46a6179Smrg#define IDENT 63
189f46a6179Smrg#define KEYNAME 64
190f46a6179Smrg#define PARTIAL 70
191f46a6179Smrg#define DEFAULT 71
192f46a6179Smrg#define HIDDEN 72
193f46a6179Smrg#define ALPHANUMERIC_KEYS 73
194f46a6179Smrg#define MODIFIER_KEYS 74
195f46a6179Smrg#define KEYPAD_KEYS 75
196f46a6179Smrg#define FUNCTION_KEYS 76
197f46a6179Smrg#define ALTERNATE_GROUP 77
198690143ccSmrg
199690143ccSmrg
200690143ccSmrg
201690143ccSmrg
2021d8c7986Smrg/* Copy the first part of user declarations.  */
2031d8c7986Smrg#line 91 "xkbparse.y"
2041d8c7986Smrg
2051d8c7986Smrg#ifdef DEBUG
2061d8c7986Smrg#define	YYDEBUG 1
2071d8c7986Smrg#endif
2081d8c7986Smrg#define	DEBUG_VAR parseDebug
2091d8c7986Smrg#include "parseutils.h"
2101d8c7986Smrg#include <X11/keysym.h>
2111d8c7986Smrg#include <X11/extensions/XKBgeom.h>
2121d8c7986Smrg#include <stdlib.h>
2131d8c7986Smrg
2141d8c7986Smrgunsigned int parseDebug;
2151d8c7986Smrg
2161d8c7986Smrg
2171d8c7986Smrg
2181d8c7986Smrg/* Enabling traces.  */
2191d8c7986Smrg#ifndef YYDEBUG
2201d8c7986Smrg# define YYDEBUG 0
2211d8c7986Smrg#endif
2221d8c7986Smrg
2231d8c7986Smrg/* Enabling verbose error messages.  */
2241d8c7986Smrg#ifdef YYERROR_VERBOSE
2251d8c7986Smrg# undef YYERROR_VERBOSE
2261d8c7986Smrg# define YYERROR_VERBOSE 1
2271d8c7986Smrg#else
2281d8c7986Smrg# define YYERROR_VERBOSE 0
2291d8c7986Smrg#endif
2301d8c7986Smrg
2311d8c7986Smrg/* Enabling the token table.  */
2321d8c7986Smrg#ifndef YYTOKEN_TABLE
2331d8c7986Smrg# define YYTOKEN_TABLE 0
2341d8c7986Smrg#endif
2351d8c7986Smrg
236690143ccSmrg#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
237690143ccSmrgtypedef union YYSTYPE
238690143ccSmrg#line 110 "xkbparse.y"
2391d8c7986Smrg{
240690143ccSmrg	int		 ival;
241690143ccSmrg	unsigned	 uval;
242690143ccSmrg	char		*str;
243690143ccSmrg	Atom	 	sval;
244690143ccSmrg	ParseCommon	*any;
245690143ccSmrg	ExprDef		*expr;
246690143ccSmrg	VarDef		*var;
247690143ccSmrg	VModDef		*vmod;
248690143ccSmrg	InterpDef	*interp;
249690143ccSmrg	KeyTypeDef	*keyType;
250690143ccSmrg	SymbolsDef	*syms;
251690143ccSmrg	ModMapDef	*modMask;
252690143ccSmrg	GroupCompatDef	*groupCompat;
253690143ccSmrg	IndicatorMapDef	*ledMap;
254690143ccSmrg	IndicatorNameDef *ledName;
255690143ccSmrg	KeycodeDef	*keyName;
256690143ccSmrg	KeyAliasDef	*keyAlias;
257690143ccSmrg	ShapeDef	*shape;
258690143ccSmrg	SectionDef	*section;
259690143ccSmrg	RowDef		*row;
260690143ccSmrg	KeyDef		*key;
261690143ccSmrg	OverlayDef	*overlay;
262690143ccSmrg	OverlayKeyDef	*olKey;
263690143ccSmrg	OutlineDef	*outline;
264690143ccSmrg	DoodadDef	*doodad;
265690143ccSmrg	XkbFile		*file;
2661d8c7986Smrg}
2671d8c7986Smrg/* Line 187 of yacc.c.  */
2681d8c7986Smrg#line 269 "xkbparse.c"
2691d8c7986Smrg	YYSTYPE;
270690143ccSmrg# define yystype YYSTYPE /* obsolescent; will be withdrawn */
271690143ccSmrg# define YYSTYPE_IS_DECLARED 1
2721d8c7986Smrg# define YYSTYPE_IS_TRIVIAL 1
273690143ccSmrg#endif
274690143ccSmrg
275690143ccSmrg
2761d8c7986Smrg
277690143ccSmrg/* Copy the second part of user declarations.  */
278690143ccSmrg
279690143ccSmrg
2801d8c7986Smrg/* Line 216 of yacc.c.  */
2811d8c7986Smrg#line 282 "xkbparse.c"
282690143ccSmrg
283690143ccSmrg#ifdef short
284690143ccSmrg# undef short
285690143ccSmrg#endif
286690143ccSmrg
287690143ccSmrg#ifdef YYTYPE_UINT8
288690143ccSmrgtypedef YYTYPE_UINT8 yytype_uint8;
289690143ccSmrg#else
290690143ccSmrgtypedef unsigned char yytype_uint8;
291690143ccSmrg#endif
292690143ccSmrg
293690143ccSmrg#ifdef YYTYPE_INT8
294690143ccSmrgtypedef YYTYPE_INT8 yytype_int8;
295690143ccSmrg#elif (defined __STDC__ || defined __C99__FUNC__ \
296690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
297690143ccSmrgtypedef signed char yytype_int8;
298690143ccSmrg#else
299690143ccSmrgtypedef short int yytype_int8;
300690143ccSmrg#endif
301690143ccSmrg
302690143ccSmrg#ifdef YYTYPE_UINT16
303690143ccSmrgtypedef YYTYPE_UINT16 yytype_uint16;
304690143ccSmrg#else
305690143ccSmrgtypedef unsigned short int yytype_uint16;
306690143ccSmrg#endif
307690143ccSmrg
308690143ccSmrg#ifdef YYTYPE_INT16
309690143ccSmrgtypedef YYTYPE_INT16 yytype_int16;
310690143ccSmrg#else
311690143ccSmrgtypedef short int yytype_int16;
312690143ccSmrg#endif
313690143ccSmrg
314690143ccSmrg#ifndef YYSIZE_T
315690143ccSmrg# ifdef __SIZE_TYPE__
316690143ccSmrg#  define YYSIZE_T __SIZE_TYPE__
317690143ccSmrg# elif defined size_t
318690143ccSmrg#  define YYSIZE_T size_t
319690143ccSmrg# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
320690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
321690143ccSmrg#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
322690143ccSmrg#  define YYSIZE_T size_t
323690143ccSmrg# else
324690143ccSmrg#  define YYSIZE_T unsigned int
325690143ccSmrg# endif
326690143ccSmrg#endif
327690143ccSmrg
328690143ccSmrg#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
329690143ccSmrg
330690143ccSmrg#ifndef YY_
331690143ccSmrg# if YYENABLE_NLS
332690143ccSmrg#  if ENABLE_NLS
333690143ccSmrg#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
334690143ccSmrg#   define YY_(msgid) dgettext ("bison-runtime", msgid)
335690143ccSmrg#  endif
336690143ccSmrg# endif
337690143ccSmrg# ifndef YY_
338690143ccSmrg#  define YY_(msgid) msgid
339690143ccSmrg# endif
340690143ccSmrg#endif
341690143ccSmrg
342690143ccSmrg/* Suppress unused-variable warnings by "using" E.  */
343690143ccSmrg#if ! defined lint || defined __GNUC__
344690143ccSmrg# define YYUSE(e) ((void) (e))
345690143ccSmrg#else
346690143ccSmrg# define YYUSE(e) /* empty */
347690143ccSmrg#endif
348690143ccSmrg
349690143ccSmrg/* Identity function, used to suppress warnings about constant conditions.  */
350690143ccSmrg#ifndef lint
351690143ccSmrg# define YYID(n) (n)
352690143ccSmrg#else
353690143ccSmrg#if (defined __STDC__ || defined __C99__FUNC__ \
354690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
355690143ccSmrgstatic int
3561d8c7986SmrgYYID (int i)
357690143ccSmrg#else
358690143ccSmrgstatic int
3591d8c7986SmrgYYID (i)
3601d8c7986Smrg    int i;
361690143ccSmrg#endif
362690143ccSmrg{
3631d8c7986Smrg  return i;
364690143ccSmrg}
365690143ccSmrg#endif
366690143ccSmrg
367690143ccSmrg#if ! defined yyoverflow || YYERROR_VERBOSE
368690143ccSmrg
369690143ccSmrg/* The parser invokes alloca or malloc; define the necessary symbols.  */
370690143ccSmrg
371690143ccSmrg# ifdef YYSTACK_USE_ALLOCA
372690143ccSmrg#  if YYSTACK_USE_ALLOCA
373690143ccSmrg#   ifdef __GNUC__
374690143ccSmrg#    define YYSTACK_ALLOC __builtin_alloca
375690143ccSmrg#   elif defined __BUILTIN_VA_ARG_INCR
376690143ccSmrg#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
377690143ccSmrg#   elif defined _AIX
378690143ccSmrg#    define YYSTACK_ALLOC __alloca
379690143ccSmrg#   elif defined _MSC_VER
380690143ccSmrg#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
381690143ccSmrg#    define alloca _alloca
382690143ccSmrg#   else
383690143ccSmrg#    define YYSTACK_ALLOC alloca
384690143ccSmrg#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
385690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
386690143ccSmrg#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
387690143ccSmrg#     ifndef _STDLIB_H
388690143ccSmrg#      define _STDLIB_H 1
389690143ccSmrg#     endif
390690143ccSmrg#    endif
391690143ccSmrg#   endif
392690143ccSmrg#  endif
393690143ccSmrg# endif
394690143ccSmrg
395690143ccSmrg# ifdef YYSTACK_ALLOC
396690143ccSmrg   /* Pacify GCC's `empty if-body' warning.  */
397690143ccSmrg#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
398690143ccSmrg#  ifndef YYSTACK_ALLOC_MAXIMUM
399690143ccSmrg    /* The OS might guarantee only one guard page at the bottom of the stack,
400690143ccSmrg       and a page size can be as small as 4096 bytes.  So we cannot safely
401690143ccSmrg       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
402690143ccSmrg       to allow for a few compiler-allocated temporary stack slots.  */
403690143ccSmrg#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
404690143ccSmrg#  endif
405690143ccSmrg# else
406690143ccSmrg#  define YYSTACK_ALLOC YYMALLOC
407690143ccSmrg#  define YYSTACK_FREE YYFREE
408690143ccSmrg#  ifndef YYSTACK_ALLOC_MAXIMUM
409690143ccSmrg#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
410690143ccSmrg#  endif
411690143ccSmrg#  if (defined __cplusplus && ! defined _STDLIB_H \
412690143ccSmrg       && ! ((defined YYMALLOC || defined malloc) \
413690143ccSmrg	     && (defined YYFREE || defined free)))
414690143ccSmrg#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
415690143ccSmrg#   ifndef _STDLIB_H
416690143ccSmrg#    define _STDLIB_H 1
417690143ccSmrg#   endif
418690143ccSmrg#  endif
419690143ccSmrg#  ifndef YYMALLOC
420690143ccSmrg#   define YYMALLOC malloc
421690143ccSmrg#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
422690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
423690143ccSmrgvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
424690143ccSmrg#   endif
425690143ccSmrg#  endif
426690143ccSmrg#  ifndef YYFREE
427690143ccSmrg#   define YYFREE free
428690143ccSmrg#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
429690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
430690143ccSmrgvoid free (void *); /* INFRINGES ON USER NAME SPACE */
431690143ccSmrg#   endif
432690143ccSmrg#  endif
433690143ccSmrg# endif
434690143ccSmrg#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
435690143ccSmrg
436690143ccSmrg
437690143ccSmrg#if (! defined yyoverflow \
438690143ccSmrg     && (! defined __cplusplus \
439690143ccSmrg	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
440690143ccSmrg
441690143ccSmrg/* A type that is properly aligned for any stack member.  */
442690143ccSmrgunion yyalloc
443690143ccSmrg{
4441d8c7986Smrg  yytype_int16 yyss;
4451d8c7986Smrg  YYSTYPE yyvs;
4461d8c7986Smrg  };
447690143ccSmrg
448690143ccSmrg/* The size of the maximum gap between one aligned stack and the next.  */
449690143ccSmrg# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
450690143ccSmrg
451690143ccSmrg/* The size of an array large to enough to hold all stacks, each with
452690143ccSmrg   N elements.  */
453690143ccSmrg# define YYSTACK_BYTES(N) \
454690143ccSmrg     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
455690143ccSmrg      + YYSTACK_GAP_MAXIMUM)
456690143ccSmrg
457690143ccSmrg/* Copy COUNT objects from FROM to TO.  The source and destination do
458690143ccSmrg   not overlap.  */
459690143ccSmrg# ifndef YYCOPY
460690143ccSmrg#  if defined __GNUC__ && 1 < __GNUC__
461690143ccSmrg#   define YYCOPY(To, From, Count) \
462690143ccSmrg      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
463690143ccSmrg#  else
464690143ccSmrg#   define YYCOPY(To, From, Count)		\
465690143ccSmrg      do					\
466690143ccSmrg	{					\
467690143ccSmrg	  YYSIZE_T yyi;				\
468690143ccSmrg	  for (yyi = 0; yyi < (Count); yyi++)	\
469690143ccSmrg	    (To)[yyi] = (From)[yyi];		\
470690143ccSmrg	}					\
471690143ccSmrg      while (YYID (0))
472690143ccSmrg#  endif
473690143ccSmrg# endif
474690143ccSmrg
475690143ccSmrg/* Relocate STACK from its old location to the new one.  The
476690143ccSmrg   local variables YYSIZE and YYSTACKSIZE give the old and new number of
477690143ccSmrg   elements in the stack, and YYPTR gives the new location of the
478690143ccSmrg   stack.  Advance YYPTR to a properly aligned location for the next
479690143ccSmrg   stack.  */
4801d8c7986Smrg# define YYSTACK_RELOCATE(Stack)					\
481690143ccSmrg    do									\
482690143ccSmrg      {									\
483690143ccSmrg	YYSIZE_T yynewbytes;						\
4841d8c7986Smrg	YYCOPY (&yyptr->Stack, Stack, yysize);				\
4851d8c7986Smrg	Stack = &yyptr->Stack;						\
486690143ccSmrg	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
487690143ccSmrg	yyptr += yynewbytes / sizeof (*yyptr);				\
488690143ccSmrg      }									\
489690143ccSmrg    while (YYID (0))
490690143ccSmrg
491690143ccSmrg#endif
492690143ccSmrg
493690143ccSmrg/* YYFINAL -- State number of the termination state.  */
494690143ccSmrg#define YYFINAL  18
495690143ccSmrg/* YYLAST -- Last index in YYTABLE.  */
496690143ccSmrg#define YYLAST   706
497690143ccSmrg
498690143ccSmrg/* YYNTOKENS -- Number of terminals.  */
499690143ccSmrg#define YYNTOKENS  65
500690143ccSmrg/* YYNNTS -- Number of nonterminals.  */
501690143ccSmrg#define YYNNTS  73
502690143ccSmrg/* YYNRULES -- Number of rules.  */
503690143ccSmrg#define YYNRULES  184
504690143ccSmrg/* YYNRULES -- Number of states.  */
505690143ccSmrg#define YYNSTATES  335
506690143ccSmrg
507690143ccSmrg/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
508690143ccSmrg#define YYUNDEFTOK  2
509690143ccSmrg#define YYMAXUTOK   257
510690143ccSmrg
511690143ccSmrg#define YYTRANSLATE(YYX)						\
512690143ccSmrg  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
513690143ccSmrg
514690143ccSmrg/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
515690143ccSmrgstatic const yytype_uint8 yytranslate[] =
516690143ccSmrg{
517690143ccSmrg       0,     4,     5,     6,     7,     8,     9,    10,    11,     2,
518690143ccSmrg      12,    13,    14,    15,    16,     2,     2,     2,     2,     2,
519690143ccSmrg      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
520690143ccSmrg      27,    28,    29,    30,    31,    32,    33,    34,    35,     2,
521690143ccSmrg      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
522690143ccSmrg      46,    47,    48,    49,    50,    51,     2,     2,     2,     2,
523690143ccSmrg      52,    53,    54,    55,    56,     2,     2,     2,     2,     2,
524690143ccSmrg      57,    58,    59,    60,    61,    62,    63,    64,     2,     2,
525690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
526690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
527690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
528690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
529690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
530690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
531690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
532690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
533690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
534690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
535690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
536690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
537690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
538690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
539690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
540690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
541690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
542690143ccSmrg       2,     2,     2,     2,     2,     3,     1,     2
543690143ccSmrg};
544690143ccSmrg
545690143ccSmrg#if YYDEBUG
546690143ccSmrg/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
547690143ccSmrg   YYRHS.  */
548690143ccSmrgstatic const yytype_uint16 yyprhs[] =
549690143ccSmrg{
550690143ccSmrg       0,     0,     3,     5,     7,     9,    12,    14,    22,    24,
551690143ccSmrg      26,    28,    31,    33,    41,    46,    48,    50,    52,    54,
552690143ccSmrg      56,    58,    59,    62,    64,    66,    68,    70,    72,    74,
553690143ccSmrg      76,    78,    80,    83,    84,    87,    90,    93,    96,    99,
554690143ccSmrg     102,   105,   108,   111,   114,   117,   120,   123,   126,   129,
555690143ccSmrg     134,   137,   141,   146,   152,   156,   160,   162,   164,   168,
556690143ccSmrg     175,   179,   181,   184,   186,   193,   200,   204,   206,   207,
557690143ccSmrg     211,   215,   217,   220,   222,   226,   230,   236,   243,   250,
558690143ccSmrg     256,   263,   270,   277,   284,   287,   289,   295,   297,   299,
559690143ccSmrg     301,   303,   306,   308,   314,   316,   320,   322,   324,   328,
560690143ccSmrg     335,   339,   341,   345,   349,   351,   355,   361,   365,   369,
561690143ccSmrg     371,   377,   384,   386,   388,   390,   392,   394,   396,   398,
562690143ccSmrg     400,   402,   404,   406,   408,   410,   412,   414,   416,   418,
563690143ccSmrg     420,   421,   423,   425,   427,   429,   431,   433,   434,   438,
564690143ccSmrg     440,   444,   448,   452,   456,   460,   462,   465,   468,   471,
565690143ccSmrg     474,   476,   481,   483,   487,   491,   493,   498,   500,   504,
566690143ccSmrg     509,   516,   518,   520,   522,   524,   526,   527,   531,   533,
567690143ccSmrg     535,   537,   539,   542,   544,   546,   548,   550,   552,   554,
568690143ccSmrg     556,   558,   560,   562,   563
569690143ccSmrg};
570690143ccSmrg
571690143ccSmrg/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
572690143ccSmrgstatic const yytype_int16 yyrhs[] =
573690143ccSmrg{
574690143ccSmrg      66,     0,    -1,    67,    -1,    70,    -1,    72,    -1,    67,
575690143ccSmrg      68,    -1,    68,    -1,    74,    69,   136,    41,    70,    42,
576690143ccSmrg      49,    -1,     4,    -1,    10,    -1,    11,    -1,    70,    71,
577690143ccSmrg      -1,    71,    -1,    74,    73,   136,    41,    77,    42,    49,
578690143ccSmrg      -1,    74,    73,   136,    77,    -1,     5,    -1,     6,    -1,
579690143ccSmrg       8,    -1,     7,    -1,     9,    -1,    75,    -1,    -1,    75,
580690143ccSmrg      76,    -1,    76,    -1,    57,    -1,    58,    -1,    59,    -1,
581690143ccSmrg      60,    -1,    61,    -1,    62,    -1,    63,    -1,    64,    -1,
582690143ccSmrg      77,    78,    -1,    -1,   116,    79,    -1,   116,    82,    -1,
583690143ccSmrg     116,    85,    -1,   116,    80,    -1,   116,    81,    -1,   116,
584690143ccSmrg      88,    -1,   116,    89,    -1,   116,    94,    -1,   116,    93,
585690143ccSmrg      -1,   116,    95,    -1,   116,    96,    -1,   116,    97,    -1,
586690143ccSmrg     116,    98,    -1,   116,   112,    -1,   117,    52,    -1,   124,
587690143ccSmrg      36,   120,    49,    -1,   134,    49,    -1,    50,   134,    49,
588690143ccSmrg      -1,   133,    36,   120,    49,    -1,    22,   133,    36,   133,
589690143ccSmrg      49,    -1,    17,    83,    49,    -1,    83,    48,    84,    -1,
590690143ccSmrg      84,    -1,   134,    -1,   134,    36,   120,    -1,    19,    86,
591690143ccSmrg      41,    87,    42,    49,    -1,   128,    37,   120,    -1,   128,
592690143ccSmrg      -1,    87,    79,    -1,    79,    -1,    18,   135,    41,    87,
593690143ccSmrg      42,    49,    -1,    21,   133,    41,    90,    42,    49,    -1,
594690143ccSmrg      90,    48,    91,    -1,    91,    -1,    -1,   124,    36,   120,
595690143ccSmrg      -1,   124,    36,    92,    -1,   134,    -1,    50,   134,    -1,
596690143ccSmrg      92,    -1,    45,   126,    46,    -1,    45,   122,    46,    -1,
597690143ccSmrg      23,   132,    36,   120,    49,    -1,    24,   134,    41,   119,
598690143ccSmrg      42,    49,    -1,    25,   135,    41,    87,    42,    49,    -1,
599690143ccSmrg      25,   132,    36,   120,    49,    -1,    35,    25,   132,    36,
600690143ccSmrg     120,    49,    -1,    26,   135,    41,   108,    42,    49,    -1,
601690143ccSmrg      26,   135,    41,   110,    42,    49,    -1,    29,   135,    41,
602690143ccSmrg      99,    42,    49,    -1,    99,   100,    -1,   100,    -1,    28,
603690143ccSmrg      41,   101,    42,    49,    -1,    79,    -1,   112,    -1,    95,
604690143ccSmrg      -1,   105,    -1,   101,   102,    -1,   102,    -1,    27,    41,
605690143ccSmrg     103,    42,    49,    -1,    79,    -1,   103,    48,   104,    -1,
606690143ccSmrg     104,    -1,   133,    -1,    41,   119,    42,    -1,    30,   135,
607690143ccSmrg      41,   106,    42,    49,    -1,   106,    48,   107,    -1,   107,
608690143ccSmrg      -1,   133,    36,   133,    -1,   108,    48,   109,    -1,   109,
609690143ccSmrg      -1,    41,   110,    42,    -1,   134,    36,    41,   110,    42,
610690143ccSmrg      -1,   134,    36,   120,    -1,   110,    48,   111,    -1,   111,
611690143ccSmrg      -1,    45,   129,    48,   129,    46,    -1,   113,   135,    41,
612690143ccSmrg      87,    42,    49,    -1,    31,    -1,    32,    -1,    33,    -1,
613690143ccSmrg      34,    -1,   134,    -1,   115,    -1,    20,    -1,    19,    -1,
614690143ccSmrg      18,    -1,    21,    -1,    23,    -1,    24,    -1,    25,    -1,
615690143ccSmrg      26,    -1,    28,    -1,    29,    -1,    31,    -1,   117,    -1,
616690143ccSmrg      -1,    12,    -1,    14,    -1,    13,    -1,    15,    -1,    16,
617690143ccSmrg      -1,   119,    -1,    -1,   119,    48,   120,    -1,   120,    -1,
618690143ccSmrg     120,    39,   120,    -1,   120,    37,   120,    -1,   120,    38,
619690143ccSmrg     120,    -1,   120,    40,   120,    -1,   124,    36,   120,    -1,
620690143ccSmrg     121,    -1,    38,   121,    -1,    37,   121,    -1,    50,   121,
621690143ccSmrg      -1,    51,   121,    -1,   124,    -1,   114,    43,   118,    44,
622690143ccSmrg      -1,   125,    -1,    43,   120,    44,    -1,   122,    48,   123,
623690143ccSmrg      -1,   123,    -1,   114,    43,   118,    44,    -1,   114,    -1,
624690143ccSmrg     114,    47,   114,    -1,   114,    45,   120,    46,    -1,   114,
625690143ccSmrg      47,   114,    45,   120,    46,    -1,   135,    -1,   132,    -1,
626690143ccSmrg     131,    -1,   133,    -1,   127,    -1,    -1,   127,    48,   128,
627690143ccSmrg      -1,   128,    -1,    55,    -1,    29,    -1,   132,    -1,    38,
628690143ccSmrg     130,    -1,   130,    -1,    54,    -1,    53,    -1,    54,    -1,
629690143ccSmrg      53,    -1,    56,    -1,    55,    -1,    58,    -1,    52,    -1,
630690143ccSmrg     137,    -1,    -1,    52,    -1
631f46a6179Smrg};
632690143ccSmrg
633690143ccSmrg/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
634690143ccSmrgstatic const yytype_uint16 yyrline[] =
635690143ccSmrg{
636690143ccSmrg       0,   168,   168,   170,   172,   176,   178,   182,   188,   189,
637690143ccSmrg     190,   193,   195,   199,   205,   210,   211,   212,   213,   214,
638690143ccSmrg     217,   218,   221,   222,   225,   226,   227,   228,   229,   230,
639690143ccSmrg     231,   232,   235,   237,   240,   245,   250,   255,   260,   265,
640690143ccSmrg     270,   275,   280,   285,   290,   295,   300,   305,   310,   322,
641690143ccSmrg     324,   326,   330,   341,   351,   355,   357,   361,   363,   367,
642690143ccSmrg     376,   378,   382,   384,   388,   394,   400,   402,   404,   407,
643690143ccSmrg     409,   411,   413,   415,   419,   421,   425,   429,   433,   437,
644690143ccSmrg     439,   443,   445,   453,   457,   459,   463,   465,   467,   469,
645690143ccSmrg     471,   475,   477,   481,   483,   487,   489,   493,   495,   499,
646690143ccSmrg     503,   508,   512,   516,   518,   522,   524,   526,   530,   532,
647690143ccSmrg     536,   546,   550,   551,   552,   553,   556,   557,   560,   562,
648690143ccSmrg     564,   566,   568,   570,   572,   574,   576,   578,   580,   584,
649690143ccSmrg     585,   588,   589,   590,   591,   592,   595,   596,   599,   601,
650690143ccSmrg     605,   607,   609,   611,   613,   615,   619,   621,   623,   625,
651690143ccSmrg     627,   629,   631,   633,   637,   639,   643,   647,   654,   662,
652690143ccSmrg     671,   682,   689,   696,   703,   714,   715,   718,   720,   724,
653690143ccSmrg     725,   726,   733,   734,   737,   738,   741,   744,   747,   750,
654690143ccSmrg     751,   754,   757,   758,   761
655690143ccSmrg};
656690143ccSmrg#endif
657690143ccSmrg
658690143ccSmrg#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
659690143ccSmrg/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
660690143ccSmrg   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
661690143ccSmrgstatic const char *const yytname[] =
662690143ccSmrg{
663690143ccSmrg  "END_OF_FILE", "error", "$undefined", "ERROR_TOK", "XKB_KEYMAP",
664690143ccSmrg  "XKB_KEYCODES", "XKB_TYPES", "XKB_SYMBOLS", "XKB_COMPATMAP",
665690143ccSmrg  "XKB_GEOMETRY", "XKB_SEMANTICS", "XKB_LAYOUT", "INCLUDE", "OVERRIDE",
666690143ccSmrg  "AUGMENT", "REPLACE", "ALTERNATE", "VIRTUAL_MODS", "TYPE", "INTERPRET",
667690143ccSmrg  "ACTION_TOK", "KEY", "ALIAS", "GROUP", "MODIFIER_MAP", "INDICATOR",
668690143ccSmrg  "SHAPE", "KEYS", "ROW", "SECTION", "OVERLAY", "TEXT", "OUTLINE", "SOLID",
669690143ccSmrg  "LOGO", "VIRTUAL", "EQUALS", "PLUS", "MINUS", "DIVIDE", "TIMES",
670690143ccSmrg  "OBRACE", "CBRACE", "OPAREN", "CPAREN", "OBRACKET", "CBRACKET", "DOT",
671690143ccSmrg  "COMMA", "SEMI", "EXCLAM", "INVERT", "STRING", "INTEGER", "FLOAT",
672690143ccSmrg  "IDENT", "KEYNAME", "PARTIAL", "DEFAULT", "HIDDEN", "ALPHANUMERIC_KEYS",
673690143ccSmrg  "MODIFIER_KEYS", "KEYPAD_KEYS", "FUNCTION_KEYS", "ALTERNATE_GROUP",
674690143ccSmrg  "$accept", "XkbFile", "XkbCompMapList", "XkbCompositeMap",
675690143ccSmrg  "XkbCompositeType", "XkbMapConfigList", "XkbMapConfig", "XkbConfig",
676690143ccSmrg  "FileType", "OptFlags", "Flags", "Flag", "DeclList", "Decl", "VarDecl",
677690143ccSmrg  "KeyNameDecl", "KeyAliasDecl", "VModDecl", "VModDefList", "VModDef",
678690143ccSmrg  "InterpretDecl", "InterpretMatch", "VarDeclList", "KeyTypeDecl",
679690143ccSmrg  "SymbolsDecl", "SymbolsBody", "SymbolsVarDecl", "ArrayInit",
680690143ccSmrg  "GroupCompatDecl", "ModMapDecl", "IndicatorMapDecl", "IndicatorNameDecl",
681690143ccSmrg  "ShapeDecl", "SectionDecl", "SectionBody", "SectionBodyItem", "RowBody",
682690143ccSmrg  "RowBodyItem", "Keys", "Key", "OverlayDecl", "OverlayKeyList",
683690143ccSmrg  "OverlayKey", "OutlineList", "OutlineInList", "CoordList", "Coord",
684690143ccSmrg  "DoodadDecl", "DoodadType", "FieldSpec", "Element", "OptMergeMode",
685690143ccSmrg  "MergeMode", "OptExprList", "ExprList", "Expr", "Term", "ActionList",
686690143ccSmrg  "Action", "Lhs", "Terminal", "OptKeySymList", "KeySymList", "KeySym",
687690143ccSmrg  "SignedNumber", "Number", "Float", "Integer", "KeyName", "Ident",
688690143ccSmrg  "String", "OptMapName", "MapName", 0
689690143ccSmrg};
690690143ccSmrg#endif
691690143ccSmrg
692690143ccSmrg# ifdef YYPRINT
693690143ccSmrg/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
694690143ccSmrg   token YYLEX-NUM.  */
695690143ccSmrgstatic const yytype_uint16 yytoknum[] =
696690143ccSmrg{
697690143ccSmrg       0,   256,   257,   255,     1,     2,     3,     4,     5,     6,
698690143ccSmrg       7,     8,    10,    11,    12,    13,    14,    20,    21,    22,
699690143ccSmrg      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
700690143ccSmrg      33,    34,    35,    36,    37,    38,    40,    41,    42,    43,
701690143ccSmrg      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
702690143ccSmrg      54,    55,    60,    61,    62,    63,    64,    70,    71,    72,
703690143ccSmrg      73,    74,    75,    76,    77
704f46a6179Smrg};
705690143ccSmrg# endif
706690143ccSmrg
707690143ccSmrg/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
708690143ccSmrgstatic const yytype_uint8 yyr1[] =
709690143ccSmrg{
710690143ccSmrg       0,    65,    66,    66,    66,    67,    67,    68,    69,    69,
711690143ccSmrg      69,    70,    70,    71,    72,    73,    73,    73,    73,    73,
712690143ccSmrg      74,    74,    75,    75,    76,    76,    76,    76,    76,    76,
713690143ccSmrg      76,    76,    77,    77,    78,    78,    78,    78,    78,    78,
714690143ccSmrg      78,    78,    78,    78,    78,    78,    78,    78,    78,    79,
715690143ccSmrg      79,    79,    80,    81,    82,    83,    83,    84,    84,    85,
716690143ccSmrg      86,    86,    87,    87,    88,    89,    90,    90,    90,    91,
717690143ccSmrg      91,    91,    91,    91,    92,    92,    93,    94,    95,    96,
718690143ccSmrg      96,    97,    97,    98,    99,    99,   100,   100,   100,   100,
719690143ccSmrg     100,   101,   101,   102,   102,   103,   103,   104,   104,   105,
720690143ccSmrg     106,   106,   107,   108,   108,   109,   109,   109,   110,   110,
721690143ccSmrg     111,   112,   113,   113,   113,   113,   114,   114,   115,   115,
722690143ccSmrg     115,   115,   115,   115,   115,   115,   115,   115,   115,   116,
723690143ccSmrg     116,   117,   117,   117,   117,   117,   118,   118,   119,   119,
724690143ccSmrg     120,   120,   120,   120,   120,   120,   121,   121,   121,   121,
725690143ccSmrg     121,   121,   121,   121,   122,   122,   123,   124,   124,   124,
726690143ccSmrg     124,   125,   125,   125,   125,   126,   126,   127,   127,   128,
727690143ccSmrg     128,   128,   129,   129,   130,   130,   131,   132,   133,   134,
728690143ccSmrg     134,   135,   136,   136,   137
729f46a6179Smrg};
730690143ccSmrg
731690143ccSmrg/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
732690143ccSmrgstatic const yytype_uint8 yyr2[] =
733690143ccSmrg{
734690143ccSmrg       0,     2,     1,     1,     1,     2,     1,     7,     1,     1,
735690143ccSmrg       1,     2,     1,     7,     4,     1,     1,     1,     1,     1,
736690143ccSmrg       1,     0,     2,     1,     1,     1,     1,     1,     1,     1,
737690143ccSmrg       1,     1,     2,     0,     2,     2,     2,     2,     2,     2,
738690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     4,
739690143ccSmrg       2,     3,     4,     5,     3,     3,     1,     1,     3,     6,
740690143ccSmrg       3,     1,     2,     1,     6,     6,     3,     1,     0,     3,
741690143ccSmrg       3,     1,     2,     1,     3,     3,     5,     6,     6,     5,
742690143ccSmrg       6,     6,     6,     6,     2,     1,     5,     1,     1,     1,
743690143ccSmrg       1,     2,     1,     5,     1,     3,     1,     1,     3,     6,
744690143ccSmrg       3,     1,     3,     3,     1,     3,     5,     3,     3,     1,
745690143ccSmrg       5,     6,     1,     1,     1,     1,     1,     1,     1,     1,
746690143ccSmrg       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
747690143ccSmrg       0,     1,     1,     1,     1,     1,     1,     0,     3,     1,
748690143ccSmrg       3,     3,     3,     3,     3,     1,     2,     2,     2,     2,
749690143ccSmrg       1,     4,     1,     3,     3,     1,     4,     1,     3,     4,
750690143ccSmrg       6,     1,     1,     1,     1,     1,     0,     3,     1,     1,
751690143ccSmrg       1,     1,     2,     1,     1,     1,     1,     1,     1,     1,
752690143ccSmrg       1,     1,     1,     0,     1
753f46a6179Smrg};
754690143ccSmrg
755690143ccSmrg/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
756690143ccSmrg   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
757690143ccSmrg   means the default is an error.  */
758690143ccSmrgstatic const yytype_uint8 yydefact[] =
759690143ccSmrg{
760690143ccSmrg      21,    24,    25,    26,    27,    28,    29,    30,    31,     0,
761690143ccSmrg      21,     6,    21,    12,     4,     0,    20,    23,     1,     5,
762690143ccSmrg       0,    11,     0,     8,    15,    16,    18,    17,    19,     9,
763690143ccSmrg      10,   183,   183,    22,   183,   184,     0,   182,    33,     0,
764690143ccSmrg      21,    33,   130,    21,   130,   131,   133,   132,   134,   135,
765690143ccSmrg      32,     0,   129,     0,     0,     0,   120,   119,   118,   121,
766690143ccSmrg       0,   122,   123,   124,   125,   126,   127,   128,   113,   114,
767690143ccSmrg     115,     0,     0,   179,   178,   180,    34,    37,    38,    35,
768690143ccSmrg      36,    39,    40,    42,    41,    43,    44,    45,    46,    47,
769690143ccSmrg       0,   157,   117,     0,     0,   116,    48,     7,    13,     0,
770690143ccSmrg      56,    57,   181,     0,   170,   177,   169,     0,    61,   171,
771690143ccSmrg       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
772690143ccSmrg       0,     0,     0,     0,     0,    50,     0,    54,     0,     0,
773690143ccSmrg       0,     0,    68,     0,     0,     0,     0,     0,     0,     0,
774690143ccSmrg       0,    51,     0,   120,   119,   121,   122,   123,   124,   125,
775690143ccSmrg     127,   128,     0,     0,     0,     0,     0,   176,   157,     0,
776690143ccSmrg     145,   150,   152,   163,   162,   164,   116,   161,   158,     0,
777690143ccSmrg       0,    55,    58,    63,     0,     0,    60,   166,     0,     0,
778690143ccSmrg      67,    73,     0,   116,     0,     0,     0,   139,     0,     0,
779690143ccSmrg       0,     0,     0,   104,     0,   109,     0,   124,   126,     0,
780690143ccSmrg      87,    89,     0,    85,    90,    88,     0,     0,   147,   150,
781690143ccSmrg     146,     0,   148,   149,   137,     0,     0,     0,     0,   159,
782690143ccSmrg       0,     0,    49,    52,     0,    62,     0,   170,   169,     0,
783690143ccSmrg       0,   155,     0,   165,   168,    72,     0,     0,     0,    53,
784690143ccSmrg      76,     0,     0,    79,     0,     0,     0,   175,   174,     0,
785690143ccSmrg     173,     0,     0,     0,     0,     0,     0,     0,     0,    84,
786690143ccSmrg       0,     0,   153,     0,   136,   141,   142,   140,   143,   144,
787690143ccSmrg       0,    64,    59,   137,    75,     0,    74,     0,    65,    66,
788690143ccSmrg      70,    69,    77,   138,    78,   105,   172,     0,    81,   103,
789690143ccSmrg      82,   108,     0,   107,     0,    94,     0,    92,     0,    83,
790690143ccSmrg      80,   111,   151,   160,     0,   154,   167,     0,     0,     0,
791690143ccSmrg       0,    91,     0,   101,     0,   156,   110,   106,     0,     0,
792690143ccSmrg      96,    97,    86,     0,     0,     0,     0,     0,     0,    99,
793690143ccSmrg     100,   102,    98,    93,    95
794f46a6179Smrg};
795690143ccSmrg
796690143ccSmrg/* YYDEFGOTO[NTERM-NUM].  */
797690143ccSmrgstatic const yytype_int16 yydefgoto[] =
798690143ccSmrg{
799690143ccSmrg      -1,     9,    10,    11,    31,    12,    13,    14,    32,    22,
800690143ccSmrg      16,    17,    42,    50,   173,    77,    78,    79,    99,   100,
801690143ccSmrg      80,   107,   174,    81,    82,   179,   180,   181,    83,    84,
802690143ccSmrg     201,    86,    87,    88,   202,   203,   296,   297,   319,   320,
803690143ccSmrg     204,   312,   313,   192,   193,   194,   195,   205,    90,   158,
804690143ccSmrg      92,    51,    52,   263,   264,   187,   160,   230,   231,   161,
805690143ccSmrg     162,   232,   233,   108,   249,   250,   163,   164,   165,   166,
806690143ccSmrg     167,    36,    37
807f46a6179Smrg};
808690143ccSmrg
809690143ccSmrg/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
810690143ccSmrg   STATE-NUM.  */
811690143ccSmrg#define YYPACT_NINF -188
812690143ccSmrgstatic const yytype_int16 yypact[] =
813690143ccSmrg{
814690143ccSmrg     628,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,    12,
815690143ccSmrg       4,  -188,    58,  -188,  -188,   695,   628,  -188,  -188,  -188,
816690143ccSmrg     121,  -188,   408,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
817690143ccSmrg    -188,    -9,    -9,  -188,    -9,  -188,    19,  -188,    45,    45,
818690143ccSmrg     628,  -188,   174,   620,   137,  -188,  -188,  -188,  -188,  -188,
819690143ccSmrg    -188,   317,    39,   -15,    50,     1,    59,   -18,  -188,    72,
820690143ccSmrg      72,   106,     1,   -27,    59,  -188,    59,    62,  -188,  -188,
821690143ccSmrg    -188,   117,     1,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
822690143ccSmrg    -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
823690143ccSmrg      59,    51,  -188,   125,   146,   134,  -188,  -188,  -188,   132,
824690143ccSmrg    -188,   163,  -188,   168,  -188,  -188,  -188,   173,   179,  -188,
825690143ccSmrg     178,   186,   190,   194,   206,   204,   208,   221,   106,   216,
826690143ccSmrg     225,   265,   640,   265,   265,  -188,     1,  -188,   265,   599,
827690143ccSmrg     599,   265,   470,    72,   265,   265,   265,   599,   -26,    21,
828690143ccSmrg     239,  -188,   599,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
829690143ccSmrg    -188,  -188,   265,   265,   265,   265,   265,  -188,   159,   232,
830690143ccSmrg    -188,   240,  -188,  -188,  -188,  -188,  -188,  -188,   223,    98,
831690143ccSmrg     156,  -188,   260,  -188,   485,   513,   260,   617,     1,    30,
832690143ccSmrg    -188,  -188,   243,    32,   231,   192,    64,   260,   199,   528,
833690143ccSmrg     236,    35,   127,  -188,   128,  -188,   251,    59,   270,    59,
834690143ccSmrg    -188,  -188,   422,  -188,  -188,  -188,   265,   556,  -188,  -188,
835690143ccSmrg    -188,   342,  -188,  -188,   265,   265,   265,   265,   265,  -188,
836690143ccSmrg     265,   265,  -188,  -188,   263,  -188,   264,   249,   271,   281,
837690143ccSmrg      61,  -188,   279,   278,  -188,  -188,   280,   470,   340,  -188,
838690143ccSmrg    -188,   283,   265,  -188,   284,   129,    16,  -188,  -188,   282,
839690143ccSmrg    -188,   298,   -34,   308,   236,   381,   576,   287,   321,  -188,
840690143ccSmrg     215,   325,  -188,   332,   336,   158,   158,  -188,  -188,   260,
841690143ccSmrg     316,  -188,  -188,   265,  -188,   640,  -188,   -18,  -188,  -188,
842690143ccSmrg    -188,   260,  -188,   260,  -188,  -188,  -188,    35,  -188,  -188,
843690143ccSmrg    -188,  -188,   236,   260,   346,  -188,   442,  -188,    72,  -188,
844690143ccSmrg    -188,  -188,  -188,  -188,   344,  -188,  -188,   343,   143,   -28,
845690143ccSmrg     348,  -188,   176,  -188,   367,  -188,  -188,  -188,   265,   198,
846690143ccSmrg    -188,  -188,  -188,   359,    72,    72,   202,   362,   -28,  -188,
847690143ccSmrg    -188,  -188,  -188,  -188,  -188
848f46a6179Smrg};
849690143ccSmrg
850690143ccSmrg/* YYPGOTO[NTERM-NUM].  */
851690143ccSmrgstatic const yytype_int16 yypgoto[] =
852690143ccSmrg{
853690143ccSmrg    -188,  -188,  -188,   410,  -188,   383,    -7,  -188,   399,    38,
854690143ccSmrg    -188,   409,   385,  -188,   -35,  -188,  -188,  -188,  -188,   301,
855690143ccSmrg    -188,  -188,   -47,  -188,  -188,  -188,   191,   200,  -188,  -188,
856690143ccSmrg     378,  -188,  -188,  -188,  -188,   228,  -188,   148,  -188,   130,
857690143ccSmrg    -188,  -188,   133,  -188,   197,  -187,   205,   423,  -188,    26,
858690143ccSmrg    -188,  -188,  -188,   203,  -134,    89,   104,  -188,   207,   -29,
859690143ccSmrg    -188,  -188,  -188,  -175,   188,   233,  -188,   -43,   -51,   -45,
860690143ccSmrg     -33,   109,  -188
861f46a6179Smrg};
862690143ccSmrg
863690143ccSmrg/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
864690143ccSmrg   positive, shift that token.  If negative, reduce the rule which
865690143ccSmrg   number is the opposite.  If zero, do what YYDEFACT says.
866690143ccSmrg   If YYTABLE_NINF, syntax error.  */
867690143ccSmrg#define YYTABLE_NINF -180
868690143ccSmrgstatic const yytype_int16 yytable[] =
869690143ccSmrg{
870690143ccSmrg      94,   186,   234,   245,    -2,    21,    95,   190,   110,   111,
871690143ccSmrg     101,   104,    18,   318,   109,   190,    76,   113,   112,   191,
872690143ccSmrg     114,    73,    93,   103,    75,   102,   105,   119,    74,    73,
873690143ccSmrg     115,   116,    75,   117,    97,   105,    21,   106,    15,   143,
874690143ccSmrg     144,    58,   145,    35,   146,   147,   197,   149,    20,   198,
875690143ccSmrg     150,   199,    67,    68,    69,    70,    73,   120,    -3,    75,
876690143ccSmrg      40,     1,     2,     3,     4,     5,     6,     7,     8,   247,
877690143ccSmrg     248,    72,   236,   246,   -71,   140,    73,    91,   237,    75,
878690143ccSmrg     -71,   101,   184,   175,    95,    95,    41,   183,   247,   248,
879690143ccSmrg     189,    96,    95,   196,    95,   207,   121,    95,   122,    98,
880690143ccSmrg      93,    93,   306,   182,   200,   308,   241,   274,    93,   275,
881690143ccSmrg      93,   102,   242,    93,  -112,     1,     2,     3,     4,     5,
882690143ccSmrg       6,     7,     8,   209,   209,    23,   209,   209,    74,    95,
883690143ccSmrg      95,    29,    30,   235,   109,   215,   216,   217,   218,   225,
884690143ccSmrg     225,    38,   118,    39,    95,    93,    93,   222,   168,    45,
885690143ccSmrg      46,    47,    48,    49,   225,    91,    91,    95,    91,   105,
886690143ccSmrg      93,   123,    95,    91,   115,    91,   257,   200,    91,   251,
887690143ccSmrg     253,   285,   225,    93,   -14,   252,   254,   254,    93,    54,
888690143ccSmrg     126,   127,   124,   125,   326,   317,    45,    46,    47,    48,
889690143ccSmrg      49,   254,   183,   215,   216,   217,   218,   217,   218,   128,
890690143ccSmrg      91,    91,   214,   229,   121,   223,   122,   196,   182,   129,
891690143ccSmrg     159,    95,   169,   170,   130,    91,   131,   172,   323,   132,
892690143ccSmrg     176,   295,   133,   185,   324,   188,   134,    93,    91,   215,
893690143ccSmrg     216,   217,   218,    91,   109,   135,   215,   216,   217,   218,
894690143ccSmrg     327,   240,   136,   211,   332,   137,   328,   314,   243,   138,
895690143ccSmrg     242,    95,   215,   216,   217,   218,   208,   210,   321,   212,
896690143ccSmrg     213,   295,   139,    91,   300,   141,   142,    93,   221,   215,
897690143ccSmrg     216,   217,   218,   314,   331,   206,   220,   321,   219,   238,
898690143ccSmrg     239,   191,    91,   143,   144,    58,   145,   255,   146,   147,
899690143ccSmrg     148,   149,  -127,    65,   150,   260,   151,   215,   216,   217,
900690143ccSmrg     218,   229,   152,   153,   265,   266,   267,   268,   154,   269,
901690143ccSmrg     270,   256,   271,   272,  -179,   155,   156,   102,   105,   157,
902690143ccSmrg      73,    74,    91,    75,   273,   276,   277,   281,   298,   278,
903690143ccSmrg     287,   283,   282,   284,    55,    56,    57,    58,    59,    60,
904690143ccSmrg      61,    62,    63,    64,   293,    65,    66,   288,    67,    68,
905690143ccSmrg      69,    70,    71,   215,   216,   217,   218,   290,   143,   144,
906690143ccSmrg      58,   145,   303,   146,   147,   148,   149,    72,    65,   150,
907690143ccSmrg     299,   151,    73,    74,   301,    75,   302,   152,   153,   215,
908690143ccSmrg     216,   217,   218,   154,   242,   177,   262,   309,   315,   316,
909690143ccSmrg     155,   156,   102,   105,   157,    73,    74,   322,    75,   143,
910690143ccSmrg     144,    58,   145,   325,   146,   147,   148,   149,   329,    65,
911690143ccSmrg     150,   333,   151,    24,    25,    26,    27,    28,   152,   153,
912690143ccSmrg      19,    34,   292,    43,   154,    33,    44,   171,   279,    85,
913690143ccSmrg     259,   155,   156,   102,   105,   157,    73,    74,   280,    75,
914690143ccSmrg     143,   144,    58,   145,   311,   146,   147,   197,   149,   289,
915690143ccSmrg     198,   150,   199,    67,    68,    69,    70,   330,   334,   291,
916690143ccSmrg     143,   144,    58,   145,   258,   146,   147,   148,   149,   294,
917690143ccSmrg      65,   150,    72,   151,    89,   307,   304,    73,     0,   286,
918690143ccSmrg      75,     0,   305,     0,   310,     0,     0,     0,   143,   144,
919690143ccSmrg      58,   145,    72,   146,   147,   148,   149,    73,    65,   150,
920690143ccSmrg      75,   151,     0,   143,   144,    58,   145,     0,   146,   147,
921690143ccSmrg     148,   149,     0,    65,   150,   177,   151,     0,     0,     0,
922690143ccSmrg     178,     0,     0,     0,     0,    73,     0,   224,    75,     0,
923690143ccSmrg       0,   143,   144,    58,   145,    72,   146,   147,   148,   149,
924690143ccSmrg      73,    65,   150,    75,   151,     0,   143,   144,    58,   145,
925690143ccSmrg       0,   146,   147,   148,   149,   226,    65,   150,     0,   151,
926690143ccSmrg       0,     0,     0,    72,     0,     0,     0,     0,    73,     0,
927690143ccSmrg     244,    75,     0,     0,   143,   144,    58,   145,    72,   146,
928690143ccSmrg     147,   148,   149,    73,    65,   150,    75,   151,     0,     0,
929690143ccSmrg       0,     0,     0,     0,   143,   144,    58,   145,   261,   146,
930690143ccSmrg     147,   148,   149,   294,    65,   150,    72,   151,     0,     0,
931690143ccSmrg       0,    73,     0,     0,    75,     0,     0,   143,   144,    58,
932690143ccSmrg     145,     0,   146,   147,   148,   149,    72,    65,   150,     0,
933690143ccSmrg     151,    73,     0,     0,    75,   143,   144,    58,   145,     0,
934690143ccSmrg     146,   147,   148,   149,     0,    65,   227,     0,   151,    72,
935690143ccSmrg       0,     0,     0,     0,    73,     0,     0,    75,   143,   144,
936690143ccSmrg      58,   145,    53,   146,   147,   148,   149,     0,    65,   150,
937690143ccSmrg     105,   151,   228,     0,     0,    75,     0,     1,     2,     3,
938690143ccSmrg       4,     5,     6,     7,     8,     1,     2,     3,     4,     5,
939690143ccSmrg       6,     7,     8,     0,     0,    73,     0,     0,    75,    23,
940690143ccSmrg      24,    25,    26,    27,    28,    29,    30
941f46a6179Smrg};
942690143ccSmrg
943690143ccSmrgstatic const yytype_int16 yycheck[] =
944690143ccSmrg{
945690143ccSmrg      51,   135,   177,   190,     0,    12,    51,    41,    59,    60,
946690143ccSmrg      55,    29,     0,    41,    57,    41,    51,    62,    61,    45,
947690143ccSmrg      63,    55,    51,    56,    58,    52,    53,    72,    56,    55,
948690143ccSmrg      63,    64,    58,    66,    49,    53,    43,    55,     0,    18,
949690143ccSmrg      19,    20,    21,    52,    23,    24,    25,    26,    10,    28,
950690143ccSmrg      29,    30,    31,    32,    33,    34,    55,    90,     0,    58,
951690143ccSmrg      41,    57,    58,    59,    60,    61,    62,    63,    64,    53,
952690143ccSmrg      54,    50,    42,    38,    42,   118,    55,    51,    48,    58,
953690143ccSmrg      48,   126,   133,   130,   129,   130,    41,   132,    53,    54,
954690143ccSmrg     137,    52,   137,   138,   139,   142,    45,   142,    47,    49,
955690143ccSmrg     129,   130,   277,   132,   139,   292,    42,    46,   137,    48,
956690143ccSmrg     139,    52,    48,   142,    52,    57,    58,    59,    60,    61,
957690143ccSmrg      62,    63,    64,   152,   153,     4,   155,   156,    56,   174,
958690143ccSmrg     175,    10,    11,   178,   177,    37,    38,    39,    40,   174,
959690143ccSmrg     175,    32,    25,    34,   189,   174,   175,    49,   122,    12,
960690143ccSmrg      13,    14,    15,    16,   189,   129,   130,   202,   132,    53,
961690143ccSmrg     189,    36,   207,   137,   197,   139,   199,   202,   142,    42,
962690143ccSmrg      42,    42,   207,   202,     0,    48,    48,    48,   207,    42,
963690143ccSmrg      48,    49,    36,    49,   318,    42,    12,    13,    14,    15,
964690143ccSmrg      16,    48,   237,    37,    38,    39,    40,    39,    40,    36,
965690143ccSmrg     174,   175,    43,   177,    45,    49,    47,   252,   237,    41,
966690143ccSmrg     121,   256,   123,   124,    41,   189,    37,   128,    42,    41,
967690143ccSmrg     131,   256,    36,   134,    48,   136,    36,   256,   202,    37,
968690143ccSmrg      38,    39,    40,   207,   277,    41,    37,    38,    39,    40,
969690143ccSmrg      42,    49,    36,   154,    42,    41,    48,   298,    49,    41,
970690143ccSmrg      48,   296,    37,    38,    39,    40,   152,   153,   309,   155,
971690143ccSmrg     156,   296,    41,   237,    49,    49,    41,   296,    45,    37,
972690143ccSmrg      38,    39,    40,   324,   325,    36,    36,   328,    46,    36,
973690143ccSmrg      49,    45,   256,    18,    19,    20,    21,    36,    23,    24,
974690143ccSmrg      25,    26,    43,    28,    29,   206,    31,    37,    38,    39,
975690143ccSmrg      40,   275,    37,    38,   215,   216,   217,   218,    43,   220,
976690143ccSmrg     221,    41,    49,    49,    43,    50,    51,    52,    53,    54,
977690143ccSmrg      55,    56,   296,    58,    43,    46,    48,   238,    41,    49,
978690143ccSmrg      48,   242,    49,    49,    17,    18,    19,    20,    21,    22,
979690143ccSmrg      23,    24,    25,    26,   255,    28,    29,    49,    31,    32,
980690143ccSmrg      33,    34,    35,    37,    38,    39,    40,    49,    18,    19,
981690143ccSmrg      20,    21,    46,    23,    24,    25,    26,    50,    28,    29,
982690143ccSmrg      49,    31,    55,    56,    49,    58,    44,    37,    38,    37,
983690143ccSmrg      38,    39,    40,    43,    48,    45,    44,    41,    44,    46,
984690143ccSmrg      50,    51,    52,    53,    54,    55,    56,    49,    58,    18,
985690143ccSmrg      19,    20,    21,    36,    23,    24,    25,    26,    49,    28,
986690143ccSmrg      29,    49,    31,     5,     6,     7,     8,     9,    37,    38,
987690143ccSmrg      10,    22,    41,    40,    43,    16,    41,   126,   237,    51,
988690143ccSmrg     202,    50,    51,    52,    53,    54,    55,    56,   238,    58,
989690143ccSmrg      18,    19,    20,    21,   296,    23,    24,    25,    26,   252,
990690143ccSmrg      28,    29,    30,    31,    32,    33,    34,   324,   328,   254,
991690143ccSmrg      18,    19,    20,    21,    42,    23,    24,    25,    26,    27,
992690143ccSmrg      28,    29,    50,    31,    51,   287,   273,    55,    -1,   246,
993690143ccSmrg      58,    -1,   275,    -1,    42,    -1,    -1,    -1,    18,    19,
994690143ccSmrg      20,    21,    50,    23,    24,    25,    26,    55,    28,    29,
995690143ccSmrg      58,    31,    -1,    18,    19,    20,    21,    -1,    23,    24,
996690143ccSmrg      25,    26,    -1,    28,    29,    45,    31,    -1,    -1,    -1,
997690143ccSmrg      50,    -1,    -1,    -1,    -1,    55,    -1,    42,    58,    -1,
998690143ccSmrg      -1,    18,    19,    20,    21,    50,    23,    24,    25,    26,
999690143ccSmrg      55,    28,    29,    58,    31,    -1,    18,    19,    20,    21,
1000690143ccSmrg      -1,    23,    24,    25,    26,    42,    28,    29,    -1,    31,
1001690143ccSmrg      -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    55,    -1,
1002690143ccSmrg      42,    58,    -1,    -1,    18,    19,    20,    21,    50,    23,
1003690143ccSmrg      24,    25,    26,    55,    28,    29,    58,    31,    -1,    -1,
1004690143ccSmrg      -1,    -1,    -1,    -1,    18,    19,    20,    21,    42,    23,
1005690143ccSmrg      24,    25,    26,    27,    28,    29,    50,    31,    -1,    -1,
1006690143ccSmrg      -1,    55,    -1,    -1,    58,    -1,    -1,    18,    19,    20,
1007690143ccSmrg      21,    -1,    23,    24,    25,    26,    50,    28,    29,    -1,
1008690143ccSmrg      31,    55,    -1,    -1,    58,    18,    19,    20,    21,    -1,
1009690143ccSmrg      23,    24,    25,    26,    -1,    28,    29,    -1,    31,    50,
1010690143ccSmrg      -1,    -1,    -1,    -1,    55,    -1,    -1,    58,    18,    19,
1011690143ccSmrg      20,    21,    42,    23,    24,    25,    26,    -1,    28,    29,
1012690143ccSmrg      53,    31,    55,    -1,    -1,    58,    -1,    57,    58,    59,
1013690143ccSmrg      60,    61,    62,    63,    64,    57,    58,    59,    60,    61,
1014690143ccSmrg      62,    63,    64,    -1,    -1,    55,    -1,    -1,    58,     4,
1015690143ccSmrg       5,     6,     7,     8,     9,    10,    11
1016f46a6179Smrg};
1017f46a6179Smrg
1018690143ccSmrg/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1019690143ccSmrg   symbol of state STATE-NUM.  */
1020690143ccSmrgstatic const yytype_uint8 yystos[] =
1021690143ccSmrg{
1022690143ccSmrg       0,    57,    58,    59,    60,    61,    62,    63,    64,    66,
1023690143ccSmrg      67,    68,    70,    71,    72,    74,    75,    76,     0,    68,
1024690143ccSmrg      74,    71,    74,     4,     5,     6,     7,     8,     9,    10,
1025690143ccSmrg      11,    69,    73,    76,    73,    52,   136,   137,   136,   136,
1026690143ccSmrg      41,    41,    77,    70,    77,    12,    13,    14,    15,    16,
1027690143ccSmrg      78,   116,   117,    42,    42,    17,    18,    19,    20,    21,
1028690143ccSmrg      22,    23,    24,    25,    26,    28,    29,    31,    32,    33,
1029690143ccSmrg      34,    35,    50,    55,    56,    58,    79,    80,    81,    82,
1030690143ccSmrg      85,    88,    89,    93,    94,    95,    96,    97,    98,   112,
1031690143ccSmrg     113,   114,   115,   124,   133,   134,    52,    49,    49,    83,
1032690143ccSmrg      84,   134,    52,   135,    29,    53,    55,    86,   128,   132,
1033690143ccSmrg     133,   133,   132,   134,   132,   135,   135,   135,    25,   134,
1034690143ccSmrg     135,    45,    47,    36,    36,    49,    48,    49,    36,    41,
1035690143ccSmrg      41,    37,    41,    36,    36,    41,    36,    41,    41,    41,
1036690143ccSmrg     132,    49,    41,    18,    19,    21,    23,    24,    25,    26,
1037690143ccSmrg      29,    31,    37,    38,    43,    50,    51,    54,   114,   120,
1038690143ccSmrg     121,   124,   125,   131,   132,   133,   134,   135,   114,   120,
1039690143ccSmrg     120,    84,   120,    79,    87,    87,   120,    45,    50,    90,
1040690143ccSmrg      91,    92,   124,   134,   133,   120,   119,   120,   120,    87,
1041690143ccSmrg      41,    45,   108,   109,   110,   111,   134,    25,    28,    30,
1042690143ccSmrg      79,    95,    99,   100,   105,   112,    36,    87,   121,   124,
1043690143ccSmrg     121,   120,   121,   121,    43,    37,    38,    39,    40,    46,
1044690143ccSmrg      36,    45,    49,    49,    42,    79,    42,    29,    55,   114,
1045690143ccSmrg     122,   123,   126,   127,   128,   134,    42,    48,    36,    49,
1046690143ccSmrg      49,    42,    48,    49,    42,   110,    38,    53,    54,   129,
1047690143ccSmrg     130,    42,    48,    42,    48,    36,    41,   135,    42,   100,
1048690143ccSmrg     120,    42,    44,   118,   119,   120,   120,   120,   120,   120,
1049690143ccSmrg     120,    49,    49,    43,    46,    48,    46,    48,    49,    91,
1050690143ccSmrg      92,   120,    49,   120,    49,    42,   130,    48,    49,   109,
1051690143ccSmrg      49,   111,    41,   120,    27,    79,   101,   102,    41,    49,
1052690143ccSmrg      49,    49,    44,    46,   118,   123,   128,   129,   110,    41,
1053690143ccSmrg      42,   102,   106,   107,   133,    44,    46,    42,    41,   103,
1054690143ccSmrg     104,   133,    49,    42,    48,    36,   119,    42,    48,    49,
1055690143ccSmrg     107,   133,    42,    49,   104
1056f46a6179Smrg};
1057690143ccSmrg
1058690143ccSmrg#define yyerrok		(yyerrstatus = 0)
1059690143ccSmrg#define yyclearin	(yychar = YYEMPTY)
1060690143ccSmrg#define YYEMPTY		(-2)
1061690143ccSmrg#define YYEOF		0
1062690143ccSmrg
1063690143ccSmrg#define YYACCEPT	goto yyacceptlab
1064690143ccSmrg#define YYABORT		goto yyabortlab
1065690143ccSmrg#define YYERROR		goto yyerrorlab
1066690143ccSmrg
1067690143ccSmrg
1068690143ccSmrg/* Like YYERROR except do call yyerror.  This remains here temporarily
1069690143ccSmrg   to ease the transition to the new meaning of YYERROR, for GCC.
1070690143ccSmrg   Once GCC version 2 has supplanted version 1, this can go.  */
1071690143ccSmrg
1072690143ccSmrg#define YYFAIL		goto yyerrlab
1073690143ccSmrg
1074690143ccSmrg#define YYRECOVERING()  (!!yyerrstatus)
1075690143ccSmrg
1076690143ccSmrg#define YYBACKUP(Token, Value)					\
1077690143ccSmrgdo								\
1078690143ccSmrg  if (yychar == YYEMPTY && yylen == 1)				\
1079690143ccSmrg    {								\
1080690143ccSmrg      yychar = (Token);						\
1081690143ccSmrg      yylval = (Value);						\
1082690143ccSmrg      yytoken = YYTRANSLATE (yychar);				\
1083690143ccSmrg      YYPOPSTACK (1);						\
1084690143ccSmrg      goto yybackup;						\
1085690143ccSmrg    }								\
1086690143ccSmrg  else								\
1087690143ccSmrg    {								\
1088690143ccSmrg      yyerror (YY_("syntax error: cannot back up")); \
1089690143ccSmrg      YYERROR;							\
1090690143ccSmrg    }								\
1091690143ccSmrgwhile (YYID (0))
1092690143ccSmrg
1093690143ccSmrg
1094690143ccSmrg#define YYTERROR	1
1095690143ccSmrg#define YYERRCODE	256
1096690143ccSmrg
1097690143ccSmrg
1098690143ccSmrg/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1099690143ccSmrg   If N is 0, then set CURRENT to the empty location which ends
1100690143ccSmrg   the previous symbol: RHS[0] (always defined).  */
1101690143ccSmrg
1102690143ccSmrg#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1103690143ccSmrg#ifndef YYLLOC_DEFAULT
1104690143ccSmrg# define YYLLOC_DEFAULT(Current, Rhs, N)				\
1105690143ccSmrg    do									\
1106690143ccSmrg      if (YYID (N))                                                    \
1107690143ccSmrg	{								\
1108690143ccSmrg	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
1109690143ccSmrg	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
1110690143ccSmrg	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
1111690143ccSmrg	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
1112690143ccSmrg	}								\
1113690143ccSmrg      else								\
1114690143ccSmrg	{								\
1115690143ccSmrg	  (Current).first_line   = (Current).last_line   =		\
1116690143ccSmrg	    YYRHSLOC (Rhs, 0).last_line;				\
1117690143ccSmrg	  (Current).first_column = (Current).last_column =		\
1118690143ccSmrg	    YYRHSLOC (Rhs, 0).last_column;				\
1119690143ccSmrg	}								\
1120690143ccSmrg    while (YYID (0))
1121f46a6179Smrg#endif
1122690143ccSmrg
1123690143ccSmrg
1124690143ccSmrg/* YY_LOCATION_PRINT -- Print the location on the stream.
1125690143ccSmrg   This macro was not mandated originally: define only if we know
1126690143ccSmrg   we won't break user code: when these are the locations we know.  */
1127690143ccSmrg
1128690143ccSmrg#ifndef YY_LOCATION_PRINT
1129690143ccSmrg# if YYLTYPE_IS_TRIVIAL
1130690143ccSmrg#  define YY_LOCATION_PRINT(File, Loc)			\
1131690143ccSmrg     fprintf (File, "%d.%d-%d.%d",			\
1132690143ccSmrg	      (Loc).first_line, (Loc).first_column,	\
1133690143ccSmrg	      (Loc).last_line,  (Loc).last_column)
1134690143ccSmrg# else
1135690143ccSmrg#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1136690143ccSmrg# endif
1137f46a6179Smrg#endif
1138f46a6179Smrg
1139690143ccSmrg
1140690143ccSmrg/* YYLEX -- calling `yylex' with the right arguments.  */
1141690143ccSmrg
1142690143ccSmrg#ifdef YYLEX_PARAM
1143690143ccSmrg# define YYLEX yylex (YYLEX_PARAM)
1144f46a6179Smrg#else
1145690143ccSmrg# define YYLEX yylex ()
1146f46a6179Smrg#endif
1147f46a6179Smrg
1148690143ccSmrg/* Enable debugging if requested.  */
1149690143ccSmrg#if YYDEBUG
1150f46a6179Smrg
1151690143ccSmrg# ifndef YYFPRINTF
1152690143ccSmrg#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1153690143ccSmrg#  define YYFPRINTF fprintf
1154690143ccSmrg# endif
1155f46a6179Smrg
1156690143ccSmrg# define YYDPRINTF(Args)			\
1157690143ccSmrgdo {						\
1158690143ccSmrg  if (yydebug)					\
1159690143ccSmrg    YYFPRINTF Args;				\
1160690143ccSmrg} while (YYID (0))
1161f46a6179Smrg
1162690143ccSmrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
1163690143ccSmrgdo {									  \
1164690143ccSmrg  if (yydebug)								  \
1165690143ccSmrg    {									  \
1166690143ccSmrg      YYFPRINTF (stderr, "%s ", Title);					  \
1167690143ccSmrg      yy_symbol_print (stderr,						  \
1168690143ccSmrg		  Type, Value); \
1169690143ccSmrg      YYFPRINTF (stderr, "\n");						  \
1170690143ccSmrg    }									  \
1171690143ccSmrg} while (YYID (0))
1172f46a6179Smrg
1173f46a6179Smrg
1174690143ccSmrg/*--------------------------------.
1175690143ccSmrg| Print this symbol on YYOUTPUT.  |
1176690143ccSmrg`--------------------------------*/
1177690143ccSmrg
1178690143ccSmrg/*ARGSUSED*/
1179690143ccSmrg#if (defined __STDC__ || defined __C99__FUNC__ \
1180690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
1181690143ccSmrgstatic void
1182690143ccSmrgyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1183690143ccSmrg#else
1184690143ccSmrgstatic void
1185690143ccSmrgyy_symbol_value_print (yyoutput, yytype, yyvaluep)
1186690143ccSmrg    FILE *yyoutput;
1187690143ccSmrg    int yytype;
1188690143ccSmrg    YYSTYPE const * const yyvaluep;
1189690143ccSmrg#endif
1190f46a6179Smrg{
1191690143ccSmrg  if (!yyvaluep)
119207d2e718Smrg    return;
1193690143ccSmrg# ifdef YYPRINT
1194690143ccSmrg  if (yytype < YYNTOKENS)
1195690143ccSmrg    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1196690143ccSmrg# else
1197690143ccSmrg  YYUSE (yyoutput);
1198690143ccSmrg# endif
1199690143ccSmrg  switch (yytype)
1200690143ccSmrg    {
1201690143ccSmrg      default:
1202690143ccSmrg	break;
1203690143ccSmrg    }
1204f46a6179Smrg}
1205f46a6179Smrg
1206f46a6179Smrg
1207690143ccSmrg/*--------------------------------.
1208690143ccSmrg| Print this symbol on YYOUTPUT.  |
1209690143ccSmrg`--------------------------------*/
1210f46a6179Smrg
1211690143ccSmrg#if (defined __STDC__ || defined __C99__FUNC__ \
1212690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
1213690143ccSmrgstatic void
1214690143ccSmrgyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1215690143ccSmrg#else
1216690143ccSmrgstatic void
1217690143ccSmrgyy_symbol_print (yyoutput, yytype, yyvaluep)
1218690143ccSmrg    FILE *yyoutput;
1219690143ccSmrg    int yytype;
1220690143ccSmrg    YYSTYPE const * const yyvaluep;
1221690143ccSmrg#endif
1222f46a6179Smrg{
1223690143ccSmrg  if (yytype < YYNTOKENS)
1224690143ccSmrg    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1225690143ccSmrg  else
1226690143ccSmrg    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1227f46a6179Smrg
1228690143ccSmrg  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1229690143ccSmrg  YYFPRINTF (yyoutput, ")");
1230f46a6179Smrg}
1231f46a6179Smrg
1232690143ccSmrg/*------------------------------------------------------------------.
1233690143ccSmrg| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1234690143ccSmrg| TOP (included).                                                   |
1235690143ccSmrg`------------------------------------------------------------------*/
1236f46a6179Smrg
1237690143ccSmrg#if (defined __STDC__ || defined __C99__FUNC__ \
1238690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
1239690143ccSmrgstatic void
12401d8c7986Smrgyy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
1241690143ccSmrg#else
1242690143ccSmrgstatic void
12431d8c7986Smrgyy_stack_print (bottom, top)
12441d8c7986Smrg    yytype_int16 *bottom;
12451d8c7986Smrg    yytype_int16 *top;
1246690143ccSmrg#endif
1247f46a6179Smrg{
1248690143ccSmrg  YYFPRINTF (stderr, "Stack now");
12491d8c7986Smrg  for (; bottom <= top; ++bottom)
12501d8c7986Smrg    YYFPRINTF (stderr, " %d", *bottom);
1251690143ccSmrg  YYFPRINTF (stderr, "\n");
1252690143ccSmrg}
1253f46a6179Smrg
1254690143ccSmrg# define YY_STACK_PRINT(Bottom, Top)				\
1255690143ccSmrgdo {								\
1256690143ccSmrg  if (yydebug)							\
1257690143ccSmrg    yy_stack_print ((Bottom), (Top));				\
1258690143ccSmrg} while (YYID (0))
1259f46a6179Smrg
1260f46a6179Smrg
1261690143ccSmrg/*------------------------------------------------.
1262690143ccSmrg| Report that the YYRULE is going to be reduced.  |
1263690143ccSmrg`------------------------------------------------*/
1264f46a6179Smrg
1265690143ccSmrg#if (defined __STDC__ || defined __C99__FUNC__ \
1266690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
1267690143ccSmrgstatic void
1268690143ccSmrgyy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1269690143ccSmrg#else
1270690143ccSmrgstatic void
1271690143ccSmrgyy_reduce_print (yyvsp, yyrule)
1272690143ccSmrg    YYSTYPE *yyvsp;
1273690143ccSmrg    int yyrule;
127407d2e718Smrg#endif
1275690143ccSmrg{
1276690143ccSmrg  int yynrhs = yyr2[yyrule];
1277690143ccSmrg  int yyi;
1278690143ccSmrg  unsigned long int yylno = yyrline[yyrule];
1279690143ccSmrg  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1280690143ccSmrg	     yyrule - 1, yylno);
1281690143ccSmrg  /* The symbols being reduced.  */
1282690143ccSmrg  for (yyi = 0; yyi < yynrhs; yyi++)
1283f46a6179Smrg    {
12841d8c7986Smrg      fprintf (stderr, "   $%d = ", yyi + 1);
1285690143ccSmrg      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1286690143ccSmrg		       &(yyvsp[(yyi + 1) - (yynrhs)])
1287690143ccSmrg		       		       );
12881d8c7986Smrg      fprintf (stderr, "\n");
1289f46a6179Smrg    }
1290690143ccSmrg}
1291f46a6179Smrg
1292690143ccSmrg# define YY_REDUCE_PRINT(Rule)		\
1293690143ccSmrgdo {					\
1294690143ccSmrg  if (yydebug)				\
1295690143ccSmrg    yy_reduce_print (yyvsp, Rule); \
1296690143ccSmrg} while (YYID (0))
1297f46a6179Smrg
1298690143ccSmrg/* Nonzero means print parse trace.  It is left uninitialized so that
1299690143ccSmrg   multiple parsers can coexist.  */
1300690143ccSmrgint yydebug;
1301690143ccSmrg#else /* !YYDEBUG */
1302690143ccSmrg# define YYDPRINTF(Args)
1303690143ccSmrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1304690143ccSmrg# define YY_STACK_PRINT(Bottom, Top)
1305690143ccSmrg# define YY_REDUCE_PRINT(Rule)
1306690143ccSmrg#endif /* !YYDEBUG */
1307f46a6179Smrg
1308f46a6179Smrg
1309690143ccSmrg/* YYINITDEPTH -- initial size of the parser's stacks.  */
1310690143ccSmrg#ifndef	YYINITDEPTH
1311690143ccSmrg# define YYINITDEPTH 200
131207d2e718Smrg#endif
1313690143ccSmrg
1314690143ccSmrg/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1315690143ccSmrg   if the built-in stack extension method is used).
1316690143ccSmrg
1317690143ccSmrg   Do not make this value too large; the results are undefined if
1318690143ccSmrg   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1319690143ccSmrg   evaluated with infinite-precision integer arithmetic.  */
1320690143ccSmrg
1321690143ccSmrg#ifndef YYMAXDEPTH
1322690143ccSmrg# define YYMAXDEPTH 10000
1323690143ccSmrg#endif
1324690143ccSmrg
1325690143ccSmrg
1326690143ccSmrg
1327690143ccSmrg#if YYERROR_VERBOSE
1328690143ccSmrg
1329690143ccSmrg# ifndef yystrlen
1330690143ccSmrg#  if defined __GLIBC__ && defined _STRING_H
1331690143ccSmrg#   define yystrlen strlen
1332690143ccSmrg#  else
1333690143ccSmrg/* Return the length of YYSTR.  */
1334690143ccSmrg#if (defined __STDC__ || defined __C99__FUNC__ \
1335690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
1336690143ccSmrgstatic YYSIZE_T
1337690143ccSmrgyystrlen (const char *yystr)
1338690143ccSmrg#else
1339690143ccSmrgstatic YYSIZE_T
1340690143ccSmrgyystrlen (yystr)
1341690143ccSmrg    const char *yystr;
134207d2e718Smrg#endif
1343690143ccSmrg{
1344690143ccSmrg  YYSIZE_T yylen;
1345690143ccSmrg  for (yylen = 0; yystr[yylen]; yylen++)
1346690143ccSmrg    continue;
1347690143ccSmrg  return yylen;
1348690143ccSmrg}
1349690143ccSmrg#  endif
1350690143ccSmrg# endif
1351690143ccSmrg
1352690143ccSmrg# ifndef yystpcpy
1353690143ccSmrg#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1354690143ccSmrg#   define yystpcpy stpcpy
1355690143ccSmrg#  else
1356690143ccSmrg/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1357690143ccSmrg   YYDEST.  */
1358690143ccSmrg#if (defined __STDC__ || defined __C99__FUNC__ \
1359690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
1360690143ccSmrgstatic char *
1361690143ccSmrgyystpcpy (char *yydest, const char *yysrc)
1362690143ccSmrg#else
1363690143ccSmrgstatic char *
1364690143ccSmrgyystpcpy (yydest, yysrc)
1365690143ccSmrg    char *yydest;
1366690143ccSmrg    const char *yysrc;
1367690143ccSmrg#endif
1368690143ccSmrg{
1369690143ccSmrg  char *yyd = yydest;
1370690143ccSmrg  const char *yys = yysrc;
1371690143ccSmrg
1372690143ccSmrg  while ((*yyd++ = *yys++) != '\0')
1373690143ccSmrg    continue;
1374690143ccSmrg
1375690143ccSmrg  return yyd - 1;
1376690143ccSmrg}
1377690143ccSmrg#  endif
1378690143ccSmrg# endif
1379690143ccSmrg
1380690143ccSmrg# ifndef yytnamerr
1381690143ccSmrg/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1382690143ccSmrg   quotes and backslashes, so that it's suitable for yyerror.  The
1383690143ccSmrg   heuristic is that double-quoting is unnecessary unless the string
1384690143ccSmrg   contains an apostrophe, a comma, or backslash (other than
1385690143ccSmrg   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1386690143ccSmrg   null, do not copy; instead, return the length of what the result
1387690143ccSmrg   would have been.  */
1388690143ccSmrgstatic YYSIZE_T
1389690143ccSmrgyytnamerr (char *yyres, const char *yystr)
1390690143ccSmrg{
1391690143ccSmrg  if (*yystr == '"')
1392690143ccSmrg    {
1393690143ccSmrg      YYSIZE_T yyn = 0;
1394690143ccSmrg      char const *yyp = yystr;
1395690143ccSmrg
1396690143ccSmrg      for (;;)
1397690143ccSmrg	switch (*++yyp)
1398690143ccSmrg	  {
1399690143ccSmrg	  case '\'':
1400690143ccSmrg	  case ',':
1401690143ccSmrg	    goto do_not_strip_quotes;
1402690143ccSmrg
1403690143ccSmrg	  case '\\':
1404690143ccSmrg	    if (*++yyp != '\\')
1405690143ccSmrg	      goto do_not_strip_quotes;
1406690143ccSmrg	    /* Fall through.  */
1407690143ccSmrg	  default:
1408690143ccSmrg	    if (yyres)
1409690143ccSmrg	      yyres[yyn] = *yyp;
1410690143ccSmrg	    yyn++;
1411690143ccSmrg	    break;
1412690143ccSmrg
1413690143ccSmrg	  case '"':
1414690143ccSmrg	    if (yyres)
1415690143ccSmrg	      yyres[yyn] = '\0';
1416690143ccSmrg	    return yyn;
1417690143ccSmrg	  }
1418690143ccSmrg    do_not_strip_quotes: ;
141907d2e718Smrg    }
1420690143ccSmrg
1421690143ccSmrg  if (! yyres)
1422690143ccSmrg    return yystrlen (yystr);
1423690143ccSmrg
1424690143ccSmrg  return yystpcpy (yyres, yystr) - yyres;
1425690143ccSmrg}
1426690143ccSmrg# endif
1427690143ccSmrg
1428690143ccSmrg/* Copy into YYRESULT an error message about the unexpected token
1429690143ccSmrg   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
1430690143ccSmrg   including the terminating null byte.  If YYRESULT is null, do not
1431690143ccSmrg   copy anything; just return the number of bytes that would be
1432690143ccSmrg   copied.  As a special case, return 0 if an ordinary "syntax error"
1433690143ccSmrg   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
1434690143ccSmrg   size calculation.  */
1435690143ccSmrgstatic YYSIZE_T
1436690143ccSmrgyysyntax_error (char *yyresult, int yystate, int yychar)
1437690143ccSmrg{
1438690143ccSmrg  int yyn = yypact[yystate];
1439690143ccSmrg
1440690143ccSmrg  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1441690143ccSmrg    return 0;
1442690143ccSmrg  else
144307d2e718Smrg    {
1444690143ccSmrg      int yytype = YYTRANSLATE (yychar);
1445690143ccSmrg      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1446690143ccSmrg      YYSIZE_T yysize = yysize0;
1447690143ccSmrg      YYSIZE_T yysize1;
1448690143ccSmrg      int yysize_overflow = 0;
1449690143ccSmrg      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1450690143ccSmrg      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1451690143ccSmrg      int yyx;
1452690143ccSmrg
1453690143ccSmrg# if 0
1454690143ccSmrg      /* This is so xgettext sees the translatable formats that are
1455690143ccSmrg	 constructed on the fly.  */
1456690143ccSmrg      YY_("syntax error, unexpected %s");
1457690143ccSmrg      YY_("syntax error, unexpected %s, expecting %s");
1458690143ccSmrg      YY_("syntax error, unexpected %s, expecting %s or %s");
1459690143ccSmrg      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1460690143ccSmrg      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1461690143ccSmrg# endif
1462690143ccSmrg      char *yyfmt;
1463690143ccSmrg      char const *yyf;
1464690143ccSmrg      static char const yyunexpected[] = "syntax error, unexpected %s";
1465690143ccSmrg      static char const yyexpecting[] = ", expecting %s";
1466690143ccSmrg      static char const yyor[] = " or %s";
1467690143ccSmrg      char yyformat[sizeof yyunexpected
1468690143ccSmrg		    + sizeof yyexpecting - 1
1469690143ccSmrg		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1470690143ccSmrg		       * (sizeof yyor - 1))];
1471690143ccSmrg      char const *yyprefix = yyexpecting;
1472690143ccSmrg
1473690143ccSmrg      /* Start YYX at -YYN if negative to avoid negative indexes in
1474690143ccSmrg	 YYCHECK.  */
1475690143ccSmrg      int yyxbegin = yyn < 0 ? -yyn : 0;
1476690143ccSmrg
1477690143ccSmrg      /* Stay within bounds of both yycheck and yytname.  */
1478690143ccSmrg      int yychecklim = YYLAST - yyn + 1;
1479690143ccSmrg      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1480690143ccSmrg      int yycount = 1;
1481690143ccSmrg
1482690143ccSmrg      yyarg[0] = yytname[yytype];
1483690143ccSmrg      yyfmt = yystpcpy (yyformat, yyunexpected);
1484690143ccSmrg
1485690143ccSmrg      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1486690143ccSmrg	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1487690143ccSmrg	  {
1488690143ccSmrg	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1489690143ccSmrg	      {
1490690143ccSmrg		yycount = 1;
1491690143ccSmrg		yysize = yysize0;
1492690143ccSmrg		yyformat[sizeof yyunexpected - 1] = '\0';
1493690143ccSmrg		break;
1494690143ccSmrg	      }
1495690143ccSmrg	    yyarg[yycount++] = yytname[yyx];
1496690143ccSmrg	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1497690143ccSmrg	    yysize_overflow |= (yysize1 < yysize);
1498690143ccSmrg	    yysize = yysize1;
1499690143ccSmrg	    yyfmt = yystpcpy (yyfmt, yyprefix);
1500690143ccSmrg	    yyprefix = yyor;
1501690143ccSmrg	  }
1502690143ccSmrg
1503690143ccSmrg      yyf = YY_(yyformat);
1504690143ccSmrg      yysize1 = yysize + yystrlen (yyf);
1505690143ccSmrg      yysize_overflow |= (yysize1 < yysize);
1506690143ccSmrg      yysize = yysize1;
1507690143ccSmrg
1508690143ccSmrg      if (yysize_overflow)
1509690143ccSmrg	return YYSIZE_MAXIMUM;
1510690143ccSmrg
1511690143ccSmrg      if (yyresult)
1512690143ccSmrg	{
1513690143ccSmrg	  /* Avoid sprintf, as that infringes on the user's name space.
1514690143ccSmrg	     Don't have undefined behavior even if the translation
1515690143ccSmrg	     produced a string with the wrong number of "%s"s.  */
1516690143ccSmrg	  char *yyp = yyresult;
1517690143ccSmrg	  int yyi = 0;
1518690143ccSmrg	  while ((*yyp = *yyf) != '\0')
1519690143ccSmrg	    {
1520690143ccSmrg	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1521690143ccSmrg		{
1522690143ccSmrg		  yyp += yytnamerr (yyp, yyarg[yyi++]);
1523690143ccSmrg		  yyf += 2;
1524690143ccSmrg		}
1525690143ccSmrg	      else
1526690143ccSmrg		{
1527690143ccSmrg		  yyp++;
1528690143ccSmrg		  yyf++;
1529690143ccSmrg		}
1530690143ccSmrg	    }
1531690143ccSmrg	}
1532690143ccSmrg      return yysize;
1533690143ccSmrg    }
1534690143ccSmrg}
1535690143ccSmrg#endif /* YYERROR_VERBOSE */
1536690143ccSmrg
1537690143ccSmrg
1538690143ccSmrg/*-----------------------------------------------.
1539690143ccSmrg| Release the memory associated to this symbol.  |
1540690143ccSmrg`-----------------------------------------------*/
1541690143ccSmrg
1542690143ccSmrg/*ARGSUSED*/
1543690143ccSmrg#if (defined __STDC__ || defined __C99__FUNC__ \
1544690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
1545690143ccSmrgstatic void
1546690143ccSmrgyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1547690143ccSmrg#else
1548690143ccSmrgstatic void
1549690143ccSmrgyydestruct (yymsg, yytype, yyvaluep)
1550690143ccSmrg    const char *yymsg;
1551690143ccSmrg    int yytype;
1552690143ccSmrg    YYSTYPE *yyvaluep;
155307d2e718Smrg#endif
1554690143ccSmrg{
1555690143ccSmrg  YYUSE (yyvaluep);
1556690143ccSmrg
1557690143ccSmrg  if (!yymsg)
1558690143ccSmrg    yymsg = "Deleting";
1559690143ccSmrg  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1560690143ccSmrg
1561690143ccSmrg  switch (yytype)
1562690143ccSmrg    {
1563690143ccSmrg
1564690143ccSmrg      default:
1565690143ccSmrg	break;
156607d2e718Smrg    }
1567690143ccSmrg}
15681d8c7986Smrg
1569f46a6179Smrg
1570690143ccSmrg/* Prevent warnings from -Wmissing-prototypes.  */
15711d8c7986Smrg
1572690143ccSmrg#ifdef YYPARSE_PARAM
1573690143ccSmrg#if defined __STDC__ || defined __cplusplus
1574690143ccSmrgint yyparse (void *YYPARSE_PARAM);
1575690143ccSmrg#else
1576690143ccSmrgint yyparse ();
1577690143ccSmrg#endif
1578690143ccSmrg#else /* ! YYPARSE_PARAM */
1579690143ccSmrg#if defined __STDC__ || defined __cplusplus
1580690143ccSmrgint yyparse (void);
1581690143ccSmrg#else
1582690143ccSmrgint yyparse ();
158307d2e718Smrg#endif
1584690143ccSmrg#endif /* ! YYPARSE_PARAM */
1585690143ccSmrg
1586690143ccSmrg
15871d8c7986Smrg
15881d8c7986Smrg/* The look-ahead symbol.  */
1589690143ccSmrgint yychar;
1590690143ccSmrg
15911d8c7986Smrg/* The semantic value of the look-ahead symbol.  */
1592690143ccSmrgYYSTYPE yylval;
1593690143ccSmrg
1594690143ccSmrg/* Number of syntax errors so far.  */
1595690143ccSmrgint yynerrs;
1596690143ccSmrg
1597690143ccSmrg
1598690143ccSmrg
15991d8c7986Smrg/*----------.
16001d8c7986Smrg| yyparse.  |
16011d8c7986Smrg`----------*/
1602690143ccSmrg
1603690143ccSmrg#ifdef YYPARSE_PARAM
1604690143ccSmrg#if (defined __STDC__ || defined __C99__FUNC__ \
1605690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
1606690143ccSmrgint
1607690143ccSmrgyyparse (void *YYPARSE_PARAM)
1608690143ccSmrg#else
1609690143ccSmrgint
1610690143ccSmrgyyparse (YYPARSE_PARAM)
1611690143ccSmrg    void *YYPARSE_PARAM;
1612690143ccSmrg#endif
1613690143ccSmrg#else /* ! YYPARSE_PARAM */
1614690143ccSmrg#if (defined __STDC__ || defined __C99__FUNC__ \
1615690143ccSmrg     || defined __cplusplus || defined _MSC_VER)
1616690143ccSmrgint
1617690143ccSmrgyyparse (void)
1618690143ccSmrg#else
1619690143ccSmrgint
1620690143ccSmrgyyparse ()
1621690143ccSmrg
1622690143ccSmrg#endif
1623690143ccSmrg#endif
1624690143ccSmrg{
16251d8c7986Smrg
16261d8c7986Smrg  int yystate;
16271d8c7986Smrg  int yyn;
16281d8c7986Smrg  int yyresult;
16291d8c7986Smrg  /* Number of tokens to shift before error messages enabled.  */
16301d8c7986Smrg  int yyerrstatus;
16311d8c7986Smrg  /* Look-ahead token as an internal (translated) token number.  */
16321d8c7986Smrg  int yytoken = 0;
16331d8c7986Smrg#if YYERROR_VERBOSE
16341d8c7986Smrg  /* Buffer for error messages, and its allocated size.  */
16351d8c7986Smrg  char yymsgbuf[128];
16361d8c7986Smrg  char *yymsg = yymsgbuf;
16371d8c7986Smrg  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
16381d8c7986Smrg#endif
1639690143ccSmrg
16401d8c7986Smrg  /* Three stacks and their tools:
16411d8c7986Smrg     `yyss': related to states,
16421d8c7986Smrg     `yyvs': related to semantic values,
16431d8c7986Smrg     `yyls': related to locations.
1644690143ccSmrg
16451d8c7986Smrg     Refer to the stacks thru separate pointers, to allow yyoverflow
16461d8c7986Smrg     to reallocate them elsewhere.  */
1647690143ccSmrg
16481d8c7986Smrg  /* The state stack.  */
16491d8c7986Smrg  yytype_int16 yyssa[YYINITDEPTH];
16501d8c7986Smrg  yytype_int16 *yyss = yyssa;
16511d8c7986Smrg  yytype_int16 *yyssp;
1652690143ccSmrg
16531d8c7986Smrg  /* The semantic value stack.  */
16541d8c7986Smrg  YYSTYPE yyvsa[YYINITDEPTH];
16551d8c7986Smrg  YYSTYPE *yyvs = yyvsa;
16561d8c7986Smrg  YYSTYPE *yyvsp;
1657690143ccSmrg
1658690143ccSmrg
1659690143ccSmrg
16601d8c7986Smrg#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
16611d8c7986Smrg
16621d8c7986Smrg  YYSIZE_T yystacksize = YYINITDEPTH;
1663690143ccSmrg
1664690143ccSmrg  /* The variables used to return semantic value and location from the
1665690143ccSmrg     action routines.  */
1666690143ccSmrg  YYSTYPE yyval;
1667690143ccSmrg
1668690143ccSmrg
1669690143ccSmrg  /* The number of symbols on the RHS of the reduced rule.
1670690143ccSmrg     Keep to zero when no symbol should be popped.  */
1671690143ccSmrg  int yylen = 0;
1672690143ccSmrg
1673690143ccSmrg  YYDPRINTF ((stderr, "Starting parse\n"));
1674690143ccSmrg
1675690143ccSmrg  yystate = 0;
1676690143ccSmrg  yyerrstatus = 0;
1677690143ccSmrg  yynerrs = 0;
16781d8c7986Smrg  yychar = YYEMPTY;		/* Cause a token to be read.  */
1679690143ccSmrg
1680690143ccSmrg  /* Initialize stack pointers.
1681690143ccSmrg     Waste one element of value and location stack
1682690143ccSmrg     so that they stay on the same level as the state stack.
1683690143ccSmrg     The wasted elements are never initialized.  */
16841d8c7986Smrg
1685690143ccSmrg  yyssp = yyss;
1686690143ccSmrg  yyvsp = yyvs;
1687690143ccSmrg
1688690143ccSmrg  goto yysetstate;
1689690143ccSmrg
1690690143ccSmrg/*------------------------------------------------------------.
1691690143ccSmrg| yynewstate -- Push a new state, which is found in yystate.  |
1692690143ccSmrg`------------------------------------------------------------*/
1693690143ccSmrg yynewstate:
1694690143ccSmrg  /* In all cases, when you get here, the value and location stacks
1695690143ccSmrg     have just been pushed.  So pushing a state here evens the stacks.  */
1696690143ccSmrg  yyssp++;
1697690143ccSmrg
1698690143ccSmrg yysetstate:
1699690143ccSmrg  *yyssp = yystate;
1700690143ccSmrg
1701690143ccSmrg  if (yyss + yystacksize - 1 <= yyssp)
1702690143ccSmrg    {
1703690143ccSmrg      /* Get the current used size of the three stacks, in elements.  */
1704690143ccSmrg      YYSIZE_T yysize = yyssp - yyss + 1;
1705690143ccSmrg
1706690143ccSmrg#ifdef yyoverflow
1707690143ccSmrg      {
1708690143ccSmrg	/* Give user a chance to reallocate the stack.  Use copies of
1709690143ccSmrg	   these so that the &'s don't force the real ones into
1710690143ccSmrg	   memory.  */
1711690143ccSmrg	YYSTYPE *yyvs1 = yyvs;
1712690143ccSmrg	yytype_int16 *yyss1 = yyss;
1713690143ccSmrg
17141d8c7986Smrg
1715690143ccSmrg	/* Each stack pointer address is followed by the size of the
1716690143ccSmrg	   data in use in that stack, in bytes.  This used to be a
1717690143ccSmrg	   conditional around just the two extra args, but that might
1718690143ccSmrg	   be undefined if yyoverflow is a macro.  */
1719690143ccSmrg	yyoverflow (YY_("memory exhausted"),
1720690143ccSmrg		    &yyss1, yysize * sizeof (*yyssp),
1721690143ccSmrg		    &yyvs1, yysize * sizeof (*yyvsp),
17221d8c7986Smrg
1723690143ccSmrg		    &yystacksize);
1724690143ccSmrg
1725690143ccSmrg	yyss = yyss1;
1726690143ccSmrg	yyvs = yyvs1;
1727690143ccSmrg      }
1728690143ccSmrg#else /* no yyoverflow */
1729690143ccSmrg# ifndef YYSTACK_RELOCATE
1730690143ccSmrg      goto yyexhaustedlab;
1731690143ccSmrg# else
1732690143ccSmrg      /* Extend the stack our own way.  */
1733690143ccSmrg      if (YYMAXDEPTH <= yystacksize)
1734690143ccSmrg	goto yyexhaustedlab;
1735690143ccSmrg      yystacksize *= 2;
1736690143ccSmrg      if (YYMAXDEPTH < yystacksize)
1737690143ccSmrg	yystacksize = YYMAXDEPTH;
1738690143ccSmrg
1739690143ccSmrg      {
1740690143ccSmrg	yytype_int16 *yyss1 = yyss;
1741690143ccSmrg	union yyalloc *yyptr =
1742690143ccSmrg	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1743690143ccSmrg	if (! yyptr)
1744690143ccSmrg	  goto yyexhaustedlab;
17451d8c7986Smrg	YYSTACK_RELOCATE (yyss);
17461d8c7986Smrg	YYSTACK_RELOCATE (yyvs);
17471d8c7986Smrg
1748690143ccSmrg#  undef YYSTACK_RELOCATE
1749690143ccSmrg	if (yyss1 != yyssa)
1750690143ccSmrg	  YYSTACK_FREE (yyss1);
1751690143ccSmrg      }
1752690143ccSmrg# endif
1753690143ccSmrg#endif /* no yyoverflow */
1754690143ccSmrg
1755690143ccSmrg      yyssp = yyss + yysize - 1;
1756690143ccSmrg      yyvsp = yyvs + yysize - 1;
1757690143ccSmrg
17581d8c7986Smrg
1759690143ccSmrg      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1760690143ccSmrg		  (unsigned long int) yystacksize));
1761690143ccSmrg
1762690143ccSmrg      if (yyss + yystacksize - 1 <= yyssp)
1763690143ccSmrg	YYABORT;
1764690143ccSmrg    }
1765690143ccSmrg
1766690143ccSmrg  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1767690143ccSmrg
1768690143ccSmrg  goto yybackup;
1769690143ccSmrg
1770690143ccSmrg/*-----------.
1771690143ccSmrg| yybackup.  |
1772690143ccSmrg`-----------*/
1773690143ccSmrgyybackup:
1774690143ccSmrg
1775690143ccSmrg  /* Do appropriate processing given the current state.  Read a
17761d8c7986Smrg     look-ahead token if we need one and don't already have one.  */
1777690143ccSmrg
17781d8c7986Smrg  /* First try to decide what to do without reference to look-ahead token.  */
1779690143ccSmrg  yyn = yypact[yystate];
1780690143ccSmrg  if (yyn == YYPACT_NINF)
1781690143ccSmrg    goto yydefault;
1782690143ccSmrg
17831d8c7986Smrg  /* Not known => get a look-ahead token if don't already have one.  */
1784690143ccSmrg
17851d8c7986Smrg  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
1786690143ccSmrg  if (yychar == YYEMPTY)
1787690143ccSmrg    {
1788690143ccSmrg      YYDPRINTF ((stderr, "Reading a token: "));
1789690143ccSmrg      yychar = YYLEX;
1790690143ccSmrg    }
1791690143ccSmrg
1792690143ccSmrg  if (yychar <= YYEOF)
1793690143ccSmrg    {
1794690143ccSmrg      yychar = yytoken = YYEOF;
1795690143ccSmrg      YYDPRINTF ((stderr, "Now at end of input.\n"));
1796690143ccSmrg    }
1797690143ccSmrg  else
1798690143ccSmrg    {
1799690143ccSmrg      yytoken = YYTRANSLATE (yychar);
1800690143ccSmrg      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1801690143ccSmrg    }
1802690143ccSmrg
1803690143ccSmrg  /* If the proper action on seeing token YYTOKEN is to reduce or to
1804690143ccSmrg     detect an error, take that action.  */
1805690143ccSmrg  yyn += yytoken;
1806690143ccSmrg  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1807690143ccSmrg    goto yydefault;
1808690143ccSmrg  yyn = yytable[yyn];
1809690143ccSmrg  if (yyn <= 0)
1810690143ccSmrg    {
1811690143ccSmrg      if (yyn == 0 || yyn == YYTABLE_NINF)
1812690143ccSmrg	goto yyerrlab;
1813690143ccSmrg      yyn = -yyn;
1814690143ccSmrg      goto yyreduce;
1815690143ccSmrg    }
1816690143ccSmrg
18171d8c7986Smrg  if (yyn == YYFINAL)
18181d8c7986Smrg    YYACCEPT;
18191d8c7986Smrg
1820690143ccSmrg  /* Count tokens shifted since error; after three, turn off error
1821690143ccSmrg     status.  */
1822690143ccSmrg  if (yyerrstatus)
1823690143ccSmrg    yyerrstatus--;
1824690143ccSmrg
18251d8c7986Smrg  /* Shift the look-ahead token.  */
1826690143ccSmrg  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1827690143ccSmrg
18281d8c7986Smrg  /* Discard the shifted token unless it is eof.  */
18291d8c7986Smrg  if (yychar != YYEOF)
18301d8c7986Smrg    yychar = YYEMPTY;
1831690143ccSmrg
1832690143ccSmrg  yystate = yyn;
1833690143ccSmrg  *++yyvsp = yylval;
1834690143ccSmrg
1835690143ccSmrg  goto yynewstate;
1836690143ccSmrg
1837690143ccSmrg
1838690143ccSmrg/*-----------------------------------------------------------.
1839690143ccSmrg| yydefault -- do the default action for the current state.  |
1840690143ccSmrg`-----------------------------------------------------------*/
1841690143ccSmrgyydefault:
1842690143ccSmrg  yyn = yydefact[yystate];
1843690143ccSmrg  if (yyn == 0)
1844690143ccSmrg    goto yyerrlab;
1845690143ccSmrg  goto yyreduce;
1846690143ccSmrg
1847690143ccSmrg
1848690143ccSmrg/*-----------------------------.
1849690143ccSmrg| yyreduce -- Do a reduction.  |
1850690143ccSmrg`-----------------------------*/
1851690143ccSmrgyyreduce:
1852690143ccSmrg  /* yyn is the number of a rule to reduce with.  */
1853690143ccSmrg  yylen = yyr2[yyn];
1854690143ccSmrg
1855690143ccSmrg  /* If YYLEN is nonzero, implement the default value of the action:
1856690143ccSmrg     `$$ = $1'.
1857690143ccSmrg
1858690143ccSmrg     Otherwise, the following line sets YYVAL to garbage.
1859690143ccSmrg     This behavior is undocumented and Bison
1860690143ccSmrg     users should not rely upon it.  Assigning to YYVAL
1861690143ccSmrg     unconditionally makes the parser a bit smaller, and it avoids a
1862690143ccSmrg     GCC warning that YYVAL may be used uninitialized.  */
1863690143ccSmrg  yyval = yyvsp[1-yylen];
1864690143ccSmrg
1865690143ccSmrg
1866690143ccSmrg  YY_REDUCE_PRINT (yyn);
1867690143ccSmrg  switch (yyn)
1868f46a6179Smrg    {
1869690143ccSmrg        case 2:
187034345a63Smrg#line 169 "xkbparse.y"
1871690143ccSmrg    { (yyval.file)= rtrnValue= (yyvsp[(1) - (1)].file); }
1872690143ccSmrg    break;
1873690143ccSmrg
1874690143ccSmrg  case 3:
187534345a63Smrg#line 171 "xkbparse.y"
1876690143ccSmrg    { (yyval.file)= rtrnValue= (yyvsp[(1) - (1)].file);  }
1877690143ccSmrg    break;
1878690143ccSmrg
1879690143ccSmrg  case 4:
188034345a63Smrg#line 173 "xkbparse.y"
1881690143ccSmrg    { (yyval.file)= rtrnValue= (yyvsp[(1) - (1)].file); }
1882690143ccSmrg    break;
1883690143ccSmrg
1884690143ccSmrg  case 5:
188534345a63Smrg#line 177 "xkbparse.y"
1886690143ccSmrg    { (yyval.file)= (XkbFile *)AppendStmt(&(yyvsp[(1) - (2)].file)->common,&(yyvsp[(2) - (2)].file)->common); }
1887690143ccSmrg    break;
1888690143ccSmrg
1889690143ccSmrg  case 6:
189034345a63Smrg#line 179 "xkbparse.y"
1891690143ccSmrg    { (yyval.file)= (yyvsp[(1) - (1)].file); }
1892690143ccSmrg    break;
1893690143ccSmrg
1894690143ccSmrg  case 7:
189534345a63Smrg#line 185 "xkbparse.y"
1896690143ccSmrg    { (yyval.file)= CreateXKBFile((yyvsp[(2) - (7)].uval),(yyvsp[(3) - (7)].str),&(yyvsp[(5) - (7)].file)->common,(yyvsp[(1) - (7)].uval)); }
1897690143ccSmrg    break;
1898690143ccSmrg
1899690143ccSmrg  case 8:
190034345a63Smrg#line 188 "xkbparse.y"
1901690143ccSmrg    { (yyval.uval)= XkmKeymapFile; }
1902690143ccSmrg    break;
1903690143ccSmrg
1904690143ccSmrg  case 9:
190534345a63Smrg#line 189 "xkbparse.y"
1906690143ccSmrg    { (yyval.uval)= XkmSemanticsFile; }
1907690143ccSmrg    break;
1908690143ccSmrg
1909690143ccSmrg  case 10:
191034345a63Smrg#line 190 "xkbparse.y"
1911690143ccSmrg    { (yyval.uval)= XkmLayoutFile; }
1912690143ccSmrg    break;
1913690143ccSmrg
1914690143ccSmrg  case 11:
191534345a63Smrg#line 194 "xkbparse.y"
1916690143ccSmrg    { (yyval.file)= (XkbFile *)AppendStmt(&(yyvsp[(1) - (2)].file)->common,&(yyvsp[(2) - (2)].file)->common); }
1917690143ccSmrg    break;
1918690143ccSmrg
1919690143ccSmrg  case 12:
192034345a63Smrg#line 196 "xkbparse.y"
1921690143ccSmrg    { (yyval.file)= (yyvsp[(1) - (1)].file); }
1922690143ccSmrg    break;
1923690143ccSmrg
1924690143ccSmrg  case 13:
192534345a63Smrg#line 202 "xkbparse.y"
1926690143ccSmrg    { (yyval.file)= CreateXKBFile((yyvsp[(2) - (7)].uval),(yyvsp[(3) - (7)].str),(yyvsp[(5) - (7)].any),(yyvsp[(1) - (7)].uval)); }
1927690143ccSmrg    break;
1928690143ccSmrg
1929690143ccSmrg  case 14:
193034345a63Smrg#line 206 "xkbparse.y"
1931690143ccSmrg    { (yyval.file)= CreateXKBFile((yyvsp[(2) - (4)].uval),(yyvsp[(3) - (4)].str),(yyvsp[(4) - (4)].any),(yyvsp[(1) - (4)].uval)); }
1932690143ccSmrg    break;
1933690143ccSmrg
1934690143ccSmrg  case 15:
193534345a63Smrg#line 210 "xkbparse.y"
1936690143ccSmrg    { (yyval.uval)= XkmKeyNamesIndex; }
1937690143ccSmrg    break;
1938690143ccSmrg
1939690143ccSmrg  case 16:
194034345a63Smrg#line 211 "xkbparse.y"
1941690143ccSmrg    { (yyval.uval)= XkmTypesIndex; }
1942690143ccSmrg    break;
1943690143ccSmrg
1944690143ccSmrg  case 17:
194534345a63Smrg#line 212 "xkbparse.y"
1946690143ccSmrg    { (yyval.uval)= XkmCompatMapIndex; }
1947690143ccSmrg    break;
1948690143ccSmrg
1949690143ccSmrg  case 18:
195034345a63Smrg#line 213 "xkbparse.y"
1951690143ccSmrg    { (yyval.uval)= XkmSymbolsIndex; }
1952690143ccSmrg    break;
1953690143ccSmrg
1954690143ccSmrg  case 19:
195534345a63Smrg#line 214 "xkbparse.y"
1956690143ccSmrg    { (yyval.uval)= XkmGeometryIndex; }
1957690143ccSmrg    break;
1958690143ccSmrg
1959690143ccSmrg  case 20:
196034345a63Smrg#line 217 "xkbparse.y"
1961690143ccSmrg    { (yyval.uval)= (yyvsp[(1) - (1)].uval); }
1962690143ccSmrg    break;
1963690143ccSmrg
1964690143ccSmrg  case 21:
196534345a63Smrg#line 218 "xkbparse.y"
1966690143ccSmrg    { (yyval.uval)= 0; }
1967690143ccSmrg    break;
1968690143ccSmrg
1969690143ccSmrg  case 22:
197034345a63Smrg#line 221 "xkbparse.y"
1971690143ccSmrg    { (yyval.uval)= (((yyvsp[(1) - (2)].uval))|((yyvsp[(2) - (2)].uval))); }
1972690143ccSmrg    break;
1973690143ccSmrg
1974690143ccSmrg  case 23:
197534345a63Smrg#line 222 "xkbparse.y"
1976690143ccSmrg    { (yyval.uval)= (yyvsp[(1) - (1)].uval); }
1977690143ccSmrg    break;
1978690143ccSmrg
1979690143ccSmrg  case 24:
198034345a63Smrg#line 225 "xkbparse.y"
1981690143ccSmrg    { (yyval.uval)= XkbLC_Partial; }
1982690143ccSmrg    break;
1983690143ccSmrg
1984690143ccSmrg  case 25:
198534345a63Smrg#line 226 "xkbparse.y"
1986690143ccSmrg    { (yyval.uval)= XkbLC_Default; }
1987690143ccSmrg    break;
1988690143ccSmrg
1989690143ccSmrg  case 26:
199034345a63Smrg#line 227 "xkbparse.y"
1991690143ccSmrg    { (yyval.uval)= XkbLC_Hidden; }
1992690143ccSmrg    break;
1993690143ccSmrg
1994690143ccSmrg  case 27:
199534345a63Smrg#line 228 "xkbparse.y"
1996690143ccSmrg    { (yyval.uval)= XkbLC_AlphanumericKeys; }
1997690143ccSmrg    break;
1998690143ccSmrg
1999690143ccSmrg  case 28:
200034345a63Smrg#line 229 "xkbparse.y"
2001690143ccSmrg    { (yyval.uval)= XkbLC_ModifierKeys; }
2002690143ccSmrg    break;
2003690143ccSmrg
2004690143ccSmrg  case 29:
200534345a63Smrg#line 230 "xkbparse.y"
2006690143ccSmrg    { (yyval.uval)= XkbLC_KeypadKeys; }
2007690143ccSmrg    break;
2008690143ccSmrg
2009690143ccSmrg  case 30:
201034345a63Smrg#line 231 "xkbparse.y"
2011690143ccSmrg    { (yyval.uval)= XkbLC_FunctionKeys; }
2012690143ccSmrg    break;
2013690143ccSmrg
2014690143ccSmrg  case 31:
201534345a63Smrg#line 232 "xkbparse.y"
2016690143ccSmrg    { (yyval.uval)= XkbLC_AlternateGroup; }
2017690143ccSmrg    break;
2018690143ccSmrg
2019690143ccSmrg  case 32:
202034345a63Smrg#line 236 "xkbparse.y"
2021690143ccSmrg    { (yyval.any)= AppendStmt((yyvsp[(1) - (2)].any),(yyvsp[(2) - (2)].any)); }
2022690143ccSmrg    break;
2023690143ccSmrg
2024690143ccSmrg  case 33:
202534345a63Smrg#line 237 "xkbparse.y"
2026690143ccSmrg    { (yyval.any)= NULL; }
2027690143ccSmrg    break;
2028690143ccSmrg
2029690143ccSmrg  case 34:
203034345a63Smrg#line 241 "xkbparse.y"
2031690143ccSmrg    {
2032690143ccSmrg			    (yyvsp[(2) - (2)].var)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].var)->common,(yyvsp[(1) - (2)].uval));
2033690143ccSmrg			    (yyval.any)= &(yyvsp[(2) - (2)].var)->common;
2034f46a6179Smrg			}
2035690143ccSmrg    break;
2036690143ccSmrg
2037690143ccSmrg  case 35:
203834345a63Smrg#line 246 "xkbparse.y"
2039690143ccSmrg    {
2040690143ccSmrg			    (yyvsp[(2) - (2)].vmod)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].vmod)->common,(yyvsp[(1) - (2)].uval));
2041690143ccSmrg			    (yyval.any)= &(yyvsp[(2) - (2)].vmod)->common;
2042f46a6179Smrg			}
2043690143ccSmrg    break;
2044690143ccSmrg
2045690143ccSmrg  case 36:
204634345a63Smrg#line 251 "xkbparse.y"
2047690143ccSmrg    {
2048690143ccSmrg			    (yyvsp[(2) - (2)].interp)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].interp)->common,(yyvsp[(1) - (2)].uval));
2049690143ccSmrg			    (yyval.any)= &(yyvsp[(2) - (2)].interp)->common;
2050f46a6179Smrg			}
2051690143ccSmrg    break;
2052690143ccSmrg
2053690143ccSmrg  case 37:
205434345a63Smrg#line 256 "xkbparse.y"
2055690143ccSmrg    {
2056690143ccSmrg			    (yyvsp[(2) - (2)].keyName)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].keyName)->common,(yyvsp[(1) - (2)].uval));
2057690143ccSmrg			    (yyval.any)= &(yyvsp[(2) - (2)].keyName)->common;
2058f46a6179Smrg			}
2059690143ccSmrg    break;
2060690143ccSmrg
2061690143ccSmrg  case 38:
206234345a63Smrg#line 261 "xkbparse.y"
2063690143ccSmrg    {
2064690143ccSmrg			    (yyvsp[(2) - (2)].keyAlias)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].keyAlias)->common,(yyvsp[(1) - (2)].uval));
2065690143ccSmrg			    (yyval.any)= &(yyvsp[(2) - (2)].keyAlias)->common;
2066f46a6179Smrg			}
2067690143ccSmrg    break;
2068690143ccSmrg
2069690143ccSmrg  case 39:
207034345a63Smrg#line 266 "xkbparse.y"
2071690143ccSmrg    {
2072690143ccSmrg			    (yyvsp[(2) - (2)].keyType)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].keyType)->common,(yyvsp[(1) - (2)].uval));
2073690143ccSmrg			    (yyval.any)= &(yyvsp[(2) - (2)].keyType)->common;
2074f46a6179Smrg			}
2075690143ccSmrg    break;
2076690143ccSmrg
2077690143ccSmrg  case 40:
207834345a63Smrg#line 271 "xkbparse.y"
2079690143ccSmrg    {
2080690143ccSmrg			    (yyvsp[(2) - (2)].syms)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].syms)->common,(yyvsp[(1) - (2)].uval));
2081690143ccSmrg			    (yyval.any)= &(yyvsp[(2) - (2)].syms)->common;
2082f46a6179Smrg			}
2083690143ccSmrg    break;
2084690143ccSmrg
2085690143ccSmrg  case 41:
208634345a63Smrg#line 276 "xkbparse.y"
2087690143ccSmrg    {
2088690143ccSmrg			    (yyvsp[(2) - (2)].modMask)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].modMask)->common,(yyvsp[(1) - (2)].uval));
2089690143ccSmrg			    (yyval.any)= &(yyvsp[(2) - (2)].modMask)->common;
2090f46a6179Smrg			}
2091690143ccSmrg    break;
2092690143ccSmrg
2093690143ccSmrg  case 42:
209434345a63Smrg#line 281 "xkbparse.y"
2095690143ccSmrg    {
2096690143ccSmrg			    (yyvsp[(2) - (2)].groupCompat)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].groupCompat)->common,(yyvsp[(1) - (2)].uval));
2097690143ccSmrg			    (yyval.any)= &(yyvsp[(2) - (2)].groupCompat)->common;
2098f46a6179Smrg			}
2099690143ccSmrg    break;
2100690143ccSmrg
2101690143ccSmrg  case 43:
210234345a63Smrg#line 286 "xkbparse.y"
2103690143ccSmrg    {
2104690143ccSmrg			    (yyvsp[(2) - (2)].ledMap)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].ledMap)->common,(yyvsp[(1) - (2)].uval));
2105690143ccSmrg			    (yyval.any)= &(yyvsp[(2) - (2)].ledMap)->common;
2106f46a6179Smrg			}
2107690143ccSmrg    break;
2108690143ccSmrg
2109690143ccSmrg  case 44:
211034345a63Smrg#line 291 "xkbparse.y"
2111690143ccSmrg    {
2112690143ccSmrg			    (yyvsp[(2) - (2)].ledName)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].ledName)->common,(yyvsp[(1) - (2)].uval));
2113690143ccSmrg			    (yyval.any)= &(yyvsp[(2) - (2)].ledName)->common;
2114f46a6179Smrg			}
2115690143ccSmrg    break;
2116690143ccSmrg
2117690143ccSmrg  case 45:
211834345a63Smrg#line 296 "xkbparse.y"
2119690143ccSmrg    {
2120690143ccSmrg			    (yyvsp[(2) - (2)].shape)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].shape)->common,(yyvsp[(1) - (2)].uval));
2121690143ccSmrg			    (yyval.any)= &(yyvsp[(2) - (2)].shape)->common;
2122f46a6179Smrg			}
2123690143ccSmrg    break;
2124690143ccSmrg
2125690143ccSmrg  case 46:
212634345a63Smrg#line 301 "xkbparse.y"
2127690143ccSmrg    {
2128690143ccSmrg			    (yyvsp[(2) - (2)].section)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].section)->common,(yyvsp[(1) - (2)].uval));
2129690143ccSmrg			    (yyval.any)= &(yyvsp[(2) - (2)].section)->common;
2130f46a6179Smrg			}
2131690143ccSmrg    break;
2132690143ccSmrg
2133690143ccSmrg  case 47:
213434345a63Smrg#line 306 "xkbparse.y"
2135690143ccSmrg    {
2136690143ccSmrg			    (yyvsp[(2) - (2)].doodad)->merge= StmtSetMerge(&(yyvsp[(2) - (2)].doodad)->common,(yyvsp[(1) - (2)].uval));
2137690143ccSmrg			    (yyval.any)= &(yyvsp[(2) - (2)].doodad)->common;
2138f46a6179Smrg			}
2139690143ccSmrg    break;
2140690143ccSmrg
2141690143ccSmrg  case 48:
214234345a63Smrg#line 311 "xkbparse.y"
2143690143ccSmrg    {
2144690143ccSmrg			    if ((yyvsp[(1) - (2)].uval)==MergeAltForm) {
2145f46a6179Smrg				yyerror("cannot use 'alternate' to include other maps");
2146690143ccSmrg				(yyval.any)= &IncludeCreate(scanBuf,MergeDefault)->common;
2147f46a6179Smrg			    }
2148f46a6179Smrg			    else {
2149690143ccSmrg				(yyval.any)= &IncludeCreate(scanBuf,(yyvsp[(1) - (2)].uval))->common;
2150f46a6179Smrg			    }
2151f46a6179Smrg                        }
2152690143ccSmrg    break;
2153690143ccSmrg
2154690143ccSmrg  case 49:
215534345a63Smrg#line 323 "xkbparse.y"
2156690143ccSmrg    { (yyval.var)= VarCreate((yyvsp[(1) - (4)].expr),(yyvsp[(3) - (4)].expr)); }
2157690143ccSmrg    break;
2158690143ccSmrg
2159690143ccSmrg  case 50:
216034345a63Smrg#line 325 "xkbparse.y"
2161690143ccSmrg    { (yyval.var)= BoolVarCreate((yyvsp[(1) - (2)].sval),1); }
2162690143ccSmrg    break;
2163690143ccSmrg
2164690143ccSmrg  case 51:
216534345a63Smrg#line 327 "xkbparse.y"
2166690143ccSmrg    { (yyval.var)= BoolVarCreate((yyvsp[(2) - (3)].sval),0); }
2167690143ccSmrg    break;
2168690143ccSmrg
2169690143ccSmrg  case 52:
217034345a63Smrg#line 331 "xkbparse.y"
2171690143ccSmrg    {
2172f46a6179Smrg			    KeycodeDef *def;
2173f46a6179Smrg
2174690143ccSmrg			    def= KeycodeCreate((yyvsp[(1) - (4)].str),(yyvsp[(3) - (4)].expr));
2175690143ccSmrg			    if ((yyvsp[(1) - (4)].str))
2176690143ccSmrg				free((yyvsp[(1) - (4)].str));
2177690143ccSmrg			    (yyval.keyName)= def;
2178f46a6179Smrg			}
2179690143ccSmrg    break;
2180690143ccSmrg
2181690143ccSmrg  case 53:
218234345a63Smrg#line 342 "xkbparse.y"
2183690143ccSmrg    {
2184f46a6179Smrg			    KeyAliasDef	*def;
2185690143ccSmrg			    def= KeyAliasCreate((yyvsp[(2) - (5)].str),(yyvsp[(4) - (5)].str));
2186690143ccSmrg			    if ((yyvsp[(2) - (5)].str))	free((yyvsp[(2) - (5)].str));
2187690143ccSmrg			    if ((yyvsp[(4) - (5)].str))	free((yyvsp[(4) - (5)].str));
2188690143ccSmrg			    (yyval.keyAlias)= def;
2189f46a6179Smrg			}
2190690143ccSmrg    break;
2191690143ccSmrg
2192690143ccSmrg  case 54:
219334345a63Smrg#line 352 "xkbparse.y"
2194690143ccSmrg    { (yyval.vmod)= (yyvsp[(2) - (3)].vmod); }
2195690143ccSmrg    break;
2196690143ccSmrg
2197690143ccSmrg  case 55:
219834345a63Smrg#line 356 "xkbparse.y"
2199690143ccSmrg    { (yyval.vmod)= (VModDef *)AppendStmt(&(yyvsp[(1) - (3)].vmod)->common,&(yyvsp[(3) - (3)].vmod)->common); }
2200690143ccSmrg    break;
2201690143ccSmrg
2202690143ccSmrg  case 56:
220334345a63Smrg#line 358 "xkbparse.y"
2204690143ccSmrg    { (yyval.vmod)= (yyvsp[(1) - (1)].vmod); }
2205690143ccSmrg    break;
2206690143ccSmrg
2207690143ccSmrg  case 57:
220834345a63Smrg#line 362 "xkbparse.y"
2209690143ccSmrg    { (yyval.vmod)= VModCreate((yyvsp[(1) - (1)].sval),NULL); }
2210690143ccSmrg    break;
2211690143ccSmrg
2212690143ccSmrg  case 58:
221334345a63Smrg#line 364 "xkbparse.y"
2214690143ccSmrg    { (yyval.vmod)= VModCreate((yyvsp[(1) - (3)].sval),(yyvsp[(3) - (3)].expr)); }
2215690143ccSmrg    break;
2216690143ccSmrg
2217690143ccSmrg  case 59:
221834345a63Smrg#line 370 "xkbparse.y"
2219690143ccSmrg    {
2220690143ccSmrg			    (yyvsp[(2) - (6)].interp)->def= (yyvsp[(4) - (6)].var);
2221690143ccSmrg			    (yyval.interp)= (yyvsp[(2) - (6)].interp);
2222f46a6179Smrg			}
2223690143ccSmrg    break;
2224690143ccSmrg
2225690143ccSmrg  case 60:
222634345a63Smrg#line 377 "xkbparse.y"
2227690143ccSmrg    { (yyval.interp)= InterpCreate((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].expr)); }
2228690143ccSmrg    break;
2229690143ccSmrg
2230690143ccSmrg  case 61:
223134345a63Smrg#line 379 "xkbparse.y"
2232690143ccSmrg    { (yyval.interp)= InterpCreate((yyvsp[(1) - (1)].str), NULL); }
2233690143ccSmrg    break;
2234690143ccSmrg
2235690143ccSmrg  case 62:
223634345a63Smrg#line 383 "xkbparse.y"
2237690143ccSmrg    { (yyval.var)= (VarDef *)AppendStmt(&(yyvsp[(1) - (2)].var)->common,&(yyvsp[(2) - (2)].var)->common); }
2238690143ccSmrg    break;
2239690143ccSmrg
2240690143ccSmrg  case 63:
224134345a63Smrg#line 385 "xkbparse.y"
2242690143ccSmrg    { (yyval.var)= (yyvsp[(1) - (1)].var); }
2243690143ccSmrg    break;
2244690143ccSmrg
2245690143ccSmrg  case 64:
224634345a63Smrg#line 391 "xkbparse.y"
2247690143ccSmrg    { (yyval.keyType)= KeyTypeCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].var)); }
2248690143ccSmrg    break;
2249690143ccSmrg
2250690143ccSmrg  case 65:
225134345a63Smrg#line 397 "xkbparse.y"
2252690143ccSmrg    { (yyval.syms)= SymbolsCreate((yyvsp[(2) - (6)].str),(ExprDef *)(yyvsp[(4) - (6)].var)); }
2253690143ccSmrg    break;
2254690143ccSmrg
2255690143ccSmrg  case 66:
225634345a63Smrg#line 401 "xkbparse.y"
2257690143ccSmrg    { (yyval.var)= (VarDef *)AppendStmt(&(yyvsp[(1) - (3)].var)->common,&(yyvsp[(3) - (3)].var)->common); }
2258690143ccSmrg    break;
2259690143ccSmrg
2260690143ccSmrg  case 67:
226134345a63Smrg#line 403 "xkbparse.y"
2262690143ccSmrg    { (yyval.var)= (yyvsp[(1) - (1)].var); }
2263690143ccSmrg    break;
2264690143ccSmrg
2265690143ccSmrg  case 68:
226634345a63Smrg#line 404 "xkbparse.y"
2267690143ccSmrg    { (yyval.var)= NULL; }
2268690143ccSmrg    break;
2269690143ccSmrg
2270690143ccSmrg  case 69:
227134345a63Smrg#line 408 "xkbparse.y"
2272690143ccSmrg    { (yyval.var)= VarCreate((yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2273690143ccSmrg    break;
2274690143ccSmrg
2275690143ccSmrg  case 70:
227634345a63Smrg#line 410 "xkbparse.y"
2277690143ccSmrg    { (yyval.var)= VarCreate((yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2278690143ccSmrg    break;
2279690143ccSmrg
2280690143ccSmrg  case 71:
228134345a63Smrg#line 412 "xkbparse.y"
2282690143ccSmrg    { (yyval.var)= BoolVarCreate((yyvsp[(1) - (1)].sval),1); }
2283690143ccSmrg    break;
2284690143ccSmrg
2285690143ccSmrg  case 72:
228634345a63Smrg#line 414 "xkbparse.y"
2287690143ccSmrg    { (yyval.var)= BoolVarCreate((yyvsp[(2) - (2)].sval),0); }
2288690143ccSmrg    break;
2289690143ccSmrg
2290690143ccSmrg  case 73:
229134345a63Smrg#line 416 "xkbparse.y"
2292690143ccSmrg    { (yyval.var)= VarCreate(NULL,(yyvsp[(1) - (1)].expr)); }
2293690143ccSmrg    break;
2294690143ccSmrg
2295690143ccSmrg  case 74:
229634345a63Smrg#line 420 "xkbparse.y"
2297690143ccSmrg    { (yyval.expr)= (yyvsp[(2) - (3)].expr); }
2298690143ccSmrg    break;
2299690143ccSmrg
2300690143ccSmrg  case 75:
230134345a63Smrg#line 422 "xkbparse.y"
2302690143ccSmrg    { (yyval.expr)= ExprCreateUnary(ExprActionList,TypeAction,(yyvsp[(2) - (3)].expr)); }
2303690143ccSmrg    break;
2304690143ccSmrg
2305690143ccSmrg  case 76:
230634345a63Smrg#line 426 "xkbparse.y"
2307690143ccSmrg    { (yyval.groupCompat)= GroupCompatCreate((yyvsp[(2) - (5)].ival),(yyvsp[(4) - (5)].expr)); }
2308690143ccSmrg    break;
2309690143ccSmrg
2310690143ccSmrg  case 77:
231134345a63Smrg#line 430 "xkbparse.y"
2312690143ccSmrg    { (yyval.modMask)= ModMapCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].expr)); }
2313690143ccSmrg    break;
2314690143ccSmrg
2315690143ccSmrg  case 78:
231634345a63Smrg#line 434 "xkbparse.y"
2317690143ccSmrg    { (yyval.ledMap)= IndicatorMapCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].var)); }
2318690143ccSmrg    break;
2319690143ccSmrg
2320690143ccSmrg  case 79:
232134345a63Smrg#line 438 "xkbparse.y"
2322690143ccSmrg    { (yyval.ledName)= IndicatorNameCreate((yyvsp[(2) - (5)].ival),(yyvsp[(4) - (5)].expr),False); }
2323690143ccSmrg    break;
2324690143ccSmrg
2325690143ccSmrg  case 80:
232634345a63Smrg#line 440 "xkbparse.y"
2327690143ccSmrg    { (yyval.ledName)= IndicatorNameCreate((yyvsp[(3) - (6)].ival),(yyvsp[(5) - (6)].expr),True); }
2328690143ccSmrg    break;
2329690143ccSmrg
2330690143ccSmrg  case 81:
233134345a63Smrg#line 444 "xkbparse.y"
2332690143ccSmrg    { (yyval.shape)= ShapeDeclCreate((yyvsp[(2) - (6)].sval),(OutlineDef *)&(yyvsp[(4) - (6)].outline)->common); }
2333690143ccSmrg    break;
2334690143ccSmrg
2335690143ccSmrg  case 82:
233634345a63Smrg#line 446 "xkbparse.y"
2337690143ccSmrg    {
2338f46a6179Smrg			    OutlineDef *outlines;
2339690143ccSmrg			    outlines= OutlineCreate(None,(yyvsp[(4) - (6)].expr));
2340690143ccSmrg			    (yyval.shape)= ShapeDeclCreate((yyvsp[(2) - (6)].sval),outlines);
2341f46a6179Smrg			}
2342690143ccSmrg    break;
2343690143ccSmrg
2344690143ccSmrg  case 83:
234534345a63Smrg#line 454 "xkbparse.y"
2346690143ccSmrg    { (yyval.section)= SectionDeclCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].row)); }
2347690143ccSmrg    break;
2348690143ccSmrg
2349690143ccSmrg  case 84:
235034345a63Smrg#line 458 "xkbparse.y"
2351690143ccSmrg    { (yyval.row)=(RowDef *)AppendStmt(&(yyvsp[(1) - (2)].row)->common,&(yyvsp[(2) - (2)].row)->common);}
2352690143ccSmrg    break;
2353690143ccSmrg
2354690143ccSmrg  case 85:
235534345a63Smrg#line 460 "xkbparse.y"
2356690143ccSmrg    { (yyval.row)= (yyvsp[(1) - (1)].row); }
2357690143ccSmrg    break;
2358690143ccSmrg
2359690143ccSmrg  case 86:
236034345a63Smrg#line 464 "xkbparse.y"
2361690143ccSmrg    { (yyval.row)= RowDeclCreate((yyvsp[(3) - (5)].key)); }
2362690143ccSmrg    break;
2363690143ccSmrg
2364690143ccSmrg  case 87:
236534345a63Smrg#line 466 "xkbparse.y"
2366690143ccSmrg    { (yyval.row)= (RowDef *)(yyvsp[(1) - (1)].var); }
2367690143ccSmrg    break;
2368690143ccSmrg
2369690143ccSmrg  case 88:
237034345a63Smrg#line 468 "xkbparse.y"
2371690143ccSmrg    { (yyval.row)= (RowDef *)(yyvsp[(1) - (1)].doodad); }
2372690143ccSmrg    break;
2373690143ccSmrg
2374690143ccSmrg  case 89:
237534345a63Smrg#line 470 "xkbparse.y"
2376690143ccSmrg    { (yyval.row)= (RowDef *)(yyvsp[(1) - (1)].ledMap); }
2377690143ccSmrg    break;
2378690143ccSmrg
2379690143ccSmrg  case 90:
238034345a63Smrg#line 472 "xkbparse.y"
2381690143ccSmrg    { (yyval.row)= (RowDef *)(yyvsp[(1) - (1)].overlay); }
2382690143ccSmrg    break;
2383690143ccSmrg
2384690143ccSmrg  case 91:
238534345a63Smrg#line 476 "xkbparse.y"
2386690143ccSmrg    { (yyval.key)=(KeyDef *)AppendStmt(&(yyvsp[(1) - (2)].key)->common,&(yyvsp[(2) - (2)].key)->common);}
2387690143ccSmrg    break;
2388690143ccSmrg
2389690143ccSmrg  case 92:
239034345a63Smrg#line 478 "xkbparse.y"
2391690143ccSmrg    { (yyval.key)= (yyvsp[(1) - (1)].key); }
2392690143ccSmrg    break;
2393690143ccSmrg
2394690143ccSmrg  case 93:
239534345a63Smrg#line 482 "xkbparse.y"
2396690143ccSmrg    { (yyval.key)= (yyvsp[(3) - (5)].key); }
2397690143ccSmrg    break;
2398690143ccSmrg
2399690143ccSmrg  case 94:
240034345a63Smrg#line 484 "xkbparse.y"
2401690143ccSmrg    { (yyval.key)= (KeyDef *)(yyvsp[(1) - (1)].var); }
2402690143ccSmrg    break;
2403690143ccSmrg
2404690143ccSmrg  case 95:
240534345a63Smrg#line 488 "xkbparse.y"
2406690143ccSmrg    { (yyval.key)=(KeyDef *)AppendStmt(&(yyvsp[(1) - (3)].key)->common,&(yyvsp[(3) - (3)].key)->common);}
2407690143ccSmrg    break;
2408690143ccSmrg
2409690143ccSmrg  case 96:
241034345a63Smrg#line 490 "xkbparse.y"
2411690143ccSmrg    { (yyval.key)= (yyvsp[(1) - (1)].key); }
2412690143ccSmrg    break;
2413690143ccSmrg
2414690143ccSmrg  case 97:
241534345a63Smrg#line 494 "xkbparse.y"
2416690143ccSmrg    { (yyval.key)= KeyDeclCreate((yyvsp[(1) - (1)].str),NULL); }
2417690143ccSmrg    break;
2418690143ccSmrg
2419690143ccSmrg  case 98:
242034345a63Smrg#line 496 "xkbparse.y"
2421690143ccSmrg    { (yyval.key)= KeyDeclCreate(NULL,(yyvsp[(2) - (3)].expr)); }
2422690143ccSmrg    break;
2423690143ccSmrg
2424690143ccSmrg  case 99:
242534345a63Smrg#line 500 "xkbparse.y"
2426690143ccSmrg    { (yyval.overlay)= OverlayDeclCreate((yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].olKey)); }
2427690143ccSmrg    break;
2428690143ccSmrg
2429690143ccSmrg  case 100:
243034345a63Smrg#line 504 "xkbparse.y"
2431690143ccSmrg    {
2432690143ccSmrg			    (yyval.olKey)= (OverlayKeyDef *)
2433690143ccSmrg				AppendStmt(&(yyvsp[(1) - (3)].olKey)->common,&(yyvsp[(3) - (3)].olKey)->common);
2434f46a6179Smrg			}
2435690143ccSmrg    break;
2436690143ccSmrg
2437690143ccSmrg  case 101:
243834345a63Smrg#line 509 "xkbparse.y"
2439690143ccSmrg    { (yyval.olKey)= (yyvsp[(1) - (1)].olKey); }
2440690143ccSmrg    break;
2441690143ccSmrg
2442690143ccSmrg  case 102:
244334345a63Smrg#line 513 "xkbparse.y"
2444690143ccSmrg    { (yyval.olKey)= OverlayKeyCreate((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str)); }
2445690143ccSmrg    break;
2446690143ccSmrg
2447690143ccSmrg  case 103:
244834345a63Smrg#line 517 "xkbparse.y"
2449690143ccSmrg    { (yyval.outline)=(OutlineDef *)AppendStmt(&(yyvsp[(1) - (3)].outline)->common,&(yyvsp[(3) - (3)].outline)->common);}
2450690143ccSmrg    break;
2451690143ccSmrg
2452690143ccSmrg  case 104:
245334345a63Smrg#line 519 "xkbparse.y"
2454690143ccSmrg    { (yyval.outline)= (yyvsp[(1) - (1)].outline); }
2455690143ccSmrg    break;
2456690143ccSmrg
2457690143ccSmrg  case 105:
245834345a63Smrg#line 523 "xkbparse.y"
2459690143ccSmrg    { (yyval.outline)= OutlineCreate(None,(yyvsp[(2) - (3)].expr)); }
2460690143ccSmrg    break;
2461690143ccSmrg
2462690143ccSmrg  case 106:
246334345a63Smrg#line 525 "xkbparse.y"
2464690143ccSmrg    { (yyval.outline)= OutlineCreate((yyvsp[(1) - (5)].sval),(yyvsp[(4) - (5)].expr)); }
2465690143ccSmrg    break;
2466690143ccSmrg
2467690143ccSmrg  case 107:
246834345a63Smrg#line 527 "xkbparse.y"
2469690143ccSmrg    { (yyval.outline)= OutlineCreate((yyvsp[(1) - (3)].sval),(yyvsp[(3) - (3)].expr)); }
2470690143ccSmrg    break;
2471690143ccSmrg
2472690143ccSmrg  case 108:
247334345a63Smrg#line 531 "xkbparse.y"
2474690143ccSmrg    { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[(1) - (3)].expr)->common,&(yyvsp[(3) - (3)].expr)->common); }
2475690143ccSmrg    break;
2476690143ccSmrg
2477690143ccSmrg  case 109:
247834345a63Smrg#line 533 "xkbparse.y"
2479690143ccSmrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2480690143ccSmrg    break;
2481690143ccSmrg
2482690143ccSmrg  case 110:
248334345a63Smrg#line 537 "xkbparse.y"
2484690143ccSmrg    {
2485f46a6179Smrg			    ExprDef *expr;
2486f46a6179Smrg			    expr= ExprCreate(ExprCoord,TypeUnknown);
2487690143ccSmrg			    expr->value.coord.x= (yyvsp[(2) - (5)].ival);
2488690143ccSmrg			    expr->value.coord.y= (yyvsp[(4) - (5)].ival);
2489690143ccSmrg			    (yyval.expr)= expr;
2490f46a6179Smrg			}
2491690143ccSmrg    break;
2492690143ccSmrg
2493690143ccSmrg  case 111:
249434345a63Smrg#line 547 "xkbparse.y"
2495690143ccSmrg    { (yyval.doodad)= DoodadCreate((yyvsp[(1) - (6)].uval),(yyvsp[(2) - (6)].sval),(yyvsp[(4) - (6)].var)); }
2496690143ccSmrg    break;
2497690143ccSmrg
2498690143ccSmrg  case 112:
249934345a63Smrg#line 550 "xkbparse.y"
2500690143ccSmrg    { (yyval.uval)= XkbTextDoodad; }
2501690143ccSmrg    break;
2502690143ccSmrg
2503690143ccSmrg  case 113:
250434345a63Smrg#line 551 "xkbparse.y"
2505690143ccSmrg    { (yyval.uval)= XkbOutlineDoodad; }
2506690143ccSmrg    break;
2507690143ccSmrg
2508690143ccSmrg  case 114:
250934345a63Smrg#line 552 "xkbparse.y"
2510690143ccSmrg    { (yyval.uval)= XkbSolidDoodad; }
2511690143ccSmrg    break;
2512690143ccSmrg
2513690143ccSmrg  case 115:
251434345a63Smrg#line 553 "xkbparse.y"
2515690143ccSmrg    { (yyval.uval)= XkbLogoDoodad; }
2516690143ccSmrg    break;
2517690143ccSmrg
2518690143ccSmrg  case 116:
251934345a63Smrg#line 556 "xkbparse.y"
2520690143ccSmrg    { (yyval.sval)= (yyvsp[(1) - (1)].sval); }
2521690143ccSmrg    break;
2522690143ccSmrg
2523690143ccSmrg  case 117:
252434345a63Smrg#line 557 "xkbparse.y"
2525690143ccSmrg    { (yyval.sval)= (yyvsp[(1) - (1)].sval); }
2526690143ccSmrg    break;
2527690143ccSmrg
2528690143ccSmrg  case 118:
252934345a63Smrg#line 561 "xkbparse.y"
2530690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"action",False); }
2531690143ccSmrg    break;
2532690143ccSmrg
2533690143ccSmrg  case 119:
253434345a63Smrg#line 563 "xkbparse.y"
2535690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"interpret",False); }
2536690143ccSmrg    break;
2537690143ccSmrg
2538690143ccSmrg  case 120:
253934345a63Smrg#line 565 "xkbparse.y"
2540690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"type",False); }
2541690143ccSmrg    break;
2542690143ccSmrg
2543690143ccSmrg  case 121:
254434345a63Smrg#line 567 "xkbparse.y"
2545690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"key",False); }
2546690143ccSmrg    break;
2547690143ccSmrg
2548690143ccSmrg  case 122:
254934345a63Smrg#line 569 "xkbparse.y"
2550690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"group",False); }
2551690143ccSmrg    break;
2552690143ccSmrg
2553690143ccSmrg  case 123:
255434345a63Smrg#line 571 "xkbparse.y"
2555690143ccSmrg    {(yyval.sval)=XkbInternAtom(NULL,"modifier_map",False);}
2556690143ccSmrg    break;
2557690143ccSmrg
2558690143ccSmrg  case 124:
255934345a63Smrg#line 573 "xkbparse.y"
2560690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"indicator",False); }
2561690143ccSmrg    break;
2562690143ccSmrg
2563690143ccSmrg  case 125:
256434345a63Smrg#line 575 "xkbparse.y"
2565690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"shape",False); }
2566690143ccSmrg    break;
2567690143ccSmrg
2568690143ccSmrg  case 126:
256934345a63Smrg#line 577 "xkbparse.y"
2570690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"row",False); }
2571690143ccSmrg    break;
2572690143ccSmrg
2573690143ccSmrg  case 127:
257434345a63Smrg#line 579 "xkbparse.y"
2575690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"section",False); }
2576690143ccSmrg    break;
2577690143ccSmrg
2578690143ccSmrg  case 128:
257934345a63Smrg#line 581 "xkbparse.y"
2580690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"text",False); }
2581690143ccSmrg    break;
2582690143ccSmrg
2583690143ccSmrg  case 129:
258434345a63Smrg#line 584 "xkbparse.y"
2585690143ccSmrg    { (yyval.uval)= (yyvsp[(1) - (1)].uval); }
2586690143ccSmrg    break;
2587690143ccSmrg
2588690143ccSmrg  case 130:
258934345a63Smrg#line 585 "xkbparse.y"
2590690143ccSmrg    { (yyval.uval)= MergeDefault; }
2591690143ccSmrg    break;
2592690143ccSmrg
2593690143ccSmrg  case 131:
259434345a63Smrg#line 588 "xkbparse.y"
2595690143ccSmrg    { (yyval.uval)= MergeDefault; }
2596690143ccSmrg    break;
2597690143ccSmrg
2598690143ccSmrg  case 132:
259934345a63Smrg#line 589 "xkbparse.y"
2600690143ccSmrg    { (yyval.uval)= MergeAugment; }
2601690143ccSmrg    break;
2602690143ccSmrg
2603690143ccSmrg  case 133:
260434345a63Smrg#line 590 "xkbparse.y"
2605690143ccSmrg    { (yyval.uval)= MergeOverride; }
2606690143ccSmrg    break;
2607690143ccSmrg
2608690143ccSmrg  case 134:
260934345a63Smrg#line 591 "xkbparse.y"
2610690143ccSmrg    { (yyval.uval)= MergeReplace; }
2611690143ccSmrg    break;
2612690143ccSmrg
2613690143ccSmrg  case 135:
261434345a63Smrg#line 592 "xkbparse.y"
2615690143ccSmrg    { (yyval.uval)= MergeAltForm; }
2616690143ccSmrg    break;
2617690143ccSmrg
2618690143ccSmrg  case 136:
261934345a63Smrg#line 595 "xkbparse.y"
2620690143ccSmrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2621690143ccSmrg    break;
2622690143ccSmrg
2623690143ccSmrg  case 137:
262434345a63Smrg#line 596 "xkbparse.y"
2625690143ccSmrg    { (yyval.expr)= NULL; }
2626690143ccSmrg    break;
2627690143ccSmrg
2628690143ccSmrg  case 138:
262934345a63Smrg#line 600 "xkbparse.y"
2630690143ccSmrg    { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[(1) - (3)].expr)->common,&(yyvsp[(3) - (3)].expr)->common); }
2631690143ccSmrg    break;
2632690143ccSmrg
2633690143ccSmrg  case 139:
263434345a63Smrg#line 602 "xkbparse.y"
2635690143ccSmrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2636690143ccSmrg    break;
2637690143ccSmrg
2638690143ccSmrg  case 140:
263934345a63Smrg#line 606 "xkbparse.y"
2640690143ccSmrg    { (yyval.expr)= ExprCreateBinary(OpDivide,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2641690143ccSmrg    break;
2642690143ccSmrg
2643690143ccSmrg  case 141:
264434345a63Smrg#line 608 "xkbparse.y"
2645690143ccSmrg    { (yyval.expr)= ExprCreateBinary(OpAdd,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2646690143ccSmrg    break;
2647690143ccSmrg
2648690143ccSmrg  case 142:
264934345a63Smrg#line 610 "xkbparse.y"
2650690143ccSmrg    { (yyval.expr)= ExprCreateBinary(OpSubtract,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2651690143ccSmrg    break;
2652690143ccSmrg
2653690143ccSmrg  case 143:
265434345a63Smrg#line 612 "xkbparse.y"
2655690143ccSmrg    { (yyval.expr)= ExprCreateBinary(OpMultiply,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2656690143ccSmrg    break;
2657690143ccSmrg
2658690143ccSmrg  case 144:
265934345a63Smrg#line 614 "xkbparse.y"
2660690143ccSmrg    { (yyval.expr)= ExprCreateBinary(OpAssign,(yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].expr)); }
2661690143ccSmrg    break;
2662690143ccSmrg
2663690143ccSmrg  case 145:
266434345a63Smrg#line 616 "xkbparse.y"
2665690143ccSmrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2666690143ccSmrg    break;
2667690143ccSmrg
2668690143ccSmrg  case 146:
266934345a63Smrg#line 620 "xkbparse.y"
2670690143ccSmrg    { (yyval.expr)= ExprCreateUnary(OpNegate,(yyvsp[(2) - (2)].expr)->type,(yyvsp[(2) - (2)].expr)); }
2671690143ccSmrg    break;
2672690143ccSmrg
2673690143ccSmrg  case 147:
267434345a63Smrg#line 622 "xkbparse.y"
2675690143ccSmrg    { (yyval.expr)= ExprCreateUnary(OpUnaryPlus,(yyvsp[(2) - (2)].expr)->type,(yyvsp[(2) - (2)].expr)); }
2676690143ccSmrg    break;
2677690143ccSmrg
2678690143ccSmrg  case 148:
267934345a63Smrg#line 624 "xkbparse.y"
2680690143ccSmrg    { (yyval.expr)= ExprCreateUnary(OpNot,TypeBoolean,(yyvsp[(2) - (2)].expr)); }
2681690143ccSmrg    break;
2682690143ccSmrg
2683690143ccSmrg  case 149:
268434345a63Smrg#line 626 "xkbparse.y"
2685690143ccSmrg    { (yyval.expr)= ExprCreateUnary(OpInvert,(yyvsp[(2) - (2)].expr)->type,(yyvsp[(2) - (2)].expr)); }
2686690143ccSmrg    break;
2687690143ccSmrg
2688690143ccSmrg  case 150:
268934345a63Smrg#line 628 "xkbparse.y"
2690690143ccSmrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr);  }
2691690143ccSmrg    break;
2692690143ccSmrg
2693690143ccSmrg  case 151:
269434345a63Smrg#line 630 "xkbparse.y"
2695690143ccSmrg    { (yyval.expr)= ActionCreate((yyvsp[(1) - (4)].sval),(yyvsp[(3) - (4)].expr)); }
2696690143ccSmrg    break;
2697690143ccSmrg
2698690143ccSmrg  case 152:
269934345a63Smrg#line 632 "xkbparse.y"
2700690143ccSmrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr);  }
2701690143ccSmrg    break;
2702690143ccSmrg
2703690143ccSmrg  case 153:
270434345a63Smrg#line 634 "xkbparse.y"
2705690143ccSmrg    { (yyval.expr)= (yyvsp[(2) - (3)].expr);  }
2706690143ccSmrg    break;
2707690143ccSmrg
2708690143ccSmrg  case 154:
270934345a63Smrg#line 638 "xkbparse.y"
2710690143ccSmrg    { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[(1) - (3)].expr)->common,&(yyvsp[(3) - (3)].expr)->common); }
2711690143ccSmrg    break;
2712690143ccSmrg
2713690143ccSmrg  case 155:
271434345a63Smrg#line 640 "xkbparse.y"
2715690143ccSmrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2716690143ccSmrg    break;
2717690143ccSmrg
2718690143ccSmrg  case 156:
271934345a63Smrg#line 644 "xkbparse.y"
2720690143ccSmrg    { (yyval.expr)= ActionCreate((yyvsp[(1) - (4)].sval),(yyvsp[(3) - (4)].expr)); }
2721690143ccSmrg    break;
2722690143ccSmrg
2723690143ccSmrg  case 157:
272434345a63Smrg#line 648 "xkbparse.y"
2725690143ccSmrg    {
2726f46a6179Smrg			    ExprDef *expr;
2727f46a6179Smrg                            expr= ExprCreate(ExprIdent,TypeUnknown);
2728690143ccSmrg                            expr->value.str= (yyvsp[(1) - (1)].sval);
2729690143ccSmrg                            (yyval.expr)= expr;
2730f46a6179Smrg			}
2731690143ccSmrg    break;
2732690143ccSmrg
2733690143ccSmrg  case 158:
273434345a63Smrg#line 655 "xkbparse.y"
2735690143ccSmrg    {
2736f46a6179Smrg                            ExprDef *expr;
2737f46a6179Smrg                            expr= ExprCreate(ExprFieldRef,TypeUnknown);
2738690143ccSmrg                            expr->value.field.element= (yyvsp[(1) - (3)].sval);
2739690143ccSmrg                            expr->value.field.field= (yyvsp[(3) - (3)].sval);
2740690143ccSmrg                            (yyval.expr)= expr;
2741f46a6179Smrg			}
2742690143ccSmrg    break;
2743690143ccSmrg
2744690143ccSmrg  case 159:
274534345a63Smrg#line 663 "xkbparse.y"
2746690143ccSmrg    {
2747f46a6179Smrg			    ExprDef *expr;
2748f46a6179Smrg			    expr= ExprCreate(ExprArrayRef,TypeUnknown);
2749f46a6179Smrg			    expr->value.array.element= None;
2750690143ccSmrg			    expr->value.array.field= (yyvsp[(1) - (4)].sval);
2751690143ccSmrg			    expr->value.array.entry= (yyvsp[(3) - (4)].expr);
2752690143ccSmrg			    (yyval.expr)= expr;
2753f46a6179Smrg			}
2754690143ccSmrg    break;
2755690143ccSmrg
2756690143ccSmrg  case 160:
275734345a63Smrg#line 672 "xkbparse.y"
2758690143ccSmrg    {
2759f46a6179Smrg			    ExprDef *expr;
2760f46a6179Smrg			    expr= ExprCreate(ExprArrayRef,TypeUnknown);
2761690143ccSmrg			    expr->value.array.element= (yyvsp[(1) - (6)].sval);
2762690143ccSmrg			    expr->value.array.field= (yyvsp[(3) - (6)].sval);
2763690143ccSmrg			    expr->value.array.entry= (yyvsp[(5) - (6)].expr);
2764690143ccSmrg			    (yyval.expr)= expr;
2765f46a6179Smrg			}
2766690143ccSmrg    break;
2767690143ccSmrg
2768690143ccSmrg  case 161:
276934345a63Smrg#line 683 "xkbparse.y"
2770690143ccSmrg    {
2771f46a6179Smrg			    ExprDef *expr;
2772f46a6179Smrg                            expr= ExprCreate(ExprValue,TypeString);
2773690143ccSmrg                            expr->value.str= (yyvsp[(1) - (1)].sval);
2774690143ccSmrg                            (yyval.expr)= expr;
2775f46a6179Smrg			}
2776690143ccSmrg    break;
2777690143ccSmrg
2778690143ccSmrg  case 162:
277934345a63Smrg#line 690 "xkbparse.y"
2780690143ccSmrg    {
2781f46a6179Smrg			    ExprDef *expr;
2782f46a6179Smrg                            expr= ExprCreate(ExprValue,TypeInt);
2783690143ccSmrg                            expr->value.ival= (yyvsp[(1) - (1)].ival);
2784690143ccSmrg                            (yyval.expr)= expr;
2785f46a6179Smrg			}
2786690143ccSmrg    break;
2787690143ccSmrg
2788690143ccSmrg  case 163:
278934345a63Smrg#line 697 "xkbparse.y"
2790690143ccSmrg    {
2791f46a6179Smrg			    ExprDef *expr;
2792f46a6179Smrg			    expr= ExprCreate(ExprValue,TypeFloat);
2793690143ccSmrg			    expr->value.ival= (yyvsp[(1) - (1)].ival);
2794690143ccSmrg			    (yyval.expr)= expr;
2795f46a6179Smrg			}
2796690143ccSmrg    break;
2797690143ccSmrg
2798690143ccSmrg  case 164:
279934345a63Smrg#line 704 "xkbparse.y"
2800690143ccSmrg    {
2801f46a6179Smrg			    ExprDef *expr;
2802f46a6179Smrg			    expr= ExprCreate(ExprValue,TypeKeyName);
2803f46a6179Smrg			    memset(expr->value.keyName,0,5);
2804690143ccSmrg			    strncpy(expr->value.keyName,(yyvsp[(1) - (1)].str),4);
2805690143ccSmrg			    free((yyvsp[(1) - (1)].str));
2806690143ccSmrg			    (yyval.expr)= expr;
2807f46a6179Smrg			}
2808690143ccSmrg    break;
2809690143ccSmrg
2810690143ccSmrg  case 165:
281134345a63Smrg#line 714 "xkbparse.y"
2812690143ccSmrg    { (yyval.expr)= (yyvsp[(1) - (1)].expr); }
2813690143ccSmrg    break;
2814690143ccSmrg
2815690143ccSmrg  case 166:
281634345a63Smrg#line 715 "xkbparse.y"
2817690143ccSmrg    { (yyval.expr)= NULL; }
2818690143ccSmrg    break;
2819690143ccSmrg
2820690143ccSmrg  case 167:
282134345a63Smrg#line 719 "xkbparse.y"
2822690143ccSmrg    { (yyval.expr)= AppendKeysymList((yyvsp[(1) - (3)].expr),(yyvsp[(3) - (3)].str)); }
2823690143ccSmrg    break;
2824690143ccSmrg
2825690143ccSmrg  case 168:
282634345a63Smrg#line 721 "xkbparse.y"
2827690143ccSmrg    { (yyval.expr)= CreateKeysymList((yyvsp[(1) - (1)].str)); }
2828690143ccSmrg    break;
2829690143ccSmrg
2830690143ccSmrg  case 169:
283183e5f723Smrg#line 724 "xkbparse.y"
2832690143ccSmrg    { (yyval.str)= strdup(scanBuf); }
2833690143ccSmrg    break;
2834690143ccSmrg
2835690143ccSmrg  case 170:
283683e5f723Smrg#line 725 "xkbparse.y"
2837690143ccSmrg    { (yyval.str)= strdup("section"); }
2838690143ccSmrg    break;
2839690143ccSmrg
2840690143ccSmrg  case 171:
284183e5f723Smrg#line 727 "xkbparse.y"
2842690143ccSmrg    {
2843690143ccSmrg			    if ((yyvsp[(1) - (1)].ival)<10)	{ (yyval.str)= malloc(2); (yyval.str)[0]= '0' + (yyvsp[(1) - (1)].ival); (yyval.str)[1]= '\0'; }
2844690143ccSmrg			    else	{ (yyval.str)= malloc(19); snprintf((yyval.str), 19, "0x%x", (yyvsp[(1) - (1)].ival)); }
2845f46a6179Smrg			}
2846690143ccSmrg    break;
2847690143ccSmrg
2848690143ccSmrg  case 172:
284983e5f723Smrg#line 733 "xkbparse.y"
2850690143ccSmrg    { (yyval.ival)= -(yyvsp[(2) - (2)].ival); }
2851690143ccSmrg    break;
2852690143ccSmrg
2853690143ccSmrg  case 173:
285483e5f723Smrg#line 734 "xkbparse.y"
2855690143ccSmrg    { (yyval.ival)= (yyvsp[(1) - (1)].ival); }
2856690143ccSmrg    break;
2857690143ccSmrg
2858690143ccSmrg  case 174:
285983e5f723Smrg#line 737 "xkbparse.y"
2860690143ccSmrg    { (yyval.ival)= scanInt; }
2861690143ccSmrg    break;
2862690143ccSmrg
2863690143ccSmrg  case 175:
286483e5f723Smrg#line 738 "xkbparse.y"
2865690143ccSmrg    { (yyval.ival)= scanInt*XkbGeomPtsPerMM; }
2866690143ccSmrg    break;
2867690143ccSmrg
2868690143ccSmrg  case 176:
286983e5f723Smrg#line 741 "xkbparse.y"
2870690143ccSmrg    { (yyval.ival)= scanInt; }
2871690143ccSmrg    break;
2872690143ccSmrg
2873690143ccSmrg  case 177:
287483e5f723Smrg#line 744 "xkbparse.y"
2875690143ccSmrg    { (yyval.ival)= scanInt; }
2876690143ccSmrg    break;
2877690143ccSmrg
2878690143ccSmrg  case 178:
287983e5f723Smrg#line 747 "xkbparse.y"
2880690143ccSmrg    { (yyval.str)= strdup(scanBuf); }
2881690143ccSmrg    break;
2882690143ccSmrg
2883690143ccSmrg  case 179:
288483e5f723Smrg#line 750 "xkbparse.y"
2885690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,scanBuf,False); }
2886690143ccSmrg    break;
2887690143ccSmrg
2888690143ccSmrg  case 180:
288983e5f723Smrg#line 751 "xkbparse.y"
2890690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,"default",False); }
2891690143ccSmrg    break;
2892690143ccSmrg
2893690143ccSmrg  case 181:
289483e5f723Smrg#line 754 "xkbparse.y"
2895690143ccSmrg    { (yyval.sval)= XkbInternAtom(NULL,scanBuf,False); }
2896690143ccSmrg    break;
2897690143ccSmrg
2898690143ccSmrg  case 182:
289983e5f723Smrg#line 757 "xkbparse.y"
2900690143ccSmrg    { (yyval.str)= (yyvsp[(1) - (1)].str); }
2901690143ccSmrg    break;
2902690143ccSmrg
2903690143ccSmrg  case 183:
290483e5f723Smrg#line 758 "xkbparse.y"
2905690143ccSmrg    { (yyval.str)= NULL; }
2906690143ccSmrg    break;
2907690143ccSmrg
2908690143ccSmrg  case 184:
290983e5f723Smrg#line 761 "xkbparse.y"
2910690143ccSmrg    { (yyval.str)= strdup(scanBuf); }
2911690143ccSmrg    break;
2912690143ccSmrg
2913690143ccSmrg
29141d8c7986Smrg/* Line 1267 of yacc.c.  */
29151d8c7986Smrg#line 2916 "xkbparse.c"
2916690143ccSmrg      default: break;
2917f46a6179Smrg    }
2918690143ccSmrg  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
2919690143ccSmrg
2920690143ccSmrg  YYPOPSTACK (yylen);
2921690143ccSmrg  yylen = 0;
2922690143ccSmrg  YY_STACK_PRINT (yyss, yyssp);
2923690143ccSmrg
2924690143ccSmrg  *++yyvsp = yyval;
2925690143ccSmrg
29261d8c7986Smrg
2927690143ccSmrg  /* Now `shift' the result of the reduction.  Determine what state
2928690143ccSmrg     that goes to, based on the state we popped back to and the rule
2929690143ccSmrg     number reduced by.  */
2930690143ccSmrg
2931690143ccSmrg  yyn = yyr1[yyn];
2932690143ccSmrg
2933690143ccSmrg  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2934690143ccSmrg  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2935690143ccSmrg    yystate = yytable[yystate];
2936690143ccSmrg  else
2937690143ccSmrg    yystate = yydefgoto[yyn - YYNTOKENS];
2938690143ccSmrg
2939690143ccSmrg  goto yynewstate;
2940690143ccSmrg
2941690143ccSmrg
2942690143ccSmrg/*------------------------------------.
2943690143ccSmrg| yyerrlab -- here on detecting error |
2944690143ccSmrg`------------------------------------*/
2945690143ccSmrgyyerrlab:
2946690143ccSmrg  /* If not already recovering from an error, report this error.  */
2947690143ccSmrg  if (!yyerrstatus)
2948f46a6179Smrg    {
2949690143ccSmrg      ++yynerrs;
2950690143ccSmrg#if ! YYERROR_VERBOSE
2951690143ccSmrg      yyerror (YY_("syntax error"));
2952690143ccSmrg#else
2953690143ccSmrg      {
2954690143ccSmrg	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
2955690143ccSmrg	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
2956690143ccSmrg	  {
2957690143ccSmrg	    YYSIZE_T yyalloc = 2 * yysize;
2958690143ccSmrg	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
2959690143ccSmrg	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
2960690143ccSmrg	    if (yymsg != yymsgbuf)
2961690143ccSmrg	      YYSTACK_FREE (yymsg);
2962690143ccSmrg	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
2963690143ccSmrg	    if (yymsg)
2964690143ccSmrg	      yymsg_alloc = yyalloc;
2965690143ccSmrg	    else
2966690143ccSmrg	      {
2967690143ccSmrg		yymsg = yymsgbuf;
2968690143ccSmrg		yymsg_alloc = sizeof yymsgbuf;
2969690143ccSmrg	      }
2970690143ccSmrg	  }
2971690143ccSmrg
2972690143ccSmrg	if (0 < yysize && yysize <= yymsg_alloc)
2973690143ccSmrg	  {
2974690143ccSmrg	    (void) yysyntax_error (yymsg, yystate, yychar);
2975690143ccSmrg	    yyerror (yymsg);
2976690143ccSmrg	  }
2977690143ccSmrg	else
2978690143ccSmrg	  {
2979690143ccSmrg	    yyerror (YY_("syntax error"));
2980690143ccSmrg	    if (yysize != 0)
2981690143ccSmrg	      goto yyexhaustedlab;
2982690143ccSmrg	  }
2983690143ccSmrg      }
298407d2e718Smrg#endif
2985f46a6179Smrg    }
2986690143ccSmrg
2987690143ccSmrg
2988690143ccSmrg
2989690143ccSmrg  if (yyerrstatus == 3)
2990690143ccSmrg    {
29911d8c7986Smrg      /* If just tried and failed to reuse look-ahead token after an
2992690143ccSmrg	 error, discard it.  */
2993690143ccSmrg
2994690143ccSmrg      if (yychar <= YYEOF)
2995690143ccSmrg	{
2996690143ccSmrg	  /* Return failure if at end of input.  */
2997690143ccSmrg	  if (yychar == YYEOF)
2998690143ccSmrg	    YYABORT;
2999690143ccSmrg	}
3000690143ccSmrg      else
3001690143ccSmrg	{
3002690143ccSmrg	  yydestruct ("Error: discarding",
3003690143ccSmrg		      yytoken, &yylval);
3004690143ccSmrg	  yychar = YYEMPTY;
3005690143ccSmrg	}
3006690143ccSmrg    }
3007690143ccSmrg
30081d8c7986Smrg  /* Else will try to reuse look-ahead token after shifting the error
3009690143ccSmrg     token.  */
3010690143ccSmrg  goto yyerrlab1;
3011690143ccSmrg
3012690143ccSmrg
3013690143ccSmrg/*---------------------------------------------------.
3014690143ccSmrg| yyerrorlab -- error raised explicitly by YYERROR.  |
3015690143ccSmrg`---------------------------------------------------*/
3016690143ccSmrgyyerrorlab:
3017690143ccSmrg
3018690143ccSmrg  /* Pacify compilers like GCC when the user code never invokes
3019690143ccSmrg     YYERROR and the label yyerrorlab therefore never appears in user
3020690143ccSmrg     code.  */
3021690143ccSmrg  if (/*CONSTCOND*/ 0)
3022690143ccSmrg     goto yyerrorlab;
3023690143ccSmrg
3024690143ccSmrg  /* Do not reclaim the symbols of the rule which action triggered
3025690143ccSmrg     this YYERROR.  */
3026690143ccSmrg  YYPOPSTACK (yylen);
3027690143ccSmrg  yylen = 0;
3028690143ccSmrg  YY_STACK_PRINT (yyss, yyssp);
3029690143ccSmrg  yystate = *yyssp;
3030690143ccSmrg  goto yyerrlab1;
3031690143ccSmrg
3032690143ccSmrg
3033690143ccSmrg/*-------------------------------------------------------------.
3034690143ccSmrg| yyerrlab1 -- common code for both syntax error and YYERROR.  |
3035690143ccSmrg`-------------------------------------------------------------*/
3036690143ccSmrgyyerrlab1:
3037690143ccSmrg  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
3038690143ccSmrg
3039690143ccSmrg  for (;;)
3040690143ccSmrg    {
3041690143ccSmrg      yyn = yypact[yystate];
3042690143ccSmrg      if (yyn != YYPACT_NINF)
3043690143ccSmrg	{
3044690143ccSmrg	  yyn += YYTERROR;
3045690143ccSmrg	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3046690143ccSmrg	    {
3047690143ccSmrg	      yyn = yytable[yyn];
3048690143ccSmrg	      if (0 < yyn)
3049690143ccSmrg		break;
3050690143ccSmrg	    }
3051690143ccSmrg	}
3052690143ccSmrg
3053690143ccSmrg      /* Pop the current state because it cannot handle the error token.  */
3054690143ccSmrg      if (yyssp == yyss)
3055690143ccSmrg	YYABORT;
3056690143ccSmrg
3057690143ccSmrg
3058690143ccSmrg      yydestruct ("Error: popping",
3059690143ccSmrg		  yystos[yystate], yyvsp);
3060690143ccSmrg      YYPOPSTACK (1);
3061690143ccSmrg      yystate = *yyssp;
3062690143ccSmrg      YY_STACK_PRINT (yyss, yyssp);
3063690143ccSmrg    }
3064690143ccSmrg
30651d8c7986Smrg  if (yyn == YYFINAL)
30661d8c7986Smrg    YYACCEPT;
30671d8c7986Smrg
3068690143ccSmrg  *++yyvsp = yylval;
3069690143ccSmrg
3070690143ccSmrg
3071690143ccSmrg  /* Shift the error token.  */
3072690143ccSmrg  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3073690143ccSmrg
3074690143ccSmrg  yystate = yyn;
3075690143ccSmrg  goto yynewstate;
3076690143ccSmrg
3077690143ccSmrg
3078690143ccSmrg/*-------------------------------------.
3079690143ccSmrg| yyacceptlab -- YYACCEPT comes here.  |
3080690143ccSmrg`-------------------------------------*/
3081690143ccSmrgyyacceptlab:
3082690143ccSmrg  yyresult = 0;
3083690143ccSmrg  goto yyreturn;
3084690143ccSmrg
3085690143ccSmrg/*-----------------------------------.
3086690143ccSmrg| yyabortlab -- YYABORT comes here.  |
3087690143ccSmrg`-----------------------------------*/
3088690143ccSmrgyyabortlab:
3089690143ccSmrg  yyresult = 1;
3090690143ccSmrg  goto yyreturn;
3091690143ccSmrg
30921d8c7986Smrg#ifndef yyoverflow
3093690143ccSmrg/*-------------------------------------------------.
3094690143ccSmrg| yyexhaustedlab -- memory exhaustion comes here.  |
3095690143ccSmrg`-------------------------------------------------*/
3096690143ccSmrgyyexhaustedlab:
3097690143ccSmrg  yyerror (YY_("memory exhausted"));
3098690143ccSmrg  yyresult = 2;
3099690143ccSmrg  /* Fall through.  */
3100f46a6179Smrg#endif
3101690143ccSmrg
3102690143ccSmrgyyreturn:
31031d8c7986Smrg  if (yychar != YYEOF && yychar != YYEMPTY)
3104690143ccSmrg     yydestruct ("Cleanup: discarding lookahead",
3105690143ccSmrg		 yytoken, &yylval);
3106690143ccSmrg  /* Do not reclaim the symbols of the rule which action triggered
3107690143ccSmrg     this YYABORT or YYACCEPT.  */
3108690143ccSmrg  YYPOPSTACK (yylen);
3109690143ccSmrg  YY_STACK_PRINT (yyss, yyssp);
3110690143ccSmrg  while (yyssp != yyss)
3111f46a6179Smrg    {
3112690143ccSmrg      yydestruct ("Cleanup: popping",
3113690143ccSmrg		  yystos[*yyssp], yyvsp);
3114690143ccSmrg      YYPOPSTACK (1);
3115f46a6179Smrg    }
3116690143ccSmrg#ifndef yyoverflow
3117690143ccSmrg  if (yyss != yyssa)
3118690143ccSmrg    YYSTACK_FREE (yyss);
3119690143ccSmrg#endif
3120690143ccSmrg#if YYERROR_VERBOSE
3121690143ccSmrg  if (yymsg != yymsgbuf)
3122690143ccSmrg    YYSTACK_FREE (yymsg);
3123690143ccSmrg#endif
3124690143ccSmrg  /* Make sure YYID is used.  */
3125690143ccSmrg  return YYID (yyresult);
3126690143ccSmrg}
3127f46a6179Smrg
3128f46a6179Smrg
3129690143ccSmrg#line 763 "xkbparse.y"
3130690143ccSmrg
3131690143ccSmrgvoid
3132690143ccSmrgyyerror(const char *s)
3133690143ccSmrg{
3134690143ccSmrg    if (warningLevel>0) {
3135690143ccSmrg	(void)fprintf(stderr,"%s: line %d of %s\n",s,lineNum,
3136690143ccSmrg					(scanFile?scanFile:"(unknown)"));
3137690143ccSmrg	if ((warningLevel>3))
3138690143ccSmrg	    (void)fprintf(stderr,"last scanned symbol is: %s\n",scanBuf);
3139690143ccSmrg    }
3140690143ccSmrg    return;
3141690143ccSmrg}
3142690143ccSmrg
3143690143ccSmrg
3144690143ccSmrgint
3145690143ccSmrgyywrap(void)
3146690143ccSmrg{
3147690143ccSmrg   return 1;
3148f46a6179Smrg}
3149690143ccSmrg
3150690143ccSmrg
3151